@vess-id/ai-identity 0.15.1 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -77,6 +77,7 @@ __export(index_exports, {
77
77
  PROVIDER_ALIASES: () => PROVIDER_ALIASES,
78
78
  REAUTH_REQUIRED_ACTION: () => REAUTH_REQUIRED_ACTION,
79
79
  RESOURCE_TYPES: () => RESOURCE_TYPES,
80
+ RESOURCE_TYPE_LABELS: () => RESOURCE_TYPE_LABELS,
80
81
  ReceiptStatus: () => ReceiptStatus,
81
82
  SDJwtClient: () => SDJwtClient,
82
83
  SIGNATURE_HEADER: () => SIGNATURE_HEADER,
@@ -104,9 +105,11 @@ __export(index_exports, {
104
105
  buildKbJwtPayload: () => buildKbJwtPayload,
105
106
  buildPhase1VcClaims: () => buildPhase1VcClaims,
106
107
  buildValidationErrors: () => buildValidationErrors,
108
+ canonicalResourceId: () => canonicalResourceId,
107
109
  canonicalizeAction: () => canonicalizeAction,
108
110
  checkPermissionWithVP: () => checkPermissionWithVP,
109
111
  classifyCedarErrorMessage: () => classifyCedarErrorMessage,
112
+ compareResourceIds: () => compareResourceIds,
110
113
  configure: () => configure,
111
114
  createAjv: () => createAjv,
112
115
  createCedarEngine: () => createCedarEngine,
@@ -148,6 +151,7 @@ __export(index_exports, {
148
151
  isWriteAction: () => isWriteAction,
149
152
  loadActionRegistryFromFile: () => loadActionRegistryFromFile,
150
153
  loadActionRegistryFromObject: () => loadActionRegistryFromObject,
154
+ looksLikeNativeId: () => looksLikeNativeId,
151
155
  normalizeDomain: () => normalizeDomain,
152
156
  normalizeMcpActionName: () => normalizeMcpActionName,
153
157
  parseGrantAction: () => parseGrantAction,
@@ -4717,7 +4721,7 @@ var ACTION_REGISTRY = {
4717
4721
  action: "github.issue.create",
4718
4722
  resource_type: "github:repo",
4719
4723
  required_relations: ["editor", "act_as"],
4720
- required_scopes: ["repo", "write:issues"],
4724
+ required_scopes: ["repo"],
4721
4725
  capability: "github.issues.triage",
4722
4726
  // Schema mirrors the server contract (GitHubConnectorAdapter
4723
4727
  // getSupportedActions inputSchema — packages/api/src/tool/adapters/
@@ -4739,36 +4743,1485 @@ var ACTION_REGISTRY = {
4739
4743
  constraints: { rate_bucket: "github.write" },
4740
4744
  effects: ["Create:Issue"],
4741
4745
  risk: "high",
4746
+ target_bindings: {
4747
+ resource_id: { source: "param", param: "repo", fallback_param: "repository" }
4748
+ },
4749
+ version: "1.0.0"
4750
+ },
4751
+ {
4752
+ action: "github.issue.list",
4753
+ resource_type: "github:repo",
4754
+ required_relations: ["viewer", "editor", "admin", "owner"],
4755
+ required_scopes: ["repo"],
4756
+ capability: "github.read.basic",
4757
+ // Schema mirrors the server contract (GitHubConnectorAdapter):
4758
+ // owner/repo are required params.
4759
+ input_schema: {
4760
+ type: "object",
4761
+ properties: {
4762
+ owner: { type: "string", minLength: 1, description: "Repository owner (username or organization)" },
4763
+ repo: { type: "string", minLength: 1, description: "Repository name" },
4764
+ state: { type: "string", enum: ["open", "closed", "all"] },
4765
+ labels: { type: "string" },
4766
+ sort: { type: "string", enum: ["created", "updated", "comments"] },
4767
+ direction: { type: "string", enum: ["asc", "desc"] },
4768
+ per_page: { type: "integer", minimum: 1, maximum: 100 },
4769
+ page: { type: "integer", minimum: 1 }
4770
+ },
4771
+ required: ["owner", "repo"],
4772
+ additionalProperties: false
4773
+ },
4774
+ constraints: { rate_bucket: "github.read" },
4775
+ effects: ["Read:IssueList"],
4776
+ risk: "low",
4777
+ target_bindings: {
4778
+ resource_id: { source: "param", param: "repo", fallback_param: "repository" }
4779
+ },
4780
+ version: "1.0.0"
4781
+ },
4782
+ {
4783
+ action: "github.issue.read",
4784
+ resource_type: "github:repo",
4785
+ required_relations: ["viewer", "editor", "admin", "owner"],
4786
+ required_scopes: ["repo"],
4787
+ capability: "github.read.basic",
4788
+ // Schema mirrors the server contract (GitHubConnectorAdapter):
4789
+ // owner/repo required, camelCase issueNumber (the adapter reads
4790
+ // params.issueNumber — snake_case issue_number was a drift).
4791
+ input_schema: {
4792
+ type: "object",
4793
+ properties: {
4794
+ owner: { type: "string", minLength: 1, description: "Repository owner (username or organization)" },
4795
+ repo: { type: "string", minLength: 1, description: "Repository name" },
4796
+ issueNumber: { type: "integer", minimum: 1, description: "Issue number" }
4797
+ },
4798
+ required: ["owner", "repo", "issueNumber"],
4799
+ additionalProperties: false
4800
+ },
4801
+ constraints: { rate_bucket: "github.read" },
4802
+ effects: ["Read:Issue"],
4803
+ risk: "low",
4804
+ target_bindings: {
4805
+ resource_id: { source: "param", param: "repo", fallback_param: "repository" }
4806
+ },
4807
+ version: "1.0.0"
4808
+ },
4809
+ {
4810
+ action: "github.issue.update",
4811
+ resource_type: "github:repo",
4812
+ required_relations: ["editor", "act_as"],
4813
+ required_scopes: ["repo"],
4814
+ capability: "github.issues.triage",
4815
+ // Schema mirrors the server contract (GitHubConnectorAdapter):
4816
+ // owner/repo required, camelCase issueNumber (the adapter reads
4817
+ // params.issueNumber — snake_case issue_number was a drift).
4818
+ input_schema: {
4819
+ type: "object",
4820
+ properties: {
4821
+ owner: { type: "string", minLength: 1, description: "Repository owner (username or organization)" },
4822
+ repo: { type: "string", minLength: 1, description: "Repository name" },
4823
+ issueNumber: { type: "integer", minimum: 1, description: "Issue number to update" },
4824
+ title: { type: "string" },
4825
+ body: { type: "string" },
4826
+ state: { type: "string", enum: ["open", "closed"] },
4827
+ labels: { type: "array", items: { type: "string" } },
4828
+ assignees: { type: "array", items: { type: "string" } }
4829
+ },
4830
+ required: ["owner", "repo", "issueNumber"],
4831
+ additionalProperties: false
4832
+ },
4833
+ constraints: { rate_bucket: "github.write" },
4834
+ effects: ["Update:Issue"],
4835
+ risk: "high",
4836
+ target_bindings: {
4837
+ resource_id: { source: "param", param: "repo", fallback_param: "repository" }
4838
+ },
4839
+ version: "1.0.0"
4840
+ },
4841
+ // ─── GitHub Pull Request Actions ───
4842
+ {
4843
+ action: "github.pr.create",
4844
+ resource_type: "github:repo",
4845
+ required_relations: ["editor", "act_as"],
4846
+ required_scopes: ["repo"],
4847
+ capability: "github.pulls.write",
4848
+ input_schema: {
4849
+ type: "object",
4850
+ properties: {
4851
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
4852
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
4853
+ title: { type: "string", description: "\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u306E\u30BF\u30A4\u30C8\u30EB" },
4854
+ head: { type: "string", description: "\u30DE\u30FC\u30B8\u5143\u30D6\u30E9\u30F3\u30C1\u540D" },
4855
+ base: { type: "string", description: "\u30DE\u30FC\u30B8\u5148\u30D6\u30E9\u30F3\u30C1\u540D" },
4856
+ body: { type: "string", description: "\u672C\u6587\uFF08\u7701\u7565\u53EF\uFF09" },
4857
+ draft: { type: "boolean", description: "\u30C9\u30E9\u30D5\u30C8\u3068\u3057\u3066\u4F5C\u6210\u3059\u308B\u304B\uFF08\u7701\u7565\u53EF\uFF09" }
4858
+ },
4859
+ required: ["owner", "repo", "title", "head", "base"],
4860
+ additionalProperties: false
4861
+ },
4862
+ constraints: { rate_bucket: "github.write" },
4863
+ effects: ["Create:PullRequest"],
4864
+ risk: "high",
4865
+ target_bindings: {
4866
+ resource_id: { source: "context", key: "resource_id" }
4867
+ },
4868
+ version: "1.0.0"
4869
+ },
4870
+ {
4871
+ action: "github.pr.list",
4872
+ resource_type: "github:repo",
4873
+ required_relations: ["viewer", "editor", "admin", "owner"],
4874
+ required_scopes: ["repo"],
4875
+ capability: "github.read.basic",
4876
+ input_schema: {
4877
+ type: "object",
4878
+ properties: {
4879
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
4880
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
4881
+ state: { type: "string", enum: ["open", "closed", "all"], description: "\u30D5\u30A3\u30EB\u30BF\u30FC\u72B6\u614B" },
4882
+ head: { type: "string", description: "\u30D8\u30C3\u30C9\u30D6\u30E9\u30F3\u30C1\u3067\u30D5\u30A3\u30EB\u30BF\u30FC\uFF08\u7701\u7565\u53EF\uFF09" },
4883
+ base: { type: "string", description: "\u30D9\u30FC\u30B9\u30D6\u30E9\u30F3\u30C1\u3067\u30D5\u30A3\u30EB\u30BF\u30FC\uFF08\u7701\u7565\u53EF\uFF09" },
4884
+ sort: { type: "string", enum: ["created", "updated", "popularity", "long-running"], description: "\u30BD\u30FC\u30C8\u9805\u76EE" },
4885
+ direction: { type: "string", enum: ["asc", "desc"], description: "\u30BD\u30FC\u30C8\u65B9\u5411" },
4886
+ per_page: { type: "integer", minimum: 1, description: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u4EF6\u6570\uFF08\u7701\u7565\u53EF\uFF09" },
4887
+ page: { type: "integer", minimum: 1, description: "\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u7701\u7565\u53EF\uFF09" }
4888
+ },
4889
+ required: ["owner", "repo"],
4890
+ additionalProperties: false
4891
+ },
4892
+ constraints: { rate_bucket: "github.read" },
4893
+ effects: ["Read:PullRequestList"],
4894
+ risk: "low",
4895
+ target_bindings: {
4896
+ resource_id: { source: "context", key: "resource_id" }
4897
+ },
4898
+ version: "1.0.0"
4899
+ },
4900
+ {
4901
+ action: "github.pr.read",
4902
+ resource_type: "github:repo",
4903
+ required_relations: ["viewer", "editor", "admin", "owner"],
4904
+ required_scopes: ["repo"],
4905
+ capability: "github.read.basic",
4906
+ input_schema: {
4907
+ type: "object",
4908
+ properties: {
4909
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
4910
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
4911
+ pullNumber: { type: "integer", minimum: 1, description: "\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u756A\u53F7" }
4912
+ },
4913
+ required: ["owner", "repo", "pullNumber"],
4914
+ additionalProperties: false
4915
+ },
4916
+ constraints: { rate_bucket: "github.read" },
4917
+ effects: ["Read:PullRequest"],
4918
+ risk: "low",
4919
+ target_bindings: {
4920
+ resource_id: { source: "context", key: "resource_id" }
4921
+ },
4922
+ version: "1.0.0"
4923
+ },
4924
+ {
4925
+ action: "github.pr.update",
4926
+ resource_type: "github:repo",
4927
+ required_relations: ["editor", "act_as"],
4928
+ required_scopes: ["repo"],
4929
+ capability: "github.pulls.write",
4930
+ input_schema: {
4931
+ type: "object",
4932
+ properties: {
4933
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
4934
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
4935
+ pullNumber: { type: "integer", minimum: 1, description: "\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u756A\u53F7" },
4936
+ title: { type: "string", description: "\u65B0\u3057\u3044\u30BF\u30A4\u30C8\u30EB\uFF08\u7701\u7565\u53EF\uFF09" },
4937
+ body: { type: "string", description: "\u65B0\u3057\u3044\u672C\u6587\uFF08\u7701\u7565\u53EF\uFF09" },
4938
+ state: { type: "string", enum: ["open", "closed"], description: "\u65B0\u3057\u3044\u72B6\u614B" },
4939
+ base: { type: "string", description: "\u30DE\u30FC\u30B8\u5148\u30D6\u30E9\u30F3\u30C1\u540D\uFF08\u7701\u7565\u53EF\uFF09" }
4940
+ },
4941
+ required: ["owner", "repo", "pullNumber"],
4942
+ additionalProperties: false
4943
+ },
4944
+ constraints: { rate_bucket: "github.write" },
4945
+ effects: ["Update:PullRequest"],
4946
+ risk: "high",
4947
+ target_bindings: {
4948
+ resource_id: { source: "context", key: "resource_id" }
4949
+ },
4950
+ version: "1.0.0"
4951
+ },
4952
+ {
4953
+ action: "github.pr.merge",
4954
+ resource_type: "github:repo",
4955
+ required_relations: ["editor", "act_as"],
4956
+ required_scopes: ["repo"],
4957
+ capability: "github.pulls.write",
4958
+ input_schema: {
4959
+ type: "object",
4960
+ properties: {
4961
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
4962
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
4963
+ pullNumber: { type: "integer", minimum: 1, description: "\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u756A\u53F7" },
4964
+ commitTitle: { type: "string", description: "\u30DE\u30FC\u30B8\u30B3\u30DF\u30C3\u30C8\u306E\u30BF\u30A4\u30C8\u30EB\uFF08\u7701\u7565\u53EF\uFF09" },
4965
+ commitMessage: { type: "string", description: "\u30DE\u30FC\u30B8\u30B3\u30DF\u30C3\u30C8\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\uFF08\u7701\u7565\u53EF\uFF09" },
4966
+ mergeMethod: { type: "string", enum: ["merge", "squash", "rebase"], description: "\u30DE\u30FC\u30B8\u65B9\u6CD5" }
4967
+ },
4968
+ required: ["owner", "repo", "pullNumber"],
4969
+ additionalProperties: false
4970
+ },
4971
+ constraints: { rate_bucket: "github.write" },
4972
+ effects: ["Merge:PullRequest"],
4973
+ risk: "high",
4974
+ target_bindings: {
4975
+ resource_id: { source: "context", key: "resource_id" }
4976
+ },
4977
+ version: "1.0.0"
4978
+ },
4979
+ {
4980
+ action: "github.pr.files.list",
4981
+ resource_type: "github:repo",
4982
+ required_relations: ["viewer", "editor", "admin", "owner"],
4983
+ required_scopes: ["repo"],
4984
+ capability: "github.read.basic",
4985
+ input_schema: {
4986
+ type: "object",
4987
+ properties: {
4988
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
4989
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
4990
+ pullNumber: { type: "integer", minimum: 1, description: "\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u756A\u53F7" },
4991
+ per_page: { type: "integer", minimum: 1, description: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u4EF6\u6570\uFF08\u7701\u7565\u53EF\uFF09" },
4992
+ page: { type: "integer", minimum: 1, description: "\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u7701\u7565\u53EF\uFF09" }
4993
+ },
4994
+ required: ["owner", "repo", "pullNumber"],
4995
+ additionalProperties: false
4996
+ },
4997
+ constraints: { rate_bucket: "github.read" },
4998
+ effects: ["Read:PullRequestFileList"],
4999
+ risk: "low",
5000
+ target_bindings: {
5001
+ resource_id: { source: "context", key: "resource_id" }
5002
+ },
5003
+ version: "1.0.0"
5004
+ },
5005
+ {
5006
+ action: "github.pr.review.list",
5007
+ resource_type: "github:repo",
5008
+ required_relations: ["viewer", "editor", "admin", "owner"],
5009
+ required_scopes: ["repo"],
5010
+ capability: "github.read.basic",
5011
+ input_schema: {
5012
+ type: "object",
5013
+ properties: {
5014
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5015
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5016
+ pullNumber: { type: "integer", minimum: 1, description: "\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u756A\u53F7" }
5017
+ },
5018
+ required: ["owner", "repo", "pullNumber"],
5019
+ additionalProperties: false
5020
+ },
5021
+ constraints: { rate_bucket: "github.read" },
5022
+ effects: ["Read:PullRequestReviewList"],
5023
+ risk: "low",
5024
+ target_bindings: {
5025
+ resource_id: { source: "context", key: "resource_id" }
5026
+ },
5027
+ version: "1.0.0"
5028
+ },
5029
+ {
5030
+ action: "github.pr.review.create",
5031
+ resource_type: "github:repo",
5032
+ required_relations: ["editor", "act_as"],
5033
+ required_scopes: ["repo"],
5034
+ capability: "github.pulls.write",
5035
+ input_schema: {
5036
+ type: "object",
5037
+ properties: {
5038
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5039
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5040
+ pullNumber: { type: "integer", minimum: 1, description: "\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u756A\u53F7" },
5041
+ event: { type: "string", enum: ["APPROVE", "REQUEST_CHANGES", "COMMENT"], description: "\u30EC\u30D3\u30E5\u30FC\u7A2E\u5225" },
5042
+ body: { type: "string", description: "\u30EC\u30D3\u30E5\u30FC\u30B3\u30E1\u30F3\u30C8\u672C\u6587\uFF08\u7701\u7565\u53EF\uFF09" }
5043
+ },
5044
+ required: ["owner", "repo", "pullNumber", "event"],
5045
+ additionalProperties: false
5046
+ },
5047
+ constraints: { rate_bucket: "github.write" },
5048
+ effects: ["Create:PullRequestReview"],
5049
+ risk: "high",
5050
+ target_bindings: {
5051
+ resource_id: { source: "context", key: "resource_id" }
5052
+ },
5053
+ version: "1.0.0"
5054
+ },
5055
+ {
5056
+ action: "github.pr.comment.reply",
5057
+ resource_type: "github:repo",
5058
+ required_relations: ["editor", "act_as"],
5059
+ required_scopes: ["repo"],
5060
+ capability: "github.pulls.write",
5061
+ input_schema: {
5062
+ type: "object",
5063
+ properties: {
5064
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5065
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5066
+ pullNumber: { type: "integer", minimum: 1, description: "\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u756A\u53F7" },
5067
+ commentId: { type: "integer", minimum: 1, description: "\u30EC\u30D3\u30E5\u30FC\u30B3\u30E1\u30F3\u30C8 ID" },
5068
+ body: { type: "string", description: "\u8FD4\u4FE1\u672C\u6587" }
5069
+ },
5070
+ required: ["owner", "repo", "pullNumber", "commentId", "body"],
5071
+ additionalProperties: false
5072
+ },
5073
+ constraints: { rate_bucket: "github.write" },
5074
+ effects: ["Create:PullRequestComment"],
5075
+ risk: "high",
5076
+ target_bindings: {
5077
+ resource_id: { source: "context", key: "resource_id" }
5078
+ },
5079
+ version: "1.0.0"
5080
+ },
5081
+ {
5082
+ action: "github.pr.branch.update",
5083
+ resource_type: "github:repo",
5084
+ required_relations: ["editor", "act_as"],
5085
+ required_scopes: ["repo"],
5086
+ capability: "github.pulls.write",
5087
+ input_schema: {
5088
+ type: "object",
5089
+ properties: {
5090
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5091
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5092
+ pullNumber: { type: "integer", minimum: 1, description: "\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8\u756A\u53F7" },
5093
+ expectedHeadSha: { type: "string", description: "\u671F\u5F85\u3059\u308B\u30D8\u30C3\u30C9 SHA\uFF08\u7701\u7565\u53EF\uFF09" }
5094
+ },
5095
+ required: ["owner", "repo", "pullNumber"],
5096
+ additionalProperties: false
5097
+ },
5098
+ constraints: { rate_bucket: "github.write" },
5099
+ effects: ["Update:Branch"],
5100
+ risk: "high",
5101
+ target_bindings: {
5102
+ resource_id: { source: "context", key: "resource_id" }
5103
+ },
5104
+ version: "1.0.0"
5105
+ },
5106
+ {
5107
+ action: "github.pr.search",
5108
+ resource_type: "github:repo",
5109
+ required_relations: ["viewer", "editor", "admin", "owner"],
5110
+ required_scopes: ["repo"],
5111
+ capability: "github.read.basic",
5112
+ input_schema: {
5113
+ type: "object",
5114
+ properties: {
5115
+ query: { type: "string", minLength: 1, description: "\u691C\u7D22\u30AF\u30A8\u30EA\u6587\u5B57\u5217\uFF08GitHub Search API \u69CB\u6587\uFF09" }
5116
+ },
5117
+ required: ["query"],
5118
+ additionalProperties: false
5119
+ },
5120
+ constraints: { rate_bucket: "github.read" },
5121
+ effects: ["Read:PullRequestSearch"],
5122
+ risk: "low",
5123
+ target_bindings: {
5124
+ resource_id: { source: "context", key: "resource_id" }
5125
+ },
5126
+ version: "1.0.0"
5127
+ },
5128
+ // ─── GitHub Repositories & Contents Actions ───
5129
+ {
5130
+ action: "github.repo.search",
5131
+ resource_type: "github:repo",
5132
+ required_relations: ["viewer", "editor", "admin", "owner"],
5133
+ required_scopes: ["repo"],
5134
+ capability: "github.read.basic",
5135
+ input_schema: {
5136
+ type: "object",
5137
+ properties: {
5138
+ query: { type: "string", minLength: 1, description: "\u691C\u7D22\u30AF\u30A8\u30EA\u6587\u5B57\u5217\uFF08GitHub Search API \u69CB\u6587\uFF09" },
5139
+ sort: { type: "string", description: "\u30BD\u30FC\u30C8\u9805\u76EE\uFF08\u7701\u7565\u53EF\uFF09" },
5140
+ order: { type: "string", enum: ["asc", "desc"], description: "\u30BD\u30FC\u30C8\u65B9\u5411\uFF08\u7701\u7565\u53EF\uFF09" },
5141
+ per_page: { type: "integer", minimum: 1, description: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u4EF6\u6570\uFF08\u7701\u7565\u53EF\uFF09" },
5142
+ page: { type: "integer", minimum: 1, description: "\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u7701\u7565\u53EF\uFF09" }
5143
+ },
5144
+ required: ["query"],
5145
+ additionalProperties: false
5146
+ },
5147
+ constraints: { rate_bucket: "github.read" },
5148
+ effects: ["Read:RepositorySearch"],
5149
+ risk: "low",
5150
+ target_bindings: {
5151
+ resource_id: { source: "context", key: "resource_id" }
5152
+ },
5153
+ version: "1.0.0"
5154
+ },
5155
+ {
5156
+ action: "github.repo.collaborator.list",
5157
+ resource_type: "github:repo",
5158
+ required_relations: ["viewer", "editor", "admin", "owner"],
5159
+ required_scopes: ["repo"],
5160
+ capability: "github.read.basic",
5161
+ input_schema: {
5162
+ type: "object",
5163
+ properties: {
5164
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5165
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5166
+ per_page: { type: "integer", minimum: 1, description: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u4EF6\u6570\uFF08\u7701\u7565\u53EF\uFF09" },
5167
+ page: { type: "integer", minimum: 1, description: "\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u7701\u7565\u53EF\uFF09" }
5168
+ },
5169
+ required: ["owner", "repo"],
5170
+ additionalProperties: false
5171
+ },
5172
+ constraints: { rate_bucket: "github.read" },
5173
+ effects: ["Read:CollaboratorList"],
5174
+ risk: "low",
5175
+ target_bindings: {
5176
+ resource_id: { source: "context", key: "resource_id" }
5177
+ },
5178
+ version: "1.0.0"
5179
+ },
5180
+ {
5181
+ action: "github.content.get",
5182
+ resource_type: "github:repo",
5183
+ required_relations: ["viewer", "editor", "admin", "owner"],
5184
+ required_scopes: ["repo"],
5185
+ capability: "github.read.basic",
5186
+ input_schema: {
5187
+ type: "object",
5188
+ properties: {
5189
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5190
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5191
+ path: { type: "string", minLength: 1, description: "\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u30D1\u30B9" },
5192
+ ref: { type: "string", description: "\u30D6\u30E9\u30F3\u30C1\u30FB\u30BF\u30B0\u30FB\u30B3\u30DF\u30C3\u30C8 SHA\uFF08\u7701\u7565\u53EF\uFF09" }
5193
+ },
5194
+ required: ["owner", "repo", "path"],
5195
+ additionalProperties: false
5196
+ },
5197
+ constraints: { rate_bucket: "github.read" },
5198
+ effects: ["Read:Content"],
5199
+ risk: "low",
5200
+ target_bindings: {
5201
+ resource_id: { source: "context", key: "resource_id" }
5202
+ },
5203
+ version: "1.0.0"
5204
+ },
5205
+ {
5206
+ action: "github.tree.get",
5207
+ resource_type: "github:repo",
5208
+ required_relations: ["viewer", "editor", "admin", "owner"],
5209
+ required_scopes: ["repo"],
5210
+ capability: "github.read.basic",
5211
+ input_schema: {
5212
+ type: "object",
5213
+ properties: {
5214
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5215
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5216
+ treeSha: { type: "string", minLength: 1, description: "\u30C4\u30EA\u30FC SHA \u307E\u305F\u306F\u30D6\u30E9\u30F3\u30C1\u540D" },
5217
+ recursive: { type: "boolean", description: "\u518D\u5E30\u7684\u306B\u53D6\u5F97\u3059\u308B\u304B\uFF08\u7701\u7565\u53EF\uFF09" }
5218
+ },
5219
+ required: ["owner", "repo", "treeSha"],
5220
+ additionalProperties: false
5221
+ },
5222
+ constraints: { rate_bucket: "github.read" },
5223
+ effects: ["Read:Tree"],
5224
+ risk: "low",
5225
+ target_bindings: {
5226
+ resource_id: { source: "context", key: "resource_id" }
5227
+ },
5228
+ version: "1.0.0"
5229
+ },
5230
+ {
5231
+ action: "github.branch.list",
5232
+ resource_type: "github:repo",
5233
+ required_relations: ["viewer", "editor", "admin", "owner"],
5234
+ required_scopes: ["repo"],
5235
+ capability: "github.read.basic",
5236
+ input_schema: {
5237
+ type: "object",
5238
+ properties: {
5239
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5240
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5241
+ per_page: { type: "integer", minimum: 1, description: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u4EF6\u6570\uFF08\u7701\u7565\u53EF\uFF09" },
5242
+ page: { type: "integer", minimum: 1, description: "\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u7701\u7565\u53EF\uFF09" }
5243
+ },
5244
+ required: ["owner", "repo"],
5245
+ additionalProperties: false
5246
+ },
5247
+ constraints: { rate_bucket: "github.read" },
5248
+ effects: ["Read:BranchList"],
5249
+ risk: "low",
5250
+ target_bindings: {
5251
+ resource_id: { source: "context", key: "resource_id" }
5252
+ },
5253
+ version: "1.0.0"
5254
+ },
5255
+ {
5256
+ action: "github.commit.get",
5257
+ resource_type: "github:repo",
5258
+ required_relations: ["viewer", "editor", "admin", "owner"],
5259
+ required_scopes: ["repo"],
5260
+ capability: "github.read.basic",
5261
+ input_schema: {
5262
+ type: "object",
5263
+ properties: {
5264
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5265
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5266
+ ref: { type: "string", minLength: 1, description: "\u30B3\u30DF\u30C3\u30C8 SHA\u30FB\u30D6\u30E9\u30F3\u30C1\u30FB\u30BF\u30B0" }
5267
+ },
5268
+ required: ["owner", "repo", "ref"],
5269
+ additionalProperties: false
5270
+ },
5271
+ constraints: { rate_bucket: "github.read" },
5272
+ effects: ["Read:Commit"],
5273
+ risk: "low",
5274
+ target_bindings: {
5275
+ resource_id: { source: "context", key: "resource_id" }
5276
+ },
5277
+ version: "1.0.0"
5278
+ },
5279
+ {
5280
+ action: "github.commit.list",
5281
+ resource_type: "github:repo",
5282
+ required_relations: ["viewer", "editor", "admin", "owner"],
5283
+ required_scopes: ["repo"],
5284
+ capability: "github.read.basic",
5285
+ input_schema: {
5286
+ type: "object",
5287
+ properties: {
5288
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5289
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5290
+ sha: { type: "string", description: "\u30D6\u30E9\u30F3\u30C1\u540D\u307E\u305F\u306F\u958B\u59CB\u30B3\u30DF\u30C3\u30C8 SHA\uFF08\u7701\u7565\u53EF\uFF09" },
5291
+ path: { type: "string", description: "\u3053\u306E\u30D1\u30B9\u306B\u5F71\u97FF\u3059\u308B\u30B3\u30DF\u30C3\u30C8\u306E\u307F\uFF08\u7701\u7565\u53EF\uFF09" },
5292
+ author: { type: "string", description: "\u30B3\u30DF\u30C3\u30C8\u4F5C\u8005\u3067\u30D5\u30A3\u30EB\u30BF\u30FC\uFF08\u7701\u7565\u53EF\uFF09" },
5293
+ since: { type: "string", description: "\u3053\u306E\u65E5\u6642\u4EE5\u964D\uFF08ISO 8601\u3001\u7701\u7565\u53EF\uFF09" },
5294
+ until: { type: "string", description: "\u3053\u306E\u65E5\u6642\u4EE5\u524D\uFF08ISO 8601\u3001\u7701\u7565\u53EF\uFF09" },
5295
+ per_page: { type: "integer", minimum: 1, description: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u4EF6\u6570\uFF08\u7701\u7565\u53EF\uFF09" },
5296
+ page: { type: "integer", minimum: 1, description: "\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u7701\u7565\u53EF\uFF09" }
5297
+ },
5298
+ required: ["owner", "repo"],
5299
+ additionalProperties: false
5300
+ },
5301
+ constraints: { rate_bucket: "github.read" },
5302
+ effects: ["Read:CommitList"],
5303
+ risk: "low",
5304
+ target_bindings: {
5305
+ resource_id: { source: "context", key: "resource_id" }
5306
+ },
5307
+ version: "1.0.0"
5308
+ },
5309
+ {
5310
+ action: "github.commit.search",
5311
+ resource_type: "github:repo",
5312
+ required_relations: ["viewer", "editor", "admin", "owner"],
5313
+ required_scopes: ["repo"],
5314
+ capability: "github.read.basic",
5315
+ input_schema: {
5316
+ type: "object",
5317
+ properties: {
5318
+ query: { type: "string", minLength: 1, description: "\u691C\u7D22\u30AF\u30A8\u30EA\u6587\u5B57\u5217\uFF08GitHub Search API \u69CB\u6587\uFF09" },
5319
+ sort: { type: "string", enum: ["author-date", "committer-date"], description: "\u30BD\u30FC\u30C8\u9805\u76EE\uFF08\u7701\u7565\u53EF\uFF09" },
5320
+ order: { type: "string", enum: ["asc", "desc"], description: "\u30BD\u30FC\u30C8\u65B9\u5411\uFF08\u7701\u7565\u53EF\uFF09" },
5321
+ per_page: { type: "integer", minimum: 1, description: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u4EF6\u6570\uFF08\u7701\u7565\u53EF\uFF09" },
5322
+ page: { type: "integer", minimum: 1, description: "\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u7701\u7565\u53EF\uFF09" }
5323
+ },
5324
+ required: ["query"],
5325
+ additionalProperties: false
5326
+ },
5327
+ constraints: { rate_bucket: "github.read" },
5328
+ effects: ["Read:CommitSearch"],
5329
+ risk: "low",
5330
+ target_bindings: {
5331
+ resource_id: { source: "context", key: "resource_id" }
5332
+ },
5333
+ version: "1.0.0"
5334
+ },
5335
+ {
5336
+ action: "github.tag.list",
5337
+ resource_type: "github:repo",
5338
+ required_relations: ["viewer", "editor", "admin", "owner"],
5339
+ required_scopes: ["repo"],
5340
+ capability: "github.read.basic",
5341
+ input_schema: {
5342
+ type: "object",
5343
+ properties: {
5344
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5345
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5346
+ per_page: { type: "integer", minimum: 1, description: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u4EF6\u6570\uFF08\u7701\u7565\u53EF\uFF09" },
5347
+ page: { type: "integer", minimum: 1, description: "\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u7701\u7565\u53EF\uFF09" }
5348
+ },
5349
+ required: ["owner", "repo"],
5350
+ additionalProperties: false
5351
+ },
5352
+ constraints: { rate_bucket: "github.read" },
5353
+ effects: ["Read:TagList"],
5354
+ risk: "low",
5355
+ target_bindings: {
5356
+ resource_id: { source: "context", key: "resource_id" }
5357
+ },
5358
+ version: "1.0.0"
5359
+ },
5360
+ {
5361
+ action: "github.release.list",
5362
+ resource_type: "github:repo",
5363
+ required_relations: ["viewer", "editor", "admin", "owner"],
5364
+ required_scopes: ["repo"],
5365
+ capability: "github.read.basic",
5366
+ input_schema: {
5367
+ type: "object",
5368
+ properties: {
5369
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5370
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5371
+ per_page: { type: "integer", minimum: 1, description: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u4EF6\u6570\uFF08\u7701\u7565\u53EF\uFF09" },
5372
+ page: { type: "integer", minimum: 1, description: "\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u7701\u7565\u53EF\uFF09" }
5373
+ },
5374
+ required: ["owner", "repo"],
5375
+ additionalProperties: false
5376
+ },
5377
+ constraints: { rate_bucket: "github.read" },
5378
+ effects: ["Read:ReleaseList"],
5379
+ risk: "low",
5380
+ target_bindings: {
5381
+ resource_id: { source: "context", key: "resource_id" }
5382
+ },
5383
+ version: "1.0.0"
5384
+ },
5385
+ {
5386
+ action: "github.release.getLatest",
5387
+ resource_type: "github:repo",
5388
+ required_relations: ["viewer", "editor", "admin", "owner"],
5389
+ required_scopes: ["repo"],
5390
+ capability: "github.read.basic",
5391
+ input_schema: {
5392
+ type: "object",
5393
+ properties: {
5394
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5395
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" }
5396
+ },
5397
+ required: ["owner", "repo"],
5398
+ additionalProperties: false
5399
+ },
5400
+ constraints: { rate_bucket: "github.read" },
5401
+ effects: ["Read:Release"],
5402
+ risk: "low",
5403
+ target_bindings: {
5404
+ resource_id: { source: "context", key: "resource_id" }
5405
+ },
5406
+ version: "1.0.0"
5407
+ },
5408
+ {
5409
+ action: "github.release.getByTag",
5410
+ resource_type: "github:repo",
5411
+ required_relations: ["viewer", "editor", "admin", "owner"],
5412
+ required_scopes: ["repo"],
5413
+ capability: "github.read.basic",
5414
+ input_schema: {
5415
+ type: "object",
5416
+ properties: {
5417
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5418
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5419
+ tag: { type: "string", minLength: 1, description: "\u30BF\u30B0\u540D" }
5420
+ },
5421
+ required: ["owner", "repo", "tag"],
5422
+ additionalProperties: false
5423
+ },
5424
+ constraints: { rate_bucket: "github.read" },
5425
+ effects: ["Read:Release"],
5426
+ risk: "low",
5427
+ target_bindings: {
5428
+ resource_id: { source: "context", key: "resource_id" }
5429
+ },
5430
+ version: "1.0.0"
5431
+ },
5432
+ {
5433
+ action: "github.code.search",
5434
+ resource_type: "github:repo",
5435
+ required_relations: ["viewer", "editor", "admin", "owner"],
5436
+ required_scopes: ["repo"],
5437
+ capability: "github.read.basic",
5438
+ input_schema: {
5439
+ type: "object",
5440
+ properties: {
5441
+ query: { type: "string", minLength: 1, description: "\u691C\u7D22\u30AF\u30A8\u30EA\u6587\u5B57\u5217\uFF08GitHub Search API \u69CB\u6587\uFF09" },
5442
+ sort: { type: "string", enum: ["indexed"], description: "\u30BD\u30FC\u30C8\u9805\u76EE\uFF08\u7701\u7565\u53EF\uFF09" },
5443
+ order: { type: "string", enum: ["asc", "desc"], description: "\u30BD\u30FC\u30C8\u65B9\u5411\uFF08\u7701\u7565\u53EF\uFF09" },
5444
+ per_page: { type: "integer", minimum: 1, description: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u4EF6\u6570\uFF08\u7701\u7565\u53EF\uFF09" },
5445
+ page: { type: "integer", minimum: 1, description: "\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u7701\u7565\u53EF\uFF09" }
5446
+ },
5447
+ required: ["query"],
5448
+ additionalProperties: false
5449
+ },
5450
+ constraints: { rate_bucket: "github.read" },
5451
+ effects: ["Read:CodeSearch"],
5452
+ risk: "low",
5453
+ target_bindings: {
5454
+ resource_id: { source: "context", key: "resource_id" }
5455
+ },
5456
+ version: "1.0.0"
5457
+ },
5458
+ {
5459
+ action: "github.repo.create",
5460
+ resource_type: "github:repo",
5461
+ required_relations: ["editor", "act_as"],
5462
+ required_scopes: ["repo"],
5463
+ capability: "github.repos.write",
5464
+ input_schema: {
5465
+ type: "object",
5466
+ properties: {
5467
+ name: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5468
+ description: { type: "string", description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u8AAC\u660E\uFF08\u7701\u7565\u53EF\uFF09" },
5469
+ private: { type: "boolean", description: "\u30D7\u30E9\u30A4\u30D9\u30FC\u30C8\u30EA\u30DD\u30B8\u30C8\u30EA\u306B\u3059\u308B\u304B\uFF08\u7701\u7565\u53EF\uFF09" },
5470
+ org: { type: "string", description: "\u4F5C\u6210\u5148\u306E\u7D44\u7E54\u540D\uFF08\u7701\u7565\u6642\u306F\u8A8D\u8A3C\u30E6\u30FC\u30B6\u30FC\u914D\u4E0B\u306B\u4F5C\u6210\uFF09" },
5471
+ autoInit: { type: "boolean", description: "README \u3067\u521D\u671F\u5316\u3059\u308B\u304B\uFF08\u7701\u7565\u53EF\uFF09" }
5472
+ },
5473
+ required: ["name"],
5474
+ additionalProperties: false
5475
+ },
5476
+ constraints: { rate_bucket: "github.write" },
5477
+ effects: ["Create:Repository"],
5478
+ risk: "high",
5479
+ target_bindings: {
5480
+ resource_id: { source: "context", key: "resource_id" }
5481
+ },
5482
+ version: "1.0.0"
5483
+ },
5484
+ {
5485
+ action: "github.repo.fork",
5486
+ resource_type: "github:repo",
5487
+ required_relations: ["editor", "act_as"],
5488
+ required_scopes: ["repo"],
5489
+ capability: "github.repos.write",
5490
+ input_schema: {
5491
+ type: "object",
5492
+ properties: {
5493
+ owner: { type: "string", minLength: 1, description: "\u30D5\u30A9\u30FC\u30AF\u5143\u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u30AA\u30FC\u30CA\u30FC" },
5494
+ repo: { type: "string", minLength: 1, description: "\u30D5\u30A9\u30FC\u30AF\u5143\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5495
+ organization: { type: "string", description: "\u30D5\u30A9\u30FC\u30AF\u5148\u306E\u7D44\u7E54\u540D\uFF08\u7701\u7565\u53EF\uFF09" }
5496
+ },
5497
+ required: ["owner", "repo"],
5498
+ additionalProperties: false
5499
+ },
5500
+ constraints: { rate_bucket: "github.write" },
5501
+ effects: ["Create:RepositoryFork"],
5502
+ risk: "high",
5503
+ target_bindings: {
5504
+ resource_id: { source: "context", key: "resource_id" }
5505
+ },
5506
+ version: "1.0.0"
5507
+ },
5508
+ {
5509
+ action: "github.content.createOrUpdate",
5510
+ resource_type: "github:repo",
5511
+ required_relations: ["editor", "act_as"],
5512
+ required_scopes: ["repo"],
5513
+ capability: "github.repos.write",
5514
+ input_schema: {
5515
+ type: "object",
5516
+ properties: {
5517
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5518
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5519
+ path: { type: "string", minLength: 1, description: "\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9" },
5520
+ message: { type: "string", minLength: 1, description: "\u30B3\u30DF\u30C3\u30C8\u30E1\u30C3\u30BB\u30FC\u30B8" },
5521
+ content: { type: "string", minLength: 1, description: "\u30D5\u30A1\u30A4\u30EB\u5185\u5BB9\uFF08Base64 \u30A8\u30F3\u30B3\u30FC\u30C9\u6587\u5B57\u5217\uFF09" },
5522
+ branch: { type: "string", description: "\u5BFE\u8C61\u30D6\u30E9\u30F3\u30C1\uFF08\u7701\u7565\u53EF\uFF09" },
5523
+ sha: { type: "string", description: "\u66F4\u65B0\u6642\u306B\u6307\u5B9A\u3059\u308B\u65E2\u5B58\u30D5\u30A1\u30A4\u30EB\u306E blob SHA\uFF08\u7701\u7565\u53EF\uFF09" }
5524
+ },
5525
+ required: ["owner", "repo", "path", "message", "content"],
5526
+ additionalProperties: false
5527
+ },
5528
+ constraints: { rate_bucket: "github.write" },
5529
+ effects: ["Create:Content"],
5530
+ risk: "high",
5531
+ target_bindings: {
5532
+ resource_id: { source: "context", key: "resource_id" }
5533
+ },
5534
+ version: "1.0.0"
5535
+ },
5536
+ {
5537
+ action: "github.content.delete",
5538
+ resource_type: "github:repo",
5539
+ required_relations: ["editor", "act_as"],
5540
+ required_scopes: ["repo"],
5541
+ capability: "github.repos.write",
5542
+ input_schema: {
5543
+ type: "object",
5544
+ properties: {
5545
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5546
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5547
+ path: { type: "string", minLength: 1, description: "\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9" },
5548
+ message: { type: "string", minLength: 1, description: "\u30B3\u30DF\u30C3\u30C8\u30E1\u30C3\u30BB\u30FC\u30B8" },
5549
+ sha: { type: "string", minLength: 1, description: "\u524A\u9664\u5BFE\u8C61\u30D5\u30A1\u30A4\u30EB\u306E blob SHA" },
5550
+ branch: { type: "string", description: "\u5BFE\u8C61\u30D6\u30E9\u30F3\u30C1\uFF08\u7701\u7565\u53EF\uFF09" }
5551
+ },
5552
+ required: ["owner", "repo", "path", "message", "sha"],
5553
+ additionalProperties: false
5554
+ },
5555
+ constraints: { rate_bucket: "github.write" },
5556
+ effects: ["Delete:Content"],
5557
+ risk: "high",
5558
+ target_bindings: {
5559
+ resource_id: { source: "context", key: "resource_id" }
5560
+ },
5561
+ version: "1.0.0"
5562
+ },
5563
+ {
5564
+ action: "github.branch.create",
5565
+ resource_type: "github:repo",
5566
+ required_relations: ["editor", "act_as"],
5567
+ required_scopes: ["repo"],
5568
+ capability: "github.repos.write",
5569
+ input_schema: {
5570
+ type: "object",
5571
+ properties: {
5572
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5573
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5574
+ branch: { type: "string", minLength: 1, description: "\u4F5C\u6210\u3059\u308B\u65B0\u3057\u3044\u30D6\u30E9\u30F3\u30C1\u540D" },
5575
+ fromBranch: { type: "string", description: "\u57FA\u70B9\u3068\u3059\u308B\u30D6\u30E9\u30F3\u30C1\u540D\uFF08\u7701\u7565\u6642\u306F\u30C7\u30D5\u30A9\u30EB\u30C8\u30D6\u30E9\u30F3\u30C1\uFF09" }
5576
+ },
5577
+ required: ["owner", "repo", "branch"],
5578
+ additionalProperties: false
5579
+ },
5580
+ constraints: { rate_bucket: "github.write" },
5581
+ effects: ["Create:Branch"],
5582
+ risk: "high",
5583
+ target_bindings: {
5584
+ resource_id: { source: "context", key: "resource_id" }
5585
+ },
5586
+ version: "1.0.0"
5587
+ },
5588
+ // ─── GitHub Issues 拡張 & Labels Actions ───
5589
+ {
5590
+ action: "github.issue.comment.create",
5591
+ resource_type: "github:repo",
5592
+ required_relations: ["editor", "act_as"],
5593
+ required_scopes: ["repo"],
5594
+ capability: "github.issues.triage",
5595
+ input_schema: {
5596
+ type: "object",
5597
+ properties: {
5598
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5599
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5600
+ issueNumber: { type: "integer", minimum: 1, description: "Issue \u307E\u305F\u306F Pull Request \u756A\u53F7" },
5601
+ body: { type: "string", minLength: 1, description: "\u30B3\u30E1\u30F3\u30C8\u672C\u6587" }
5602
+ },
5603
+ required: ["owner", "repo", "issueNumber", "body"],
5604
+ additionalProperties: false
5605
+ },
5606
+ constraints: { rate_bucket: "github.write" },
5607
+ effects: ["Create:IssueComment"],
5608
+ risk: "high",
5609
+ target_bindings: {
5610
+ resource_id: { source: "context", key: "resource_id" }
5611
+ },
5612
+ version: "1.0.0"
5613
+ },
5614
+ {
5615
+ action: "github.issue.subissue.write",
5616
+ resource_type: "github:repo",
5617
+ required_relations: ["editor", "act_as"],
5618
+ required_scopes: ["repo"],
5619
+ capability: "github.issues.triage",
5620
+ input_schema: {
5621
+ type: "object",
5622
+ properties: {
5623
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5624
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5625
+ issueNumber: { type: "integer", minimum: 1, description: "\u89AA Issue \u756A\u53F7" },
5626
+ subIssueId: { type: "integer", minimum: 1, description: "\u30B5\u30D6 Issue \u306E ID\uFF08issue number \u3067\u306F\u306A\u304F\u5185\u90E8 ID\uFF09" }
5627
+ },
5628
+ required: ["owner", "repo", "issueNumber", "subIssueId"],
5629
+ additionalProperties: false
5630
+ },
5631
+ constraints: { rate_bucket: "github.write" },
5632
+ effects: ["Write:SubIssue"],
5633
+ risk: "high",
5634
+ target_bindings: {
5635
+ resource_id: { source: "context", key: "resource_id" }
5636
+ },
5637
+ version: "1.0.0"
5638
+ },
5639
+ {
5640
+ action: "github.issue.search",
5641
+ resource_type: "github:repo",
5642
+ required_relations: ["viewer", "editor", "admin", "owner"],
5643
+ required_scopes: ["repo"],
5644
+ capability: "github.read.basic",
5645
+ input_schema: {
5646
+ type: "object",
5647
+ properties: {
5648
+ query: { type: "string", minLength: 1, description: "\u691C\u7D22\u30AF\u30A8\u30EA\u6587\u5B57\u5217\uFF08GitHub Search API \u69CB\u6587\u3002`is:issue` \u7B49\u306F\u547C\u3073\u51FA\u3057\u5074\u3067\u542B\u3081\u308B\uFF09" },
5649
+ sort: { type: "string", description: "\u30BD\u30FC\u30C8\u9805\u76EE\uFF08\u7701\u7565\u53EF\uFF09" },
5650
+ order: { type: "string", enum: ["asc", "desc"], description: "\u30BD\u30FC\u30C8\u65B9\u5411\uFF08\u7701\u7565\u53EF\uFF09" },
5651
+ per_page: { type: "integer", minimum: 1, description: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u4EF6\u6570\uFF08\u7701\u7565\u53EF\uFF09" },
5652
+ page: { type: "integer", minimum: 1, description: "\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u7701\u7565\u53EF\uFF09" }
5653
+ },
5654
+ required: ["query"],
5655
+ additionalProperties: false
5656
+ },
5657
+ constraints: { rate_bucket: "github.read" },
5658
+ effects: ["Read:IssueSearch"],
5659
+ risk: "low",
5660
+ target_bindings: {
5661
+ resource_id: { source: "context", key: "resource_id" }
5662
+ },
5663
+ version: "1.0.0"
5664
+ },
5665
+ {
5666
+ action: "github.issue.types.list",
5667
+ resource_type: "github:repo",
5668
+ required_relations: ["viewer", "editor", "admin", "owner"],
5669
+ required_scopes: ["read:org"],
5670
+ capability: "github.read.basic",
5671
+ input_schema: {
5672
+ type: "object",
5673
+ properties: {
5674
+ org: { type: "string", minLength: 1, description: "\u7D44\u7E54\u540D\uFF08Organization \u306E\u30ED\u30B0\u30A4\u30F3\u540D\uFF09" }
5675
+ },
5676
+ required: ["org"],
5677
+ additionalProperties: false
5678
+ },
5679
+ constraints: { rate_bucket: "github.read" },
5680
+ effects: ["Read:IssueTypes"],
5681
+ risk: "low",
5682
+ target_bindings: {
5683
+ resource_id: { source: "context", key: "resource_id" }
5684
+ },
5685
+ version: "1.0.0"
5686
+ },
5687
+ {
5688
+ action: "github.label.get",
5689
+ resource_type: "github:repo",
5690
+ required_relations: ["viewer", "editor", "admin", "owner"],
5691
+ required_scopes: ["repo"],
5692
+ capability: "github.read.basic",
5693
+ input_schema: {
5694
+ type: "object",
5695
+ properties: {
5696
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5697
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5698
+ name: { type: "string", minLength: 1, description: "\u30E9\u30D9\u30EB\u540D" }
5699
+ },
5700
+ required: ["owner", "repo", "name"],
5701
+ additionalProperties: false
5702
+ },
5703
+ constraints: { rate_bucket: "github.read" },
5704
+ effects: ["Read:Label"],
5705
+ risk: "low",
5706
+ target_bindings: {
5707
+ resource_id: { source: "context", key: "resource_id" }
5708
+ },
5709
+ version: "1.0.0"
5710
+ },
5711
+ {
5712
+ action: "github.label.list",
5713
+ resource_type: "github:repo",
5714
+ required_relations: ["viewer", "editor", "admin", "owner"],
5715
+ required_scopes: ["repo"],
5716
+ capability: "github.read.basic",
5717
+ input_schema: {
5718
+ type: "object",
5719
+ properties: {
5720
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5721
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5722
+ per_page: { type: "integer", minimum: 1, description: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u4EF6\u6570\uFF08\u7701\u7565\u53EF\uFF09" },
5723
+ page: { type: "integer", minimum: 1, description: "\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u7701\u7565\u53EF\uFF09" }
5724
+ },
5725
+ required: ["owner", "repo"],
5726
+ additionalProperties: false
5727
+ },
5728
+ constraints: { rate_bucket: "github.read" },
5729
+ effects: ["Read:LabelList"],
5730
+ risk: "low",
5731
+ target_bindings: {
5732
+ resource_id: { source: "context", key: "resource_id" }
5733
+ },
5734
+ version: "1.0.0"
5735
+ },
5736
+ {
5737
+ action: "github.label.write",
5738
+ resource_type: "github:repo",
5739
+ required_relations: ["editor", "act_as"],
5740
+ required_scopes: ["repo"],
5741
+ capability: "github.issues.triage",
5742
+ input_schema: {
5743
+ type: "object",
5744
+ properties: {
5745
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5746
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5747
+ name: { type: "string", minLength: 1, description: "\u30E9\u30D9\u30EB\u540D\uFF08\u65E2\u5B58\u306A\u3089\u66F4\u65B0\u3001\u306A\u3051\u308C\u3070\u65B0\u898F\u4F5C\u6210\uFF09" },
5748
+ color: { type: "string", description: "16\u9032\u30AB\u30E9\u30FC\u30B3\u30FC\u30C9\uFF08\u5148\u982D\u306E # \u306F\u4E0D\u8981\u3001\u7701\u7565\u53EF\uFF09" },
5749
+ description: { type: "string", description: "\u30E9\u30D9\u30EB\u306E\u8AAC\u660E\uFF08\u7701\u7565\u53EF\uFF09" },
5750
+ newName: { type: "string", description: "\u66F4\u65B0\u6642\u306E\u65B0\u3057\u3044\u30E9\u30D9\u30EB\u540D\uFF08\u6539\u540D\u3059\u308B\u5834\u5408\u306E\u307F\u6307\u5B9A\u3001\u7701\u7565\u53EF\uFF09" }
5751
+ },
5752
+ required: ["owner", "repo", "name"],
5753
+ additionalProperties: false
5754
+ },
5755
+ constraints: { rate_bucket: "github.write" },
5756
+ effects: ["Write:Label"],
5757
+ risk: "high",
5758
+ target_bindings: {
5759
+ resource_id: { source: "context", key: "resource_id" }
5760
+ },
5761
+ version: "1.0.0"
5762
+ },
5763
+ // ─── GitHub Actions(CI) / Stargazers / Context / Users Actions ───
5764
+ {
5765
+ action: "github.workflow.get",
5766
+ resource_type: "github:repo",
5767
+ required_relations: ["viewer", "editor", "admin", "owner"],
5768
+ required_scopes: ["repo"],
5769
+ capability: "github.read.basic",
5770
+ input_schema: {
5771
+ type: "object",
5772
+ properties: {
5773
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5774
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5775
+ workflowId: {
5776
+ type: ["string", "integer"],
5777
+ description: "\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306E\u6570\u5024 ID \u307E\u305F\u306F\u30D5\u30A1\u30A4\u30EB\u540D\uFF08\u4F8B: ci.yml\uFF09"
5778
+ }
5779
+ },
5780
+ required: ["owner", "repo", "workflowId"],
5781
+ additionalProperties: false
5782
+ },
5783
+ constraints: { rate_bucket: "github.read" },
5784
+ effects: ["Read:Workflow"],
5785
+ risk: "low",
5786
+ target_bindings: {
5787
+ resource_id: { source: "context", key: "resource_id" }
5788
+ },
5789
+ version: "1.0.0"
5790
+ },
5791
+ {
5792
+ action: "github.workflow.list",
5793
+ resource_type: "github:repo",
5794
+ required_relations: ["viewer", "editor", "admin", "owner"],
5795
+ required_scopes: ["repo"],
5796
+ capability: "github.read.basic",
5797
+ input_schema: {
5798
+ type: "object",
5799
+ properties: {
5800
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5801
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5802
+ per_page: { type: "integer", minimum: 1, description: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u4EF6\u6570\uFF08\u7701\u7565\u53EF\uFF09" },
5803
+ page: { type: "integer", minimum: 1, description: "\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u7701\u7565\u53EF\uFF09" }
5804
+ },
5805
+ required: ["owner", "repo"],
5806
+ additionalProperties: false
5807
+ },
5808
+ constraints: { rate_bucket: "github.read" },
5809
+ effects: ["Read:WorkflowList"],
5810
+ risk: "low",
5811
+ target_bindings: {
5812
+ resource_id: { source: "context", key: "resource_id" }
5813
+ },
5814
+ version: "1.0.0"
5815
+ },
5816
+ {
5817
+ action: "github.workflow.run",
5818
+ resource_type: "github:repo",
5819
+ required_relations: ["editor", "act_as"],
5820
+ required_scopes: ["repo"],
5821
+ capability: "github.repos.write",
5822
+ input_schema: {
5823
+ type: "object",
5824
+ properties: {
5825
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5826
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5827
+ workflowId: {
5828
+ type: ["string", "integer"],
5829
+ description: "\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306E\u6570\u5024 ID \u307E\u305F\u306F\u30D5\u30A1\u30A4\u30EB\u540D\uFF08\u4F8B: ci.yml\uFF09"
5830
+ },
5831
+ ref: { type: "string", minLength: 1, description: "\u5B9F\u884C\u5BFE\u8C61\u306E git ref\uFF08\u30D6\u30E9\u30F3\u30C1\u540D\u307E\u305F\u306F\u30BF\u30B0\u540D\uFF09" },
5832
+ inputs: {
5833
+ type: "object",
5834
+ description: "\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u3078\u306E\u5165\u529B\u5024\uFF08workflow_dispatch \u306E inputs\u3001\u7701\u7565\u53EF\uFF09",
5835
+ additionalProperties: true
5836
+ }
5837
+ },
5838
+ required: ["owner", "repo", "workflowId", "ref"],
5839
+ additionalProperties: false
5840
+ },
5841
+ constraints: { rate_bucket: "github.write" },
5842
+ effects: ["Run:Workflow"],
5843
+ risk: "high",
5844
+ target_bindings: {
5845
+ resource_id: { source: "context", key: "resource_id" }
5846
+ },
5847
+ version: "1.0.0"
5848
+ },
5849
+ {
5850
+ action: "github.workflow.jobLogs.get",
5851
+ resource_type: "github:repo",
5852
+ required_relations: ["viewer", "editor", "admin", "owner"],
5853
+ required_scopes: ["repo"],
5854
+ capability: "github.read.basic",
5855
+ input_schema: {
5856
+ type: "object",
5857
+ properties: {
5858
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5859
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
5860
+ jobId: { type: "integer", minimum: 1, description: "\u30B8\u30E7\u30D6\u306E\u6570\u5024 ID" }
5861
+ },
5862
+ required: ["owner", "repo", "jobId"],
5863
+ additionalProperties: false
5864
+ },
5865
+ constraints: { rate_bucket: "github.read" },
5866
+ effects: ["Read:JobLogs"],
5867
+ risk: "low",
5868
+ target_bindings: {
5869
+ resource_id: { source: "context", key: "resource_id" }
5870
+ },
5871
+ version: "1.0.0"
5872
+ },
5873
+ {
5874
+ action: "github.repo.starred.list",
5875
+ resource_type: "github:repo",
5876
+ required_relations: ["viewer", "editor", "admin", "owner"],
5877
+ required_scopes: ["repo"],
5878
+ capability: "github.read.basic",
5879
+ input_schema: {
5880
+ type: "object",
5881
+ properties: {
5882
+ per_page: { type: "integer", minimum: 1, description: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u4EF6\u6570\uFF08\u7701\u7565\u53EF\uFF09" },
5883
+ page: { type: "integer", minimum: 1, description: "\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u7701\u7565\u53EF\uFF09" },
5884
+ sort: { type: "string", enum: ["created", "updated"], description: "\u30BD\u30FC\u30C8\u9805\u76EE\uFF08\u7701\u7565\u53EF\uFF09" },
5885
+ direction: { type: "string", enum: ["asc", "desc"], description: "\u30BD\u30FC\u30C8\u65B9\u5411\uFF08\u7701\u7565\u53EF\uFF09" }
5886
+ },
5887
+ required: [],
5888
+ additionalProperties: false
5889
+ },
5890
+ constraints: { rate_bucket: "github.read" },
5891
+ effects: ["Read:StarredRepos"],
5892
+ risk: "low",
5893
+ target_bindings: {
5894
+ resource_id: { source: "context", key: "resource_id" }
5895
+ },
5896
+ version: "1.0.0"
5897
+ },
5898
+ {
5899
+ action: "github.repo.star",
5900
+ resource_type: "github:repo",
5901
+ required_relations: ["editor", "act_as"],
5902
+ required_scopes: ["repo"],
5903
+ capability: "github.repos.write",
5904
+ input_schema: {
5905
+ type: "object",
5906
+ properties: {
5907
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5908
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" }
5909
+ },
5910
+ required: ["owner", "repo"],
5911
+ additionalProperties: false
5912
+ },
5913
+ constraints: { rate_bucket: "github.write" },
5914
+ effects: ["Write:Star"],
5915
+ risk: "high",
5916
+ target_bindings: {
5917
+ resource_id: { source: "context", key: "resource_id" }
5918
+ },
5919
+ version: "1.0.0"
5920
+ },
5921
+ {
5922
+ action: "github.repo.unstar",
5923
+ resource_type: "github:repo",
5924
+ required_relations: ["editor", "act_as"],
5925
+ required_scopes: ["repo"],
5926
+ capability: "github.repos.write",
5927
+ input_schema: {
5928
+ type: "object",
5929
+ properties: {
5930
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
5931
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" }
5932
+ },
5933
+ required: ["owner", "repo"],
5934
+ additionalProperties: false
5935
+ },
5936
+ constraints: { rate_bucket: "github.write" },
5937
+ effects: ["Write:Unstar"],
5938
+ risk: "high",
4742
5939
  target_bindings: {
4743
5940
  resource_id: { source: "context", key: "resource_id" }
4744
5941
  },
4745
5942
  version: "1.0.0"
4746
5943
  },
4747
5944
  {
4748
- action: "github.issue.list",
5945
+ action: "github.user.me.get",
4749
5946
  resource_type: "github:repo",
4750
5947
  required_relations: ["viewer", "editor", "admin", "owner"],
4751
- required_scopes: ["repo", "read:issues"],
5948
+ required_scopes: ["repo"],
5949
+ capability: "github.read.basic",
5950
+ input_schema: {
5951
+ type: "object",
5952
+ properties: {},
5953
+ required: [],
5954
+ additionalProperties: false
5955
+ },
5956
+ constraints: { rate_bucket: "github.read" },
5957
+ effects: ["Read:AuthenticatedUser"],
5958
+ risk: "low",
5959
+ target_bindings: {
5960
+ resource_id: { source: "context", key: "resource_id" }
5961
+ },
5962
+ version: "1.0.0"
5963
+ },
5964
+ {
5965
+ action: "github.org.teams.list",
5966
+ resource_type: "github:repo",
5967
+ required_relations: ["viewer", "editor", "admin", "owner"],
5968
+ required_scopes: ["read:org"],
4752
5969
  capability: "github.read.basic",
4753
- // Schema mirrors the server contract (GitHubConnectorAdapter):
4754
- // owner/repo are required params.
4755
5970
  input_schema: {
4756
5971
  type: "object",
4757
5972
  properties: {
4758
- owner: { type: "string", minLength: 1, description: "Repository owner (username or organization)" },
4759
- repo: { type: "string", minLength: 1, description: "Repository name" },
4760
- state: { type: "string", enum: ["open", "closed", "all"] },
4761
- labels: { type: "string" },
4762
- sort: { type: "string", enum: ["created", "updated", "comments"] },
4763
- direction: { type: "string", enum: ["asc", "desc"] },
4764
- per_page: { type: "integer", minimum: 1, maximum: 100 },
4765
- page: { type: "integer", minimum: 1 }
5973
+ org: { type: "string", minLength: 1, description: "\u7D44\u7E54\u540D\uFF08Organization \u306E\u30ED\u30B0\u30A4\u30F3\u540D\uFF09" },
5974
+ per_page: { type: "integer", minimum: 1, description: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u4EF6\u6570\uFF08\u7701\u7565\u53EF\uFF09" },
5975
+ page: { type: "integer", minimum: 1, description: "\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u7701\u7565\u53EF\uFF09" }
5976
+ },
5977
+ required: ["org"],
5978
+ additionalProperties: false
5979
+ },
5980
+ constraints: { rate_bucket: "github.read" },
5981
+ effects: ["Read:OrgTeams"],
5982
+ risk: "low",
5983
+ target_bindings: {
5984
+ resource_id: { source: "context", key: "resource_id" }
5985
+ },
5986
+ version: "1.0.0"
5987
+ },
5988
+ {
5989
+ action: "github.team.members.list",
5990
+ resource_type: "github:repo",
5991
+ required_relations: ["viewer", "editor", "admin", "owner"],
5992
+ required_scopes: ["read:org"],
5993
+ capability: "github.read.basic",
5994
+ input_schema: {
5995
+ type: "object",
5996
+ properties: {
5997
+ org: { type: "string", minLength: 1, description: "\u7D44\u7E54\u540D\uFF08Organization \u306E\u30ED\u30B0\u30A4\u30F3\u540D\uFF09" },
5998
+ teamSlug: { type: "string", minLength: 1, description: "\u30C1\u30FC\u30E0\u306E slug" },
5999
+ per_page: { type: "integer", minimum: 1, description: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u4EF6\u6570\uFF08\u7701\u7565\u53EF\uFF09" },
6000
+ page: { type: "integer", minimum: 1, description: "\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u7701\u7565\u53EF\uFF09" }
6001
+ },
6002
+ required: ["org", "teamSlug"],
6003
+ additionalProperties: false
6004
+ },
6005
+ constraints: { rate_bucket: "github.read" },
6006
+ effects: ["Read:TeamMembers"],
6007
+ risk: "low",
6008
+ target_bindings: {
6009
+ resource_id: { source: "context", key: "resource_id" }
6010
+ },
6011
+ version: "1.0.0"
6012
+ },
6013
+ {
6014
+ action: "github.user.search",
6015
+ resource_type: "github:repo",
6016
+ required_relations: ["viewer", "editor", "admin", "owner"],
6017
+ required_scopes: ["repo"],
6018
+ capability: "github.read.basic",
6019
+ input_schema: {
6020
+ type: "object",
6021
+ properties: {
6022
+ query: { type: "string", minLength: 1, description: "\u691C\u7D22\u30AF\u30A8\u30EA\u6587\u5B57\u5217\uFF08GitHub Search API \u69CB\u6587\uFF09" },
6023
+ sort: { type: "string", enum: ["followers", "repositories", "joined"], description: "\u30BD\u30FC\u30C8\u9805\u76EE\uFF08\u7701\u7565\u53EF\uFF09" },
6024
+ order: { type: "string", enum: ["asc", "desc"], description: "\u30BD\u30FC\u30C8\u65B9\u5411\uFF08\u7701\u7565\u53EF\uFF09" },
6025
+ per_page: { type: "integer", minimum: 1, description: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u4EF6\u6570\uFF08\u7701\u7565\u53EF\uFF09" },
6026
+ page: { type: "integer", minimum: 1, description: "\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u7701\u7565\u53EF\uFF09" }
6027
+ },
6028
+ required: ["query"],
6029
+ additionalProperties: false
6030
+ },
6031
+ constraints: { rate_bucket: "github.read" },
6032
+ effects: ["Read:UserSearch"],
6033
+ risk: "low",
6034
+ target_bindings: {
6035
+ resource_id: { source: "context", key: "resource_id" }
6036
+ },
6037
+ version: "1.0.0"
6038
+ },
6039
+ // ─── GitHub Notifications / Gists Actions ───
6040
+ {
6041
+ action: "github.notification.list",
6042
+ resource_type: "github:repo",
6043
+ required_relations: ["viewer", "editor", "admin", "owner"],
6044
+ required_scopes: ["notifications"],
6045
+ capability: "github.read.basic",
6046
+ input_schema: {
6047
+ type: "object",
6048
+ properties: {
6049
+ all: { type: "boolean", description: "\u65E2\u8AAD\u3092\u542B\u3080\u5168\u901A\u77E5\u3092\u53D6\u5F97\u3059\u308B\u304B\uFF08\u7701\u7565\u53EF\u3001\u30C7\u30D5\u30A9\u30EB\u30C8 false\uFF09" },
6050
+ participating: { type: "boolean", description: "\u81EA\u5206\u304C\u53C2\u52A0\u3057\u3066\u3044\u308B\u901A\u77E5\u306E\u307F\u306B\u7D5E\u308B\u304B\uFF08\u7701\u7565\u53EF\uFF09" },
6051
+ since: { type: "string", description: "\u3053\u306E\u65E5\u6642\u4EE5\u964D\u306B\u66F4\u65B0\u3055\u308C\u305F\u901A\u77E5\u306E\u307F\uFF08ISO 8601\u3001\u7701\u7565\u53EF\uFF09" },
6052
+ before: { type: "string", description: "\u3053\u306E\u65E5\u6642\u3088\u308A\u524D\u306B\u66F4\u65B0\u3055\u308C\u305F\u901A\u77E5\u306E\u307F\uFF08ISO 8601\u3001\u7701\u7565\u53EF\uFF09" },
6053
+ per_page: { type: "integer", minimum: 1, description: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u4EF6\u6570\uFF08\u7701\u7565\u53EF\uFF09" },
6054
+ page: { type: "integer", minimum: 1, description: "\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u7701\u7565\u53EF\uFF09" }
6055
+ },
6056
+ required: [],
6057
+ additionalProperties: false
6058
+ },
6059
+ constraints: { rate_bucket: "github.read" },
6060
+ effects: ["Read:Notifications"],
6061
+ risk: "low",
6062
+ target_bindings: {
6063
+ resource_id: { source: "context", key: "resource_id" }
6064
+ },
6065
+ version: "1.0.0"
6066
+ },
6067
+ {
6068
+ action: "github.notification.get",
6069
+ resource_type: "github:repo",
6070
+ required_relations: ["viewer", "editor", "admin", "owner"],
6071
+ required_scopes: ["notifications"],
6072
+ capability: "github.read.basic",
6073
+ input_schema: {
6074
+ type: "object",
6075
+ properties: {
6076
+ threadId: { type: "integer", minimum: 1, description: "\u901A\u77E5\u30B9\u30EC\u30C3\u30C9\u306E\u6570\u5024 ID" }
6077
+ },
6078
+ required: ["threadId"],
6079
+ additionalProperties: false
6080
+ },
6081
+ constraints: { rate_bucket: "github.read" },
6082
+ effects: ["Read:NotificationThread"],
6083
+ risk: "low",
6084
+ target_bindings: {
6085
+ resource_id: { source: "context", key: "resource_id" }
6086
+ },
6087
+ version: "1.0.0"
6088
+ },
6089
+ {
6090
+ action: "github.notification.markRead",
6091
+ resource_type: "github:repo",
6092
+ required_relations: ["editor", "act_as"],
6093
+ required_scopes: ["notifications"],
6094
+ capability: "github.notifications.write",
6095
+ input_schema: {
6096
+ type: "object",
6097
+ properties: {
6098
+ threadId: { type: "integer", minimum: 1, description: "\u901A\u77E5\u30B9\u30EC\u30C3\u30C9\u306E\u6570\u5024 ID" }
6099
+ },
6100
+ required: ["threadId"],
6101
+ additionalProperties: false
6102
+ },
6103
+ constraints: { rate_bucket: "github.write" },
6104
+ effects: ["Write:NotificationThreadRead"],
6105
+ risk: "high",
6106
+ target_bindings: {
6107
+ resource_id: { source: "context", key: "resource_id" }
6108
+ },
6109
+ version: "1.0.0"
6110
+ },
6111
+ {
6112
+ action: "github.notification.markAllRead",
6113
+ resource_type: "github:repo",
6114
+ required_relations: ["editor", "act_as"],
6115
+ required_scopes: ["notifications"],
6116
+ capability: "github.notifications.write",
6117
+ input_schema: {
6118
+ type: "object",
6119
+ properties: {
6120
+ lastReadAt: { type: "string", description: "\u3053\u306E\u65E5\u6642\u4EE5\u524D\u306E\u901A\u77E5\u3092\u65E2\u8AAD\u306B\u3059\u308B\uFF08ISO 8601\u3001\u7701\u7565\u53EF\uFF09" }
6121
+ },
6122
+ required: [],
6123
+ additionalProperties: false
6124
+ },
6125
+ constraints: { rate_bucket: "github.write" },
6126
+ effects: ["Write:AllNotificationsRead"],
6127
+ risk: "high",
6128
+ target_bindings: {
6129
+ resource_id: { source: "context", key: "resource_id" }
6130
+ },
6131
+ version: "1.0.0"
6132
+ },
6133
+ {
6134
+ action: "github.notification.subscription.set",
6135
+ resource_type: "github:repo",
6136
+ required_relations: ["editor", "act_as"],
6137
+ required_scopes: ["notifications"],
6138
+ capability: "github.notifications.write",
6139
+ input_schema: {
6140
+ type: "object",
6141
+ properties: {
6142
+ threadId: { type: "integer", minimum: 1, description: "\u901A\u77E5\u30B9\u30EC\u30C3\u30C9\u306E\u6570\u5024 ID" },
6143
+ ignored: { type: "boolean", description: "\u30B9\u30EC\u30C3\u30C9\u306E\u901A\u77E5\u3092\u7121\u8996\u3059\u308B\u304B\uFF08\u7701\u7565\u53EF\uFF09" }
6144
+ },
6145
+ required: ["threadId"],
6146
+ additionalProperties: false
6147
+ },
6148
+ constraints: { rate_bucket: "github.write" },
6149
+ effects: ["Write:ThreadSubscription"],
6150
+ risk: "high",
6151
+ target_bindings: {
6152
+ resource_id: { source: "context", key: "resource_id" }
6153
+ },
6154
+ version: "1.0.0"
6155
+ },
6156
+ {
6157
+ action: "github.notification.repoSubscription.set",
6158
+ resource_type: "github:repo",
6159
+ required_relations: ["editor", "act_as"],
6160
+ required_scopes: ["notifications"],
6161
+ capability: "github.notifications.write",
6162
+ input_schema: {
6163
+ type: "object",
6164
+ properties: {
6165
+ owner: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u30AA\u30FC\u30CA\u30FC\uFF08\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u7D44\u7E54\u540D\uFF09" },
6166
+ repo: { type: "string", minLength: 1, description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u540D" },
6167
+ subscribed: { type: "boolean", description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u3092\u30A6\u30A9\u30C3\u30C1\u3059\u308B\u304B\uFF08\u7701\u7565\u53EF\uFF09" },
6168
+ ignored: { type: "boolean", description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u901A\u77E5\u3092\u7121\u8996\u3059\u308B\u304B\uFF08\u7701\u7565\u53EF\uFF09" }
4766
6169
  },
4767
6170
  required: ["owner", "repo"],
4768
6171
  additionalProperties: false
4769
6172
  },
6173
+ constraints: { rate_bucket: "github.write" },
6174
+ effects: ["Write:RepoSubscription"],
6175
+ risk: "high",
6176
+ target_bindings: {
6177
+ resource_id: { source: "context", key: "resource_id" }
6178
+ },
6179
+ version: "1.0.0"
6180
+ },
6181
+ {
6182
+ action: "github.gist.create",
6183
+ resource_type: "github:repo",
6184
+ required_relations: ["editor", "act_as"],
6185
+ required_scopes: ["gist"],
6186
+ capability: "github.gists.write",
6187
+ input_schema: {
6188
+ type: "object",
6189
+ properties: {
6190
+ files: {
6191
+ type: "object",
6192
+ description: 'Gist \u306E\u30D5\u30A1\u30A4\u30EB\u7FA4\u3002\u30AD\u30FC\u304C\u30D5\u30A1\u30A4\u30EB\u540D\u3001\u5024\u304C { content: "\u30D5\u30A1\u30A4\u30EB\u5185\u5BB9" } \u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\uFF08\u4F8B: {"hello.txt": {"content": "world"}}\uFF09\u3002\u30CD\u30B9\u30C8\u69CB\u9020\u306E\u691C\u8A3C\u306F\u884C\u308F\u305A\u305D\u306E\u307E\u307E GitHub \u3078\u6E21\u3059',
6193
+ additionalProperties: true
6194
+ },
6195
+ description: { type: "string", description: "Gist \u306E\u8AAC\u660E\uFF08\u7701\u7565\u53EF\uFF09" },
6196
+ public: { type: "boolean", description: "\u516C\u958B Gist \u306B\u3059\u308B\u304B\uFF08\u7701\u7565\u53EF\u3001\u30C7\u30D5\u30A9\u30EB\u30C8 false\uFF09" }
6197
+ },
6198
+ required: ["files"],
6199
+ additionalProperties: false
6200
+ },
6201
+ constraints: { rate_bucket: "github.write" },
6202
+ effects: ["Write:Gist"],
6203
+ risk: "high",
6204
+ target_bindings: {
6205
+ resource_id: { source: "context", key: "resource_id" }
6206
+ },
6207
+ version: "1.0.0"
6208
+ },
6209
+ {
6210
+ action: "github.gist.get",
6211
+ resource_type: "github:repo",
6212
+ required_relations: ["viewer", "editor", "admin", "owner"],
6213
+ required_scopes: ["gist"],
6214
+ capability: "github.read.basic",
6215
+ input_schema: {
6216
+ type: "object",
6217
+ properties: {
6218
+ gistId: { type: "string", minLength: 1, description: "Gist \u306E ID" }
6219
+ },
6220
+ required: ["gistId"],
6221
+ additionalProperties: false
6222
+ },
4770
6223
  constraints: { rate_bucket: "github.read" },
4771
- effects: ["Read:IssueList"],
6224
+ effects: ["Read:Gist"],
4772
6225
  risk: "low",
4773
6226
  target_bindings: {
4774
6227
  resource_id: { source: "context", key: "resource_id" }
@@ -4776,26 +6229,24 @@ var ACTION_REGISTRY = {
4776
6229
  version: "1.0.0"
4777
6230
  },
4778
6231
  {
4779
- action: "github.issue.read",
6232
+ action: "github.gist.list",
4780
6233
  resource_type: "github:repo",
4781
6234
  required_relations: ["viewer", "editor", "admin", "owner"],
4782
- required_scopes: ["repo", "read:issues"],
6235
+ required_scopes: ["gist"],
4783
6236
  capability: "github.read.basic",
4784
- // Schema mirrors the server contract (GitHubConnectorAdapter):
4785
- // owner/repo required, camelCase issueNumber (the adapter reads
4786
- // params.issueNumber — snake_case issue_number was a drift).
4787
6237
  input_schema: {
4788
6238
  type: "object",
4789
6239
  properties: {
4790
- owner: { type: "string", minLength: 1, description: "Repository owner (username or organization)" },
4791
- repo: { type: "string", minLength: 1, description: "Repository name" },
4792
- issueNumber: { type: "integer", minimum: 1, description: "Issue number" }
6240
+ username: { type: "string", minLength: 1, description: "\u5BFE\u8C61\u30E6\u30FC\u30B6\u30FC\u540D\uFF08\u6307\u5B9A\u6642\u306F\u305D\u306E\u30E6\u30FC\u30B6\u30FC\u306E\u516C\u958B Gist\u3001\u7701\u7565\u6642\u306F\u8A8D\u8A3C\u30E6\u30FC\u30B6\u30FC\u306E Gist\uFF09" },
6241
+ since: { type: "string", description: "\u3053\u306E\u65E5\u6642\u4EE5\u964D\u306B\u66F4\u65B0\u3055\u308C\u305F Gist \u306E\u307F\uFF08ISO 8601\u3001\u7701\u7565\u53EF\uFF09" },
6242
+ per_page: { type: "integer", minimum: 1, description: "1\u30DA\u30FC\u30B8\u3042\u305F\u308A\u306E\u4EF6\u6570\uFF08\u7701\u7565\u53EF\uFF09" },
6243
+ page: { type: "integer", minimum: 1, description: "\u30DA\u30FC\u30B8\u756A\u53F7\uFF08\u7701\u7565\u53EF\uFF09" }
4793
6244
  },
4794
- required: ["owner", "repo", "issueNumber"],
6245
+ required: [],
4795
6246
  additionalProperties: false
4796
6247
  },
4797
6248
  constraints: { rate_bucket: "github.read" },
4798
- effects: ["Read:Issue"],
6249
+ effects: ["Read:GistList"],
4799
6250
  risk: "low",
4800
6251
  target_bindings: {
4801
6252
  resource_id: { source: "context", key: "resource_id" }
@@ -4803,31 +6254,27 @@ var ACTION_REGISTRY = {
4803
6254
  version: "1.0.0"
4804
6255
  },
4805
6256
  {
4806
- action: "github.issue.update",
6257
+ action: "github.gist.update",
4807
6258
  resource_type: "github:repo",
4808
6259
  required_relations: ["editor", "act_as"],
4809
- required_scopes: ["repo", "write:issues"],
4810
- capability: "github.issues.triage",
4811
- // Schema mirrors the server contract (GitHubConnectorAdapter):
4812
- // owner/repo required, camelCase issueNumber (the adapter reads
4813
- // params.issueNumber — snake_case issue_number was a drift).
6260
+ required_scopes: ["gist"],
6261
+ capability: "github.gists.write",
4814
6262
  input_schema: {
4815
6263
  type: "object",
4816
6264
  properties: {
4817
- owner: { type: "string", minLength: 1, description: "Repository owner (username or organization)" },
4818
- repo: { type: "string", minLength: 1, description: "Repository name" },
4819
- issueNumber: { type: "integer", minimum: 1, description: "Issue number to update" },
4820
- title: { type: "string" },
4821
- body: { type: "string" },
4822
- state: { type: "string", enum: ["open", "closed"] },
4823
- labels: { type: "array", items: { type: "string" } },
4824
- assignees: { type: "array", items: { type: "string" } }
6265
+ gistId: { type: "string", minLength: 1, description: "Gist \u306E ID" },
6266
+ files: {
6267
+ type: "object",
6268
+ description: '\u66F4\u65B0\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u7FA4\u3002\u30AD\u30FC\u304C\u30D5\u30A1\u30A4\u30EB\u540D\u3001\u5024\u304C { content: "..." }\uFF08\u30EA\u30CD\u30FC\u30E0\u6642\u306F { filename: "\u65B0\u540D", content: "..." }\uFF09\u3002\u7701\u7565\u6642\u306F description \u306E\u307F\u66F4\u65B0',
6269
+ additionalProperties: true
6270
+ },
6271
+ description: { type: "string", description: "Gist \u306E\u8AAC\u660E\uFF08\u7701\u7565\u53EF\uFF09" }
4825
6272
  },
4826
- required: ["owner", "repo", "issueNumber"],
6273
+ required: ["gistId"],
4827
6274
  additionalProperties: false
4828
6275
  },
4829
6276
  constraints: { rate_bucket: "github.write" },
4830
- effects: ["Update:Issue"],
6277
+ effects: ["Write:GistUpdate"],
4831
6278
  risk: "high",
4832
6279
  target_bindings: {
4833
6280
  resource_id: { source: "context", key: "resource_id" }
@@ -6465,14 +7912,38 @@ var ACTION_REGISTRY = {
6465
7912
  },
6466
7913
  {
6467
7914
  capability: "github.read.basic",
6468
- description: "Read issues from repositories",
6469
- includes: ["github.issue.list", "github.issue.read"],
7915
+ description: "Read issues, pull requests and repository contents from repositories",
7916
+ includes: ["github.issue.list", "github.issue.read", "github.pr.list", "github.pr.read", "github.pr.files.list", "github.pr.review.list", "github.pr.search", "github.repo.search", "github.repo.collaborator.list", "github.content.get", "github.tree.get", "github.branch.list", "github.commit.get", "github.commit.list", "github.commit.search", "github.tag.list", "github.release.list", "github.release.getLatest", "github.release.getByTag", "github.code.search", "github.issue.search", "github.issue.types.list", "github.label.get", "github.label.list", "github.workflow.get", "github.workflow.list", "github.workflow.jobLogs.get", "github.repo.starred.list", "github.user.me.get", "github.org.teams.list", "github.team.members.list", "github.user.search", "github.notification.list", "github.notification.get", "github.gist.get", "github.gist.list"],
6470
7917
  version: "1.0.0"
6471
7918
  },
6472
7919
  {
6473
7920
  capability: "github.issues.triage",
6474
- description: "Create and update issues",
6475
- includes: ["github.issue.create", "github.issue.update"],
7921
+ description: "Create and update issues, post issue comments, manage sub-issues and labels",
7922
+ includes: ["github.issue.create", "github.issue.update", "github.issue.comment.create", "github.issue.subissue.write", "github.label.write"],
7923
+ version: "1.0.0"
7924
+ },
7925
+ {
7926
+ capability: "github.pulls.write",
7927
+ description: "Create, update, merge, and review pull requests",
7928
+ includes: ["github.pr.create", "github.pr.update", "github.pr.merge", "github.pr.review.create", "github.pr.comment.reply", "github.pr.branch.update"],
7929
+ version: "1.0.0"
7930
+ },
7931
+ {
7932
+ capability: "github.repos.write",
7933
+ description: "\u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u4F5C\u6210\u30FB\u30D5\u30A9\u30FC\u30AF\u30FB\u30D5\u30A1\u30A4\u30EB\u66F4\u65B0\u30FB\u30D6\u30E9\u30F3\u30C1\u4F5C\u6210\u30FB\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u5B9F\u884C\u30FB\u30B9\u30BF\u30FC\u64CD\u4F5C",
7934
+ includes: ["github.repo.create", "github.repo.fork", "github.content.createOrUpdate", "github.content.delete", "github.branch.create", "github.workflow.run", "github.repo.star", "github.repo.unstar"],
7935
+ version: "1.0.0"
7936
+ },
7937
+ {
7938
+ capability: "github.notifications.write",
7939
+ description: "\u901A\u77E5\u306E\u65E2\u8AAD\u5316\u30FB\u30B9\u30EC\u30C3\u30C9/\u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u8CFC\u8AAD\u8A2D\u5B9A",
7940
+ includes: ["github.notification.markRead", "github.notification.markAllRead", "github.notification.subscription.set", "github.notification.repoSubscription.set"],
7941
+ version: "1.0.0"
7942
+ },
7943
+ {
7944
+ capability: "github.gists.write",
7945
+ description: "Gist \u306E\u4F5C\u6210\u30FB\u66F4\u65B0",
7946
+ includes: ["github.gist.create", "github.gist.update"],
6476
7947
  version: "1.0.0"
6477
7948
  },
6478
7949
  {
@@ -6532,6 +8003,12 @@ var ACTION_REGISTRY = {
6532
8003
  ]
6533
8004
  };
6534
8005
 
8006
+ // src/registry/resource-type-labels.ts
8007
+ var RESOURCE_TYPE_LABELS = {
8008
+ "github:repo": "\u5BFE\u8C61\u30EA\u30DD\u30B8\u30C8\u30EA",
8009
+ "github:org": "\u5BFE\u8C61\u7D44\u7E54"
8010
+ };
8011
+
6535
8012
  // src/registry/action-input-validator.ts
6536
8013
  var SCHEMA_INDEX = (() => {
6537
8014
  const map = /* @__PURE__ */ new Map();
@@ -7391,6 +8868,49 @@ var TargetResolver = class {
7391
8868
  }
7392
8869
  };
7393
8870
 
8871
+ // src/resolver/canonical-resource-id.ts
8872
+ var resolver = new TargetResolver();
8873
+ function canonicalResourceId(action, params, ctx) {
8874
+ const def = ACTION_REGISTRY.actions.find((a) => a.action === action);
8875
+ const provider = action.split(".")[0];
8876
+ if (provider === "github") {
8877
+ const owner = typeof params?.owner === "string" ? params.owner : void 0;
8878
+ const repo = typeof params?.repo === "string" ? params.repo : void 0;
8879
+ if (owner && repo) return `${owner}/${repo}`;
8880
+ return void 0;
8881
+ }
8882
+ const binding = def?.target_bindings?.resource_id;
8883
+ if (!binding) return void 0;
8884
+ const paramBinding = binding;
8885
+ if (paramBinding.source === "param" && paramBinding.derive != null) {
8886
+ const p = params ?? {};
8887
+ let v = p[paramBinding.param];
8888
+ if (v == null && paramBinding.fallback_param) v = p[paramBinding.fallback_param];
8889
+ if (v == null && paramBinding.default != null) v = paramBinding.default;
8890
+ if (typeof v !== "string" || !v) return void 0;
8891
+ return v;
8892
+ }
8893
+ const resolved = resolver.resolve(def.target_bindings, params ?? {}, ctx);
8894
+ const id = resolved.resource_id ?? void 0;
8895
+ if (id == null || id === "") return void 0;
8896
+ return id;
8897
+ }
8898
+
8899
+ // src/resolver/compare-resource-id.ts
8900
+ function looksLikeNativeId(value) {
8901
+ if (/^[CDG][A-Z0-9]{8,}$/.test(value)) return true;
8902
+ if (/^[a-zA-Z0-9_-]{6,}$/.test(value) && !value.startsWith("#")) return true;
8903
+ return false;
8904
+ }
8905
+ function compareResourceIds(credResourceId, requestResourceId) {
8906
+ if (credResourceId === requestResourceId) return "match";
8907
+ if (credResourceId === "*") return "match";
8908
+ const credIsNative = looksLikeNativeId(credResourceId);
8909
+ const reqIsNative = looksLikeNativeId(requestResourceId);
8910
+ if (credIsNative === reqIsNative) return "mismatch";
8911
+ return "indeterminate";
8912
+ }
8913
+
7394
8914
  // src/utils/action-classifier.ts
7395
8915
  var actionIndex = indexActions({
7396
8916
  registry_version: ACTION_REGISTRY.registry_version,
@@ -7401,7 +8921,7 @@ function isWriteAction(action) {
7401
8921
  if (!meta) {
7402
8922
  return true;
7403
8923
  }
7404
- const writeEffectPrefixes = ["Create:", "Update:", "Delete:", "Write:", "Execute:"];
8924
+ const writeEffectPrefixes = ["Create:", "Update:", "Delete:", "Write:", "Execute:", "Merge:", "Run:"];
7405
8925
  if (meta.effects?.some((e) => writeEffectPrefixes.some((p) => e.startsWith(p)))) {
7406
8926
  return true;
7407
8927
  }
@@ -7853,6 +9373,7 @@ var version = "0.0.1";
7853
9373
  PROVIDER_ALIASES,
7854
9374
  REAUTH_REQUIRED_ACTION,
7855
9375
  RESOURCE_TYPES,
9376
+ RESOURCE_TYPE_LABELS,
7856
9377
  ReceiptStatus,
7857
9378
  SDJwtClient,
7858
9379
  SIGNATURE_HEADER,
@@ -7880,9 +9401,11 @@ var version = "0.0.1";
7880
9401
  buildKbJwtPayload,
7881
9402
  buildPhase1VcClaims,
7882
9403
  buildValidationErrors,
9404
+ canonicalResourceId,
7883
9405
  canonicalizeAction,
7884
9406
  checkPermissionWithVP,
7885
9407
  classifyCedarErrorMessage,
9408
+ compareResourceIds,
7886
9409
  configure,
7887
9410
  createAjv,
7888
9411
  createCedarEngine,
@@ -7924,6 +9447,7 @@ var version = "0.0.1";
7924
9447
  isWriteAction,
7925
9448
  loadActionRegistryFromFile,
7926
9449
  loadActionRegistryFromObject,
9450
+ looksLikeNativeId,
7927
9451
  normalizeDomain,
7928
9452
  normalizeMcpActionName,
7929
9453
  parseGrantAction,