@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.
- package/README.md +265 -0
- package/dist/agent/agent-did-manager.d.ts +97 -0
- package/dist/agent/agent-did-manager.d.ts.map +1 -0
- package/dist/auth/auth-provider.d.ts +51 -0
- package/dist/auth/auth-provider.d.ts.map +1 -0
- package/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/client.d.ts +63 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/config/index.d.ts +84 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/constraint/constraint-evaluator.d.ts +103 -0
- package/dist/constraint/constraint-evaluator.d.ts.map +1 -0
- package/dist/constraint/index.d.ts +5 -0
- package/dist/constraint/index.d.ts.map +1 -0
- package/dist/did/agent.d.ts +58 -0
- package/dist/did/agent.d.ts.map +1 -0
- package/dist/did/did-utils.d.ts +82 -0
- package/dist/did/did-utils.d.ts.map +1 -0
- package/dist/did/key-manager.d.ts +19 -0
- package/dist/did/key-manager.d.ts.map +1 -0
- package/dist/gateway/gateway-client.d.ts +103 -0
- package/dist/gateway/gateway-client.d.ts.map +1 -0
- package/dist/gateway/index.d.ts +2 -0
- package/dist/gateway/index.d.ts.map +1 -0
- package/dist/grant/grant-manager.d.ts +140 -0
- package/dist/grant/grant-manager.d.ts.map +1 -0
- package/dist/grant/index.d.ts +2 -0
- package/dist/grant/index.d.ts.map +1 -0
- package/dist/identity/device-enroll-manager.d.ts +117 -0
- package/dist/identity/device-enroll-manager.d.ts.map +1 -0
- package/dist/identity/user-identity-manager.d.ts +123 -0
- package/dist/identity/user-identity-manager.d.ts.map +1 -0
- package/dist/identity/user-key-pair-manager.d.ts +22 -0
- package/dist/identity/user-key-pair-manager.d.ts.map +1 -0
- package/dist/index.d.mts +42685 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19534 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +19347 -0
- package/dist/index.mjs.map +1 -0
- package/dist/internal-signature/canonical.d.ts +80 -0
- package/dist/internal-signature/canonical.d.ts.map +1 -0
- package/dist/internal-signature/index.d.ts +17 -0
- package/dist/internal-signature/index.d.ts.map +1 -0
- package/dist/internal-signature/signer.d.ts +76 -0
- package/dist/internal-signature/signer.d.ts.map +1 -0
- package/dist/policy/cedar-engine.d.ts +334 -0
- package/dist/policy/cedar-engine.d.ts.map +1 -0
- package/dist/policy/cedar-entities.d.ts +59 -0
- package/dist/policy/cedar-entities.d.ts.map +1 -0
- package/dist/policy/decision.d.ts +46 -0
- package/dist/policy/decision.d.ts.map +1 -0
- package/dist/policy/index.d.ts +15 -0
- package/dist/policy/index.d.ts.map +1 -0
- package/dist/registry/access-orchestrator.d.ts +184 -0
- package/dist/registry/access-orchestrator.d.ts.map +1 -0
- package/dist/registry/action-aliases.d.ts +37 -0
- package/dist/registry/action-aliases.d.ts.map +1 -0
- package/dist/registry/action-input-validator.d.ts +19 -0
- package/dist/registry/action-input-validator.d.ts.map +1 -0
- package/dist/registry/action-normalizer.d.ts +47 -0
- package/dist/registry/action-normalizer.d.ts.map +1 -0
- package/dist/registry/action-registry-json.d.ts +35897 -0
- package/dist/registry/action-registry-json.d.ts.map +1 -0
- package/dist/registry/action-registry.d.ts +101 -0
- package/dist/registry/action-registry.d.ts.map +1 -0
- package/dist/registry/action-risk.d.ts +109 -0
- package/dist/registry/action-risk.d.ts.map +1 -0
- package/dist/registry/action-summary.d.ts +16 -0
- package/dist/registry/action-summary.d.ts.map +1 -0
- package/dist/registry/index.d.ts +14 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/providers.d.ts +32 -0
- package/dist/registry/providers.d.ts.map +1 -0
- package/dist/registry/reauth-constants.d.ts +56 -0
- package/dist/registry/reauth-constants.d.ts.map +1 -0
- package/dist/registry/resource-type-labels.d.ts +15 -0
- package/dist/registry/resource-type-labels.d.ts.map +1 -0
- package/dist/registry/resource-types.d.ts +47 -0
- package/dist/registry/resource-types.d.ts.map +1 -0
- package/dist/resolver/approval-time-resolution.d.ts +72 -0
- package/dist/resolver/approval-time-resolution.d.ts.map +1 -0
- package/dist/resolver/canonical-resource-id.d.ts +37 -0
- package/dist/resolver/canonical-resource-id.d.ts.map +1 -0
- package/dist/resolver/compare-resource-id.d.ts +37 -0
- package/dist/resolver/compare-resource-id.d.ts.map +1 -0
- package/dist/resolver/salient-digest.d.ts +48 -0
- package/dist/resolver/salient-digest.d.ts.map +1 -0
- package/dist/resolver/target-resolver.d.ts +28 -0
- package/dist/resolver/target-resolver.d.ts.map +1 -0
- package/dist/state/index.d.ts +3 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/json-state-store.d.ts +24 -0
- package/dist/state/json-state-store.d.ts.map +1 -0
- package/dist/state/state-store.interface.d.ts +37 -0
- package/dist/state/state-store.interface.d.ts.map +1 -0
- package/dist/storage/filesystem-key-storage.d.ts +16 -0
- package/dist/storage/filesystem-key-storage.d.ts.map +1 -0
- package/dist/storage/index.d.ts +4 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/key-storage.interface.d.ts +42 -0
- package/dist/storage/key-storage.interface.d.ts.map +1 -0
- package/dist/storage/memory-key-storage.d.ts +17 -0
- package/dist/storage/memory-key-storage.d.ts.map +1 -0
- package/dist/tool/tool-manager.d.ts +44 -0
- package/dist/tool/tool-manager.d.ts.map +1 -0
- package/dist/types/agent.d.ts +139 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/audit.d.ts +23 -0
- package/dist/types/audit.d.ts.map +1 -0
- package/dist/types/cedar-policy.d.ts +60 -0
- package/dist/types/cedar-policy.d.ts.map +1 -0
- package/dist/types/connector-plugin.d.ts +252 -0
- package/dist/types/connector-plugin.d.ts.map +1 -0
- package/dist/types/connectors.d.ts +39 -0
- package/dist/types/connectors.d.ts.map +1 -0
- package/dist/types/context.d.ts +152 -0
- package/dist/types/context.d.ts.map +1 -0
- package/dist/types/did.d.ts +18 -0
- package/dist/types/did.d.ts.map +1 -0
- package/dist/types/errors.d.ts +24 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/grant.d.ts +522 -0
- package/dist/types/grant.d.ts.map +1 -0
- package/dist/types/index.d.ts +22 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/intent.d.ts +133 -0
- package/dist/types/intent.d.ts.map +1 -0
- package/dist/types/invitation.d.ts +97 -0
- package/dist/types/invitation.d.ts.map +1 -0
- package/dist/types/jira.d.ts +348 -0
- package/dist/types/jira.d.ts.map +1 -0
- package/dist/types/oauth.d.ts +72 -0
- package/dist/types/oauth.d.ts.map +1 -0
- package/dist/types/organization.d.ts +77 -0
- package/dist/types/organization.d.ts.map +1 -0
- package/dist/types/permission-mode.d.ts +138 -0
- package/dist/types/permission-mode.d.ts.map +1 -0
- package/dist/types/permission-vc.d.ts +800 -0
- package/dist/types/permission-vc.d.ts.map +1 -0
- package/dist/types/receipt.d.ts +133 -0
- package/dist/types/receipt.d.ts.map +1 -0
- package/dist/types/target-binding.d.ts +163 -0
- package/dist/types/target-binding.d.ts.map +1 -0
- package/dist/types/tier.d.ts +13 -0
- package/dist/types/tier.d.ts.map +1 -0
- package/dist/types/vc.d.ts +213 -0
- package/dist/types/vc.d.ts.map +1 -0
- package/dist/types/vp.d.ts +25 -0
- package/dist/types/vp.d.ts.map +1 -0
- package/dist/utils/action-classifier.d.ts +13 -0
- package/dist/utils/action-classifier.d.ts.map +1 -0
- package/dist/utils/crypto.d.ts +22 -0
- package/dist/utils/crypto.d.ts.map +1 -0
- package/dist/utils/freemail-domains.d.ts +13 -0
- package/dist/utils/freemail-domains.d.ts.map +1 -0
- package/dist/utils/sdjwt-client.d.ts +415 -0
- package/dist/utils/sdjwt-client.d.ts.map +1 -0
- package/dist/utils/sdjwt-disclosure.d.ts +13 -0
- package/dist/utils/sdjwt-disclosure.d.ts.map +1 -0
- package/dist/utils/tier-utils.d.ts +15 -0
- package/dist/utils/tier-utils.d.ts.map +1 -0
- package/dist/vc/api-vc-manager.d.ts +43 -0
- package/dist/vc/api-vc-manager.d.ts.map +1 -0
- package/dist/vc/vc-manager.d.ts +55 -0
- package/dist/vc/vc-manager.d.ts.map +1 -0
- package/dist/vp/kb-jwt-builder.d.ts +89 -0
- package/dist/vp/kb-jwt-builder.d.ts.map +1 -0
- package/dist/vp/vp-manager.d.ts +75 -0
- package/dist/vp/vp-manager.d.ts.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1,522 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grant(許可)関連の型定義
|
|
3
|
+
* VESS AI Agent Permission Gateway MVP
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Grant(許可)の状態
|
|
7
|
+
*/
|
|
8
|
+
export declare enum GrantStatus {
|
|
9
|
+
PENDING = "pending",// Agent未確定(OAuth後、Agent接続前)
|
|
10
|
+
ACTIVE = "active",
|
|
11
|
+
EXPIRED = "expired",
|
|
12
|
+
REVOKED = "revoked",
|
|
13
|
+
SUSPENDED = "suspended",
|
|
14
|
+
EXHAUSTED = "exhausted"
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Grant(許可)のスコープ
|
|
18
|
+
*
|
|
19
|
+
* - PROJECT: プロジェクト全体に適用される Grant(全メンバーが継承)
|
|
20
|
+
* - USER: 特定ユーザーのみに適用される Grant
|
|
21
|
+
*/
|
|
22
|
+
export declare enum GrantScope {
|
|
23
|
+
PROJECT = "project",// Project-level Grant (全メンバーに適用)
|
|
24
|
+
USER = "user"
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* リソースタイプ
|
|
28
|
+
*/
|
|
29
|
+
export declare enum GrantResourceType {
|
|
30
|
+
SLACK_CHANNEL = "slack:channel",
|
|
31
|
+
SLACK_USER = "slack:user",
|
|
32
|
+
SLACK_WORKSPACE = "slack:workspace",
|
|
33
|
+
GITHUB_REPO = "github:repo",
|
|
34
|
+
GITHUB_ORG = "github:org",
|
|
35
|
+
GITHUB_ISSUE = "github:issue",
|
|
36
|
+
GOOGLE_DRIVE_FILE = "google:drive:file",
|
|
37
|
+
GOOGLE_DRIVE_FOLDER = "google:drive:folder",
|
|
38
|
+
GMAIL_THREAD = "gmail:thread",
|
|
39
|
+
GMAIL_LABEL = "gmail:label",
|
|
40
|
+
JIRA_PROJECT = "jira:project",
|
|
41
|
+
JIRA_BOARD = "jira:board",
|
|
42
|
+
JIRA_ISSUE = "jira:issue",
|
|
43
|
+
HUBSPOT_OBJECT = "hubspot:object",
|
|
44
|
+
HUBSPOT_PROPERTY = "hubspot:property",
|
|
45
|
+
HUBSPOT_SCHEMA = "hubspot:schema",
|
|
46
|
+
HUBSPOT_ASSOCIATION = "hubspot:association",
|
|
47
|
+
HUBSPOT_ENGAGEMENT = "hubspot:engagement",
|
|
48
|
+
HUBSPOT_WORKFLOW = "hubspot:workflow",
|
|
49
|
+
HUBSPOT_ACCOUNT = "hubspot:account",
|
|
50
|
+
OS_SECRET = "os:secret",
|
|
51
|
+
ANY = "*"
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* 許可されたリソース範囲
|
|
55
|
+
*
|
|
56
|
+
* Grant(許可)で指定するリソースの範囲を定義します。
|
|
57
|
+
* type、id、patternの組み合わせにより、柔軟なアクセス制御を実現します。
|
|
58
|
+
*
|
|
59
|
+
* @example 基本的な使用例
|
|
60
|
+
* ```typescript
|
|
61
|
+
* // 1. 完全一致: 特定のリソースIDのみ許可
|
|
62
|
+
* const resource1: GrantResource = {
|
|
63
|
+
* type: "slack:channel",
|
|
64
|
+
* id: "C123456",
|
|
65
|
+
* name: "general"
|
|
66
|
+
* }
|
|
67
|
+
*
|
|
68
|
+
* // 2. タイプ全体: 特定タイプの全リソースを許可(セキュリティ注意)
|
|
69
|
+
* const resource2: GrantResource = {
|
|
70
|
+
* type: "slack:channel" // 全チャンネルへのアクセスを許可
|
|
71
|
+
* }
|
|
72
|
+
*
|
|
73
|
+
* // 3. パターンマッチ: ワイルドカードを使用
|
|
74
|
+
* const resource3: GrantResource = {
|
|
75
|
+
* type: "slack:channel",
|
|
76
|
+
* pattern: "public-*", // "public-"で始まる全チャンネル
|
|
77
|
+
* name: "Public channels"
|
|
78
|
+
* }
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
81
|
+
* @example 階層的タイプマッチング
|
|
82
|
+
* ```typescript
|
|
83
|
+
* // ベースタイプは全サブタイプにマッチ(セキュリティ注意)
|
|
84
|
+
* const baseType: GrantResource = {
|
|
85
|
+
* type: "slack" // "slack:channel", "slack:message", "slack:file" など全てを許可
|
|
86
|
+
* }
|
|
87
|
+
*
|
|
88
|
+
* // ワイルドカードサフィックス
|
|
89
|
+
* const wildcardType: GrantResource = {
|
|
90
|
+
* type: "slack:*" // "slack:channel", "slack:message" など slack: 配下の全タイプを許可
|
|
91
|
+
* }
|
|
92
|
+
*
|
|
93
|
+
* // 具体的なタイプ(推奨)
|
|
94
|
+
* const specificType: GrantResource = {
|
|
95
|
+
* type: "slack:channel", // チャンネルのみ
|
|
96
|
+
* pattern: "team-*" // さらにパターンで制約
|
|
97
|
+
* }
|
|
98
|
+
* ```
|
|
99
|
+
*
|
|
100
|
+
* @example セキュリティベストプラクティス
|
|
101
|
+
* ```typescript
|
|
102
|
+
* // ❌ 避けるべき設定
|
|
103
|
+
* const bad1: GrantResource = {
|
|
104
|
+
* type: "*" // 全リソースタイプへのアクセス(最高リスク)
|
|
105
|
+
* }
|
|
106
|
+
*
|
|
107
|
+
* const bad2: GrantResource = {
|
|
108
|
+
* type: "slack" // 全Slackリソースへのアクセス(高リスク)
|
|
109
|
+
* }
|
|
110
|
+
*
|
|
111
|
+
* // ✅ 推奨される設定
|
|
112
|
+
* const good1: GrantResource = {
|
|
113
|
+
* type: "slack:channel",
|
|
114
|
+
* id: "C123456" // 特定チャンネルのみ(最も安全)
|
|
115
|
+
* }
|
|
116
|
+
*
|
|
117
|
+
* const good2: GrantResource = {
|
|
118
|
+
* type: "slack:channel",
|
|
119
|
+
* pattern: "public-*" // パターンで制約(比較的安全)
|
|
120
|
+
* }
|
|
121
|
+
*
|
|
122
|
+
* const good3: GrantResource = {
|
|
123
|
+
* type: "github:repo",
|
|
124
|
+
* pattern: "org-name/*" // 特定組織のリポジトリのみ
|
|
125
|
+
* }
|
|
126
|
+
* ```
|
|
127
|
+
*
|
|
128
|
+
* @security セキュリティガイドライン
|
|
129
|
+
*
|
|
130
|
+
* 1. **最小権限の原則**: 必要最小限のアクセス権限のみを付与
|
|
131
|
+
* - 可能な限り具体的な type を使用
|
|
132
|
+
* - id または pattern で範囲を制限
|
|
133
|
+
*
|
|
134
|
+
* 2. **ベースタイプの危険性**:
|
|
135
|
+
* - type: "slack" は "slack:channel", "slack:message" など全てを許可
|
|
136
|
+
* - 意図しない広範なアクセスを与える可能性
|
|
137
|
+
*
|
|
138
|
+
* 3. **ワイルドカード使用の注意**:
|
|
139
|
+
* - type: "*" は全リソースタイプにマッチ(本番環境では避ける)
|
|
140
|
+
* - pattern: "*" は全IDにマッチ(極めて慎重に使用)
|
|
141
|
+
*
|
|
142
|
+
* 4. **パターン構文**:
|
|
143
|
+
* - '*' = 0文字以上の任意の文字列(例: "test-*" → "test-1", "test-abc")
|
|
144
|
+
* - '?' = 1文字の任意の文字(例: "test-?" → "test-1", "test-a")
|
|
145
|
+
* - 正規表現として評価されるため、特殊文字のエスケープに注意
|
|
146
|
+
*
|
|
147
|
+
* 5. **ID/pattern未指定の影響**:
|
|
148
|
+
* - id も pattern も未指定の場合、そのタイプの全リソースへのアクセスを許可
|
|
149
|
+
* - 必ず適切な制約を設定することを推奨
|
|
150
|
+
*/
|
|
151
|
+
export interface GrantResource {
|
|
152
|
+
/**
|
|
153
|
+
* リソースタイプ
|
|
154
|
+
*
|
|
155
|
+
* リソースの種類を指定します。階層的な記法をサポート。
|
|
156
|
+
*
|
|
157
|
+
* 形式:
|
|
158
|
+
* - 単純: "slack", "github"
|
|
159
|
+
* - 階層的: "slack:channel", "github:repo", "drive:file"
|
|
160
|
+
* - ワイルドカード: "*", "slack:*"
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* - "slack" → 全Slackリソース(channel, message, file等)
|
|
164
|
+
* - "slack:channel" → Slackチャンネルのみ
|
|
165
|
+
* - "slack:*" → slack:配下の全タイプ
|
|
166
|
+
* - "*" → 全リソースタイプ
|
|
167
|
+
*/
|
|
168
|
+
type: GrantResourceType | string;
|
|
169
|
+
/**
|
|
170
|
+
* 特定リソースID(省略時はそのタイプの全リソースを許可)
|
|
171
|
+
*
|
|
172
|
+
* 具体的なリソースの識別子を指定します。
|
|
173
|
+
* 最も厳格なアクセス制御方法です。
|
|
174
|
+
*
|
|
175
|
+
* @example
|
|
176
|
+
* - "C123456" → 特定のSlackチャンネルID
|
|
177
|
+
* - "repo123" → 特定のGitHubリポジトリ
|
|
178
|
+
* - undefined → タイプの全リソースを許可(セキュリティ注意)
|
|
179
|
+
*/
|
|
180
|
+
id?: string;
|
|
181
|
+
/**
|
|
182
|
+
* パターンマッチ(例: "general-*", "team-?")
|
|
183
|
+
*
|
|
184
|
+
* ワイルドカードを使用したパターンマッチングを指定します。
|
|
185
|
+
* id よりも柔軟ですが、より広範なアクセスを許可します。
|
|
186
|
+
*
|
|
187
|
+
* パターン構文:
|
|
188
|
+
* - '*' = 0文字以上の任意の文字列
|
|
189
|
+
* - '?' = 1文字の任意の文字
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* - "public-*" → "public-general", "public-test" など
|
|
193
|
+
* - "team-*-dev" → "team-frontend-dev", "team-backend-dev" など
|
|
194
|
+
* - "C??????" → Cで始まる6文字のID
|
|
195
|
+
* - "*" → 全ID(極めて慎重に使用)
|
|
196
|
+
*/
|
|
197
|
+
pattern?: string;
|
|
198
|
+
/**
|
|
199
|
+
* 表示用名称
|
|
200
|
+
*
|
|
201
|
+
* UIなどでの表示に使用される人間が読める名前です。
|
|
202
|
+
* アクセス制御には影響しません。
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* - "General channel"
|
|
206
|
+
* - "Public channels"
|
|
207
|
+
* - "Production repositories"
|
|
208
|
+
*/
|
|
209
|
+
name?: string;
|
|
210
|
+
/**
|
|
211
|
+
* テナント/ワークスペース参照
|
|
212
|
+
*
|
|
213
|
+
* 同一プロバイダーの複数アカウントを区別するための識別子。
|
|
214
|
+
* 例: SlackのworkspaceId, JiraのcloudId, GitHubのorg名
|
|
215
|
+
*
|
|
216
|
+
* Alpha: 定義のみ、評価ロジックなし。
|
|
217
|
+
* 将来のマルチアカウント対応で使用。
|
|
218
|
+
*/
|
|
219
|
+
tenant_ref?: string;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* 時間帯制約
|
|
223
|
+
*/
|
|
224
|
+
export interface TimeWindowConstraint {
|
|
225
|
+
/** 許可時間帯開始(HH:mm形式) */
|
|
226
|
+
start?: string;
|
|
227
|
+
/** 許可時間帯終了(HH:mm形式) */
|
|
228
|
+
end?: string;
|
|
229
|
+
/** タイムゾーン(デフォルト: UTC) */
|
|
230
|
+
timezone?: string;
|
|
231
|
+
/** 許可曜日(0=日, 1=月...6=土) */
|
|
232
|
+
daysOfWeek?: number[];
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* 自動承認設定
|
|
236
|
+
* low-riskアクションをapprove.htmlなしで自動的にVC発行する
|
|
237
|
+
*/
|
|
238
|
+
export interface AutoApproveConfig {
|
|
239
|
+
/** 自動承認を有効にするか */
|
|
240
|
+
enabled: boolean;
|
|
241
|
+
/** 自動承認を許可するリスクレベル上限 (default: 'low') */
|
|
242
|
+
maxRiskLevel?: 'low' | 'medium';
|
|
243
|
+
/** 自動発行VCの最大有効期間(時間) (default: 24) */
|
|
244
|
+
maxDurationHours?: number;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Grant制約
|
|
248
|
+
*/
|
|
249
|
+
export interface GrantConstraints {
|
|
250
|
+
/** 最大実行回数 */
|
|
251
|
+
maxInvocations?: number;
|
|
252
|
+
/** 時間帯制約 */
|
|
253
|
+
timeWindow?: TimeWindowConstraint;
|
|
254
|
+
/** 有効期限(ISO 8601) - constraintsレベルでも指定可能 */
|
|
255
|
+
expiresAt?: string;
|
|
256
|
+
/** 許可IPレンジ(CIDR表記) */
|
|
257
|
+
ipAllowlist?: string[];
|
|
258
|
+
/** 許容リスクスコア上限(0-100) */
|
|
259
|
+
riskThreshold?: number;
|
|
260
|
+
/** Target constraints for secondary destinations (alpha: type only) */
|
|
261
|
+
targets?: import('./target-binding').TargetConstraint[];
|
|
262
|
+
/** 自動承認設定 */
|
|
263
|
+
autoApprove?: AutoApproveConfig;
|
|
264
|
+
/**
|
|
265
|
+
* Cedar 一元化 Step 4 — data-in-policy 許可パターン (Cedar `like` wildcard).
|
|
266
|
+
*
|
|
267
|
+
* 例: `["*@vess.id", "*@vesslabs.ai"]` → 各 recipient.address に対し
|
|
268
|
+
* `like "*@vess.id" || like "*@vesslabs.ai"` の Cedar permit rule が emit される.
|
|
269
|
+
*
|
|
270
|
+
* Spec: docs/specs/2026-05-24-cedar-unification-design.md §4.1 / §13 Step 4
|
|
271
|
+
*
|
|
272
|
+
* Phase 1 では primarily Gmail recipient address のために使う (recipient.address).
|
|
273
|
+
* Phase 2+ で per-target-binding な格納先 (channel.id 等) に拡張する.
|
|
274
|
+
*/
|
|
275
|
+
allow_patterns?: string[];
|
|
276
|
+
/**
|
|
277
|
+
* Cedar 一元化 Step 4 — data-in-policy 拒否パターン (Cedar `like` wildcard).
|
|
278
|
+
*
|
|
279
|
+
* 例: `["*@competitor.com"]` → 該当 recipient で Cedar `forbid` rule が emit される.
|
|
280
|
+
* Cedar forbid-overrides-permit semantics により approval があっても denied.
|
|
281
|
+
*
|
|
282
|
+
* Spec: docs/specs/2026-05-24-cedar-unification-design.md §4.1 / §4.2 / §13 Step 4
|
|
283
|
+
*/
|
|
284
|
+
deny_patterns?: string[];
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Grant作成リクエスト
|
|
288
|
+
*/
|
|
289
|
+
export interface CreateGrantRequest {
|
|
290
|
+
/** 許可名(表示用) */
|
|
291
|
+
name: string;
|
|
292
|
+
/** 説明 */
|
|
293
|
+
description?: string;
|
|
294
|
+
/** Grantのスコープ (project or user) */
|
|
295
|
+
grantScope?: GrantScope;
|
|
296
|
+
/** 対象ユーザーID(USER scopeの場合は必須、PROJECT scopeの場合はnull) */
|
|
297
|
+
userId?: string;
|
|
298
|
+
/** 許可するリソース範囲 */
|
|
299
|
+
resources: GrantResource[];
|
|
300
|
+
/** 許可するアクション(例: slack.message.post) */
|
|
301
|
+
actions: string[];
|
|
302
|
+
/** 制約 */
|
|
303
|
+
constraints: GrantConstraints;
|
|
304
|
+
/** 関連プロジェクトID */
|
|
305
|
+
projectId?: string;
|
|
306
|
+
/** メタデータ */
|
|
307
|
+
metadata?: Record<string, unknown>;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Grant更新リクエスト
|
|
311
|
+
*/
|
|
312
|
+
export interface UpdateGrantRequest {
|
|
313
|
+
/** 許可名 */
|
|
314
|
+
name?: string;
|
|
315
|
+
/** 説明 */
|
|
316
|
+
description?: string;
|
|
317
|
+
/** リソース範囲 */
|
|
318
|
+
resources?: GrantResource[];
|
|
319
|
+
/** アクション */
|
|
320
|
+
actions?: string[];
|
|
321
|
+
/** 制約 */
|
|
322
|
+
constraints?: GrantConstraints;
|
|
323
|
+
/** ステータス */
|
|
324
|
+
status?: GrantStatus;
|
|
325
|
+
/** メタデータ */
|
|
326
|
+
metadata?: Record<string, unknown>;
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Grant
|
|
330
|
+
*/
|
|
331
|
+
export interface Grant {
|
|
332
|
+
/** 一意識別子 */
|
|
333
|
+
id: string;
|
|
334
|
+
/** 許可名 */
|
|
335
|
+
name: string;
|
|
336
|
+
/** 説明 */
|
|
337
|
+
description?: string;
|
|
338
|
+
/** 許可を与えた人のDID */
|
|
339
|
+
issuerDid: string;
|
|
340
|
+
/** 許可を与えた人の名前 */
|
|
341
|
+
issuerName?: string;
|
|
342
|
+
/** Grantのスコープ (project or user) */
|
|
343
|
+
grantScope: GrantScope;
|
|
344
|
+
/** 対象ユーザーID(USER scopeの場合のみ、PROJECT scopeの場合はnull) */
|
|
345
|
+
userId?: string;
|
|
346
|
+
/** ステータス */
|
|
347
|
+
status: GrantStatus;
|
|
348
|
+
/** リソース範囲 */
|
|
349
|
+
resources: GrantResource[];
|
|
350
|
+
/** 許可アクション */
|
|
351
|
+
actions: string[];
|
|
352
|
+
/** 制約 */
|
|
353
|
+
constraints: GrantConstraints;
|
|
354
|
+
/** 現在の実行回数 */
|
|
355
|
+
currentInvocations: number;
|
|
356
|
+
/** 関連プロジェクトID */
|
|
357
|
+
projectId?: string;
|
|
358
|
+
/** 関連プロジェクト名 */
|
|
359
|
+
projectName?: string;
|
|
360
|
+
/** 作成日時 */
|
|
361
|
+
createdAt: string;
|
|
362
|
+
/** 更新日時 */
|
|
363
|
+
updatedAt: string;
|
|
364
|
+
/** 有効期限 */
|
|
365
|
+
expiresAt?: string;
|
|
366
|
+
/** 失効日時 */
|
|
367
|
+
revokedAt?: string;
|
|
368
|
+
/** 失効理由 */
|
|
369
|
+
revocationReason?: string;
|
|
370
|
+
/** メタデータ */
|
|
371
|
+
metadata?: Record<string, unknown>;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Grant使用状況
|
|
375
|
+
*/
|
|
376
|
+
export interface GrantUsage {
|
|
377
|
+
/** GrantのID */
|
|
378
|
+
grantId: string;
|
|
379
|
+
/** 実行回数 */
|
|
380
|
+
invocationCount: number;
|
|
381
|
+
/** 最終使用日時 */
|
|
382
|
+
lastUsedAt?: string;
|
|
383
|
+
/** 残り実行回数(maxInvocationsが設定されている場合) */
|
|
384
|
+
remainingInvocations?: number;
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Grant権限チェックリクエスト
|
|
388
|
+
*/
|
|
389
|
+
export interface CheckGrantPermissionRequest {
|
|
390
|
+
/** チェック対象のAgent DID */
|
|
391
|
+
agentDid: string;
|
|
392
|
+
/** チェックするアクション */
|
|
393
|
+
action: string;
|
|
394
|
+
/** チェックするリソース */
|
|
395
|
+
resource?: {
|
|
396
|
+
type: string;
|
|
397
|
+
id?: string;
|
|
398
|
+
};
|
|
399
|
+
/** 評価コンテキスト */
|
|
400
|
+
context?: {
|
|
401
|
+
ipAddress?: string;
|
|
402
|
+
timestamp?: string;
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Grant権限チェック結果
|
|
407
|
+
*/
|
|
408
|
+
export interface CheckGrantPermissionResult {
|
|
409
|
+
/** 許可されているか */
|
|
410
|
+
allowed: boolean;
|
|
411
|
+
/** マッチしたGrantのID */
|
|
412
|
+
grantId?: string;
|
|
413
|
+
/** 拒否理由(allowedがfalseの場合) */
|
|
414
|
+
reason?: string;
|
|
415
|
+
/** 残り実行回数 */
|
|
416
|
+
remainingInvocations?: number;
|
|
417
|
+
/** 警告メッセージ */
|
|
418
|
+
warnings?: string[];
|
|
419
|
+
}
|
|
420
|
+
import { PermissionRule, PermissionConstraints } from './permission-vc';
|
|
421
|
+
/**
|
|
422
|
+
* Convert Grant's GrantConstraints to PermissionConstraints format.
|
|
423
|
+
*
|
|
424
|
+
* Maps Grant-level constraints to per-rule PermissionConstraints:
|
|
425
|
+
* - maxInvocations → max_invocations
|
|
426
|
+
* - timeWindow → time (recurring)
|
|
427
|
+
* - ipAllowlist → ip_allowlist
|
|
428
|
+
* - riskThreshold → risk_threshold
|
|
429
|
+
*/
|
|
430
|
+
export declare function grantConstraintsToPermissionConstraints(constraints: GrantConstraints): PermissionConstraints | undefined;
|
|
431
|
+
/**
|
|
432
|
+
* Normalize Grant data into PermissionRule[] for VC claims.
|
|
433
|
+
*
|
|
434
|
+
* This is the core normalization function that bridges the Grant model
|
|
435
|
+
* (user-facing, "slack:channel" combined format) to the VC model
|
|
436
|
+
* (machine-evaluated, separated provider + resource.type format).
|
|
437
|
+
*
|
|
438
|
+
* Algorithm:
|
|
439
|
+
* 1. Group actions by provider prefix (slack:*, github:*, etc.)
|
|
440
|
+
* 2. For each provider, create rules combining resources of that provider
|
|
441
|
+
* 3. Attach normalized constraints to each rule
|
|
442
|
+
*
|
|
443
|
+
* @example
|
|
444
|
+
* ```typescript
|
|
445
|
+
* const grant = {
|
|
446
|
+
* resources: [{ type: 'slack:channel', id: 'C123' }],
|
|
447
|
+
* actions: ['slack.message.post', 'slack.channel.read'],
|
|
448
|
+
* constraints: { maxInvocations: 100, timeWindow: { start: '09:00', end: '18:00' } }
|
|
449
|
+
* }
|
|
450
|
+
*
|
|
451
|
+
* const rules = grantToPermissionRules(grant.resources, grant.actions, grant.constraints)
|
|
452
|
+
* // Result:
|
|
453
|
+
* // [{
|
|
454
|
+
* // effect: 'allow',
|
|
455
|
+
* // provider: 'slack',
|
|
456
|
+
* // resource: { type: 'channel', id: 'C123' },
|
|
457
|
+
* // actions: ['channel.post_message', 'channel.read_history'],
|
|
458
|
+
* // constraints: { max_invocations: 100, time: { recurring_start: '09:00', ... } }
|
|
459
|
+
* // }]
|
|
460
|
+
* ```
|
|
461
|
+
*/
|
|
462
|
+
export declare function grantToPermissionRules(resources: GrantResource[], actions: string[], constraints: GrantConstraints, grantId?: string): PermissionRule[];
|
|
463
|
+
/**
|
|
464
|
+
* ApprovalContext — Cedar 一元化 Step 3.5.
|
|
465
|
+
*
|
|
466
|
+
* Spec refs:
|
|
467
|
+
* - docs/specs/2026-05-24-cedar-unification-design.md §6 (approvalContext
|
|
468
|
+
* DTO + token ledger)
|
|
469
|
+
* - docs/specs/2026-05-24-cedar-unification-design.md §7.2 (Cedar
|
|
470
|
+
* context.approval shape)
|
|
471
|
+
* - docs/specs/2026-05-24-cedar-unification-design.md §11.1
|
|
472
|
+
* (`via_approval` event lifecycle)
|
|
473
|
+
*
|
|
474
|
+
* Carried in the body of the VC issuance API on the **retry path** (i.e.
|
|
475
|
+
* after a user clicked 承認 in the approval UI). The server consumes the
|
|
476
|
+
* single-use `token` against the approval-token ledger atomically and then
|
|
477
|
+
* injects `{ granted: true, request_id, outcome_id }` into the Cedar
|
|
478
|
+
* `context.approval` so a policy that previously returned `auth_required`
|
|
479
|
+
* now returns `permit`.
|
|
480
|
+
*
|
|
481
|
+
* Identifier formats (canonical, enforced upstream):
|
|
482
|
+
* - `request_id` : `'req_' + uuid`
|
|
483
|
+
* - `outcome_id` : `'outcome_' + uuid`
|
|
484
|
+
* - `token` : `'tok_' + uuid`
|
|
485
|
+
* - `granted_at` : ISO-8601 timestamp
|
|
486
|
+
* - `granted_by` : user id, or the literal `'system'` for auto-approve
|
|
487
|
+
*
|
|
488
|
+
* Replay protection invariant (spec §6):
|
|
489
|
+
* The `token` is **single-use**. Once consumed by the ledger, a second
|
|
490
|
+
* submission MUST be rejected as `denied_by_user` (ephemeral — does not
|
|
491
|
+
* poison subsequent fresh requests; §5.1 OpenQ-D1 resolution).
|
|
492
|
+
*/
|
|
493
|
+
export interface ApprovalContext {
|
|
494
|
+
/** `req_<uuid>` — the approval-request id embedded in the initial
|
|
495
|
+
* `auth_required` audit event. Used to reverse-link the outcome to the
|
|
496
|
+
* triggering invocation. */
|
|
497
|
+
request_id: string;
|
|
498
|
+
/** `outcome_<uuid>` — the approval_outcome event id (Step 6 surfaces this
|
|
499
|
+
* as a first-class row, Step 3.5 only carries it through the ledger). */
|
|
500
|
+
outcome_id: string;
|
|
501
|
+
/** `tok_<uuid>` — single-use token. Consumed atomically. */
|
|
502
|
+
token: string;
|
|
503
|
+
/** True for 承認, false for 拒否. Step 3.5 only honors `true` (the `false`
|
|
504
|
+
* path is handled by emitting `denied_by_user` directly in the UI). */
|
|
505
|
+
granted: boolean;
|
|
506
|
+
/** ISO-8601 timestamp of the approval action. */
|
|
507
|
+
granted_at: string;
|
|
508
|
+
/** user id or `'system'` for auto-approve. */
|
|
509
|
+
granted_by: string;
|
|
510
|
+
/**
|
|
511
|
+
* HOW the consent was obtained — `'explicit'` (the user acted) or `'auto'`
|
|
512
|
+
* (consent given on their behalf). Distinct from `granted_by`, which
|
|
513
|
+
* records WHO: booking start writes `'system'` for both, because the
|
|
514
|
+
* visitor's identity is gone by issuance time.
|
|
515
|
+
*
|
|
516
|
+
* Optional and nullable on purpose. Absent means "not recorded" — rows
|
|
517
|
+
* predating the column, which are deliberately not backfilled. Readers must
|
|
518
|
+
* treat that as a third state rather than defaulting it either way.
|
|
519
|
+
*/
|
|
520
|
+
consent_type?: 'explicit' | 'auto';
|
|
521
|
+
}
|
|
522
|
+
//# sourceMappingURL=grant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grant.d.ts","sourceRoot":"","sources":["../../src/types/grant.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export * from './agent';
|
|
2
|
+
export * from './vc';
|
|
3
|
+
export * from './vp';
|
|
4
|
+
export * from './did';
|
|
5
|
+
export * from './audit';
|
|
6
|
+
export * from './errors';
|
|
7
|
+
export * from './connectors';
|
|
8
|
+
export * from './organization';
|
|
9
|
+
export * from './grant';
|
|
10
|
+
export * from './receipt';
|
|
11
|
+
export * from './intent';
|
|
12
|
+
export * from './context';
|
|
13
|
+
export * from './oauth';
|
|
14
|
+
export * from './jira';
|
|
15
|
+
export * from './connector-plugin';
|
|
16
|
+
export * from './invitation';
|
|
17
|
+
export * from './permission-mode';
|
|
18
|
+
export * from './permission-vc';
|
|
19
|
+
export * from './cedar-policy';
|
|
20
|
+
export * from './target-binding';
|
|
21
|
+
export * from './tier';
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,MAAM,CAAA;AACpB,cAAc,MAAM,CAAA;AACpB,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,QAAQ,CAAA"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intent(操作意図)関連の型定義
|
|
3
|
+
* VESS AI Agent Permission Gateway MVP
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* リソース情報
|
|
7
|
+
*/
|
|
8
|
+
export interface IntentResource {
|
|
9
|
+
/** リソースタイプ(SlackChannel, DriveFile等) */
|
|
10
|
+
type: string;
|
|
11
|
+
/** リソース識別子 */
|
|
12
|
+
id?: string;
|
|
13
|
+
/** ワークスペース/フォルダ等の範囲 */
|
|
14
|
+
scope?: string;
|
|
15
|
+
/** 追加のリソース属性 */
|
|
16
|
+
attributes?: Record<string, unknown>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Intent(操作意図)
|
|
20
|
+
* SaaS依存を最小化した「操作意図」の正規化表現
|
|
21
|
+
*/
|
|
22
|
+
export interface Intent {
|
|
23
|
+
/** 権限主体のDID(誰の代わりに実行するか) */
|
|
24
|
+
subject: string;
|
|
25
|
+
/** 実行者のDID(Agent/User) */
|
|
26
|
+
actor: string;
|
|
27
|
+
/** 正規化アクション名(例: slack.message.post) */
|
|
28
|
+
action: string;
|
|
29
|
+
/** リソース情報 */
|
|
30
|
+
resource: IntentResource;
|
|
31
|
+
/** パラメータ */
|
|
32
|
+
parameters: Record<string, unknown>;
|
|
33
|
+
/** タイムスタンプ(ISO 8601) */
|
|
34
|
+
timestamp: string;
|
|
35
|
+
/** 相関ID(トレース用) */
|
|
36
|
+
traceId?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 正規化されたIntent
|
|
40
|
+
*/
|
|
41
|
+
export interface NormalizedIntent extends Intent {
|
|
42
|
+
/** 元のツール名 */
|
|
43
|
+
originalToolName: string;
|
|
44
|
+
/** 元のアクション名 */
|
|
45
|
+
originalAction: string;
|
|
46
|
+
/** 正規化後のアクション名 */
|
|
47
|
+
normalizedAction: string;
|
|
48
|
+
/** コネクタ固有データ(SaaS固有情報を隔離) */
|
|
49
|
+
connectorSpecificData?: Record<string, unknown>;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Intent正規化リクエスト
|
|
53
|
+
*/
|
|
54
|
+
export interface NormalizeIntentRequest {
|
|
55
|
+
/** ツール名(slack, github, drive等) */
|
|
56
|
+
toolName: string;
|
|
57
|
+
/** アクション名(postMessage, createIssue等) */
|
|
58
|
+
action: string;
|
|
59
|
+
/** パラメータ */
|
|
60
|
+
parameters: Record<string, unknown>;
|
|
61
|
+
/** 実行者DID */
|
|
62
|
+
actorDid: string;
|
|
63
|
+
/** 権限主体DID(省略時はactorDid) */
|
|
64
|
+
subjectDid?: string;
|
|
65
|
+
/** 相関ID */
|
|
66
|
+
traceId?: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* アクションマッピング
|
|
70
|
+
* 各コネクタのアクションを正規化アクションにマッピング
|
|
71
|
+
*/
|
|
72
|
+
export interface ActionMapping {
|
|
73
|
+
/** コネクタ名 */
|
|
74
|
+
connector: string;
|
|
75
|
+
/** 元のアクション名 */
|
|
76
|
+
originalAction: string;
|
|
77
|
+
/** 正規化アクション名 */
|
|
78
|
+
normalizedAction: string;
|
|
79
|
+
/** リソースタイプ */
|
|
80
|
+
resourceType: string;
|
|
81
|
+
/** 説明 */
|
|
82
|
+
description?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Intent評価結果
|
|
86
|
+
*/
|
|
87
|
+
export interface IntentEvaluationResult {
|
|
88
|
+
/** 許可されているか */
|
|
89
|
+
allowed: boolean;
|
|
90
|
+
/** マッチしたGrantのID */
|
|
91
|
+
matchedGrantId?: string;
|
|
92
|
+
/** 拒否理由 */
|
|
93
|
+
reason?: string;
|
|
94
|
+
/** Obligations(追加要件) */
|
|
95
|
+
obligations?: IntentObligation[];
|
|
96
|
+
/** 警告 */
|
|
97
|
+
warnings?: string[];
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Obligation(追加要件)
|
|
101
|
+
*/
|
|
102
|
+
export interface IntentObligation {
|
|
103
|
+
/** Obligationタイプ */
|
|
104
|
+
type: 'audit_enhanced' | 'mask_data' | 'require_approval' | 'rate_limit' | 'notify';
|
|
105
|
+
/** 詳細設定 */
|
|
106
|
+
config?: Record<string, unknown>;
|
|
107
|
+
/** 説明 */
|
|
108
|
+
description?: string;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* 標準アクション定義
|
|
112
|
+
* 各コネクタで共通して使用可能なアクションカテゴリ
|
|
113
|
+
*/
|
|
114
|
+
export declare enum StandardActionCategory {
|
|
115
|
+
READ = "read",
|
|
116
|
+
WRITE = "write",
|
|
117
|
+
DELETE = "delete",
|
|
118
|
+
LIST = "list",
|
|
119
|
+
SEARCH = "search",
|
|
120
|
+
SHARE = "share",
|
|
121
|
+
ADMIN = "admin"
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* 標準アクションプレフィックス
|
|
125
|
+
*/
|
|
126
|
+
export declare const ACTION_PREFIXES: {
|
|
127
|
+
readonly SLACK: "slack";
|
|
128
|
+
readonly GITHUB: "github";
|
|
129
|
+
readonly GMAIL: "gmail";
|
|
130
|
+
readonly CALENDAR: "calendar";
|
|
131
|
+
readonly JIRA: "jira";
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=intent.d.ts.map
|