@rosthq/cli 0.7.69 → 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(),
@@ -40845,17 +41142,28 @@ var goalListAtRiskOutputSchema = external_exports.object({
40845
41142
  var goalSignalStateSchema = external_exports.enum(["ok", "risk", "crit", "pending"]);
40846
41143
  var goalStatusSourceSchema = external_exports.enum(["human", "agent", "rollup", "signal"]);
40847
41144
  var goalMeasurableRoleSchema = external_exports.enum(["drives_status", "informs"]);
41145
+ var goalDriverAnchorSchema = external_exports.object({
41146
+ // The closed period being anchored on (an ISO date / period label — free-form so a
41147
+ // caller can pass '2026-Q1' or '2026-06-30' as the books define the period).
41148
+ period_start: external_exports.string().min(1),
41149
+ // The value the goal's Signal should show for that closed period per the books.
41150
+ expected_value: external_exports.number()
41151
+ }).strict();
40848
41152
  var goalBindMeasurableInputSchema = external_exports.object({
40849
- goal_id: uuidSchema8,
40850
- measurable_id: uuidSchema8,
41153
+ goal_id: uuidSchema9,
41154
+ measurable_id: uuidSchema9,
40851
41155
  // DER-1643: new operator bindings default to the conservative 'informs' role.
40852
41156
  // 'drives_status' is the deliberate leaf-only status driver (childless goal only,
40853
41157
  // one per goal) and stays human-confirmed.
40854
- role: goalMeasurableRoleSchema.default("informs")
41158
+ role: goalMeasurableRoleSchema.default("informs"),
41159
+ // DER-1126 (ADR-0009 R5): required when role is 'drives_status' — a binding may not
41160
+ // drive status without a second anchor. Optional here (only drives_status needs it);
41161
+ // the command rejects a driver bind that omits it, exactly like signal.bind_confirm.
41162
+ second_anchor: goalDriverAnchorSchema.optional()
40855
41163
  }).strict();
40856
41164
  var goalBindMeasurableOutputSchema = external_exports.object({
40857
- goal_id: uuidSchema8,
40858
- measurable_id: uuidSchema8,
41165
+ goal_id: uuidSchema9,
41166
+ measurable_id: uuidSchema9,
40859
41167
  role: goalMeasurableRoleSchema,
40860
41168
  // Per-binding steward opt-in; a fresh binding is always created OFF.
40861
41169
  auto_status_enabled: external_exports.boolean(),
@@ -40869,27 +41177,31 @@ var goalBindMeasurableOutputSchema = external_exports.object({
40869
41177
  // DER-1633: false for a fresh binding; true when this exact (goal, Signal) pair was
40870
41178
  // already bound — the command is an idempotent no-op (no new event, no duplicate
40871
41179
  // confirmation). Lets a caller distinguish "just bound" from "already bound".
40872
- already_bound: external_exports.boolean()
41180
+ already_bound: external_exports.boolean(),
41181
+ // DER-1126: the second anchor recorded when this binding was promoted to (or created
41182
+ // as) the status driver. Null for an 'informs' binding (no anchor) and for a legacy
41183
+ // driver bound before the anchor gate existed.
41184
+ driver_anchor: goalDriverAnchorSchema.nullable()
40873
41185
  }).strict();
40874
41186
  var goalUnbindMeasurableInputSchema = external_exports.object({
40875
- goal_id: uuidSchema8,
40876
- measurable_id: uuidSchema8,
41187
+ goal_id: uuidSchema9,
41188
+ measurable_id: uuidSchema9,
40877
41189
  // Which binding to remove; defaults to the status driver (the historical unbind).
40878
41190
  role: goalMeasurableRoleSchema.default("drives_status")
40879
41191
  }).strict();
40880
41192
  var goalUnbindMeasurableOutputSchema = external_exports.object({
40881
- goal_id: uuidSchema8,
40882
- measurable_id: uuidSchema8,
41193
+ goal_id: uuidSchema9,
41194
+ measurable_id: uuidSchema9,
40883
41195
  removed: external_exports.boolean()
40884
41196
  }).strict();
40885
41197
  var goalSetAutoStatusInputSchema = external_exports.object({
40886
- goal_id: uuidSchema8,
40887
- measurable_id: uuidSchema8,
41198
+ goal_id: uuidSchema9,
41199
+ measurable_id: uuidSchema9,
40888
41200
  enabled: external_exports.boolean()
40889
41201
  }).strict();
40890
41202
  var goalSetAutoStatusOutputSchema = external_exports.object({
40891
- goal_id: uuidSchema8,
40892
- measurable_id: uuidSchema8,
41203
+ goal_id: uuidSchema9,
41204
+ measurable_id: uuidSchema9,
40893
41205
  auto_status_enabled: external_exports.boolean(),
40894
41206
  // The goal's status after applying: enabling opts in and, when a confirmed
40895
41207
  // reading is available on a childless leaf that is not human-pinned, drives the
@@ -40899,7 +41211,7 @@ var goalSetAutoStatusOutputSchema = external_exports.object({
40899
41211
  applied_from_signal: external_exports.boolean()
40900
41212
  }).strict();
40901
41213
  var goalMeasurableBindingSchema = external_exports.object({
40902
- measurable_id: uuidSchema8,
41214
+ measurable_id: uuidSchema9,
40903
41215
  name: external_exports.string(),
40904
41216
  unit: external_exports.string(),
40905
41217
  role: external_exports.literal("drives_status"),
@@ -40910,28 +41222,32 @@ var goalMeasurableBindingSchema = external_exports.object({
40910
41222
  computed_status: goalStatusSchema.nullable(),
40911
41223
  // The latest confirmed reading's value (null while awaiting one) — enough to render
40912
41224
  // "measured by <Signal>: <value> <unit>" instead of a bare "Not measured".
40913
- last_reading_value: external_exports.number().nullable()
41225
+ last_reading_value: external_exports.number().nullable(),
41226
+ // DER-1126: the second anchor recorded when this driver was confirmed (null for a
41227
+ // legacy driver bound before the anchor gate). Lets the driver view show "Anchored on
41228
+ // <period>: expected <value>".
41229
+ driver_anchor: goalDriverAnchorSchema.nullable()
40914
41230
  }).strict();
40915
41231
  var goalListMeasurablesInputSchema = external_exports.object({
40916
- goal_id: uuidSchema8
41232
+ goal_id: uuidSchema9
40917
41233
  }).strict();
40918
41234
  var goalListMeasurablesOutputSchema = external_exports.object({
40919
- goal_id: uuidSchema8,
41235
+ goal_id: uuidSchema9,
40920
41236
  bindings: external_exports.array(goalMeasurableBindingSchema)
40921
41237
  }).strict();
40922
41238
  var goalCoreSchema = external_exports.object({
40923
- id: uuidSchema8,
41239
+ id: uuidSchema9,
40924
41240
  title: external_exports.string(),
40925
41241
  kind: external_exports.enum(["objective", "cycle_goal", "company_objective", "seat_goal", "milestone"]),
40926
41242
  status: goalStatusSchema,
40927
41243
  status_source: goalStatusSourceSchema,
40928
41244
  progress_pct: external_exports.number().int().min(0).max(100).nullable(),
40929
- seat_id: uuidSchema8.nullable(),
40930
- parent_goal_id: uuidSchema8.nullable(),
41245
+ seat_id: uuidSchema9.nullable(),
41246
+ parent_goal_id: uuidSchema9.nullable(),
40931
41247
  definition_of_done: external_exports.string()
40932
41248
  }).strict();
40933
41249
  var goalGetInputSchema = external_exports.object({
40934
- goal_id: uuidSchema8
41250
+ goal_id: uuidSchema9
40935
41251
  }).strict();
40936
41252
  var goalGetOutputSchema = external_exports.object({
40937
41253
  goal: goalCoreSchema
@@ -40941,16 +41257,16 @@ var frictionListInputSchema = external_exports.object({
40941
41257
  status: external_exports.enum(["open", "diagnosing", "resolved", "dropped", "active", "all"]).optional()
40942
41258
  }).strict();
40943
41259
  var frictionIssueSummarySchema = external_exports.object({
40944
- issue_id: uuidSchema8,
40945
- raised_by_seat_id: uuidSchema8,
41260
+ issue_id: uuidSchema9,
41261
+ raised_by_seat_id: uuidSchema9,
40946
41262
  raised_by_seat_name: external_exports.string(),
40947
41263
  summary: external_exports.string(),
40948
41264
  severity: external_exports.enum(["low", "med", "high", "critical"]),
40949
41265
  impact_score: external_exports.number(),
40950
41266
  status: issueStatusSchema,
40951
- blocking_goal_id: uuidSchema8.nullable(),
40952
- broken_measurable_id: uuidSchema8.nullable(),
40953
- action_task_id: uuidSchema8.nullable(),
41267
+ blocking_goal_id: uuidSchema9.nullable(),
41268
+ broken_measurable_id: uuidSchema9.nullable(),
41269
+ action_task_id: uuidSchema9.nullable(),
40954
41270
  root_cause: external_exports.string().nullable(),
40955
41271
  resolved_at: external_exports.string().nullable(),
40956
41272
  created_at: external_exports.string()
@@ -40962,42 +41278,42 @@ var frictionIssueDetailSchema = frictionIssueSummarySchema.extend({
40962
41278
  raised_by_seat_type: external_exports.enum(["human", "agent", "hybrid"]),
40963
41279
  raised_by_seat_steward_name: external_exports.string().nullable(),
40964
41280
  origin_actor_kind: external_exports.enum(["user", "agent", "system"]).nullable(),
40965
- origin_actor_id: uuidSchema8.nullable(),
41281
+ origin_actor_id: uuidSchema9.nullable(),
40966
41282
  evidence: external_exports.unknown(),
40967
41283
  action_task_title: external_exports.string().nullable(),
40968
- action_task_owner_seat_id: uuidSchema8.nullable(),
41284
+ action_task_owner_seat_id: uuidSchema9.nullable(),
40969
41285
  action_task_owner_seat_name: external_exports.string().nullable(),
40970
41286
  action_task_due_on: external_exports.string().nullable(),
40971
- decision_id: uuidSchema8.nullable(),
41287
+ decision_id: uuidSchema9.nullable(),
40972
41288
  decision_title: external_exports.string().nullable(),
40973
41289
  decision_summary: external_exports.string().nullable(),
40974
41290
  decided_by_name: external_exports.string().nullable(),
40975
41291
  updated_at: external_exports.string()
40976
41292
  }).strict();
40977
41293
  var frictionGetInputSchema = external_exports.object({
40978
- issue_id: uuidSchema8
41294
+ issue_id: uuidSchema9
40979
41295
  }).strict();
40980
41296
  var frictionGetOutputSchema = external_exports.object({
40981
41297
  issue: frictionIssueDetailSchema
40982
41298
  }).strict();
40983
41299
  var frictionUpdateStatusInputSchema = external_exports.object({
40984
- issue_id: uuidSchema8,
41300
+ issue_id: uuidSchema9,
40985
41301
  status: external_exports.enum(["open", "diagnosing"])
40986
41302
  }).strict();
40987
41303
  var frictionUpdateStatusOutputSchema = external_exports.object({
40988
- issue_id: uuidSchema8,
41304
+ issue_id: uuidSchema9,
40989
41305
  status: external_exports.enum(["open", "diagnosing"]),
40990
- event_id: uuidSchema8
41306
+ event_id: uuidSchema9
40991
41307
  }).strict();
40992
41308
  var frictionResolveInputSchema = external_exports.object({
40993
- issue_id: uuidSchema8,
41309
+ issue_id: uuidSchema9,
40994
41310
  resolution_mode: external_exports.enum(["ids", "already_fixed"]).default("ids"),
40995
41311
  root_cause: external_exports.string().trim().min(1),
40996
- owner_seat_id: uuidSchema8.optional(),
41312
+ owner_seat_id: uuidSchema9.optional(),
40997
41313
  task_title: external_exports.string().trim().min(1).optional(),
40998
41314
  task_description: external_exports.string().trim().min(1).optional(),
40999
41315
  done_by: dateOnlySchema.optional(),
41000
- resolving_seat_id: uuidSchema8.optional()
41316
+ resolving_seat_id: uuidSchema9.optional()
41001
41317
  }).strict().superRefine((value, ctx) => {
41002
41318
  if (value.resolution_mode !== "ids") {
41003
41319
  return;
@@ -41016,38 +41332,38 @@ var frictionResolveInputSchema = external_exports.object({
41016
41332
  }
41017
41333
  });
41018
41334
  var frictionResolveOutputSchema = external_exports.object({
41019
- issue_id: uuidSchema8,
41335
+ issue_id: uuidSchema9,
41020
41336
  status: external_exports.literal("resolved"),
41021
- action_task_id: uuidSchema8.nullable(),
41022
- decision_id: uuidSchema8
41337
+ action_task_id: uuidSchema9.nullable(),
41338
+ decision_id: uuidSchema9
41023
41339
  }).strict();
41024
41340
  var frictionLinkTaskInputSchema = external_exports.object({
41025
- issue_id: uuidSchema8,
41026
- task_id: uuidSchema8
41341
+ issue_id: uuidSchema9,
41342
+ task_id: uuidSchema9
41027
41343
  }).strict();
41028
41344
  var frictionLinkTaskOutputSchema = external_exports.object({
41029
- issue_id: uuidSchema8,
41030
- action_task_id: uuidSchema8
41345
+ issue_id: uuidSchema9,
41346
+ action_task_id: uuidSchema9
41031
41347
  }).strict();
41032
41348
  var taskCreateInputSchema = external_exports.object({
41033
- owner_seat_id: uuidSchema8,
41034
- from_seat_id: uuidSchema8.optional(),
41349
+ owner_seat_id: uuidSchema9,
41350
+ from_seat_id: uuidSchema9.optional(),
41035
41351
  title: external_exports.string().trim().min(1),
41036
41352
  description: external_exports.string().trim().min(1),
41037
- goal_id: uuidSchema8.optional(),
41353
+ goal_id: uuidSchema9.optional(),
41038
41354
  acceptance_criteria: external_exports.array(external_exports.string().min(1)).optional(),
41039
41355
  due_on: dateOnlySchema.optional()
41040
41356
  }).strict();
41041
41357
  var taskCreateOutputSchema = external_exports.object({
41042
- task_id: uuidSchema8,
41043
- owner_seat_id: uuidSchema8,
41044
- from_seat_id: uuidSchema8.nullable(),
41358
+ task_id: uuidSchema9,
41359
+ owner_seat_id: uuidSchema9,
41360
+ from_seat_id: uuidSchema9.nullable(),
41045
41361
  status: external_exports.string(),
41046
41362
  due_on: external_exports.string().nullable()
41047
41363
  }).strict();
41048
41364
  var taskUpdateInputSchema = external_exports.object({
41049
- task_id: uuidSchema8,
41050
- owner_seat_id: uuidSchema8.optional(),
41365
+ task_id: uuidSchema9,
41366
+ owner_seat_id: uuidSchema9.optional(),
41051
41367
  due_on: dateOnlySchema.optional(),
41052
41368
  title: external_exports.string().trim().min(1).optional(),
41053
41369
  description: external_exports.string().trim().min(1).optional(),
@@ -41057,17 +41373,17 @@ var taskUpdateInputSchema = external_exports.object({
41057
41373
  { message: "Provide at least one field to update." }
41058
41374
  );
41059
41375
  var taskUpdateOutputSchema = external_exports.object({
41060
- task_id: uuidSchema8,
41061
- owner_seat_id: uuidSchema8,
41062
- from_seat_id: uuidSchema8.nullable(),
41376
+ task_id: uuidSchema9,
41377
+ owner_seat_id: uuidSchema9,
41378
+ from_seat_id: uuidSchema9.nullable(),
41063
41379
  status: external_exports.string(),
41064
41380
  due_on: external_exports.string().nullable()
41065
41381
  }).strict();
41066
41382
  var syncBriefCompileInputSchema = external_exports.object({
41067
- cluster_id: uuidSchema8.optional()
41383
+ cluster_id: uuidSchema9.optional()
41068
41384
  }).strict();
41069
41385
  var syncBriefRefSchema = external_exports.object({
41070
- sync_brief_id: uuidSchema8,
41386
+ sync_brief_id: uuidSchema9,
41071
41387
  period_start: dateOnlySchema,
41072
41388
  period_end: dateOnlySchema,
41073
41389
  compiled_at: external_exports.string(),
@@ -41076,10 +41392,10 @@ var syncBriefRefSchema = external_exports.object({
41076
41392
  created: external_exports.boolean()
41077
41393
  }).strict();
41078
41394
  var syncBriefGetInputSchema = external_exports.object({
41079
- sync_brief_id: uuidSchema8.optional()
41395
+ sync_brief_id: uuidSchema9.optional()
41080
41396
  }).strict();
41081
41397
  var syncBriefGetOutputSchema = external_exports.object({
41082
- sync_brief_id: uuidSchema8,
41398
+ sync_brief_id: uuidSchema9,
41083
41399
  period_start: dateOnlySchema,
41084
41400
  period_end: dateOnlySchema,
41085
41401
  compiled_at: external_exports.string(),
@@ -41088,10 +41404,10 @@ var syncBriefGetOutputSchema = external_exports.object({
41088
41404
  doc: external_exports.unknown()
41089
41405
  }).strict();
41090
41406
  var syncRunStartInputSchema = external_exports.object({
41091
- cluster_id: uuidSchema8.optional()
41407
+ cluster_id: uuidSchema9.optional()
41092
41408
  }).strict();
41093
41409
  var syncRunStartOutputSchema = external_exports.object({
41094
- sync_brief_id: uuidSchema8,
41410
+ sync_brief_id: uuidSchema9,
41095
41411
  period_start: dateOnlySchema,
41096
41412
  period_end: dateOnlySchema,
41097
41413
  compiled_at: external_exports.string(),
@@ -41099,25 +41415,25 @@ var syncRunStartOutputSchema = external_exports.object({
41099
41415
  degraded: external_exports.boolean()
41100
41416
  }).strict();
41101
41417
  var syncRunCompleteInputSchema = external_exports.object({
41102
- sync_brief_id: uuidSchema8
41418
+ sync_brief_id: uuidSchema9
41103
41419
  }).strict();
41104
41420
  var syncRunCompleteOutputSchema = external_exports.object({
41105
- sync_brief_id: uuidSchema8,
41106
- event_id: uuidSchema8,
41107
- decision_ids: external_exports.array(uuidSchema8),
41108
- 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)
41109
41425
  }).strict();
41110
41426
  var syncItemAssignInputSchema = external_exports.object({
41111
- sync_brief_id: uuidSchema8,
41112
- owner_seat_id: uuidSchema8,
41427
+ sync_brief_id: uuidSchema9,
41428
+ owner_seat_id: uuidSchema9,
41113
41429
  title: external_exports.string().trim().min(1),
41114
41430
  description: external_exports.string().trim().min(1),
41115
41431
  due_on: dateOnlySchema.optional()
41116
41432
  }).strict();
41117
41433
  var syncItemAssignOutputSchema = external_exports.object({
41118
- sync_brief_id: uuidSchema8,
41119
- task_id: uuidSchema8,
41120
- owner_seat_id: uuidSchema8,
41434
+ sync_brief_id: uuidSchema9,
41435
+ task_id: uuidSchema9,
41436
+ owner_seat_id: uuidSchema9,
41121
41437
  status: external_exports.string(),
41122
41438
  due_on: external_exports.string().nullable()
41123
41439
  }).strict();
@@ -41613,18 +41929,18 @@ function parseNinetyRocksCsv(text) {
41613
41929
  }
41614
41930
 
41615
41931
  // ../../packages/protocol/src/markdown-readout.ts
41616
- var uuidSchema9 = external_exports.string().uuid();
41932
+ var uuidSchema10 = external_exports.string().uuid();
41617
41933
  var markdownOutputSchema = external_exports.object({
41618
41934
  markdown: external_exports.string().min(1)
41619
41935
  }).strict();
41620
41936
  var compassShowMarkdownInputSchema = external_exports.object({}).strict();
41621
41937
  var charterShowMarkdownInputSchema = external_exports.object({
41622
- seat_id: uuidSchema9
41938
+ seat_id: uuidSchema10
41623
41939
  }).strict();
41624
41940
  var charterShowMarkdownOutputSchema = external_exports.object({
41625
41941
  markdown: external_exports.string().min(1),
41626
- charter_version_id: uuidSchema9.nullable(),
41627
- seat_id: uuidSchema9,
41942
+ charter_version_id: uuidSchema10.nullable(),
41943
+ seat_id: uuidSchema10,
41628
41944
  version: external_exports.number().int().nonnegative().nullable(),
41629
41945
  status: external_exports.string().nullable(),
41630
41946
  doc: external_exports.unknown().nullable(),
@@ -41634,7 +41950,7 @@ var charterShowMarkdownOutputSchema = external_exports.object({
41634
41950
  }).strict().nullable()
41635
41951
  }).strict();
41636
41952
  var agentShowMarkdownInputSchema = external_exports.object({
41637
- seat_id: uuidSchema9
41953
+ seat_id: uuidSchema10
41638
41954
  }).strict();
41639
41955
 
41640
41956
  // ../../packages/protocol/src/constants.ts
@@ -41658,7 +41974,7 @@ var SEAT_MCP_CLAIM_TOKEN_TTL_SECONDS = (FORGE_TURN_HARD_CEILING_SECONDS + FORGE_
41658
41974
 
41659
41975
  // ../../packages/protocol/src/mcp-onboarding.ts
41660
41976
  var MCP_TOKEN_ABSOLUTE_MAX_EXPIRY_MS = (MCP_TOKEN_NO_EXPIRY_SENTINEL_DAYS + 1) * 24 * 60 * 60 * 1e3;
41661
- var uuidSchema10 = external_exports.string().uuid();
41977
+ var uuidSchema11 = external_exports.string().uuid();
41662
41978
  var isoDateTime2 = external_exports.string().datetime({ offset: true });
41663
41979
  var onboardingStatusInputSchema = external_exports.object({}).strict();
41664
41980
  var onboardingStatusOutputSchema = external_exports.object({
@@ -41699,7 +42015,7 @@ var onboardingAttachReferenceInputSchema = external_exports.object({
41699
42015
  source: external_exports.string().trim().min(1).max(500).optional()
41700
42016
  }).strict();
41701
42017
  var onboardingAttachReferenceOutputSchema = external_exports.object({
41702
- document_id: uuidSchema10,
42018
+ document_id: uuidSchema11,
41703
42019
  storage_ref: external_exports.string().min(1),
41704
42020
  kind: external_exports.enum(["org_chart", "role_doc", "plan", "financial", "other"]),
41705
42021
  title: external_exports.string().min(1).nullable()
@@ -41721,7 +42037,7 @@ var onboardingCreateInviteInputSchema = external_exports.object({
41721
42037
  flags: external_exports.record(external_exports.string(), external_exports.unknown()).default({})
41722
42038
  }).strict();
41723
42039
  var onboardingCreateInviteOutputSchema = external_exports.object({
41724
- invite_id: uuidSchema10,
42040
+ invite_id: uuidSchema11,
41725
42041
  email: external_exports.string().email(),
41726
42042
  role: external_exports.enum(["owner", "admin", "steward", "member"]),
41727
42043
  token: external_exports.string().min(1)
@@ -41734,36 +42050,36 @@ var tenantAnthropicKeySaveOutputSchema = external_exports.object({
41734
42050
  }).strict();
41735
42051
  var seatCreateInputSchema = external_exports.object({
41736
42052
  name: external_exports.string().trim().min(1).max(120),
41737
- parent_seat_id: uuidSchema10.nullable().optional(),
42053
+ parent_seat_id: uuidSchema11.nullable().optional(),
41738
42054
  seat_type: external_exports.enum(["human", "agent", "hybrid"]).default("human")
41739
42055
  }).strict();
41740
42056
  var seatCreateOutputSchema = external_exports.object({
41741
- seat_id: uuidSchema10
42057
+ seat_id: uuidSchema11
41742
42058
  }).strict();
41743
42059
  var seatRenameInputSchema = external_exports.object({
41744
- seat_id: uuidSchema10,
42060
+ seat_id: uuidSchema11,
41745
42061
  name: external_exports.string().trim().min(1).max(120)
41746
42062
  }).strict();
41747
42063
  var seatReparentInputSchema = external_exports.object({
41748
- seat_id: uuidSchema10,
41749
- new_parent_seat_id: uuidSchema10.nullable()
42064
+ seat_id: uuidSchema11,
42065
+ new_parent_seat_id: uuidSchema11.nullable()
41750
42066
  }).strict();
41751
42067
  var seatSetTypeInputSchema = external_exports.object({
41752
- seat_id: uuidSchema10,
42068
+ seat_id: uuidSchema11,
41753
42069
  seat_type: external_exports.enum(["human", "agent", "hybrid"])
41754
42070
  }).strict();
41755
42071
  var seatDecommissionInputSchema = external_exports.object({
41756
- seat_id: uuidSchema10
42072
+ seat_id: uuidSchema11
41757
42073
  }).strict();
41758
42074
  var seatMutationOutputSchema = external_exports.object({
41759
- seat_id: uuidSchema10
42075
+ seat_id: uuidSchema11
41760
42076
  }).strict();
41761
42077
  var seatDecommissionPreviewOutputSchema = external_exports.object({
41762
- seat_id: uuidSchema10,
42078
+ seat_id: uuidSchema11,
41763
42079
  seat_name: external_exports.string(),
41764
42080
  previous_status: external_exports.enum(["draft", "active", "vacant", "decommissioned"]),
41765
42081
  active_occupancy_count: external_exports.number().int().nonnegative(),
41766
- active_agent_ids: external_exports.array(uuidSchema10),
42082
+ active_agent_ids: external_exports.array(uuidSchema11),
41767
42083
  active_charter_count: external_exports.number().int().nonnegative(),
41768
42084
  active_mcp_token_count: external_exports.number().int().nonnegative(),
41769
42085
  active_credential_count: external_exports.number().int().nonnegative(),
@@ -41773,15 +42089,15 @@ var seatDecommissionPreviewOutputSchema = external_exports.object({
41773
42089
  effects: external_exports.array(external_exports.string())
41774
42090
  }).strict();
41775
42091
  var charterDraftInputSchema = external_exports.object({
41776
- seat_id: uuidSchema10
42092
+ seat_id: uuidSchema11
41777
42093
  }).strict();
41778
42094
  var charterDraftOutputSchema = external_exports.object({
41779
- charter_version_id: uuidSchema10,
41780
- seat_id: uuidSchema10,
42095
+ charter_version_id: uuidSchema11,
42096
+ seat_id: uuidSchema11,
41781
42097
  doc: external_exports.unknown()
41782
42098
  }).strict();
41783
42099
  var charterUpdateDraftInputSchema = external_exports.object({
41784
- charter_version_id: uuidSchema10,
42100
+ charter_version_id: uuidSchema11,
41785
42101
  // DER-785 (Part G): the full Charter document contract (was `z.unknown()`).
41786
42102
  // The DB layer already validated this with `charterSchema.parse`; advertising
41787
42103
  // it here gives `command.describe`/`rost command schema` a real shape and a
@@ -41789,17 +42105,17 @@ var charterUpdateDraftInputSchema = external_exports.object({
41789
42105
  doc: charterDocSchema
41790
42106
  }).strict();
41791
42107
  var charterSetInputSchema = external_exports.object({
41792
- seat_id: uuidSchema10,
42108
+ seat_id: uuidSchema11,
41793
42109
  doc: charterDocSchema,
41794
42110
  approve: external_exports.boolean().default(false)
41795
42111
  }).strict();
41796
42112
  var charterMutationOutputSchema = external_exports.object({
41797
- charter_version_id: uuidSchema10,
41798
- seat_id: uuidSchema10
42113
+ charter_version_id: uuidSchema11,
42114
+ seat_id: uuidSchema11
41799
42115
  }).strict();
41800
42116
  var charterApproveInputSchema = external_exports.object({
41801
- seat_id: uuidSchema10.optional(),
41802
- charter_version_id: uuidSchema10.optional(),
42117
+ seat_id: uuidSchema11.optional(),
42118
+ charter_version_id: uuidSchema11.optional(),
41803
42119
  // DER-785 (Part G): a partial of the Charter doc shape (was an untyped record).
41804
42120
  // These fields are shallow-merged onto the existing draft, then the merged doc
41805
42121
  // is re-validated against the full schema at persist time.
@@ -41814,20 +42130,20 @@ var charterDraftSkipReasonSchema = external_exports.enum(["seat_not_active", "ch
41814
42130
  var charterDraftAllOutputSchema = external_exports.object({
41815
42131
  drafted: external_exports.number().int().nonnegative(),
41816
42132
  skipped: external_exports.number().int().nonnegative(),
41817
- draft_ids: external_exports.array(uuidSchema10),
42133
+ draft_ids: external_exports.array(uuidSchema11),
41818
42134
  skipped_seats: external_exports.array(external_exports.object({
41819
- seat_id: uuidSchema10,
42135
+ seat_id: uuidSchema11,
41820
42136
  reason: charterDraftSkipReasonSchema
41821
42137
  }).strict())
41822
42138
  }).strict();
41823
42139
  var charterSkipInputSchema = external_exports.object({
41824
- charter_version_id: uuidSchema10
42140
+ charter_version_id: uuidSchema11
41825
42141
  }).strict();
41826
42142
  var charterApplySeatTypeRecommendationInputSchema = external_exports.object({
41827
- charter_version_id: uuidSchema10
42143
+ charter_version_id: uuidSchema11
41828
42144
  }).strict();
41829
42145
  var charterSignManifestInputSchema = external_exports.object({
41830
- charter_version_id: uuidSchema10
42146
+ charter_version_id: uuidSchema11
41831
42147
  }).strict();
41832
42148
  var pendingConfirmationSchema = external_exports.object({
41833
42149
  confirmationId: external_exports.string().min(1),
@@ -41871,13 +42187,13 @@ var confirmationListInputSchema = external_exports.object({
41871
42187
  limit: external_exports.number().int().min(1).max(200).optional()
41872
42188
  }).strict();
41873
42189
  var confirmationSummarySchema = external_exports.object({
41874
- id: uuidSchema10,
42190
+ id: uuidSchema11,
41875
42191
  command_id: external_exports.string(),
41876
42192
  redacted_args: external_exports.unknown(),
41877
42193
  actor_kind: external_exports.enum(["user", "agent", "system"]),
41878
42194
  source: external_exports.string(),
41879
42195
  scope_kind: external_exports.enum(["tenant_admin", "tenant", "seat"]),
41880
- seat_id: uuidSchema10.nullable(),
42196
+ seat_id: uuidSchema11.nullable(),
41881
42197
  seat_name: external_exports.string().nullable(),
41882
42198
  seat_type: external_exports.enum(["human", "agent", "hybrid"]).nullable(),
41883
42199
  risk_level: external_exports.enum(["normal", "sensitive", "dangerous"]),
@@ -41889,28 +42205,28 @@ var confirmationListOutputSchema = external_exports.object({
41889
42205
  confirmations: external_exports.array(confirmationSummarySchema)
41890
42206
  }).strict();
41891
42207
  var credentialIngressInputSchema = external_exports.object({
41892
- seat_id: uuidSchema10.optional(),
42208
+ seat_id: uuidSchema11.optional(),
41893
42209
  provider: external_exports.string().trim().min(1),
41894
42210
  scope_description: external_exports.string().trim().min(1),
41895
42211
  secret_name: external_exports.string().trim().min(1),
41896
42212
  secret: external_exports.string().trim().min(1)
41897
42213
  }).strict();
41898
42214
  var credentialIngressOutputSchema = external_exports.object({
41899
- credential_id: uuidSchema10,
42215
+ credential_id: uuidSchema11,
41900
42216
  provider: external_exports.string().min(1),
41901
- seat_id: uuidSchema10.nullable()
42217
+ seat_id: uuidSchema11.nullable()
41902
42218
  }).strict();
41903
42219
  var agentGoLiveInputSchema = external_exports.object({
41904
- seat_id: uuidSchema10,
41905
- charter_version_id: uuidSchema10
42220
+ seat_id: uuidSchema11,
42221
+ charter_version_id: uuidSchema11
41906
42222
  }).strict();
41907
42223
  var agentGoLiveOutputSchema = external_exports.object({
41908
- seat_id: uuidSchema10,
41909
- charter_version_id: uuidSchema10,
42224
+ seat_id: uuidSchema11,
42225
+ charter_version_id: uuidSchema11,
41910
42226
  status: external_exports.literal("live")
41911
42227
  }).strict();
41912
42228
  var compassSetInputSchema = external_exports.object({
41913
- draft_id: uuidSchema10.optional(),
42229
+ draft_id: uuidSchema11.optional(),
41914
42230
  doc: compassDraftSchema.optional(),
41915
42231
  approve: external_exports.boolean().default(false)
41916
42232
  }).strict().refine((input) => Boolean(input.draft_id) !== Boolean(input.doc), {
@@ -41918,7 +42234,7 @@ var compassSetInputSchema = external_exports.object({
41918
42234
  path: ["draft_id"]
41919
42235
  });
41920
42236
  var compassMutationOutputSchema = external_exports.object({
41921
- compass_version_id: uuidSchema10,
42237
+ compass_version_id: uuidSchema11,
41922
42238
  status: external_exports.enum(["draft", "active", "superseded"]),
41923
42239
  version: external_exports.number().int().nonnegative()
41924
42240
  }).strict();
@@ -41926,42 +42242,42 @@ var compassDraftInputSchema = external_exports.object({
41926
42242
  doc: compassDraftSchema
41927
42243
  }).strict();
41928
42244
  var compassUpdateDraftInputSchema = external_exports.object({
41929
- draft_id: uuidSchema10,
42245
+ draft_id: uuidSchema11,
41930
42246
  doc: compassDraftSchema
41931
42247
  }).strict();
41932
42248
  var compassApproveVersionInputSchema = external_exports.object({
41933
- draft_id: uuidSchema10
42249
+ draft_id: uuidSchema11
41934
42250
  }).strict();
41935
42251
  var compassRejectDraftInputSchema = external_exports.object({
41936
- draft_id: uuidSchema10
42252
+ draft_id: uuidSchema11
41937
42253
  }).strict();
41938
42254
  var compassAnswerGapInputSchema = external_exports.object({
41939
42255
  gap_id: external_exports.string().min(1),
41940
42256
  answer: external_exports.string().trim().min(1)
41941
42257
  }).strict();
41942
42258
  var seatStaffInputSchema = external_exports.object({
41943
- seat_id: uuidSchema10,
42259
+ seat_id: uuidSchema11,
41944
42260
  occupant: external_exports.discriminatedUnion("type", [
41945
42261
  external_exports.object({ type: external_exports.literal("vacant") }).strict(),
41946
- external_exports.object({ type: external_exports.literal("user"), user_id: uuidSchema10 }).strict(),
41947
- 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()
41948
42264
  ])
41949
42265
  }).strict();
41950
42266
  var staffingMutationOutputSchema = external_exports.object({
41951
- seat_id: uuidSchema10,
42267
+ seat_id: uuidSchema11,
41952
42268
  staffed: external_exports.enum(["vacant", "user", "agent"])
41953
42269
  }).strict();
41954
42270
  var staffingAssignUserInputSchema = external_exports.object({
41955
- seat_id: uuidSchema10,
41956
- user_id: uuidSchema10
42271
+ seat_id: uuidSchema11,
42272
+ user_id: uuidSchema11
41957
42273
  }).strict();
41958
42274
  var staffingAssignAgentDryRunInputSchema = external_exports.object({
41959
- seat_id: uuidSchema10,
41960
- agent_id: uuidSchema10
42275
+ seat_id: uuidSchema11,
42276
+ agent_id: uuidSchema11
41961
42277
  }).strict();
41962
42278
  var mcpTokenCreateInputSchema = external_exports.object({
41963
42279
  scope: external_exports.enum(["tenant_admin", "seat"]),
41964
- seat_id: uuidSchema10.optional(),
42280
+ seat_id: uuidSchema11.optional(),
41965
42281
  // DER-830: explicit absolute expiry (kept for back-compat / direct callers).
41966
42282
  // When omitted OR null, the DB default (now() + 90 days) applies — `null` is an
41967
42283
  // accepted "no explicit expiry" signal (existing UI/MCP callers pass it), so it
@@ -42005,17 +42321,17 @@ var mcpTokenCreateInputSchema = external_exports.object({
42005
42321
  }
42006
42322
  });
42007
42323
  var mcpTokenCreateOutputSchema = external_exports.object({
42008
- token_id: uuidSchema10,
42324
+ token_id: uuidSchema11,
42009
42325
  token: external_exports.string().min(1),
42010
42326
  scope: external_exports.enum(["tenant_admin", "seat"]),
42011
- seat_id: uuidSchema10.nullable()
42327
+ seat_id: uuidSchema11.nullable()
42012
42328
  }).strict();
42013
42329
  var mcpTokenRevokeInputSchema = external_exports.object({
42014
- token_id: uuidSchema10,
42015
- seat_id: uuidSchema10.optional()
42330
+ token_id: uuidSchema11,
42331
+ seat_id: uuidSchema11.optional()
42016
42332
  }).strict();
42017
42333
  var mcpTokenRevokeOutputSchema = external_exports.object({
42018
- token_id: uuidSchema10,
42334
+ token_id: uuidSchema11,
42019
42335
  revoked: external_exports.boolean()
42020
42336
  }).strict();
42021
42337
 
@@ -42028,7 +42344,7 @@ var markNotificationsReadRequestSchema = external_exports.object({
42028
42344
  });
42029
42345
 
42030
42346
  // ../../packages/protocol/src/product-analytics.ts
42031
- var uuidSchema11 = external_exports.string().uuid();
42347
+ var uuidSchema12 = external_exports.string().uuid();
42032
42348
  var safeNameSchema = external_exports.string().trim().min(1).max(120).regex(/^[a-z][a-z0-9._:-]*$/);
42033
42349
  var safeSurfaceSchema = external_exports.string().trim().min(1).max(80).regex(/^[a-z][a-z0-9_-]*$/);
42034
42350
  var routeSegmentSchema = /^(?:[a-z][a-z0-9-]{0,31}|:[a-z][a-z0-9_]{0,31}|\*)$/;
@@ -42091,8 +42407,8 @@ var recommendationOutcomeStatusSchema = external_exports.enum([
42091
42407
  ]);
42092
42408
  var durationMsSchema = external_exports.number().int().nonnegative().max(24 * 60 * 60 * 1e3).optional();
42093
42409
  var productEventInputSchema = external_exports.object({
42094
- tenant_id: uuidSchema11,
42095
- user_id: uuidSchema11.optional(),
42410
+ tenant_id: uuidSchema12,
42411
+ user_id: uuidSchema12.optional(),
42096
42412
  source: analyticsSourceSchema,
42097
42413
  event_name: safeNameSchema,
42098
42414
  route_template: routeTemplateSchema.optional(),
@@ -42101,8 +42417,8 @@ var productEventInputSchema = external_exports.object({
42101
42417
  occurred_at: external_exports.string().datetime({ offset: true }).optional()
42102
42418
  }).strict();
42103
42419
  var pageViewInputSchema = external_exports.object({
42104
- tenant_id: uuidSchema11,
42105
- user_id: uuidSchema11.optional(),
42420
+ tenant_id: uuidSchema12,
42421
+ user_id: uuidSchema12.optional(),
42106
42422
  route_template: routeTemplateSchema,
42107
42423
  referrer_route_template: routeTemplateSchema.optional(),
42108
42424
  surface: safeSurfaceSchema.default("web"),
@@ -42111,9 +42427,9 @@ var pageViewInputSchema = external_exports.object({
42111
42427
  occurred_at: external_exports.string().datetime({ offset: true }).optional()
42112
42428
  }).strict();
42113
42429
  var commandInvocationInputSchema = external_exports.object({
42114
- tenant_id: uuidSchema11,
42115
- user_id: uuidSchema11.optional(),
42116
- seat_id: uuidSchema11.optional(),
42430
+ tenant_id: uuidSchema12,
42431
+ user_id: uuidSchema12.optional(),
42432
+ seat_id: uuidSchema12.optional(),
42117
42433
  command_id: safeNameSchema,
42118
42434
  source: analyticsSourceSchema,
42119
42435
  actor_kind: external_exports.enum(["user", "agent", "system"]),
@@ -42122,7 +42438,7 @@ var commandInvocationInputSchema = external_exports.object({
42122
42438
  guard_result: external_exports.enum(["allowed", "denied_manifest", "denied_budget", "escalated", "denied_tenant_policy"]).optional(),
42123
42439
  duration_ms: durationMsSchema,
42124
42440
  confirmation_required: external_exports.boolean().optional(),
42125
- request_id: uuidSchema11.optional(),
42441
+ request_id: uuidSchema12.optional(),
42126
42442
  properties: analyticsPropertiesSchema.optional(),
42127
42443
  occurred_at: external_exports.string().datetime({ offset: true }).optional()
42128
42444
  }).strict().superRefine((value, ctx) => {
@@ -42135,8 +42451,8 @@ var commandInvocationInputSchema = external_exports.object({
42135
42451
  }
42136
42452
  });
42137
42453
  var onboardingMilestoneInputSchema = external_exports.object({
42138
- tenant_id: uuidSchema11,
42139
- user_id: uuidSchema11.optional(),
42454
+ tenant_id: uuidSchema12,
42455
+ user_id: uuidSchema12.optional(),
42140
42456
  milestone: safeNameSchema,
42141
42457
  status: analyticsOutcomeStatusSchema,
42142
42458
  step_index: external_exports.number().int().nonnegative().max(100).optional(),
@@ -42145,19 +42461,19 @@ var onboardingMilestoneInputSchema = external_exports.object({
42145
42461
  occurred_at: external_exports.string().datetime({ offset: true }).optional()
42146
42462
  }).strict();
42147
42463
  var recommendationEventInputSchema = external_exports.object({
42148
- tenant_id: uuidSchema11,
42149
- user_id: uuidSchema11.optional(),
42464
+ tenant_id: uuidSchema12,
42465
+ user_id: uuidSchema12.optional(),
42150
42466
  recommendation_type: safeNameSchema,
42151
42467
  source_surface: safeSurfaceSchema,
42152
42468
  status: recommendationOutcomeStatusSchema,
42153
42469
  target_kind: safeSurfaceSchema.optional(),
42154
- target_id: uuidSchema11.optional(),
42470
+ target_id: uuidSchema12.optional(),
42155
42471
  properties: analyticsPropertiesSchema.optional(),
42156
42472
  occurred_at: external_exports.string().datetime({ offset: true }).optional()
42157
42473
  }).strict();
42158
42474
 
42159
42475
  // ../../packages/protocol/src/reads.ts
42160
- var uuidSchema12 = external_exports.string().uuid();
42476
+ var uuidSchema13 = external_exports.string().uuid();
42161
42477
  var isoDateTime3 = external_exports.string().datetime({ offset: true });
42162
42478
  var seatTypeSchema = external_exports.enum(["human", "agent", "hybrid"]);
42163
42479
  var seatStatusSchema = external_exports.enum(["draft", "active", "vacant", "decommissioned"]);
@@ -42172,13 +42488,13 @@ var credentialStatusSchema = external_exports.enum(["active", "revoked"]);
42172
42488
  var runStatusSchema = external_exports.enum(["running", "succeeded", "failed", "timeout", "cancelled"]);
42173
42489
  var graphGetInputSchema = external_exports.object({}).strict();
42174
42490
  var graphNodeSchema = external_exports.object({
42175
- seat_id: uuidSchema12,
42491
+ seat_id: uuidSchema13,
42176
42492
  name: external_exports.string(),
42177
42493
  seat_type: seatTypeSchema,
42178
42494
  status: seatStatusSchema,
42179
- parent_seat_id: uuidSchema12.nullable(),
42495
+ parent_seat_id: uuidSchema13.nullable(),
42180
42496
  is_root: external_exports.boolean(),
42181
- steward_seat_id: uuidSchema12.nullable(),
42497
+ steward_seat_id: uuidSchema13.nullable(),
42182
42498
  occupant: external_exports.object({
42183
42499
  kind: external_exports.enum(["user", "agent"]),
42184
42500
  label: external_exports.string(),
@@ -42191,11 +42507,11 @@ var graphNodeSchema = external_exports.object({
42191
42507
  is_peer: external_exports.boolean()
42192
42508
  }).strict();
42193
42509
  var graphEdgeSchema = external_exports.object({
42194
- parent_seat_id: uuidSchema12,
42195
- child_seat_id: uuidSchema12
42510
+ parent_seat_id: uuidSchema13,
42511
+ child_seat_id: uuidSchema13
42196
42512
  }).strict();
42197
42513
  var graphGetOutputSchema = external_exports.object({
42198
- root_seat_id: uuidSchema12.nullable(),
42514
+ root_seat_id: uuidSchema13.nullable(),
42199
42515
  nodes: external_exports.array(graphNodeSchema),
42200
42516
  edges: external_exports.array(graphEdgeSchema),
42201
42517
  status_rollups: external_exports.object({
@@ -42207,32 +42523,32 @@ var graphGetOutputSchema = external_exports.object({
42207
42523
  }).strict()
42208
42524
  }).strict();
42209
42525
  var seatGetInputSchema = external_exports.object({
42210
- seat_id: uuidSchema12
42526
+ seat_id: uuidSchema13
42211
42527
  }).strict();
42212
42528
  var seatGetOutputSchema = external_exports.object({
42213
- seat_id: uuidSchema12,
42529
+ seat_id: uuidSchema13,
42214
42530
  name: external_exports.string(),
42215
42531
  seat_type: seatTypeSchema,
42216
42532
  status: seatStatusSchema,
42217
42533
  purpose: external_exports.string().nullable(),
42218
- parent_seat_id: uuidSchema12.nullable(),
42534
+ parent_seat_id: uuidSchema13.nullable(),
42219
42535
  steward_chain: external_exports.array(external_exports.object({
42220
- seat_id: uuidSchema12,
42536
+ seat_id: uuidSchema13,
42221
42537
  name: external_exports.string()
42222
42538
  }).strict()),
42223
42539
  occupancies: external_exports.array(external_exports.object({
42224
- occupancy_id: uuidSchema12,
42540
+ occupancy_id: uuidSchema13,
42225
42541
  occupant_type: external_exports.enum(["user", "agent"]),
42226
42542
  label: external_exports.string(),
42227
42543
  started_at: isoDateTime3,
42228
42544
  ended_at: isoDateTime3.nullable()
42229
42545
  }).strict()),
42230
- active_charter_version_id: uuidSchema12.nullable(),
42231
- draft_charter_version_id: uuidSchema12.nullable(),
42546
+ active_charter_version_id: uuidSchema13.nullable(),
42547
+ draft_charter_version_id: uuidSchema13.nullable(),
42232
42548
  agent_status: agentStatusEnum2.nullable(),
42233
42549
  agent_lane: agentLaneSchema2.nullable(),
42234
42550
  mcp_tokens: external_exports.array(external_exports.object({
42235
- token_id: uuidSchema12,
42551
+ token_id: uuidSchema13,
42236
42552
  scope: mcpScopeSchema,
42237
42553
  created_at: isoDateTime3,
42238
42554
  last_seen_at: isoDateTime3.nullable(),
@@ -42242,7 +42558,7 @@ var seatGetOutputSchema = external_exports.object({
42242
42558
  revoked_at: isoDateTime3.nullable()
42243
42559
  }).strict()),
42244
42560
  credentials: external_exports.array(external_exports.object({
42245
- credential_id: uuidSchema12,
42561
+ credential_id: uuidSchema13,
42246
42562
  provider: external_exports.string(),
42247
42563
  status: credentialStatusSchema
42248
42564
  }).strict()),
@@ -42254,12 +42570,12 @@ var seatGetOutputSchema = external_exports.object({
42254
42570
  }).strict()
42255
42571
  }).strict();
42256
42572
  var charterListInputSchema = external_exports.object({
42257
- seat_id: uuidSchema12.optional(),
42573
+ seat_id: uuidSchema13.optional(),
42258
42574
  status: charterStatusSchema.optional()
42259
42575
  }).strict();
42260
42576
  var charterSummarySchema = external_exports.object({
42261
- charter_version_id: uuidSchema12,
42262
- seat_id: uuidSchema12,
42577
+ charter_version_id: uuidSchema13,
42578
+ seat_id: uuidSchema13,
42263
42579
  version: external_exports.number().int().nonnegative(),
42264
42580
  status: charterStatusSchema,
42265
42581
  created_at: isoDateTime3,
@@ -42269,11 +42585,11 @@ var charterListOutputSchema = external_exports.object({
42269
42585
  charters: external_exports.array(charterSummarySchema)
42270
42586
  }).strict();
42271
42587
  var charterGetInputSchema = external_exports.object({
42272
- charter_version_id: uuidSchema12
42588
+ charter_version_id: uuidSchema13
42273
42589
  }).strict();
42274
42590
  var charterGetOutputSchema = external_exports.object({
42275
- charter_version_id: uuidSchema12,
42276
- seat_id: uuidSchema12,
42591
+ charter_version_id: uuidSchema13,
42592
+ seat_id: uuidSchema13,
42277
42593
  version: external_exports.number().int().nonnegative(),
42278
42594
  status: charterStatusSchema,
42279
42595
  created_at: isoDateTime3,
@@ -42287,7 +42603,7 @@ var charterGetOutputSchema = external_exports.object({
42287
42603
  }).strict();
42288
42604
  var compassGetCurrentInputSchema = external_exports.object({}).strict();
42289
42605
  var compassVersionRefSchema = external_exports.object({
42290
- compass_version_id: uuidSchema12,
42606
+ compass_version_id: uuidSchema13,
42291
42607
  version: external_exports.number().int().nonnegative(),
42292
42608
  status: compassStatusSchema,
42293
42609
  doc: external_exports.unknown()
@@ -42298,7 +42614,7 @@ var compassGetCurrentOutputSchema = external_exports.object({
42298
42614
  // Sources expose document id and kind only. The underlying storage_ref can
42299
42615
  // be a local file path, so it is never surfaced (redaction rule).
42300
42616
  sources: external_exports.array(external_exports.object({
42301
- document_id: uuidSchema12,
42617
+ document_id: uuidSchema13,
42302
42618
  kind: external_exports.string()
42303
42619
  }).strict())
42304
42620
  }).strict();
@@ -42313,31 +42629,31 @@ var compassGapSchema = external_exports.object({
42313
42629
  answer: external_exports.string().nullable()
42314
42630
  }).strict();
42315
42631
  var compassListGapsOutputSchema = external_exports.object({
42316
- compass_version_id: uuidSchema12.nullable(),
42632
+ compass_version_id: uuidSchema13.nullable(),
42317
42633
  unanswered: external_exports.array(compassGapSchema),
42318
42634
  answered: external_exports.array(compassGapSchema)
42319
42635
  }).strict();
42320
42636
  var agentStatusInputSchema = external_exports.object({
42321
- seat_id: uuidSchema12
42637
+ seat_id: uuidSchema13
42322
42638
  }).strict();
42323
42639
  var agentStatusOutputSchema = external_exports.object({
42324
- seat_id: uuidSchema12,
42640
+ seat_id: uuidSchema13,
42325
42641
  // DER-786 (C7): `has_agent` is true whenever a setup agent exists for the seat
42326
42642
  // — including a draft setup that has no occupancy yet — so it agrees with
42327
42643
  // agent_setup.get. `lifecycle` is the shared cross-surface term derived from
42328
42644
  // `status` (none | draft_setup | dry_run | live | …).
42329
42645
  has_agent: external_exports.boolean(),
42330
42646
  lifecycle: agentLifecycleSchema,
42331
- agent_id: uuidSchema12.nullable(),
42647
+ agent_id: uuidSchema13.nullable(),
42332
42648
  kind: agentKindSchema2.nullable(),
42333
42649
  display_name: external_exports.string().nullable(),
42334
42650
  lane: agentLaneSchema2.nullable(),
42335
42651
  status: agentStatusEnum2.nullable(),
42336
42652
  schedule_cron: external_exports.string().nullable(),
42337
42653
  live: external_exports.boolean(),
42338
- charter_version_id: uuidSchema12.nullable(),
42654
+ charter_version_id: uuidSchema13.nullable(),
42339
42655
  steward_chain: external_exports.array(external_exports.object({
42340
- seat_id: uuidSchema12,
42656
+ seat_id: uuidSchema13,
42341
42657
  name: external_exports.string()
42342
42658
  }).strict()),
42343
42659
  steward_chain_resolves_to_human: external_exports.boolean(),
@@ -42349,7 +42665,7 @@ var agentStatusOutputSchema = external_exports.object({
42349
42665
  }).strict();
42350
42666
  var agentListFleetInputSchema = external_exports.object({}).strict();
42351
42667
  var fleetOverviewRowSchema = external_exports.object({
42352
- seat_id: uuidSchema12,
42668
+ seat_id: uuidSchema13,
42353
42669
  seat_name: external_exports.string(),
42354
42670
  seat_path: external_exports.string(),
42355
42671
  lane: agentLaneSchema2.nullable(),
@@ -42366,7 +42682,7 @@ var agentListFleetOutputSchema = external_exports.object({
42366
42682
  agents: external_exports.array(fleetOverviewRowSchema)
42367
42683
  }).strict();
42368
42684
  var runErrorLogSchema = external_exports.object({
42369
- error_log_id: uuidSchema12,
42685
+ error_log_id: uuidSchema13,
42370
42686
  source: external_exports.enum(["run", "llm", "tool", "mcp", "runner", "integration", "job", "web"]),
42371
42687
  severity: external_exports.enum(["warning", "error", "critical"]),
42372
42688
  code: external_exports.string().nullable(),
@@ -42379,9 +42695,9 @@ var agentFleetDigestInputSchema = external_exports.object({
42379
42695
  error_limit: external_exports.number().int().min(1).max(100).default(50)
42380
42696
  }).strict();
42381
42697
  var fleetDigestRunSchema = external_exports.object({
42382
- run_id: uuidSchema12,
42383
- seat_id: uuidSchema12,
42384
- agent_id: uuidSchema12,
42698
+ run_id: uuidSchema13,
42699
+ seat_id: uuidSchema13,
42700
+ agent_id: uuidSchema13,
42385
42701
  status: runStatusSchema,
42386
42702
  lane: agentLaneSchema2,
42387
42703
  model: external_exports.string(),
@@ -42391,22 +42707,22 @@ var fleetDigestRunSchema = external_exports.object({
42391
42707
  error_logs: external_exports.array(runErrorLogSchema)
42392
42708
  }).strict();
42393
42709
  var fleetDigestErrorSchema = runErrorLogSchema.extend({
42394
- seat_id: uuidSchema12.nullable(),
42395
- agent_id: uuidSchema12.nullable(),
42396
- run_id: uuidSchema12.nullable(),
42710
+ seat_id: uuidSchema13.nullable(),
42711
+ agent_id: uuidSchema13.nullable(),
42712
+ run_id: uuidSchema13.nullable(),
42397
42713
  disposition: external_exports.enum(["active", "acknowledged", "resolved", "superseded"])
42398
42714
  }).strict();
42399
42715
  var fleetDigestNotificationErrorSchema = external_exports.object({
42400
- notification_id: uuidSchema12,
42716
+ notification_id: uuidSchema13,
42401
42717
  kind: external_exports.string(),
42402
42718
  channel: external_exports.string(),
42403
42719
  status: external_exports.string(),
42404
42720
  provider: external_exports.string(),
42405
42721
  error_message: external_exports.string().nullable(),
42406
- error_log_id: uuidSchema12.nullable(),
42722
+ error_log_id: uuidSchema13.nullable(),
42407
42723
  source: external_exports.enum(["run", "llm", "tool", "mcp", "runner", "integration", "job", "web"]).nullable(),
42408
- seat_id: uuidSchema12.nullable(),
42409
- run_id: uuidSchema12.nullable(),
42724
+ seat_id: uuidSchema13.nullable(),
42725
+ run_id: uuidSchema13.nullable(),
42410
42726
  created_at: isoDateTime3
42411
42727
  }).strict();
42412
42728
  var fleetDigestAgentSchema = fleetOverviewRowSchema.extend({
@@ -42455,17 +42771,17 @@ var seatTrustSummarySchema = external_exports.object({
42455
42771
  last_activity_at: isoDateTime3.nullable()
42456
42772
  }).strict();
42457
42773
  var agentListRunsInputSchema = external_exports.object({
42458
- seat_id: uuidSchema12,
42774
+ seat_id: uuidSchema13,
42459
42775
  // Conservative, bounded page size; the timeline is a recent-history view.
42460
42776
  limit: external_exports.number().int().min(1).max(200).default(50)
42461
42777
  }).strict();
42462
42778
  var agentGetRunInputSchema = external_exports.object({
42463
- seat_id: uuidSchema12,
42464
- run_id: uuidSchema12
42779
+ seat_id: uuidSchema13,
42780
+ run_id: uuidSchema13
42465
42781
  }).strict();
42466
42782
  var seatRunSchema = external_exports.object({
42467
- run_id: uuidSchema12,
42468
- agent_id: uuidSchema12,
42783
+ run_id: uuidSchema13,
42784
+ agent_id: uuidSchema13,
42469
42785
  agent_display_name: external_exports.string().nullable(),
42470
42786
  status: runStatusSchema,
42471
42787
  lane: agentLaneSchema2,
@@ -42478,16 +42794,16 @@ var seatRunSchema = external_exports.object({
42478
42794
  skill_activation_count: external_exports.number().int().nonnegative()
42479
42795
  }).strict();
42480
42796
  var seatRunDetailSchema = seatRunSchema.extend({
42481
- task_id: uuidSchema12.nullable(),
42482
- work_order_id: uuidSchema12.nullable(),
42797
+ task_id: uuidSchema13.nullable(),
42798
+ work_order_id: uuidSchema13.nullable(),
42483
42799
  transcript_ref: external_exports.string(),
42484
42800
  input_tokens: external_exports.number().int().nonnegative(),
42485
42801
  output_tokens: external_exports.number().int().nonnegative(),
42486
42802
  outcome: external_exports.record(external_exports.string(), external_exports.unknown()),
42487
42803
  error_logs: external_exports.array(runErrorLogSchema),
42488
42804
  skill_activations: external_exports.array(external_exports.object({
42489
- skill_activation_id: uuidSchema12,
42490
- skill_version_id: uuidSchema12,
42805
+ skill_activation_id: uuidSchema13,
42806
+ skill_version_id: uuidSchema13,
42491
42807
  slug: external_exports.string().min(1),
42492
42808
  name: external_exports.string().min(1),
42493
42809
  version: external_exports.number().int().positive(),
@@ -42501,23 +42817,23 @@ var seatRunDetailSchema = seatRunSchema.extend({
42501
42817
  }).strict())
42502
42818
  }).strict();
42503
42819
  var agentListRunsOutputSchema = external_exports.object({
42504
- seat_id: uuidSchema12,
42820
+ seat_id: uuidSchema13,
42505
42821
  summary: seatTrustSummarySchema,
42506
42822
  runs: external_exports.array(seatRunSchema)
42507
42823
  }).strict();
42508
42824
  var agentGetRunOutputSchema = external_exports.object({
42509
- seat_id: uuidSchema12,
42825
+ seat_id: uuidSchema13,
42510
42826
  run: seatRunDetailSchema
42511
42827
  }).strict();
42512
42828
  var agentListToolCallsInputSchema = external_exports.object({
42513
- seat_id: uuidSchema12,
42829
+ seat_id: uuidSchema13,
42514
42830
  limit: external_exports.number().int().min(1).max(200).default(50),
42515
42831
  // When true, return only HELD (non-allowed) tool calls — the governance view.
42516
42832
  held_only: external_exports.boolean().default(false)
42517
42833
  }).strict();
42518
42834
  var seatToolCallSchema = external_exports.object({
42519
- tool_call_id: uuidSchema12,
42520
- run_id: uuidSchema12.nullable(),
42835
+ tool_call_id: uuidSchema13,
42836
+ run_id: uuidSchema13.nullable(),
42521
42837
  tool_name: external_exports.string(),
42522
42838
  guard_result: guardResultSchema,
42523
42839
  manifest_clause: external_exports.string().nullable(),
@@ -42526,7 +42842,7 @@ var seatToolCallSchema = external_exports.object({
42526
42842
  finished_at: isoDateTime3.nullable()
42527
42843
  }).strict();
42528
42844
  var agentListToolCallsOutputSchema = external_exports.object({
42529
- seat_id: uuidSchema12,
42845
+ seat_id: uuidSchema13,
42530
42846
  summary: seatTrustSummarySchema,
42531
42847
  tool_calls: external_exports.array(seatToolCallSchema)
42532
42848
  }).strict();
@@ -42537,16 +42853,16 @@ var deliverableLinkSchema = external_exports.object({
42537
42853
  kind: external_exports.enum(["internal", "linear", "github", "external"])
42538
42854
  }).strict();
42539
42855
  var deliverableIdSchema = external_exports.union([
42540
- uuidSchema12,
42856
+ uuidSchema13,
42541
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)
42542
42858
  ]);
42543
42859
  var deliverableRowSchema = external_exports.object({
42544
42860
  id: deliverableIdSchema,
42545
- seat_id: uuidSchema12,
42546
- agent_id: uuidSchema12.nullable(),
42547
- run_id: uuidSchema12.nullable(),
42548
- task_id: uuidSchema12.nullable(),
42549
- 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(),
42550
42866
  kind: deliverableKindSchema,
42551
42867
  title: external_exports.string(),
42552
42868
  summary: external_exports.string().nullable(),
@@ -42559,13 +42875,13 @@ var deliverableRowSchema = external_exports.object({
42559
42875
  links: external_exports.array(deliverableLinkSchema)
42560
42876
  }).strict();
42561
42877
  var deliverableListInputSchema = external_exports.object({
42562
- seat_id: uuidSchema12
42878
+ seat_id: uuidSchema13
42563
42879
  }).strict();
42564
42880
  var deliverableListOutputSchema = external_exports.object({
42565
42881
  deliverables: external_exports.array(deliverableRowSchema)
42566
42882
  }).strict();
42567
42883
  var deliverableGetInputSchema = external_exports.object({
42568
- seat_id: uuidSchema12,
42884
+ seat_id: uuidSchema13,
42569
42885
  deliverable_id: deliverableIdSchema
42570
42886
  }).strict();
42571
42887
  var deliverableGetOutputSchema = external_exports.object({
@@ -42573,12 +42889,12 @@ var deliverableGetOutputSchema = external_exports.object({
42573
42889
  }).strict();
42574
42890
  var mcpTokenListInputSchema = external_exports.object({
42575
42891
  include_revoked: external_exports.boolean().default(false),
42576
- seat_id: uuidSchema12.optional()
42892
+ seat_id: uuidSchema13.optional()
42577
42893
  }).strict();
42578
42894
  var mcpTokenMetadataSchema = external_exports.object({
42579
- token_id: uuidSchema12,
42895
+ token_id: uuidSchema13,
42580
42896
  scope: mcpScopeSchema,
42581
- seat_id: uuidSchema12.nullable(),
42897
+ seat_id: uuidSchema13.nullable(),
42582
42898
  created_at: isoDateTime3,
42583
42899
  last_seen_at: isoDateTime3.nullable(),
42584
42900
  // DER-830: expires_at is now always present (the column is NOT NULL).
@@ -42592,29 +42908,29 @@ var mcpTokenListOutputSchema = external_exports.object({
42592
42908
  tokens: external_exports.array(mcpTokenMetadataSchema)
42593
42909
  }).strict();
42594
42910
  var errorLogListInputSchema = external_exports.object({
42595
- seat_id: uuidSchema12.optional(),
42911
+ seat_id: uuidSchema13.optional(),
42596
42912
  source: external_exports.enum(["run", "llm", "tool", "mcp", "runner", "integration", "job", "web"]).optional(),
42597
42913
  severity: external_exports.enum(["warning", "error", "critical"]).optional(),
42598
42914
  resolved: external_exports.enum(["active", "acknowledged", "resolved", "all"]).default("active"),
42599
42915
  limit: external_exports.number().int().min(1).max(200).default(50)
42600
42916
  }).strict();
42601
42917
  var errorLogListItemSchema = external_exports.object({
42602
- error_log_id: uuidSchema12,
42918
+ error_log_id: uuidSchema13,
42603
42919
  source: external_exports.enum(["run", "llm", "tool", "mcp", "runner", "integration", "job", "web"]),
42604
42920
  severity: external_exports.enum(["warning", "error", "critical"]),
42605
42921
  code: external_exports.string().nullable(),
42606
42922
  message: external_exports.string(),
42607
- seat_id: uuidSchema12.nullable(),
42608
- agent_id: uuidSchema12.nullable(),
42609
- run_id: uuidSchema12.nullable(),
42923
+ seat_id: uuidSchema13.nullable(),
42924
+ agent_id: uuidSchema13.nullable(),
42925
+ run_id: uuidSchema13.nullable(),
42610
42926
  disposition: external_exports.enum(["active", "acknowledged", "resolved", "superseded"]),
42611
42927
  resolved_at: isoDateTime3.nullable(),
42612
- resolved_by: uuidSchema12.nullable(),
42928
+ resolved_by: uuidSchema13.nullable(),
42613
42929
  resolution_reason: external_exports.string().nullable(),
42614
- linked_task_id: uuidSchema12.nullable(),
42615
- linked_issue_id: uuidSchema12.nullable(),
42930
+ linked_task_id: uuidSchema13.nullable(),
42931
+ linked_issue_id: uuidSchema13.nullable(),
42616
42932
  linked_pr_ref: external_exports.string().nullable(),
42617
- superseded_by_id: uuidSchema12.nullable(),
42933
+ superseded_by_id: uuidSchema13.nullable(),
42618
42934
  created_at: isoDateTime3
42619
42935
  }).strict();
42620
42936
  var errorLogListOutputSchema = external_exports.object({
@@ -42622,29 +42938,29 @@ var errorLogListOutputSchema = external_exports.object({
42622
42938
  total: external_exports.number().int().nonnegative()
42623
42939
  }).strict();
42624
42940
  var errorLogResolveInputSchema = external_exports.object({
42625
- error_log_id: uuidSchema12,
42941
+ error_log_id: uuidSchema13,
42626
42942
  reason: external_exports.string().trim().min(1),
42627
42943
  disposition: external_exports.enum(["acknowledged", "resolved"]).default("acknowledged"),
42628
- linked_task_id: uuidSchema12.optional(),
42629
- linked_issue_id: uuidSchema12.optional(),
42944
+ linked_task_id: uuidSchema13.optional(),
42945
+ linked_issue_id: uuidSchema13.optional(),
42630
42946
  linked_pr_ref: external_exports.string().trim().min(1).optional()
42631
42947
  }).strict();
42632
42948
  var errorLogResolveOutputSchema = external_exports.object({
42633
- error_log_id: uuidSchema12,
42949
+ error_log_id: uuidSchema13,
42634
42950
  disposition: external_exports.enum(["acknowledged", "resolved"]),
42635
42951
  resolved_at: isoDateTime3
42636
42952
  }).strict();
42637
42953
  var errorLogSupersedeInputSchema = external_exports.object({
42638
- error_log_id: uuidSchema12,
42639
- new_error_log_id: uuidSchema12,
42954
+ error_log_id: uuidSchema13,
42955
+ new_error_log_id: uuidSchema13,
42640
42956
  reason: external_exports.string().trim().min(1),
42641
- linked_task_id: uuidSchema12.optional(),
42642
- linked_issue_id: uuidSchema12.optional(),
42957
+ linked_task_id: uuidSchema13.optional(),
42958
+ linked_issue_id: uuidSchema13.optional(),
42643
42959
  linked_pr_ref: external_exports.string().trim().min(1).optional()
42644
42960
  }).strict();
42645
42961
  var errorLogSupersedeOutputSchema = external_exports.object({
42646
- error_log_id: uuidSchema12,
42647
- superseded_by_id: uuidSchema12,
42962
+ error_log_id: uuidSchema13,
42963
+ superseded_by_id: uuidSchema13,
42648
42964
  disposition: external_exports.literal("superseded"),
42649
42965
  resolved_at: isoDateTime3
42650
42966
  }).strict();
@@ -42990,13 +43306,13 @@ var tenantRenameOutputSchema = external_exports.object({
42990
43306
  }).strict();
42991
43307
 
42992
43308
  // ../../packages/protocol/src/system-health.ts
42993
- var uuidSchema13 = external_exports.string().uuid();
43309
+ var uuidSchema14 = external_exports.string().uuid();
42994
43310
  var isoDateTime5 = external_exports.string().datetime({ offset: true });
42995
43311
  var systemHealthCallerKindSchema = external_exports.enum(["tenant_admin", "member", "seat_token"]);
42996
43312
  var systemHealthCallerSchema = external_exports.object({
42997
43313
  kind: systemHealthCallerKindSchema,
42998
- seat_id: uuidSchema13.optional(),
42999
- seat_ids: external_exports.array(uuidSchema13).min(1).optional()
43314
+ seat_id: uuidSchema14.optional(),
43315
+ seat_ids: external_exports.array(uuidSchema14).min(1).optional()
43000
43316
  }).strict();
43001
43317
  var systemHealthVerdictSchema = external_exports.enum(["healthy", "degraded", "blocked"]);
43002
43318
  var systemHealthSeveritySchema = external_exports.enum(["info", "warning", "critical"]);
@@ -43034,18 +43350,18 @@ var systemHealthFindingSchema = external_exports.object({
43034
43350
  summary: external_exports.string().min(1),
43035
43351
  detail: external_exports.string().min(1),
43036
43352
  remediation: systemHealthActionSchema,
43037
- seat_id: uuidSchema13.nullable(),
43038
- goal_id: uuidSchema13.nullable(),
43039
- run_id: uuidSchema13.nullable(),
43040
- issue_id: uuidSchema13.nullable(),
43041
- task_id: uuidSchema13.nullable(),
43042
- 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()
43043
43359
  }).strict();
43044
43360
  var systemHealthScopeSchema = external_exports.object({
43045
43361
  mode: systemHealthScopeModeSchema,
43046
- root_seat_ids: external_exports.array(uuidSchema13),
43047
- included_seat_ids: external_exports.array(uuidSchema13),
43048
- 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(),
43049
43365
  total_seat_count: external_exports.number().int().nonnegative()
43050
43366
  }).strict();
43051
43367
  var systemHealthFleetSectionSchema = external_exports.object({
@@ -43095,7 +43411,7 @@ var systemHealthSectionsSchema = external_exports.object({
43095
43411
  sync: systemHealthSyncSectionSchema
43096
43412
  }).strict();
43097
43413
  var systemHealthInputSchema = external_exports.object({
43098
- seat_id: uuidSchema13.optional()
43414
+ seat_id: uuidSchema14.optional()
43099
43415
  }).strict();
43100
43416
  var systemHealthCheckInputSchema = systemHealthInputSchema.extend({
43101
43417
  caller: systemHealthCallerSchema
@@ -43109,6 +43425,37 @@ var systemHealthOutputSchema = external_exports.object({
43109
43425
  findings: external_exports.array(systemHealthFindingSchema)
43110
43426
  }).strict();
43111
43427
 
43428
+ // ../../packages/protocol/src/baserow-filter-operators.ts
43429
+ var baserowFilterOperatorSchema = external_exports.enum([
43430
+ "equal",
43431
+ "not_equal",
43432
+ "higher_than",
43433
+ "higher_than_or_equal",
43434
+ "lower_than",
43435
+ "lower_than_or_equal",
43436
+ "contains",
43437
+ "contains_not",
43438
+ "empty",
43439
+ "not_empty"
43440
+ ]);
43441
+ var BASEROW_FILTER_OPERATORS = {
43442
+ equal: { requiresValue: true, label: "equals" },
43443
+ not_equal: { requiresValue: true, label: "does not equal" },
43444
+ higher_than: { requiresValue: true, label: "is greater than" },
43445
+ higher_than_or_equal: { requiresValue: true, label: "is greater than or equal to" },
43446
+ lower_than: { requiresValue: true, label: "is less than" },
43447
+ lower_than_or_equal: { requiresValue: true, label: "is less than or equal to" },
43448
+ contains: { requiresValue: true, label: "contains" },
43449
+ contains_not: { requiresValue: true, label: "does not contain" },
43450
+ empty: { requiresValue: false, label: "is empty" },
43451
+ not_empty: { requiresValue: false, label: "is not empty" }
43452
+ };
43453
+ var baserowFilterOperatorOptions = Object.keys(BASEROW_FILTER_OPERATORS).map((value) => ({
43454
+ value,
43455
+ label: BASEROW_FILTER_OPERATORS[value].label,
43456
+ requiresValue: BASEROW_FILTER_OPERATORS[value].requiresValue
43457
+ }));
43458
+
43112
43459
  // ../../packages/protocol/src/signal-source.ts
43113
43460
  var uuid9 = external_exports.string().uuid();
43114
43461
  var signalCadenceSchema = external_exports.enum(["daily", "weekly", "monthly", "quarterly", "annual"]);
@@ -43239,11 +43586,23 @@ var signalBindConfirmOutputSchema = external_exports.object({
43239
43586
  binding_status: external_exports.literal("active")
43240
43587
  }).strict();
43241
43588
 
43589
+ // ../../packages/protocol/src/baserow-filtered-count.ts
43590
+ var FIELD_KEY_PATTERN = /^field_\d+$/;
43591
+ var baserowFilteredCountInputSchema = external_exports.object({
43592
+ endpointHost: external_exports.string().min(1).max(255),
43593
+ // Accept string or number from callers (CLI/MCP/assistant), coerce to a bounded
43594
+ // positive integer before it is ever used as a URL path segment.
43595
+ tableId: external_exports.coerce.number().int().positive().max(2147483647),
43596
+ fieldKey: external_exports.string().regex(FIELD_KEY_PATTERN, "fieldKey must look like field_123"),
43597
+ operator: baserowFilterOperatorSchema,
43598
+ value: external_exports.string().max(200).optional()
43599
+ }).strict();
43600
+
43242
43601
  // ../../packages/protocol/src/signal-report.ts
43243
- var uuidSchema14 = external_exports.string().uuid();
43602
+ var uuidSchema15 = external_exports.string().uuid();
43244
43603
  var dateOnlySchema2 = external_exports.string().regex(/^\d{4}-\d{2}-\d{2}$/, "expected YYYY-MM-DD");
43245
43604
  var signalReportInputSchema = external_exports.object({
43246
- measurable_id: uuidSchema14,
43605
+ measurable_id: uuidSchema15,
43247
43606
  value: external_exports.number().finite(),
43248
43607
  // Optional; defaults to the measurable's current period (resolved in the
43249
43608
  // command against the measurable's own cadence via the canonical bounds).
@@ -43254,8 +43613,8 @@ var signalReportInputSchema = external_exports.object({
43254
43613
  confidence: external_exports.enum(["low", "medium", "high"]).optional()
43255
43614
  }).strict();
43256
43615
  var signalReportOutputSchema = external_exports.object({
43257
- reading_id: uuidSchema14,
43258
- measurable_id: uuidSchema14,
43616
+ reading_id: uuidSchema15,
43617
+ measurable_id: uuidSchema15,
43259
43618
  // Always false: an agent-sourced reading is a draft until a human confirms it.
43260
43619
  confirmed: external_exports.literal(false)
43261
43620
  }).strict();
@@ -44526,7 +44885,7 @@ var softwareFactoryBudgetExhaustedEventSchema = external_exports.object({
44526
44885
  }).strict();
44527
44886
 
44528
44887
  // ../../packages/protocol/src/sync-brief.ts
44529
- var uuidSchema15 = external_exports.string().uuid();
44888
+ var uuidSchema16 = external_exports.string().uuid();
44530
44889
  var dateSchema = external_exports.string().regex(/^\d{4}-\d{2}-\d{2}$/);
44531
44890
  var syncBriefGapSchema = external_exports.object({
44532
44891
  section: external_exports.enum(["exceptions", "goal_deltas", "task_review", "friction", "agent_activity"]),
@@ -44539,8 +44898,8 @@ var sectionSchema = (itemSchema) => external_exports.object({
44539
44898
  flagged_gaps: external_exports.array(syncBriefGapSchema)
44540
44899
  }).strict();
44541
44900
  var syncBriefExceptionSchema = external_exports.object({
44542
- measurable_id: uuidSchema15,
44543
- seat_id: uuidSchema15,
44901
+ measurable_id: uuidSchema16,
44902
+ seat_id: uuidSchema16,
44544
44903
  seat_name: external_exports.string().min(1),
44545
44904
  name: external_exports.string().min(1),
44546
44905
  state: external_exports.enum(["risk", "crit", "pending"]),
@@ -44551,8 +44910,8 @@ var syncBriefExceptionSchema = external_exports.object({
44551
44910
  freshness: external_exports.enum(["fresh", "due", "stale", "awaiting_first_reading", "not_expected"]).optional()
44552
44911
  }).strict();
44553
44912
  var syncBriefGoalDeltaSchema = external_exports.object({
44554
- goal_id: uuidSchema15,
44555
- seat_id: uuidSchema15.nullable(),
44913
+ goal_id: uuidSchema16,
44914
+ seat_id: uuidSchema16.nullable(),
44556
44915
  seat_name: external_exports.string().nullable(),
44557
44916
  title: external_exports.string().min(1),
44558
44917
  status: external_exports.enum(["on", "off", "done", "dropped"]),
@@ -44566,22 +44925,22 @@ var syncBriefTaskReviewSchema = external_exports.object({
44566
44925
  previous_done_rate: external_exports.number().min(0).max(1),
44567
44926
  delta: external_exports.number().min(-1).max(1),
44568
44927
  stalled: external_exports.array(external_exports.object({
44569
- task_id: uuidSchema15,
44570
- owner_seat_id: uuidSchema15,
44928
+ task_id: uuidSchema16,
44929
+ owner_seat_id: uuidSchema16,
44571
44930
  owner_seat_name: external_exports.string().min(1),
44572
44931
  title: external_exports.string().min(1),
44573
44932
  due_on: dateSchema,
44574
44933
  stalled_at: external_exports.string().nullable()
44575
44934
  }).strict()),
44576
44935
  overdue_by_owner: external_exports.array(external_exports.object({
44577
- owner_seat_id: uuidSchema15,
44936
+ owner_seat_id: uuidSchema16,
44578
44937
  owner_seat_name: external_exports.string().min(1),
44579
44938
  overdue_count: external_exports.number().int().nonnegative()
44580
44939
  }).strict())
44581
44940
  }).strict();
44582
44941
  var syncBriefIssueSchema = external_exports.object({
44583
- issue_id: uuidSchema15,
44584
- raised_by_seat_id: uuidSchema15,
44942
+ issue_id: uuidSchema16,
44943
+ raised_by_seat_id: uuidSchema16,
44585
44944
  raised_by_seat_name: external_exports.string().min(1),
44586
44945
  summary: external_exports.string().min(1),
44587
44946
  severity: external_exports.enum(["low", "med", "high", "critical"]),
@@ -44598,16 +44957,16 @@ var syncBriefActionItemTrendSchema = external_exports.object({
44598
44957
  has_prior: external_exports.boolean()
44599
44958
  }).strict();
44600
44959
  var syncBriefCascadeAtRiskSchema = external_exports.object({
44601
- goal_id: uuidSchema15,
44960
+ goal_id: uuidSchema16,
44602
44961
  title: external_exports.string().min(1),
44603
- seat_id: uuidSchema15.nullable(),
44962
+ seat_id: uuidSchema16.nullable(),
44604
44963
  progress_pct: external_exports.number().int().min(0).max(100),
44605
44964
  classification: external_exports.enum(["at_risk", "projected_miss"]),
44606
44965
  behind_days: external_exports.number().nullable()
44607
44966
  }).strict();
44608
44967
  var syncBriefAgentActivitySchema = external_exports.object({
44609
- agent_id: uuidSchema15,
44610
- seat_id: uuidSchema15,
44968
+ agent_id: uuidSchema16,
44969
+ seat_id: uuidSchema16,
44611
44970
  seat_name: external_exports.string().min(1),
44612
44971
  run_count: external_exports.number().int().nonnegative(),
44613
44972
  failed_run_count: external_exports.number().int().nonnegative(),
@@ -44619,11 +44978,11 @@ var syncBriefAgentActivitySchema = external_exports.object({
44619
44978
  var syncBriefSchema = external_exports.object({
44620
44979
  schema_version: external_exports.literal(1),
44621
44980
  tenant: external_exports.object({
44622
- id: uuidSchema15,
44981
+ id: uuidSchema16,
44623
44982
  name: external_exports.string().min(1)
44624
44983
  }).strict(),
44625
44984
  cluster: external_exports.object({
44626
- id: uuidSchema15,
44985
+ id: uuidSchema16,
44627
44986
  name: external_exports.string().min(1)
44628
44987
  }).strict().nullable(),
44629
44988
  period: external_exports.object({
@@ -44734,11 +45093,11 @@ var usageSnapshotOutputSchema = external_exports.object({
44734
45093
  }).strict();
44735
45094
 
44736
45095
  // ../../packages/protocol/src/event-payloads.ts
44737
- var uuidSchema16 = external_exports.string().uuid();
45096
+ var uuidSchema17 = external_exports.string().uuid();
44738
45097
  var evidenceSchema = external_exports.array(external_exports.unknown());
44739
45098
  var statusEventPayloadSchema = external_exports.object({
44740
45099
  measurables: external_exports.array(external_exports.object({
44741
- id: uuidSchema16,
45100
+ id: uuidSchema17,
44742
45101
  value: external_exports.number().finite(),
44743
45102
  // DER-1045: an optional, non-secret citation for an agent-proposed reading
44744
45103
  // (signal.report) — where the number came from + the agent's confidence.
@@ -44747,10 +45106,27 @@ var statusEventPayloadSchema = external_exports.object({
44747
45106
  // so every existing status writer (status.record, corrections, imports) is
44748
45107
  // unaffected.
44749
45108
  note: external_exports.string().min(1).max(2e3).optional(),
44750
- confidence: external_exports.enum(["low", "medium", "high"]).optional()
45109
+ confidence: external_exports.enum(["low", "medium", "high"]).optional(),
45110
+ // DER-1123: when this reading supersedes a materially-different same-period
45111
+ // reading (e.g. an integration pull replacing an agent-reported value), the
45112
+ // prior reading's provenance is captured here — append-only, so the audit
45113
+ // story survives even though the canonical row keeps a single value
45114
+ // (invariant #8, supersession not silent rewrite). Non-secret fields ONLY
45115
+ // (source kind, the numeric value, actor kind, a timestamp); never a vault
45116
+ // ref, token, or raw integration response.
45117
+ supersededFrom: external_exports.object({
45118
+ // The value's origin (agent report / human entry / integration pull).
45119
+ source: external_exports.enum(["agent", "human", "integration"]),
45120
+ value: external_exports.number().finite(),
45121
+ // The actor that last ESTABLISHED the superseded value — its reporter, or the
45122
+ // human who confirmed/corrected it. Optional (a reading may lack a backing
45123
+ // event). Never an actor id — only the coarse kind, so no PII.
45124
+ actorKind: external_exports.enum(["user", "agent", "system"]).optional(),
45125
+ at: external_exports.string().min(1)
45126
+ }).strict().optional()
44751
45127
  }).strict()).optional(),
44752
45128
  goals: external_exports.array(external_exports.object({
44753
- id: uuidSchema16,
45129
+ id: uuidSchema17,
44754
45130
  state: external_exports.enum(["on", "off"]),
44755
45131
  note: external_exports.string().min(1).optional()
44756
45132
  }).strict()).optional()
@@ -44763,8 +45139,8 @@ var escalationEventPayloadSchema = external_exports.object({
44763
45139
  }).strict();
44764
45140
  var issueEventPayloadSchema = external_exports.object({
44765
45141
  summary: external_exports.string().min(1),
44766
- blocking_goal_id: uuidSchema16.optional(),
44767
- broken_measurable_id: uuidSchema16.optional(),
45142
+ blocking_goal_id: uuidSchema17.optional(),
45143
+ broken_measurable_id: uuidSchema17.optional(),
44768
45144
  evidence: evidenceSchema,
44769
45145
  severity: external_exports.enum(["low", "med", "high", "critical"])
44770
45146
  }).strict();
@@ -44777,14 +45153,14 @@ var heldToolActionReplaySchema = external_exports.object({
44777
45153
  }).strict();
44778
45154
 
44779
45155
  // ../../packages/protocol/src/operating.ts
44780
- var uuidSchema17 = external_exports.string().uuid();
45156
+ var uuidSchema18 = external_exports.string().uuid();
44781
45157
  var taskListInputSchema = external_exports.object({}).strict();
44782
45158
  var operatingTaskSchema = external_exports.object({
44783
- id: uuidSchema17,
45159
+ id: uuidSchema18,
44784
45160
  title: external_exports.string(),
44785
45161
  description: external_exports.string().nullable(),
44786
- from_seat_id: uuidSchema17.nullable(),
44787
- goal_id: uuidSchema17.nullable(),
45162
+ from_seat_id: uuidSchema18.nullable(),
45163
+ goal_id: uuidSchema18.nullable(),
44788
45164
  acceptance_criteria: external_exports.unknown(),
44789
45165
  due_on: external_exports.string().nullable(),
44790
45166
  status: external_exports.string()
@@ -44793,48 +45169,48 @@ var taskListOutputSchema = external_exports.object({
44793
45169
  tasks: external_exports.array(operatingTaskSchema)
44794
45170
  }).strict();
44795
45171
  var taskAcceptInputSchema = external_exports.object({
44796
- id: uuidSchema17
45172
+ id: uuidSchema18
44797
45173
  }).strict();
44798
45174
  var taskMutationOutputSchema = external_exports.object({
44799
45175
  task: external_exports.object({
44800
- id: uuidSchema17,
45176
+ id: uuidSchema18,
44801
45177
  status: external_exports.string()
44802
45178
  }).strict()
44803
45179
  }).strict();
44804
45180
  var taskDeclineInputSchema = external_exports.object({
44805
- id: uuidSchema17,
45181
+ id: uuidSchema18,
44806
45182
  reason: external_exports.string().min(1)
44807
45183
  }).strict();
44808
45184
  var taskDeclineOutputSchema = external_exports.object({
44809
45185
  task: external_exports.object({
44810
- id: uuidSchema17,
45186
+ id: uuidSchema18,
44811
45187
  status: external_exports.string(),
44812
45188
  decline_reason: external_exports.string()
44813
45189
  }).strict()
44814
45190
  }).strict();
44815
45191
  var taskCompleteInputSchema = external_exports.object({
44816
- id: uuidSchema17,
45192
+ id: uuidSchema18,
44817
45193
  summary: external_exports.string().min(1),
44818
45194
  artifacts: external_exports.unknown().optional()
44819
45195
  }).strict();
44820
45196
  var taskCompleteOutputSchema = external_exports.object({
44821
- task_id: uuidSchema17,
44822
- event_id: uuidSchema17,
45197
+ task_id: uuidSchema18,
45198
+ event_id: uuidSchema18,
44823
45199
  type: external_exports.literal("handoff")
44824
45200
  }).strict();
44825
45201
  var statusRecordOutputSchema = external_exports.object({
44826
- event_id: uuidSchema17,
45202
+ event_id: uuidSchema18,
44827
45203
  type: external_exports.literal("status")
44828
45204
  }).strict();
44829
45205
  var duplicateFrictionCandidateSchema = external_exports.object({
44830
- issue_id: uuidSchema17,
45206
+ issue_id: uuidSchema18,
44831
45207
  summary: external_exports.string().min(1),
44832
45208
  // pg_trgm similarity in [0, 1]; higher is more similar.
44833
45209
  similarity: external_exports.number().min(0).max(1)
44834
45210
  }).strict();
44835
45211
  var frictionFileIssueOutputSchema = external_exports.object({
44836
- event_id: uuidSchema17,
44837
- issue_id: uuidSchema17,
45212
+ event_id: uuidSchema18,
45213
+ issue_id: uuidSchema18,
44838
45214
  type: external_exports.literal("issue"),
44839
45215
  // DER-1522: likely-duplicate candidates detected before creation. Recommend,
44840
45216
  // never block — filing always proceeds; empty when nothing crossed the
@@ -44845,12 +45221,12 @@ var workLogInputSchema = external_exports.object({
44845
45221
  note: external_exports.string().min(1)
44846
45222
  }).strict();
44847
45223
  var workLogOutputSchema = external_exports.object({
44848
- event_id: uuidSchema17,
45224
+ event_id: uuidSchema18,
44849
45225
  type: external_exports.literal("task")
44850
45226
  }).strict();
44851
45227
  var escalationRaiseOutputSchema = external_exports.object({
44852
- event_id: uuidSchema17,
44853
- escalation_id: uuidSchema17,
45228
+ event_id: uuidSchema18,
45229
+ escalation_id: uuidSchema18,
44854
45230
  type: external_exports.literal("escalation")
44855
45231
  }).strict();
44856
45232
  var deliverableKindSchema2 = external_exports.enum(["brief", "work_evidence", "artifact", "report", "other"]);
@@ -44898,7 +45274,7 @@ var deliverableAcceptOutputSchema = external_exports.object({
44898
45274
  }).strict();
44899
45275
 
44900
45276
  // ../../packages/protocol/src/steward.ts
44901
- var uuidSchema18 = external_exports.string().uuid();
45277
+ var uuidSchema19 = external_exports.string().uuid();
44902
45278
  var escalationStatusSchema = external_exports.enum([
44903
45279
  "open",
44904
45280
  "approved",
@@ -44906,21 +45282,21 @@ var escalationStatusSchema = external_exports.enum([
44906
45282
  "converted_to_issue"
44907
45283
  ]);
44908
45284
  var stewardEscalationSchema = external_exports.object({
44909
- id: uuidSchema18,
44910
- seat_id: uuidSchema18,
45285
+ id: uuidSchema19,
45286
+ seat_id: uuidSchema19,
44911
45287
  seat_name: external_exports.string(),
44912
45288
  seat_type: external_exports.enum(["human", "agent", "hybrid"]),
44913
- steward_seat_id: uuidSchema18,
45289
+ steward_seat_id: uuidSchema19,
44914
45290
  steward_seat_name: external_exports.string(),
44915
45291
  reason: external_exports.string(),
44916
45292
  charter_clause: external_exports.string(),
44917
45293
  recommended_action: external_exports.string().nullable(),
44918
45294
  status: escalationStatusSchema,
44919
- decided_by: uuidSchema18.nullable(),
45295
+ decided_by: uuidSchema19.nullable(),
44920
45296
  decided_by_name: external_exports.string().nullable(),
44921
45297
  decided_at: external_exports.string().nullable(),
44922
45298
  decision_note: external_exports.string().nullable(),
44923
- issue_id: uuidSchema18.nullable(),
45299
+ issue_id: uuidSchema19.nullable(),
44924
45300
  created_at: external_exports.string(),
44925
45301
  updated_at: external_exports.string()
44926
45302
  }).strict();
@@ -44931,27 +45307,27 @@ var escalationListOutputSchema = external_exports.object({
44931
45307
  escalations: external_exports.array(stewardEscalationSchema)
44932
45308
  }).strict();
44933
45309
  var escalationGetInputSchema = external_exports.object({
44934
- id: uuidSchema18
45310
+ id: uuidSchema19
44935
45311
  }).strict();
44936
45312
  var escalationGetOutputSchema = external_exports.object({
44937
45313
  escalation: stewardEscalationSchema
44938
45314
  }).strict();
44939
45315
  var escalationResolveActionSchema = external_exports.enum(["approve", "convert_to_issue"]);
44940
45316
  var escalationResolveInputSchema = external_exports.object({
44941
- id: uuidSchema18,
45317
+ id: uuidSchema19,
44942
45318
  action: escalationResolveActionSchema.optional(),
44943
45319
  rationale: external_exports.string().trim().min(1).optional()
44944
45320
  }).strict();
44945
45321
  var escalationRejectInputSchema = external_exports.object({
44946
- id: uuidSchema18,
45322
+ id: uuidSchema19,
44947
45323
  rationale: external_exports.string().trim().min(1).optional()
44948
45324
  }).strict();
44949
45325
  var escalationDecisionOutputSchema = external_exports.object({
44950
- escalation_id: uuidSchema18,
45326
+ escalation_id: uuidSchema19,
44951
45327
  status: escalationStatusSchema,
44952
- decision_id: uuidSchema18,
44953
- decided_by: uuidSchema18,
44954
- issue_id: uuidSchema18.nullable(),
45328
+ decision_id: uuidSchema19,
45329
+ decided_by: uuidSchema19,
45330
+ issue_id: uuidSchema19.nullable(),
44955
45331
  // DER-1478: true when the resolved escalation carries a durable replay_action
44956
45332
  // (an approval-gated connector write) that the approvals path should actuate
44957
45333
  // after this decision is recorded. Omitted (not false) for non-connector
@@ -44973,7 +45349,7 @@ var eventTypes = [
44973
45349
  "task"
44974
45350
  ];
44975
45351
  var publicMessageTypes = ["status", "handoff", "escalation", "issue"];
44976
- var uuidSchema19 = external_exports.string().uuid();
45352
+ var uuidSchema20 = external_exports.string().uuid();
44977
45353
  var evidenceSchema2 = external_exports.array(external_exports.unknown());
44978
45354
  var internalEventPayloadSchema = external_exports.record(external_exports.string(), external_exports.unknown()).refine((payload) => !Array.isArray(payload), "Internal event payload must be an object");
44979
45355
  var handoffEventPayloadSchema = external_exports.object({
@@ -44983,24 +45359,24 @@ var handoffEventPayloadSchema = external_exports.object({
44983
45359
  acceptance_criteria: external_exports.array(external_exports.string().min(1)),
44984
45360
  due: external_exports.string().datetime({ offset: true })
44985
45361
  }).strict(),
44986
- to_seat_id: uuidSchema19
45362
+ to_seat_id: uuidSchema20
44987
45363
  }).strict();
44988
45364
  var intakeEventPayloadSchema = external_exports.discriminatedUnion("action", [
44989
45365
  external_exports.object({
44990
45366
  action: external_exports.literal("uploaded"),
44991
- document_id: uuidSchema19,
45367
+ document_id: uuidSchema20,
44992
45368
  storage_ref: external_exports.string().min(1)
44993
45369
  }).strict(),
44994
45370
  external_exports.object({
44995
45371
  action: external_exports.literal("parsed"),
44996
- document_id: uuidSchema19,
45372
+ document_id: uuidSchema20,
44997
45373
  mode: external_exports.enum(["source_tree", "function_first"]),
44998
45374
  seat_count: external_exports.number().int().nonnegative(),
44999
45375
  edge_count: external_exports.number().int().nonnegative()
45000
45376
  }).strict(),
45001
45377
  external_exports.object({
45002
45378
  action: external_exports.literal("failed"),
45003
- document_id: uuidSchema19,
45379
+ document_id: uuidSchema20,
45004
45380
  reason: external_exports.string().min(1)
45005
45381
  }).strict(),
45006
45382
  external_exports.object({
@@ -45106,9 +45482,9 @@ var publicMessageTypeSchema = external_exports.enum(publicMessageTypes);
45106
45482
  var eventEnvelopeBaseSchema = external_exports.object({
45107
45483
  protocol: external_exports.literal(EVENT_PROTOCOL),
45108
45484
  type: eventTypeSchema,
45109
- seat_id: uuidSchema19.nullable(),
45485
+ seat_id: uuidSchema20.nullable(),
45110
45486
  occurred_at: external_exports.string().datetime({ offset: true }),
45111
- goal_ancestry: external_exports.array(uuidSchema19)
45487
+ goal_ancestry: external_exports.array(uuidSchema20)
45112
45488
  }).strict();
45113
45489
  var statusEventEnvelopeSchema = eventEnvelopeBaseSchema.extend({
45114
45490
  type: external_exports.literal("status"),
@@ -45534,7 +45910,7 @@ Treat AICOS as a coordinator over the operating system. It can become more usefu
45534
45910
  order: 20,
45535
45911
  title: "Responsibility Graph playbook",
45536
45912
  summary: "How to build a functions-first graph with seats, owners, Stewards, vacancies, and clean authority.",
45537
- version: "2026-07-10.2",
45913
+ version: "2026-07-10.6",
45538
45914
  public: true,
45539
45915
  audiences: ["human", "cli", "mcp", "in_app_agent"],
45540
45916
  stages: ["graph_design", "staffing"],
@@ -45607,13 +45983,19 @@ The graph is also where you land after onboarding \u2014 it is the mission contr
45607
45983
  - **Signal** \u2014 the worst measurable state per seat.
45608
45984
  - **Scoreboard** \u2014 direct work and direct cost on each seat, plus a separate team/subtree rollup for manager seats. The tenant summary counts direct agent work once, so a parent seat's team cost does not double-count the same run again. A seat whose direct cost is a clear outlier above the rest of the fleet is flagged as cost drift (labelled, not colour-only). Human seats and seats with no direct or team runs read calmly rather than showing a bare zero. For a small fleet the Scoreboard also leads with a two-tile summary \u2014 total work and total cost \u2014 framed as the single question that matters: is it earning its keep.
45609
45985
 
45986
+ Switching into Cascade never re-runs the chart layout \u2014 seat positions scale in place to fit taller goal-summary cards, and the connector layer scales to match, so nothing rearranges under you. A company-objectives card anchors above the root seat with the active cycle's objectives; selecting one traces and emphasizes its branch down through the connectors while the rest of the chart recedes. Selecting a seat's goal opens the same goal detail panel \`/cascade\` uses, as a right-hand drawer \u2014 breadcrumb ancestry and child-goal rows let you walk the branch without leaving the graph, and an **Open in Cascade** link round-trips the same cycle, branch, and goal selection to the \`/cascade\` page. Lens, objective, goal, seat, and cycle are all URL state, so a reload or a shared link reopens the same view.
45987
+
45610
45988
  The graph also carries a mission-control panel. It pulls the same operational state visible on the agent and setup-health surfaces: held actions that need steward decisions, failed runs, open Friction, pending Signal readings, stale agents, and setup recommendations. Each item can focus the affected seat on the canvas and links to the route where the operator can act.
45611
45989
 
45612
45990
  ## An agent seat's profile
45613
45991
 
45614
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.
45615
45993
 
45616
- 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.
45617
45999
 
45618
46000
  ## Review an agent seat's delivered work
45619
46001
 
@@ -46204,7 +46586,7 @@ Use the lower-level commands after health names a finding: \`agent.get_run\` for
46204
46586
  order: 46,
46205
46587
  title: "Tool access and vault",
46206
46588
  summary: "How to give agents access to tools without exposing raw credentials or expanding authority by accident.",
46207
- version: "2026-07-02.4",
46589
+ version: "2026-07-13.1",
46208
46590
  public: true,
46209
46591
  audiences: ["human", "cli", "mcp", "in_app_agent"],
46210
46592
  stages: ["staffing"],
@@ -46258,7 +46640,7 @@ The native Gmail handlers run inside the same broker boundary as the REST and Sl
46258
46640
 
46259
46641
  ## Google connector status
46260
46642
 
46261
- 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.
46262
46644
 
46263
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.
46264
46646
 
@@ -46295,7 +46677,7 @@ There is exactly one way to give a connected tool its credential, and it is the
46295
46677
  order: 47,
46296
46678
  title: "Available tools guide",
46297
46679
  summary: "How to think about tool categories available to seats and what each category should be used for.",
46298
- version: "2026-07-04.1",
46680
+ version: "2026-07-13.1",
46299
46681
  public: true,
46300
46682
  audiences: ["human", "cli", "mcp", "in_app_agent"],
46301
46683
  stages: ["staffing"],
@@ -46331,9 +46713,9 @@ Start from the seat's responsibility, not the tool list. If a tool does not dire
46331
46713
 
46332
46714
  ## Skills and tool dependencies
46333
46715
 
46334
- 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.
46335
46717
 
46336
- 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.
46337
46719
 
46338
46720
  ## How agents should request tools
46339
46721
 
@@ -46350,7 +46732,7 @@ External connectors are being rolled out provider by provider, conservatively (r
46350
46732
  order: 48,
46351
46733
  title: "CLI and MCP installation guide",
46352
46734
  summary: "Install the public CLI, register remote token-backed MCP clients, and find the full command and tool catalog.",
46353
- version: "2026-07-12.3",
46735
+ version: "2026-07-13.2",
46354
46736
  public: true,
46355
46737
  audiences: ["human", "cli", "mcp", "in_app_agent"],
46356
46738
  stages: ["company_setup", "staffing"],
@@ -46781,8 +47163,8 @@ These are the security posture rules for operating after install \u2014 a checkl
46781
47163
  | Command | Purpose | Scope | Safe example |
46782
47164
  |---|---|---|---|
46783
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 '{}'\` |
46784
- | \`{{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\` |
46785
- | \`{{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\` |
46786
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"}'\` |
46787
47169
  | \`{{cli}} command seat.create --json ...\` | Create a Responsibility Graph seat. | Tenant | \`{{cli}} command seat.create --json '{"name":"Finance","seat_type":"human"}'\` |
46788
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>"}'\` |
@@ -46820,7 +47202,7 @@ The signed-in app exposes the same Skill command surface at **Skills**, linked f
46820
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}'\` |
46821
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\` |
46822
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\` |
46823
- | \`{{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\` |
46824
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\` |
46825
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\` |
46826
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\` |
@@ -46869,7 +47251,7 @@ Skills wrapper help:
46869
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:
46870
47252
 
46871
47253
  1. **The MCP tools below** \u2014 the \`rost_*\` surface your client actually calls to read and act.
46872
- 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.
46873
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.
46874
47256
  4. **The "Available tools guide"** (in the sidebar) \u2014 covers tool *categories* and governance, not a callable surface. See the available-tools-guide.
46875
47257
 
@@ -46881,8 +47263,8 @@ These read-only tools are available to any valid MCP token (like the reference t
46881
47263
 
46882
47264
  | Tool | Purpose | Scope | Safe example |
46883
47265
  |---|---|---|---|
46884
- | \`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"}\` |
46885
- | \`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}\` |
46886
47268
 
46887
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).
46888
47270
 
@@ -47003,6 +47385,8 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
47003
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. |
47004
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. |
47005
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}}\`. |
47006
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. |
47007
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. |
47008
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. |
@@ -47030,7 +47414,7 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
47030
47414
  | \`rost_update_cascade_goal\` | \`goal.update\` | Update a goal's title or definition of done. | Tenant | Call with \`goal_id\` and the changed fields. |
47031
47415
  | \`rost_set_cascade_goal_status\` | \`goal.set_status\` | Set a goal's status (on/off/done). | Seat or tenant-admin | Seats may set only their own goals. |
47032
47416
  | \`rost_set_cascade_goal_progress\` | \`goal.set_progress\` | Report a goal's quantified progress (0-100). An agent's progress is a proposal a human approves before the goal moves. | Seat or tenant-admin | Seats set only their own goals; expect confirmation. |
47033
- | \`rost_bind_a_signal_to_a_cascade_goal\` | \`goal.bind_measurable\` | Bind a measurable to a goal. Defaults to role \`informs\` \u2014 a conservative indicator allowed at any goal level (many per goal) that never changes status. Pass role \`drives_status\` to make it the goal's status driver (childless leaf only, one per goal). Human-gated. | Seat or tenant-admin | Call with \`{"goal_id":"<id>","measurable_id":"<id>"}\` (add \`"role":"drives_status"\` for the driver); expect confirmation. |
47417
+ | \`rost_bind_a_signal_to_a_cascade_goal\` | \`goal.bind_measurable\` | Bind a measurable to a goal. Defaults to role \`informs\` \u2014 a conservative indicator allowed at any goal level (many per goal) that never changes status. Pass role \`drives_status\` to make it the goal's status driver (childless leaf only, one per goal); a driver requires a \`second_anchor\` (a prior closed period + expected value confirming the Signal matched the books) and promotes an existing \`informs\` binding of the same Signal. Human-gated. | Seat or tenant-admin | Call with \`{"goal_id":"<id>","measurable_id":"<id>"}\` (add \`"role":"drives_status","second_anchor":{"period_start":"2026-Q1","expected_value":0}\` for the driver); expect confirmation. |
47034
47418
  | \`rost_unbind_a_signal_from_a_cascade_goal\` | \`goal.unbind_measurable\` | Remove a goal\u2194measurable binding (role defaults to \`drives_status\`; pass \`"role":"informs"\` to remove an indicator). | Seat or tenant-admin | Call with \`{"goal_id":"<id>","measurable_id":"<id>"}\`. |
47035
47419
  | \`rost_toggle_signal_driven_auto_status\` | \`goal.set_auto_status\` | Per-goal steward opt-in (default OFF) that lets the bound measurable's latest confirmed reading compute the goal's status. Enabling applies the current signal immediately. Human-gated. | Seat or tenant-admin | Call with \`{"goal_id":"<id>","enabled":true}\`; expect confirmation. |
47036
47420
  | \`rost_list_at_risk_cascade_goals\` | \`goal.list_at_risk\` | List goals projected off pace (at-risk or projected-miss) with days behind pace. Read-only; status-only goals excluded. | Tenant | Call with \`{}\`. |
@@ -47057,6 +47441,10 @@ Several rows here are seat-operating commands (\`task.create\`, the \`signal.*\`
47057
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>"}\`. |
47058
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>"}\`. |
47059
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. |
47060
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"}\`. |
47061
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. |
47062
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. |
@@ -47599,7 +47987,7 @@ Retrieve the narrowest relevant guide before making a setup recommendation. Pref
47599
47987
  order: 60,
47600
47988
  title: "Cascade guide",
47601
47989
  summary: "How to connect company goals to seat-level work without turning {{brand}} into a project-management tool.",
47602
- version: "2026-07-12.1",
47990
+ version: "2026-07-12.2",
47603
47991
  public: true,
47604
47992
  audiences: ["human", "cli", "mcp", "in_app_agent"],
47605
47993
  stages: ["operating_rhythm"],
@@ -47678,7 +48066,7 @@ On human and function seat pages, goal visibility includes both direct goals and
47678
48066
 
47679
48067
  ## Drive a goal's status from a Signal
47680
48068
 
47681
- A Signal can be linked to a goal for visibility, or set to compute its status. Bind a Signal with \`goal.bind_measurable\`. By default the binding is **informative** (role \`informs\`): it appears as a direct indicator on the goal, is allowed at any level (company objective, parent, or leaf), can be one of many on the same goal, and never changes the goal's status. To let a Signal **drive** a leaf goal's status instead, bind it with \`--role drives_status\` (the goal must be a childless seat goal or milestone \u2014 a company objective or a goal with children rolls up from its children, so a driver there is rejected). A goal can have at most one driving Signal, and choosing a driver is a deliberate, human-gated act.
48069
+ A Signal can be linked to a goal for visibility, or set to compute its status. Bind a Signal with \`goal.bind_measurable\`. By default the binding is **informative** (role \`informs\`): it appears as a direct indicator on the goal, is allowed at any level (company objective, parent, or leaf), can be one of many on the same goal, and never changes the goal's status. To let a Signal **drive** a leaf goal's status instead, bind it with \`--role drives_status\` (the goal must be a childless seat goal or milestone \u2014 a company objective or a goal with children rolls up from its children, so a driver there is rejected). A goal can have at most one driving Signal, and choosing a driver is a deliberate, human-gated act. Promoting a Signal to the status driver requires a **second anchor**: a prior closed period plus the value that period's books show (\`second_anchor: { period_start, expected_value }\`). The instantaneous reading is not enough \u2014 the anchor proves the Signal matched reality at least once before it may automatically flip a goal, and it is recorded durably with the confirmation. Confirming a driver over an existing informative binding of the same Signal promotes that binding in place.
47682
48070
 
47683
48071
  A \`drives_status\` binding starts as an indicator only: nothing changes until a steward opts in with \`goal.set_auto_status --enabled true\`. Once opted in, the goal's status is computed from the measurable's latest confirmed reading against its target and direction \u2014 on target reads on-track, below target reads off-track. Only confirmed readings drive status; an agent's draft reading never auto-flips a goal. A human who sets the status by hand pins it, and that pin wins over the computed value until they change it or re-run \`goal.set_auto_status\`. Remove a binding with \`goal.unbind_measurable\`; the goal keeps its last status. Until a binding is opted in, an off-track Signal never raises an at-risk alert on its own.
47684
48072
 
@@ -47706,7 +48094,7 @@ Agents can suggest commitments and report progress. They should not create a new
47706
48094
  order: 61,
47707
48095
  title: "Signal guide",
47708
48096
  summary: "How to define and read measurables so the company runs on evidence instead of status theater.",
47709
- version: "2026-07-08.1",
48097
+ version: "2026-07-12.1",
47710
48098
  public: true,
47711
48099
  audiences: ["human", "cli", "mcp", "in_app_agent"],
47712
48100
  stages: ["operating_rhythm"],
@@ -47794,7 +48182,7 @@ Once a measurable's number lives in a connected system, you can teach {{brand}}
47794
48182
  - \`signal.bind\` persists the validated recipe as an inert \`draft\` binding. It requires the \`preview_token\` from a preview of the same recipe, so nothing is bound that was not first seen working.
47795
48183
  - \`signal.bind_confirm\` is human-only. It activates the binding (\`draft -> active\`); an agent that calls it produces a pending confirmation instead. Only after a human confirms does the scheduled pull begin writing confirmed readings.
47796
48184
 
47797
- Discovery always returns a \`recipe_presets\` array; it is empty when {{brand}} does not recognize a safe source type. Today the proven self-filling path is Baserow REST through \`integration.connect_rest\`: a tenant admin creates or rotates the Baserow connection through the command/vault path, then Signal runs \`integration.discover -> signal.preview -> signal.bind -> signal.bind_confirm\` against that connected source. Baserow row-field recipes and custom filtered-count recipes are supported when the human supplies the real table, field, filter, host, and value path. A first-class filtered-count preset is still a follow-up; do not imply every filtered count appears as a one-click preset. Google Sheets Signal pulls are not live yet: Google uses OAuth JSON credentials and remains withheld from REST presets until the pull executor extracts and refreshes the Google access token instead of treating the stored credential blob as a bearer token. A preset includes a label, cadence, required metadata, a draft \`rest_for_signals\` recipe, and the host allowlist to preview with. The human still fills in the real Baserow table/row/field or exact REST URL and value path before running \`signal.preview\`; presets are starter recipes, not secret stores.
48185
+ Discovery always returns a \`recipe_presets\` array; it is empty when {{brand}} does not recognize a safe source type. Today the proven self-filling path is Baserow REST through \`integration.connect_rest\`: a tenant admin creates or rotates the Baserow connection through the command/vault path, then Signal runs \`integration.discover -> signal.preview -> signal.bind -> signal.bind_confirm\` against that connected source. Baserow discovery now offers two first-class presets: \`baserow.row-field\` (read one scalar field from a row) and \`baserow.filtered-count\` (count rows matching a condition). The filtered-count builder takes a table id, field key, comparison operator, and comparison value and assembles a validated \`rest_for_signals\` recipe whose \`value_path\` is the response \`count\`; the field key and operator are allowlisted (they form the query-parameter name) and the comparison value is percent-encoded, so nothing the operator types can inject into the URL. The human still supplies the real table, field, operator, value, and host \u2014 presets and the builder are starter recipes, not secret stores. Google Sheets Signal pulls are not live yet: Google uses OAuth JSON credentials and remains withheld from REST presets until the pull executor extracts and refreshes the Google access token instead of treating the stored credential blob as a bearer token. A preset includes a label, cadence, required metadata, a draft \`rest_for_signals\` recipe, and the host allowlist to preview with. The human still fills in the real Baserow table/row/field or exact REST URL and value path before running \`signal.preview\`; presets are starter recipes, not secret stores.
47798
48186
 
47799
48187
  Recipes are validated data, never code: a read-only GET, a closed set of non-secret headers, and a restricted scalar path to the value. Every fetch passes one SSRF guard (HTTPS only, a steward-confirmed host allowlist set at bind, and a runtime check that the host does not resolve to a private address). The preset output never contains \`nango://\` handles, vault refs, tokens, or static credential headers. Deterministic pulls write \`integration\`-sourced readings on the measurable's cadence.
47800
48188
 
@@ -49171,7 +49559,7 @@ A consultancy's purpose might be "Make expert tax guidance affordable for first-
49171
49559
  order: 31,
49172
49560
  title: "Charter authoring deep-dive",
49173
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.",
49174
- version: "2026-06-18.1",
49562
+ version: "2026-07-13.1",
49175
49563
  public: true,
49176
49564
  audiences: ["cli", "mcp", "in_app_agent"],
49177
49565
  stages: ["charter_design", "staffing"],
@@ -49218,7 +49606,7 @@ A Charter is a seat's executable operating contract. On the CLI and MCP path you
49218
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.
49219
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."
49220
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.
49221
- - **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.
49222
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\`.
49223
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).
49224
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.
@@ -50246,6 +50634,7 @@ function parseSemver(value) {
50246
50634
 
50247
50635
  // src/generated/command-manifest.ts
50248
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." },
50249
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." },
50250
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." },
50251
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." },
@@ -50321,7 +50710,7 @@ var COMMAND_MANIFEST = [
50321
50710
  { "id": "friction.list", "namespace": "friction", "action": "list", "title": "List Friction issues", "description": "List Friction issues ranked by status, impact, and severity. Defaults to active (open + diagnosing).", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "status", "flag": "status", "type": "enum", "required": false, "enumValues": ["open", "diagnosing", "resolved", "dropped", "active", "all"] }], "hasComplexInput": false, "help": "List Friction issues ranked by impact and severity to find the issue id before updating or resolving it." },
50322
50711
  { "id": "friction.resolve", "namespace": "friction", "action": "resolve", "title": "Resolve Friction issue", "description": 'Resolve an issue with a root cause. In the default "ids" resolution_mode this also creates a remediation follow-up task; "already_fixed" records only the root cause (no follow-up task). Always records a human decision (decided_by) in the same transaction.', "requiredScope": "tenant_admin", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "issue_id", "flag": "issue-id", "type": "string", "required": true }, { "name": "resolution_mode", "flag": "resolution-mode", "type": "enum", "required": false, "enumValues": ["ids", "already_fixed"] }, { "name": "root_cause", "flag": "root-cause", "type": "string", "required": true }, { "name": "owner_seat_id", "flag": "owner-seat-id", "type": "string", "required": false }, { "name": "task_title", "flag": "task-title", "type": "string", "required": false }, { "name": "task_description", "flag": "task-description", "type": "string", "required": false }, { "name": "done_by", "flag": "done-by", "type": "string", "required": false }, { "name": "resolving_seat_id", "flag": "resolving-seat-id", "type": "string", "required": false }], "hasComplexInput": false, "help": "Resolve an issue with a root cause and remediation task; resolution is a human decision." },
50323
50712
  { "id": "friction.update_status", "namespace": "friction", "action": "update_status", "title": "Update Friction issue status", "description": "Move a non-terminal issue between open and diagnosing. Terminal issues (resolved/dropped) cannot be reopened here.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "issue_id", "flag": "issue-id", "type": "string", "required": true }, { "name": "status", "flag": "status", "type": "enum", "required": true, "enumValues": ["open", "diagnosing"] }], "hasComplexInput": false, "help": "Move a non-terminal issue between open and diagnosing while it is being worked." },
50324
- { "id": "goal.bind_measurable", "namespace": "goal", "action": "bind_measurable", "title": "Bind a Signal to a Cascade goal", "description": "Bind a measurable to a goal. Role defaults to 'informs' \u2014 a conservative informative indicator allowed at any goal level (many per goal) that never changes goal status. Role 'drives_status' makes it the goal's status driver: allowed only on a childless seat goal or milestone, at most one per goal, and auto-status starts OFF until a steward opts in with goal.set_auto_status. Binding is human-gated.", "requiredScope": "seat", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "goal_id", "flag": "goal-id", "type": "string", "required": true }, { "name": "measurable_id", "flag": "measurable-id", "type": "string", "required": true }, { "name": "role", "flag": "role", "type": "enum", "required": false, "enumValues": ["drives_status", "informs"] }], "hasComplexInput": false, "help": "Bind a Signal to a goal. Defaults to role informs (a conservative indicator at any level that never changes status); pass role drives_status to make it a childless leaf goal's status driver (auto-status starts OFF until a steward opts in)." },
50713
+ { "id": "goal.bind_measurable", "namespace": "goal", "action": "bind_measurable", "title": "Bind a Signal to a Cascade goal", "description": "Bind a measurable to a goal. Role defaults to 'informs' \u2014 a conservative informative indicator allowed at any goal level (many per goal) that never changes goal status. Role 'drives_status' makes it the goal's status driver: allowed only on a childless seat goal or milestone, at most one per goal, requires a second_anchor (a prior closed period + expected value confirming the Signal matched the books), and auto-status starts OFF until a steward opts in with goal.set_auto_status. Binding a driver over an existing informs binding of the same Signal promotes it. Binding is human-gated.", "requiredScope": "seat", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "goal_id", "flag": "goal-id", "type": "string", "required": true }, { "name": "measurable_id", "flag": "measurable-id", "type": "string", "required": true }, { "name": "role", "flag": "role", "type": "enum", "required": false, "enumValues": ["drives_status", "informs"] }], "hasComplexInput": true, "help": "Bind a Signal to a goal. Defaults to role informs (a conservative indicator at any level that never changes status); pass role drives_status with a second_anchor (a prior closed period + expected value confirming the Signal matched the books) to make it a childless leaf goal's status driver \u2014 this promotes an existing informs binding (auto-status starts OFF until a steward opts in)." },
50325
50714
  { "id": "goal.create", "namespace": "goal", "action": "create", "title": "Create Cascade goal", "description": "Create a cycle goal under an existing objective. The parent chain must terminate at a Compass objective in the same cycle (enforced server-side).", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "cycle_id", "flag": "cycle-id", "type": "string", "required": true }, { "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "parent_goal_id", "flag": "parent-goal-id", "type": "string", "required": true }, { "name": "title", "flag": "title", "type": "string", "required": true }, { "name": "definition_of_done", "flag": "definition-of-done", "type": "string", "required": true }, { "name": "status", "flag": "status", "type": "enum", "required": false, "enumValues": ["on", "off"] }], "hasComplexInput": false, "help": "Create cycle goals under an existing objective; the parent chain must terminate at a Compass objective." },
50326
50715
  { "id": "goal.drop", "namespace": "goal", "action": "drop", "title": "Drop Cascade goal", "description": "Drop (retire) a goal by setting status to dropped. Dropping retires the commitment, so it is human-gated. The row is retained for audit (never deleted).", "requiredScope": "tenant_admin", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "goal_id", "flag": "goal-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Drop a goal to retire a commitment; the goal is retained for audit and dropping is human-gated." },
50327
50716
  { "id": "goal.get", "namespace": "goal", "action": "get", "title": "Get Cascade goal", "description": "Get one goal's core detail and status by id. Seat-scoped callers may only read their own seat's goals.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "goal_id", "flag": "goal-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Get one goal's core detail and status by id; seat tokens may only read their own goals." },
@@ -50384,6 +50773,8 @@ var COMMAND_MANIFEST = [
50384
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." },
50385
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)." },
50386
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." },
50387
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." },
50388
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." },
50389
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." },
@@ -50472,6 +50863,9 @@ var COMMAND_MANIFEST = [
50472
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." },
50473
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." },
50474
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." },
50475
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." },
50476
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." },
50477
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." },