@rosthq/cli 0.7.70 → 0.7.71

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.js CHANGED
@@ -38201,6 +38201,21 @@ function hasSecretShapedValue(value) {
38201
38201
  // ../../packages/protocol/src/tool-catalog.ts
38202
38202
  var toolScopeTierSchema = external_exports.enum(["read", "draft", "write_with_approval", "full"]);
38203
38203
  var toolAccessPolicySchema = external_exports.enum(["always_allow", "always_ask"]);
38204
+ var toolAccessLevelSchema = external_exports.enum(["read", "draft", "write", "admin"]);
38205
+ var toolProviderRequirementSchema = external_exports.enum(["none", "connection", "vault_ref", "platform_managed"]);
38206
+ var toolCostClassSchema = external_exports.enum(["included", "metered_low", "metered_standard", "metered_high"]);
38207
+ var toolExecutionLaneSchema = external_exports.enum(["cloud", "runner", "mcp"]);
38208
+ var trustedRequiredMetadataSchema = external_exports.enum([
38209
+ "standing_authorization_id",
38210
+ "decided_by_user_id",
38211
+ "charter_scope",
38212
+ "budget_cap",
38213
+ "lane",
38214
+ "capability_id",
38215
+ "access_level",
38216
+ "authorization_expires_at",
38217
+ "authorization_revoked_at"
38218
+ ]);
38204
38219
  var toolCatalogEntrySchema = external_exports.object({
38205
38220
  // Stable tool id used in permission manifests and execution.
38206
38221
  id: external_exports.string().min(1),
@@ -38217,7 +38232,18 @@ var toolCatalogEntrySchema = external_exports.object({
38217
38232
  // Whether using this tool requires attaching a credential (vault ref) first.
38218
38233
  credential_required: external_exports.boolean(),
38219
38234
  // The conservative default access policy for this tool in a new manifest.
38220
- default_access_policy: toolAccessPolicySchema
38235
+ default_access_policy: toolAccessPolicySchema,
38236
+ // Provider-neutral capability grant access levels supported by this tool.
38237
+ access_levels: external_exports.array(toolAccessLevelSchema).min(1),
38238
+ default_access_level: toolAccessLevelSchema,
38239
+ // What must exist before the provider can execute this capability.
38240
+ provider_requirement: toolProviderRequirementSchema,
38241
+ // Coarse cost class for setup and Trusted-mode launch review.
38242
+ cost_class: toolCostClassSchema,
38243
+ // Execution lanes whose server guard path can carry this capability.
38244
+ lane_support: external_exports.array(toolExecutionLaneSchema).min(1),
38245
+ // Metadata that must be present when this capability is used under Trusted mode.
38246
+ trusted_required_metadata: external_exports.array(trustedRequiredMetadataSchema)
38221
38247
  }).strict();
38222
38248
  var toolCatalogOutputSchema = external_exports.object({
38223
38249
  // The explicit, important note that the catalog is configuration the builder
@@ -38393,6 +38419,36 @@ var CATALOG_ENTRIES = [
38393
38419
  credential_required: false,
38394
38420
  default_access_policy: "always_allow"
38395
38421
  },
38422
+ {
38423
+ id: "browser.read",
38424
+ title: "Read public page in browser",
38425
+ provider: "web",
38426
+ description: "Call this to inspect a public page in a read-only sandbox browser. It never submits forms, persists authenticated state, downloads executables, or reaches private networks.",
38427
+ default_scope_tier: "read",
38428
+ scope_tiers: ["read"],
38429
+ credential_required: false,
38430
+ default_access_policy: "always_allow"
38431
+ },
38432
+ {
38433
+ id: "files.read",
38434
+ title: "Read working files",
38435
+ provider: "rost",
38436
+ description: "Call this to read bounded tenant-scoped working files and published artifact references. Read-only: it never exposes files outside the approved workspace.",
38437
+ default_scope_tier: "read",
38438
+ scope_tiers: ["read"],
38439
+ credential_required: false,
38440
+ default_access_policy: "always_allow"
38441
+ },
38442
+ {
38443
+ id: "files.write",
38444
+ title: "Write working files",
38445
+ provider: "rost",
38446
+ description: "Call this to create bounded working files or publish reviewable artifacts inside the tenant workspace. It never executes file contents or writes outside the approved workspace.",
38447
+ default_scope_tier: "draft",
38448
+ scope_tiers: ["draft"],
38449
+ credential_required: false,
38450
+ default_access_policy: "always_allow"
38451
+ },
38396
38452
  {
38397
38453
  id: "docs.drafts.write",
38398
38454
  title: "Write document drafts",
@@ -38585,7 +38641,54 @@ var CATALOG_ENTRIES = [
38585
38641
  default_access_policy: "always_allow"
38586
38642
  }
38587
38643
  ];
38588
- var catalogById = new Map(CATALOG_ENTRIES.map((entry) => [entry.id, entry]));
38644
+ function accessLevelForScope(scopeTier) {
38645
+ switch (scopeTier) {
38646
+ case "read":
38647
+ return "read";
38648
+ case "draft":
38649
+ return "draft";
38650
+ case "write_with_approval":
38651
+ return "write";
38652
+ case "full":
38653
+ return "admin";
38654
+ }
38655
+ }
38656
+ function providerRequirementFor(entry) {
38657
+ if (!entry.credential_required) {
38658
+ return entry.provider === "rost" ? "platform_managed" : "none";
38659
+ }
38660
+ return entry.id === "secret.broker" ? "vault_ref" : "connection";
38661
+ }
38662
+ function trustedRequiredMetadataFor(entry) {
38663
+ if (entry.default_access_policy === "always_allow" && entry.default_scope_tier !== "write_with_approval") {
38664
+ return [];
38665
+ }
38666
+ return [
38667
+ "standing_authorization_id",
38668
+ "decided_by_user_id",
38669
+ "charter_scope",
38670
+ "budget_cap",
38671
+ "lane",
38672
+ "capability_id",
38673
+ "access_level",
38674
+ "authorization_expires_at",
38675
+ "authorization_revoked_at"
38676
+ ];
38677
+ }
38678
+ function enrichCatalogEntry(entry) {
38679
+ const accessLevels = [...new Set(entry.scope_tiers.map(accessLevelForScope))];
38680
+ return {
38681
+ ...entry,
38682
+ access_levels: accessLevels,
38683
+ default_access_level: accessLevelForScope(entry.default_scope_tier),
38684
+ provider_requirement: providerRequirementFor(entry),
38685
+ cost_class: entry.id === "script.run" || entry.id === "secret.broker" ? "metered_standard" : "included",
38686
+ lane_support: ["cloud", "runner", "mcp"],
38687
+ trusted_required_metadata: trustedRequiredMetadataFor(entry)
38688
+ };
38689
+ }
38690
+ var catalogEntries = CATALOG_ENTRIES.map(enrichCatalogEntry);
38691
+ var catalogById = new Map(catalogEntries.map((entry) => [entry.id, entry]));
38589
38692
 
38590
38693
  // ../../packages/protocol/src/skills.ts
38591
38694
  var skillVisibilitySchema = external_exports.enum(["private", "seat", "tenant"]);
@@ -39491,6 +39594,165 @@ var agentBuilderCompilationSchema = external_exports.object({
39491
39594
  }).strict()).default([]),
39492
39595
  pendingConfirmationCards: external_exports.array(agentBuilderPendingConfirmationCardSchema).default([])
39493
39596
  }).strict();
39597
+ var agentSetupSectionSchema = external_exports.enum([
39598
+ "overview",
39599
+ "charter",
39600
+ "outcomes_signals",
39601
+ "tools_connections",
39602
+ "skills",
39603
+ "autonomy",
39604
+ "activity",
39605
+ "settings"
39606
+ ]);
39607
+ var agentSetupMethodSchema = external_exports.enum(["manual", "template", "chat", "import"]);
39608
+ var agentBuilderFieldDiffSchema = external_exports.object({
39609
+ section: agentSetupSectionSchema,
39610
+ field: external_exports.string().trim().min(1).max(80),
39611
+ label: external_exports.string().trim().min(1).max(120),
39612
+ before: external_exports.unknown(),
39613
+ proposed: external_exports.unknown(),
39614
+ rationale: external_exports.string().trim().max(360)
39615
+ }).strict();
39616
+
39617
+ // ../../packages/protocol/src/tool-policy.ts
39618
+ var uuidSchema5 = external_exports.string().uuid();
39619
+ var capabilityGrantAccessLevelSchema = external_exports.enum(["off", "read", "draft", "write", "admin"]);
39620
+ var capabilityGrantAvailabilitySchema = external_exports.enum([
39621
+ "available",
39622
+ "connection_required",
39623
+ "scope_missing",
39624
+ "revoked",
39625
+ "disabled"
39626
+ ]);
39627
+ var capabilityGrantSourceSchema = external_exports.enum([
39628
+ "connection",
39629
+ "catalog",
39630
+ "manual",
39631
+ "aicos_automatic",
39632
+ "system",
39633
+ "suggested",
39634
+ "human",
39635
+ "aicos_override",
39636
+ "migration"
39637
+ ]);
39638
+ var capabilityGrantCompileStatusSchema = external_exports.enum([
39639
+ "compiled",
39640
+ "unavailable",
39641
+ "revoked",
39642
+ "off",
39643
+ "unsupported_lane"
39644
+ ]);
39645
+ var capabilityGrantConnectionSchema = external_exports.object({
39646
+ integration_id: uuidSchema5.nullable(),
39647
+ provider: external_exports.string().min(1).nullable(),
39648
+ account_email: external_exports.string().min(1).nullable(),
39649
+ account_label: external_exports.string().min(1).nullable(),
39650
+ status: external_exports.enum(["connected", "error", "disconnected"]).nullable()
39651
+ }).strict();
39652
+ var tenantCapabilityGrantDtoSchema = external_exports.object({
39653
+ tool_grant_id: uuidSchema5,
39654
+ capability_id: external_exports.string().min(1),
39655
+ connection: capabilityGrantConnectionSchema,
39656
+ availability: capabilityGrantAvailabilitySchema,
39657
+ source: capabilityGrantSourceSchema,
39658
+ max_access_level: capabilityGrantAccessLevelSchema,
39659
+ default_agent_access_level: capabilityGrantAccessLevelSchema,
39660
+ compile_status: capabilityGrantCompileStatusSchema
39661
+ }).strict();
39662
+ var agentEffectiveCapabilityGrantDtoSchema = external_exports.object({
39663
+ tool_grant_id: uuidSchema5,
39664
+ agent_tool_grant_id: uuidSchema5.nullable(),
39665
+ agent_id: uuidSchema5,
39666
+ capability_id: external_exports.string().min(1),
39667
+ connection: capabilityGrantConnectionSchema,
39668
+ availability: capabilityGrantAvailabilitySchema,
39669
+ source: capabilityGrantSourceSchema,
39670
+ selection_source: capabilityGrantSourceSchema.nullable(),
39671
+ max_access_level: capabilityGrantAccessLevelSchema,
39672
+ default_agent_access_level: capabilityGrantAccessLevelSchema,
39673
+ selected_access_level: capabilityGrantAccessLevelSchema,
39674
+ effective_access_level: capabilityGrantAccessLevelSchema,
39675
+ compile_status: capabilityGrantCompileStatusSchema
39676
+ }).strict();
39677
+ var toolGrantsTenantListInputSchema = external_exports.object({}).strict();
39678
+ var toolGrantsTenantListOutputSchema = external_exports.object({
39679
+ grants: external_exports.array(tenantCapabilityGrantDtoSchema)
39680
+ }).strict();
39681
+ var toolGrantsAgentEffectiveInputSchema = external_exports.object({
39682
+ agent_id: uuidSchema5
39683
+ }).strict();
39684
+ var toolGrantsAgentEffectiveOutputSchema = external_exports.object({
39685
+ agent_id: uuidSchema5,
39686
+ seat_id: uuidSchema5,
39687
+ grants: external_exports.array(agentEffectiveCapabilityGrantDtoSchema)
39688
+ }).strict();
39689
+ var agentCapabilityGrantUpdateSchema = external_exports.object({
39690
+ tool_grant_id: uuidSchema5,
39691
+ access_level: capabilityGrantAccessLevelSchema
39692
+ }).strict();
39693
+ var compiledCapabilityManifestEntrySchema = external_exports.object({
39694
+ tool: external_exports.string().min(1),
39695
+ capability_id: external_exports.string().min(1),
39696
+ integration_id: uuidSchema5.optional(),
39697
+ access_level: capabilityGrantAccessLevelSchema.exclude(["off"]),
39698
+ scope_tier: external_exports.enum(["read", "draft", "write_with_approval", "full"]),
39699
+ access_policy: external_exports.enum(["always_allow", "always_ask"]),
39700
+ mode: external_exports.enum(["allow", "escalate"])
39701
+ }).strict();
39702
+ var toolGrantsAgentUpdateInputSchema = external_exports.object({
39703
+ agent_id: uuidSchema5,
39704
+ grants: external_exports.array(agentCapabilityGrantUpdateSchema).min(1).max(50),
39705
+ reason: external_exports.string().trim().min(1).max(500).optional()
39706
+ }).strict();
39707
+ var toolGrantsAgentUpdateOutputSchema = external_exports.object({
39708
+ agent_id: uuidSchema5,
39709
+ applied_immediately: external_exports.boolean(),
39710
+ requires_charter_supersession: external_exports.boolean(),
39711
+ changed_grants: external_exports.array(agentEffectiveCapabilityGrantDtoSchema),
39712
+ charter_proposal: external_exports.object({
39713
+ compiler_version: external_exports.string().min(1),
39714
+ scope_digest: external_exports.string().regex(/^sha256:[0-9a-f]{64}$/),
39715
+ permission_manifest: external_exports.array(compiledCapabilityManifestEntrySchema)
39716
+ }).strict().nullable()
39717
+ }).strict();
39718
+ var agentSetupCapabilitySuggestionsInputSchema = external_exports.object({
39719
+ seat_id: uuidSchema5.optional(),
39720
+ setup_id: uuidSchema5.optional()
39721
+ }).strict().refine(
39722
+ (value) => Boolean(value.seat_id) || Boolean(value.setup_id),
39723
+ "Provide seat_id or setup_id."
39724
+ );
39725
+ var agentSetupCapabilitySuggestionSchema = external_exports.object({
39726
+ capability_id: external_exports.string().min(1),
39727
+ tool_grant_id: uuidSchema5.nullable(),
39728
+ suggested_access_level: capabilityGrantAccessLevelSchema,
39729
+ reason: external_exports.string().min(1).max(240),
39730
+ available: external_exports.boolean()
39731
+ }).strict();
39732
+ var agentSetupCapabilitySuggestionsOutputSchema = external_exports.object({
39733
+ agent_id: uuidSchema5,
39734
+ seat_id: uuidSchema5,
39735
+ template_slug: external_exports.string().nullable(),
39736
+ suggestions: external_exports.array(agentSetupCapabilitySuggestionSchema)
39737
+ }).strict();
39738
+ var tenantToolPolicyAicosSchema = external_exports.object({
39739
+ trust_new_capabilities_automatically: external_exports.boolean()
39740
+ }).strict();
39741
+ var storedTenantToolPolicySchema = external_exports.object({
39742
+ mode: external_exports.enum(["managed", "open"]),
39743
+ aicos: tenantToolPolicyAicosSchema
39744
+ }).strict().superRefine((value, ctx) => {
39745
+ if (hasSecretShapedValue(value)) {
39746
+ ctx.addIssue({
39747
+ code: external_exports.ZodIssueCode.custom,
39748
+ message: "Tenant tool policy cannot contain secret-shaped content."
39749
+ });
39750
+ }
39751
+ });
39752
+ var toolPolicyGetInputSchema = external_exports.object({}).strict();
39753
+ var toolPolicyGetOutputSchema = external_exports.object({
39754
+ tool_policy: storedTenantToolPolicySchema
39755
+ }).strict();
39494
39756
 
39495
39757
  // ../../packages/protocol/src/agent-policy.ts
39496
39758
  var AUTONOMOUS_RISK_LEVELS = ["low", "medium", "high", "critical"];
@@ -39554,7 +39816,7 @@ var cloudBrainOptionSchema = external_exports.object({
39554
39816
  }).strict();
39555
39817
 
39556
39818
  // ../../packages/protocol/src/aicos.ts
39557
- var uuidSchema5 = external_exports.string().uuid();
39819
+ var uuidSchema6 = external_exports.string().uuid();
39558
39820
  var jsonObjectSchema = external_exports.record(external_exports.string(), external_exports.unknown());
39559
39821
  var aicosConversationPurposeSchema = external_exports.enum(["onboarding", "general", "seat"]);
39560
39822
  var aicosLaneSchema = external_exports.enum(["cloud", "runner", "mcp"]);
@@ -39630,19 +39892,19 @@ var aicosBrainSelectionSchema = external_exports.object({
39630
39892
  }).strict();
39631
39893
  var agentTurnExecutionLaneSchema = external_exports.enum(["cloud", "mcp_session", "runner"]);
39632
39894
  var agentTurnExecutionSchema = external_exports.object({
39633
- id: uuidSchema5,
39634
- tenantId: uuidSchema5,
39635
- sessionId: uuidSchema5,
39636
- userMessageId: uuidSchema5,
39637
- assistantMessageId: uuidSchema5.nullable(),
39638
- seatId: uuidSchema5,
39639
- agentId: uuidSchema5,
39640
- userId: uuidSchema5,
39895
+ id: uuidSchema6,
39896
+ tenantId: uuidSchema6,
39897
+ sessionId: uuidSchema6,
39898
+ userMessageId: uuidSchema6,
39899
+ assistantMessageId: uuidSchema6.nullable(),
39900
+ seatId: uuidSchema6,
39901
+ agentId: uuidSchema6,
39902
+ userId: uuidSchema6,
39641
39903
  lane: agentTurnExecutionLaneSchema,
39642
39904
  brain: agentTurnExecutionBrainSchema,
39643
39905
  status: agentTurnExecutionStatusSchema,
39644
- claimedByRunnerId: uuidSchema5.nullable(),
39645
- linkedRunId: uuidSchema5.nullable(),
39906
+ claimedByRunnerId: uuidSchema6.nullable(),
39907
+ linkedRunId: uuidSchema6.nullable(),
39646
39908
  interactiveDeadline: external_exports.string().datetime({ offset: true }),
39647
39909
  claimedAt: external_exports.string().datetime({ offset: true }).nullable().optional(),
39648
39910
  startedAt: external_exports.string().datetime({ offset: true }).nullable().optional(),
@@ -39658,13 +39920,13 @@ var agentTurnExecutionSchema = external_exports.object({
39658
39920
  updatedAt: external_exports.string().datetime({ offset: true })
39659
39921
  }).strict();
39660
39922
  var aicosPendingTurnSchema = external_exports.object({
39661
- id: uuidSchema5,
39662
- userMessageId: uuidSchema5,
39663
- assistantMessageId: uuidSchema5.nullable(),
39923
+ id: uuidSchema6,
39924
+ userMessageId: uuidSchema6,
39925
+ assistantMessageId: uuidSchema6.nullable(),
39664
39926
  lane: agentTurnExecutionLaneSchema,
39665
39927
  brain: agentTurnExecutionBrainSchema,
39666
39928
  status: agentTurnExecutionStatusSchema,
39667
- linkedRunId: uuidSchema5.nullable(),
39929
+ linkedRunId: uuidSchema6.nullable(),
39668
39930
  interactiveDeadline: external_exports.string().datetime({ offset: true }),
39669
39931
  terminalReason: external_exports.string().min(1).max(120).nullable().default(null),
39670
39932
  claimLatencyMs: external_exports.number().int().nonnegative().nullable().default(null),
@@ -39730,8 +39992,8 @@ var aicosRouteContextSchema = external_exports.object({
39730
39992
  pathname: external_exports.string().min(1),
39731
39993
  routeTemplate: external_exports.string().min(1),
39732
39994
  search: external_exports.string().max(500).optional(),
39733
- selectedSeatId: uuidSchema5.nullable().optional(),
39734
- selectedObjectId: uuidSchema5.nullable().optional()
39995
+ selectedSeatId: uuidSchema6.nullable().optional(),
39996
+ selectedObjectId: uuidSchema6.nullable().optional()
39735
39997
  }).strict();
39736
39998
  var aicosOnboardingContextSchema = external_exports.object({
39737
39999
  step: external_exports.string().min(1).nullable().default(null),
@@ -39739,7 +40001,7 @@ var aicosOnboardingContextSchema = external_exports.object({
39739
40001
  state: jsonObjectSchema.optional()
39740
40002
  }).strict();
39741
40003
  var aicosSeatScopeSchema = external_exports.object({
39742
- seatId: uuidSchema5,
40004
+ seatId: uuidSchema6,
39743
40005
  seatName: external_exports.string().min(1).max(200)
39744
40006
  }).strict();
39745
40007
  var aicosCapabilitySnapshotSchema = external_exports.object({
@@ -39797,7 +40059,7 @@ var aicosBrainSettingsUpdateInputSchema = external_exports.object({
39797
40059
  "At least one AICOS lane or brain setting must be provided."
39798
40060
  );
39799
40061
  var aicosSessionSchema = external_exports.object({
39800
- id: uuidSchema5,
40062
+ id: uuidSchema6,
39801
40063
  title: external_exports.string().min(1),
39802
40064
  purpose: aicosConversationPurposeSchema,
39803
40065
  active: external_exports.boolean(),
@@ -39814,7 +40076,7 @@ var aicosAttachmentContentTypeSchema = external_exports.enum(AICOS_ATTACHMENT_CO
39814
40076
  var AICOS_ATTACHMENT_READINESS = ["ready", "unavailable", "expired"];
39815
40077
  var aicosAttachmentReadinessSchema = external_exports.enum(AICOS_ATTACHMENT_READINESS);
39816
40078
  var aicosAttachmentSchema = external_exports.object({
39817
- id: uuidSchema5,
40079
+ id: uuidSchema6,
39818
40080
  contentType: aicosAttachmentContentTypeSchema,
39819
40081
  sizeBytes: external_exports.number().int().positive(),
39820
40082
  width: external_exports.number().int().positive().nullable(),
@@ -39827,7 +40089,7 @@ var aicosAttachmentUploadResultSchema = external_exports.object({
39827
40089
  attachment: aicosAttachmentSchema
39828
40090
  }).strict();
39829
40091
  var aicosRunnerAttachmentRefSchema = external_exports.object({
39830
- id: uuidSchema5,
40092
+ id: uuidSchema6,
39831
40093
  content_type: aicosAttachmentContentTypeSchema,
39832
40094
  size_bytes: external_exports.number().int().positive(),
39833
40095
  width: external_exports.number().int().positive().nullable(),
@@ -39840,28 +40102,28 @@ var aicosRunnerAttachmentRefSchema = external_exports.object({
39840
40102
  }).strict();
39841
40103
  var AICOS_RUNNER_ATTACHMENT_OUTCOMES = ["used", "expired", "load_failed"];
39842
40104
  var aicosRunnerAttachmentOutcomeSchema = external_exports.object({
39843
- id: uuidSchema5,
40105
+ id: uuidSchema6,
39844
40106
  outcome: external_exports.enum(AICOS_RUNNER_ATTACHMENT_OUTCOMES)
39845
40107
  }).strict();
39846
40108
  var aicosMessageSchema = external_exports.object({
39847
- id: uuidSchema5,
39848
- sessionId: uuidSchema5,
40109
+ id: uuidSchema6,
40110
+ sessionId: uuidSchema6,
39849
40111
  role: aicosMessageRoleSchema,
39850
40112
  actorKind: aicosActorKindSchema,
39851
40113
  contentText: external_exports.string(),
39852
40114
  routeContext: jsonObjectSchema,
39853
40115
  onboardingContext: jsonObjectSchema,
39854
40116
  metadata: jsonObjectSchema.default({}),
39855
- linkedRunId: uuidSchema5.nullable(),
39856
- linkedWorkOrderId: uuidSchema5.nullable(),
40117
+ linkedRunId: uuidSchema6.nullable(),
40118
+ linkedWorkOrderId: uuidSchema6.nullable(),
39857
40119
  sourceCount: external_exports.number().int().nonnegative().default(0),
39858
40120
  attachments: external_exports.array(aicosAttachmentSchema).default([]),
39859
40121
  createdAt: external_exports.string().datetime({ offset: true })
39860
40122
  }).strict();
39861
40123
  var aicosSourceSchema = external_exports.object({
39862
- id: uuidSchema5,
39863
- sessionId: uuidSchema5,
39864
- messageId: uuidSchema5.nullable(),
40124
+ id: uuidSchema6,
40125
+ sessionId: uuidSchema6,
40126
+ messageId: uuidSchema6.nullable(),
39865
40127
  sourceKind: aicosSourceKindSchema,
39866
40128
  sourceRef: external_exports.string().min(1).max(500),
39867
40129
  title: external_exports.string().min(1).max(300),
@@ -39884,14 +40146,14 @@ var aicosAgentBuilderMetadataSchema = external_exports.object({
39884
40146
  agentBuilder: agentBuilderCompilationSchema
39885
40147
  }).strict();
39886
40148
  var aicosTurnRequestSchema = external_exports.object({
39887
- requestId: uuidSchema5,
39888
- sessionId: uuidSchema5.nullable().optional(),
40149
+ requestId: uuidSchema6,
40150
+ sessionId: uuidSchema6.nullable().optional(),
39889
40151
  purpose: aicosConversationPurposeSchema.default("general"),
39890
40152
  // Empty is permitted only when attachments are present (an image-only turn);
39891
40153
  // runAicosTurn enforces the "message or attachment required" invariant so the
39892
40154
  // schema stays a plain object for downstream `.shape`/`.extend` consumers.
39893
40155
  message: external_exports.string().trim().max(12e3).default(""),
39894
- attachmentIds: external_exports.array(uuidSchema5).max(AICOS_MAX_ATTACHMENTS_PER_TURN).default([]),
40156
+ attachmentIds: external_exports.array(uuidSchema6).max(AICOS_MAX_ATTACHMENTS_PER_TURN).default([]),
39895
40157
  routeContext: aicosRouteContextSchema,
39896
40158
  model: aicosModelRequestSchema.optional(),
39897
40159
  agentBuilderClarification: agentBuilderClarificationSetSchema.optional()
@@ -39960,6 +40222,21 @@ var aicosPulseSnapshotSchema = external_exports.object({
39960
40222
  // ../../packages/protocol/src/command-introspection.ts
39961
40223
  var requiredScopeSchema = external_exports.enum(["tenant_admin", "tenant", "seat", "user"]);
39962
40224
  var confirmationSchema = external_exports.enum(["none", "human_required", "credential_flow", "dangerous"]);
40225
+ var trustedExecutionModeSchema = external_exports.enum(["eligible", "always_human", "not_applicable"]);
40226
+ var trustedExecutionRiskFlagSchema = external_exports.enum([
40227
+ "admin",
40228
+ "credential",
40229
+ "destructive",
40230
+ "production",
40231
+ "self_approval",
40232
+ "external_send",
40233
+ "spend"
40234
+ ]);
40235
+ var trustedExecutionSchema = external_exports.object({
40236
+ mode: trustedExecutionModeSchema,
40237
+ risk_flags: external_exports.array(trustedExecutionRiskFlagSchema),
40238
+ rationale: external_exports.string().min(1)
40239
+ }).strict();
39963
40240
  var jsonSchemaObjectSchema = external_exports.record(external_exports.string(), external_exports.unknown()).refine((value) => value !== null, { message: "JSON Schema must be an object." });
39964
40241
  var commandDescribeInputSchema = external_exports.object({
39965
40242
  // The command id to describe, e.g. "compass.draft".
@@ -39971,6 +40248,7 @@ var commandDescribeOutputSchema = external_exports.object({
39971
40248
  description: external_exports.string().min(1),
39972
40249
  required_scope: requiredScopeSchema,
39973
40250
  confirmation: confirmationSchema,
40251
+ trusted_execution: trustedExecutionSchema,
39974
40252
  expose_over_mcp: external_exports.boolean(),
39975
40253
  input_schema: jsonSchemaObjectSchema,
39976
40254
  output_schema: jsonSchemaObjectSchema,
@@ -39988,6 +40266,7 @@ var commandListEntrySchema = external_exports.object({
39988
40266
  title: external_exports.string().min(1),
39989
40267
  required_scope: requiredScopeSchema,
39990
40268
  confirmation: confirmationSchema,
40269
+ trusted_execution: trustedExecutionSchema,
39991
40270
  expose_over_mcp: external_exports.boolean(),
39992
40271
  stages: external_exports.array(external_exports.string())
39993
40272
  }).strict();
@@ -39996,10 +40275,10 @@ var commandListOutputSchema = external_exports.object({
39996
40275
  }).strict();
39997
40276
 
39998
40277
  // ../../packages/protocol/src/compass.ts
39999
- var uuidSchema6 = external_exports.string().uuid();
40278
+ var uuidSchema7 = external_exports.string().uuid();
40000
40279
  var sourceCitationSchema = external_exports.object({
40001
40280
  source_id: external_exports.string().min(1),
40002
- document_id: uuidSchema6.optional(),
40281
+ document_id: uuidSchema7.optional(),
40003
40282
  label: external_exports.string().min(1),
40004
40283
  locator: external_exports.string().min(1),
40005
40284
  quote: external_exports.string().min(1).optional(),
@@ -40028,14 +40307,14 @@ var contextGapSchema = external_exports.object({
40028
40307
  var gapInterviewAnswerSchema = external_exports.object({
40029
40308
  gap_id: external_exports.string().min(1),
40030
40309
  answer: external_exports.string().min(1),
40031
- answered_by: uuidSchema6
40310
+ answered_by: uuidSchema7
40032
40311
  }).strict();
40033
40312
  var contextPackSchema = external_exports.object({
40034
40313
  schema_version: external_exports.literal(1),
40035
- tenant_id: uuidSchema6.optional(),
40314
+ tenant_id: uuidSchema7.optional(),
40036
40315
  sources: external_exports.array(external_exports.object({
40037
40316
  id: external_exports.string().min(1),
40038
- document_id: uuidSchema6.optional(),
40317
+ document_id: uuidSchema7.optional(),
40039
40318
  name: external_exports.string().min(1),
40040
40319
  kind: external_exports.enum(["document", "financial_upload", "interview", "integration_stub"]),
40041
40320
  mime_type: external_exports.string().min(1).optional()
@@ -40085,7 +40364,7 @@ var compassDraftSchema = external_exports.discriminatedUnion("schema_version", [
40085
40364
  compassDraftSchemaV2
40086
40365
  ]);
40087
40366
  var guardrailInputSchema = external_exports.object({
40088
- source_compass_version_id: uuidSchema6.optional(),
40367
+ source_compass_version_id: uuidSchema7.optional(),
40089
40368
  principles: external_exports.array(external_exports.object({
40090
40369
  index: external_exports.number().int().positive(),
40091
40370
  statement: external_exports.string().min(1),
@@ -40138,6 +40417,8 @@ var charterMeasurableSchema = external_exports.object({
40138
40417
  });
40139
40418
  var charterPermissionSchema = external_exports.object({
40140
40419
  tool: external_exports.string().min(1),
40420
+ capability_id: external_exports.string().min(1).optional(),
40421
+ integration_id: external_exports.string().uuid().optional(),
40141
40422
  scope: external_exports.string().min(1),
40142
40423
  granted: external_exports.boolean(),
40143
40424
  rationale: external_exports.string().min(1),
@@ -40279,6 +40560,21 @@ var coachDiscussionGuideOutputSchema = external_exports.object({
40279
40560
  suggested_structure: external_exports.array(external_exports.string()).max(8)
40280
40561
  });
40281
40562
 
40563
+ // ../../packages/protocol/src/integration-scopes.ts
40564
+ var integrationCapabilityAvailabilitySchema = external_exports.object({
40565
+ capability_id: external_exports.string().min(1),
40566
+ provider: external_exports.string().min(1),
40567
+ max_access_level: toolAccessLevelSchema.or(external_exports.literal("off")),
40568
+ availability: external_exports.enum(["available", "connection_required", "scope_missing", "revoked", "disabled"]),
40569
+ granted_scopes: external_exports.array(external_exports.string().min(1)),
40570
+ missing_scopes: external_exports.array(external_exports.string().min(1))
40571
+ }).strict();
40572
+ var normalizedIntegrationScopesSchema = external_exports.object({
40573
+ provider: external_exports.string().min(1),
40574
+ granted_scopes: external_exports.array(external_exports.string().min(1)),
40575
+ capabilities: external_exports.array(integrationCapabilityAvailabilitySchema)
40576
+ }).strict();
40577
+
40282
40578
  // ../../packages/protocol/src/integrations.ts
40283
40579
  var uuid5 = external_exports.string().uuid();
40284
40580
  var isoDateTime = external_exports.string().datetime({ offset: true });
@@ -40301,6 +40597,7 @@ var tenantIntegrationSummarySchema = external_exports.object({
40301
40597
  account_label: external_exports.string().min(1).nullable(),
40302
40598
  scopes: external_exports.array(external_exports.string().min(1)),
40303
40599
  capabilities: external_exports.array(external_exports.string().min(1)),
40600
+ capability_availability: external_exports.array(integrationCapabilityAvailabilitySchema).optional(),
40304
40601
  last_synced_at: isoDateTime.nullable(),
40305
40602
  last_tested_at: isoDateTime.nullable(),
40306
40603
  last_test_result: external_exports.enum(["ok", "failed"]).nullable(),
@@ -40397,15 +40694,15 @@ var integrationReadinessOutputSchema = external_exports.object({
40397
40694
  }).strict();
40398
40695
 
40399
40696
  // ../../packages/protocol/src/cli-bootstrap.ts
40400
- var uuidSchema7 = external_exports.string().uuid();
40697
+ var uuidSchema8 = external_exports.string().uuid();
40401
40698
  var userWhoamiInputSchema = external_exports.object({}).strict();
40402
40699
  var userWhoamiOutputSchema = external_exports.object({
40403
- user_id: uuidSchema7,
40700
+ user_id: uuidSchema8,
40404
40701
  email: external_exports.string().email().nullable(),
40405
40702
  full_name: external_exports.string().nullable(),
40406
- current_tenant_id: uuidSchema7.nullable(),
40703
+ current_tenant_id: uuidSchema8.nullable(),
40407
40704
  roles: external_exports.array(external_exports.object({
40408
- tenant_id: uuidSchema7,
40705
+ tenant_id: uuidSchema8,
40409
40706
  role: external_exports.enum(["owner", "admin", "steward", "member"]),
40410
40707
  status: external_exports.enum(["active", "invited", "suspended"])
40411
40708
  }).strict())
@@ -40413,7 +40710,7 @@ var userWhoamiOutputSchema = external_exports.object({
40413
40710
  var userTenantsInputSchema = external_exports.object({}).strict();
40414
40711
  var userTenantsOutputSchema = external_exports.object({
40415
40712
  tenants: external_exports.array(external_exports.object({
40416
- id: uuidSchema7,
40713
+ id: uuidSchema8,
40417
40714
  slug: external_exports.string().min(1),
40418
40715
  name: external_exports.string().min(1),
40419
40716
  role: external_exports.enum(["owner", "admin", "steward", "member"]),
@@ -40425,7 +40722,7 @@ var userUseTenantInputSchema = external_exports.object({
40425
40722
  tenant: external_exports.string().min(1)
40426
40723
  }).strict();
40427
40724
  var userUseTenantOutputSchema = external_exports.object({
40428
- tenant_id: uuidSchema7,
40725
+ tenant_id: uuidSchema8,
40429
40726
  slug: external_exports.string().min(1),
40430
40727
  name: external_exports.string().min(1),
40431
40728
  role: external_exports.enum(["owner", "admin", "steward", "member"]),
@@ -40435,7 +40732,7 @@ var signupProvisionTenantInputSchema = external_exports.object({
40435
40732
  company_name: external_exports.string().trim().min(2).max(120)
40436
40733
  }).strict();
40437
40734
  var signupProvisionTenantOutputSchema = external_exports.object({
40438
- tenant_id: uuidSchema7,
40735
+ tenant_id: uuidSchema8,
40439
40736
  slug: external_exports.string().min(1),
40440
40737
  name: external_exports.string().min(1),
40441
40738
  // false when the caller already had an active tenant — conservative-by-default
@@ -40446,26 +40743,26 @@ var tenantCreateInputSchema = external_exports.object({
40446
40743
  company_name: external_exports.string().trim().min(2).max(120)
40447
40744
  }).strict();
40448
40745
  var tenantCreateOutputSchema = external_exports.object({
40449
- tenant_id: uuidSchema7,
40746
+ tenant_id: uuidSchema8,
40450
40747
  slug: external_exports.string().min(1),
40451
40748
  name: external_exports.string().min(1),
40452
40749
  created: external_exports.literal(true),
40453
- source_tenant_id: uuidSchema7,
40454
- entitlement_id: uuidSchema7,
40455
- accounting_event_id: uuidSchema7,
40750
+ source_tenant_id: uuidSchema8,
40751
+ entitlement_id: uuidSchema8,
40752
+ accounting_event_id: uuidSchema8,
40456
40753
  active: external_exports.boolean(),
40457
40754
  next_action: external_exports.string().min(1)
40458
40755
  }).strict();
40459
40756
 
40460
40757
  // ../../packages/protocol/src/cli-operations.ts
40461
- var uuidSchema8 = external_exports.string().uuid();
40758
+ var uuidSchema9 = external_exports.string().uuid();
40462
40759
  var dateOnlySchema = external_exports.string().regex(/^\d{4}-\d{2}-\d{2}$/, "expected YYYY-MM-DD");
40463
40760
  var signalListInputSchema = external_exports.object({
40464
- seat_id: uuidSchema8.optional()
40761
+ seat_id: uuidSchema9.optional()
40465
40762
  }).strict();
40466
40763
  var signalSummarySchema = external_exports.object({
40467
- measurable_id: uuidSchema8,
40468
- seat_id: uuidSchema8,
40764
+ measurable_id: uuidSchema9,
40765
+ seat_id: uuidSchema9,
40469
40766
  seat_name: external_exports.string(),
40470
40767
  name: external_exports.string(),
40471
40768
  unit: external_exports.string(),
@@ -40473,7 +40770,7 @@ var signalSummarySchema = external_exports.object({
40473
40770
  target: external_exports.number(),
40474
40771
  cadence: external_exports.enum(["daily", "weekly", "monthly", "quarterly", "annual"]),
40475
40772
  source: external_exports.enum(["agent", "human", "integration"]),
40476
- latest_reading_id: uuidSchema8.nullable(),
40773
+ latest_reading_id: uuidSchema9.nullable(),
40477
40774
  latest_value: external_exports.number().nullable(),
40478
40775
  latest_period_start: external_exports.string().nullable(),
40479
40776
  latest_confirmed: external_exports.boolean().nullable(),
@@ -40483,20 +40780,20 @@ var signalListOutputSchema = external_exports.object({
40483
40780
  signals: external_exports.array(signalSummarySchema)
40484
40781
  }).strict();
40485
40782
  var signalGetInputSchema = external_exports.object({
40486
- measurable_id: uuidSchema8
40783
+ measurable_id: uuidSchema9
40487
40784
  }).strict();
40488
40785
  var signalReadingSchema = external_exports.object({
40489
- reading_id: uuidSchema8,
40786
+ reading_id: uuidSchema9,
40490
40787
  period_start: dateOnlySchema,
40491
40788
  value: external_exports.number(),
40492
40789
  source: external_exports.enum(["agent", "human", "integration"]),
40493
40790
  confirmed: external_exports.boolean(),
40494
40791
  confirmed_at: external_exports.string().nullable(),
40495
- confirmed_by: uuidSchema8.nullable()
40792
+ confirmed_by: uuidSchema9.nullable()
40496
40793
  }).strict();
40497
40794
  var signalGetOutputSchema = external_exports.object({
40498
- measurable_id: uuidSchema8,
40499
- seat_id: uuidSchema8,
40795
+ measurable_id: uuidSchema9,
40796
+ seat_id: uuidSchema9,
40500
40797
  name: external_exports.string(),
40501
40798
  unit: external_exports.string(),
40502
40799
  direction: external_exports.enum(["up_good", "down_good"]),
@@ -40507,26 +40804,26 @@ var signalGetOutputSchema = external_exports.object({
40507
40804
  readings: external_exports.array(signalReadingSchema)
40508
40805
  }).strict();
40509
40806
  var signalConfirmReadingInputSchema = external_exports.object({
40510
- reading_id: uuidSchema8
40807
+ reading_id: uuidSchema9
40511
40808
  }).strict();
40512
40809
  var signalConfirmReadingOutputSchema = external_exports.object({
40513
- reading_id: uuidSchema8,
40810
+ reading_id: uuidSchema9,
40514
40811
  confirmed: external_exports.literal(true)
40515
40812
  }).strict();
40516
40813
  var signalCorrectReadingInputSchema = external_exports.object({
40517
- measurable_id: uuidSchema8,
40814
+ measurable_id: uuidSchema9,
40518
40815
  period_start: dateOnlySchema,
40519
40816
  value: external_exports.number().finite()
40520
40817
  }).strict();
40521
40818
  var signalCorrectReadingOutputSchema = external_exports.object({
40522
- reading_id: uuidSchema8,
40523
- measurable_id: uuidSchema8,
40819
+ reading_id: uuidSchema9,
40820
+ measurable_id: uuidSchema9,
40524
40821
  period_start: dateOnlySchema,
40525
40822
  value: external_exports.number(),
40526
40823
  confirmed: external_exports.literal(true)
40527
40824
  }).strict();
40528
40825
  var measurableCreateInputSchema = external_exports.object({
40529
- seat_id: uuidSchema8,
40826
+ seat_id: uuidSchema9,
40530
40827
  name: external_exports.string().trim().min(1).max(120),
40531
40828
  unit: external_exports.string().trim().min(1).max(40),
40532
40829
  direction: external_exports.enum(["up_good", "down_good"]),
@@ -40534,8 +40831,8 @@ var measurableCreateInputSchema = external_exports.object({
40534
40831
  cadence: external_exports.enum(["daily", "weekly", "monthly", "quarterly", "annual"])
40535
40832
  }).strict();
40536
40833
  var measurableCreateOutputSchema = external_exports.object({
40537
- measurable_id: uuidSchema8,
40538
- seat_id: uuidSchema8,
40834
+ measurable_id: uuidSchema9,
40835
+ seat_id: uuidSchema9,
40539
40836
  name: external_exports.string(),
40540
40837
  unit: external_exports.string(),
40541
40838
  direction: external_exports.enum(["up_good", "down_good"]),
@@ -40566,8 +40863,8 @@ var signalImportSkipSchema = external_exports.object({
40566
40863
  reason: external_exports.string()
40567
40864
  }).strict();
40568
40865
  var signalImportMeasurableResultSchema = external_exports.object({
40569
- measurable_id: uuidSchema8,
40570
- seat_id: uuidSchema8,
40866
+ measurable_id: uuidSchema9,
40867
+ seat_id: uuidSchema9,
40571
40868
  name: external_exports.string(),
40572
40869
  cadence: external_exports.enum(["daily", "weekly", "monthly", "quarterly", "annual"]),
40573
40870
  readings_written: external_exports.number().int().nonnegative()
@@ -40611,13 +40908,13 @@ var measurableTemplateListOutputSchema = external_exports.object({
40611
40908
  }).strict();
40612
40909
  var measurableTemplateAdoptInputSchema = external_exports.object({
40613
40910
  template_id: external_exports.string().trim().min(1).max(80),
40614
- seat_id: uuidSchema8,
40911
+ seat_id: uuidSchema9,
40615
40912
  target: external_exports.number().finite().optional()
40616
40913
  }).strict();
40617
40914
  var measurableTemplateAdoptOutputSchema = external_exports.object({
40618
- measurable_id: uuidSchema8,
40915
+ measurable_id: uuidSchema9,
40619
40916
  template_id: external_exports.string(),
40620
- seat_id: uuidSchema8,
40917
+ seat_id: uuidSchema9,
40621
40918
  name: external_exports.string(),
40622
40919
  unit: external_exports.string(),
40623
40920
  direction: measureDirectionSchema,
@@ -40628,7 +40925,7 @@ var scorecardGridInputSchema = external_exports.object({
40628
40925
  cadence: measureCadenceSchema.optional(),
40629
40926
  // Trailing period count; defaults per cadence (weekly 13, monthly 6, …).
40630
40927
  trailing: external_exports.number().int().min(1).max(53).optional(),
40631
- seat_id: uuidSchema8.optional(),
40928
+ seat_id: uuidSchema9.optional(),
40632
40929
  // Anchor date (YYYY-MM-DD) for the trailing window; defaults to today. Present
40633
40930
  // so callers/tests get a deterministic column set.
40634
40931
  as_of: dateOnlySchema.optional()
@@ -40645,8 +40942,8 @@ var scorecardGridCellSchema = external_exports.object({
40645
40942
  confirmed: external_exports.boolean().nullable()
40646
40943
  }).strict();
40647
40944
  var scorecardGridRowSchema = external_exports.object({
40648
- measurable_id: uuidSchema8,
40649
- seat_id: uuidSchema8,
40945
+ measurable_id: uuidSchema9,
40946
+ seat_id: uuidSchema9,
40650
40947
  seat_name: external_exports.string(),
40651
40948
  name: external_exports.string(),
40652
40949
  unit: external_exports.string(),
@@ -40695,7 +40992,7 @@ var frictionImportOutputSchema = external_exports.object({
40695
40992
  issues_created: external_exports.number().int().nonnegative(),
40696
40993
  issues_matched: external_exports.number().int().nonnegative(),
40697
40994
  issues_skipped: external_exports.number().int().nonnegative(),
40698
- batch_id: uuidSchema8.nullable(),
40995
+ batch_id: uuidSchema9.nullable(),
40699
40996
  skipped: external_exports.array(importSkipSchema).max(200)
40700
40997
  }).strict();
40701
40998
  var taskImportTodoSchema = external_exports.object({
@@ -40713,7 +41010,7 @@ var taskImportOutputSchema = external_exports.object({
40713
41010
  tasks_created: external_exports.number().int().nonnegative(),
40714
41011
  tasks_matched: external_exports.number().int().nonnegative(),
40715
41012
  tasks_skipped: external_exports.number().int().nonnegative(),
40716
- batch_id: uuidSchema8.nullable(),
41013
+ batch_id: uuidSchema9.nullable(),
40717
41014
  skipped: external_exports.array(importSkipSchema).max(200)
40718
41015
  }).strict();
40719
41016
  var cascadeImportRockSchema = external_exports.object({
@@ -40723,7 +41020,7 @@ var cascadeImportRockSchema = external_exports.object({
40723
41020
  }).strict();
40724
41021
  var cascadeImportInputSchema = external_exports.object({
40725
41022
  dry_run: external_exports.boolean().optional().default(false),
40726
- parent_objective_id: uuidSchema8.optional(),
41023
+ parent_objective_id: uuidSchema9.optional(),
40727
41024
  rocks: external_exports.array(cascadeImportRockSchema).min(1).max(1e3)
40728
41025
  }).strict();
40729
41026
  var cascadeImportOutputSchema = external_exports.object({
@@ -40731,8 +41028,8 @@ var cascadeImportOutputSchema = external_exports.object({
40731
41028
  rocks_created: external_exports.number().int().nonnegative(),
40732
41029
  rocks_matched: external_exports.number().int().nonnegative(),
40733
41030
  rocks_skipped: external_exports.number().int().nonnegative(),
40734
- objective_id: uuidSchema8.nullable(),
40735
- batch_id: uuidSchema8.nullable(),
41031
+ objective_id: uuidSchema9.nullable(),
41032
+ batch_id: uuidSchema9.nullable(),
40736
41033
  skipped: external_exports.array(importSkipSchema).max(200)
40737
41034
  }).strict();
40738
41035
  var MAX_VTO_TEXT_CHARS = 4e4;
@@ -40748,9 +41045,9 @@ var compassImportOutputSchema = external_exports.object({
40748
41045
  drafted: external_exports.boolean(),
40749
41046
  advisory_available: external_exports.boolean(),
40750
41047
  already_imported: external_exports.boolean(),
40751
- draft_id: uuidSchema8.nullable(),
41048
+ draft_id: uuidSchema9.nullable(),
40752
41049
  compass_version: external_exports.number().int().nonnegative().nullable(),
40753
- batch_id: uuidSchema8.nullable(),
41050
+ batch_id: uuidSchema9.nullable(),
40754
41051
  principles: external_exports.number().int().nonnegative(),
40755
41052
  horizons: external_exports.number().int().nonnegative(),
40756
41053
  cycle_objectives: external_exports.number().int().nonnegative(),
@@ -40758,18 +41055,18 @@ var compassImportOutputSchema = external_exports.object({
40758
41055
  }).strict();
40759
41056
  var goalStatusSchema = external_exports.enum(["on", "off", "done", "dropped"]);
40760
41057
  var goalListInputSchema = external_exports.object({
40761
- cycle_id: uuidSchema8.optional(),
40762
- seat_id: uuidSchema8.optional()
41058
+ cycle_id: uuidSchema9.optional(),
41059
+ seat_id: uuidSchema9.optional()
40763
41060
  }).strict();
40764
41061
  var goalSummarySchema = external_exports.object({
40765
- goal_id: uuidSchema8,
41062
+ goal_id: uuidSchema9,
40766
41063
  // DER-1039: 4-kind taxonomy (company_objective | seat_goal | milestone). Legacy
40767
41064
  // 'objective'/'cycle_goal' stay in the read enum for any tenant not yet re-seeded
40768
41065
  // during the add-only expand window (goal.list surfaces whatever the DB holds).
40769
41066
  kind: external_exports.enum(["objective", "cycle_goal", "company_objective", "seat_goal", "milestone"]),
40770
- cycle_id: uuidSchema8,
40771
- seat_id: uuidSchema8.nullable(),
40772
- parent_goal_id: uuidSchema8.nullable(),
41067
+ cycle_id: uuidSchema9,
41068
+ seat_id: uuidSchema9.nullable(),
41069
+ parent_goal_id: uuidSchema9.nullable(),
40773
41070
  title: external_exports.string(),
40774
41071
  status: goalStatusSchema,
40775
41072
  status_source: external_exports.enum(["human", "agent", "rollup"])
@@ -40778,24 +41075,24 @@ var goalListOutputSchema = external_exports.object({
40778
41075
  goals: external_exports.array(goalSummarySchema)
40779
41076
  }).strict();
40780
41077
  var goalCreateInputSchema = external_exports.object({
40781
- cycle_id: uuidSchema8,
40782
- seat_id: uuidSchema8,
40783
- parent_goal_id: uuidSchema8,
41078
+ cycle_id: uuidSchema9,
41079
+ seat_id: uuidSchema9,
41080
+ parent_goal_id: uuidSchema9,
40784
41081
  title: external_exports.string().trim().min(1),
40785
41082
  definition_of_done: external_exports.string().trim().min(1),
40786
41083
  status: external_exports.enum(["on", "off"]).optional()
40787
41084
  }).strict();
40788
41085
  var goalMutationOutputSchema = external_exports.object({
40789
- goal_id: uuidSchema8,
40790
- cycle_id: uuidSchema8,
40791
- seat_id: uuidSchema8.nullable(),
40792
- parent_goal_id: uuidSchema8.nullable(),
41086
+ goal_id: uuidSchema9,
41087
+ cycle_id: uuidSchema9,
41088
+ seat_id: uuidSchema9.nullable(),
41089
+ parent_goal_id: uuidSchema9.nullable(),
40793
41090
  title: external_exports.string(),
40794
41091
  status: goalStatusSchema,
40795
41092
  status_source: external_exports.enum(["human", "agent", "rollup"])
40796
41093
  }).strict();
40797
41094
  var goalUpdateInputSchema = external_exports.object({
40798
- goal_id: uuidSchema8,
41095
+ goal_id: uuidSchema9,
40799
41096
  title: external_exports.string().trim().min(1).optional(),
40800
41097
  definition_of_done: external_exports.string().trim().min(1).optional()
40801
41098
  }).strict().refine(
@@ -40803,22 +41100,22 @@ var goalUpdateInputSchema = external_exports.object({
40803
41100
  { message: "goal.update requires at least one of title or definition_of_done" }
40804
41101
  );
40805
41102
  var goalSetStatusInputSchema = external_exports.object({
40806
- goal_id: uuidSchema8,
41103
+ goal_id: uuidSchema9,
40807
41104
  status: external_exports.enum(["on", "off", "done"])
40808
41105
  }).strict();
40809
41106
  var goalReparentInputSchema = external_exports.object({
40810
- goal_id: uuidSchema8,
40811
- parent_goal_id: uuidSchema8
41107
+ goal_id: uuidSchema9,
41108
+ parent_goal_id: uuidSchema9
40812
41109
  }).strict();
40813
41110
  var goalDropInputSchema = external_exports.object({
40814
- goal_id: uuidSchema8
41111
+ goal_id: uuidSchema9
40815
41112
  }).strict();
40816
41113
  var goalSetProgressInputSchema = external_exports.object({
40817
- goal_id: uuidSchema8,
41114
+ goal_id: uuidSchema9,
40818
41115
  progress_pct: external_exports.number().int().min(0).max(100)
40819
41116
  }).strict();
40820
41117
  var goalSetProgressOutputSchema = external_exports.object({
40821
- goal_id: uuidSchema8,
41118
+ goal_id: uuidSchema9,
40822
41119
  progress_pct: external_exports.number().int().min(0).max(100),
40823
41120
  status: goalStatusSchema
40824
41121
  }).strict();
@@ -40829,10 +41126,10 @@ var goalPaceClassificationSchema = external_exports.enum([
40829
41126
  "untracked"
40830
41127
  ]);
40831
41128
  var goalAtRiskSchema = external_exports.object({
40832
- goal_id: uuidSchema8,
41129
+ goal_id: uuidSchema9,
40833
41130
  title: external_exports.string(),
40834
- seat_id: uuidSchema8.nullable(),
40835
- cycle_id: uuidSchema8,
41131
+ seat_id: uuidSchema9.nullable(),
41132
+ cycle_id: uuidSchema9,
40836
41133
  progress_pct: external_exports.number().int().min(0).max(100),
40837
41134
  classification: goalPaceClassificationSchema,
40838
41135
  expected_pct: external_exports.number().nullable(),
@@ -40853,8 +41150,8 @@ var goalDriverAnchorSchema = external_exports.object({
40853
41150
  expected_value: external_exports.number()
40854
41151
  }).strict();
40855
41152
  var goalBindMeasurableInputSchema = external_exports.object({
40856
- goal_id: uuidSchema8,
40857
- measurable_id: uuidSchema8,
41153
+ goal_id: uuidSchema9,
41154
+ measurable_id: uuidSchema9,
40858
41155
  // DER-1643: new operator bindings default to the conservative 'informs' role.
40859
41156
  // 'drives_status' is the deliberate leaf-only status driver (childless goal only,
40860
41157
  // one per goal) and stays human-confirmed.
@@ -40865,8 +41162,8 @@ var goalBindMeasurableInputSchema = external_exports.object({
40865
41162
  second_anchor: goalDriverAnchorSchema.optional()
40866
41163
  }).strict();
40867
41164
  var goalBindMeasurableOutputSchema = external_exports.object({
40868
- goal_id: uuidSchema8,
40869
- measurable_id: uuidSchema8,
41165
+ goal_id: uuidSchema9,
41166
+ measurable_id: uuidSchema9,
40870
41167
  role: goalMeasurableRoleSchema,
40871
41168
  // Per-binding steward opt-in; a fresh binding is always created OFF.
40872
41169
  auto_status_enabled: external_exports.boolean(),
@@ -40887,24 +41184,24 @@ var goalBindMeasurableOutputSchema = external_exports.object({
40887
41184
  driver_anchor: goalDriverAnchorSchema.nullable()
40888
41185
  }).strict();
40889
41186
  var goalUnbindMeasurableInputSchema = external_exports.object({
40890
- goal_id: uuidSchema8,
40891
- measurable_id: uuidSchema8,
41187
+ goal_id: uuidSchema9,
41188
+ measurable_id: uuidSchema9,
40892
41189
  // Which binding to remove; defaults to the status driver (the historical unbind).
40893
41190
  role: goalMeasurableRoleSchema.default("drives_status")
40894
41191
  }).strict();
40895
41192
  var goalUnbindMeasurableOutputSchema = external_exports.object({
40896
- goal_id: uuidSchema8,
40897
- measurable_id: uuidSchema8,
41193
+ goal_id: uuidSchema9,
41194
+ measurable_id: uuidSchema9,
40898
41195
  removed: external_exports.boolean()
40899
41196
  }).strict();
40900
41197
  var goalSetAutoStatusInputSchema = external_exports.object({
40901
- goal_id: uuidSchema8,
40902
- measurable_id: uuidSchema8,
41198
+ goal_id: uuidSchema9,
41199
+ measurable_id: uuidSchema9,
40903
41200
  enabled: external_exports.boolean()
40904
41201
  }).strict();
40905
41202
  var goalSetAutoStatusOutputSchema = external_exports.object({
40906
- goal_id: uuidSchema8,
40907
- measurable_id: uuidSchema8,
41203
+ goal_id: uuidSchema9,
41204
+ measurable_id: uuidSchema9,
40908
41205
  auto_status_enabled: external_exports.boolean(),
40909
41206
  // The goal's status after applying: enabling opts in and, when a confirmed
40910
41207
  // reading is available on a childless leaf that is not human-pinned, drives the
@@ -40914,7 +41211,7 @@ var goalSetAutoStatusOutputSchema = external_exports.object({
40914
41211
  applied_from_signal: external_exports.boolean()
40915
41212
  }).strict();
40916
41213
  var goalMeasurableBindingSchema = external_exports.object({
40917
- measurable_id: uuidSchema8,
41214
+ measurable_id: uuidSchema9,
40918
41215
  name: external_exports.string(),
40919
41216
  unit: external_exports.string(),
40920
41217
  role: external_exports.literal("drives_status"),
@@ -40932,25 +41229,25 @@ var goalMeasurableBindingSchema = external_exports.object({
40932
41229
  driver_anchor: goalDriverAnchorSchema.nullable()
40933
41230
  }).strict();
40934
41231
  var goalListMeasurablesInputSchema = external_exports.object({
40935
- goal_id: uuidSchema8
41232
+ goal_id: uuidSchema9
40936
41233
  }).strict();
40937
41234
  var goalListMeasurablesOutputSchema = external_exports.object({
40938
- goal_id: uuidSchema8,
41235
+ goal_id: uuidSchema9,
40939
41236
  bindings: external_exports.array(goalMeasurableBindingSchema)
40940
41237
  }).strict();
40941
41238
  var goalCoreSchema = external_exports.object({
40942
- id: uuidSchema8,
41239
+ id: uuidSchema9,
40943
41240
  title: external_exports.string(),
40944
41241
  kind: external_exports.enum(["objective", "cycle_goal", "company_objective", "seat_goal", "milestone"]),
40945
41242
  status: goalStatusSchema,
40946
41243
  status_source: goalStatusSourceSchema,
40947
41244
  progress_pct: external_exports.number().int().min(0).max(100).nullable(),
40948
- seat_id: uuidSchema8.nullable(),
40949
- parent_goal_id: uuidSchema8.nullable(),
41245
+ seat_id: uuidSchema9.nullable(),
41246
+ parent_goal_id: uuidSchema9.nullable(),
40950
41247
  definition_of_done: external_exports.string()
40951
41248
  }).strict();
40952
41249
  var goalGetInputSchema = external_exports.object({
40953
- goal_id: uuidSchema8
41250
+ goal_id: uuidSchema9
40954
41251
  }).strict();
40955
41252
  var goalGetOutputSchema = external_exports.object({
40956
41253
  goal: goalCoreSchema
@@ -40960,16 +41257,16 @@ var frictionListInputSchema = external_exports.object({
40960
41257
  status: external_exports.enum(["open", "diagnosing", "resolved", "dropped", "active", "all"]).optional()
40961
41258
  }).strict();
40962
41259
  var frictionIssueSummarySchema = external_exports.object({
40963
- issue_id: uuidSchema8,
40964
- raised_by_seat_id: uuidSchema8,
41260
+ issue_id: uuidSchema9,
41261
+ raised_by_seat_id: uuidSchema9,
40965
41262
  raised_by_seat_name: external_exports.string(),
40966
41263
  summary: external_exports.string(),
40967
41264
  severity: external_exports.enum(["low", "med", "high", "critical"]),
40968
41265
  impact_score: external_exports.number(),
40969
41266
  status: issueStatusSchema,
40970
- blocking_goal_id: uuidSchema8.nullable(),
40971
- broken_measurable_id: uuidSchema8.nullable(),
40972
- action_task_id: uuidSchema8.nullable(),
41267
+ blocking_goal_id: uuidSchema9.nullable(),
41268
+ broken_measurable_id: uuidSchema9.nullable(),
41269
+ action_task_id: uuidSchema9.nullable(),
40973
41270
  root_cause: external_exports.string().nullable(),
40974
41271
  resolved_at: external_exports.string().nullable(),
40975
41272
  created_at: external_exports.string()
@@ -40981,42 +41278,42 @@ var frictionIssueDetailSchema = frictionIssueSummarySchema.extend({
40981
41278
  raised_by_seat_type: external_exports.enum(["human", "agent", "hybrid"]),
40982
41279
  raised_by_seat_steward_name: external_exports.string().nullable(),
40983
41280
  origin_actor_kind: external_exports.enum(["user", "agent", "system"]).nullable(),
40984
- origin_actor_id: uuidSchema8.nullable(),
41281
+ origin_actor_id: uuidSchema9.nullable(),
40985
41282
  evidence: external_exports.unknown(),
40986
41283
  action_task_title: external_exports.string().nullable(),
40987
- action_task_owner_seat_id: uuidSchema8.nullable(),
41284
+ action_task_owner_seat_id: uuidSchema9.nullable(),
40988
41285
  action_task_owner_seat_name: external_exports.string().nullable(),
40989
41286
  action_task_due_on: external_exports.string().nullable(),
40990
- decision_id: uuidSchema8.nullable(),
41287
+ decision_id: uuidSchema9.nullable(),
40991
41288
  decision_title: external_exports.string().nullable(),
40992
41289
  decision_summary: external_exports.string().nullable(),
40993
41290
  decided_by_name: external_exports.string().nullable(),
40994
41291
  updated_at: external_exports.string()
40995
41292
  }).strict();
40996
41293
  var frictionGetInputSchema = external_exports.object({
40997
- issue_id: uuidSchema8
41294
+ issue_id: uuidSchema9
40998
41295
  }).strict();
40999
41296
  var frictionGetOutputSchema = external_exports.object({
41000
41297
  issue: frictionIssueDetailSchema
41001
41298
  }).strict();
41002
41299
  var frictionUpdateStatusInputSchema = external_exports.object({
41003
- issue_id: uuidSchema8,
41300
+ issue_id: uuidSchema9,
41004
41301
  status: external_exports.enum(["open", "diagnosing"])
41005
41302
  }).strict();
41006
41303
  var frictionUpdateStatusOutputSchema = external_exports.object({
41007
- issue_id: uuidSchema8,
41304
+ issue_id: uuidSchema9,
41008
41305
  status: external_exports.enum(["open", "diagnosing"]),
41009
- event_id: uuidSchema8
41306
+ event_id: uuidSchema9
41010
41307
  }).strict();
41011
41308
  var frictionResolveInputSchema = external_exports.object({
41012
- issue_id: uuidSchema8,
41309
+ issue_id: uuidSchema9,
41013
41310
  resolution_mode: external_exports.enum(["ids", "already_fixed"]).default("ids"),
41014
41311
  root_cause: external_exports.string().trim().min(1),
41015
- owner_seat_id: uuidSchema8.optional(),
41312
+ owner_seat_id: uuidSchema9.optional(),
41016
41313
  task_title: external_exports.string().trim().min(1).optional(),
41017
41314
  task_description: external_exports.string().trim().min(1).optional(),
41018
41315
  done_by: dateOnlySchema.optional(),
41019
- resolving_seat_id: uuidSchema8.optional()
41316
+ resolving_seat_id: uuidSchema9.optional()
41020
41317
  }).strict().superRefine((value, ctx) => {
41021
41318
  if (value.resolution_mode !== "ids") {
41022
41319
  return;
@@ -41035,38 +41332,38 @@ var frictionResolveInputSchema = external_exports.object({
41035
41332
  }
41036
41333
  });
41037
41334
  var frictionResolveOutputSchema = external_exports.object({
41038
- issue_id: uuidSchema8,
41335
+ issue_id: uuidSchema9,
41039
41336
  status: external_exports.literal("resolved"),
41040
- action_task_id: uuidSchema8.nullable(),
41041
- decision_id: uuidSchema8
41337
+ action_task_id: uuidSchema9.nullable(),
41338
+ decision_id: uuidSchema9
41042
41339
  }).strict();
41043
41340
  var frictionLinkTaskInputSchema = external_exports.object({
41044
- issue_id: uuidSchema8,
41045
- task_id: uuidSchema8
41341
+ issue_id: uuidSchema9,
41342
+ task_id: uuidSchema9
41046
41343
  }).strict();
41047
41344
  var frictionLinkTaskOutputSchema = external_exports.object({
41048
- issue_id: uuidSchema8,
41049
- action_task_id: uuidSchema8
41345
+ issue_id: uuidSchema9,
41346
+ action_task_id: uuidSchema9
41050
41347
  }).strict();
41051
41348
  var taskCreateInputSchema = external_exports.object({
41052
- owner_seat_id: uuidSchema8,
41053
- from_seat_id: uuidSchema8.optional(),
41349
+ owner_seat_id: uuidSchema9,
41350
+ from_seat_id: uuidSchema9.optional(),
41054
41351
  title: external_exports.string().trim().min(1),
41055
41352
  description: external_exports.string().trim().min(1),
41056
- goal_id: uuidSchema8.optional(),
41353
+ goal_id: uuidSchema9.optional(),
41057
41354
  acceptance_criteria: external_exports.array(external_exports.string().min(1)).optional(),
41058
41355
  due_on: dateOnlySchema.optional()
41059
41356
  }).strict();
41060
41357
  var taskCreateOutputSchema = external_exports.object({
41061
- task_id: uuidSchema8,
41062
- owner_seat_id: uuidSchema8,
41063
- from_seat_id: uuidSchema8.nullable(),
41358
+ task_id: uuidSchema9,
41359
+ owner_seat_id: uuidSchema9,
41360
+ from_seat_id: uuidSchema9.nullable(),
41064
41361
  status: external_exports.string(),
41065
41362
  due_on: external_exports.string().nullable()
41066
41363
  }).strict();
41067
41364
  var taskUpdateInputSchema = external_exports.object({
41068
- task_id: uuidSchema8,
41069
- owner_seat_id: uuidSchema8.optional(),
41365
+ task_id: uuidSchema9,
41366
+ owner_seat_id: uuidSchema9.optional(),
41070
41367
  due_on: dateOnlySchema.optional(),
41071
41368
  title: external_exports.string().trim().min(1).optional(),
41072
41369
  description: external_exports.string().trim().min(1).optional(),
@@ -41076,17 +41373,17 @@ var taskUpdateInputSchema = external_exports.object({
41076
41373
  { message: "Provide at least one field to update." }
41077
41374
  );
41078
41375
  var taskUpdateOutputSchema = external_exports.object({
41079
- task_id: uuidSchema8,
41080
- owner_seat_id: uuidSchema8,
41081
- from_seat_id: uuidSchema8.nullable(),
41376
+ task_id: uuidSchema9,
41377
+ owner_seat_id: uuidSchema9,
41378
+ from_seat_id: uuidSchema9.nullable(),
41082
41379
  status: external_exports.string(),
41083
41380
  due_on: external_exports.string().nullable()
41084
41381
  }).strict();
41085
41382
  var syncBriefCompileInputSchema = external_exports.object({
41086
- cluster_id: uuidSchema8.optional()
41383
+ cluster_id: uuidSchema9.optional()
41087
41384
  }).strict();
41088
41385
  var syncBriefRefSchema = external_exports.object({
41089
- sync_brief_id: uuidSchema8,
41386
+ sync_brief_id: uuidSchema9,
41090
41387
  period_start: dateOnlySchema,
41091
41388
  period_end: dateOnlySchema,
41092
41389
  compiled_at: external_exports.string(),
@@ -41095,10 +41392,10 @@ var syncBriefRefSchema = external_exports.object({
41095
41392
  created: external_exports.boolean()
41096
41393
  }).strict();
41097
41394
  var syncBriefGetInputSchema = external_exports.object({
41098
- sync_brief_id: uuidSchema8.optional()
41395
+ sync_brief_id: uuidSchema9.optional()
41099
41396
  }).strict();
41100
41397
  var syncBriefGetOutputSchema = external_exports.object({
41101
- sync_brief_id: uuidSchema8,
41398
+ sync_brief_id: uuidSchema9,
41102
41399
  period_start: dateOnlySchema,
41103
41400
  period_end: dateOnlySchema,
41104
41401
  compiled_at: external_exports.string(),
@@ -41107,10 +41404,10 @@ var syncBriefGetOutputSchema = external_exports.object({
41107
41404
  doc: external_exports.unknown()
41108
41405
  }).strict();
41109
41406
  var syncRunStartInputSchema = external_exports.object({
41110
- cluster_id: uuidSchema8.optional()
41407
+ cluster_id: uuidSchema9.optional()
41111
41408
  }).strict();
41112
41409
  var syncRunStartOutputSchema = external_exports.object({
41113
- sync_brief_id: uuidSchema8,
41410
+ sync_brief_id: uuidSchema9,
41114
41411
  period_start: dateOnlySchema,
41115
41412
  period_end: dateOnlySchema,
41116
41413
  compiled_at: external_exports.string(),
@@ -41118,25 +41415,25 @@ var syncRunStartOutputSchema = external_exports.object({
41118
41415
  degraded: external_exports.boolean()
41119
41416
  }).strict();
41120
41417
  var syncRunCompleteInputSchema = external_exports.object({
41121
- sync_brief_id: uuidSchema8
41418
+ sync_brief_id: uuidSchema9
41122
41419
  }).strict();
41123
41420
  var syncRunCompleteOutputSchema = external_exports.object({
41124
- sync_brief_id: uuidSchema8,
41125
- event_id: uuidSchema8,
41126
- decision_ids: external_exports.array(uuidSchema8),
41127
- task_ids: external_exports.array(uuidSchema8)
41421
+ sync_brief_id: uuidSchema9,
41422
+ event_id: uuidSchema9,
41423
+ decision_ids: external_exports.array(uuidSchema9),
41424
+ task_ids: external_exports.array(uuidSchema9)
41128
41425
  }).strict();
41129
41426
  var syncItemAssignInputSchema = external_exports.object({
41130
- sync_brief_id: uuidSchema8,
41131
- owner_seat_id: uuidSchema8,
41427
+ sync_brief_id: uuidSchema9,
41428
+ owner_seat_id: uuidSchema9,
41132
41429
  title: external_exports.string().trim().min(1),
41133
41430
  description: external_exports.string().trim().min(1),
41134
41431
  due_on: dateOnlySchema.optional()
41135
41432
  }).strict();
41136
41433
  var syncItemAssignOutputSchema = external_exports.object({
41137
- sync_brief_id: uuidSchema8,
41138
- task_id: uuidSchema8,
41139
- owner_seat_id: uuidSchema8,
41434
+ sync_brief_id: uuidSchema9,
41435
+ task_id: uuidSchema9,
41436
+ owner_seat_id: uuidSchema9,
41140
41437
  status: external_exports.string(),
41141
41438
  due_on: external_exports.string().nullable()
41142
41439
  }).strict();
@@ -41632,18 +41929,18 @@ function parseNinetyRocksCsv(text) {
41632
41929
  }
41633
41930
 
41634
41931
  // ../../packages/protocol/src/markdown-readout.ts
41635
- var uuidSchema9 = external_exports.string().uuid();
41932
+ var uuidSchema10 = external_exports.string().uuid();
41636
41933
  var markdownOutputSchema = external_exports.object({
41637
41934
  markdown: external_exports.string().min(1)
41638
41935
  }).strict();
41639
41936
  var compassShowMarkdownInputSchema = external_exports.object({}).strict();
41640
41937
  var charterShowMarkdownInputSchema = external_exports.object({
41641
- seat_id: uuidSchema9
41938
+ seat_id: uuidSchema10
41642
41939
  }).strict();
41643
41940
  var charterShowMarkdownOutputSchema = external_exports.object({
41644
41941
  markdown: external_exports.string().min(1),
41645
- charter_version_id: uuidSchema9.nullable(),
41646
- seat_id: uuidSchema9,
41942
+ charter_version_id: uuidSchema10.nullable(),
41943
+ seat_id: uuidSchema10,
41647
41944
  version: external_exports.number().int().nonnegative().nullable(),
41648
41945
  status: external_exports.string().nullable(),
41649
41946
  doc: external_exports.unknown().nullable(),
@@ -41653,7 +41950,7 @@ var charterShowMarkdownOutputSchema = external_exports.object({
41653
41950
  }).strict().nullable()
41654
41951
  }).strict();
41655
41952
  var agentShowMarkdownInputSchema = external_exports.object({
41656
- seat_id: uuidSchema9
41953
+ seat_id: uuidSchema10
41657
41954
  }).strict();
41658
41955
 
41659
41956
  // ../../packages/protocol/src/constants.ts
@@ -41677,7 +41974,7 @@ var SEAT_MCP_CLAIM_TOKEN_TTL_SECONDS = (FORGE_TURN_HARD_CEILING_SECONDS + FORGE_
41677
41974
 
41678
41975
  // ../../packages/protocol/src/mcp-onboarding.ts
41679
41976
  var MCP_TOKEN_ABSOLUTE_MAX_EXPIRY_MS = (MCP_TOKEN_NO_EXPIRY_SENTINEL_DAYS + 1) * 24 * 60 * 60 * 1e3;
41680
- var uuidSchema10 = external_exports.string().uuid();
41977
+ var uuidSchema11 = external_exports.string().uuid();
41681
41978
  var isoDateTime2 = external_exports.string().datetime({ offset: true });
41682
41979
  var onboardingStatusInputSchema = external_exports.object({}).strict();
41683
41980
  var onboardingStatusOutputSchema = external_exports.object({
@@ -41718,7 +42015,7 @@ var onboardingAttachReferenceInputSchema = external_exports.object({
41718
42015
  source: external_exports.string().trim().min(1).max(500).optional()
41719
42016
  }).strict();
41720
42017
  var onboardingAttachReferenceOutputSchema = external_exports.object({
41721
- document_id: uuidSchema10,
42018
+ document_id: uuidSchema11,
41722
42019
  storage_ref: external_exports.string().min(1),
41723
42020
  kind: external_exports.enum(["org_chart", "role_doc", "plan", "financial", "other"]),
41724
42021
  title: external_exports.string().min(1).nullable()
@@ -41740,7 +42037,7 @@ var onboardingCreateInviteInputSchema = external_exports.object({
41740
42037
  flags: external_exports.record(external_exports.string(), external_exports.unknown()).default({})
41741
42038
  }).strict();
41742
42039
  var onboardingCreateInviteOutputSchema = external_exports.object({
41743
- invite_id: uuidSchema10,
42040
+ invite_id: uuidSchema11,
41744
42041
  email: external_exports.string().email(),
41745
42042
  role: external_exports.enum(["owner", "admin", "steward", "member"]),
41746
42043
  token: external_exports.string().min(1)
@@ -41753,36 +42050,36 @@ var tenantAnthropicKeySaveOutputSchema = external_exports.object({
41753
42050
  }).strict();
41754
42051
  var seatCreateInputSchema = external_exports.object({
41755
42052
  name: external_exports.string().trim().min(1).max(120),
41756
- parent_seat_id: uuidSchema10.nullable().optional(),
42053
+ parent_seat_id: uuidSchema11.nullable().optional(),
41757
42054
  seat_type: external_exports.enum(["human", "agent", "hybrid"]).default("human")
41758
42055
  }).strict();
41759
42056
  var seatCreateOutputSchema = external_exports.object({
41760
- seat_id: uuidSchema10
42057
+ seat_id: uuidSchema11
41761
42058
  }).strict();
41762
42059
  var seatRenameInputSchema = external_exports.object({
41763
- seat_id: uuidSchema10,
42060
+ seat_id: uuidSchema11,
41764
42061
  name: external_exports.string().trim().min(1).max(120)
41765
42062
  }).strict();
41766
42063
  var seatReparentInputSchema = external_exports.object({
41767
- seat_id: uuidSchema10,
41768
- new_parent_seat_id: uuidSchema10.nullable()
42064
+ seat_id: uuidSchema11,
42065
+ new_parent_seat_id: uuidSchema11.nullable()
41769
42066
  }).strict();
41770
42067
  var seatSetTypeInputSchema = external_exports.object({
41771
- seat_id: uuidSchema10,
42068
+ seat_id: uuidSchema11,
41772
42069
  seat_type: external_exports.enum(["human", "agent", "hybrid"])
41773
42070
  }).strict();
41774
42071
  var seatDecommissionInputSchema = external_exports.object({
41775
- seat_id: uuidSchema10
42072
+ seat_id: uuidSchema11
41776
42073
  }).strict();
41777
42074
  var seatMutationOutputSchema = external_exports.object({
41778
- seat_id: uuidSchema10
42075
+ seat_id: uuidSchema11
41779
42076
  }).strict();
41780
42077
  var seatDecommissionPreviewOutputSchema = external_exports.object({
41781
- seat_id: uuidSchema10,
42078
+ seat_id: uuidSchema11,
41782
42079
  seat_name: external_exports.string(),
41783
42080
  previous_status: external_exports.enum(["draft", "active", "vacant", "decommissioned"]),
41784
42081
  active_occupancy_count: external_exports.number().int().nonnegative(),
41785
- active_agent_ids: external_exports.array(uuidSchema10),
42082
+ active_agent_ids: external_exports.array(uuidSchema11),
41786
42083
  active_charter_count: external_exports.number().int().nonnegative(),
41787
42084
  active_mcp_token_count: external_exports.number().int().nonnegative(),
41788
42085
  active_credential_count: external_exports.number().int().nonnegative(),
@@ -41792,15 +42089,15 @@ var seatDecommissionPreviewOutputSchema = external_exports.object({
41792
42089
  effects: external_exports.array(external_exports.string())
41793
42090
  }).strict();
41794
42091
  var charterDraftInputSchema = external_exports.object({
41795
- seat_id: uuidSchema10
42092
+ seat_id: uuidSchema11
41796
42093
  }).strict();
41797
42094
  var charterDraftOutputSchema = external_exports.object({
41798
- charter_version_id: uuidSchema10,
41799
- seat_id: uuidSchema10,
42095
+ charter_version_id: uuidSchema11,
42096
+ seat_id: uuidSchema11,
41800
42097
  doc: external_exports.unknown()
41801
42098
  }).strict();
41802
42099
  var charterUpdateDraftInputSchema = external_exports.object({
41803
- charter_version_id: uuidSchema10,
42100
+ charter_version_id: uuidSchema11,
41804
42101
  // DER-785 (Part G): the full Charter document contract (was `z.unknown()`).
41805
42102
  // The DB layer already validated this with `charterSchema.parse`; advertising
41806
42103
  // it here gives `command.describe`/`rost command schema` a real shape and a
@@ -41808,17 +42105,17 @@ var charterUpdateDraftInputSchema = external_exports.object({
41808
42105
  doc: charterDocSchema
41809
42106
  }).strict();
41810
42107
  var charterSetInputSchema = external_exports.object({
41811
- seat_id: uuidSchema10,
42108
+ seat_id: uuidSchema11,
41812
42109
  doc: charterDocSchema,
41813
42110
  approve: external_exports.boolean().default(false)
41814
42111
  }).strict();
41815
42112
  var charterMutationOutputSchema = external_exports.object({
41816
- charter_version_id: uuidSchema10,
41817
- seat_id: uuidSchema10
42113
+ charter_version_id: uuidSchema11,
42114
+ seat_id: uuidSchema11
41818
42115
  }).strict();
41819
42116
  var charterApproveInputSchema = external_exports.object({
41820
- seat_id: uuidSchema10.optional(),
41821
- charter_version_id: uuidSchema10.optional(),
42117
+ seat_id: uuidSchema11.optional(),
42118
+ charter_version_id: uuidSchema11.optional(),
41822
42119
  // DER-785 (Part G): a partial of the Charter doc shape (was an untyped record).
41823
42120
  // These fields are shallow-merged onto the existing draft, then the merged doc
41824
42121
  // is re-validated against the full schema at persist time.
@@ -41833,20 +42130,20 @@ var charterDraftSkipReasonSchema = external_exports.enum(["seat_not_active", "ch
41833
42130
  var charterDraftAllOutputSchema = external_exports.object({
41834
42131
  drafted: external_exports.number().int().nonnegative(),
41835
42132
  skipped: external_exports.number().int().nonnegative(),
41836
- draft_ids: external_exports.array(uuidSchema10),
42133
+ draft_ids: external_exports.array(uuidSchema11),
41837
42134
  skipped_seats: external_exports.array(external_exports.object({
41838
- seat_id: uuidSchema10,
42135
+ seat_id: uuidSchema11,
41839
42136
  reason: charterDraftSkipReasonSchema
41840
42137
  }).strict())
41841
42138
  }).strict();
41842
42139
  var charterSkipInputSchema = external_exports.object({
41843
- charter_version_id: uuidSchema10
42140
+ charter_version_id: uuidSchema11
41844
42141
  }).strict();
41845
42142
  var charterApplySeatTypeRecommendationInputSchema = external_exports.object({
41846
- charter_version_id: uuidSchema10
42143
+ charter_version_id: uuidSchema11
41847
42144
  }).strict();
41848
42145
  var charterSignManifestInputSchema = external_exports.object({
41849
- charter_version_id: uuidSchema10
42146
+ charter_version_id: uuidSchema11
41850
42147
  }).strict();
41851
42148
  var pendingConfirmationSchema = external_exports.object({
41852
42149
  confirmationId: external_exports.string().min(1),
@@ -41890,13 +42187,13 @@ var confirmationListInputSchema = external_exports.object({
41890
42187
  limit: external_exports.number().int().min(1).max(200).optional()
41891
42188
  }).strict();
41892
42189
  var confirmationSummarySchema = external_exports.object({
41893
- id: uuidSchema10,
42190
+ id: uuidSchema11,
41894
42191
  command_id: external_exports.string(),
41895
42192
  redacted_args: external_exports.unknown(),
41896
42193
  actor_kind: external_exports.enum(["user", "agent", "system"]),
41897
42194
  source: external_exports.string(),
41898
42195
  scope_kind: external_exports.enum(["tenant_admin", "tenant", "seat"]),
41899
- seat_id: uuidSchema10.nullable(),
42196
+ seat_id: uuidSchema11.nullable(),
41900
42197
  seat_name: external_exports.string().nullable(),
41901
42198
  seat_type: external_exports.enum(["human", "agent", "hybrid"]).nullable(),
41902
42199
  risk_level: external_exports.enum(["normal", "sensitive", "dangerous"]),
@@ -41908,28 +42205,28 @@ var confirmationListOutputSchema = external_exports.object({
41908
42205
  confirmations: external_exports.array(confirmationSummarySchema)
41909
42206
  }).strict();
41910
42207
  var credentialIngressInputSchema = external_exports.object({
41911
- seat_id: uuidSchema10.optional(),
42208
+ seat_id: uuidSchema11.optional(),
41912
42209
  provider: external_exports.string().trim().min(1),
41913
42210
  scope_description: external_exports.string().trim().min(1),
41914
42211
  secret_name: external_exports.string().trim().min(1),
41915
42212
  secret: external_exports.string().trim().min(1)
41916
42213
  }).strict();
41917
42214
  var credentialIngressOutputSchema = external_exports.object({
41918
- credential_id: uuidSchema10,
42215
+ credential_id: uuidSchema11,
41919
42216
  provider: external_exports.string().min(1),
41920
- seat_id: uuidSchema10.nullable()
42217
+ seat_id: uuidSchema11.nullable()
41921
42218
  }).strict();
41922
42219
  var agentGoLiveInputSchema = external_exports.object({
41923
- seat_id: uuidSchema10,
41924
- charter_version_id: uuidSchema10
42220
+ seat_id: uuidSchema11,
42221
+ charter_version_id: uuidSchema11
41925
42222
  }).strict();
41926
42223
  var agentGoLiveOutputSchema = external_exports.object({
41927
- seat_id: uuidSchema10,
41928
- charter_version_id: uuidSchema10,
42224
+ seat_id: uuidSchema11,
42225
+ charter_version_id: uuidSchema11,
41929
42226
  status: external_exports.literal("live")
41930
42227
  }).strict();
41931
42228
  var compassSetInputSchema = external_exports.object({
41932
- draft_id: uuidSchema10.optional(),
42229
+ draft_id: uuidSchema11.optional(),
41933
42230
  doc: compassDraftSchema.optional(),
41934
42231
  approve: external_exports.boolean().default(false)
41935
42232
  }).strict().refine((input) => Boolean(input.draft_id) !== Boolean(input.doc), {
@@ -41937,7 +42234,7 @@ var compassSetInputSchema = external_exports.object({
41937
42234
  path: ["draft_id"]
41938
42235
  });
41939
42236
  var compassMutationOutputSchema = external_exports.object({
41940
- compass_version_id: uuidSchema10,
42237
+ compass_version_id: uuidSchema11,
41941
42238
  status: external_exports.enum(["draft", "active", "superseded"]),
41942
42239
  version: external_exports.number().int().nonnegative()
41943
42240
  }).strict();
@@ -41945,42 +42242,42 @@ var compassDraftInputSchema = external_exports.object({
41945
42242
  doc: compassDraftSchema
41946
42243
  }).strict();
41947
42244
  var compassUpdateDraftInputSchema = external_exports.object({
41948
- draft_id: uuidSchema10,
42245
+ draft_id: uuidSchema11,
41949
42246
  doc: compassDraftSchema
41950
42247
  }).strict();
41951
42248
  var compassApproveVersionInputSchema = external_exports.object({
41952
- draft_id: uuidSchema10
42249
+ draft_id: uuidSchema11
41953
42250
  }).strict();
41954
42251
  var compassRejectDraftInputSchema = external_exports.object({
41955
- draft_id: uuidSchema10
42252
+ draft_id: uuidSchema11
41956
42253
  }).strict();
41957
42254
  var compassAnswerGapInputSchema = external_exports.object({
41958
42255
  gap_id: external_exports.string().min(1),
41959
42256
  answer: external_exports.string().trim().min(1)
41960
42257
  }).strict();
41961
42258
  var seatStaffInputSchema = external_exports.object({
41962
- seat_id: uuidSchema10,
42259
+ seat_id: uuidSchema11,
41963
42260
  occupant: external_exports.discriminatedUnion("type", [
41964
42261
  external_exports.object({ type: external_exports.literal("vacant") }).strict(),
41965
- external_exports.object({ type: external_exports.literal("user"), user_id: uuidSchema10 }).strict(),
41966
- external_exports.object({ type: external_exports.literal("agent"), agent_id: uuidSchema10 }).strict()
42262
+ external_exports.object({ type: external_exports.literal("user"), user_id: uuidSchema11 }).strict(),
42263
+ external_exports.object({ type: external_exports.literal("agent"), agent_id: uuidSchema11 }).strict()
41967
42264
  ])
41968
42265
  }).strict();
41969
42266
  var staffingMutationOutputSchema = external_exports.object({
41970
- seat_id: uuidSchema10,
42267
+ seat_id: uuidSchema11,
41971
42268
  staffed: external_exports.enum(["vacant", "user", "agent"])
41972
42269
  }).strict();
41973
42270
  var staffingAssignUserInputSchema = external_exports.object({
41974
- seat_id: uuidSchema10,
41975
- user_id: uuidSchema10
42271
+ seat_id: uuidSchema11,
42272
+ user_id: uuidSchema11
41976
42273
  }).strict();
41977
42274
  var staffingAssignAgentDryRunInputSchema = external_exports.object({
41978
- seat_id: uuidSchema10,
41979
- agent_id: uuidSchema10
42275
+ seat_id: uuidSchema11,
42276
+ agent_id: uuidSchema11
41980
42277
  }).strict();
41981
42278
  var mcpTokenCreateInputSchema = external_exports.object({
41982
42279
  scope: external_exports.enum(["tenant_admin", "seat"]),
41983
- seat_id: uuidSchema10.optional(),
42280
+ seat_id: uuidSchema11.optional(),
41984
42281
  // DER-830: explicit absolute expiry (kept for back-compat / direct callers).
41985
42282
  // When omitted OR null, the DB default (now() + 90 days) applies — `null` is an
41986
42283
  // accepted "no explicit expiry" signal (existing UI/MCP callers pass it), so it
@@ -42024,17 +42321,17 @@ var mcpTokenCreateInputSchema = external_exports.object({
42024
42321
  }
42025
42322
  });
42026
42323
  var mcpTokenCreateOutputSchema = external_exports.object({
42027
- token_id: uuidSchema10,
42324
+ token_id: uuidSchema11,
42028
42325
  token: external_exports.string().min(1),
42029
42326
  scope: external_exports.enum(["tenant_admin", "seat"]),
42030
- seat_id: uuidSchema10.nullable()
42327
+ seat_id: uuidSchema11.nullable()
42031
42328
  }).strict();
42032
42329
  var mcpTokenRevokeInputSchema = external_exports.object({
42033
- token_id: uuidSchema10,
42034
- seat_id: uuidSchema10.optional()
42330
+ token_id: uuidSchema11,
42331
+ seat_id: uuidSchema11.optional()
42035
42332
  }).strict();
42036
42333
  var mcpTokenRevokeOutputSchema = external_exports.object({
42037
- token_id: uuidSchema10,
42334
+ token_id: uuidSchema11,
42038
42335
  revoked: external_exports.boolean()
42039
42336
  }).strict();
42040
42337
 
@@ -42047,7 +42344,7 @@ var markNotificationsReadRequestSchema = external_exports.object({
42047
42344
  });
42048
42345
 
42049
42346
  // ../../packages/protocol/src/product-analytics.ts
42050
- var uuidSchema11 = external_exports.string().uuid();
42347
+ var uuidSchema12 = external_exports.string().uuid();
42051
42348
  var safeNameSchema = external_exports.string().trim().min(1).max(120).regex(/^[a-z][a-z0-9._:-]*$/);
42052
42349
  var safeSurfaceSchema = external_exports.string().trim().min(1).max(80).regex(/^[a-z][a-z0-9_-]*$/);
42053
42350
  var routeSegmentSchema = /^(?:[a-z][a-z0-9-]{0,31}|:[a-z][a-z0-9_]{0,31}|\*)$/;
@@ -42110,8 +42407,8 @@ var recommendationOutcomeStatusSchema = external_exports.enum([
42110
42407
  ]);
42111
42408
  var durationMsSchema = external_exports.number().int().nonnegative().max(24 * 60 * 60 * 1e3).optional();
42112
42409
  var productEventInputSchema = external_exports.object({
42113
- tenant_id: uuidSchema11,
42114
- user_id: uuidSchema11.optional(),
42410
+ tenant_id: uuidSchema12,
42411
+ user_id: uuidSchema12.optional(),
42115
42412
  source: analyticsSourceSchema,
42116
42413
  event_name: safeNameSchema,
42117
42414
  route_template: routeTemplateSchema.optional(),
@@ -42120,8 +42417,8 @@ var productEventInputSchema = external_exports.object({
42120
42417
  occurred_at: external_exports.string().datetime({ offset: true }).optional()
42121
42418
  }).strict();
42122
42419
  var pageViewInputSchema = external_exports.object({
42123
- tenant_id: uuidSchema11,
42124
- user_id: uuidSchema11.optional(),
42420
+ tenant_id: uuidSchema12,
42421
+ user_id: uuidSchema12.optional(),
42125
42422
  route_template: routeTemplateSchema,
42126
42423
  referrer_route_template: routeTemplateSchema.optional(),
42127
42424
  surface: safeSurfaceSchema.default("web"),
@@ -42130,9 +42427,9 @@ var pageViewInputSchema = external_exports.object({
42130
42427
  occurred_at: external_exports.string().datetime({ offset: true }).optional()
42131
42428
  }).strict();
42132
42429
  var commandInvocationInputSchema = external_exports.object({
42133
- tenant_id: uuidSchema11,
42134
- user_id: uuidSchema11.optional(),
42135
- seat_id: uuidSchema11.optional(),
42430
+ tenant_id: uuidSchema12,
42431
+ user_id: uuidSchema12.optional(),
42432
+ seat_id: uuidSchema12.optional(),
42136
42433
  command_id: safeNameSchema,
42137
42434
  source: analyticsSourceSchema,
42138
42435
  actor_kind: external_exports.enum(["user", "agent", "system"]),
@@ -42141,7 +42438,7 @@ var commandInvocationInputSchema = external_exports.object({
42141
42438
  guard_result: external_exports.enum(["allowed", "denied_manifest", "denied_budget", "escalated", "denied_tenant_policy"]).optional(),
42142
42439
  duration_ms: durationMsSchema,
42143
42440
  confirmation_required: external_exports.boolean().optional(),
42144
- request_id: uuidSchema11.optional(),
42441
+ request_id: uuidSchema12.optional(),
42145
42442
  properties: analyticsPropertiesSchema.optional(),
42146
42443
  occurred_at: external_exports.string().datetime({ offset: true }).optional()
42147
42444
  }).strict().superRefine((value, ctx) => {
@@ -42154,8 +42451,8 @@ var commandInvocationInputSchema = external_exports.object({
42154
42451
  }
42155
42452
  });
42156
42453
  var onboardingMilestoneInputSchema = external_exports.object({
42157
- tenant_id: uuidSchema11,
42158
- user_id: uuidSchema11.optional(),
42454
+ tenant_id: uuidSchema12,
42455
+ user_id: uuidSchema12.optional(),
42159
42456
  milestone: safeNameSchema,
42160
42457
  status: analyticsOutcomeStatusSchema,
42161
42458
  step_index: external_exports.number().int().nonnegative().max(100).optional(),
@@ -42164,19 +42461,19 @@ var onboardingMilestoneInputSchema = external_exports.object({
42164
42461
  occurred_at: external_exports.string().datetime({ offset: true }).optional()
42165
42462
  }).strict();
42166
42463
  var recommendationEventInputSchema = external_exports.object({
42167
- tenant_id: uuidSchema11,
42168
- user_id: uuidSchema11.optional(),
42464
+ tenant_id: uuidSchema12,
42465
+ user_id: uuidSchema12.optional(),
42169
42466
  recommendation_type: safeNameSchema,
42170
42467
  source_surface: safeSurfaceSchema,
42171
42468
  status: recommendationOutcomeStatusSchema,
42172
42469
  target_kind: safeSurfaceSchema.optional(),
42173
- target_id: uuidSchema11.optional(),
42470
+ target_id: uuidSchema12.optional(),
42174
42471
  properties: analyticsPropertiesSchema.optional(),
42175
42472
  occurred_at: external_exports.string().datetime({ offset: true }).optional()
42176
42473
  }).strict();
42177
42474
 
42178
42475
  // ../../packages/protocol/src/reads.ts
42179
- var uuidSchema12 = external_exports.string().uuid();
42476
+ var uuidSchema13 = external_exports.string().uuid();
42180
42477
  var isoDateTime3 = external_exports.string().datetime({ offset: true });
42181
42478
  var seatTypeSchema = external_exports.enum(["human", "agent", "hybrid"]);
42182
42479
  var seatStatusSchema = external_exports.enum(["draft", "active", "vacant", "decommissioned"]);
@@ -42191,13 +42488,13 @@ var credentialStatusSchema = external_exports.enum(["active", "revoked"]);
42191
42488
  var runStatusSchema = external_exports.enum(["running", "succeeded", "failed", "timeout", "cancelled"]);
42192
42489
  var graphGetInputSchema = external_exports.object({}).strict();
42193
42490
  var graphNodeSchema = external_exports.object({
42194
- seat_id: uuidSchema12,
42491
+ seat_id: uuidSchema13,
42195
42492
  name: external_exports.string(),
42196
42493
  seat_type: seatTypeSchema,
42197
42494
  status: seatStatusSchema,
42198
- parent_seat_id: uuidSchema12.nullable(),
42495
+ parent_seat_id: uuidSchema13.nullable(),
42199
42496
  is_root: external_exports.boolean(),
42200
- steward_seat_id: uuidSchema12.nullable(),
42497
+ steward_seat_id: uuidSchema13.nullable(),
42201
42498
  occupant: external_exports.object({
42202
42499
  kind: external_exports.enum(["user", "agent"]),
42203
42500
  label: external_exports.string(),
@@ -42210,11 +42507,11 @@ var graphNodeSchema = external_exports.object({
42210
42507
  is_peer: external_exports.boolean()
42211
42508
  }).strict();
42212
42509
  var graphEdgeSchema = external_exports.object({
42213
- parent_seat_id: uuidSchema12,
42214
- child_seat_id: uuidSchema12
42510
+ parent_seat_id: uuidSchema13,
42511
+ child_seat_id: uuidSchema13
42215
42512
  }).strict();
42216
42513
  var graphGetOutputSchema = external_exports.object({
42217
- root_seat_id: uuidSchema12.nullable(),
42514
+ root_seat_id: uuidSchema13.nullable(),
42218
42515
  nodes: external_exports.array(graphNodeSchema),
42219
42516
  edges: external_exports.array(graphEdgeSchema),
42220
42517
  status_rollups: external_exports.object({
@@ -42226,32 +42523,32 @@ var graphGetOutputSchema = external_exports.object({
42226
42523
  }).strict()
42227
42524
  }).strict();
42228
42525
  var seatGetInputSchema = external_exports.object({
42229
- seat_id: uuidSchema12
42526
+ seat_id: uuidSchema13
42230
42527
  }).strict();
42231
42528
  var seatGetOutputSchema = external_exports.object({
42232
- seat_id: uuidSchema12,
42529
+ seat_id: uuidSchema13,
42233
42530
  name: external_exports.string(),
42234
42531
  seat_type: seatTypeSchema,
42235
42532
  status: seatStatusSchema,
42236
42533
  purpose: external_exports.string().nullable(),
42237
- parent_seat_id: uuidSchema12.nullable(),
42534
+ parent_seat_id: uuidSchema13.nullable(),
42238
42535
  steward_chain: external_exports.array(external_exports.object({
42239
- seat_id: uuidSchema12,
42536
+ seat_id: uuidSchema13,
42240
42537
  name: external_exports.string()
42241
42538
  }).strict()),
42242
42539
  occupancies: external_exports.array(external_exports.object({
42243
- occupancy_id: uuidSchema12,
42540
+ occupancy_id: uuidSchema13,
42244
42541
  occupant_type: external_exports.enum(["user", "agent"]),
42245
42542
  label: external_exports.string(),
42246
42543
  started_at: isoDateTime3,
42247
42544
  ended_at: isoDateTime3.nullable()
42248
42545
  }).strict()),
42249
- active_charter_version_id: uuidSchema12.nullable(),
42250
- draft_charter_version_id: uuidSchema12.nullable(),
42546
+ active_charter_version_id: uuidSchema13.nullable(),
42547
+ draft_charter_version_id: uuidSchema13.nullable(),
42251
42548
  agent_status: agentStatusEnum2.nullable(),
42252
42549
  agent_lane: agentLaneSchema2.nullable(),
42253
42550
  mcp_tokens: external_exports.array(external_exports.object({
42254
- token_id: uuidSchema12,
42551
+ token_id: uuidSchema13,
42255
42552
  scope: mcpScopeSchema,
42256
42553
  created_at: isoDateTime3,
42257
42554
  last_seen_at: isoDateTime3.nullable(),
@@ -42261,7 +42558,7 @@ var seatGetOutputSchema = external_exports.object({
42261
42558
  revoked_at: isoDateTime3.nullable()
42262
42559
  }).strict()),
42263
42560
  credentials: external_exports.array(external_exports.object({
42264
- credential_id: uuidSchema12,
42561
+ credential_id: uuidSchema13,
42265
42562
  provider: external_exports.string(),
42266
42563
  status: credentialStatusSchema
42267
42564
  }).strict()),
@@ -42273,12 +42570,12 @@ var seatGetOutputSchema = external_exports.object({
42273
42570
  }).strict()
42274
42571
  }).strict();
42275
42572
  var charterListInputSchema = external_exports.object({
42276
- seat_id: uuidSchema12.optional(),
42573
+ seat_id: uuidSchema13.optional(),
42277
42574
  status: charterStatusSchema.optional()
42278
42575
  }).strict();
42279
42576
  var charterSummarySchema = external_exports.object({
42280
- charter_version_id: uuidSchema12,
42281
- seat_id: uuidSchema12,
42577
+ charter_version_id: uuidSchema13,
42578
+ seat_id: uuidSchema13,
42282
42579
  version: external_exports.number().int().nonnegative(),
42283
42580
  status: charterStatusSchema,
42284
42581
  created_at: isoDateTime3,
@@ -42288,11 +42585,11 @@ var charterListOutputSchema = external_exports.object({
42288
42585
  charters: external_exports.array(charterSummarySchema)
42289
42586
  }).strict();
42290
42587
  var charterGetInputSchema = external_exports.object({
42291
- charter_version_id: uuidSchema12
42588
+ charter_version_id: uuidSchema13
42292
42589
  }).strict();
42293
42590
  var charterGetOutputSchema = external_exports.object({
42294
- charter_version_id: uuidSchema12,
42295
- seat_id: uuidSchema12,
42591
+ charter_version_id: uuidSchema13,
42592
+ seat_id: uuidSchema13,
42296
42593
  version: external_exports.number().int().nonnegative(),
42297
42594
  status: charterStatusSchema,
42298
42595
  created_at: isoDateTime3,
@@ -42306,7 +42603,7 @@ var charterGetOutputSchema = external_exports.object({
42306
42603
  }).strict();
42307
42604
  var compassGetCurrentInputSchema = external_exports.object({}).strict();
42308
42605
  var compassVersionRefSchema = external_exports.object({
42309
- compass_version_id: uuidSchema12,
42606
+ compass_version_id: uuidSchema13,
42310
42607
  version: external_exports.number().int().nonnegative(),
42311
42608
  status: compassStatusSchema,
42312
42609
  doc: external_exports.unknown()
@@ -42317,7 +42614,7 @@ var compassGetCurrentOutputSchema = external_exports.object({
42317
42614
  // Sources expose document id and kind only. The underlying storage_ref can
42318
42615
  // be a local file path, so it is never surfaced (redaction rule).
42319
42616
  sources: external_exports.array(external_exports.object({
42320
- document_id: uuidSchema12,
42617
+ document_id: uuidSchema13,
42321
42618
  kind: external_exports.string()
42322
42619
  }).strict())
42323
42620
  }).strict();
@@ -42332,31 +42629,31 @@ var compassGapSchema = external_exports.object({
42332
42629
  answer: external_exports.string().nullable()
42333
42630
  }).strict();
42334
42631
  var compassListGapsOutputSchema = external_exports.object({
42335
- compass_version_id: uuidSchema12.nullable(),
42632
+ compass_version_id: uuidSchema13.nullable(),
42336
42633
  unanswered: external_exports.array(compassGapSchema),
42337
42634
  answered: external_exports.array(compassGapSchema)
42338
42635
  }).strict();
42339
42636
  var agentStatusInputSchema = external_exports.object({
42340
- seat_id: uuidSchema12
42637
+ seat_id: uuidSchema13
42341
42638
  }).strict();
42342
42639
  var agentStatusOutputSchema = external_exports.object({
42343
- seat_id: uuidSchema12,
42640
+ seat_id: uuidSchema13,
42344
42641
  // DER-786 (C7): `has_agent` is true whenever a setup agent exists for the seat
42345
42642
  // — including a draft setup that has no occupancy yet — so it agrees with
42346
42643
  // agent_setup.get. `lifecycle` is the shared cross-surface term derived from
42347
42644
  // `status` (none | draft_setup | dry_run | live | …).
42348
42645
  has_agent: external_exports.boolean(),
42349
42646
  lifecycle: agentLifecycleSchema,
42350
- agent_id: uuidSchema12.nullable(),
42647
+ agent_id: uuidSchema13.nullable(),
42351
42648
  kind: agentKindSchema2.nullable(),
42352
42649
  display_name: external_exports.string().nullable(),
42353
42650
  lane: agentLaneSchema2.nullable(),
42354
42651
  status: agentStatusEnum2.nullable(),
42355
42652
  schedule_cron: external_exports.string().nullable(),
42356
42653
  live: external_exports.boolean(),
42357
- charter_version_id: uuidSchema12.nullable(),
42654
+ charter_version_id: uuidSchema13.nullable(),
42358
42655
  steward_chain: external_exports.array(external_exports.object({
42359
- seat_id: uuidSchema12,
42656
+ seat_id: uuidSchema13,
42360
42657
  name: external_exports.string()
42361
42658
  }).strict()),
42362
42659
  steward_chain_resolves_to_human: external_exports.boolean(),
@@ -42368,7 +42665,7 @@ var agentStatusOutputSchema = external_exports.object({
42368
42665
  }).strict();
42369
42666
  var agentListFleetInputSchema = external_exports.object({}).strict();
42370
42667
  var fleetOverviewRowSchema = external_exports.object({
42371
- seat_id: uuidSchema12,
42668
+ seat_id: uuidSchema13,
42372
42669
  seat_name: external_exports.string(),
42373
42670
  seat_path: external_exports.string(),
42374
42671
  lane: agentLaneSchema2.nullable(),
@@ -42385,7 +42682,7 @@ var agentListFleetOutputSchema = external_exports.object({
42385
42682
  agents: external_exports.array(fleetOverviewRowSchema)
42386
42683
  }).strict();
42387
42684
  var runErrorLogSchema = external_exports.object({
42388
- error_log_id: uuidSchema12,
42685
+ error_log_id: uuidSchema13,
42389
42686
  source: external_exports.enum(["run", "llm", "tool", "mcp", "runner", "integration", "job", "web"]),
42390
42687
  severity: external_exports.enum(["warning", "error", "critical"]),
42391
42688
  code: external_exports.string().nullable(),
@@ -42398,9 +42695,9 @@ var agentFleetDigestInputSchema = external_exports.object({
42398
42695
  error_limit: external_exports.number().int().min(1).max(100).default(50)
42399
42696
  }).strict();
42400
42697
  var fleetDigestRunSchema = external_exports.object({
42401
- run_id: uuidSchema12,
42402
- seat_id: uuidSchema12,
42403
- agent_id: uuidSchema12,
42698
+ run_id: uuidSchema13,
42699
+ seat_id: uuidSchema13,
42700
+ agent_id: uuidSchema13,
42404
42701
  status: runStatusSchema,
42405
42702
  lane: agentLaneSchema2,
42406
42703
  model: external_exports.string(),
@@ -42410,22 +42707,22 @@ var fleetDigestRunSchema = external_exports.object({
42410
42707
  error_logs: external_exports.array(runErrorLogSchema)
42411
42708
  }).strict();
42412
42709
  var fleetDigestErrorSchema = runErrorLogSchema.extend({
42413
- seat_id: uuidSchema12.nullable(),
42414
- agent_id: uuidSchema12.nullable(),
42415
- run_id: uuidSchema12.nullable(),
42710
+ seat_id: uuidSchema13.nullable(),
42711
+ agent_id: uuidSchema13.nullable(),
42712
+ run_id: uuidSchema13.nullable(),
42416
42713
  disposition: external_exports.enum(["active", "acknowledged", "resolved", "superseded"])
42417
42714
  }).strict();
42418
42715
  var fleetDigestNotificationErrorSchema = external_exports.object({
42419
- notification_id: uuidSchema12,
42716
+ notification_id: uuidSchema13,
42420
42717
  kind: external_exports.string(),
42421
42718
  channel: external_exports.string(),
42422
42719
  status: external_exports.string(),
42423
42720
  provider: external_exports.string(),
42424
42721
  error_message: external_exports.string().nullable(),
42425
- error_log_id: uuidSchema12.nullable(),
42722
+ error_log_id: uuidSchema13.nullable(),
42426
42723
  source: external_exports.enum(["run", "llm", "tool", "mcp", "runner", "integration", "job", "web"]).nullable(),
42427
- seat_id: uuidSchema12.nullable(),
42428
- run_id: uuidSchema12.nullable(),
42724
+ seat_id: uuidSchema13.nullable(),
42725
+ run_id: uuidSchema13.nullable(),
42429
42726
  created_at: isoDateTime3
42430
42727
  }).strict();
42431
42728
  var fleetDigestAgentSchema = fleetOverviewRowSchema.extend({
@@ -42474,17 +42771,17 @@ var seatTrustSummarySchema = external_exports.object({
42474
42771
  last_activity_at: isoDateTime3.nullable()
42475
42772
  }).strict();
42476
42773
  var agentListRunsInputSchema = external_exports.object({
42477
- seat_id: uuidSchema12,
42774
+ seat_id: uuidSchema13,
42478
42775
  // Conservative, bounded page size; the timeline is a recent-history view.
42479
42776
  limit: external_exports.number().int().min(1).max(200).default(50)
42480
42777
  }).strict();
42481
42778
  var agentGetRunInputSchema = external_exports.object({
42482
- seat_id: uuidSchema12,
42483
- run_id: uuidSchema12
42779
+ seat_id: uuidSchema13,
42780
+ run_id: uuidSchema13
42484
42781
  }).strict();
42485
42782
  var seatRunSchema = external_exports.object({
42486
- run_id: uuidSchema12,
42487
- agent_id: uuidSchema12,
42783
+ run_id: uuidSchema13,
42784
+ agent_id: uuidSchema13,
42488
42785
  agent_display_name: external_exports.string().nullable(),
42489
42786
  status: runStatusSchema,
42490
42787
  lane: agentLaneSchema2,
@@ -42497,16 +42794,16 @@ var seatRunSchema = external_exports.object({
42497
42794
  skill_activation_count: external_exports.number().int().nonnegative()
42498
42795
  }).strict();
42499
42796
  var seatRunDetailSchema = seatRunSchema.extend({
42500
- task_id: uuidSchema12.nullable(),
42501
- work_order_id: uuidSchema12.nullable(),
42797
+ task_id: uuidSchema13.nullable(),
42798
+ work_order_id: uuidSchema13.nullable(),
42502
42799
  transcript_ref: external_exports.string(),
42503
42800
  input_tokens: external_exports.number().int().nonnegative(),
42504
42801
  output_tokens: external_exports.number().int().nonnegative(),
42505
42802
  outcome: external_exports.record(external_exports.string(), external_exports.unknown()),
42506
42803
  error_logs: external_exports.array(runErrorLogSchema),
42507
42804
  skill_activations: external_exports.array(external_exports.object({
42508
- skill_activation_id: uuidSchema12,
42509
- skill_version_id: uuidSchema12,
42805
+ skill_activation_id: uuidSchema13,
42806
+ skill_version_id: uuidSchema13,
42510
42807
  slug: external_exports.string().min(1),
42511
42808
  name: external_exports.string().min(1),
42512
42809
  version: external_exports.number().int().positive(),
@@ -42520,23 +42817,23 @@ var seatRunDetailSchema = seatRunSchema.extend({
42520
42817
  }).strict())
42521
42818
  }).strict();
42522
42819
  var agentListRunsOutputSchema = external_exports.object({
42523
- seat_id: uuidSchema12,
42820
+ seat_id: uuidSchema13,
42524
42821
  summary: seatTrustSummarySchema,
42525
42822
  runs: external_exports.array(seatRunSchema)
42526
42823
  }).strict();
42527
42824
  var agentGetRunOutputSchema = external_exports.object({
42528
- seat_id: uuidSchema12,
42825
+ seat_id: uuidSchema13,
42529
42826
  run: seatRunDetailSchema
42530
42827
  }).strict();
42531
42828
  var agentListToolCallsInputSchema = external_exports.object({
42532
- seat_id: uuidSchema12,
42829
+ seat_id: uuidSchema13,
42533
42830
  limit: external_exports.number().int().min(1).max(200).default(50),
42534
42831
  // When true, return only HELD (non-allowed) tool calls — the governance view.
42535
42832
  held_only: external_exports.boolean().default(false)
42536
42833
  }).strict();
42537
42834
  var seatToolCallSchema = external_exports.object({
42538
- tool_call_id: uuidSchema12,
42539
- run_id: uuidSchema12.nullable(),
42835
+ tool_call_id: uuidSchema13,
42836
+ run_id: uuidSchema13.nullable(),
42540
42837
  tool_name: external_exports.string(),
42541
42838
  guard_result: guardResultSchema,
42542
42839
  manifest_clause: external_exports.string().nullable(),
@@ -42545,7 +42842,7 @@ var seatToolCallSchema = external_exports.object({
42545
42842
  finished_at: isoDateTime3.nullable()
42546
42843
  }).strict();
42547
42844
  var agentListToolCallsOutputSchema = external_exports.object({
42548
- seat_id: uuidSchema12,
42845
+ seat_id: uuidSchema13,
42549
42846
  summary: seatTrustSummarySchema,
42550
42847
  tool_calls: external_exports.array(seatToolCallSchema)
42551
42848
  }).strict();
@@ -42556,16 +42853,16 @@ var deliverableLinkSchema = external_exports.object({
42556
42853
  kind: external_exports.enum(["internal", "linear", "github", "external"])
42557
42854
  }).strict();
42558
42855
  var deliverableIdSchema = external_exports.union([
42559
- uuidSchema12,
42856
+ uuidSchema13,
42560
42857
  external_exports.string().regex(/^run:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i)
42561
42858
  ]);
42562
42859
  var deliverableRowSchema = external_exports.object({
42563
42860
  id: deliverableIdSchema,
42564
- seat_id: uuidSchema12,
42565
- agent_id: uuidSchema12.nullable(),
42566
- run_id: uuidSchema12.nullable(),
42567
- task_id: uuidSchema12.nullable(),
42568
- work_order_id: uuidSchema12.nullable(),
42861
+ seat_id: uuidSchema13,
42862
+ agent_id: uuidSchema13.nullable(),
42863
+ run_id: uuidSchema13.nullable(),
42864
+ task_id: uuidSchema13.nullable(),
42865
+ work_order_id: uuidSchema13.nullable(),
42569
42866
  kind: deliverableKindSchema,
42570
42867
  title: external_exports.string(),
42571
42868
  summary: external_exports.string().nullable(),
@@ -42578,13 +42875,13 @@ var deliverableRowSchema = external_exports.object({
42578
42875
  links: external_exports.array(deliverableLinkSchema)
42579
42876
  }).strict();
42580
42877
  var deliverableListInputSchema = external_exports.object({
42581
- seat_id: uuidSchema12
42878
+ seat_id: uuidSchema13
42582
42879
  }).strict();
42583
42880
  var deliverableListOutputSchema = external_exports.object({
42584
42881
  deliverables: external_exports.array(deliverableRowSchema)
42585
42882
  }).strict();
42586
42883
  var deliverableGetInputSchema = external_exports.object({
42587
- seat_id: uuidSchema12,
42884
+ seat_id: uuidSchema13,
42588
42885
  deliverable_id: deliverableIdSchema
42589
42886
  }).strict();
42590
42887
  var deliverableGetOutputSchema = external_exports.object({
@@ -42592,12 +42889,12 @@ var deliverableGetOutputSchema = external_exports.object({
42592
42889
  }).strict();
42593
42890
  var mcpTokenListInputSchema = external_exports.object({
42594
42891
  include_revoked: external_exports.boolean().default(false),
42595
- seat_id: uuidSchema12.optional()
42892
+ seat_id: uuidSchema13.optional()
42596
42893
  }).strict();
42597
42894
  var mcpTokenMetadataSchema = external_exports.object({
42598
- token_id: uuidSchema12,
42895
+ token_id: uuidSchema13,
42599
42896
  scope: mcpScopeSchema,
42600
- seat_id: uuidSchema12.nullable(),
42897
+ seat_id: uuidSchema13.nullable(),
42601
42898
  created_at: isoDateTime3,
42602
42899
  last_seen_at: isoDateTime3.nullable(),
42603
42900
  // DER-830: expires_at is now always present (the column is NOT NULL).
@@ -42611,29 +42908,29 @@ var mcpTokenListOutputSchema = external_exports.object({
42611
42908
  tokens: external_exports.array(mcpTokenMetadataSchema)
42612
42909
  }).strict();
42613
42910
  var errorLogListInputSchema = external_exports.object({
42614
- seat_id: uuidSchema12.optional(),
42911
+ seat_id: uuidSchema13.optional(),
42615
42912
  source: external_exports.enum(["run", "llm", "tool", "mcp", "runner", "integration", "job", "web"]).optional(),
42616
42913
  severity: external_exports.enum(["warning", "error", "critical"]).optional(),
42617
42914
  resolved: external_exports.enum(["active", "acknowledged", "resolved", "all"]).default("active"),
42618
42915
  limit: external_exports.number().int().min(1).max(200).default(50)
42619
42916
  }).strict();
42620
42917
  var errorLogListItemSchema = external_exports.object({
42621
- error_log_id: uuidSchema12,
42918
+ error_log_id: uuidSchema13,
42622
42919
  source: external_exports.enum(["run", "llm", "tool", "mcp", "runner", "integration", "job", "web"]),
42623
42920
  severity: external_exports.enum(["warning", "error", "critical"]),
42624
42921
  code: external_exports.string().nullable(),
42625
42922
  message: external_exports.string(),
42626
- seat_id: uuidSchema12.nullable(),
42627
- agent_id: uuidSchema12.nullable(),
42628
- run_id: uuidSchema12.nullable(),
42923
+ seat_id: uuidSchema13.nullable(),
42924
+ agent_id: uuidSchema13.nullable(),
42925
+ run_id: uuidSchema13.nullable(),
42629
42926
  disposition: external_exports.enum(["active", "acknowledged", "resolved", "superseded"]),
42630
42927
  resolved_at: isoDateTime3.nullable(),
42631
- resolved_by: uuidSchema12.nullable(),
42928
+ resolved_by: uuidSchema13.nullable(),
42632
42929
  resolution_reason: external_exports.string().nullable(),
42633
- linked_task_id: uuidSchema12.nullable(),
42634
- linked_issue_id: uuidSchema12.nullable(),
42930
+ linked_task_id: uuidSchema13.nullable(),
42931
+ linked_issue_id: uuidSchema13.nullable(),
42635
42932
  linked_pr_ref: external_exports.string().nullable(),
42636
- superseded_by_id: uuidSchema12.nullable(),
42933
+ superseded_by_id: uuidSchema13.nullable(),
42637
42934
  created_at: isoDateTime3
42638
42935
  }).strict();
42639
42936
  var errorLogListOutputSchema = external_exports.object({
@@ -42641,29 +42938,29 @@ var errorLogListOutputSchema = external_exports.object({
42641
42938
  total: external_exports.number().int().nonnegative()
42642
42939
  }).strict();
42643
42940
  var errorLogResolveInputSchema = external_exports.object({
42644
- error_log_id: uuidSchema12,
42941
+ error_log_id: uuidSchema13,
42645
42942
  reason: external_exports.string().trim().min(1),
42646
42943
  disposition: external_exports.enum(["acknowledged", "resolved"]).default("acknowledged"),
42647
- linked_task_id: uuidSchema12.optional(),
42648
- linked_issue_id: uuidSchema12.optional(),
42944
+ linked_task_id: uuidSchema13.optional(),
42945
+ linked_issue_id: uuidSchema13.optional(),
42649
42946
  linked_pr_ref: external_exports.string().trim().min(1).optional()
42650
42947
  }).strict();
42651
42948
  var errorLogResolveOutputSchema = external_exports.object({
42652
- error_log_id: uuidSchema12,
42949
+ error_log_id: uuidSchema13,
42653
42950
  disposition: external_exports.enum(["acknowledged", "resolved"]),
42654
42951
  resolved_at: isoDateTime3
42655
42952
  }).strict();
42656
42953
  var errorLogSupersedeInputSchema = external_exports.object({
42657
- error_log_id: uuidSchema12,
42658
- new_error_log_id: uuidSchema12,
42954
+ error_log_id: uuidSchema13,
42955
+ new_error_log_id: uuidSchema13,
42659
42956
  reason: external_exports.string().trim().min(1),
42660
- linked_task_id: uuidSchema12.optional(),
42661
- linked_issue_id: uuidSchema12.optional(),
42957
+ linked_task_id: uuidSchema13.optional(),
42958
+ linked_issue_id: uuidSchema13.optional(),
42662
42959
  linked_pr_ref: external_exports.string().trim().min(1).optional()
42663
42960
  }).strict();
42664
42961
  var errorLogSupersedeOutputSchema = external_exports.object({
42665
- error_log_id: uuidSchema12,
42666
- superseded_by_id: uuidSchema12,
42962
+ error_log_id: uuidSchema13,
42963
+ superseded_by_id: uuidSchema13,
42667
42964
  disposition: external_exports.literal("superseded"),
42668
42965
  resolved_at: isoDateTime3
42669
42966
  }).strict();
@@ -43009,13 +43306,13 @@ var tenantRenameOutputSchema = external_exports.object({
43009
43306
  }).strict();
43010
43307
 
43011
43308
  // ../../packages/protocol/src/system-health.ts
43012
- var uuidSchema13 = external_exports.string().uuid();
43309
+ var uuidSchema14 = external_exports.string().uuid();
43013
43310
  var isoDateTime5 = external_exports.string().datetime({ offset: true });
43014
43311
  var systemHealthCallerKindSchema = external_exports.enum(["tenant_admin", "member", "seat_token"]);
43015
43312
  var systemHealthCallerSchema = external_exports.object({
43016
43313
  kind: systemHealthCallerKindSchema,
43017
- seat_id: uuidSchema13.optional(),
43018
- seat_ids: external_exports.array(uuidSchema13).min(1).optional()
43314
+ seat_id: uuidSchema14.optional(),
43315
+ seat_ids: external_exports.array(uuidSchema14).min(1).optional()
43019
43316
  }).strict();
43020
43317
  var systemHealthVerdictSchema = external_exports.enum(["healthy", "degraded", "blocked"]);
43021
43318
  var systemHealthSeveritySchema = external_exports.enum(["info", "warning", "critical"]);
@@ -43053,18 +43350,18 @@ var systemHealthFindingSchema = external_exports.object({
43053
43350
  summary: external_exports.string().min(1),
43054
43351
  detail: external_exports.string().min(1),
43055
43352
  remediation: systemHealthActionSchema,
43056
- seat_id: uuidSchema13.nullable(),
43057
- goal_id: uuidSchema13.nullable(),
43058
- run_id: uuidSchema13.nullable(),
43059
- issue_id: uuidSchema13.nullable(),
43060
- task_id: uuidSchema13.nullable(),
43061
- error_log_id: uuidSchema13.nullable()
43353
+ seat_id: uuidSchema14.nullable(),
43354
+ goal_id: uuidSchema14.nullable(),
43355
+ run_id: uuidSchema14.nullable(),
43356
+ issue_id: uuidSchema14.nullable(),
43357
+ task_id: uuidSchema14.nullable(),
43358
+ error_log_id: uuidSchema14.nullable()
43062
43359
  }).strict();
43063
43360
  var systemHealthScopeSchema = external_exports.object({
43064
43361
  mode: systemHealthScopeModeSchema,
43065
- root_seat_ids: external_exports.array(uuidSchema13),
43066
- included_seat_ids: external_exports.array(uuidSchema13),
43067
- requested_seat_id: uuidSchema13.nullable(),
43362
+ root_seat_ids: external_exports.array(uuidSchema14),
43363
+ included_seat_ids: external_exports.array(uuidSchema14),
43364
+ requested_seat_id: uuidSchema14.nullable(),
43068
43365
  total_seat_count: external_exports.number().int().nonnegative()
43069
43366
  }).strict();
43070
43367
  var systemHealthFleetSectionSchema = external_exports.object({
@@ -43114,7 +43411,7 @@ var systemHealthSectionsSchema = external_exports.object({
43114
43411
  sync: systemHealthSyncSectionSchema
43115
43412
  }).strict();
43116
43413
  var systemHealthInputSchema = external_exports.object({
43117
- seat_id: uuidSchema13.optional()
43414
+ seat_id: uuidSchema14.optional()
43118
43415
  }).strict();
43119
43416
  var systemHealthCheckInputSchema = systemHealthInputSchema.extend({
43120
43417
  caller: systemHealthCallerSchema
@@ -43302,10 +43599,10 @@ var baserowFilteredCountInputSchema = external_exports.object({
43302
43599
  }).strict();
43303
43600
 
43304
43601
  // ../../packages/protocol/src/signal-report.ts
43305
- var uuidSchema14 = external_exports.string().uuid();
43602
+ var uuidSchema15 = external_exports.string().uuid();
43306
43603
  var dateOnlySchema2 = external_exports.string().regex(/^\d{4}-\d{2}-\d{2}$/, "expected YYYY-MM-DD");
43307
43604
  var signalReportInputSchema = external_exports.object({
43308
- measurable_id: uuidSchema14,
43605
+ measurable_id: uuidSchema15,
43309
43606
  value: external_exports.number().finite(),
43310
43607
  // Optional; defaults to the measurable's current period (resolved in the
43311
43608
  // command against the measurable's own cadence via the canonical bounds).
@@ -43316,8 +43613,8 @@ var signalReportInputSchema = external_exports.object({
43316
43613
  confidence: external_exports.enum(["low", "medium", "high"]).optional()
43317
43614
  }).strict();
43318
43615
  var signalReportOutputSchema = external_exports.object({
43319
- reading_id: uuidSchema14,
43320
- measurable_id: uuidSchema14,
43616
+ reading_id: uuidSchema15,
43617
+ measurable_id: uuidSchema15,
43321
43618
  // Always false: an agent-sourced reading is a draft until a human confirms it.
43322
43619
  confirmed: external_exports.literal(false)
43323
43620
  }).strict();
@@ -44588,7 +44885,7 @@ var softwareFactoryBudgetExhaustedEventSchema = external_exports.object({
44588
44885
  }).strict();
44589
44886
 
44590
44887
  // ../../packages/protocol/src/sync-brief.ts
44591
- var uuidSchema15 = external_exports.string().uuid();
44888
+ var uuidSchema16 = external_exports.string().uuid();
44592
44889
  var dateSchema = external_exports.string().regex(/^\d{4}-\d{2}-\d{2}$/);
44593
44890
  var syncBriefGapSchema = external_exports.object({
44594
44891
  section: external_exports.enum(["exceptions", "goal_deltas", "task_review", "friction", "agent_activity"]),
@@ -44601,8 +44898,8 @@ var sectionSchema = (itemSchema) => external_exports.object({
44601
44898
  flagged_gaps: external_exports.array(syncBriefGapSchema)
44602
44899
  }).strict();
44603
44900
  var syncBriefExceptionSchema = external_exports.object({
44604
- measurable_id: uuidSchema15,
44605
- seat_id: uuidSchema15,
44901
+ measurable_id: uuidSchema16,
44902
+ seat_id: uuidSchema16,
44606
44903
  seat_name: external_exports.string().min(1),
44607
44904
  name: external_exports.string().min(1),
44608
44905
  state: external_exports.enum(["risk", "crit", "pending"]),
@@ -44613,8 +44910,8 @@ var syncBriefExceptionSchema = external_exports.object({
44613
44910
  freshness: external_exports.enum(["fresh", "due", "stale", "awaiting_first_reading", "not_expected"]).optional()
44614
44911
  }).strict();
44615
44912
  var syncBriefGoalDeltaSchema = external_exports.object({
44616
- goal_id: uuidSchema15,
44617
- seat_id: uuidSchema15.nullable(),
44913
+ goal_id: uuidSchema16,
44914
+ seat_id: uuidSchema16.nullable(),
44618
44915
  seat_name: external_exports.string().nullable(),
44619
44916
  title: external_exports.string().min(1),
44620
44917
  status: external_exports.enum(["on", "off", "done", "dropped"]),
@@ -44628,22 +44925,22 @@ var syncBriefTaskReviewSchema = external_exports.object({
44628
44925
  previous_done_rate: external_exports.number().min(0).max(1),
44629
44926
  delta: external_exports.number().min(-1).max(1),
44630
44927
  stalled: external_exports.array(external_exports.object({
44631
- task_id: uuidSchema15,
44632
- owner_seat_id: uuidSchema15,
44928
+ task_id: uuidSchema16,
44929
+ owner_seat_id: uuidSchema16,
44633
44930
  owner_seat_name: external_exports.string().min(1),
44634
44931
  title: external_exports.string().min(1),
44635
44932
  due_on: dateSchema,
44636
44933
  stalled_at: external_exports.string().nullable()
44637
44934
  }).strict()),
44638
44935
  overdue_by_owner: external_exports.array(external_exports.object({
44639
- owner_seat_id: uuidSchema15,
44936
+ owner_seat_id: uuidSchema16,
44640
44937
  owner_seat_name: external_exports.string().min(1),
44641
44938
  overdue_count: external_exports.number().int().nonnegative()
44642
44939
  }).strict())
44643
44940
  }).strict();
44644
44941
  var syncBriefIssueSchema = external_exports.object({
44645
- issue_id: uuidSchema15,
44646
- raised_by_seat_id: uuidSchema15,
44942
+ issue_id: uuidSchema16,
44943
+ raised_by_seat_id: uuidSchema16,
44647
44944
  raised_by_seat_name: external_exports.string().min(1),
44648
44945
  summary: external_exports.string().min(1),
44649
44946
  severity: external_exports.enum(["low", "med", "high", "critical"]),
@@ -44660,16 +44957,16 @@ var syncBriefActionItemTrendSchema = external_exports.object({
44660
44957
  has_prior: external_exports.boolean()
44661
44958
  }).strict();
44662
44959
  var syncBriefCascadeAtRiskSchema = external_exports.object({
44663
- goal_id: uuidSchema15,
44960
+ goal_id: uuidSchema16,
44664
44961
  title: external_exports.string().min(1),
44665
- seat_id: uuidSchema15.nullable(),
44962
+ seat_id: uuidSchema16.nullable(),
44666
44963
  progress_pct: external_exports.number().int().min(0).max(100),
44667
44964
  classification: external_exports.enum(["at_risk", "projected_miss"]),
44668
44965
  behind_days: external_exports.number().nullable()
44669
44966
  }).strict();
44670
44967
  var syncBriefAgentActivitySchema = external_exports.object({
44671
- agent_id: uuidSchema15,
44672
- seat_id: uuidSchema15,
44968
+ agent_id: uuidSchema16,
44969
+ seat_id: uuidSchema16,
44673
44970
  seat_name: external_exports.string().min(1),
44674
44971
  run_count: external_exports.number().int().nonnegative(),
44675
44972
  failed_run_count: external_exports.number().int().nonnegative(),
@@ -44681,11 +44978,11 @@ var syncBriefAgentActivitySchema = external_exports.object({
44681
44978
  var syncBriefSchema = external_exports.object({
44682
44979
  schema_version: external_exports.literal(1),
44683
44980
  tenant: external_exports.object({
44684
- id: uuidSchema15,
44981
+ id: uuidSchema16,
44685
44982
  name: external_exports.string().min(1)
44686
44983
  }).strict(),
44687
44984
  cluster: external_exports.object({
44688
- id: uuidSchema15,
44985
+ id: uuidSchema16,
44689
44986
  name: external_exports.string().min(1)
44690
44987
  }).strict().nullable(),
44691
44988
  period: external_exports.object({
@@ -44796,11 +45093,11 @@ var usageSnapshotOutputSchema = external_exports.object({
44796
45093
  }).strict();
44797
45094
 
44798
45095
  // ../../packages/protocol/src/event-payloads.ts
44799
- var uuidSchema16 = external_exports.string().uuid();
45096
+ var uuidSchema17 = external_exports.string().uuid();
44800
45097
  var evidenceSchema = external_exports.array(external_exports.unknown());
44801
45098
  var statusEventPayloadSchema = external_exports.object({
44802
45099
  measurables: external_exports.array(external_exports.object({
44803
- id: uuidSchema16,
45100
+ id: uuidSchema17,
44804
45101
  value: external_exports.number().finite(),
44805
45102
  // DER-1045: an optional, non-secret citation for an agent-proposed reading
44806
45103
  // (signal.report) — where the number came from + the agent's confidence.
@@ -44829,7 +45126,7 @@ var statusEventPayloadSchema = external_exports.object({
44829
45126
  }).strict().optional()
44830
45127
  }).strict()).optional(),
44831
45128
  goals: external_exports.array(external_exports.object({
44832
- id: uuidSchema16,
45129
+ id: uuidSchema17,
44833
45130
  state: external_exports.enum(["on", "off"]),
44834
45131
  note: external_exports.string().min(1).optional()
44835
45132
  }).strict()).optional()
@@ -44842,8 +45139,8 @@ var escalationEventPayloadSchema = external_exports.object({
44842
45139
  }).strict();
44843
45140
  var issueEventPayloadSchema = external_exports.object({
44844
45141
  summary: external_exports.string().min(1),
44845
- blocking_goal_id: uuidSchema16.optional(),
44846
- broken_measurable_id: uuidSchema16.optional(),
45142
+ blocking_goal_id: uuidSchema17.optional(),
45143
+ broken_measurable_id: uuidSchema17.optional(),
44847
45144
  evidence: evidenceSchema,
44848
45145
  severity: external_exports.enum(["low", "med", "high", "critical"])
44849
45146
  }).strict();
@@ -44856,14 +45153,14 @@ var heldToolActionReplaySchema = external_exports.object({
44856
45153
  }).strict();
44857
45154
 
44858
45155
  // ../../packages/protocol/src/operating.ts
44859
- var uuidSchema17 = external_exports.string().uuid();
45156
+ var uuidSchema18 = external_exports.string().uuid();
44860
45157
  var taskListInputSchema = external_exports.object({}).strict();
44861
45158
  var operatingTaskSchema = external_exports.object({
44862
- id: uuidSchema17,
45159
+ id: uuidSchema18,
44863
45160
  title: external_exports.string(),
44864
45161
  description: external_exports.string().nullable(),
44865
- from_seat_id: uuidSchema17.nullable(),
44866
- goal_id: uuidSchema17.nullable(),
45162
+ from_seat_id: uuidSchema18.nullable(),
45163
+ goal_id: uuidSchema18.nullable(),
44867
45164
  acceptance_criteria: external_exports.unknown(),
44868
45165
  due_on: external_exports.string().nullable(),
44869
45166
  status: external_exports.string()
@@ -44872,48 +45169,48 @@ var taskListOutputSchema = external_exports.object({
44872
45169
  tasks: external_exports.array(operatingTaskSchema)
44873
45170
  }).strict();
44874
45171
  var taskAcceptInputSchema = external_exports.object({
44875
- id: uuidSchema17
45172
+ id: uuidSchema18
44876
45173
  }).strict();
44877
45174
  var taskMutationOutputSchema = external_exports.object({
44878
45175
  task: external_exports.object({
44879
- id: uuidSchema17,
45176
+ id: uuidSchema18,
44880
45177
  status: external_exports.string()
44881
45178
  }).strict()
44882
45179
  }).strict();
44883
45180
  var taskDeclineInputSchema = external_exports.object({
44884
- id: uuidSchema17,
45181
+ id: uuidSchema18,
44885
45182
  reason: external_exports.string().min(1)
44886
45183
  }).strict();
44887
45184
  var taskDeclineOutputSchema = external_exports.object({
44888
45185
  task: external_exports.object({
44889
- id: uuidSchema17,
45186
+ id: uuidSchema18,
44890
45187
  status: external_exports.string(),
44891
45188
  decline_reason: external_exports.string()
44892
45189
  }).strict()
44893
45190
  }).strict();
44894
45191
  var taskCompleteInputSchema = external_exports.object({
44895
- id: uuidSchema17,
45192
+ id: uuidSchema18,
44896
45193
  summary: external_exports.string().min(1),
44897
45194
  artifacts: external_exports.unknown().optional()
44898
45195
  }).strict();
44899
45196
  var taskCompleteOutputSchema = external_exports.object({
44900
- task_id: uuidSchema17,
44901
- event_id: uuidSchema17,
45197
+ task_id: uuidSchema18,
45198
+ event_id: uuidSchema18,
44902
45199
  type: external_exports.literal("handoff")
44903
45200
  }).strict();
44904
45201
  var statusRecordOutputSchema = external_exports.object({
44905
- event_id: uuidSchema17,
45202
+ event_id: uuidSchema18,
44906
45203
  type: external_exports.literal("status")
44907
45204
  }).strict();
44908
45205
  var duplicateFrictionCandidateSchema = external_exports.object({
44909
- issue_id: uuidSchema17,
45206
+ issue_id: uuidSchema18,
44910
45207
  summary: external_exports.string().min(1),
44911
45208
  // pg_trgm similarity in [0, 1]; higher is more similar.
44912
45209
  similarity: external_exports.number().min(0).max(1)
44913
45210
  }).strict();
44914
45211
  var frictionFileIssueOutputSchema = external_exports.object({
44915
- event_id: uuidSchema17,
44916
- issue_id: uuidSchema17,
45212
+ event_id: uuidSchema18,
45213
+ issue_id: uuidSchema18,
44917
45214
  type: external_exports.literal("issue"),
44918
45215
  // DER-1522: likely-duplicate candidates detected before creation. Recommend,
44919
45216
  // never block — filing always proceeds; empty when nothing crossed the
@@ -44924,12 +45221,12 @@ var workLogInputSchema = external_exports.object({
44924
45221
  note: external_exports.string().min(1)
44925
45222
  }).strict();
44926
45223
  var workLogOutputSchema = external_exports.object({
44927
- event_id: uuidSchema17,
45224
+ event_id: uuidSchema18,
44928
45225
  type: external_exports.literal("task")
44929
45226
  }).strict();
44930
45227
  var escalationRaiseOutputSchema = external_exports.object({
44931
- event_id: uuidSchema17,
44932
- escalation_id: uuidSchema17,
45228
+ event_id: uuidSchema18,
45229
+ escalation_id: uuidSchema18,
44933
45230
  type: external_exports.literal("escalation")
44934
45231
  }).strict();
44935
45232
  var deliverableKindSchema2 = external_exports.enum(["brief", "work_evidence", "artifact", "report", "other"]);
@@ -44977,7 +45274,7 @@ var deliverableAcceptOutputSchema = external_exports.object({
44977
45274
  }).strict();
44978
45275
 
44979
45276
  // ../../packages/protocol/src/steward.ts
44980
- var uuidSchema18 = external_exports.string().uuid();
45277
+ var uuidSchema19 = external_exports.string().uuid();
44981
45278
  var escalationStatusSchema = external_exports.enum([
44982
45279
  "open",
44983
45280
  "approved",
@@ -44985,21 +45282,21 @@ var escalationStatusSchema = external_exports.enum([
44985
45282
  "converted_to_issue"
44986
45283
  ]);
44987
45284
  var stewardEscalationSchema = external_exports.object({
44988
- id: uuidSchema18,
44989
- seat_id: uuidSchema18,
45285
+ id: uuidSchema19,
45286
+ seat_id: uuidSchema19,
44990
45287
  seat_name: external_exports.string(),
44991
45288
  seat_type: external_exports.enum(["human", "agent", "hybrid"]),
44992
- steward_seat_id: uuidSchema18,
45289
+ steward_seat_id: uuidSchema19,
44993
45290
  steward_seat_name: external_exports.string(),
44994
45291
  reason: external_exports.string(),
44995
45292
  charter_clause: external_exports.string(),
44996
45293
  recommended_action: external_exports.string().nullable(),
44997
45294
  status: escalationStatusSchema,
44998
- decided_by: uuidSchema18.nullable(),
45295
+ decided_by: uuidSchema19.nullable(),
44999
45296
  decided_by_name: external_exports.string().nullable(),
45000
45297
  decided_at: external_exports.string().nullable(),
45001
45298
  decision_note: external_exports.string().nullable(),
45002
- issue_id: uuidSchema18.nullable(),
45299
+ issue_id: uuidSchema19.nullable(),
45003
45300
  created_at: external_exports.string(),
45004
45301
  updated_at: external_exports.string()
45005
45302
  }).strict();
@@ -45010,27 +45307,27 @@ var escalationListOutputSchema = external_exports.object({
45010
45307
  escalations: external_exports.array(stewardEscalationSchema)
45011
45308
  }).strict();
45012
45309
  var escalationGetInputSchema = external_exports.object({
45013
- id: uuidSchema18
45310
+ id: uuidSchema19
45014
45311
  }).strict();
45015
45312
  var escalationGetOutputSchema = external_exports.object({
45016
45313
  escalation: stewardEscalationSchema
45017
45314
  }).strict();
45018
45315
  var escalationResolveActionSchema = external_exports.enum(["approve", "convert_to_issue"]);
45019
45316
  var escalationResolveInputSchema = external_exports.object({
45020
- id: uuidSchema18,
45317
+ id: uuidSchema19,
45021
45318
  action: escalationResolveActionSchema.optional(),
45022
45319
  rationale: external_exports.string().trim().min(1).optional()
45023
45320
  }).strict();
45024
45321
  var escalationRejectInputSchema = external_exports.object({
45025
- id: uuidSchema18,
45322
+ id: uuidSchema19,
45026
45323
  rationale: external_exports.string().trim().min(1).optional()
45027
45324
  }).strict();
45028
45325
  var escalationDecisionOutputSchema = external_exports.object({
45029
- escalation_id: uuidSchema18,
45326
+ escalation_id: uuidSchema19,
45030
45327
  status: escalationStatusSchema,
45031
- decision_id: uuidSchema18,
45032
- decided_by: uuidSchema18,
45033
- issue_id: uuidSchema18.nullable(),
45328
+ decision_id: uuidSchema19,
45329
+ decided_by: uuidSchema19,
45330
+ issue_id: uuidSchema19.nullable(),
45034
45331
  // DER-1478: true when the resolved escalation carries a durable replay_action
45035
45332
  // (an approval-gated connector write) that the approvals path should actuate
45036
45333
  // after this decision is recorded. Omitted (not false) for non-connector
@@ -45052,7 +45349,7 @@ var eventTypes = [
45052
45349
  "task"
45053
45350
  ];
45054
45351
  var publicMessageTypes = ["status", "handoff", "escalation", "issue"];
45055
- var uuidSchema19 = external_exports.string().uuid();
45352
+ var uuidSchema20 = external_exports.string().uuid();
45056
45353
  var evidenceSchema2 = external_exports.array(external_exports.unknown());
45057
45354
  var internalEventPayloadSchema = external_exports.record(external_exports.string(), external_exports.unknown()).refine((payload) => !Array.isArray(payload), "Internal event payload must be an object");
45058
45355
  var handoffEventPayloadSchema = external_exports.object({
@@ -45062,24 +45359,24 @@ var handoffEventPayloadSchema = external_exports.object({
45062
45359
  acceptance_criteria: external_exports.array(external_exports.string().min(1)),
45063
45360
  due: external_exports.string().datetime({ offset: true })
45064
45361
  }).strict(),
45065
- to_seat_id: uuidSchema19
45362
+ to_seat_id: uuidSchema20
45066
45363
  }).strict();
45067
45364
  var intakeEventPayloadSchema = external_exports.discriminatedUnion("action", [
45068
45365
  external_exports.object({
45069
45366
  action: external_exports.literal("uploaded"),
45070
- document_id: uuidSchema19,
45367
+ document_id: uuidSchema20,
45071
45368
  storage_ref: external_exports.string().min(1)
45072
45369
  }).strict(),
45073
45370
  external_exports.object({
45074
45371
  action: external_exports.literal("parsed"),
45075
- document_id: uuidSchema19,
45372
+ document_id: uuidSchema20,
45076
45373
  mode: external_exports.enum(["source_tree", "function_first"]),
45077
45374
  seat_count: external_exports.number().int().nonnegative(),
45078
45375
  edge_count: external_exports.number().int().nonnegative()
45079
45376
  }).strict(),
45080
45377
  external_exports.object({
45081
45378
  action: external_exports.literal("failed"),
45082
- document_id: uuidSchema19,
45379
+ document_id: uuidSchema20,
45083
45380
  reason: external_exports.string().min(1)
45084
45381
  }).strict(),
45085
45382
  external_exports.object({
@@ -45185,9 +45482,9 @@ var publicMessageTypeSchema = external_exports.enum(publicMessageTypes);
45185
45482
  var eventEnvelopeBaseSchema = external_exports.object({
45186
45483
  protocol: external_exports.literal(EVENT_PROTOCOL),
45187
45484
  type: eventTypeSchema,
45188
- seat_id: uuidSchema19.nullable(),
45485
+ seat_id: uuidSchema20.nullable(),
45189
45486
  occurred_at: external_exports.string().datetime({ offset: true }),
45190
- goal_ancestry: external_exports.array(uuidSchema19)
45487
+ goal_ancestry: external_exports.array(uuidSchema20)
45191
45488
  }).strict();
45192
45489
  var statusEventEnvelopeSchema = eventEnvelopeBaseSchema.extend({
45193
45490
  type: external_exports.literal("status"),
@@ -45613,7 +45910,7 @@ Treat AICOS as a coordinator over the operating system. It can become more usefu
45613
45910
  order: 20,
45614
45911
  title: "Responsibility Graph playbook",
45615
45912
  summary: "How to build a functions-first graph with seats, owners, Stewards, vacancies, and clean authority.",
45616
- version: "2026-07-10.3",
45913
+ version: "2026-07-10.6",
45617
45914
  public: true,
45618
45915
  audiences: ["human", "cli", "mcp", "in_app_agent"],
45619
45916
  stages: ["graph_design", "staffing"],
@@ -45694,7 +45991,11 @@ The graph also carries a mission-control panel. It pulls the same operational st
45694
45991
 
45695
45992
  A staffed non-AICOS agent's seat page uses one profile shell with eight URL-addressable tabs: **Overview**, **Charter**, **Tools & connections**, **Skills**, **Autonomy**, **Signals**, **Activity**, and **Settings**. The hero shows status, Charter purpose, Steward, seat path, lane, model, and last run. The sidebar keeps access, connection, tool/Skill/Signal/escalation/Charter counters, and schedule facts visible while the tabs organize the existing read models and controls. Legacy links such as \`#agent-ops\`, \`#recent-runs\`, and \`#run-<id>\` select the matching Settings or Activity tab. Human seats and the AICOS foundation seat keep their dedicated pages. Members without sensitive-data access see the same shell with explicit unavailable states for run, tool-call, cost, connection-status, and escalation facts; the page never broadens Trust Card access or turns an unavailable read into a confident empty/disconnected claim.
45696
45993
 
45697
- Agent creation at \`/agents/new\` begins with four doors: **Describe the job** opens the existing in-app builder, **Start from a template** opens the stock-template picker, **Build manually** opens the custom setup path, and **Import** opens an in-app format explainer. Definition-file import is roadmap-only and never opens a bare file picker; operators can instead continue to the existing-agent pairing flow. Setup is the detail page filling in: creating a seat from any door hands off to that agent's detail page in draft mode (\`/seats/{seatId}\`), where numbered setup tabs and a shared go-live gate rail complete the draft \u2014 there is no separate multi-step wizard. Existing \`?mode=template|custom|existing\` links open the matching door, and a \`?seat=\` resume link redirects straight to the draft detail page.
45994
+ The **Charter** tab renders the accepted Charter as a document \u2014 purpose, responsibilities, decision authority \u2014 with its version chip and signer, plus a structured edit drawer for quick purpose/responsibilities/decision-authority changes. The drawer prefills from the active Charter (or an open amendment draft, if one exists) and stages the edited slice through the same audited commands as any other Charter change; sensitive fields (permission manifest, budget, measurables, escalation rules) never round-trip through the client, and a save fails closed with an explicit conflict message if the Charter changed underneath the drawer since it opened. An **Amend** action stays next to the drawer for changes it does not cover, opening the same draft-and-confirm flow as the Charter Builder.
45995
+
45996
+ An owner or Steward manages the agent's capabilities in context from the **Tools & connections** and **Skills** tabs, no separate editor page. On **Skills**, assign or revoke a Skill directly; each change stages a confirmation envelope for the human to approve in \`/approvals\` \u2014 never a silent write. On **Tools & connections**, granted tools are read-only on this page; a change routes to the governed Charter re-sign flow (tool grants live in the signed, active Charter, so they change by supersession, never in place), and a missing provider links straight to Settings connections with a return link back to this tab. Viewers without manage authority see the same tabs with an explanation instead of controls; every write still re-asserts seat authority server-side regardless of what the client shows.
45997
+
45998
+ Agent creation at \`/agents/new\` begins with four doors: **Describe the job** opens the existing in-app builder, **Start from a template** opens the stock-template picker, **Build manually** opens the custom setup path, and **Import** opens an in-app format explainer. Definition-file import is roadmap-only and never opens a bare file picker; operators can instead continue to the existing-agent pairing flow. Setup is the detail page filling in: creating a seat from any door hands off to that agent's detail page in draft mode (\`/seats/{seatId}\`) \u2014 there is no separate wizard shell or tab vocabulary. Draft mode renders the exact same eight tabs the live seat uses; **Overview** and **Activity** stay locked until the first run has something to show, and the other six own the editable draft (Charter, Tools & connections, Skills, Autonomy, Outcomes & Signals, Settings). The shared **GateRail** review rail (sign manifest \u2192 sandbox dry run \u2192 go-live) and the server's \`next_action\` stay the sole lifecycle truth throughout, unaffected by which door you entered through. The door only changes how the one canonical form gets filled in: manual is the blank form, template pre-populates it, chat opens an AICOS setup assistant beside the form that proposes typed field changes grouped by section for review before anything durable saves, and import maps a definition file into the same fields and reports what did not map \u2014 never credentials. Existing \`?mode=template|custom|existing\` links open the matching door, and a \`?seat=\` resume link redirects straight to the draft detail page.
45698
45999
 
45699
46000
  ## Review an agent seat's delivered work
45700
46001
 
@@ -46285,7 +46586,7 @@ Use the lower-level commands after health names a finding: \`agent.get_run\` for
46285
46586
  order: 46,
46286
46587
  title: "Tool access and vault",
46287
46588
  summary: "How to give agents access to tools without exposing raw credentials or expanding authority by accident.",
46288
- version: "2026-07-02.4",
46589
+ version: "2026-07-13.1",
46289
46590
  public: true,
46290
46591
  audiences: ["human", "cli", "mcp", "in_app_agent"],
46291
46592
  stages: ["staffing"],
@@ -46339,7 +46640,7 @@ The native Gmail handlers run inside the same broker boundary as the REST and Sl
46339
46640
 
46340
46641
  ## Google connector status
46341
46642
 
46342
- Google can be connected from Settings once the workspace OAuth app is configured. The connection flow requests offline access for Gmail read/compose and Sheets, stores the returned credential in the vault, and records only account and scope metadata in the integration row. The test action refreshes the vaulted credential and performs a minimal Gmail profile read. Gmail read/draft, bounded Sheets read, and approval-held Sheets write handlers run through the guarded broker when Google is connected; connecting Google still does not bypass the signed Charter manifest, tenant policy ceiling, credential vault, or tool-call audit. Sheet grants should use exact signed argument bindings for approved spreadsheet ids and ranges.
46643
+ Google can be connected from Settings once the workspace OAuth app is configured. The connection flow requests offline access for Gmail read/compose/send and Sheets, stores the returned credential in the vault, and records only account, scope, and capability-availability metadata in the integration row. Partial grants are accepted when at least one connector capability is usable; missing or revoked scopes reduce the affected capability instead of granting more authority. The test action refreshes the vaulted credential and performs a minimal Gmail profile read. Gmail read/draft/send, bounded Sheets read, and approval-held Sheets write handlers run through the guarded broker when Google is connected; connecting Google still does not bypass the signed Charter manifest, tenant policy ceiling, credential vault, or tool-call audit. Sheet grants should use exact signed argument bindings for approved spreadsheet ids and ranges.
46343
46644
 
46344
46645
  CLI and MCP can inspect connector readiness without seeing secrets: \`integration.list\` / \`rost_list_integrations\` lists connected providers and health metadata, \`integration.status\` / \`rost_get_integration_status\` reads one provider by id or name, and \`integration.test\` / \`rost_test_integration_connection\` runs the installed provider-specific health check. For Google, the test refreshes the vaulted OAuth credential and reads the Gmail profile, then records only account, scope, and health metadata.
46345
46646
 
@@ -46376,7 +46677,7 @@ There is exactly one way to give a connected tool its credential, and it is the
46376
46677
  order: 47,
46377
46678
  title: "Available tools guide",
46378
46679
  summary: "How to think about tool categories available to seats and what each category should be used for.",
46379
- version: "2026-07-04.1",
46680
+ version: "2026-07-13.1",
46380
46681
  public: true,
46381
46682
  audiences: ["human", "cli", "mcp", "in_app_agent"],
46382
46683
  stages: ["staffing"],
@@ -46412,9 +46713,9 @@ Start from the seat's responsibility, not the tool list. If a tool does not dire
46412
46713
 
46413
46714
  ## Skills and tool dependencies
46414
46715
 
46415
- Skills are reusable procedures a seat can learn from; they are not tools and they never grant authority. A skill package may declare required or optional tool dependencies so setup can identify blockers before assignment. Those dependencies are checked against the discoverable \`tool.catalog\` ids and scope tiers, then compared to the seat's Charter permission manifest. Missing required tools block approval; optional tools produce setup warnings. A published skill version is immutable, so later corrections create a new version instead of rewriting what a run may have used.
46716
+ Skills are reusable procedures a seat can learn from; they are not tools and they never grant authority. A skill package may declare required or optional tool dependencies so setup can identify blockers before assignment. Those dependencies are checked against the discoverable \`tool.catalog\` ids, scope tiers, and provider-neutral access levels, then compared to the seat's Charter permission manifest. Missing required tools block approval; optional tools produce setup warnings. A published skill version is immutable, so later corrections create a new version instead of rewriting what a run may have used.
46416
46717
 
46417
- The catalog covers both the platform verbs (status, escalation, Signal readings) and the business tools the stock-agent templates grant \u2014 accounts-payable and receivable reads, AP-inbox and collections drafts, helpdesk triage, CRM reads, and content-calendar, release-artifact, and issue drafts. Each is listed at a conservative scope tier (read for the reads, draft for the drafts, where a draft never sends), and the business tools are credential-gated. Because a skill's required tool id is matched against these ids, a skill that requires one of them resolves against the catalog rather than reporting an unknown tool. Catalog membership is configuration only: it still confers no authority, and a listed id runs only once a live handler exists behind the seat's signed permission manifest, the server guard, and any required credential \u2014 the manifest and guard remain the control plane.
46718
+ The catalog covers both the platform verbs (status, escalation, Signal readings) and the business tools the stock-agent templates grant \u2014 accounts-payable and receivable reads, AP-inbox and collections drafts, helpdesk triage, CRM reads, and content-calendar, release-artifact, and issue drafts. Each is listed with a conservative scope tier (read for the reads, draft for the drafts, where a draft never sends), a provider-neutral access level, a provider requirement, cost class, lane support, and any Trusted-mode metadata that must be present before a standing authorization can apply. Business tools are credential-gated. Because a skill's required tool id is matched against these ids, a skill that requires one of them resolves against the catalog rather than reporting an unknown tool. Catalog membership is configuration only: it still confers no authority, and a listed id runs only once a live handler exists behind the seat's signed permission manifest, the server guard, and any required credential \u2014 the manifest and guard remain the control plane. Unknown tool ids or unsupported access levels fail closed.
46418
46719
 
46419
46720
  ## How agents should request tools
46420
46721
 
@@ -46431,7 +46732,7 @@ External connectors are being rolled out provider by provider, conservatively (r
46431
46732
  order: 48,
46432
46733
  title: "CLI and MCP installation guide",
46433
46734
  summary: "Install the public CLI, register remote token-backed MCP clients, and find the full command and tool catalog.",
46434
- version: "2026-07-12.4",
46735
+ version: "2026-07-13.2",
46435
46736
  public: true,
46436
46737
  audiences: ["human", "cli", "mcp", "in_app_agent"],
46437
46738
  stages: ["company_setup", "staffing"],
@@ -46862,8 +47163,8 @@ These are the security posture rules for operating after install \u2014 a checkl
46862
47163
  | Command | Purpose | Scope | Safe example |
46863
47164
  |---|---|---|---|
46864
47165
  | \`{{cli}} command <id> [--seat <seat-id>] --json [json-body]\` | Execute a server-side command by id. Add \`--seat <seat-id>\` to run a seat-scoped command (e.g. \`task.list\`) against a specific seat. | Command-defined | \`{{cli}} command task.list --seat <seat-id> --json '{}'\` |
46865
- | \`{{cli}} command schema <id> [--json]\` | Discover a command's exact input/output schema, help pointer, and a worked example before calling it. | User | \`{{cli}} command schema compass.draft\` |
46866
- | \`{{cli}} command list [--json]\` | List every callable command id with its scope and confirmation gate. | User | \`{{cli}} command list\` |
47166
+ | \`{{cli}} command schema <id> [--json]\` | Discover a command's exact input/output schema, help pointer, Trusted execution classification, and a worked example before calling it. | User | \`{{cli}} command schema compass.draft\` |
47167
+ | \`{{cli}} command list [--json]\` | List every callable command id with its scope, confirmation gate, and Trusted execution classification. | User | \`{{cli}} command list\` |
46867
47168
  | \`{{cli}} command onboarding.attach_reference --json ...\` | Attach a company reference document (reference-only). | Tenant | \`{{cli}} command onboarding.attach_reference --json '{"text":"# Ops handbook\\n...","title":"Ops handbook","kind":"process","source":"handbook/ops.md"}'\` |
46868
47169
  | \`{{cli}} command seat.create --json ...\` | Create a Responsibility Graph seat. | Tenant | \`{{cli}} command seat.create --json '{"name":"Finance","seat_type":"human"}'\` |
46869
47170
  | \`{{cli}} command charter.draft --json ...\` | Create or fetch a draft Charter. | Seat or tenant-admin | \`{{cli}} command charter.draft --json '{"seat_id":"<seat-id>"}'\` |
@@ -46901,7 +47202,7 @@ The signed-in app exposes the same Skill command surface at **Skills**, linked f
46901
47202
  | \`{{cli}} command tenant.model_gateway_policy.update\` | \`tenant.model_gateway_policy.update\` | Unlock or relock managed models that lack a zero-retention (ZDR) tier (ADR-0019). Locked (default) restricts the AI Gateway to zero-retention-eligible managed models. Owner-only and human-gated; unlocking establishes an ADR-0018 \xA76 standing authorization and surfaces a per-model retention disclosure. | Tenant-admin | \`{{cli}} command tenant.model_gateway_policy.update --json '{"allow_non_zdr_models":true}'\` |
46902
47203
  | \`{{cli}} member invite|update|remove\` | \`member.invite\`, \`member.update\`, \`member.remove\` | Manage tenant members; execution requires an owner or admin membership. | Tenant | \`{{cli}} member invite --email ops@example.com --role member\` |
46903
47204
  | \`{{cli}} agent templates|create|setup|tools|dry-run|go-live|status|run-now|fleet-digest|get-run|show\` | \`agent_template.list\`, \`agent.create_from_template\`, \`agent.create_custom\`, \`agent_setup.get\`, \`agent_setup.update\`, \`agent.configure_tools\`, \`agent.run_dry_run\`, \`agent.go_live\`, \`agent.status\`, \`agent.run_now\`, \`agent.fleet_digest\`, \`agent.get_run\`, \`agent.show_markdown\` | Run the full agent setup and operation flow: list templates, create a draft from a template or guided custom answers (with \`--model\` and \`--effort\`), read or answer setup state, connect or decline tools, dry-run, go live, run on demand, capture the fleet-health digest, read one run's transcript/error diagnostics, and show a markdown readout. Human CLI dry-runs print the rehearsal transcript and, when present, the per-tool preview labels (\`Would run\`, \`Blocked\`, \`Escalated\`) before go-live. Create and go-live stop at human gates; the dry-run is ungated by human approval but requires a signed manifest first. | Tenant and seat | \`{{cli}} agent fleet-digest --json\` |
46904
- | \`{{cli}} tools list\` | \`tool.catalog\` | List the discoverable tool catalog the builder reads (id, scope tiers, credential requirement, access policy, and execution-boundary guidance). | Tenant | \`{{cli}} tools list --json\` |
47205
+ | \`{{cli}} tools list\` | \`tool.catalog\` | List the discoverable tool catalog the builder reads (id, scope tiers, access levels, provider requirement, cost class, lane support, credential requirement, access policy, Trusted metadata, and execution-boundary guidance). | Tenant | \`{{cli}} tools list --json\` |
46905
47206
  | \`{{cli}} skills list|get|file|assigned|check-dependencies\` | \`skill.list\`, \`skill.get\`, \`skill.file.get\`, \`skill.assigned.list\`, \`skill.check_dependencies\` | Discover reusable Skills, read descriptors and stored package files, list approved Seat assignments, and compare required/optional tool dependencies with a Seat's signed Charter manifest. Skills are instructions, not authority. | Tenant-admin; seat-scoped reads for assigned Skills | \`{{cli}} skills list --json\`; \`{{cli}} skills file --slug invoice-review --path SKILL.md\` |
46906
47207
  | \`{{cli}} skills catalog|enable|install|sync\` | \`skill.catalog\`, \`skill.enable_catalog\`, \`skill.install_local\`, \`skill.sync_local\` | Discover entitled {{brand}} catalog Skills, enable a catalog Skill into the company library with human confirmation, and install or sync approved Skill files locally from {{brand}} APIs. Private catalog source URLs and GitHub tokens never go to local agents. | Tenant-admin for catalog enablement; seat-scoped sync for assigned Skills | \`{{cli}} skills sync --seat-id <id> --client codex\`; \`{{cli}} skills install rost/ap-review --seat-id <id> --client codex\` |
46907
47208
  | \`{{cli}} skills create|update-draft|import|publish|assign|revoke\` | \`skill.create\`, \`skill.update_draft\`, \`skill.import_github\`, \`skill.import_upload\`, \`skill.publish\`, \`skill.assign_to_seat\`, \`skill.revoke_from_seat\` | Create or import bounded text Skill packages, publish reviewed immutable versions, propose Seat assignments, and revoke future use without deleting historical activations. Publish, revoke, and approved assignment stop at human confirmation; blocked required tools cannot be approved. | Tenant-admin writes; seat agents read assignments and escalate requests | \`{{cli}} skills import github --url https://github.com/acme/skills/tree/main/ap --json\`; \`{{cli}} skills assign --seat-id <id> --slug invoice-review --json\` |
@@ -46950,7 +47251,7 @@ Skills wrapper help:
46950
47251
  This catalog is the canonical machine surface \u2014 the \`rost_*\` tools your MCP client calls. Three different things are called "tools" in {{brand}}; do not confuse them:
46951
47252
 
46952
47253
  1. **The MCP tools below** \u2014 the \`rost_*\` surface your client actually calls to read and act.
46953
- 2. **\`{{cli}} tools list\` / \`tool.catalog\`** (MCP \`rost_list_tool_catalog\`) \u2014 the agent-configuration catalog the builder reads when staffing an agent. It is selectable per agent, but selecting a tool is not itself a call; live handlers execute later only behind the signed manifest, guard, credentials, and bindings.
47254
+ 2. **\`{{cli}} tools list\` / \`tool.catalog\`** (MCP \`rost_list_tool_catalog\`) \u2014 the agent-configuration catalog the builder reads when staffing an agent. It includes scope tiers, provider-neutral access levels, provider requirements, cost class, lane support, and Trusted metadata. It is selectable per agent, but selecting a tool is not itself a call; live handlers execute later only behind the signed manifest, guard, credentials, and bindings.
46954
47255
  3. **\`{{cli}} model list\` / \`model.catalog\`** (MCP \`rost_list_model_catalog\`) \u2014 the guided model-tier catalog the builder reads for recommendations, effort, token prices, cost bands, and model id selection.
46955
47256
  4. **The "Available tools guide"** (in the sidebar) \u2014 covers tool *categories* and governance, not a callable surface. See the available-tools-guide.
46956
47257
 
@@ -46962,8 +47263,8 @@ These read-only tools are available to any valid MCP token (like the reference t
46962
47263
 
46963
47264
  | Tool | Purpose | Scope | Safe example |
46964
47265
  |---|---|---|---|
46965
- | \`rost_describe_command\` | Return a command's input/output JSON Schema, scope, confirmation gate, MCP tool name, help pointer, guides, a validated example, and related commands. | Any valid MCP token | Query \`{"command_id":"compass.draft"}\` |
46966
- | \`rost_list_commands\` | List callable command ids in bounded pages with title, scope, confirmation, stages, and MCP tool name when callable. Supports \`q\`, \`category\`, \`stage\`, \`limit\`, and \`cursor\`. | Any valid MCP token | Query \`{"q":"status","limit":10}\` |
47266
+ | \`rost_describe_command\` | Return a command's input/output JSON Schema, scope, confirmation gate, Trusted execution classification, MCP tool name, help pointer, guides, a validated example, and related commands. | Any valid MCP token | Query \`{"command_id":"compass.draft"}\` |
47267
+ | \`rost_list_commands\` | List callable command ids in bounded pages with title, scope, confirmation, Trusted execution classification, stages, and MCP tool name when callable. Supports \`q\`, \`category\`, \`stage\`, \`limit\`, and \`cursor\`. | Any valid MCP token | Query \`{"q":"status","limit":10}\` |
46967
47268
 
46968
47269
  The equivalent CLI verbs are \`{{cli}} command schema <id>\` and \`{{cli}} command list\`. The discoverable tool catalog is \`{{cli}} tools list\` (MCP \`rost_list_tool_catalog\`, tenant-scoped).
46969
47270
 
@@ -47084,6 +47385,8 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
47084
47385
  | \`rost_set_company_autonomy_ceiling\` | \`settings.agent_policy.update\` | Set the company autonomy ceiling. | Tenant-admin | Owner-only, human-gated; call with \`{"profile":"locked_down"}\` (or \`balanced\`/\`high_autonomy\`, or \`{"profile":"custom","max_autonomous_risk":"high"}\`). Enforced by default. |
47085
47386
  | \`rost_get_cli_confirmation_mode\` | \`settings.confirmation_policy.get\` | Read the CLI confirmation mode: \`careful\` (the strict default \u2014 the CLI cannot silently auto-approve a pending confirmation) or \`trusted_operator\` (an owner opt-in). | Tenant | Call with \`{}\`; metadata only. |
47086
47387
  | \`rost_set_cli_confirmation_mode\` | \`settings.confirmation_policy.update\` | Set the CLI confirmation mode. | Tenant-admin | Owner-only, human-gated; call with \`{"cli_mode":"trusted_operator"}\` (or \`{"cli_mode":"careful"}\`). Choosing \`trusted_operator\` establishes an ADR-0018 \xA76 standing authorization; a \`dangerous\`-risk confirmation always requires interactive human review in either mode. |
47388
+ | \`rost_get_tenant_tool_policy\` | \`settings.tool_policy.get\` | Read tenant capability-grant defaults and the AICOS auto-trust posture. | Tenant | Call with \`{}\`; metadata only. |
47389
+ | \`rost_update_tenant_tool_policy\` | \`settings.tool_policy.update\` | Update tenant capability-grant defaults and the AICOS auto-trust posture. | Tenant-admin | Owner/admin only and human-gated; call with \`{"mode":"managed","aicos":{"trust_new_capabilities_automatically":true}}\`. |
47087
47390
  | \`rost_update_model_gateway_policy\` | \`tenant.model_gateway_policy.update\` | Unlock or relock managed models that lack a zero-retention (ZDR) tier. | Tenant-admin | Owner-only, human-gated; call with \`{"allow_non_zdr_models":true}\` (or \`false\` to relock). Unlocking establishes an ADR-0018 \xA76 standing authorization and surfaces a per-model retention disclosure. |
47088
47391
  | \`rost_get_aicos_brain_settings\` | \`aicos.brain_settings.get\` | Read AICOS lane and brain labels for cloud managed/BYOK, runner Claude/Codex, and MCP client. | Tenant | Call with \`{}\`; returns enum labels only, never keys, vault refs, or runner secrets. |
47089
47392
  | \`rost_update_aicos_brain_settings\` | \`aicos.brain_settings.update\` | Update AICOS lane and cloud/runner brain preferences. | Tenant-admin | Owner-only and human-gated; call with \`{"lane":"runner","runner_brain":"claude-cli"}\` or \`{"cloud_brain":"byok"}\`. BYOK requires an active tenant Anthropic key. For AICOS, selecting \`codex-cli\` is currently rejected until the governed interactive runner path is verified. |
@@ -47138,6 +47441,10 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
47138
47441
  | \`rost_show_charter_as_markdown\` | \`charter.show_markdown\` | Render a seat's active or latest Charter as a clean markdown card for review. | Tenant | Call with \`{"seat_id":"<seat-id>"}\`. |
47139
47442
  | \`rost_show_agent_setup_as_markdown\` | \`agent.show_markdown\` | Render a seat's agent setup, model, steward, tools, and Charter as a clean markdown card for review. | Tenant | Call with \`{"seat_id":"<seat-id>"}\`. |
47140
47443
  | \`rost_list_tool_catalog\` | \`tool.catalog\` | List the discoverable tool catalog the agent builder reads \u2014 id, prescriptive description, scope tiers, credential requirement, access policy, and execution-boundary guidance. | Tenant | Call with \`{}\` or \`{"provider":"google"}\`. |
47444
+ | \`rost_list_tenant_capability_grants\` | \`tool_grants.tenant.list\` | List tenant capability ceilings/defaults with connection, availability, source, and compile status. | Tenant | Call with \`{}\`; no secrets or vault refs. |
47445
+ | \`rost_list_agent_effective_capability_grants\` | \`tool_grants.agent.effective\` | Read one agent's effective capability grants after tenant ceilings, agent selections, and compile availability are applied. | Tenant | Call with \`{"agent_id":"<agent-id>"}\`. |
47446
+ | \`rost_update_agent_capability_grants\` | \`tool_grants.agent.update\` | Compile a Charter supersession proposal for agent capability grant reductions or expansions. | Tenant | Human steward/admin only; call with \`{"agent_id":"<agent-id>","grants":[{"tool_grant_id":"<grant-id>","access_level":"read"}]}\`; active authority changes only after the signed Charter is superseded. |
47447
+ | \`rost_suggest_setup_capability_grants\` | \`agent_setup.capability_suggestions\` | Suggest deterministic minimum capability grants from the current setup/template and tenant grant availability. | Tenant | Call with \`{"seat_id":"<seat-id>"}\` or \`{"setup_id":"<agent-id>"}\`; no model call and no mutation. |
47141
47448
  | \`rost_list_skills\` | \`skill.list\` | List tenant Skills with application descriptors, dependency metadata, source status, latest version, and assigned Seat count. Seat-scoped reads are available through \`rost://skills\`. | Tenant-admin | Call with \`{}\` or \`{"query":"invoice"}\`. |
47142
47449
  | \`rost_list_rost_skill_catalog\` | \`skill.catalog\` | List entitled {{brand}} catalog Skills. Private catalog source URLs and credentials stay server-side. | Tenant-admin | Call with \`{}\`; use \`{"include_unentitled":true}\` only to inspect tier availability. |
47143
47450
  | \`rost_enable_rost_catalog_skill\` | \`skill.enable_catalog\` | Enable an entitled {{brand}} catalog Skill into the company library with human confirmation. | Tenant-admin | Call with \`{"slug":"rost/ap-review"}\`; non-interactive callers receive a confirmation handoff. |
@@ -49252,7 +49559,7 @@ A consultancy's purpose might be "Make expert tax guidance affordable for first-
49252
49559
  order: 31,
49253
49560
  title: "Charter authoring deep-dive",
49254
49561
  summary: "The full Charter document contract field by field \u2014 decision authority, escalation, measurables, budget, permissions \u2014 with worked examples for human, agent, and hybrid seats.",
49255
- version: "2026-06-18.1",
49562
+ version: "2026-07-13.1",
49256
49563
  public: true,
49257
49564
  audiences: ["cli", "mcp", "in_app_agent"],
49258
49565
  stages: ["charter_design", "staffing"],
@@ -49299,7 +49606,7 @@ A Charter is a seat's executable operating contract. On the CLI and MCP path you
49299
49606
  - **escalate** (1+) \u2014 the must-ask set: ambiguous authority, irreversible actions, credentials, legal or financial exposure, customer-impacting exceptions. At least one escalate item should carry \`unanswered_boundary: true\` so unresolved boundaries default conservative. The submit schema does not strictly require it, but the direct submit path (\`charter.update_draft\` / \`charter.set\`) does not add one for you \u2014 it only records the boundaries you flag \u2014 so include one whenever a boundary is unresolved.
49300
49607
  - **escalation_rules** (1+) \u2014 plain-language rules that trigger escalation, beyond the structured authority items. "Escalate any invoice over $5,000 or from a vendor not already in the ledger."
49301
49608
  - **measurables** (1+) \u2014 each \`{ name, target, cadence, source }\`. A measurable must measure the accountability, not vanity. \`cadence\` is \`daily|weekly|monthly|quarterly\`; \`source\` is \`human|agent|integration\`. Agent-sourced readings are unconfirmed until a human confirms them.
49302
- - **permission_manifest** \u2014 each \`{ tool, scope, granted, rationale }\`. Map each accountability to the narrowest tool scope that performs it. Prefer draft/read scopes; a send or spend scope is a deliberate, justified grant. The manifest is what the tool-guard enforces and what a human signs.
49609
+ - **permission_manifest** \u2014 each \`{ tool, scope, granted, rationale }\`, with machine fields such as \`capability_id\` and \`integration_id\` when the grant is backed by a connected capability. Map each accountability to the narrowest tool scope that performs it. Prefer draft/read scopes; a send or spend scope is a deliberate, justified grant. Connection-backed entries are signed against the exact tenant integration; stale, cross-tenant, or scope-revoked identities fail closed before activation. The manifest is what the tool-guard enforces and what a human signs.
49303
49610
  - **budget** \u2014 \`{ monthly_usd, approval_required_over_usd, notes }\`. \`monthly_usd\` may be \`null\` (no autonomous budget). \`approval_required_over_usd: 0\` means any spend needs approval. State the rule in \`notes\`.
49304
49611
  - **unanswered_boundaries** (optional) \u2014 the open questions about this seat's authority you have not resolved. Naming them keeps them conservative instead of silently autonomous. **You may omit this field**; the server defaults it to \`[]\` (and still records any boundary you flag inline via \`unanswered_boundary: true\` on an authority item).
49305
49612
  - **seat_type_recommendation** (optional) \u2014 \`{ recommendation, rationale, confidence }\` where recommendation is \`human|agent|hybrid\`. Reason from the work: high-volume, rule-bound, reviewable work suits an agent under a Steward; judgment-heavy or relationship work stays human; split work is hybrid. **You may omit this field**; the server defaults conservatively to \`human\` until a human decides otherwise. Supply it when you have a clear recommendation.
@@ -50327,6 +50634,7 @@ function parseSemver(value) {
50327
50634
 
50328
50635
  // src/generated/command-manifest.ts
50329
50636
  var COMMAND_MANIFEST = [
50637
+ { "id": "agent_setup.capability_suggestions", "namespace": "agent_setup", "action": "capability_suggestions", "title": "Suggest setup capability grants", "description": "Return deterministic minimum capability suggestions from a stock template and current tenant grant availability. No model call and no authority mutation.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": false }, { "name": "setup_id", "flag": "setup-id", "type": "string", "required": false }], "hasComplexInput": false, "help": "Suggest deterministic minimum capability grants from the setup/template and current tenant grant availability. No model call and no mutation." },
50330
50638
  { "id": "agent_setup.get", "namespace": "agent_setup", "action": "get", "title": "Get agent setup", "description": "Read the resumable agent-setup state: mode, parent, steward, template, lane, schedule, tool decisions, dry run, and next action.", "requiredScope": "seat", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": false }, { "name": "setup_id", "flag": "setup-id", "type": "string", "required": false }], "hasComplexInput": false, "help": "Read the resumable setup state: mode, parent, steward, lane, schedule, tool decisions, dry-run blockers, and the next action." },
50331
50639
  { "id": "agent_setup.relane", "namespace": "agent_setup", "action": "relane", "title": "Re-lane a live agent", "description": "Governed re-lane of a live agent: pause, move to the new lane, force a fresh dry-run rehearsal on that lane, then go live. Owner-only and human-gated; records a rationale.", "requiredScope": "tenant_admin", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "lane", "flag": "lane", "type": "enum", "required": true, "enumValues": ["cloud", "mcp_session", "runner"] }, { "name": "reason", "flag": "reason", "type": "string", "required": true }], "hasComplexInput": false, "help": "Re-lane a live agent (cloud / runner / mcp_session): it pauses, moves to the new lane, forces a fresh dry-run rehearsal on that lane, then goes live \u2014 owner-only, human-gated, with a required rationale. A runner target needs a paired runner; a failed rehearsal leaves the agent paused on the new lane." },
50332
50640
  { "id": "agent_setup.start", "namespace": "agent_setup", "action": "start", "title": "Start agent setup", "description": "Start (or resume) a draft agent setup for a seat in template, custom, or existing mode.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "mode", "flag": "mode", "type": "enum", "required": true, "enumValues": ["template", "custom", "existing"] }, { "name": "template_slug", "flag": "template-slug", "type": "string", "required": false }], "hasComplexInput": false, "help": "Start a draft agent setup from a template, custom, or existing mode; the setup resumes from the draft agent and Charter, not a fresh start." },
@@ -50465,6 +50773,8 @@ var COMMAND_MANIFEST = [
50465
50773
  { "id": "settings.product_learning.update", "namespace": "settings", "action": "product_learning.update", "title": "Update product-learning policy", "description": "Set tenant product-learning participation. Disabled and enterprise-contract modes block generic product analytics writes, but not security/audit logs.", "requiredScope": "tenant_admin", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "mode", "flag": "mode", "type": "enum", "required": true, "enumValues": ["enabled", "disabled", "enterprise_contract"] }], "hasComplexInput": false, "help": "Set tenant product-learning mode to enabled, disabled, or enterprise_contract; the change is human-gated." },
50466
50774
  { "id": "settings.sync_brief_scope.get", "namespace": "settings", "action": "sync_brief_scope.get", "title": "Get Sync Brief scope", "description": "Read the tenant's Sync Brief scope: company_wide (one weekly brief) or per_cluster (one brief per cluster).", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "Read whether weekly Sync Briefs compile company-wide (one brief) or per cluster (one brief per cluster)." },
50467
50775
  { "id": "settings.sync_brief_scope.update", "namespace": "settings", "action": "sync_brief_scope.update", "title": "Update Sync Brief scope", "description": "Set the tenant's Sync Brief scope (company_wide or per_cluster). Per_cluster falls back to company-wide when the tenant has no clusters.", "requiredScope": "tenant_admin", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "sync_brief_scope", "flag": "sync-brief-scope", "type": "enum", "required": true, "enumValues": ["company_wide", "per_cluster"] }], "hasComplexInput": false, "help": "Set Sync Brief scope to company_wide or per_cluster; per_cluster falls back to company-wide when no clusters exist." },
50776
+ { "id": "settings.tool_policy.get", "namespace": "settings", "action": "tool_policy.get", "title": "Get tenant tool policy", "description": "Read the tenant tool-policy settings that govern capability-grant defaults and the AICOS auto-trust posture. Returns metadata only.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "Read tenant capability-grant defaults and the AICOS auto-trust posture. No secrets." },
50777
+ { "id": "settings.tool_policy.update", "namespace": "settings", "action": "tool_policy.update", "title": "Update tenant tool policy", "description": "Set the tenant tool-policy defaults for capability grants and the AICOS auto-trust posture. Owner/admin only and human-gated.", "requiredScope": "tenant_admin", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "mode", "flag": "mode", "type": "enum", "required": true, "enumValues": ["managed", "open"] }], "hasComplexInput": true, "help": "Update tenant capability-grant defaults and the AICOS auto-trust posture. Owner/admin only, human-gated, and event-audited." },
50468
50778
  { "id": "settings.update", "namespace": "settings", "action": "update", "title": "Update tenant settings", "description": "Update tenant AI budget caps (soft/hard, USD). Budget changes are dangerous and gated.", "requiredScope": "tenant", "confirmation": "dangerous", "exposeOverMcp": true, "fields": [{ "name": "soft_cap_usd", "flag": "soft-cap-usd", "type": "string", "required": false }, { "name": "hard_cap_usd", "flag": "hard-cap-usd", "type": "string", "required": false }], "hasComplexInput": false, "help": "Update tenant AI budget caps; budget changes are dangerous and require human confirmation." },
50469
50779
  { "id": "signal.bind", "namespace": "signal", "action": "bind", "title": "Bind a signal source (draft)", "description": "Persist a validated recipe + connection + cadence as an INERT draft binding for a measurable. Requires a valid preview_token from signal.preview of the same recipe. Never activates \u2014 a human signal.bind_confirm does that.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "measurable_id", "flag": "measurable-id", "type": "string", "required": true }, { "name": "integration_id", "flag": "integration-id", "type": "string", "required": true }, { "name": "cadence", "flag": "cadence", "type": "enum", "required": true, "enumValues": ["daily", "weekly", "monthly", "quarterly", "annual"] }, { "name": "host_allowlist", "flag": "host-allowlist", "type": "array", "required": true, "itemType": "string" }, { "name": "preview_token", "flag": "preview-token", "type": "string", "required": true }, { "name": "role", "flag": "role", "type": "enum", "required": false, "enumValues": ["informs", "drives_status"] }], "hasComplexInput": true, "help": "Persist a validated recipe as an inert draft binding; requires the preview_token from a preview of the same recipe." },
50470
50780
  { "id": "signal.bind_confirm", "namespace": "signal", "action": "bind_confirm", "title": "Confirm and activate a signal binding", "description": "Human-only activation of a draft signal binding (draft \u2192 active). Agents can never self-activate \u2014 an agent caller produces a pending confirmation. A drives_status binding requires a second-anchor confirmation. Once active, the scheduled pull auto-fills the measurable.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "binding_id", "flag": "binding-id", "type": "string", "required": true }], "hasComplexInput": true, "help": "Human-only: activate a draft signal binding (draft -> active) so scheduled pulls begin; an agent that calls it produces a pending confirmation." },
@@ -50553,6 +50863,9 @@ var COMMAND_MANIFEST = [
50553
50863
  { "id": "tenant.create", "namespace": "tenant", "action": "create", "title": "Create additional company", "description": "Create a new clean company for an already-provisioned account after checking tenant.create.additional entitlement.", "requiredScope": "tenant_admin", "confirmation": "none", "exposeOverMcp": false, "fields": [{ "name": "company_name", "flag": "company-name", "type": "string", "required": true }], "hasComplexInput": false, "help": "Create an additional clean company from an existing company session. Requires tenant.create.additional entitlement; first-company bootstrap stays signup.provision_tenant." },
50554
50864
  { "id": "tenant.model_gateway_policy.update", "namespace": "tenant", "action": "model_gateway_policy.update", "title": "Update model gateway policy", "description": "Unlock or relock managed models that do not offer a zero-retention (ZDR) tier (ADR-0019). Locked (the conservative default) restricts the AI Gateway to zero-retention-eligible managed models. Owner-only and human-gated: unlocking is a deliberate ADR-0018 \xA76 standing authorization that lets managed brains without a zero-retention tier run. This provider retains data up to 30 days for abuse monitoring.", "requiredScope": "tenant_admin", "confirmation": "dangerous", "exposeOverMcp": true, "fields": [{ "name": "allow_non_zdr_models", "flag": "allow-non-zdr-models", "type": "boolean", "required": true }], "hasComplexInput": false, "help": "Unlock or relock managed models that do not offer a zero-retention (ZDR) tier (ADR-0019). Locked (default) restricts the AI Gateway to zero-retention-eligible managed models. Owner-only and human-gated; unlocking establishes an ADR-0018 \xA76 standing authorization and surfaces the per-model retention disclosure." },
50555
50865
  { "id": "tenant.rename", "namespace": "tenant", "action": "rename", "title": "Rename company", "description": "Rename the current tenant/company. The rename is human-gated and writes an audit event.", "requiredScope": "tenant_admin", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "company_name", "flag": "company-name", "type": "string", "required": true }], "hasComplexInput": false, "help": "Rename the current company; owner-only, human-gated, and audited as an event." },
50866
+ { "id": "tool_grants.agent.effective", "namespace": "tool_grants", "action": "agent.effective", "title": "List agent effective capability grants", "description": "Read the effective capability grants for one agent, including the lower-of-ceiling-and-selection access level and compile status. Returns metadata only.", "requiredScope": "seat", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "agent_id", "flag": "agent-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Read one agent's effective capability grants after tenant ceilings, agent selections, and compile availability are applied." },
50867
+ { "id": "tool_grants.agent.update", "namespace": "tool_grants", "action": "agent.update", "title": "Update agent capability grants", "description": "Compile a Charter supersession proposal for per-agent capability grant reductions or expansions. Human steward/admin only.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "agent_id", "flag": "agent-id", "type": "string", "required": true }, { "name": "reason", "flag": "reason", "type": "string", "required": false }], "hasComplexInput": true, "help": "Compile a Charter supersession proposal for an agent capability grant reduction or expansion. Human steward/admin only." },
50868
+ { "id": "tool_grants.tenant.list", "namespace": "tool_grants", "action": "tenant.list", "title": "List tenant capability grants", "description": "Read the tenant capability ceiling/default matrix with connection, availability, source, ceiling, and compile status. Returns metadata only.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "List tenant capability ceilings/defaults with connection, availability, source, and compile status. Read-only." },
50556
50869
  { "id": "tool.catalog", "namespace": "tool", "action": "catalog", "title": "List tool catalog", "description": "List the discoverable tool catalog the agent builder reads \u2014 tool id, title, provider, prescriptive description, default scope tiers, credential requirement, access policy, and execution-boundary guidance.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "provider", "flag": "provider", "type": "string", "required": false }], "hasComplexInput": false, "help": "List the tool catalog the builder reads \u2014 id, prescriptive description, scope tiers, credential requirement, access policy, and execution-boundary guidance." },
50557
50870
  { "id": "usage.report", "namespace": "usage", "action": "report", "title": "AI-workforce ROI report", "description": "Return the tenant's immutable per-period usage snapshots \u2014 agents ran, outputs, token/run cost, human-accepted value, exceptions, and approvals \u2014 for the AI-workforce ROI report.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "limit", "flag": "limit", "type": "integer", "required": false }], "hasComplexInput": false, "help": "Read the AI-workforce ROI report \u2014 per-period agents/outputs/token+run cost, human-accepted value, exceptions, and approvals \u2014 from immutable usage snapshots." },
50558
50871
  { "id": "usage.snapshot", "namespace": "usage", "action": "snapshot", "title": "Capture usage period snapshot", "description": "Freeze the current (or a given) period's usage and accepted-value totals into an immutable snapshot for the ROI report. Insert-only and idempotent \u2014 re-running a captured period changes nothing.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": true, "help": "Freeze the current period's usage and accepted-value totals into an immutable snapshot for the ROI report; insert-only and idempotent, so re-running a captured period changes nothing." },