Dropstone Docs

அனுமதிகள்

எந்த செயல்களுக்கு ஒப்புதல் தேவை என்பதைக் கட்டுப்படுத்தவும்.

Dropstone permission கட்டமைப்பைப் பயன்படுத்தி ஒரு குறிப்பிட்ட செயல் தானாக இயங்க வேண்டுமா, உங்களிடம் கேட்க வேண்டுமா அல்லது தடுக்க வேண்டுமா என்பதை முடிவு செய்கிறது.

பழைய tools பூலியன் கட்டமைப்பு மறுபயன்பாடு செய்யப்பட்டுள்ளது; இது permission இல் இணைக்கப்பட்டுள்ளது. பழைய tools கட்டமைப்பு பின்னோக்கு সামঞ்சस்யத்திற்கு இன்னும் ஆதரிக்கப்படுகிறது.


செயல்கள்

ஒவ்வொரு அனுமதி விதியும் பின்வருவனவற்றில் ஒன்றாக தீர்க்கப்படுகிறது:

  • "allow": ஒப்புதல் இல்லாமல் இயக்கவும்
  • "ask": ஒப்புதலுக்கு கேட்கவும்
  • "deny": செயலைத் தடுக்கவும்

கட்டமைப்பு

நீங்கள் உலகளாவிய அனுமதிகளை (* உடன்) அமைக்கலாம் மற்றும் குறிப்பிட்ட கருவிகளை மேலெழுதலாம்.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "*": "ask",
    "bash": "allow",
    "edit": "deny"
  }
}

நீங்கள் அனைத்து அனுமதிகளையும் ஒரே நேரத்தில் அமைக்கலாம்:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": "allow"
}

தানியான விதிகள் (Object Syntax)

பெரும்பாலான அனுமதிகளுக்கு, கருவி உள்ளீட்டின் அடிப்படையில் வெவ்வேறு செயல்களைப் பயன்படுத்த நீங்கள் ஒரு பொருளைப் பயன்படுத்தலாம்.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "bash": {
      "*": "ask",
      "git *": "allow",
      "npm *": "allow",
      "rm *": "deny",
      "grep *": "allow"
    },
    "edit": {
      "*": "deny",
      "packages/web/src/content/docs/*.mdx": "allow"
    }
  }
}

விதிகள் வடிவ பொருத்தத்தின் மூலம் மதிப்பிடப்படுகின்றன, கடைசி பொருந்தும் விதி வெற்றி பெறுகிறது. ஒரு பொதுவான வடிவம் catch-all "*" விதியை முதலில் வைப்பது மற்றும் அதற்குப் பிறகு மிகவும் குறிப்பிட்ட விதிகளை வைப்பது.

வைல்டகார்டுகள்

அனுமதி வடிவங்கள் எளிய வைல்டகார்ட பொருத்தத்தைப் பயன்படுத்துகின்றன:

  • * பூஜ்ஜியம் அல்லது அதற்கு மேற்பட்ட எந்த எழுத்துக்களையும் பொருத்துகிறது
  • ? சரியாக ஒரு எழுத்தைப் பொருத்துகிறது
  • மற்ற அனைத்து எழுத்துக்களும் நேரடியாக பொருந்துகின்றன

முகப்பு கோப்பகம் விரிவாக்கம்

