@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.mjs
CHANGED
|
@@ -6353,6 +6353,33 @@ var ACTION_REGISTRY = {
|
|
|
6353
6353
|
},
|
|
6354
6354
|
version: "1.0.0"
|
|
6355
6355
|
},
|
|
6356
|
+
{
|
|
6357
|
+
action: "calendar.freebusy",
|
|
6358
|
+
resource_type: "calendar:calendar",
|
|
6359
|
+
required_relations: ["viewer", "editor", "admin", "owner"],
|
|
6360
|
+
required_scopes: ["https://www.googleapis.com/auth/calendar.readonly"],
|
|
6361
|
+
capability: "calendar.read.basic",
|
|
6362
|
+
// Availability probe used to check a calendar's busy/free intervals before
|
|
6363
|
+
// proposing meeting slots. Returns only busy time ranges — never event
|
|
6364
|
+
// details (title, attendees, description) — so it stays low-risk read.
|
|
6365
|
+
input_schema: {
|
|
6366
|
+
type: "object",
|
|
6367
|
+
properties: {
|
|
6368
|
+
calendarId: { type: "string", description: "Calendar ID (email address). Defaults to primary calendar." },
|
|
6369
|
+
timeMin: { type: "string", description: 'Lower bound (inclusive) of the window to check, as ISO 8601 datetime, e.g. "2025-01-15T00:00:00Z"' },
|
|
6370
|
+
timeMax: { type: "string", description: 'Upper bound (exclusive) of the window to check, as ISO 8601 datetime, e.g. "2025-01-16T00:00:00Z"' }
|
|
6371
|
+
},
|
|
6372
|
+
required: ["timeMin", "timeMax"],
|
|
6373
|
+
additionalProperties: false
|
|
6374
|
+
},
|
|
6375
|
+
constraints: { rate_bucket: "calendar.read" },
|
|
6376
|
+
effects: ["Read:FreeBusy"],
|
|
6377
|
+
risk: "low",
|
|
6378
|
+
target_bindings: {
|
|
6379
|
+
resource_id: { source: "param", param: "calendarId", required: false, default: "primary" }
|
|
6380
|
+
},
|
|
6381
|
+
version: "1.0.0"
|
|
6382
|
+
},
|
|
6356
6383
|
{
|
|
6357
6384
|
action: "calendar.event.create",
|
|
6358
6385
|
resource_type: "calendar:event",
|
|
@@ -7674,9 +7701,21 @@ var ACTION_REGISTRY = {
|
|
|
7674
7701
|
},
|
|
7675
7702
|
// ─── Scheduling Actions (internal) ───
|
|
7676
7703
|
// scheduling.request is a meeting-time negotiation façade over inbox.send.
|
|
7677
|
-
// Candidate slots
|
|
7678
|
-
//
|
|
7679
|
-
//
|
|
7704
|
+
// Candidate slots may be supplied two ways (server-side EXCLUSIVE — exactly
|
|
7705
|
+
// one): (a) `candidates` — the agent computes them LLM-side from the user
|
|
7706
|
+
// calendar and the server validates + freebusy-filters them, or (b)
|
|
7707
|
+
// `candidateWindow` — the agent hands the server a { start, end } window and
|
|
7708
|
+
// the server generates busy-free candidates from the sender's Google
|
|
7709
|
+
// Calendar. Like the inbox actions it is internal (no external OAuth
|
|
7710
|
+
// provider), so it carries the single nominal base scope `inbox`.
|
|
7711
|
+
//
|
|
7712
|
+
// NOTE: the candidates/candidateWindow exclusivity is expressed here as
|
|
7713
|
+
// `oneOf` for documentation + the deep JSON-Schema authorities, but the SDK's
|
|
7714
|
+
// hand-written `validateActionInput` is a SHALLOW shape gate that does NOT
|
|
7715
|
+
// interpret `oneOf` (neither key is in top-level `required`). The exclusivity
|
|
7716
|
+
// (exactly one of candidates/candidateWindow) is ENFORCED server-side in
|
|
7717
|
+
// SchedulingRequestService — see that service for the 400s on both-given /
|
|
7718
|
+
// both-missing.
|
|
7680
7719
|
// Spec: docs/specs/2026-06-10-inbox-intent-routing-design.md §2.1
|
|
7681
7720
|
{
|
|
7682
7721
|
action: "scheduling.request",
|
|
@@ -7694,7 +7733,7 @@ var ACTION_REGISTRY = {
|
|
|
7694
7733
|
type: "array",
|
|
7695
7734
|
minItems: 1,
|
|
7696
7735
|
maxItems: 10,
|
|
7697
|
-
description: "
|
|
7736
|
+
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.",
|
|
7698
7737
|
items: {
|
|
7699
7738
|
type: "object",
|
|
7700
7739
|
properties: {
|
|
@@ -7705,9 +7744,33 @@ var ACTION_REGISTRY = {
|
|
|
7705
7744
|
additionalProperties: false
|
|
7706
7745
|
}
|
|
7707
7746
|
},
|
|
7747
|
+
candidateWindow: {
|
|
7748
|
+
type: "object",
|
|
7749
|
+
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.",
|
|
7750
|
+
properties: {
|
|
7751
|
+
start: { type: "string", description: "ISO 8601 window start" },
|
|
7752
|
+
end: { type: "string", description: "ISO 8601 window end" }
|
|
7753
|
+
},
|
|
7754
|
+
required: ["start", "end"],
|
|
7755
|
+
additionalProperties: false
|
|
7756
|
+
},
|
|
7757
|
+
hold: {
|
|
7758
|
+
type: "boolean",
|
|
7759
|
+
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."
|
|
7760
|
+
},
|
|
7708
7761
|
message: { type: "string", description: "Optional human-readable message" }
|
|
7709
7762
|
},
|
|
7710
|
-
|
|
7763
|
+
// candidates / candidateWindow are intentionally NOT in `required`: the
|
|
7764
|
+
// exclusive-choice is documented via `oneOf` and enforced server-side.
|
|
7765
|
+
// Each oneOf branch re-declares its property locally (empty `properties`
|
|
7766
|
+
// entry) so AJV strict mode (`strictRequired`) sees the required key as
|
|
7767
|
+
// defined within the branch scope — the value shape itself is validated
|
|
7768
|
+
// by the top-level `properties` above.
|
|
7769
|
+
required: ["to", "topic", "durationMinutes"],
|
|
7770
|
+
oneOf: [
|
|
7771
|
+
{ required: ["candidates"], properties: { candidates: {} } },
|
|
7772
|
+
{ required: ["candidateWindow"], properties: { candidateWindow: {} } }
|
|
7773
|
+
],
|
|
7711
7774
|
additionalProperties: false
|
|
7712
7775
|
},
|
|
7713
7776
|
constraints: { rate_bucket: "inbox.write" },
|
|
@@ -7788,8 +7851,8 @@ var ACTION_REGISTRY = {
|
|
|
7788
7851
|
},
|
|
7789
7852
|
{
|
|
7790
7853
|
capability: "calendar.read.basic",
|
|
7791
|
-
description: "Read and list Google Calendar events",
|
|
7792
|
-
includes: ["calendar.event.list", "calendar.event.read"],
|
|
7854
|
+
description: "Read and list Google Calendar events, and check free/busy availability",
|
|
7855
|
+
includes: ["calendar.event.list", "calendar.event.read", "calendar.freebusy"],
|
|
7793
7856
|
version: "1.0.0"
|
|
7794
7857
|
},
|
|
7795
7858
|
{
|