@vess-id/ai-identity 0.9.0 → 0.10.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.d.mts +808 -97
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +226 -44
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +225 -44
- package/dist/index.mjs.map +1 -1
- package/dist/registry/action-registry-json.d.ts +795 -96
- package/dist/registry/action-registry-json.d.ts.map +1 -1
- package/dist/registry/action-summary.d.ts.map +1 -1
- package/dist/resolver/target-resolver.d.ts +8 -0
- package/dist/resolver/target-resolver.d.ts.map +1 -1
- package/dist/types/target-binding.d.ts +4 -0
- package/dist/types/target-binding.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -27,7 +27,7 @@ export type { ActionParamDisplay } from './registry/action-summary';
|
|
|
27
27
|
export { generateKeyPair, signJWT, verifyJWT, generateNonce } from './utils/crypto';
|
|
28
28
|
export { SDJwtClient } from './utils/sdjwt-client';
|
|
29
29
|
export { createDidJwk, extractPublicKey, extractPublicKeyFromDid, isValidDidJwk, getKeyIdFromDid, publicKeysMatch, } from './did/did-utils';
|
|
30
|
-
export { TargetResolver } from './resolver/target-resolver';
|
|
30
|
+
export { TargetResolver, extractProjectKey } from './resolver/target-resolver';
|
|
31
31
|
export * from './types';
|
|
32
32
|
export { isWriteAction, WRITE_ACTION_NAMES } from './utils/action-classifier';
|
|
33
33
|
export { resolveUserTier, getTierLimits, isUnlimited } from './utils/tier-utils';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAGrD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAC/E,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,iBAAiB,GAClB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,mCAAmC,CAAA;AAG1C,cAAc,WAAW,CAAA;AAGzB,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAGzD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACtE,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAErD,cAAc,YAAY,CAAA;AAG1B,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AACtH,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAGnE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGlD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,aAAa,EACb,eAAe,EACf,eAAe,GAChB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAGrD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAGrD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAC/E,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,iBAAiB,GAClB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,mCAAmC,CAAA;AAG1C,cAAc,WAAW,CAAA;AAGzB,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAGzD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACtE,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,0BAA0B,CAAA;AAGjC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAErD,cAAc,YAAY,CAAA;AAG1B,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AACtH,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAGnE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGlD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,aAAa,EACb,eAAe,EACf,eAAe,GAChB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAG9E,cAAc,SAAS,CAAA;AAGvB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAG7E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAGhF,eAAO,MAAM,OAAO,UAAU,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -96,6 +96,7 @@ __export(index_exports, {
|
|
|
96
96
|
credentialStatusToVCStatus: () => credentialStatusToVCStatus,
|
|
97
97
|
defaultConstraintEvaluator: () => defaultConstraintEvaluator,
|
|
98
98
|
evaluateConstraints: () => evaluateConstraints,
|
|
99
|
+
extractProjectKey: () => extractProjectKey,
|
|
99
100
|
extractPublicKey: () => extractPublicKey,
|
|
100
101
|
extractPublicKeyFromDid: () => extractPublicKeyFromDid,
|
|
101
102
|
generateActionParamsDisplay: () => generateActionParamsDisplay,
|
|
@@ -2119,7 +2120,7 @@ var ToolManager = class {
|
|
|
2119
2120
|
projectKey: "string",
|
|
2120
2121
|
summary: "string",
|
|
2121
2122
|
description: "string?",
|
|
2122
|
-
|
|
2123
|
+
issueTypeName: "string",
|
|
2123
2124
|
priority: "string?",
|
|
2124
2125
|
assignee: "string?"
|
|
2125
2126
|
}
|
|
@@ -4686,11 +4687,39 @@ var ACTION_REGISTRY = {
|
|
|
4686
4687
|
},
|
|
4687
4688
|
version: "1.0.0"
|
|
4688
4689
|
},
|
|
4690
|
+
{
|
|
4691
|
+
action: "slack.message.read_paginated",
|
|
4692
|
+
resource_type: "slack:channel",
|
|
4693
|
+
required_relations: ["viewer", "editor", "admin", "owner"],
|
|
4694
|
+
required_scopes: ["channels:history", "groups:history"],
|
|
4695
|
+
capability: "slack.read.basic",
|
|
4696
|
+
input_schema: {
|
|
4697
|
+
type: "object",
|
|
4698
|
+
properties: {
|
|
4699
|
+
channel: { type: "string", description: "Channel ID, channel name, or channel name with # prefix" },
|
|
4700
|
+
cursor: { type: "string", description: "Pagination cursor from previous response" },
|
|
4701
|
+
limit: { type: "integer", minimum: 1, maximum: 30 }
|
|
4702
|
+
},
|
|
4703
|
+
required: ["channel"],
|
|
4704
|
+
additionalProperties: false
|
|
4705
|
+
},
|
|
4706
|
+
constraints: { rate_bucket: "slack.read" },
|
|
4707
|
+
effects: ["Read:Message"],
|
|
4708
|
+
risk: "low",
|
|
4709
|
+
target_bindings: {
|
|
4710
|
+
resource_id: { source: "param", param: "channel" }
|
|
4711
|
+
},
|
|
4712
|
+
version: "1.0.0"
|
|
4713
|
+
},
|
|
4689
4714
|
{
|
|
4690
4715
|
action: "slack.batch.read",
|
|
4691
4716
|
resource_type: "slack:channel",
|
|
4692
4717
|
required_relations: ["viewer", "editor", "admin", "owner"],
|
|
4693
|
-
|
|
4718
|
+
// Documentation only — NOT used for runtime access control.
|
|
4719
|
+
// Actual permission granting uses parseSlackScopes (oauth.service.ts) with OR-logic:
|
|
4720
|
+
// any read scope + any history scope grants slack.batch.read.
|
|
4721
|
+
// Tokens with partial scopes (e.g. channels:read + channels:history) will still receive this permission.
|
|
4722
|
+
required_scopes: ["channels:read", "groups:read", "im:read", "mpim:read", "channels:history", "groups:history", "im:history", "mpim:history"],
|
|
4694
4723
|
capability: "slack.read.basic",
|
|
4695
4724
|
input_schema: {
|
|
4696
4725
|
type: "object",
|
|
@@ -5062,10 +5091,10 @@ var ACTION_REGISTRY = {
|
|
|
5062
5091
|
input_schema: {
|
|
5063
5092
|
type: "object",
|
|
5064
5093
|
properties: {
|
|
5065
|
-
calendarId: { type: "string" },
|
|
5066
|
-
timeMin: { type: "string" },
|
|
5067
|
-
timeMax: { type: "string" },
|
|
5068
|
-
maxResults: { type: "integer", minimum: 1, maximum: 2500 }
|
|
5094
|
+
calendarId: { type: "string", description: "Calendar ID (email address). Defaults to primary calendar." },
|
|
5095
|
+
timeMin: { type: "string", description: 'Lower bound (inclusive) for event start time, as ISO 8601 datetime, e.g. "2025-01-15T00:00:00Z"' },
|
|
5096
|
+
timeMax: { type: "string", description: 'Upper bound (exclusive) for event start time, as ISO 8601 datetime, e.g. "2025-01-16T00:00:00Z"' },
|
|
5097
|
+
maxResults: { type: "integer", minimum: 1, maximum: 2500, description: "Maximum number of events to return" }
|
|
5069
5098
|
},
|
|
5070
5099
|
additionalProperties: false
|
|
5071
5100
|
},
|
|
@@ -5109,13 +5138,29 @@ var ACTION_REGISTRY = {
|
|
|
5109
5138
|
input_schema: {
|
|
5110
5139
|
type: "object",
|
|
5111
5140
|
properties: {
|
|
5112
|
-
calendarId: { type: "string" },
|
|
5113
|
-
summary: { type: "string", minLength: 1 },
|
|
5114
|
-
description: { type: "string" },
|
|
5115
|
-
start: {
|
|
5116
|
-
|
|
5117
|
-
|
|
5118
|
-
|
|
5141
|
+
calendarId: { type: "string", description: "Calendar ID (email address). Defaults to primary calendar." },
|
|
5142
|
+
summary: { type: "string", minLength: 1, description: "Event title" },
|
|
5143
|
+
description: { type: "string", description: "Event description" },
|
|
5144
|
+
start: {
|
|
5145
|
+
type: "object",
|
|
5146
|
+
description: "Start time. Use dateTime + timeZone for timed events, or date for all-day events.",
|
|
5147
|
+
properties: {
|
|
5148
|
+
dateTime: { type: "string", description: 'ISO 8601 datetime, e.g. "2025-01-15T10:00:00"' },
|
|
5149
|
+
date: { type: "string", description: 'Date for all-day event, e.g. "2025-01-15"' },
|
|
5150
|
+
timeZone: { type: "string", description: 'IANA time zone, e.g. "Asia/Tokyo"' }
|
|
5151
|
+
}
|
|
5152
|
+
},
|
|
5153
|
+
end: {
|
|
5154
|
+
type: "object",
|
|
5155
|
+
description: "End time. Use dateTime + timeZone for timed events, or date for all-day events.",
|
|
5156
|
+
properties: {
|
|
5157
|
+
dateTime: { type: "string", description: 'ISO 8601 datetime, e.g. "2025-01-15T11:00:00"' },
|
|
5158
|
+
date: { type: "string", description: 'Date for all-day event, e.g. "2025-01-16"' },
|
|
5159
|
+
timeZone: { type: "string", description: 'IANA time zone, e.g. "Asia/Tokyo"' }
|
|
5160
|
+
}
|
|
5161
|
+
},
|
|
5162
|
+
attendees: { type: "array", description: "List of attendee objects with email field", items: { type: "object", properties: { email: { type: "string" } } } },
|
|
5163
|
+
location: { type: "string", description: "Event location" }
|
|
5119
5164
|
},
|
|
5120
5165
|
required: ["summary", "start", "end"],
|
|
5121
5166
|
additionalProperties: false
|
|
@@ -5140,14 +5185,30 @@ var ACTION_REGISTRY = {
|
|
|
5140
5185
|
input_schema: {
|
|
5141
5186
|
type: "object",
|
|
5142
5187
|
properties: {
|
|
5143
|
-
calendarId: { type: "string" },
|
|
5144
|
-
eventId: { type: "string", minLength: 1 },
|
|
5145
|
-
summary: { type: "string" },
|
|
5146
|
-
description: { type: "string" },
|
|
5147
|
-
start: {
|
|
5148
|
-
|
|
5149
|
-
|
|
5150
|
-
|
|
5188
|
+
calendarId: { type: "string", description: "Calendar ID (email address). Defaults to primary calendar." },
|
|
5189
|
+
eventId: { type: "string", minLength: 1, description: "Event ID to update" },
|
|
5190
|
+
summary: { type: "string", description: "Event title" },
|
|
5191
|
+
description: { type: "string", description: "Event description" },
|
|
5192
|
+
start: {
|
|
5193
|
+
type: "object",
|
|
5194
|
+
description: "Start time. Use dateTime + timeZone for timed events, or date for all-day events.",
|
|
5195
|
+
properties: {
|
|
5196
|
+
dateTime: { type: "string", description: 'ISO 8601 datetime, e.g. "2025-01-15T10:00:00"' },
|
|
5197
|
+
date: { type: "string", description: 'Date for all-day event, e.g. "2025-01-15"' },
|
|
5198
|
+
timeZone: { type: "string", description: 'IANA time zone, e.g. "Asia/Tokyo"' }
|
|
5199
|
+
}
|
|
5200
|
+
},
|
|
5201
|
+
end: {
|
|
5202
|
+
type: "object",
|
|
5203
|
+
description: "End time. Use dateTime + timeZone for timed events, or date for all-day events.",
|
|
5204
|
+
properties: {
|
|
5205
|
+
dateTime: { type: "string", description: 'ISO 8601 datetime, e.g. "2025-01-15T11:00:00"' },
|
|
5206
|
+
date: { type: "string", description: 'Date for all-day event, e.g. "2025-01-16"' },
|
|
5207
|
+
timeZone: { type: "string", description: 'IANA time zone, e.g. "Asia/Tokyo"' }
|
|
5208
|
+
}
|
|
5209
|
+
},
|
|
5210
|
+
attendees: { type: "array", description: "List of attendee objects with email field", items: { type: "object", properties: { email: { type: "string" } } } },
|
|
5211
|
+
location: { type: "string", description: "Event location" }
|
|
5151
5212
|
},
|
|
5152
5213
|
required: ["eventId"],
|
|
5153
5214
|
additionalProperties: false
|
|
@@ -5156,7 +5217,7 @@ var ACTION_REGISTRY = {
|
|
|
5156
5217
|
effects: ["Update:Event"],
|
|
5157
5218
|
risk: "medium",
|
|
5158
5219
|
target_bindings: {
|
|
5159
|
-
resource_id: { source: "param", param: "
|
|
5220
|
+
resource_id: { source: "param", param: "calendarId", default: "primary" },
|
|
5160
5221
|
secondary: [
|
|
5161
5222
|
{ name: "attendees", source: { source: "param", param: "attendees" }, type: "participant" }
|
|
5162
5223
|
]
|
|
@@ -5182,7 +5243,7 @@ var ACTION_REGISTRY = {
|
|
|
5182
5243
|
effects: ["Delete:Event"],
|
|
5183
5244
|
risk: "high",
|
|
5184
5245
|
target_bindings: {
|
|
5185
|
-
resource_id: { source: "param", param: "
|
|
5246
|
+
resource_id: { source: "param", param: "calendarId", default: "primary" }
|
|
5186
5247
|
},
|
|
5187
5248
|
version: "1.0.0"
|
|
5188
5249
|
},
|
|
@@ -5318,7 +5379,7 @@ var ACTION_REGISTRY = {
|
|
|
5318
5379
|
effects: ["Read:Worklog"],
|
|
5319
5380
|
risk: "low",
|
|
5320
5381
|
target_bindings: {
|
|
5321
|
-
resource_id: { source: "param", param: "issueIdOrKey" }
|
|
5382
|
+
resource_id: { source: "param", param: "issueIdOrKey", fallback_param: "issueKey" }
|
|
5322
5383
|
},
|
|
5323
5384
|
version: "1.0.0"
|
|
5324
5385
|
},
|
|
@@ -5340,13 +5401,13 @@ var ACTION_REGISTRY = {
|
|
|
5340
5401
|
effects: ["Read:Issue"],
|
|
5341
5402
|
risk: "low",
|
|
5342
5403
|
target_bindings: {
|
|
5343
|
-
resource_id: { source: "param", param: "issueIdOrKey" }
|
|
5404
|
+
resource_id: { source: "param", param: "issueIdOrKey", fallback_param: "issueKey" }
|
|
5344
5405
|
},
|
|
5345
5406
|
version: "1.0.0"
|
|
5346
5407
|
},
|
|
5347
5408
|
{
|
|
5348
5409
|
action: "jira.issue.create",
|
|
5349
|
-
resource_type: "jira:
|
|
5410
|
+
resource_type: "jira:project",
|
|
5350
5411
|
required_relations: ["editor", "act_as"],
|
|
5351
5412
|
required_scopes: ["write:jira-work"],
|
|
5352
5413
|
capability: "jira.write.basic",
|
|
@@ -5356,11 +5417,12 @@ var ACTION_REGISTRY = {
|
|
|
5356
5417
|
projectKey: { type: "string", minLength: 1 },
|
|
5357
5418
|
summary: { type: "string", minLength: 1 },
|
|
5358
5419
|
description: { type: "string" },
|
|
5359
|
-
|
|
5420
|
+
issueTypeName: { type: "string", minLength: 1, description: "Issue type name (default: Task)" },
|
|
5360
5421
|
priority: { type: "string" },
|
|
5361
|
-
|
|
5422
|
+
assigneeAccountId: { type: "string" },
|
|
5423
|
+
labels: { type: "array", items: { type: "string" } }
|
|
5362
5424
|
},
|
|
5363
|
-
required: ["projectKey", "summary"
|
|
5425
|
+
required: ["projectKey", "summary"],
|
|
5364
5426
|
additionalProperties: false
|
|
5365
5427
|
},
|
|
5366
5428
|
constraints: { rate_bucket: "jira.write" },
|
|
@@ -5373,7 +5435,7 @@ var ACTION_REGISTRY = {
|
|
|
5373
5435
|
},
|
|
5374
5436
|
{
|
|
5375
5437
|
action: "jira.issue.update",
|
|
5376
|
-
resource_type: "jira:
|
|
5438
|
+
resource_type: "jira:project",
|
|
5377
5439
|
required_relations: ["editor", "act_as"],
|
|
5378
5440
|
required_scopes: ["write:jira-work"],
|
|
5379
5441
|
capability: "jira.write.basic",
|
|
@@ -5383,9 +5445,9 @@ var ACTION_REGISTRY = {
|
|
|
5383
5445
|
issueIdOrKey: { type: "string", minLength: 1 },
|
|
5384
5446
|
summary: { type: "string" },
|
|
5385
5447
|
description: { type: "string" },
|
|
5386
|
-
status: { type: "string" },
|
|
5387
5448
|
priority: { type: "string" },
|
|
5388
|
-
|
|
5449
|
+
assigneeAccountId: { type: "string" },
|
|
5450
|
+
labels: { type: "array", items: { type: "string" } }
|
|
5389
5451
|
},
|
|
5390
5452
|
required: ["issueIdOrKey"],
|
|
5391
5453
|
additionalProperties: false
|
|
@@ -5394,13 +5456,13 @@ var ACTION_REGISTRY = {
|
|
|
5394
5456
|
effects: ["Update:Issue"],
|
|
5395
5457
|
risk: "high",
|
|
5396
5458
|
target_bindings: {
|
|
5397
|
-
resource_id: { source: "param", param: "issueIdOrKey" }
|
|
5459
|
+
resource_id: { source: "param", param: "issueIdOrKey", fallback_param: "issueKey", derive: "project_key" }
|
|
5398
5460
|
},
|
|
5399
5461
|
version: "1.0.0"
|
|
5400
5462
|
},
|
|
5401
5463
|
{
|
|
5402
5464
|
action: "jira.issue.delete",
|
|
5403
|
-
resource_type: "jira:
|
|
5465
|
+
resource_type: "jira:project",
|
|
5404
5466
|
required_relations: ["admin", "owner", "act_as"],
|
|
5405
5467
|
required_scopes: ["write:jira-work"],
|
|
5406
5468
|
capability: "jira.write.basic",
|
|
@@ -5416,7 +5478,98 @@ var ACTION_REGISTRY = {
|
|
|
5416
5478
|
effects: ["Delete:Issue"],
|
|
5417
5479
|
risk: "high",
|
|
5418
5480
|
target_bindings: {
|
|
5419
|
-
resource_id: { source: "param", param: "issueIdOrKey" }
|
|
5481
|
+
resource_id: { source: "param", param: "issueIdOrKey", fallback_param: "issueKey", derive: "project_key" }
|
|
5482
|
+
},
|
|
5483
|
+
version: "1.0.0"
|
|
5484
|
+
},
|
|
5485
|
+
{
|
|
5486
|
+
action: "jira.comment.create",
|
|
5487
|
+
resource_type: "jira:project",
|
|
5488
|
+
required_relations: ["editor", "act_as"],
|
|
5489
|
+
required_scopes: ["write:jira-work"],
|
|
5490
|
+
capability: "jira.write.basic",
|
|
5491
|
+
input_schema: {
|
|
5492
|
+
type: "object",
|
|
5493
|
+
properties: {
|
|
5494
|
+
issueIdOrKey: { type: "string", minLength: 1 },
|
|
5495
|
+
body: { type: "string", minLength: 1 }
|
|
5496
|
+
},
|
|
5497
|
+
required: ["issueIdOrKey", "body"],
|
|
5498
|
+
additionalProperties: false
|
|
5499
|
+
},
|
|
5500
|
+
constraints: { rate_bucket: "jira.write" },
|
|
5501
|
+
effects: ["Create:Comment"],
|
|
5502
|
+
// high: comments are publicly visible to all project members, consistent with jira.issue.update
|
|
5503
|
+
risk: "high",
|
|
5504
|
+
target_bindings: {
|
|
5505
|
+
resource_id: { source: "param", param: "issueIdOrKey", fallback_param: "issueKey", derive: "project_key" }
|
|
5506
|
+
},
|
|
5507
|
+
version: "1.0.0"
|
|
5508
|
+
},
|
|
5509
|
+
{
|
|
5510
|
+
action: "jira.comment.read",
|
|
5511
|
+
resource_type: "jira:project",
|
|
5512
|
+
required_relations: ["viewer", "editor", "act_as"],
|
|
5513
|
+
required_scopes: ["read:jira-work"],
|
|
5514
|
+
capability: "jira.read.basic",
|
|
5515
|
+
input_schema: {
|
|
5516
|
+
type: "object",
|
|
5517
|
+
properties: {
|
|
5518
|
+
issueIdOrKey: { type: "string", minLength: 1 }
|
|
5519
|
+
},
|
|
5520
|
+
required: ["issueIdOrKey"],
|
|
5521
|
+
additionalProperties: false
|
|
5522
|
+
},
|
|
5523
|
+
constraints: { rate_bucket: "jira.read" },
|
|
5524
|
+
effects: ["Read:Comment"],
|
|
5525
|
+
risk: "low",
|
|
5526
|
+
target_bindings: {
|
|
5527
|
+
resource_id: { source: "param", param: "issueIdOrKey", fallback_param: "issueKey", derive: "project_key" }
|
|
5528
|
+
},
|
|
5529
|
+
version: "1.0.0"
|
|
5530
|
+
},
|
|
5531
|
+
{
|
|
5532
|
+
action: "jira.issue.transition",
|
|
5533
|
+
resource_type: "jira:project",
|
|
5534
|
+
required_relations: ["editor", "act_as"],
|
|
5535
|
+
required_scopes: ["write:jira-work"],
|
|
5536
|
+
capability: "jira.write.basic",
|
|
5537
|
+
input_schema: {
|
|
5538
|
+
type: "object",
|
|
5539
|
+
properties: {
|
|
5540
|
+
issueIdOrKey: { type: "string", minLength: 1 },
|
|
5541
|
+
transitionId: { type: "string", minLength: 1 }
|
|
5542
|
+
},
|
|
5543
|
+
required: ["issueIdOrKey", "transitionId"],
|
|
5544
|
+
additionalProperties: false
|
|
5545
|
+
},
|
|
5546
|
+
constraints: { rate_bucket: "jira.write" },
|
|
5547
|
+
effects: ["Update:IssueStatus"],
|
|
5548
|
+
risk: "high",
|
|
5549
|
+
target_bindings: {
|
|
5550
|
+
resource_id: { source: "param", param: "issueIdOrKey", fallback_param: "issueKey", derive: "project_key" }
|
|
5551
|
+
},
|
|
5552
|
+
version: "1.0.0"
|
|
5553
|
+
},
|
|
5554
|
+
{
|
|
5555
|
+
action: "jira.transition.list",
|
|
5556
|
+
resource_type: "jira:project",
|
|
5557
|
+
required_relations: ["viewer", "editor", "act_as"],
|
|
5558
|
+
required_scopes: ["read:jira-work"],
|
|
5559
|
+
capability: "jira.read.basic",
|
|
5560
|
+
input_schema: {
|
|
5561
|
+
type: "object",
|
|
5562
|
+
properties: {
|
|
5563
|
+
issueIdOrKey: { type: "string", minLength: 1 }
|
|
5564
|
+
},
|
|
5565
|
+
required: ["issueIdOrKey"],
|
|
5566
|
+
additionalProperties: false
|
|
5567
|
+
},
|
|
5568
|
+
constraints: { rate_bucket: "jira.read" },
|
|
5569
|
+
effects: ["Read:Transition"],
|
|
5570
|
+
risk: "low",
|
|
5571
|
+
target_bindings: {
|
|
5572
|
+
resource_id: { source: "param", param: "issueIdOrKey", fallback_param: "issueKey", derive: "project_key" }
|
|
5420
5573
|
},
|
|
5421
5574
|
version: "1.0.0"
|
|
5422
5575
|
},
|
|
@@ -5533,7 +5686,7 @@ var ACTION_REGISTRY = {
|
|
|
5533
5686
|
{
|
|
5534
5687
|
capability: "slack.read.basic",
|
|
5535
5688
|
description: "Read channels, messages, and user info",
|
|
5536
|
-
includes: ["slack.channel.read", "slack.user.read", "slack.message.read", "slack.batch.read"],
|
|
5689
|
+
includes: ["slack.channel.read", "slack.user.read", "slack.message.read", "slack.message.read_paginated", "slack.batch.read"],
|
|
5537
5690
|
version: "1.0.0"
|
|
5538
5691
|
},
|
|
5539
5692
|
{
|
|
@@ -5581,13 +5734,13 @@ var ACTION_REGISTRY = {
|
|
|
5581
5734
|
{
|
|
5582
5735
|
capability: "jira.read.basic",
|
|
5583
5736
|
description: "Read Jira issues, projects, boards, and sprints",
|
|
5584
|
-
includes: ["jira.project.read", "jira.board.read", "jira.sprint.read", "jira.issue.list", "jira.issue.search", "jira.worklog.read", "jira.issue.read", "jira.batch.read"],
|
|
5737
|
+
includes: ["jira.project.read", "jira.board.read", "jira.sprint.read", "jira.issue.list", "jira.issue.search", "jira.worklog.read", "jira.issue.read", "jira.batch.read", "jira.comment.read", "jira.transition.list"],
|
|
5585
5738
|
version: "1.0.0"
|
|
5586
5739
|
},
|
|
5587
5740
|
{
|
|
5588
5741
|
capability: "jira.write.basic",
|
|
5589
5742
|
description: "Create, update, and delete Jira issues",
|
|
5590
|
-
includes: ["jira.issue.create", "jira.issue.update", "jira.issue.delete"],
|
|
5743
|
+
includes: ["jira.issue.create", "jira.issue.update", "jira.issue.delete", "jira.comment.create", "jira.issue.transition"],
|
|
5591
5744
|
version: "1.0.0"
|
|
5592
5745
|
}
|
|
5593
5746
|
]
|
|
@@ -5796,7 +5949,7 @@ var ACTION_DISPLAY_CONFIGS = {
|
|
|
5796
5949
|
summaryTemplate: (p) => {
|
|
5797
5950
|
const parts = [];
|
|
5798
5951
|
if (p.summary) parts.push(p.summary);
|
|
5799
|
-
if (p.start) parts.push(`(${p.start})`);
|
|
5952
|
+
if (p.start) parts.push(`(${formatValue(p.start)})`);
|
|
5800
5953
|
return parts.join(" ");
|
|
5801
5954
|
},
|
|
5802
5955
|
displayFields: [
|
|
@@ -5810,7 +5963,7 @@ var ACTION_DISPLAY_CONFIGS = {
|
|
|
5810
5963
|
summaryTemplate: (p) => {
|
|
5811
5964
|
const parts = [];
|
|
5812
5965
|
if (p.summary) parts.push(p.summary);
|
|
5813
|
-
if (p.start) parts.push(`(${p.start})`);
|
|
5966
|
+
if (p.start) parts.push(`(${formatValue(p.start)})`);
|
|
5814
5967
|
return parts.join(" ");
|
|
5815
5968
|
},
|
|
5816
5969
|
displayFields: [
|
|
@@ -5854,8 +6007,24 @@ function truncate(text, maxLength) {
|
|
|
5854
6007
|
}
|
|
5855
6008
|
function formatValue(value) {
|
|
5856
6009
|
if (value === null || value === void 0) return "";
|
|
5857
|
-
if (Array.isArray(value))
|
|
5858
|
-
|
|
6010
|
+
if (Array.isArray(value)) {
|
|
6011
|
+
return value.map((item) => {
|
|
6012
|
+
if (item && typeof item === "object") {
|
|
6013
|
+
const email = item.email;
|
|
6014
|
+
if (email) return String(email);
|
|
6015
|
+
return JSON.stringify(item);
|
|
6016
|
+
}
|
|
6017
|
+
return String(item);
|
|
6018
|
+
}).join(", ");
|
|
6019
|
+
}
|
|
6020
|
+
if (typeof value === "object") {
|
|
6021
|
+
const obj = value;
|
|
6022
|
+
if (obj.dateTime) {
|
|
6023
|
+
return obj.timeZone ? `${obj.dateTime} (${obj.timeZone})` : String(obj.dateTime);
|
|
6024
|
+
}
|
|
6025
|
+
if (obj.date) return String(obj.date);
|
|
6026
|
+
return JSON.stringify(value);
|
|
6027
|
+
}
|
|
5859
6028
|
return String(value);
|
|
5860
6029
|
}
|
|
5861
6030
|
var ACTION_PARAMS_MAX_SIZE = 1e4;
|
|
@@ -5889,6 +6058,11 @@ function generateActionParamsDisplay(action, params) {
|
|
|
5889
6058
|
}
|
|
5890
6059
|
|
|
5891
6060
|
// src/resolver/target-resolver.ts
|
|
6061
|
+
var PROJECT_KEY_PATTERN = /^([A-Z][A-Z0-9_]+)-\d+$/;
|
|
6062
|
+
function extractProjectKey(value) {
|
|
6063
|
+
const match = value.match(PROJECT_KEY_PATTERN);
|
|
6064
|
+
return match ? match[1] : null;
|
|
6065
|
+
}
|
|
5892
6066
|
var TargetResolver = class {
|
|
5893
6067
|
/**
|
|
5894
6068
|
* Resolve target bindings against tool invocation parameters.
|
|
@@ -5916,20 +6090,27 @@ var TargetResolver = class {
|
|
|
5916
6090
|
}
|
|
5917
6091
|
const paramBinding = binding;
|
|
5918
6092
|
let rawValue = params[paramBinding.param];
|
|
6093
|
+
if (rawValue == null && paramBinding.fallback_param) {
|
|
6094
|
+
rawValue = params[paramBinding.fallback_param];
|
|
6095
|
+
}
|
|
5919
6096
|
if (rawValue == null && paramBinding.default != null) {
|
|
5920
6097
|
rawValue = paramBinding.default;
|
|
5921
6098
|
}
|
|
5922
6099
|
if (rawValue == null) return { value: null };
|
|
5923
6100
|
if (typeof rawValue !== "string") return { value: null };
|
|
6101
|
+
let strValue = rawValue;
|
|
6102
|
+
if (paramBinding.derive === "project_key") {
|
|
6103
|
+
strValue = extractProjectKey(strValue) ?? strValue;
|
|
6104
|
+
}
|
|
5924
6105
|
if (paramBinding.multi) {
|
|
5925
6106
|
const separator = paramBinding.separator ?? ",";
|
|
5926
|
-
const values =
|
|
6107
|
+
const values = strValue.split(separator).map((v) => v.trim()).filter((v) => v.length > 0);
|
|
5927
6108
|
return {
|
|
5928
6109
|
value: values[0] ?? null,
|
|
5929
6110
|
values
|
|
5930
6111
|
};
|
|
5931
6112
|
}
|
|
5932
|
-
return { value:
|
|
6113
|
+
return { value: strValue };
|
|
5933
6114
|
}
|
|
5934
6115
|
resolveSecondary(secondary, params, context) {
|
|
5935
6116
|
if (!secondary || secondary.length === 0) return [];
|
|
@@ -6048,6 +6229,7 @@ var version = "0.0.1";
|
|
|
6048
6229
|
credentialStatusToVCStatus,
|
|
6049
6230
|
defaultConstraintEvaluator,
|
|
6050
6231
|
evaluateConstraints,
|
|
6232
|
+
extractProjectKey,
|
|
6051
6233
|
extractPublicKey,
|
|
6052
6234
|
extractPublicKeyFromDid,
|
|
6053
6235
|
generateActionParamsDisplay,
|