@vess-id/ai-identity 0.0.0-dev-20260902121045

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.
Files changed (173) hide show
  1. package/README.md +265 -0
  2. package/dist/agent/agent-did-manager.d.ts +97 -0
  3. package/dist/agent/agent-did-manager.d.ts.map +1 -0
  4. package/dist/auth/auth-provider.d.ts +51 -0
  5. package/dist/auth/auth-provider.d.ts.map +1 -0
  6. package/dist/auth/index.d.ts +2 -0
  7. package/dist/auth/index.d.ts.map +1 -0
  8. package/dist/client.d.ts +63 -0
  9. package/dist/client.d.ts.map +1 -0
  10. package/dist/config/index.d.ts +84 -0
  11. package/dist/config/index.d.ts.map +1 -0
  12. package/dist/constraint/constraint-evaluator.d.ts +103 -0
  13. package/dist/constraint/constraint-evaluator.d.ts.map +1 -0
  14. package/dist/constraint/index.d.ts +5 -0
  15. package/dist/constraint/index.d.ts.map +1 -0
  16. package/dist/did/agent.d.ts +58 -0
  17. package/dist/did/agent.d.ts.map +1 -0
  18. package/dist/did/did-utils.d.ts +82 -0
  19. package/dist/did/did-utils.d.ts.map +1 -0
  20. package/dist/did/key-manager.d.ts +19 -0
  21. package/dist/did/key-manager.d.ts.map +1 -0
  22. package/dist/gateway/gateway-client.d.ts +103 -0
  23. package/dist/gateway/gateway-client.d.ts.map +1 -0
  24. package/dist/gateway/index.d.ts +2 -0
  25. package/dist/gateway/index.d.ts.map +1 -0
  26. package/dist/grant/grant-manager.d.ts +140 -0
  27. package/dist/grant/grant-manager.d.ts.map +1 -0
  28. package/dist/grant/index.d.ts +2 -0
  29. package/dist/grant/index.d.ts.map +1 -0
  30. package/dist/identity/device-enroll-manager.d.ts +117 -0
  31. package/dist/identity/device-enroll-manager.d.ts.map +1 -0
  32. package/dist/identity/user-identity-manager.d.ts +123 -0
  33. package/dist/identity/user-identity-manager.d.ts.map +1 -0
  34. package/dist/identity/user-key-pair-manager.d.ts +22 -0
  35. package/dist/identity/user-key-pair-manager.d.ts.map +1 -0
  36. package/dist/index.d.mts +42685 -0
  37. package/dist/index.d.ts +57 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +19534 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/index.mjs +19347 -0
  42. package/dist/index.mjs.map +1 -0
  43. package/dist/internal-signature/canonical.d.ts +80 -0
  44. package/dist/internal-signature/canonical.d.ts.map +1 -0
  45. package/dist/internal-signature/index.d.ts +17 -0
  46. package/dist/internal-signature/index.d.ts.map +1 -0
  47. package/dist/internal-signature/signer.d.ts +76 -0
  48. package/dist/internal-signature/signer.d.ts.map +1 -0
  49. package/dist/policy/cedar-engine.d.ts +334 -0
  50. package/dist/policy/cedar-engine.d.ts.map +1 -0
  51. package/dist/policy/cedar-entities.d.ts +59 -0
  52. package/dist/policy/cedar-entities.d.ts.map +1 -0
  53. package/dist/policy/decision.d.ts +46 -0
  54. package/dist/policy/decision.d.ts.map +1 -0
  55. package/dist/policy/index.d.ts +15 -0
  56. package/dist/policy/index.d.ts.map +1 -0
  57. package/dist/registry/access-orchestrator.d.ts +184 -0
  58. package/dist/registry/access-orchestrator.d.ts.map +1 -0
  59. package/dist/registry/action-aliases.d.ts +37 -0
  60. package/dist/registry/action-aliases.d.ts.map +1 -0
  61. package/dist/registry/action-input-validator.d.ts +19 -0
  62. package/dist/registry/action-input-validator.d.ts.map +1 -0
  63. package/dist/registry/action-normalizer.d.ts +47 -0
  64. package/dist/registry/action-normalizer.d.ts.map +1 -0
  65. package/dist/registry/action-registry-json.d.ts +35897 -0
  66. package/dist/registry/action-registry-json.d.ts.map +1 -0
  67. package/dist/registry/action-registry.d.ts +101 -0
  68. package/dist/registry/action-registry.d.ts.map +1 -0
  69. package/dist/registry/action-risk.d.ts +109 -0
  70. package/dist/registry/action-risk.d.ts.map +1 -0
  71. package/dist/registry/action-summary.d.ts +16 -0
  72. package/dist/registry/action-summary.d.ts.map +1 -0
  73. package/dist/registry/index.d.ts +14 -0
  74. package/dist/registry/index.d.ts.map +1 -0
  75. package/dist/registry/providers.d.ts +32 -0
  76. package/dist/registry/providers.d.ts.map +1 -0
  77. package/dist/registry/reauth-constants.d.ts +56 -0
  78. package/dist/registry/reauth-constants.d.ts.map +1 -0
  79. package/dist/registry/resource-type-labels.d.ts +15 -0
  80. package/dist/registry/resource-type-labels.d.ts.map +1 -0
  81. package/dist/registry/resource-types.d.ts +47 -0
  82. package/dist/registry/resource-types.d.ts.map +1 -0
  83. package/dist/resolver/approval-time-resolution.d.ts +72 -0
  84. package/dist/resolver/approval-time-resolution.d.ts.map +1 -0
  85. package/dist/resolver/canonical-resource-id.d.ts +37 -0
  86. package/dist/resolver/canonical-resource-id.d.ts.map +1 -0
  87. package/dist/resolver/compare-resource-id.d.ts +37 -0
  88. package/dist/resolver/compare-resource-id.d.ts.map +1 -0
  89. package/dist/resolver/salient-digest.d.ts +48 -0
  90. package/dist/resolver/salient-digest.d.ts.map +1 -0
  91. package/dist/resolver/target-resolver.d.ts +28 -0
  92. package/dist/resolver/target-resolver.d.ts.map +1 -0
  93. package/dist/state/index.d.ts +3 -0
  94. package/dist/state/index.d.ts.map +1 -0
  95. package/dist/state/json-state-store.d.ts +24 -0
  96. package/dist/state/json-state-store.d.ts.map +1 -0
  97. package/dist/state/state-store.interface.d.ts +37 -0
  98. package/dist/state/state-store.interface.d.ts.map +1 -0
  99. package/dist/storage/filesystem-key-storage.d.ts +16 -0
  100. package/dist/storage/filesystem-key-storage.d.ts.map +1 -0
  101. package/dist/storage/index.d.ts +4 -0
  102. package/dist/storage/index.d.ts.map +1 -0
  103. package/dist/storage/key-storage.interface.d.ts +42 -0
  104. package/dist/storage/key-storage.interface.d.ts.map +1 -0
  105. package/dist/storage/memory-key-storage.d.ts +17 -0
  106. package/dist/storage/memory-key-storage.d.ts.map +1 -0
  107. package/dist/tool/tool-manager.d.ts +44 -0
  108. package/dist/tool/tool-manager.d.ts.map +1 -0
  109. package/dist/types/agent.d.ts +139 -0
  110. package/dist/types/agent.d.ts.map +1 -0
  111. package/dist/types/audit.d.ts +23 -0
  112. package/dist/types/audit.d.ts.map +1 -0
  113. package/dist/types/cedar-policy.d.ts +60 -0
  114. package/dist/types/cedar-policy.d.ts.map +1 -0
  115. package/dist/types/connector-plugin.d.ts +252 -0
  116. package/dist/types/connector-plugin.d.ts.map +1 -0
  117. package/dist/types/connectors.d.ts +39 -0
  118. package/dist/types/connectors.d.ts.map +1 -0
  119. package/dist/types/context.d.ts +152 -0
  120. package/dist/types/context.d.ts.map +1 -0
  121. package/dist/types/did.d.ts +18 -0
  122. package/dist/types/did.d.ts.map +1 -0
  123. package/dist/types/errors.d.ts +24 -0
  124. package/dist/types/errors.d.ts.map +1 -0
  125. package/dist/types/grant.d.ts +522 -0
  126. package/dist/types/grant.d.ts.map +1 -0
  127. package/dist/types/index.d.ts +22 -0
  128. package/dist/types/index.d.ts.map +1 -0
  129. package/dist/types/intent.d.ts +133 -0
  130. package/dist/types/intent.d.ts.map +1 -0
  131. package/dist/types/invitation.d.ts +97 -0
  132. package/dist/types/invitation.d.ts.map +1 -0
  133. package/dist/types/jira.d.ts +348 -0
  134. package/dist/types/jira.d.ts.map +1 -0
  135. package/dist/types/oauth.d.ts +72 -0
  136. package/dist/types/oauth.d.ts.map +1 -0
  137. package/dist/types/organization.d.ts +77 -0
  138. package/dist/types/organization.d.ts.map +1 -0
  139. package/dist/types/permission-mode.d.ts +138 -0
  140. package/dist/types/permission-mode.d.ts.map +1 -0
  141. package/dist/types/permission-vc.d.ts +800 -0
  142. package/dist/types/permission-vc.d.ts.map +1 -0
  143. package/dist/types/receipt.d.ts +133 -0
  144. package/dist/types/receipt.d.ts.map +1 -0
  145. package/dist/types/target-binding.d.ts +163 -0
  146. package/dist/types/target-binding.d.ts.map +1 -0
  147. package/dist/types/tier.d.ts +13 -0
  148. package/dist/types/tier.d.ts.map +1 -0
  149. package/dist/types/vc.d.ts +213 -0
  150. package/dist/types/vc.d.ts.map +1 -0
  151. package/dist/types/vp.d.ts +25 -0
  152. package/dist/types/vp.d.ts.map +1 -0
  153. package/dist/utils/action-classifier.d.ts +13 -0
  154. package/dist/utils/action-classifier.d.ts.map +1 -0
  155. package/dist/utils/crypto.d.ts +22 -0
  156. package/dist/utils/crypto.d.ts.map +1 -0
  157. package/dist/utils/freemail-domains.d.ts +13 -0
  158. package/dist/utils/freemail-domains.d.ts.map +1 -0
  159. package/dist/utils/sdjwt-client.d.ts +415 -0
  160. package/dist/utils/sdjwt-client.d.ts.map +1 -0
  161. package/dist/utils/sdjwt-disclosure.d.ts +13 -0
  162. package/dist/utils/sdjwt-disclosure.d.ts.map +1 -0
  163. package/dist/utils/tier-utils.d.ts +15 -0
  164. package/dist/utils/tier-utils.d.ts.map +1 -0
  165. package/dist/vc/api-vc-manager.d.ts +43 -0
  166. package/dist/vc/api-vc-manager.d.ts.map +1 -0
  167. package/dist/vc/vc-manager.d.ts +55 -0
  168. package/dist/vc/vc-manager.d.ts.map +1 -0
  169. package/dist/vp/kb-jwt-builder.d.ts +89 -0
  170. package/dist/vp/kb-jwt-builder.d.ts.map +1 -0
  171. package/dist/vp/vp-manager.d.ts +75 -0
  172. package/dist/vp/vp-manager.d.ts.map +1 -0
  173. package/package.json +66 -0