ஒரு வடிவத்தின் தொடக்கத்தில் ~ அல்லது $HOME ஐப் பயன்படுத்தி உங்கள் முகப்பு கோப்பகத்தைக் குறிப்பிடலாம். இது external_directory விதிகளுக்கு குறிப்பாக பயனுள்ளதாக இருக்கிறது.

  • ~/projects/* -> /Users/username/projects/*
  • $HOME/projects/* -> /Users/username/projects/*
  • ~ -> /Users/username

வெளிப்புற கோப்பகங்கள்

Dropstone தொடங்கிய வேலை கோப்பகத்திற்கு வெளியே உள்ள பாதைகளைத் தொடும் கருவி அழைப்புகளை அனுமதிக்க external_directory ஐப் பயன்படுத்தவும். இது உள்ளீடாக பாதையை எடுக்கும் எந்த கருவிக்கும் பொருந்தும் (எடுத்துக்காட்டாக read, edit, glob, grep, மற்றும் பல bash கட்டளைகள்).

முகப்பு விரிவாக்கம் (like ~/...) ஒரு வடிவம் எவ்வாறு எழுதப்படுகிறது என்பதை மட்டுமே பாதிக்கிறது. இது வெளிப்புற பாதையை தற்போதைய பணிப்பெட்டியின் ஒரு பகுதியாக ஆக்கவில்லை, எனவே வேலை கோப்பகத்திற்கு வெளியே உள்ள பாதைகள் external_directory வழியாக அனுமதிக்கப்பட வேண்டும்.

எடுத்துக்காட்டாக, இது ~/projects/personal/ இன் கீழ் எல்லாவற்றிற்கும் அணுகலை அனுமதிக்கிறது:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "external_directory": {
      "~/projects/personal/**": "allow"
    }
  }
}

இங்கே அனுமதிக்கப்பட்ட எந்த கோப்பகமும் தற்போதைய பணிப்பெட்டியின் அதே இயல்புகளை பெறுகிறது. read இயல்பாக allow என்பதால், external_directory இன் கீழ் உள்ள உள்ளீடுகளுக்கான வாசிப்புகளும் மேலெழுதப்படாவிட்டால் அனுமதிக்கப்படுகின்றன. இந்த பாதைகளில் ஒரு கருவி கட்டுப்படுத்தப்பட வேண்டிய போது வெளிப்படையான விதிகளைச் சேர்க்கவும், எடுத்துக்காட்டாக வாசிப்புகளை வைத்திருக்கும் போது திருத்தங்களைத் தடுக்கவும்:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "external_directory": {
      "~/projects/personal/**": "allow"
    },
    "edit": {
      "~/projects/personal/**": "deny"
    }
  }
}

பட்டியலை நம்பகமான பாதைகளில் கவனம் செலுத்தவும், மற்ற கருவிகளுக்கு (எடுத்துக்காட்டாக bash) தேவைக்கேற்ப கூடுதல் அனுமதி அல்லது மறுப்பு விதிகளை அடுக்கவும்.


கிடைக்கும் அனுமதிகள்

Dropstone அனுமதிகள் கருவி பெயரால் முக்கிய செய்யப்படுகின்றன, மேலும் இரண்டு பாதுகாப்பு சாரணைகள்:

  • read: ஒரு கோப்பைப் படிப்பது (கோப்பு பாதையுடன் பொருந்துகிறது)
  • edit: அனைத்து கோப்பு மாற்றங்களும் (edit, write, patch ஐ உள்ளடக்குகிறது)
  • glob: கோப்பு globbing (glob வடிவத்துடன் பொருந்துகிறது)
  • grep: உள்ளடக்க தேடல் (regex வடிவத்துடன் பொருந்துகிறது)
  • bash: shell கட்டளைகளை இயக்குதல் (git status --porcelain போன்ற பாகுபடுத்தப்பட்ட கட்டளைகளுடன் பொருந்துகிறது)
  • task: subagents ஐ தொடங்குதல் (subagent வகையுடன் பொருந்துகிறது)
  • skill: ஒரு skill ஐ ஏற்றுதல் (skill பெயருடன் பொருந்துகிறது)
  • lsp: LSP வினாக்களை இயக்குதல் (தற்போது non-granular)
  • question: செயல்பாட்டின் போது பயனரிடம் கேள்விகளைக் கேட்டல்
  • webfetch: ஒரு URL ஐ பெறுதல் (URL உடன் பொருந்துகிறது)
  • websearch: வலை தேடல் (வினாவுடன் பொருந்துகிறது)
  • external_directory: ஒரு கருவி திட்ட வேலை கோப்பகத்திற்கு வெளியே உள்ள பாதைகளைத் தொடும் போது தூண்டப்படுகிறது
  • doom_loop: ஒரே கருவி அழைப்பு ஒரே உள்ளீட்டுடன் 3 முறை மீண்டும் செய்யப்படும் போது தூண்டப்படுகிறது

இயல்புகள்

நீங்கள் எதையும் குறிப்பிடாவிட்டால், Dropstone அனுமதிக்கும் இயல்புகளிலிருந்து தொடங்குகிறது:

  • பெரும்பாலான அனுமதிகள் "allow" இயல்பாக இருக்கின்றன.
  • doom_loop மற்றும் external_directory "ask" இயல்பாக இருக்கின்றன.
  • read என்பது "allow" ஆகும், ஆனால் .env கோப்புகள் இயல்பாக மறுக்கப்படுகின்றன:
{
  "permission": {
    "read": {
      "*": "allow",
      "*.env": "deny",
      "*.env.*": "deny",
      "*.env.example": "allow"
    }
  }
}

"Ask" என்பது என்ன செய்கிறது

Dropstone ஒப்புதலுக்கு கேட்கும் போது, UI மூன்று விளைவுகளை வழங்குகிறது:

  • once: இந்த கோரிக்கையை மட்டுமே ஒப்புக்கொள்ளவும்
  • always: பரிந்துரைக்கப்பட்ட வடிவங்களுடன் பொருந்தும் ভবிষ்யত கோரிக்கைகளை ஒப்புக்கொள்ளவும் (தற்போதைய Dropstone அமர்வின் மீதமுள்ள பகுதிக்கு)
  • reject: கோரிக்கையை மறுக்கவும்

always ஒப்புக்கொள்ளும் வடிவங்களின் தொகுப்பு கருவி மூலம் வழங்கப்படுகிறது (எடுத்துக்காட்டாக, bash ஒப்புதல்கள் பொதுவாக git status* போன்ற பாதுகாப்பான கட்டளை முன்னொட்டை வெண்ணிலையாக்குகின்றன).


Agents

நீங்கள் agent க்கு அனுமதிகளை மேலெழுதலாம். Agent அனுமதிகள் உலகளாவிய கட்டமைப்புடன் இணைக்கப்படுகின்றன, மற்றும் agent விதிகள் முன்னுரிமை பெறுகின்றன. மேலும் அறிக agent அனுமதிகள் பற்றி.

Note:

மேலும் விரிவான வடிவ பொருத்தம் எடுத்துக்காட்டுகளுக்கு மேலே தானியான விதிகள் (Object Syntax) பிரிவைக் குறிப்பிடவும்.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "bash": {
      "*": "ask",
      "git *": "allow",
      "git commit *": "deny",
      "git push *": "deny",
      "grep *": "allow"
    }
  },
  "agent": {
    "build": {
      "permission": {
        "bash": {
          "*": "ask",
          "git *": "allow",
          "git commit *": "ask",
          "git push *": "deny",
          "grep *": "allow"
        }
      }
    }
  }
}

நீங்கள் Markdown இல் agent அனுமதிகளையும் கட்டமைக்கலாம்:

---
description: திருத்தங்கள் இல்லாமல் குறியீடு மதிப்பாய்வு
mode: subagent
permission:
  edit: deny
  bash: ask
  webfetch: deny
---

குறியீட்டை மட்டுமே பகுப்பாய்வு செய்து மாற்றங்களை பரிந்துரைக்கவும்.

குறிப்பு:

வாதங்களுடன் கட்டளைகளுக்கு வடிவ பொருத்தத்தைப் பயன்படுத்தவும். "grep *" grep pattern file.txt ஐ அனுமதிக்கிறது, அதே சமயம் "grep" மட்டுமே அதைத் தடுக்கும். git status போன்ற கட்டளைகள் இயல்பான நடத்தைக்கு வேலை செய்கின்றன ஆனால் வாதங்கள் அனுப்பப்படும் போது வெளிப்படையான அனுமதி தேவை (like "git status *").

Ctrl+I