@vess-id/ai-identity 0.16.0 → 0.17.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 +676 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +70 -7
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +70 -7
- package/dist/index.mjs.map +1 -1
- package/dist/registry/__tests__/action-registry-freebusy.spec.d.ts +13 -0
- package/dist/registry/__tests__/action-registry-freebusy.spec.d.ts.map +1 -0
- package/dist/registry/__tests__/high-risk-resource-binding-invariant.spec.d.ts +30 -0
- package/dist/registry/__tests__/high-risk-resource-binding-invariant.spec.d.ts.map +1 -0
- package/dist/registry/action-registry-json.d.ts +555 -0
- package/dist/registry/action-registry-json.d.ts.map +1 -1
- package/dist/registry/action-risk.d.ts +17 -1
- package/dist/registry/action-risk.d.ts.map +1 -1
- package/dist/types/permission-vc.d.ts +103 -0
- package/dist/types/permission-vc.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -32,7 +32,7 @@ export { canonicalResourceId } from './resolver/canonical-resource-id';
|
|
|
32
32
|
export { looksLikeNativeId, compareResourceIds, } from './resolver/compare-resource-id';
|
|
33
33
|
export type { ResourceMatch } from './resolver/compare-resource-id';
|
|
34
34
|
export * from './types';
|
|
35
|
-
export type { PolicyRef, PolicyRefInline, PolicyRefReference, PermissionVcClaims_V2, PermissionVcClaims_V3, Phase1VcLayer, VcApprovalClaim, } from './types/permission-vc';
|
|
35
|
+
export type { PolicyRef, PolicyRefInline, PolicyRefReference, PermissionVcClaims_V2, PermissionVcClaims_V3, Phase1VcLayer, VcApprovalClaim, VcSchedulingDelegationClaim, } from './types/permission-vc';
|
|
36
36
|
export { isPolicyRefInline, isPolicyRefReference, PHASE_1_VC_LAYER, buildPhase1VcClaims, } from './types/permission-vc';
|
|
37
37
|
export type { CedarSchema, CedarPolicySetHandle, CedarSchemaHandle, CedarDecisionValue, CedarDecisionDiagnostic, } from './types/cedar-policy';
|
|
38
38
|
export { isWriteAction, WRITE_ACTION_NAMES } from './utils/action-classifier';
|
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,EACL,iBAAiB,EACjB,+BAA+B,EAC/B,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEjE,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;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,gCAAgC,CAAA;AACvC,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAGnE,cAAc,SAAS,CAAA;AAKvB,YAAY,EACV,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6531,6 +6531,33 @@ var ACTION_REGISTRY = {
|
|
|
6531
6531
|
},
|
|
6532
6532
|
version: "1.0.0"
|
|
6533
6533
|
},
|
|
6534
|
+
{
|
|
6535
|
+
action: "calendar.freebusy",
|
|
6536
|
+
resource_type: "calendar:calendar",
|
|
6537
|
+
required_relations: ["viewer", "editor", "admin", "owner"],
|
|
6538
|
+
required_scopes: ["https://www.googleapis.com/auth/calendar.readonly"],
|
|
6539
|
+
capability: "calendar.read.basic",
|
|
6540
|
+
// Availability probe used to check a calendar's busy/free intervals before
|
|
6541
|
+
// proposing meeting slots. Returns only busy time ranges — never event
|
|
6542
|
+
// details (title, attendees, description) — so it stays low-risk read.
|
|
6543
|
+
input_schema: {
|
|
6544
|
+
type: "object",
|
|
6545
|
+
properties: {
|
|
6546
|
+
calendarId: { type: "string", description: "Calendar ID (email address). Defaults to primary calendar." },
|
|
6547
|
+
timeMin: { type: "string", description: 'Lower bound (inclusive) of the window to check, as ISO 8601 datetime, e.g. "2025-01-15T00:00:00Z"' },
|
|
6548
|
+
timeMax: { type: "string", description: 'Upper bound (exclusive) of the window to check, as ISO 8601 datetime, e.g. "2025-01-16T00:00:00Z"' }
|
|
6549
|
+
},
|
|
6550
|
+
required: ["timeMin", "timeMax"],
|
|
6551
|
+
additionalProperties: false
|
|
6552
|
+
},
|
|
6553
|
+
constraints: { rate_bucket: "calendar.read" },
|
|
6554
|
+
effects: ["Read:FreeBusy"],
|
|
6555
|
+
risk: "low",
|
|
6556
|
+
target_bindings: {
|
|
6557
|
+
resource_id: { source: "param", param: "calendarId", required: false, default: "primary" }
|
|
6558
|
+
},
|
|
6559
|
+
version: "1.0.0"
|
|
6560
|
+
},
|
|
6534
6561
|
{
|
|
6535
6562
|
action: "calendar.event.create",
|
|
6536
6563
|
resource_type: "calendar:event",
|
|
@@ -7852,9 +7879,21 @@ var ACTION_REGISTRY = {
|
|
|
7852
7879
|
},
|
|
7853
7880
|
// ─── Scheduling Actions (internal) ───
|
|
7854
7881
|
// scheduling.request is a meeting-time negotiation façade over inbox.send.
|
|
7855
|
-
// Candidate slots
|
|
7856
|
-
//
|
|
7857
|
-
//
|
|
7882
|
+
// Candidate slots may be supplied two ways (server-side EXCLUSIVE — exactly
|
|
7883
|
+
// one): (a) `candidates` — the agent computes them LLM-side from the user
|
|
7884
|
+
// calendar and the server validates + freebusy-filters them, or (b)
|
|
7885
|
+
// `candidateWindow` — the agent hands the server a { start, end } window and
|
|
7886
|
+
// the server generates busy-free candidates from the sender's Google
|
|
7887
|
+
// Calendar. Like the inbox actions it is internal (no external OAuth
|
|
7888
|
+
// provider), so it carries the single nominal base scope `inbox`.
|
|
7889
|
+
//
|
|
7890
|
+
// NOTE: the candidates/candidateWindow exclusivity is expressed here as
|
|
7891
|
+
// `oneOf` for documentation + the deep JSON-Schema authorities, but the SDK's
|
|
7892
|
+
// hand-written `validateActionInput` is a SHALLOW shape gate that does NOT
|
|
7893
|
+
// interpret `oneOf` (neither key is in top-level `required`). The exclusivity
|
|
7894
|
+
// (exactly one of candidates/candidateWindow) is ENFORCED server-side in
|
|
7895
|
+
// SchedulingRequestService — see that service for the 400s on both-given /
|
|
7896
|
+
// both-missing.
|
|
7858
7897
|
// Spec: docs/specs/2026-06-10-inbox-intent-routing-design.md §2.1
|
|
7859
7898
|
{
|
|
7860
7899
|
action: "scheduling.request",
|
|
@@ -7872,7 +7911,7 @@ var ACTION_REGISTRY = {
|
|
|
7872
7911
|
type: "array",
|
|
7873
7912
|
minItems: 1,
|
|
7874
7913
|
maxItems: 10,
|
|
7875
|
-
description: "
|
|
7914
|
+
description: "Explicit candidate slots computed by the agent from the user calendar. The server validates them AND (when Google Calendar is connected) filters out any that conflict with the sender's calendar. Mutually exclusive with candidateWindow \u2014 supply exactly one.",
|
|
7876
7915
|
items: {
|
|
7877
7916
|
type: "object",
|
|
7878
7917
|
properties: {
|
|
@@ -7883,9 +7922,33 @@ var ACTION_REGISTRY = {
|
|
|
7883
7922
|
additionalProperties: false
|
|
7884
7923
|
}
|
|
7885
7924
|
},
|
|
7925
|
+
candidateWindow: {
|
|
7926
|
+
type: "object",
|
|
7927
|
+
description: "A { start, end } search window (ISO 8601, span \u2264 62 days). The server generates busy-free candidate slots from the sender's Google Calendar within it. Mutually exclusive with candidates \u2014 supply exactly one. Requires a connected Google Calendar.",
|
|
7928
|
+
properties: {
|
|
7929
|
+
start: { type: "string", description: "ISO 8601 window start" },
|
|
7930
|
+
end: { type: "string", description: "ISO 8601 window end" }
|
|
7931
|
+
},
|
|
7932
|
+
required: ["start", "end"],
|
|
7933
|
+
additionalProperties: false
|
|
7934
|
+
},
|
|
7935
|
+
hold: {
|
|
7936
|
+
type: "boolean",
|
|
7937
|
+
description: "When true (or omitted, when the sender's delegation policy has holds enabled), tentatively hold the offered slots on the sender's calendar as [\u4EEE] events until the counterpart responds or the request expires. Pass false to skip holds for this request. Only takes effect when the sender has an enabled scheduling delegation policy."
|
|
7938
|
+
},
|
|
7886
7939
|
message: { type: "string", description: "Optional human-readable message" }
|
|
7887
7940
|
},
|
|
7888
|
-
|
|
7941
|
+
// candidates / candidateWindow are intentionally NOT in `required`: the
|
|
7942
|
+
// exclusive-choice is documented via `oneOf` and enforced server-side.
|
|
7943
|
+
// Each oneOf branch re-declares its property locally (empty `properties`
|
|
7944
|
+
// entry) so AJV strict mode (`strictRequired`) sees the required key as
|
|
7945
|
+
// defined within the branch scope — the value shape itself is validated
|
|
7946
|
+
// by the top-level `properties` above.
|
|
7947
|
+
required: ["to", "topic", "durationMinutes"],
|
|
7948
|
+
oneOf: [
|
|
7949
|
+
{ required: ["candidates"], properties: { candidates: {} } },
|
|
7950
|
+
{ required: ["candidateWindow"], properties: { candidateWindow: {} } }
|
|
7951
|
+
],
|
|
7889
7952
|
additionalProperties: false
|
|
7890
7953
|
},
|
|
7891
7954
|
constraints: { rate_bucket: "inbox.write" },
|
|
@@ -7966,8 +8029,8 @@ var ACTION_REGISTRY = {
|
|
|
7966
8029
|
},
|
|
7967
8030
|
{
|
|
7968
8031
|
capability: "calendar.read.basic",
|
|
7969
|
-
description: "Read and list Google Calendar events",
|
|
7970
|
-
includes: ["calendar.event.list", "calendar.event.read"],
|
|
8032
|
+
description: "Read and list Google Calendar events, and check free/busy availability",
|
|
8033
|
+
includes: ["calendar.event.list", "calendar.event.read", "calendar.freebusy"],
|
|
7971
8034
|
version: "1.0.0"
|
|
7972
8035
|
},
|
|
7973
8036
|
{
|