@@ -0,0 +1,184 @@
1
+ import { ActionRegistry, Relation, ResourceType } from './action-registry';
2
+ /** ReBAC: 関係性チェック(SpiceDB/Zanzibar想定)。OR解釈で複数relationのいずれか成立でtrue */
3
+ export interface ReBACChecker {
4
+ check(subjectDid: string, // User DID or Agent DID
5
+ relations: Relation[], // ["editor","act_as"] など
6
+ resourceRef: ResourceRef): Promise<boolean>;
7
+ }
8
+ /** ABAC: 条件判定(Cerbos/OPA想定)。trueなら許可。 */
9
+ export interface ABACPolicyEngine {
10
+ evaluate(input: AbacInput): Promise<AbacDecision>;
11
+ }
12
+ export interface AbacInput {
13
+ principal: {
14
+ id: string;
15
+ roles?: string[];
16
+ claims?: Record<string, unknown>;
17
+ };
18
+ resource: {
19
+ kind: ResourceType;
20
+ id: string;
21
+ attr?: Record<string, unknown>;
22
+ };
23
+ action: string;
24
+ context?: Record<string, unknown>;
25
+ }
26
+ export interface AbacDecision {
27
+ allow: boolean;
28
+ ruleId?: string;
29
+ reason?: string;
30
+ }
31
+ /** Credential選択:最小スコープを満たす外部トークンを取得(Bot/Installation/OAuth) */
32
+ export interface CredentialStore {
33
+ pickMinimal(provider: Provider, // "slack" | "github" | "gmail" | "calendar" | "jira"
34
+ iaId: string, // IntegrationAccount ID
35
+ requiredScopes: string[], subjectDid: string): Promise<CredentialRef | null>;
36
+ }
37
+ export type { CanonicalProvider as Provider } from './providers';
38
+ import type { CanonicalProvider as Provider } from './providers';
39
+ export interface CredentialRef {
40
+ id: string;
41
+ provider: Provider;
42
+ scopes: string[];
43
+ }
44
+ /** VP検証(SD-JWT/ISO 23220/mdoc/OID4VP):成功時にVCクレームを返す */
45
+ export interface VpVerifier {
46
+ verifyAndExtractClaims(vpToken: string): Promise<VerifiedVcClaims>;
47
+ }
48
+ /** 発行した Delegation VC に含めることを想定した最小構造 */
49
+ export interface VerifiedVcClaims {
50
+ allowed_actions: string[];
51
+ resource_scope: ResourceScope[];
52
+ expires_at?: string;
53
+ actor?: string;
54
+ assurance_level?: number;
55
+ cnf?: {
56
+ jwk_thumbprint?: string;
57
+ };
58
+ [k: string]: unknown;
59
+ }
60
+ export interface ResourceRef {
61
+ /** プロバイダ別のリソース識別子(例:Slack channel id, GitHub repo full_name, Drive file id) */
62
+ id: string;
63
+ type: ResourceType;
64
+ /** 紐づくIntegrationAccountのID(どのSlackワークスペース/どのGitHub Orgか) */
65
+ iaId: string;
66
+ /** 追加属性(機密度など) */
67
+ attr?: Record<string, unknown>;
68
+ }
69
+ /** VCに刻む「スコープ」表現の一例(最小定義) */
70
+ export type ResourceScope = {
71
+ kind: 'Workspace';
72
+ id: string;
73
+ } | {
74
+ kind: 'IntegrationAccount';
75
+ id: string;
76
+ } | {
77
+ kind: 'Resource';
78
+ type: ResourceType;
79
+ id: string;
80
+ };
81
+ /** 監査用の判定理由 */
82
+ export interface DecisionTrace {
83
+ rebac?: {
84
+ ok: boolean;
85
+ relations: Relation[];
86
+ };
87
+ delegation?: {
88
+ ok: boolean;
89
+ matched_action?: boolean;
90
+ in_scope?: boolean;
91
+ notExpired?: boolean;
92
+ };
93
+ abac?: {
94
+ ok: boolean;
95
+ ruleId?: string;
96
+ reason?: string;
97
+ };
98
+ scope?: {
99
+ ok: boolean;
100
+ required: string[];
101
+ chosenCredentialId?: string;
102
+ };
103
+ }
104
+ /** Capability名やAction名(混在OK)から、実アクション配列に解決 */
105
+ export declare function resolveActionsFromSelection(registry: ActionRegistry, selection: string[]): string[];
106
+ export interface PlanDelegationInput {
107
+ registry: ActionRegistry;
108
+ issuerUserDid: string;
109
+ delegateAgentDid: string;
110
+ /** ユーザーが UI 等で選んだアクション/ケイパビリティ */
111
+ requested: string[];
112
+ /** この委任が及ぶスコープ(Workspace/IA/Resource) */
113
+ resourceScope: ResourceScope[];
114
+ /** 有効期限(ISO) */
115
+ expiresAt?: string;
116
+ /** ABAC前提で要求する最小アシュアランス等(必要なら) */
117
+ minAssuranceLevel?: number;
118
+ /** ABAC/Cerbos用のruntime context(時間帯/場所/リスク等) */
119
+ context?: Record<string, unknown>;
120
+ /** Provider 推測のためのヒント(Credential選択時に使う) */
121
+ providerByIa?: Record<string, Provider>;
122
+ /** 実行時に用いるReBAC/ABAC/Credentialのハンドラ */
123
+ rebac: ReBACChecker;
124
+ abac: ABACPolicyEngine;
125
+ creds: CredentialStore;
126
+ }
127
+ export interface PlanDelegationResult {
128
+ granted_actions: string[];
129
+ rejected_actions: string[];
130
+ traceByAction: Record<string, DecisionTrace>;
131
+ }
132
+ /**
133
+ * VC発行前に、リクエストされたアクション群を
134
+ * - Registryに存在
135
+ * - ReBAC(委任元=issuerUserDid が十分な関係を持つ)
136
+ * - ABACポリシー適合
137
+ * - 必要スコープを満たすクレデンシャルが存在
138
+ * の観点で絞り込み、発行して良いものだけ返す。
139
+ */
140
+ export declare function planDelegationForVC(input: PlanDelegationInput): Promise<PlanDelegationResult>;
141
+ export interface CheckPermissionInput {
142
+ registry: ActionRegistry;
143
+ actorDid: string;
144
+ onBehalfOfDid?: string;
145
+ action: string;
146
+ resource: ResourceRef;
147
+ vpToken: string;
148
+ context?: Record<string, unknown>;
149
+ rebac: ReBACChecker;
150
+ abac: ABACPolicyEngine;
151
+ creds: CredentialStore;
152
+ vpVerifier: VpVerifier;
153
+ }
154
+ export interface CheckPermissionResult {
155
+ allow: boolean;
156
+ reason?: string;
157
+ trace: DecisionTrace;
158
+ credential?: CredentialRef | null;
159
+ }
160
+ /**
161
+ * 実行直前のフル判定。
162
+ * 1) ReBAC: actor がresourceに対する 基本関係/act_as を満たすか
163
+ * 2) Delegation(VC): actionがallowedか / resourceがscope内か / 期限内か
164
+ * 3) ABAC: コンテキストやassurance levelに適合するか
165
+ * 4) Scope/Credential: 必要スコープを満たすクレデンシャルが取得できるか
166
+ */
167
+ export declare function checkPermissionWithVP(input: CheckPermissionInput): Promise<CheckPermissionResult>;
168
+ export declare class AllowAllAbac implements ABACPolicyEngine {
169
+ evaluate(): Promise<AbacDecision>;
170
+ }
171
+ export declare class SimpleRebac implements ReBACChecker {
172
+ private allowRelations;
173
+ constructor(allowRelations?: Relation[]);
174
+ check(_sub: string, relations: Relation[]): Promise<boolean>;
175
+ }
176
+ export declare class DummyCreds implements CredentialStore {
177
+ pickMinimal(provider: Provider, _iaId: string, requiredScopes: string[]): Promise<CredentialRef | null>;
178
+ }
179
+ export declare class DummyVpVerifier implements VpVerifier {
180
+ private vc;
181
+ constructor(vc: VerifiedVcClaims);
182
+ verifyAndExtractClaims(): Promise<VerifiedVcClaims>;
183
+ }
184
+ //# sourceMappingURL=access-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-orchestrator.d.ts","sourceRoot":"","sources":["../../src/registry/access-orchestrator.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,cAAc,EAGd,QAAQ,EACR,YAAY,EAKb,MAAM,mBAAmB,CAAA;AAK1B,qEAAqE;AACrE,MAAM,WAAW,YAAY;IAC3B,KAAK,CACH,UAAU,EAAE,MAAM,EAAE,wBAAwB;IAC5C,SAAS,EAAE,QAAQ,EAAE,EAAE,yBAAyB;IAChD,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,OAAO,CAAC,CAAA;CACpB;AAED,yCAAyC;AACzC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;CAClD;AACD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE;QACT,EAAE,EAAE,MAAM,CAAA;QACV,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACjC,CAAA;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,YAAY,CAAA;QAClB,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC/B,CAAA;IACD,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AACD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,+DAA+D;AAC/D,MAAM,WAAW,eAAe;IAC9B,WAAW,CACT,QAAQ,EAAE,QAAQ,EAAE,qDAAqD;IACzE,IAAI,EAAE,MAAM,EAAE,wBAAwB;IACtC,cAAc,EAAE,MAAM,EAAE,EACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;CACjC;AACD,YAAY,EAAE,iBAAiB,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,iBAAiB,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAA;AAChE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,QAAQ,CAAA;IAClB,MAAM,EAAE,MAAM,EAAE,CAAA;CAEjB;AAED,uDAAuD;AACvD,MAAM,WAAW,UAAU;IACzB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;CACnE;AACD,yCAAyC;AACzC,MAAM,WAAW,gBAAgB;IAE/B,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,cAAc,EAAE,aAAa,EAAE,CAAA;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB,GAAG,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAEjC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAID,MAAM,WAAW,WAAW;IAC1B,+EAA+E;IAC/E,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,YAAY,CAAA;IAClB,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAA;IACZ,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B;AAED,6BAA6B;AAC7B,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,YAAY,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAExD,eAAe;AACf,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAA;IAC9C,UAAU,CAAC,EAAE;QACX,EAAE,EAAE,OAAO,CAAA;QACX,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,UAAU,CAAC,EAAE,OAAO,CAAA;KACrB,CAAA;IACD,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACxD,KAAK,CAAC,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACzE;AAID,8CAA8C;AAC9C,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,EAAE,GAClB,MAAM,EAAE,CAkBV;AAID,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,cAAc,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,kCAAkC;IAClC,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,yCAAyC;IACzC,aAAa,EAAE,aAAa,EAAE,CAAA;IAC9B,gBAAgB;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kCAAkC;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACvC,wCAAwC;IACxC,KAAK,EAAE,YAAY,CAAA;IACnB,IAAI,EAAE,gBAAgB,CAAA;IACtB,KAAK,EAAE,eAAe,CAAA;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;CAC7C;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,oBAAoB,CAAC,CA6G/B;AAsBD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,cAAc,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,WAAW,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,KAAK,EAAE,YAAY,CAAA;IACnB,IAAI,EAAE,gBAAgB,CAAA;IACtB,KAAK,EAAE,eAAe,CAAA;IACtB,UAAU,EAAE,UAAU,CAAA;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,aAAa,CAAA;IACpB,UAAU,CAAC,EAAE,aAAa,GAAG,IAAI,CAAA;CAClC;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,qBAAqB,CAAC,CA2EhC;AAsBD,qBAAa,YAAa,YAAW,gBAAgB;IAC7C,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC;CAGxC;AACD,qBAAa,WAAY,YAAW,YAAY;IAE5C,OAAO,CAAC,cAAc;gBAAd,cAAc,GAAE,QAAQ,EAAqD;IAEjF,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAGnE;AACD,qBAAa,UAAW,YAAW,eAAe;IAC1C,WAAW,CACf,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;CAKjC;AACD,qBAAa,eAAgB,YAAW,UAAU;IACpC,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,gBAAgB;IAClC,sBAAsB,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAG1D"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Centralized action utilities — single source of truth.
3
+ *
4
+ * Canonical action format is `provider.resource.operation` (dot format).
5
+ * Legacy `provider:resource.operation` (colon format) is supported for
6
+ * backward compatibility with existing grants.
7
+ */
8
+ /**
9
+ * Canonicalize an action name.
10
+ *
11
+ * Returns the canonical dot format: `provider.resource.operation`.
12
+ * If action already contains the provider prefix, returns as-is.
13
+ *
14
+ * @param provider - Provider name (e.g., 'slack', 'github')
15
+ * @param action - Action name (e.g., 'message.post')
16
+ * @returns Canonical action string (e.g., 'slack.message.post')
17
+ */
18
+ export declare function canonicalizeAction(provider: string, action: string): string;
19
+ /**
20
+ * Get aliases for a canonical action.
21
+ *
22
+ * Returns the legacy colon format for backward compatibility.
23
+ */
24
+ export declare function getActionAliases(canonicalAction: string): string[];
25
+ /**
26
+ * Get all equivalent forms of an action with provider prefix.
27
+ *
28
+ * Returns both dot format (canonical) and colon format (legacy).
29
+ */
30
+ export declare function getAllActionForms(provider: string, action: string): string[];
31
+ /**
32
+ * Check if two action strings refer to the same action.
33
+ *
34
+ * Handles both dot and colon separators.
35
+ */
36
+ export declare function isActionEquivalent(action1: string, action2: string): boolean;
37
+ //# sourceMappingURL=action-aliases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-aliases.d.ts","sourceRoot":"","sources":["../../src/registry/action-aliases.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAO3E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,CASlE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAgB5E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAuB5E"}
@@ -0,0 +1,19 @@
1
+ export type ValidateActionInputResult = {
2
+ valid: true;
3
+ } | {
4
+ valid: false;
5
+ errors: string[];
6
+ };
7
+ /**
8
+ * Validate `params` against the registry input_schema for `action`.
9
+ *
10
+ * Returns `{ valid: true }` for actions absent from the registry or lacking an
11
+ * input_schema. For known actions, performs a shallow check:
12
+ * a. required-key presence,
13
+ * b. unknown top-level keys (only when schema is additionalProperties:false),
14
+ * c. flat enum membership,
15
+ * d. naive top-level type checks.
16
+ * Deep `items` validation is intentionally skipped (server is authority).
17
+ */
18
+ export declare function validateActionInput(action: string, params: Record<string, unknown>): ValidateActionInputResult;
19
+ //# sourceMappingURL=action-input-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-input-validator.d.ts","sourceRoot":"","sources":["../../src/registry/action-input-validator.ts"],"names":[],"mappings":"AA2BA,MAAM,MAAM,yBAAyB,GACjC;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GACf;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AA0EtC;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,yBAAyB,CAoG3B"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * MCP action name normalization — single source of truth.
3
+ *
4
+ * Valid action names are derived from ACTION_REGISTRY, ensuring consistency
5
+ * between grant definitions, MCP tool schemas, and tool adapter implementations.
6
+ *
7
+ * This module provides normalization logic to handle common misformats from LLM clients:
8
+ * - Double prefix: "calendar.calendar.event.list" → "calendar.event.list"
9
+ * - Colon format: "slack:message.post" → "slack.message.post"
10
+ * - Missing prefix: "message.post" → "slack.message.post"
11
+ *
12
+ * `packages/remote-mcp` imports from here to avoid duplication.
13
+ */
14
+ /**
15
+ * Valid MCP-facing action names by tool, derived from ACTION_REGISTRY.
16
+ * These are the canonical names that LLM clients should send and that
17
+ * the API grant system uses for permission matching.
18
+ */
19
+ export declare const VALID_MCP_ACTIONS: Record<string, string[]>;
20
+ /**
21
+ * All valid MCP tool names.
22
+ */
23
+ export declare const VALID_MCP_TOOLS: string[];
24
+ /**
25
+ * Get all valid MCP action names across all tools.
26
+ */
27
+ export declare function getAllValidMcpActionNames(): string[];
28
+ /**
29
+ * Get valid MCP action names for a specific tool.
30
+ * @returns Array of action names, or empty array if tool is unknown.
31
+ */
32
+ export declare function getValidMcpActionNames(toolName: string): string[];
33
+ /**
34
+ * Normalize an MCP action name to canonical `provider.resource.operation` format.
35
+ *
36
+ * Handles common misformats from LLM clients:
37
+ * 1. Already valid → return as-is
38
+ * 2. Double prefix: "calendar.calendar.event.list" → strip leading "toolName." → "calendar.event.list"
39
+ * 3. Colon format: "slack:message.post" → replace ":" with "." → "slack.message.post"
40
+ * 4. Missing prefix: "message.post" → prepend "toolName." → "slack.message.post"
41
+ *
42
+ * @param toolName - Tool name (e.g., "slack", "calendar")
43
+ * @param actionName - Possibly misformatted action name from LLM client
44
+ * @returns Normalized action name, or the original if no valid match found
45
+ */
46
+ export declare function normalizeMcpActionName(toolName: string, actionName: string): string;
47
+ //# sourceMappingURL=action-normalizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-normalizer.d.ts","sourceRoot":"","sources":["../../src/registry/action-normalizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAoBH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAuB,CAAA;AAE9E;;GAEG;AACH,eAAO,MAAM,eAAe,EAAqC,MAAM,EAAE,CAAA;AAEzE;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAEpD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAEjE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAsCnF"}