@rosthq/cli 0.7.75 → 0.7.77

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
@@ -38310,6 +38310,30 @@ var CATALOG_ENTRIES = [
38310
38310
  // (script_run_secret_grants) gates availability on top of this — no grant, no call.
38311
38311
  default_access_policy: "always_ask"
38312
38312
  },
38313
+ {
38314
+ // DER-1739: the first named consumers of the generalized secret broker. They ride
38315
+ // the same server-side egress core as `secret.broker` — no credential ever enters
38316
+ // agent context; a `baserow` secret grant (secret_grant.grant) pins the host/token.
38317
+ id: "baserow.read",
38318
+ title: "Read Baserow rows (brokered)",
38319
+ provider: "baserow",
38320
+ description: "Call this to read rows from an approved Baserow table \u2014 list a table's rows or fetch one row by id. You supply only the table id, an optional row id, and optional query filters (page, size, search, filter/order params) \u2014 never a credential. A server-side broker injects the tenant's Baserow token, calls only the allowlisted host, and returns a size-capped, secret-scrubbed result. Read-only.",
38321
+ default_scope_tier: "read",
38322
+ scope_tiers: ["read"],
38323
+ // Resolved via a vault-ref `baserow` secret grant, injected server-side.
38324
+ credential_required: true,
38325
+ default_access_policy: "always_allow"
38326
+ },
38327
+ {
38328
+ id: "baserow.write",
38329
+ title: "Write Baserow row (brokered)",
38330
+ provider: "baserow",
38331
+ description: "Call this to request creating or updating a row in an approved Baserow table. You supply the table id, the field values, and \u2014 to UPDATE \u2014 the row id (omit it to CREATE). You never supply a credential. Every write is HELD for human approval before it is sent; on approval the broker injects the tenant's Baserow token server-side and audits the call. It never writes autonomously.",
38332
+ default_scope_tier: "write_with_approval",
38333
+ scope_tiers: ["write_with_approval"],
38334
+ credential_required: true,
38335
+ default_access_policy: "always_ask"
38336
+ },
38313
38337
  {
38314
38338
  id: "ap.invoices.read",
38315
38339
  title: "Read AP invoices",
@@ -38668,7 +38692,7 @@ function providerRequirementFor(entry) {
38668
38692
  if (!entry.credential_required) {
38669
38693
  return entry.provider === "rost" || entry.provider === "web" ? "platform_managed" : "none";
38670
38694
  }
38671
- return entry.id === "secret.broker" ? "vault_ref" : "connection";
38695
+ return entry.id === "secret.broker" || entry.id === "baserow.read" || entry.id === "baserow.write" ? "vault_ref" : "connection";
38672
38696
  }
38673
38697
  function trustedRequiredMetadataFor(entry) {
38674
38698
  if (entry.default_access_policy === "always_allow" && entry.default_scope_tier !== "write_with_approval") {
@@ -38693,7 +38717,7 @@ function enrichCatalogEntry(entry) {
38693
38717
  access_levels: accessLevels,
38694
38718
  default_access_level: accessLevelForScope(entry.default_scope_tier),
38695
38719
  provider_requirement: providerRequirementFor(entry),
38696
- cost_class: entry.id === "script.run" || entry.id === "secret.broker" ? "metered_standard" : entry.id === "web.search" || entry.id === "web.fetch" || entry.id === "browser.read" ? "metered_low" : "included",
38720
+ cost_class: entry.id === "script.run" || entry.id === "secret.broker" || entry.id === "baserow.read" || entry.id === "baserow.write" ? "metered_standard" : entry.id === "web.search" || entry.id === "web.fetch" || entry.id === "browser.read" ? "metered_low" : "included",
38697
38721
  lane_support: ["cloud", "runner", "mcp"],
38698
38722
  trusted_required_metadata: trustedRequiredMetadataFor(entry)
38699
38723
  };
@@ -42759,9 +42783,150 @@ var recommendationEventInputSchema = external_exports.object({
42759
42783
  occurred_at: external_exports.string().datetime({ offset: true }).optional()
42760
42784
  }).strict();
42761
42785
 
42762
- // ../../packages/protocol/src/reads.ts
42763
- var uuidSchema13 = external_exports.string().uuid();
42786
+ // ../../packages/protocol/src/artifacts.ts
42764
42787
  var isoDateTime3 = external_exports.string().datetime({ offset: true });
42788
+ var uuidSchema13 = external_exports.string().uuid();
42789
+ var dataClassificationSchema = external_exports.enum([
42790
+ "customer_content",
42791
+ "operational",
42792
+ "sandbox_output"
42793
+ ]);
42794
+ var retentionClassSchema = external_exports.enum([
42795
+ "ephemeral_7d",
42796
+ "standard_90d",
42797
+ "durable_1y",
42798
+ "legal_hold"
42799
+ ]);
42800
+ var ARTIFACT_MAX_TITLE_CHARS = 200;
42801
+ var ARTIFACT_MAX_DISPLAY_LABEL_CHARS = 300;
42802
+ var ARTIFACT_MAX_EXTERNAL_REF_CHARS = 2048;
42803
+ var ARTIFACT_MAX_MIME_CHARS = 255;
42804
+ var ARTIFACT_MAX_STORAGE_PATH_CHARS = 1024;
42805
+ var ARTIFACT_MAX_STORAGE_BUCKET_CHARS = 128;
42806
+ var ARTIFACT_MAX_SNAPSHOT_BYTES = 8192;
42807
+ var artifactKindSchema = external_exports.enum(["binary", "pointer"]);
42808
+ var artifactPointerSystemSchema = external_exports.enum([
42809
+ "gmail_draft",
42810
+ "gmail_message",
42811
+ "google_drive",
42812
+ "google_doc",
42813
+ "github_pr",
42814
+ "github_issue",
42815
+ "linear_issue",
42816
+ "url",
42817
+ "other"
42818
+ ]);
42819
+ var artifactChecksumSchema = external_exports.string().regex(/^[a-f0-9]{64}$/, "checksum must be a lowercase sha256 hex digest");
42820
+ function isSafeArtifactStoragePath(value) {
42821
+ if (value.includes("\\")) {
42822
+ return false;
42823
+ }
42824
+ if (value.length === 0 || value.length > ARTIFACT_MAX_STORAGE_PATH_CHARS) {
42825
+ return false;
42826
+ }
42827
+ if (value.startsWith("/") || value.startsWith("./") || value.startsWith("../")) {
42828
+ return false;
42829
+ }
42830
+ if (value.includes("\0") || value.includes("//")) {
42831
+ return false;
42832
+ }
42833
+ return value.split("/").every((segment) => segment.length > 0 && segment !== "." && segment !== "..");
42834
+ }
42835
+ var artifactStoragePathSchema = external_exports.string().min(1).max(ARTIFACT_MAX_STORAGE_PATH_CHARS).refine(isSafeArtifactStoragePath, "Artifact storage paths must be tenant-local relative paths without traversal segments");
42836
+ var artifactSnapshotSchema = external_exports.record(external_exports.string(), external_exports.unknown()).refine((value) => Buffer.byteLength(JSON.stringify(value), "utf8") <= ARTIFACT_MAX_SNAPSHOT_BYTES, "Artifact snapshot exceeds the bounded size limit").refine((value) => !hasSecretShapedContent(value), "Artifact snapshot must not contain secret-shaped content");
42837
+ var SECRET_URL_PARAM_NAME = /^(access[_-]?token|refresh[_-]?token|id[_-]?token|token|api[_-]?key|apikey|client[_-]?secret|secret|credential|password|passwd|pwd|auth|authorization|signature|sig|x-amz-signature|x-amz-credential|x-amz-security-token|sas|jwt|session|key)$/i;
42838
+ function isTokenizedUrl(value) {
42839
+ let url2;
42840
+ try {
42841
+ url2 = new URL(value);
42842
+ } catch {
42843
+ return false;
42844
+ }
42845
+ if (url2.username !== "" || url2.password !== "") {
42846
+ return true;
42847
+ }
42848
+ for (const [name, paramValue] of url2.searchParams) {
42849
+ if (SECRET_URL_PARAM_NAME.test(name) || hasSecretShapedContent(paramValue)) {
42850
+ return true;
42851
+ }
42852
+ }
42853
+ return false;
42854
+ }
42855
+ var binaryArtifactCreateInputSchema = external_exports.object({
42856
+ seat_id: uuidSchema13,
42857
+ run_id: uuidSchema13.nullable().optional(),
42858
+ title: external_exports.string().trim().min(1).max(ARTIFACT_MAX_TITLE_CHARS).nullable().optional(),
42859
+ storage_bucket: external_exports.string().min(1).max(ARTIFACT_MAX_STORAGE_BUCKET_CHARS),
42860
+ storage_path: artifactStoragePathSchema,
42861
+ mime_type: external_exports.string().min(1).max(ARTIFACT_MAX_MIME_CHARS),
42862
+ size_bytes: external_exports.number().int().nonnegative(),
42863
+ checksum_sha256: artifactChecksumSchema,
42864
+ supersedes_id: uuidSchema13.nullable().optional(),
42865
+ data_classification: dataClassificationSchema.default("customer_content"),
42866
+ retention_class: retentionClassSchema.default("standard_90d")
42867
+ }).strict();
42868
+ var pointerArtifactCreateInputSchema = external_exports.object({
42869
+ seat_id: uuidSchema13,
42870
+ run_id: uuidSchema13.nullable().optional(),
42871
+ title: external_exports.string().trim().min(1).max(ARTIFACT_MAX_TITLE_CHARS).nullable().optional(),
42872
+ pointer_system: artifactPointerSystemSchema,
42873
+ external_ref: external_exports.string().trim().min(1).max(ARTIFACT_MAX_EXTERNAL_REF_CHARS).refine((value) => !isTokenizedUrl(value), "external_ref must be a stable reference, not a tokenized/credentialed URL"),
42874
+ display_label: external_exports.string().trim().min(1).max(ARTIFACT_MAX_DISPLAY_LABEL_CHARS).nullable().optional(),
42875
+ snapshot: artifactSnapshotSchema.default({}),
42876
+ supersedes_id: uuidSchema13.nullable().optional(),
42877
+ data_classification: dataClassificationSchema.default("operational"),
42878
+ retention_class: retentionClassSchema.default("standard_90d")
42879
+ }).strict();
42880
+ var artifactSummarySchema = external_exports.object({
42881
+ artifact_ref: external_exports.string().min(1),
42882
+ artifact_id: uuidSchema13,
42883
+ seat_id: uuidSchema13,
42884
+ run_id: uuidSchema13.nullable(),
42885
+ kind: artifactKindSchema,
42886
+ title: external_exports.string().nullable(),
42887
+ mime_type: external_exports.string().nullable(),
42888
+ size_bytes: external_exports.number().int().nonnegative().nullable(),
42889
+ checksum_sha256: external_exports.string().nullable(),
42890
+ pointer_system: artifactPointerSystemSchema.nullable(),
42891
+ external_ref: external_exports.string().nullable(),
42892
+ display_label: external_exports.string().nullable(),
42893
+ supersedes_id: uuidSchema13.nullable(),
42894
+ data_classification: dataClassificationSchema,
42895
+ retention_class: retentionClassSchema,
42896
+ created_at: isoDateTime3,
42897
+ updated_at: isoDateTime3
42898
+ }).strict();
42899
+ var artifactReadResultSchema = artifactSummarySchema.extend({
42900
+ snapshot: external_exports.record(external_exports.string(), external_exports.unknown()),
42901
+ signed_url: external_exports.string().nullable(),
42902
+ signed_url_expires_at: isoDateTime3.nullable()
42903
+ }).strict();
42904
+ var artifactListOutputSchema = external_exports.object({
42905
+ artifacts: external_exports.array(artifactSummarySchema)
42906
+ }).strict();
42907
+ var sessionTranscriptLaneSchema = external_exports.enum(["cloud", "runner"]);
42908
+ var sessionTranscriptFormatSchema = external_exports.enum(["jsonl", "text"]);
42909
+ var sessionTranscriptSummarySchema = external_exports.object({
42910
+ transcript_id: uuidSchema13,
42911
+ seat_id: uuidSchema13,
42912
+ run_id: uuidSchema13.nullable(),
42913
+ lane: sessionTranscriptLaneSchema,
42914
+ format: sessionTranscriptFormatSchema,
42915
+ message_count: external_exports.number().int().nonnegative().nullable(),
42916
+ truncated: external_exports.boolean(),
42917
+ char_count: external_exports.number().int().nonnegative(),
42918
+ data_classification: dataClassificationSchema,
42919
+ retention_class: retentionClassSchema,
42920
+ created_at: isoDateTime3,
42921
+ updated_at: isoDateTime3
42922
+ }).strict();
42923
+ var sessionTranscriptReadResultSchema = sessionTranscriptSummarySchema.extend({
42924
+ transcript: external_exports.string()
42925
+ }).strict();
42926
+
42927
+ // ../../packages/protocol/src/reads.ts
42928
+ var uuidSchema14 = external_exports.string().uuid();
42929
+ var isoDateTime4 = external_exports.string().datetime({ offset: true });
42765
42930
  var seatTypeSchema = external_exports.enum(["human", "agent", "hybrid"]);
42766
42931
  var seatStatusSchema = external_exports.enum(["draft", "active", "vacant", "decommissioned"]);
42767
42932
  var rollupStateSchema = external_exports.enum(["ok", "risk", "crit", "pending"]);
@@ -42775,13 +42940,13 @@ var credentialStatusSchema = external_exports.enum(["active", "revoked"]);
42775
42940
  var runStatusSchema = external_exports.enum(["running", "succeeded", "failed", "timeout", "cancelled"]);
42776
42941
  var graphGetInputSchema = external_exports.object({}).strict();
42777
42942
  var graphNodeSchema = external_exports.object({
42778
- seat_id: uuidSchema13,
42943
+ seat_id: uuidSchema14,
42779
42944
  name: external_exports.string(),
42780
42945
  seat_type: seatTypeSchema,
42781
42946
  status: seatStatusSchema,
42782
- parent_seat_id: uuidSchema13.nullable(),
42947
+ parent_seat_id: uuidSchema14.nullable(),
42783
42948
  is_root: external_exports.boolean(),
42784
- steward_seat_id: uuidSchema13.nullable(),
42949
+ steward_seat_id: uuidSchema14.nullable(),
42785
42950
  occupant: external_exports.object({
42786
42951
  kind: external_exports.enum(["user", "agent"]),
42787
42952
  label: external_exports.string(),
@@ -42794,11 +42959,11 @@ var graphNodeSchema = external_exports.object({
42794
42959
  is_peer: external_exports.boolean()
42795
42960
  }).strict();
42796
42961
  var graphEdgeSchema = external_exports.object({
42797
- parent_seat_id: uuidSchema13,
42798
- child_seat_id: uuidSchema13
42962
+ parent_seat_id: uuidSchema14,
42963
+ child_seat_id: uuidSchema14
42799
42964
  }).strict();
42800
42965
  var graphGetOutputSchema = external_exports.object({
42801
- root_seat_id: uuidSchema13.nullable(),
42966
+ root_seat_id: uuidSchema14.nullable(),
42802
42967
  nodes: external_exports.array(graphNodeSchema),
42803
42968
  edges: external_exports.array(graphEdgeSchema),
42804
42969
  status_rollups: external_exports.object({
@@ -42810,42 +42975,42 @@ var graphGetOutputSchema = external_exports.object({
42810
42975
  }).strict()
42811
42976
  }).strict();
42812
42977
  var seatGetInputSchema = external_exports.object({
42813
- seat_id: uuidSchema13
42978
+ seat_id: uuidSchema14
42814
42979
  }).strict();
42815
42980
  var seatGetOutputSchema = external_exports.object({
42816
- seat_id: uuidSchema13,
42981
+ seat_id: uuidSchema14,
42817
42982
  name: external_exports.string(),
42818
42983
  seat_type: seatTypeSchema,
42819
42984
  status: seatStatusSchema,
42820
42985
  purpose: external_exports.string().nullable(),
42821
- parent_seat_id: uuidSchema13.nullable(),
42986
+ parent_seat_id: uuidSchema14.nullable(),
42822
42987
  steward_chain: external_exports.array(external_exports.object({
42823
- seat_id: uuidSchema13,
42988
+ seat_id: uuidSchema14,
42824
42989
  name: external_exports.string()
42825
42990
  }).strict()),
42826
42991
  occupancies: external_exports.array(external_exports.object({
42827
- occupancy_id: uuidSchema13,
42992
+ occupancy_id: uuidSchema14,
42828
42993
  occupant_type: external_exports.enum(["user", "agent"]),
42829
42994
  label: external_exports.string(),
42830
- started_at: isoDateTime3,
42831
- ended_at: isoDateTime3.nullable()
42995
+ started_at: isoDateTime4,
42996
+ ended_at: isoDateTime4.nullable()
42832
42997
  }).strict()),
42833
- active_charter_version_id: uuidSchema13.nullable(),
42834
- draft_charter_version_id: uuidSchema13.nullable(),
42998
+ active_charter_version_id: uuidSchema14.nullable(),
42999
+ draft_charter_version_id: uuidSchema14.nullable(),
42835
43000
  agent_status: agentStatusEnum2.nullable(),
42836
43001
  agent_lane: agentLaneSchema2.nullable(),
42837
43002
  mcp_tokens: external_exports.array(external_exports.object({
42838
- token_id: uuidSchema13,
43003
+ token_id: uuidSchema14,
42839
43004
  scope: mcpScopeSchema,
42840
- created_at: isoDateTime3,
42841
- last_seen_at: isoDateTime3.nullable(),
43005
+ created_at: isoDateTime4,
43006
+ last_seen_at: isoDateTime4.nullable(),
42842
43007
  // DER-830: expires_at is NOT NULL; surface days-remaining alongside it.
42843
- expires_at: isoDateTime3,
43008
+ expires_at: isoDateTime4,
42844
43009
  expires_in_days: external_exports.number().int(),
42845
- revoked_at: isoDateTime3.nullable()
43010
+ revoked_at: isoDateTime4.nullable()
42846
43011
  }).strict()),
42847
43012
  credentials: external_exports.array(external_exports.object({
42848
- credential_id: uuidSchema13,
43013
+ credential_id: uuidSchema14,
42849
43014
  provider: external_exports.string(),
42850
43015
  status: credentialStatusSchema
42851
43016
  }).strict()),
@@ -42857,30 +43022,30 @@ var seatGetOutputSchema = external_exports.object({
42857
43022
  }).strict()
42858
43023
  }).strict();
42859
43024
  var charterListInputSchema = external_exports.object({
42860
- seat_id: uuidSchema13.optional(),
43025
+ seat_id: uuidSchema14.optional(),
42861
43026
  status: charterStatusSchema.optional()
42862
43027
  }).strict();
42863
43028
  var charterSummarySchema = external_exports.object({
42864
- charter_version_id: uuidSchema13,
42865
- seat_id: uuidSchema13,
43029
+ charter_version_id: uuidSchema14,
43030
+ seat_id: uuidSchema14,
42866
43031
  version: external_exports.number().int().nonnegative(),
42867
43032
  status: charterStatusSchema,
42868
- created_at: isoDateTime3,
42869
- approved_at: isoDateTime3.nullable()
43033
+ created_at: isoDateTime4,
43034
+ approved_at: isoDateTime4.nullable()
42870
43035
  }).strict();
42871
43036
  var charterListOutputSchema = external_exports.object({
42872
43037
  charters: external_exports.array(charterSummarySchema)
42873
43038
  }).strict();
42874
43039
  var charterGetInputSchema = external_exports.object({
42875
- charter_version_id: uuidSchema13
43040
+ charter_version_id: uuidSchema14
42876
43041
  }).strict();
42877
43042
  var charterGetOutputSchema = external_exports.object({
42878
- charter_version_id: uuidSchema13,
42879
- seat_id: uuidSchema13,
43043
+ charter_version_id: uuidSchema14,
43044
+ seat_id: uuidSchema14,
42880
43045
  version: external_exports.number().int().nonnegative(),
42881
43046
  status: charterStatusSchema,
42882
- created_at: isoDateTime3,
42883
- approved_at: isoDateTime3.nullable(),
43047
+ created_at: isoDateTime4,
43048
+ approved_at: isoDateTime4.nullable(),
42884
43049
  doc: external_exports.unknown(),
42885
43050
  history: external_exports.array(charterSummarySchema),
42886
43051
  dry_run: external_exports.object({
@@ -42890,7 +43055,7 @@ var charterGetOutputSchema = external_exports.object({
42890
43055
  }).strict();
42891
43056
  var compassGetCurrentInputSchema = external_exports.object({}).strict();
42892
43057
  var compassVersionRefSchema = external_exports.object({
42893
- compass_version_id: uuidSchema13,
43058
+ compass_version_id: uuidSchema14,
42894
43059
  version: external_exports.number().int().nonnegative(),
42895
43060
  status: compassStatusSchema,
42896
43061
  doc: external_exports.unknown()
@@ -42901,7 +43066,7 @@ var compassGetCurrentOutputSchema = external_exports.object({
42901
43066
  // Sources expose document id and kind only. The underlying storage_ref can
42902
43067
  // be a local file path, so it is never surfaced (redaction rule).
42903
43068
  sources: external_exports.array(external_exports.object({
42904
- document_id: uuidSchema13,
43069
+ document_id: uuidSchema14,
42905
43070
  kind: external_exports.string()
42906
43071
  }).strict())
42907
43072
  }).strict();
@@ -42916,31 +43081,31 @@ var compassGapSchema = external_exports.object({
42916
43081
  answer: external_exports.string().nullable()
42917
43082
  }).strict();
42918
43083
  var compassListGapsOutputSchema = external_exports.object({
42919
- compass_version_id: uuidSchema13.nullable(),
43084
+ compass_version_id: uuidSchema14.nullable(),
42920
43085
  unanswered: external_exports.array(compassGapSchema),
42921
43086
  answered: external_exports.array(compassGapSchema)
42922
43087
  }).strict();
42923
43088
  var agentStatusInputSchema = external_exports.object({
42924
- seat_id: uuidSchema13
43089
+ seat_id: uuidSchema14
42925
43090
  }).strict();
42926
43091
  var agentStatusOutputSchema = external_exports.object({
42927
- seat_id: uuidSchema13,
43092
+ seat_id: uuidSchema14,
42928
43093
  // DER-786 (C7): `has_agent` is true whenever a setup agent exists for the seat
42929
43094
  // — including a draft setup that has no occupancy yet — so it agrees with
42930
43095
  // agent_setup.get. `lifecycle` is the shared cross-surface term derived from
42931
43096
  // `status` (none | draft_setup | dry_run | live | …).
42932
43097
  has_agent: external_exports.boolean(),
42933
43098
  lifecycle: agentLifecycleSchema,
42934
- agent_id: uuidSchema13.nullable(),
43099
+ agent_id: uuidSchema14.nullable(),
42935
43100
  kind: agentKindSchema2.nullable(),
42936
43101
  display_name: external_exports.string().nullable(),
42937
43102
  lane: agentLaneSchema2.nullable(),
42938
43103
  status: agentStatusEnum2.nullable(),
42939
43104
  schedule_cron: external_exports.string().nullable(),
42940
43105
  live: external_exports.boolean(),
42941
- charter_version_id: uuidSchema13.nullable(),
43106
+ charter_version_id: uuidSchema14.nullable(),
42942
43107
  steward_chain: external_exports.array(external_exports.object({
42943
- seat_id: uuidSchema13,
43108
+ seat_id: uuidSchema14,
42944
43109
  name: external_exports.string()
42945
43110
  }).strict()),
42946
43111
  steward_chain_resolves_to_human: external_exports.boolean(),
@@ -42952,13 +43117,13 @@ var agentStatusOutputSchema = external_exports.object({
42952
43117
  }).strict();
42953
43118
  var agentListFleetInputSchema = external_exports.object({}).strict();
42954
43119
  var fleetOverviewRowSchema = external_exports.object({
42955
- seat_id: uuidSchema13,
43120
+ seat_id: uuidSchema14,
42956
43121
  seat_name: external_exports.string(),
42957
43122
  seat_path: external_exports.string(),
42958
43123
  lane: agentLaneSchema2.nullable(),
42959
43124
  agent_status: external_exports.enum(["draft", "dry_run", "live", "paused", "decommissioned", "vacant"]),
42960
43125
  live: external_exports.boolean(),
42961
- last_turn_at: isoDateTime3.nullable(),
43126
+ last_turn_at: isoDateTime4.nullable(),
42962
43127
  turns_24h: external_exports.number().int().nonnegative(),
42963
43128
  turns_7d: external_exports.number().int().nonnegative(),
42964
43129
  top_measurable_status: external_exports.enum(["on", "off", "pending", "none"]),
@@ -42969,48 +43134,48 @@ var agentListFleetOutputSchema = external_exports.object({
42969
43134
  agents: external_exports.array(fleetOverviewRowSchema)
42970
43135
  }).strict();
42971
43136
  var runErrorLogSchema = external_exports.object({
42972
- error_log_id: uuidSchema13,
43137
+ error_log_id: uuidSchema14,
42973
43138
  source: external_exports.enum(["run", "llm", "tool", "mcp", "runner", "integration", "job", "web"]),
42974
43139
  severity: external_exports.enum(["warning", "error", "critical"]),
42975
43140
  code: external_exports.string().nullable(),
42976
43141
  message: external_exports.string(),
42977
- created_at: isoDateTime3,
42978
- resolved_at: isoDateTime3.nullable()
43142
+ created_at: isoDateTime4,
43143
+ resolved_at: isoDateTime4.nullable()
42979
43144
  }).strict();
42980
43145
  var agentFleetDigestInputSchema = external_exports.object({
42981
43146
  window_hours: external_exports.number().int().min(1).max(168).default(24),
42982
43147
  error_limit: external_exports.number().int().min(1).max(100).default(50)
42983
43148
  }).strict();
42984
43149
  var fleetDigestRunSchema = external_exports.object({
42985
- run_id: uuidSchema13,
42986
- seat_id: uuidSchema13,
42987
- agent_id: uuidSchema13,
43150
+ run_id: uuidSchema14,
43151
+ seat_id: uuidSchema14,
43152
+ agent_id: uuidSchema14,
42988
43153
  status: runStatusSchema,
42989
43154
  lane: agentLaneSchema2,
42990
43155
  model: external_exports.string(),
42991
- started_at: isoDateTime3,
42992
- finished_at: isoDateTime3.nullable(),
43156
+ started_at: isoDateTime4,
43157
+ finished_at: isoDateTime4.nullable(),
42993
43158
  cost_usd: external_exports.string(),
42994
43159
  error_logs: external_exports.array(runErrorLogSchema)
42995
43160
  }).strict();
42996
43161
  var fleetDigestErrorSchema = runErrorLogSchema.extend({
42997
- seat_id: uuidSchema13.nullable(),
42998
- agent_id: uuidSchema13.nullable(),
42999
- run_id: uuidSchema13.nullable(),
43162
+ seat_id: uuidSchema14.nullable(),
43163
+ agent_id: uuidSchema14.nullable(),
43164
+ run_id: uuidSchema14.nullable(),
43000
43165
  disposition: external_exports.enum(["active", "acknowledged", "resolved", "superseded"])
43001
43166
  }).strict();
43002
43167
  var fleetDigestNotificationErrorSchema = external_exports.object({
43003
- notification_id: uuidSchema13,
43168
+ notification_id: uuidSchema14,
43004
43169
  kind: external_exports.string(),
43005
43170
  channel: external_exports.string(),
43006
43171
  status: external_exports.string(),
43007
43172
  provider: external_exports.string(),
43008
43173
  error_message: external_exports.string().nullable(),
43009
- error_log_id: uuidSchema13.nullable(),
43174
+ error_log_id: uuidSchema14.nullable(),
43010
43175
  source: external_exports.enum(["run", "llm", "tool", "mcp", "runner", "integration", "job", "web"]).nullable(),
43011
- seat_id: uuidSchema13.nullable(),
43012
- run_id: uuidSchema13.nullable(),
43013
- created_at: isoDateTime3
43176
+ seat_id: uuidSchema14.nullable(),
43177
+ run_id: uuidSchema14.nullable(),
43178
+ created_at: isoDateTime4
43014
43179
  }).strict();
43015
43180
  var fleetDigestAgentSchema = fleetOverviewRowSchema.extend({
43016
43181
  failed_runs_24h: external_exports.number().int().nonnegative(),
@@ -43029,7 +43194,7 @@ var fleetDigestAgentSchema = fleetOverviewRowSchema.extend({
43029
43194
  suggested_next_action: external_exports.string()
43030
43195
  }).strict();
43031
43196
  var agentFleetDigestOutputSchema = external_exports.object({
43032
- generated_at: isoDateTime3,
43197
+ generated_at: isoDateTime4,
43033
43198
  window_hours: external_exports.number().int().min(1).max(168),
43034
43199
  summary: external_exports.object({
43035
43200
  fleet_count: external_exports.number().int().nonnegative(),
@@ -43055,26 +43220,30 @@ var seatTrustSummarySchema = external_exports.object({
43055
43220
  tool_call_count: external_exports.number().int().nonnegative(),
43056
43221
  // The hero metric: actions held this period because they exceeded the charter.
43057
43222
  denied_tool_call_count: external_exports.number().int().nonnegative(),
43058
- last_activity_at: isoDateTime3.nullable()
43223
+ last_activity_at: isoDateTime4.nullable()
43059
43224
  }).strict();
43060
43225
  var agentListRunsInputSchema = external_exports.object({
43061
- seat_id: uuidSchema13,
43226
+ seat_id: uuidSchema14,
43062
43227
  // Conservative, bounded page size; the timeline is a recent-history view.
43063
43228
  limit: external_exports.number().int().min(1).max(200).default(50)
43064
43229
  }).strict();
43065
43230
  var agentGetRunInputSchema = external_exports.object({
43066
- seat_id: uuidSchema13,
43067
- run_id: uuidSchema13
43231
+ seat_id: uuidSchema14,
43232
+ run_id: uuidSchema14,
43233
+ // DER-1661: opt in to the persisted session transcript (`--transcript`). Off by
43234
+ // default so the diagnostic read stays lean; the (potentially large) transcript body
43235
+ // loads only when asked.
43236
+ transcript: external_exports.boolean().default(false)
43068
43237
  }).strict();
43069
43238
  var seatRunSchema = external_exports.object({
43070
- run_id: uuidSchema13,
43071
- agent_id: uuidSchema13,
43239
+ run_id: uuidSchema14,
43240
+ agent_id: uuidSchema14,
43072
43241
  agent_display_name: external_exports.string().nullable(),
43073
43242
  status: runStatusSchema,
43074
43243
  lane: agentLaneSchema2,
43075
43244
  model: external_exports.string(),
43076
- started_at: isoDateTime3,
43077
- finished_at: isoDateTime3.nullable(),
43245
+ started_at: isoDateTime4,
43246
+ finished_at: isoDateTime4.nullable(),
43078
43247
  cost_usd: external_exports.string(),
43079
43248
  tool_call_count: external_exports.number().int().nonnegative(),
43080
43249
  denied_tool_call_count: external_exports.number().int().nonnegative(),
@@ -43084,16 +43253,16 @@ var seatRunErrorLogSchema = runErrorLogSchema.extend({
43084
43253
  error_class: external_exports.string().nullable()
43085
43254
  }).strict();
43086
43255
  var seatRunDetailSchema = seatRunSchema.extend({
43087
- task_id: uuidSchema13.nullable(),
43088
- work_order_id: uuidSchema13.nullable(),
43256
+ task_id: uuidSchema14.nullable(),
43257
+ work_order_id: uuidSchema14.nullable(),
43089
43258
  transcript_ref: external_exports.string(),
43090
43259
  input_tokens: external_exports.number().int().nonnegative(),
43091
43260
  output_tokens: external_exports.number().int().nonnegative(),
43092
43261
  outcome: external_exports.record(external_exports.string(), external_exports.unknown()),
43093
43262
  error_logs: external_exports.array(seatRunErrorLogSchema),
43094
43263
  skill_activations: external_exports.array(external_exports.object({
43095
- skill_activation_id: uuidSchema13,
43096
- skill_version_id: uuidSchema13,
43264
+ skill_activation_id: uuidSchema14,
43265
+ skill_version_id: uuidSchema14,
43097
43266
  slug: external_exports.string().min(1),
43098
43267
  name: external_exports.string().min(1),
43099
43268
  version: external_exports.number().int().positive(),
@@ -43103,36 +43272,39 @@ var seatRunDetailSchema = seatRunSchema.extend({
43103
43272
  content_sha256: external_exports.string().regex(/^[a-f0-9]{64}$/),
43104
43273
  size_bytes: external_exports.number().int().nonnegative()
43105
43274
  }).strict()),
43106
- created_at: isoDateTime3
43107
- }).strict())
43275
+ created_at: isoDateTime4
43276
+ }).strict()),
43277
+ // DER-1661/DER-1753: the persisted session transcript, present only when the read
43278
+ // asked for it (`transcript: true`) — null when requested but none was persisted.
43279
+ transcript: sessionTranscriptReadResultSchema.nullable().optional()
43108
43280
  }).strict();
43109
43281
  var agentListRunsOutputSchema = external_exports.object({
43110
- seat_id: uuidSchema13,
43282
+ seat_id: uuidSchema14,
43111
43283
  summary: seatTrustSummarySchema,
43112
43284
  runs: external_exports.array(seatRunSchema)
43113
43285
  }).strict();
43114
43286
  var agentGetRunOutputSchema = external_exports.object({
43115
- seat_id: uuidSchema13,
43287
+ seat_id: uuidSchema14,
43116
43288
  run: seatRunDetailSchema
43117
43289
  }).strict();
43118
43290
  var agentListToolCallsInputSchema = external_exports.object({
43119
- seat_id: uuidSchema13,
43291
+ seat_id: uuidSchema14,
43120
43292
  limit: external_exports.number().int().min(1).max(200).default(50),
43121
43293
  // When true, return only HELD (non-allowed) tool calls — the governance view.
43122
43294
  held_only: external_exports.boolean().default(false)
43123
43295
  }).strict();
43124
43296
  var seatToolCallSchema = external_exports.object({
43125
- tool_call_id: uuidSchema13,
43126
- run_id: uuidSchema13.nullable(),
43297
+ tool_call_id: uuidSchema14,
43298
+ run_id: uuidSchema14.nullable(),
43127
43299
  tool_name: external_exports.string(),
43128
43300
  guard_result: guardResultSchema,
43129
43301
  manifest_clause: external_exports.string().nullable(),
43130
43302
  outcome: external_exports.string(),
43131
- started_at: isoDateTime3,
43132
- finished_at: isoDateTime3.nullable()
43303
+ started_at: isoDateTime4,
43304
+ finished_at: isoDateTime4.nullable()
43133
43305
  }).strict();
43134
43306
  var agentListToolCallsOutputSchema = external_exports.object({
43135
- seat_id: uuidSchema13,
43307
+ seat_id: uuidSchema14,
43136
43308
  summary: seatTrustSummarySchema,
43137
43309
  tool_calls: external_exports.array(seatToolCallSchema)
43138
43310
  }).strict();
@@ -43143,21 +43315,21 @@ var deliverableLinkSchema = external_exports.object({
43143
43315
  kind: external_exports.enum(["internal", "linear", "github", "external"])
43144
43316
  }).strict();
43145
43317
  var deliverableIdSchema = external_exports.union([
43146
- uuidSchema13,
43318
+ uuidSchema14,
43147
43319
  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)
43148
43320
  ]);
43149
43321
  var deliverableRowSchema = external_exports.object({
43150
43322
  id: deliverableIdSchema,
43151
- seat_id: uuidSchema13,
43152
- agent_id: uuidSchema13.nullable(),
43153
- run_id: uuidSchema13.nullable(),
43154
- task_id: uuidSchema13.nullable(),
43155
- work_order_id: uuidSchema13.nullable(),
43323
+ seat_id: uuidSchema14,
43324
+ agent_id: uuidSchema14.nullable(),
43325
+ run_id: uuidSchema14.nullable(),
43326
+ task_id: uuidSchema14.nullable(),
43327
+ work_order_id: uuidSchema14.nullable(),
43156
43328
  kind: deliverableKindSchema,
43157
43329
  title: external_exports.string(),
43158
43330
  summary: external_exports.string().nullable(),
43159
43331
  content: external_exports.string().nullable(),
43160
- delivered_at: isoDateTime3,
43332
+ delivered_at: isoDateTime4,
43161
43333
  source_run_status: external_exports.string().nullable(),
43162
43334
  source_run_model: external_exports.string().nullable(),
43163
43335
  source_run_log_ref: external_exports.string().nullable(),
@@ -43165,13 +43337,13 @@ var deliverableRowSchema = external_exports.object({
43165
43337
  links: external_exports.array(deliverableLinkSchema)
43166
43338
  }).strict();
43167
43339
  var deliverableListInputSchema = external_exports.object({
43168
- seat_id: uuidSchema13
43340
+ seat_id: uuidSchema14
43169
43341
  }).strict();
43170
43342
  var deliverableListOutputSchema = external_exports.object({
43171
43343
  deliverables: external_exports.array(deliverableRowSchema)
43172
43344
  }).strict();
43173
43345
  var deliverableGetInputSchema = external_exports.object({
43174
- seat_id: uuidSchema13,
43346
+ seat_id: uuidSchema14,
43175
43347
  deliverable_id: deliverableIdSchema
43176
43348
  }).strict();
43177
43349
  var deliverableGetOutputSchema = external_exports.object({
@@ -43179,86 +43351,86 @@ var deliverableGetOutputSchema = external_exports.object({
43179
43351
  }).strict();
43180
43352
  var mcpTokenListInputSchema = external_exports.object({
43181
43353
  include_revoked: external_exports.boolean().default(false),
43182
- seat_id: uuidSchema13.optional()
43354
+ seat_id: uuidSchema14.optional()
43183
43355
  }).strict();
43184
43356
  var mcpTokenMetadataSchema = external_exports.object({
43185
- token_id: uuidSchema13,
43357
+ token_id: uuidSchema14,
43186
43358
  scope: mcpScopeSchema,
43187
- seat_id: uuidSchema13.nullable(),
43188
- created_at: isoDateTime3,
43189
- last_seen_at: isoDateTime3.nullable(),
43359
+ seat_id: uuidSchema14.nullable(),
43360
+ created_at: isoDateTime4,
43361
+ last_seen_at: isoDateTime4.nullable(),
43190
43362
  // DER-830: expires_at is now always present (the column is NOT NULL).
43191
- expires_at: isoDateTime3,
43363
+ expires_at: isoDateTime4,
43192
43364
  // DER-830: whole days remaining until expiry, computed server-side. Negative
43193
43365
  // when the token is already expired (so the CLI can render "expired").
43194
43366
  expires_in_days: external_exports.number().int(),
43195
- revoked_at: isoDateTime3.nullable()
43367
+ revoked_at: isoDateTime4.nullable()
43196
43368
  }).strict();
43197
43369
  var mcpTokenListOutputSchema = external_exports.object({
43198
43370
  tokens: external_exports.array(mcpTokenMetadataSchema)
43199
43371
  }).strict();
43200
43372
  var errorLogListInputSchema = external_exports.object({
43201
- seat_id: uuidSchema13.optional(),
43373
+ seat_id: uuidSchema14.optional(),
43202
43374
  source: external_exports.enum(["run", "llm", "tool", "mcp", "runner", "integration", "job", "web"]).optional(),
43203
43375
  severity: external_exports.enum(["warning", "error", "critical"]).optional(),
43204
43376
  resolved: external_exports.enum(["active", "acknowledged", "resolved", "all"]).default("active"),
43205
43377
  limit: external_exports.number().int().min(1).max(200).default(50)
43206
43378
  }).strict();
43207
43379
  var errorLogListItemSchema = external_exports.object({
43208
- error_log_id: uuidSchema13,
43380
+ error_log_id: uuidSchema14,
43209
43381
  source: external_exports.enum(["run", "llm", "tool", "mcp", "runner", "integration", "job", "web"]),
43210
43382
  severity: external_exports.enum(["warning", "error", "critical"]),
43211
43383
  code: external_exports.string().nullable(),
43212
43384
  message: external_exports.string(),
43213
- seat_id: uuidSchema13.nullable(),
43214
- agent_id: uuidSchema13.nullable(),
43215
- run_id: uuidSchema13.nullable(),
43385
+ seat_id: uuidSchema14.nullable(),
43386
+ agent_id: uuidSchema14.nullable(),
43387
+ run_id: uuidSchema14.nullable(),
43216
43388
  disposition: external_exports.enum(["active", "acknowledged", "resolved", "superseded"]),
43217
- resolved_at: isoDateTime3.nullable(),
43218
- resolved_by: uuidSchema13.nullable(),
43389
+ resolved_at: isoDateTime4.nullable(),
43390
+ resolved_by: uuidSchema14.nullable(),
43219
43391
  resolution_reason: external_exports.string().nullable(),
43220
- linked_task_id: uuidSchema13.nullable(),
43221
- linked_issue_id: uuidSchema13.nullable(),
43392
+ linked_task_id: uuidSchema14.nullable(),
43393
+ linked_issue_id: uuidSchema14.nullable(),
43222
43394
  linked_pr_ref: external_exports.string().nullable(),
43223
- superseded_by_id: uuidSchema13.nullable(),
43224
- created_at: isoDateTime3
43395
+ superseded_by_id: uuidSchema14.nullable(),
43396
+ created_at: isoDateTime4
43225
43397
  }).strict();
43226
43398
  var errorLogListOutputSchema = external_exports.object({
43227
43399
  errors: external_exports.array(errorLogListItemSchema),
43228
43400
  total: external_exports.number().int().nonnegative()
43229
43401
  }).strict();
43230
43402
  var errorLogResolveInputSchema = external_exports.object({
43231
- error_log_id: uuidSchema13,
43403
+ error_log_id: uuidSchema14,
43232
43404
  reason: external_exports.string().trim().min(1),
43233
43405
  disposition: external_exports.enum(["acknowledged", "resolved"]).default("acknowledged"),
43234
- linked_task_id: uuidSchema13.optional(),
43235
- linked_issue_id: uuidSchema13.optional(),
43406
+ linked_task_id: uuidSchema14.optional(),
43407
+ linked_issue_id: uuidSchema14.optional(),
43236
43408
  linked_pr_ref: external_exports.string().trim().min(1).optional()
43237
43409
  }).strict();
43238
43410
  var errorLogResolveOutputSchema = external_exports.object({
43239
- error_log_id: uuidSchema13,
43411
+ error_log_id: uuidSchema14,
43240
43412
  disposition: external_exports.enum(["acknowledged", "resolved"]),
43241
- resolved_at: isoDateTime3
43413
+ resolved_at: isoDateTime4
43242
43414
  }).strict();
43243
43415
  var errorLogSupersedeInputSchema = external_exports.object({
43244
- error_log_id: uuidSchema13,
43245
- new_error_log_id: uuidSchema13,
43416
+ error_log_id: uuidSchema14,
43417
+ new_error_log_id: uuidSchema14,
43246
43418
  reason: external_exports.string().trim().min(1),
43247
- linked_task_id: uuidSchema13.optional(),
43248
- linked_issue_id: uuidSchema13.optional(),
43419
+ linked_task_id: uuidSchema14.optional(),
43420
+ linked_issue_id: uuidSchema14.optional(),
43249
43421
  linked_pr_ref: external_exports.string().trim().min(1).optional()
43250
43422
  }).strict();
43251
43423
  var errorLogSupersedeOutputSchema = external_exports.object({
43252
- error_log_id: uuidSchema13,
43253
- superseded_by_id: uuidSchema13,
43424
+ error_log_id: uuidSchema14,
43425
+ superseded_by_id: uuidSchema14,
43254
43426
  disposition: external_exports.literal("superseded"),
43255
- resolved_at: isoDateTime3
43427
+ resolved_at: isoDateTime4
43256
43428
  }).strict();
43257
43429
 
43258
43430
  // ../../packages/protocol/src/working-files.ts
43259
43431
  var WORKING_FILE_MAX_PATH_CHARS = 512;
43260
43432
  var WORKING_FILE_MAX_CONTENT_CHARS = 16384;
43261
- var isoDateTime4 = external_exports.string().datetime({ offset: true });
43433
+ var isoDateTime5 = external_exports.string().datetime({ offset: true });
43262
43434
  var workingFileContentTypeSchema = external_exports.enum([
43263
43435
  "text/plain",
43264
43436
  "text/markdown",
@@ -43337,10 +43509,10 @@ var workingFileSummarySchema = external_exports.object({
43337
43509
  content_type: workingFileContentTypeSchema,
43338
43510
  content_chars: external_exports.number().int().nonnegative(),
43339
43511
  published_ref: external_exports.string().min(1).nullable(),
43340
- published_at: isoDateTime4.nullable(),
43341
- expires_at: isoDateTime4,
43342
- created_at: isoDateTime4,
43343
- updated_at: isoDateTime4
43512
+ published_at: isoDateTime5.nullable(),
43513
+ expires_at: isoDateTime5,
43514
+ created_at: isoDateTime5,
43515
+ updated_at: isoDateTime5
43344
43516
  }).strict();
43345
43517
  var workingFileReadResultSchema = workingFileSummarySchema.extend({
43346
43518
  content: external_exports.string(),
@@ -43357,7 +43529,7 @@ var runSummaryOutputSchema = external_exports.object({
43357
43529
 
43358
43530
  // ../../packages/protocol/src/runner-settings.ts
43359
43531
  var uuid8 = external_exports.string().uuid();
43360
- var isoDateTime5 = external_exports.string().datetime({ offset: true });
43532
+ var isoDateTime6 = external_exports.string().datetime({ offset: true });
43361
43533
  var runnerHealthSchema = external_exports.enum(["online", "stale", "offline", "revoked", "unpaired"]);
43362
43534
  var runnerExecutionStateSchema = external_exports.enum([
43363
43535
  "ready",
@@ -43377,8 +43549,8 @@ var runnerExecutionReadinessSchema = external_exports.object({
43377
43549
  due_queued_work_orders: external_exports.number().int().nonnegative(),
43378
43550
  claimed_work_orders: external_exports.number().int().nonnegative(),
43379
43551
  running_work_orders: external_exports.number().int().nonnegative(),
43380
- recent_completed_at: isoDateTime5.nullable(),
43381
- recent_failed_at: isoDateTime5.nullable()
43552
+ recent_completed_at: isoDateTime6.nullable(),
43553
+ recent_failed_at: isoDateTime6.nullable()
43382
43554
  }).strict();
43383
43555
  var runnerSandboxPostureSchema = external_exports.enum(["guard", "strict", "off", "none", "unknown"]);
43384
43556
  var runnerPostureSchema = external_exports.object({
@@ -43395,10 +43567,10 @@ var runnerSummarySchema = external_exports.object({
43395
43567
  cli_version: external_exports.string().nullable(),
43396
43568
  posture: runnerPostureSchema,
43397
43569
  execution: runnerExecutionReadinessSchema,
43398
- paired_at: isoDateTime5.nullable(),
43399
- last_heartbeat_at: isoDateTime5.nullable(),
43400
- revoked_at: isoDateTime5.nullable(),
43401
- created_at: isoDateTime5
43570
+ paired_at: isoDateTime6.nullable(),
43571
+ last_heartbeat_at: isoDateTime6.nullable(),
43572
+ revoked_at: isoDateTime6.nullable(),
43573
+ created_at: isoDateTime6
43402
43574
  }).strict();
43403
43575
  var runnerListInputSchema = external_exports.object({
43404
43576
  include_revoked: external_exports.boolean().optional()
@@ -43417,7 +43589,7 @@ var runnerPairingStartOutputSchema = external_exports.object({
43417
43589
  pairing_session_id: uuid8,
43418
43590
  user_code: external_exports.string(),
43419
43591
  verification_uri: external_exports.string(),
43420
- expires_at: isoDateTime5,
43592
+ expires_at: isoDateTime6,
43421
43593
  expires_in: external_exports.number().int().nonnegative()
43422
43594
  }).strict();
43423
43595
  var runnerRevokeInputSchema = external_exports.object({
@@ -43435,9 +43607,9 @@ var workOrderSummarySchema = external_exports.object({
43435
43607
  lane: external_exports.enum(["cloud", "runner"]),
43436
43608
  status: workOrderStatusSchema,
43437
43609
  claimed_by_runner_id: uuid8.nullable(),
43438
- scheduled_for: isoDateTime5,
43439
- grace_deadline: isoDateTime5,
43440
- created_at: isoDateTime5
43610
+ scheduled_for: isoDateTime6,
43611
+ grace_deadline: isoDateTime6,
43612
+ created_at: isoDateTime6
43441
43613
  }).strict();
43442
43614
  var workOrderListInputSchema = external_exports.object({
43443
43615
  status: workOrderStatusSchema.optional(),
@@ -43450,7 +43622,7 @@ var workOrderListOutputSchema = external_exports.object({
43450
43622
  }).strict();
43451
43623
  var workOrderEnqueueInputSchema = external_exports.object({
43452
43624
  agent_id: uuid8,
43453
- scheduled_for: isoDateTime5.optional(),
43625
+ scheduled_for: isoDateTime6.optional(),
43454
43626
  task_id: uuid8.optional()
43455
43627
  }).strict();
43456
43628
  var agentRunNowInputSchema = external_exports.object({
@@ -43477,8 +43649,8 @@ var runnerDiagnoseOutputSchema = external_exports.object({
43477
43649
  platform: external_exports.string(),
43478
43650
  health: runnerHealthSchema,
43479
43651
  capabilities: runnerCapabilityDetailSchema,
43480
- last_heartbeat_at: isoDateTime5.nullable(),
43481
- paired_at: isoDateTime5.nullable(),
43652
+ last_heartbeat_at: isoDateTime6.nullable(),
43653
+ paired_at: isoDateTime6.nullable(),
43482
43654
  revocation_state: external_exports.enum(["active", "revoked", "unpaired"]),
43483
43655
  repair_guidance: external_exports.array(external_exports.object({
43484
43656
  action: external_exports.string(),
@@ -43539,7 +43711,7 @@ var notificationErrorSummarySchema = external_exports.object({
43539
43711
  source: external_exports.enum(["run", "llm", "tool", "mcp", "runner", "integration", "job", "web"]).nullable(),
43540
43712
  seat_id: uuid8.nullable(),
43541
43713
  run_id: uuid8.nullable(),
43542
- created_at: isoDateTime5
43714
+ created_at: isoDateTime6
43543
43715
  }).strict();
43544
43716
  var notificationListErrorsOutputSchema = external_exports.object({
43545
43717
  errors: external_exports.array(notificationErrorSummarySchema)
@@ -43656,7 +43828,7 @@ var integrationSummarySchema = external_exports.object({
43656
43828
  id: uuid8,
43657
43829
  provider: external_exports.string(),
43658
43830
  status: external_exports.enum(["connected", "error", "disconnected"]),
43659
- last_synced_at: isoDateTime5.nullable()
43831
+ last_synced_at: isoDateTime6.nullable()
43660
43832
  }).strict();
43661
43833
  var settingsGetInputSchema = external_exports.object({}).strict();
43662
43834
  var settingsGetOutputSchema = external_exports.object({
@@ -43691,13 +43863,13 @@ var tenantRenameOutputSchema = external_exports.object({
43691
43863
  }).strict();
43692
43864
 
43693
43865
  // ../../packages/protocol/src/system-health.ts
43694
- var uuidSchema14 = external_exports.string().uuid();
43695
- var isoDateTime6 = external_exports.string().datetime({ offset: true });
43866
+ var uuidSchema15 = external_exports.string().uuid();
43867
+ var isoDateTime7 = external_exports.string().datetime({ offset: true });
43696
43868
  var systemHealthCallerKindSchema = external_exports.enum(["tenant_admin", "member", "seat_token"]);
43697
43869
  var systemHealthCallerSchema = external_exports.object({
43698
43870
  kind: systemHealthCallerKindSchema,
43699
- seat_id: uuidSchema14.optional(),
43700
- seat_ids: external_exports.array(uuidSchema14).min(1).optional()
43871
+ seat_id: uuidSchema15.optional(),
43872
+ seat_ids: external_exports.array(uuidSchema15).min(1).optional()
43701
43873
  }).strict();
43702
43874
  var systemHealthVerdictSchema = external_exports.enum(["healthy", "degraded", "blocked"]);
43703
43875
  var systemHealthSeveritySchema = external_exports.enum(["info", "warning", "critical"]);
@@ -43735,18 +43907,18 @@ var systemHealthFindingSchema = external_exports.object({
43735
43907
  summary: external_exports.string().min(1),
43736
43908
  detail: external_exports.string().min(1),
43737
43909
  remediation: systemHealthActionSchema,
43738
- seat_id: uuidSchema14.nullable(),
43739
- goal_id: uuidSchema14.nullable(),
43740
- run_id: uuidSchema14.nullable(),
43741
- issue_id: uuidSchema14.nullable(),
43742
- task_id: uuidSchema14.nullable(),
43743
- error_log_id: uuidSchema14.nullable()
43910
+ seat_id: uuidSchema15.nullable(),
43911
+ goal_id: uuidSchema15.nullable(),
43912
+ run_id: uuidSchema15.nullable(),
43913
+ issue_id: uuidSchema15.nullable(),
43914
+ task_id: uuidSchema15.nullable(),
43915
+ error_log_id: uuidSchema15.nullable()
43744
43916
  }).strict();
43745
43917
  var systemHealthScopeSchema = external_exports.object({
43746
43918
  mode: systemHealthScopeModeSchema,
43747
- root_seat_ids: external_exports.array(uuidSchema14),
43748
- included_seat_ids: external_exports.array(uuidSchema14),
43749
- requested_seat_id: uuidSchema14.nullable(),
43919
+ root_seat_ids: external_exports.array(uuidSchema15),
43920
+ included_seat_ids: external_exports.array(uuidSchema15),
43921
+ requested_seat_id: uuidSchema15.nullable(),
43750
43922
  total_seat_count: external_exports.number().int().nonnegative()
43751
43923
  }).strict();
43752
43924
  var systemHealthFleetSectionSchema = external_exports.object({
@@ -43782,7 +43954,7 @@ var systemHealthConnectivitySectionSchema = external_exports.object({
43782
43954
  failed_notification_count: external_exports.number().int().nonnegative()
43783
43955
  }).strict();
43784
43956
  var systemHealthSyncSectionSchema = external_exports.object({
43785
- latest_brief_at: isoDateTime6.nullable(),
43957
+ latest_brief_at: isoDateTime7.nullable(),
43786
43958
  missing_latest_brief: external_exports.boolean(),
43787
43959
  flagged_gap_count: external_exports.number().int().nonnegative()
43788
43960
  }).strict();
@@ -43796,13 +43968,13 @@ var systemHealthSectionsSchema = external_exports.object({
43796
43968
  sync: systemHealthSyncSectionSchema
43797
43969
  }).strict();
43798
43970
  var systemHealthInputSchema = external_exports.object({
43799
- seat_id: uuidSchema14.optional()
43971
+ seat_id: uuidSchema15.optional()
43800
43972
  }).strict();
43801
43973
  var systemHealthCheckInputSchema = systemHealthInputSchema.extend({
43802
43974
  caller: systemHealthCallerSchema
43803
43975
  }).strict();
43804
43976
  var systemHealthOutputSchema = external_exports.object({
43805
- generated_at: isoDateTime6,
43977
+ generated_at: isoDateTime7,
43806
43978
  scope: systemHealthScopeSchema,
43807
43979
  verdict: systemHealthVerdictSchema,
43808
43980
  top_actions: external_exports.array(systemHealthActionSchema),
@@ -43984,10 +44156,10 @@ var baserowFilteredCountInputSchema = external_exports.object({
43984
44156
  }).strict();
43985
44157
 
43986
44158
  // ../../packages/protocol/src/signal-report.ts
43987
- var uuidSchema15 = external_exports.string().uuid();
44159
+ var uuidSchema16 = external_exports.string().uuid();
43988
44160
  var dateOnlySchema2 = external_exports.string().regex(/^\d{4}-\d{2}-\d{2}$/, "expected YYYY-MM-DD");
43989
44161
  var signalReportInputSchema = external_exports.object({
43990
- measurable_id: uuidSchema15,
44162
+ measurable_id: uuidSchema16,
43991
44163
  value: external_exports.number().finite(),
43992
44164
  // Optional; defaults to the measurable's current period (resolved in the
43993
44165
  // command against the measurable's own cadence via the canonical bounds).
@@ -43998,8 +44170,8 @@ var signalReportInputSchema = external_exports.object({
43998
44170
  confidence: external_exports.enum(["low", "medium", "high"]).optional()
43999
44171
  }).strict();
44000
44172
  var signalReportOutputSchema = external_exports.object({
44001
- reading_id: uuidSchema15,
44002
- measurable_id: uuidSchema15,
44173
+ reading_id: uuidSchema16,
44174
+ measurable_id: uuidSchema16,
44003
44175
  // Always false: an agent-sourced reading is a draft until a human confirms it.
44004
44176
  confirmed: external_exports.literal(false)
44005
44177
  }).strict();
@@ -44029,8 +44201,109 @@ var signalReadingProposalSchema = external_exports.object({
44029
44201
  }
44030
44202
  });
44031
44203
 
44032
- // ../../packages/protocol/src/software-factory.ts
44204
+ // ../../packages/protocol/src/secret-broker.ts
44033
44205
  var uuid10 = external_exports.string().uuid();
44206
+ var VAULT_REF_PROVIDER = /^(?:infisical|doppler|local-dev):\/\/\S+$/;
44207
+ var brokerVaultRefSchema = external_exports.string().min(1).max(500).regex(VAULT_REF_PROVIDER, "vault_ref must be a provider URI, e.g. infisical://path, doppler://path, or local-dev://path").refine((value) => !hasSecretShapedValue(value), {
44208
+ message: "vault_ref must be a pointer, never raw secret material"
44209
+ });
44210
+ var brokerGrantKeySchema = external_exports.string().trim().min(1).max(200).regex(/^[a-z0-9][a-z0-9._:-]*$/i, "grant_key must be a short identifier (letters, digits, . _ : -)").refine((value) => !hasSecretShapedValue(value), {
44211
+ message: "grant_key must be an identifier, never raw secret material"
44212
+ });
44213
+ var brokerProviderSchema = external_exports.string().trim().min(1).max(100).refine((value) => !hasSecretShapedValue(value), {
44214
+ message: "provider must be a label, never raw secret material"
44215
+ });
44216
+ var brokerAllowedHostSchema = external_exports.string().trim().min(1).max(255).regex(/^[a-zA-Z0-9.-]+$/, "allowed_host must be a bare hostname (letters, digits, dots, hyphens) \u2014 no scheme, port, or path");
44217
+ var brokerAllowedPathPrefixSchema = external_exports.string().min(1).max(512).refine((value) => value.startsWith("/"), { message: "allowed_path_prefix must start with /" }).refine((value) => !value.includes("//"), { message: "allowed_path_prefix must not contain //" }).refine((value) => !value.includes("\\"), { message: "allowed_path_prefix must not contain a backslash" }).refine((value) => !value.includes("://"), { message: "allowed_path_prefix must not contain a scheme" }).refine((value) => !value.includes("?") && !value.includes("#"), { message: "allowed_path_prefix must not contain a query or fragment" }).refine((value) => !value.includes(".."), { message: "allowed_path_prefix must not contain .." }).refine((value) => ![...value].some((ch) => ch <= " "), { message: "allowed_path_prefix must not contain whitespace or control characters" });
44218
+ var brokerHttpMethodSchema = external_exports.enum(["GET", "HEAD", "OPTIONS", "POST", "PUT", "PATCH", "DELETE"]);
44219
+ var READ_SAFE_METHODS = /* @__PURE__ */ new Set(["GET", "HEAD", "OPTIONS"]);
44220
+ var brokerScopeTierSchema = external_exports.enum(["read", "write"]);
44221
+ var brokerInjectionModeSchema = external_exports.enum(["header_bearer", "header", "query"]);
44222
+ var brokerInjectionNameSchema = external_exports.string().min(1).max(100).regex(/^[A-Za-z0-9._-]+$/, "injection_name may contain only letters, digits, . _ -");
44223
+ var brokerAllowedMethodsSchema = external_exports.array(brokerHttpMethodSchema).min(1, "at least one allowed method is required").max(7).refine((methods) => new Set(methods).size === methods.length, { message: "allowed_methods must not contain duplicates" });
44224
+ var brokerGrantStatusSchema = external_exports.enum(["active", "revoked"]);
44225
+ function refineGrantShape(value, ctx) {
44226
+ if (value.scope_tier === "read" && value.allowed_methods.some((method) => !READ_SAFE_METHODS.has(method))) {
44227
+ ctx.addIssue({ code: "custom", path: ["allowed_methods"], message: "a read-tier grant may only allow GET, HEAD, or OPTIONS" });
44228
+ }
44229
+ const injectionMode = value.injection_mode ?? "header_bearer";
44230
+ if (injectionMode !== "header_bearer" && !value.injection_name) {
44231
+ ctx.addIssue({ code: "custom", path: ["injection_name"], message: "injection_name is required unless injection_mode is header_bearer" });
44232
+ }
44233
+ }
44234
+ var secretGrantRequestInputSchema = external_exports.object({
44235
+ seat_id: uuid10,
44236
+ grant_key: brokerGrantKeySchema,
44237
+ provider: brokerProviderSchema,
44238
+ allowed_host: brokerAllowedHostSchema,
44239
+ allowed_path_prefix: brokerAllowedPathPrefixSchema.optional(),
44240
+ allowed_methods: brokerAllowedMethodsSchema,
44241
+ scope_tier: brokerScopeTierSchema,
44242
+ reason: external_exports.string().max(2e3).refine((value) => !hasSecretShapedValue(value), { message: "reason must never contain secret material" }).optional()
44243
+ }).strict().superRefine((value, ctx) => refineGrantShape(value, ctx));
44244
+ var secretGrantRequestOutputSchema = external_exports.object({
44245
+ requested: external_exports.literal(true),
44246
+ event_id: uuid10,
44247
+ seat_id: uuid10,
44248
+ grant_key: external_exports.string(),
44249
+ scope_tier: brokerScopeTierSchema
44250
+ }).strict();
44251
+ var secretGrantGrantInputSchema = external_exports.object({
44252
+ seat_id: uuid10,
44253
+ grant_key: brokerGrantKeySchema,
44254
+ // POINTER only. The vault-ref refinement rejects any raw-secret value.
44255
+ vault_ref: brokerVaultRefSchema,
44256
+ provider: brokerProviderSchema,
44257
+ allowed_host: brokerAllowedHostSchema,
44258
+ allowed_path_prefix: brokerAllowedPathPrefixSchema.optional(),
44259
+ allowed_methods: brokerAllowedMethodsSchema,
44260
+ scope_tier: brokerScopeTierSchema,
44261
+ injection_mode: brokerInjectionModeSchema.default("header_bearer"),
44262
+ injection_name: brokerInjectionNameSchema.optional(),
44263
+ // ISO-8601; absent = no expiry.
44264
+ expires_at: external_exports.string().datetime({ offset: true }).optional()
44265
+ }).strict().superRefine((value, ctx) => refineGrantShape(value, ctx));
44266
+ var secretGrantGrantOutputSchema = external_exports.object({
44267
+ grant_id: uuid10,
44268
+ seat_id: uuid10,
44269
+ grant_key: external_exports.string(),
44270
+ scope_tier: brokerScopeTierSchema,
44271
+ status: brokerGrantStatusSchema
44272
+ }).strict();
44273
+ var secretGrantRevokeInputSchema = external_exports.object({
44274
+ grant_id: uuid10
44275
+ }).strict();
44276
+ var secretGrantRevokeOutputSchema = external_exports.object({
44277
+ grant_id: uuid10,
44278
+ status: brokerGrantStatusSchema
44279
+ }).strict();
44280
+ var secretGrantSummarySchema = external_exports.object({
44281
+ id: uuid10,
44282
+ seat_id: uuid10,
44283
+ grant_key: external_exports.string(),
44284
+ provider: external_exports.string(),
44285
+ allowed_host: external_exports.string(),
44286
+ allowed_path_prefix: external_exports.string(),
44287
+ allowed_methods: external_exports.array(external_exports.string()),
44288
+ scope_tier: brokerScopeTierSchema,
44289
+ injection_mode: brokerInjectionModeSchema,
44290
+ injection_name: external_exports.string().nullable(),
44291
+ status: brokerGrantStatusSchema,
44292
+ granted_by_user_id: uuid10,
44293
+ granted_at: external_exports.string(),
44294
+ revoked_at: external_exports.string().nullable(),
44295
+ expires_at: external_exports.string().nullable()
44296
+ }).strict();
44297
+ var secretGrantListInputSchema = external_exports.object({
44298
+ seat_id: uuid10.nullable().optional(),
44299
+ include_revoked: external_exports.boolean().optional()
44300
+ }).strict();
44301
+ var secretGrantListOutputSchema = external_exports.object({
44302
+ grants: external_exports.array(secretGrantSummarySchema)
44303
+ }).strict();
44304
+
44305
+ // ../../packages/protocol/src/software-factory.ts
44306
+ var uuid11 = external_exports.string().uuid();
44034
44307
  var SOFTWARE_PHASE_VALUES = [
44035
44308
  "intake",
44036
44309
  "discovery_scoping",
@@ -44141,7 +44414,7 @@ var softwareConfigValueKindSchema = external_exports.enum(["plain", "secret_ref"
44141
44414
  var softwareCredentialRequestStatusSchema = external_exports.enum(["pending", "fulfilled", "rejected", "canceled"]);
44142
44415
  var softwareSecretAccessOperationSchema = external_exports.enum(["use", "vercel_env_sync", "test_execution"]);
44143
44416
  var softwareProjectSummarySchema = external_exports.object({
44144
- id: uuid10,
44417
+ id: uuid11,
44145
44418
  name: external_exports.string().min(1),
44146
44419
  slug: external_exports.string().min(1),
44147
44420
  base_branch: external_exports.string().min(1),
@@ -44168,8 +44441,8 @@ var softwareProjectListInputSchema = external_exports.object({}).strict();
44168
44441
  var softwareProjectListOutputSchema = external_exports.object({
44169
44442
  projects: external_exports.array(softwareProjectSummarySchema)
44170
44443
  });
44171
- var VAULT_REF_PROVIDER = /^(?:infisical|doppler|local-dev):\/\/\S+$/;
44172
- var softwareVaultRefSchema = external_exports.string().min(1).max(500).regex(VAULT_REF_PROVIDER, "vault_ref must be a provider URI, e.g. infisical://path, doppler://path, or local-dev://path").refine((value) => !hasSecretShapedValue(value), {
44444
+ var VAULT_REF_PROVIDER2 = /^(?:infisical|doppler|local-dev):\/\/\S+$/;
44445
+ var softwareVaultRefSchema = external_exports.string().min(1).max(500).regex(VAULT_REF_PROVIDER2, "vault_ref must be a provider URI, e.g. infisical://path, doppler://path, or local-dev://path").refine((value) => !hasSecretShapedValue(value), {
44173
44446
  message: "vault_ref must be a pointer, never raw secret material"
44174
44447
  });
44175
44448
  var softwareSecretKeyNameSchema = external_exports.string().trim().min(1).max(200).refine((value) => !hasSecretShapedValue(value), {
@@ -44195,11 +44468,11 @@ var softwarePhaseSchedulerStateSchema = external_exports.object({
44195
44468
  ]).nullable(),
44196
44469
  message: external_exports.string(),
44197
44470
  remediation_href: external_exports.string().nullable(),
44198
- work_order_id: uuid10.nullable()
44471
+ work_order_id: uuid11.nullable()
44199
44472
  });
44200
44473
  var softwareBuildRequestSummarySchema = external_exports.object({
44201
- id: uuid10,
44202
- software_project_id: uuid10,
44474
+ id: uuid11,
44475
+ software_project_id: uuid11,
44203
44476
  title: external_exports.string(),
44204
44477
  source_channel: softwareSourceChannelSchema,
44205
44478
  source_ref: external_exports.string().nullable(),
@@ -44215,7 +44488,7 @@ var softwareBuildRequestSummarySchema = external_exports.object({
44215
44488
  scheduler_state: softwarePhaseSchedulerStateSchema.nullable()
44216
44489
  });
44217
44490
  var softwarePhaseRunSummarySchema = external_exports.object({
44218
- id: uuid10,
44491
+ id: uuid11,
44219
44492
  phase: softwarePhaseSchema,
44220
44493
  status: softwarePhaseRunStatusSchema,
44221
44494
  attempt_no: external_exports.number().int(),
@@ -44225,17 +44498,17 @@ var softwarePhaseRunSummarySchema = external_exports.object({
44225
44498
  scheduler_state: softwarePhaseSchedulerStateSchema.nullable()
44226
44499
  });
44227
44500
  var softwareGateSummarySchema = external_exports.object({
44228
- id: uuid10,
44501
+ id: uuid11,
44229
44502
  gate_type: softwareGateTypeSchema,
44230
44503
  status: external_exports.enum(["pending", "approved", "rejected", "held"]),
44231
- phase_run_id: uuid10.nullable(),
44232
- resolved_by_user_id: uuid10.nullable(),
44504
+ phase_run_id: uuid11.nullable(),
44505
+ resolved_by_user_id: uuid11.nullable(),
44233
44506
  rationale: external_exports.string().nullable(),
44234
44507
  created_at: external_exports.string()
44235
44508
  });
44236
44509
  var softwareChangesetSummarySchema = external_exports.object({
44237
- id: uuid10,
44238
- build_request_id: uuid10,
44510
+ id: uuid11,
44511
+ build_request_id: uuid11,
44239
44512
  ordinal: external_exports.number().int(),
44240
44513
  title: external_exports.string(),
44241
44514
  split_criterion: softwareChangesetSplitCriterionSchema,
@@ -44249,10 +44522,10 @@ var softwareChangesetSummarySchema = external_exports.object({
44249
44522
  created_at: external_exports.string()
44250
44523
  });
44251
44524
  var softwareTaskSummarySchema = external_exports.object({
44252
- id: uuid10,
44253
- build_request_id: uuid10,
44254
- changeset_id: uuid10,
44255
- plan_version_id: uuid10,
44525
+ id: uuid11,
44526
+ build_request_id: uuid11,
44527
+ changeset_id: uuid11,
44528
+ plan_version_id: uuid11,
44256
44529
  ordinal: external_exports.number().int(),
44257
44530
  task_key: external_exports.string(),
44258
44531
  title: external_exports.string(),
@@ -44267,8 +44540,8 @@ var softwareTaskSummarySchema = external_exports.object({
44267
44540
  created_at: external_exports.string()
44268
44541
  });
44269
44542
  var softwarePlanVersionSummarySchema = external_exports.object({
44270
- id: uuid10,
44271
- build_request_id: uuid10,
44543
+ id: uuid11,
44544
+ build_request_id: uuid11,
44272
44545
  version_no: external_exports.number().int(),
44273
44546
  status: softwarePlanVersionStatusSchema,
44274
44547
  summary: external_exports.string().nullable(),
@@ -44278,37 +44551,37 @@ var softwarePlanVersionSummarySchema = external_exports.object({
44278
44551
  question: external_exports.string(),
44279
44552
  answer: external_exports.string()
44280
44553
  })).default([]),
44281
- created_by_seat_id: uuid10.nullable(),
44554
+ created_by_seat_id: uuid11.nullable(),
44282
44555
  created_at: external_exports.string()
44283
44556
  });
44284
44557
  var softwarePlanConformanceFindingSummarySchema = external_exports.object({
44285
- id: uuid10,
44286
- build_request_id: uuid10,
44287
- changeset_id: uuid10.nullable(),
44288
- phase_run_id: uuid10.nullable(),
44289
- plan_version_id: uuid10.nullable(),
44558
+ id: uuid11,
44559
+ build_request_id: uuid11,
44560
+ changeset_id: uuid11.nullable(),
44561
+ phase_run_id: uuid11.nullable(),
44562
+ plan_version_id: uuid11.nullable(),
44290
44563
  severity: softwareConformanceSeveritySchema,
44291
44564
  category: softwareConformanceCategorySchema,
44292
44565
  summary: external_exports.string(),
44293
44566
  detail: external_exports.string().nullable(),
44294
44567
  status: softwareConformanceStatusSchema,
44295
- accepted_by_decision_id: uuid10.nullable(),
44568
+ accepted_by_decision_id: uuid11.nullable(),
44296
44569
  resolved_at: external_exports.string().nullable(),
44297
44570
  created_at: external_exports.string()
44298
44571
  });
44299
44572
  var softwareAuthorityProfileSummarySchema = external_exports.object({
44300
- id: uuid10,
44301
- software_project_id: uuid10.nullable(),
44573
+ id: uuid11,
44574
+ software_project_id: uuid11.nullable(),
44302
44575
  name: external_exports.string(),
44303
44576
  preset: softwareAuthorityPresetSchema,
44304
44577
  is_default: external_exports.boolean(),
44305
44578
  created_at: external_exports.string()
44306
44579
  });
44307
44580
  var softwareSecretGrantSummarySchema = external_exports.object({
44308
- id: uuid10,
44309
- software_project_id: uuid10,
44581
+ id: uuid11,
44582
+ software_project_id: uuid11,
44310
44583
  environment: softwareEnvironmentSchema,
44311
- seat_id: uuid10,
44584
+ seat_id: uuid11,
44312
44585
  action: external_exports.string(),
44313
44586
  key_name: external_exports.string(),
44314
44587
  vault_ref: external_exports.string(),
@@ -44317,8 +44590,8 @@ var softwareSecretGrantSummarySchema = external_exports.object({
44317
44590
  revoked_at: external_exports.string().nullable()
44318
44591
  });
44319
44592
  var softwareConfigEntrySummarySchema = external_exports.object({
44320
- id: uuid10,
44321
- software_project_id: uuid10,
44593
+ id: uuid11,
44594
+ software_project_id: uuid11,
44322
44595
  environment: softwareEnvironmentSchema,
44323
44596
  key_name: external_exports.string(),
44324
44597
  value_kind: softwareConfigValueKindSchema,
@@ -44328,20 +44601,20 @@ var softwareConfigEntrySummarySchema = external_exports.object({
44328
44601
  updated_at: external_exports.string()
44329
44602
  });
44330
44603
  var softwareCredentialRequestSummarySchema = external_exports.object({
44331
- id: uuid10,
44332
- software_project_id: uuid10,
44604
+ id: uuid11,
44605
+ software_project_id: uuid11,
44333
44606
  environment: softwareEnvironmentSchema,
44334
- requested_by_seat_id: uuid10,
44607
+ requested_by_seat_id: uuid11,
44335
44608
  action: external_exports.string(),
44336
44609
  key_name: external_exports.string(),
44337
44610
  reason: external_exports.string().nullable(),
44338
44611
  status: softwareCredentialRequestStatusSchema,
44339
- approval_task_id: uuid10.nullable(),
44612
+ approval_task_id: uuid11.nullable(),
44340
44613
  created_at: external_exports.string()
44341
44614
  });
44342
44615
  var softwareCapacityObservationSummarySchema = external_exports.object({
44343
- id: uuid10,
44344
- runner_id: uuid10,
44616
+ id: uuid11,
44617
+ runner_id: uuid11,
44345
44618
  observed_at: external_exports.string(),
44346
44619
  os: external_exports.string().nullable(),
44347
44620
  cpu_count: external_exports.number().int().nullable(),
@@ -44357,7 +44630,7 @@ var softwareRequestCreateInputSchema = external_exports.object({
44357
44630
  // this schema) enforces that exactly one resolves, with an actionable error
44358
44631
  // when neither is given or neither matches — keeping this shape a plain
44359
44632
  // `z.object` so JSON-schema/CLI-flag projection stays simple (no `.refine`).
44360
- software_project_id: uuid10.optional(),
44633
+ software_project_id: uuid11.optional(),
44361
44634
  project: external_exports.string().trim().min(1).max(200).optional(),
44362
44635
  // Untrusted display text (ADR-0018 §5) — bounded, never treated as an instruction.
44363
44636
  title: external_exports.string().trim().min(1).max(500),
@@ -44369,11 +44642,11 @@ var softwareRequestCreateInputSchema = external_exports.object({
44369
44642
  automation_mode: softwareAutomationModeSchema.optional()
44370
44643
  }).strict();
44371
44644
  var softwareRequestCreateOutputSchema = external_exports.object({
44372
- build_request_id: uuid10,
44373
- software_project_id: uuid10,
44645
+ build_request_id: uuid11,
44646
+ software_project_id: uuid11,
44374
44647
  status: softwareRequestStatusSchema,
44375
44648
  current_phase: softwarePhaseSchema,
44376
- phase_run_id: uuid10,
44649
+ phase_run_id: uuid11,
44377
44650
  scheduler_state: softwarePhaseSchedulerStateSchema
44378
44651
  });
44379
44652
  var softwareRequestListInputSchema = external_exports.object({
@@ -44383,7 +44656,7 @@ var softwareRequestListOutputSchema = external_exports.object({
44383
44656
  requests: external_exports.array(softwareBuildRequestSummarySchema)
44384
44657
  });
44385
44658
  var softwareRequestShowInputSchema = external_exports.object({
44386
- build_request_id: uuid10
44659
+ build_request_id: uuid11
44387
44660
  }).strict();
44388
44661
  var softwareRequestShowOutputSchema = external_exports.object({
44389
44662
  request: softwareBuildRequestSummarySchema,
@@ -44396,80 +44669,80 @@ var softwareRequestShowOutputSchema = external_exports.object({
44396
44669
  });
44397
44670
  var softwareRequestLifecycleReason = external_exports.string().trim().min(1).max(2e3);
44398
44671
  var softwareRequestPauseInputSchema = external_exports.object({
44399
- build_request_id: uuid10,
44672
+ build_request_id: uuid11,
44400
44673
  reason: softwareRequestLifecycleReason.optional()
44401
44674
  }).strict();
44402
44675
  var softwareRequestCancelInputSchema = external_exports.object({
44403
- build_request_id: uuid10,
44676
+ build_request_id: uuid11,
44404
44677
  reason: softwareRequestLifecycleReason.optional()
44405
44678
  }).strict();
44406
44679
  var softwareRequestResumeInputSchema = external_exports.object({
44407
- build_request_id: uuid10,
44680
+ build_request_id: uuid11,
44408
44681
  reason: softwareRequestLifecycleReason.optional(),
44409
44682
  termination_bound: softwareTerminationBoundSchema.optional()
44410
44683
  }).strict();
44411
44684
  var softwareRequestLifecycleOutputSchema = external_exports.object({
44412
- build_request_id: uuid10,
44685
+ build_request_id: uuid11,
44413
44686
  status: softwareRequestStatusSchema,
44414
44687
  current_phase: softwarePhaseSchema,
44415
- phase_run_id: uuid10.nullable(),
44416
- work_order_id: uuid10.nullable(),
44417
- resume_from_task_id: uuid10.nullable()
44688
+ phase_run_id: uuid11.nullable(),
44689
+ work_order_id: uuid11.nullable(),
44690
+ resume_from_task_id: uuid11.nullable()
44418
44691
  });
44419
44692
  var softwarePhaseAdvanceInputSchema = external_exports.object({
44420
- build_request_id: uuid10,
44693
+ build_request_id: uuid11,
44421
44694
  to_phase: softwarePhaseSchema,
44422
- owning_seat_id: uuid10.optional(),
44695
+ owning_seat_id: uuid11.optional(),
44423
44696
  note: external_exports.string().max(2e3).optional()
44424
44697
  }).strict();
44425
44698
  var softwarePhaseAdvanceOutputSchema = external_exports.object({
44426
- build_request_id: uuid10,
44699
+ build_request_id: uuid11,
44427
44700
  from_phase: softwarePhaseSchema,
44428
44701
  to_phase: softwarePhaseSchema,
44429
- phase_run_id: uuid10
44702
+ phase_run_id: uuid11
44430
44703
  });
44431
44704
  var softwareGateDecideInputSchema = external_exports.object({
44432
- gate_id: uuid10,
44705
+ gate_id: uuid11,
44433
44706
  decision: softwareGateDecisionSchema,
44434
44707
  rationale: external_exports.string().max(4e3).optional()
44435
44708
  }).strict();
44436
44709
  var softwareGateDecideOutputSchema = external_exports.object({
44437
- gate_id: uuid10,
44710
+ gate_id: uuid11,
44438
44711
  status: external_exports.enum(["approved", "rejected"]),
44439
- resolved_by_user_id: uuid10,
44440
- decision_id: uuid10.nullable()
44712
+ resolved_by_user_id: uuid11,
44713
+ decision_id: uuid11.nullable()
44441
44714
  });
44442
44715
  var forgeClarificationAnswer = external_exports.object({
44443
44716
  question: external_exports.string().trim().min(1).max(2e3),
44444
44717
  answer: external_exports.string().trim().min(1).max(4e3)
44445
44718
  }).strict();
44446
44719
  var softwareRequestAnswerClarificationInputSchema = external_exports.object({
44447
- build_request_id: uuid10,
44720
+ build_request_id: uuid11,
44448
44721
  answers: external_exports.array(forgeClarificationAnswer).min(1).max(50),
44449
44722
  // The planner marks the plan ready once its questions are resolved; the human/COS can
44450
44723
  // signal that here. Default false keeps the plan in needs_clarification.
44451
44724
  mark_ready_for_plan_review: external_exports.boolean().default(false)
44452
44725
  }).strict();
44453
44726
  var softwareRequestAnswerClarificationOutputSchema = external_exports.object({
44454
- build_request_id: uuid10,
44455
- plan_version_id: uuid10,
44727
+ build_request_id: uuid11,
44728
+ plan_version_id: uuid11,
44456
44729
  status: softwarePlanVersionStatusSchema,
44457
44730
  answered_count: external_exports.number().int()
44458
44731
  });
44459
44732
  var softwarePlanApproveInputSchema = external_exports.object({
44460
- build_request_id: uuid10,
44733
+ build_request_id: uuid11,
44461
44734
  rationale: external_exports.string().trim().min(1).max(4e3).optional()
44462
44735
  }).strict();
44463
44736
  var softwarePlanRejectInputSchema = external_exports.object({
44464
- build_request_id: uuid10,
44737
+ build_request_id: uuid11,
44465
44738
  // A rejection must say why (it routes the request back to discovery/scoping).
44466
44739
  rationale: external_exports.string().trim().min(1).max(4e3)
44467
44740
  }).strict();
44468
44741
  var softwarePlanDecisionOutputSchema = external_exports.object({
44469
- build_request_id: uuid10,
44470
- plan_version_id: uuid10,
44742
+ build_request_id: uuid11,
44743
+ plan_version_id: uuid11,
44471
44744
  status: external_exports.enum(["approved", "rejected"]),
44472
- decision_id: uuid10,
44745
+ decision_id: uuid11,
44473
44746
  current_phase: softwarePhaseSchema
44474
44747
  });
44475
44748
  var forgeConformanceFindingInput = external_exports.object({
@@ -44477,41 +44750,41 @@ var forgeConformanceFindingInput = external_exports.object({
44477
44750
  category: softwareConformanceCategorySchema.default("other"),
44478
44751
  summary: external_exports.string().trim().min(1).max(2e3),
44479
44752
  detail: external_exports.string().trim().min(1).max(8e3).optional(),
44480
- changeset_id: uuid10.optional(),
44481
- plan_version_id: uuid10.optional()
44753
+ changeset_id: uuid11.optional(),
44754
+ plan_version_id: uuid11.optional()
44482
44755
  }).strict();
44483
44756
  var softwareConformanceRecordFindingsInputSchema = external_exports.object({
44484
- build_request_id: uuid10,
44485
- phase_run_id: uuid10.optional(),
44757
+ build_request_id: uuid11,
44758
+ phase_run_id: uuid11.optional(),
44486
44759
  findings: external_exports.array(forgeConformanceFindingInput).min(1).max(50)
44487
44760
  }).strict();
44488
44761
  var softwareConformanceRecordFindingsOutputSchema = external_exports.object({
44489
- build_request_id: uuid10,
44762
+ build_request_id: uuid11,
44490
44763
  recorded_count: external_exports.number().int(),
44491
- finding_ids: external_exports.array(uuid10),
44764
+ finding_ids: external_exports.array(uuid11),
44492
44765
  open_finding_count: external_exports.number().int()
44493
44766
  }).strict();
44494
44767
  var softwareConformanceResolveFindingInputSchema = external_exports.object({
44495
- build_request_id: uuid10,
44496
- finding_ids: external_exports.array(uuid10).min(1).max(50),
44768
+ build_request_id: uuid11,
44769
+ finding_ids: external_exports.array(uuid11).min(1).max(50),
44497
44770
  // The re-review run that verified the fix — provenance only (rides into the append-only audit
44498
44771
  // event; the finding row's resolution state is the durable transition).
44499
- phase_run_id: uuid10.optional()
44772
+ phase_run_id: uuid11.optional()
44500
44773
  }).strict();
44501
44774
  var softwareConformanceResolveFindingOutputSchema = external_exports.object({
44502
- build_request_id: uuid10,
44775
+ build_request_id: uuid11,
44503
44776
  resolved_count: external_exports.number().int(),
44504
- resolved_finding_ids: external_exports.array(uuid10),
44777
+ resolved_finding_ids: external_exports.array(uuid11),
44505
44778
  open_finding_count: external_exports.number().int()
44506
44779
  }).strict();
44507
44780
  var softwareAuthorityProfileListInputSchema = external_exports.object({
44508
- software_project_id: uuid10.nullable().optional()
44781
+ software_project_id: uuid11.nullable().optional()
44509
44782
  }).strict();
44510
44783
  var softwareAuthorityProfileListOutputSchema = external_exports.object({
44511
44784
  profiles: external_exports.array(softwareAuthorityProfileSummarySchema)
44512
44785
  });
44513
44786
  var softwareAuthorityProfileCreateInputSchema = external_exports.object({
44514
- software_project_id: uuid10.nullable().optional(),
44787
+ software_project_id: uuid11.nullable().optional(),
44515
44788
  name: external_exports.string().trim().min(1).max(120),
44516
44789
  preset: softwareAuthorityPresetSchema.default("read_only"),
44517
44790
  // A closed capability map (booleans by capability key). Never derived from
@@ -44520,77 +44793,77 @@ var softwareAuthorityProfileCreateInputSchema = external_exports.object({
44520
44793
  is_default: external_exports.boolean().optional()
44521
44794
  }).strict();
44522
44795
  var softwareAuthorityProfileCreateOutputSchema = external_exports.object({
44523
- profile_id: uuid10,
44796
+ profile_id: uuid11,
44524
44797
  name: external_exports.string(),
44525
44798
  preset: softwareAuthorityPresetSchema
44526
44799
  });
44527
44800
  var softwareAuthorityGrantInputSchema = external_exports.object({
44528
- software_project_id: uuid10,
44529
- seat_id: uuid10,
44530
- authority_profile_id: uuid10
44801
+ software_project_id: uuid11,
44802
+ seat_id: uuid11,
44803
+ authority_profile_id: uuid11
44531
44804
  }).strict();
44532
44805
  var softwareAuthorityGrantOutputSchema = external_exports.object({
44533
- grant_id: uuid10,
44534
- software_project_id: uuid10,
44535
- seat_id: uuid10,
44536
- authority_profile_id: uuid10,
44806
+ grant_id: uuid11,
44807
+ software_project_id: uuid11,
44808
+ seat_id: uuid11,
44809
+ authority_profile_id: uuid11,
44537
44810
  status: softwareGrantStatusSchema
44538
44811
  });
44539
44812
  var softwareAuthorityRevokeInputSchema = external_exports.object({
44540
- grant_id: uuid10
44813
+ grant_id: uuid11
44541
44814
  }).strict();
44542
44815
  var softwareAuthorityRevokeOutputSchema = external_exports.object({
44543
- grant_id: uuid10,
44816
+ grant_id: uuid11,
44544
44817
  status: softwareGrantStatusSchema
44545
44818
  });
44546
44819
  var softwareSecretRequestInputSchema = external_exports.object({
44547
- software_project_id: uuid10,
44820
+ software_project_id: uuid11,
44548
44821
  environment: softwareEnvironmentSchema,
44549
- seat_id: uuid10,
44822
+ seat_id: uuid11,
44550
44823
  action: softwareSecretActionSchema,
44551
44824
  key_name: softwareSecretKeyNameSchema,
44552
44825
  reason: external_exports.string().max(2e3).optional()
44553
44826
  }).strict();
44554
44827
  var softwareSecretRequestOutputSchema = external_exports.object({
44555
44828
  requested: external_exports.literal(true),
44556
- credential_request_id: uuid10,
44557
- approval_task_id: uuid10,
44558
- software_project_id: uuid10,
44829
+ credential_request_id: uuid11,
44830
+ approval_task_id: uuid11,
44831
+ software_project_id: uuid11,
44559
44832
  environment: softwareEnvironmentSchema,
44560
- seat_id: uuid10,
44833
+ seat_id: uuid11,
44561
44834
  key_name: external_exports.string()
44562
44835
  });
44563
44836
  var softwareSecretGrantInputSchema = external_exports.object({
44564
- software_project_id: uuid10,
44837
+ software_project_id: uuid11,
44565
44838
  environment: softwareEnvironmentSchema,
44566
- seat_id: uuid10,
44839
+ seat_id: uuid11,
44567
44840
  action: softwareSecretActionSchema,
44568
44841
  key_name: softwareSecretKeyNameSchema,
44569
44842
  // POINTER only. The vault ref shape refinement rejects any raw-secret value.
44570
44843
  vault_ref: softwareVaultRefSchema
44571
44844
  }).strict();
44572
44845
  var softwareSecretGrantOutputSchema = external_exports.object({
44573
- grant_id: uuid10,
44846
+ grant_id: uuid11,
44574
44847
  key_name: external_exports.string(),
44575
44848
  environment: softwareEnvironmentSchema,
44576
44849
  status: softwareGrantStatusSchema
44577
44850
  });
44578
44851
  var softwareSecretRevokeInputSchema = external_exports.object({
44579
- grant_id: uuid10
44852
+ grant_id: uuid11
44580
44853
  }).strict();
44581
44854
  var softwareSecretRevokeOutputSchema = external_exports.object({
44582
- grant_id: uuid10,
44855
+ grant_id: uuid11,
44583
44856
  status: softwareGrantStatusSchema
44584
44857
  });
44585
44858
  var softwareConfigListInputSchema = external_exports.object({
44586
- software_project_id: uuid10.nullable().optional(),
44859
+ software_project_id: uuid11.nullable().optional(),
44587
44860
  environment: softwareEnvironmentSchema.nullable().optional()
44588
44861
  }).strict();
44589
44862
  var softwareConfigListOutputSchema = external_exports.object({
44590
44863
  entries: external_exports.array(softwareConfigEntrySummarySchema)
44591
44864
  });
44592
44865
  var softwareConfigSetInputSchema = external_exports.object({
44593
- software_project_id: uuid10,
44866
+ software_project_id: uuid11,
44594
44867
  environment: softwareEnvironmentSchema,
44595
44868
  key_name: softwareSecretKeyNameSchema,
44596
44869
  value_kind: softwareConfigValueKindSchema,
@@ -44610,24 +44883,24 @@ var softwareConfigSetInputSchema = external_exports.object({
44610
44883
  }
44611
44884
  });
44612
44885
  var softwareConfigSetOutputSchema = external_exports.object({
44613
- config_entry_id: uuid10,
44614
- software_project_id: uuid10,
44886
+ config_entry_id: uuid11,
44887
+ software_project_id: uuid11,
44615
44888
  environment: softwareEnvironmentSchema,
44616
44889
  key_name: external_exports.string(),
44617
44890
  value_kind: softwareConfigValueKindSchema,
44618
44891
  has_secret_ref: external_exports.boolean()
44619
44892
  });
44620
44893
  var softwareSecretRequestListInputSchema = external_exports.object({
44621
- software_project_id: uuid10.nullable().optional(),
44894
+ software_project_id: uuid11.nullable().optional(),
44622
44895
  status: softwareCredentialRequestStatusSchema.nullable().optional()
44623
44896
  }).strict();
44624
44897
  var softwareSecretRequestListOutputSchema = external_exports.object({
44625
44898
  requests: external_exports.array(softwareCredentialRequestSummarySchema)
44626
44899
  });
44627
44900
  var softwareSecretUseInputSchema = external_exports.object({
44628
- software_project_id: uuid10,
44901
+ software_project_id: uuid11,
44629
44902
  environment: softwareEnvironmentSchema,
44630
- seat_id: uuid10,
44903
+ seat_id: uuid11,
44631
44904
  action: softwareSecretActionSchema,
44632
44905
  key_name: softwareSecretKeyNameSchema,
44633
44906
  operation: softwareSecretAccessOperationSchema.default("use")
@@ -44638,12 +44911,12 @@ var softwareSecretUseOutputSchema = external_exports.object({
44638
44911
  key_name: external_exports.string(),
44639
44912
  environment: softwareEnvironmentSchema,
44640
44913
  operation: softwareSecretAccessOperationSchema,
44641
- access_log_id: uuid10,
44642
- missing_request_id: uuid10.nullable(),
44914
+ access_log_id: uuid11,
44915
+ missing_request_id: uuid11.nullable(),
44643
44916
  redacted_summary: external_exports.record(external_exports.string(), external_exports.unknown())
44644
44917
  });
44645
44918
  var softwareCapacityListInputSchema = external_exports.object({
44646
- runner_id: uuid10.nullable().optional(),
44919
+ runner_id: uuid11.nullable().optional(),
44647
44920
  limit: external_exports.number().int().positive().max(200).optional()
44648
44921
  }).strict();
44649
44922
  var softwareCapacityListOutputSchema = external_exports.object({
@@ -44698,9 +44971,9 @@ var forgeTrustedControlSchema = external_exports.object({
44698
44971
  automation_mode: softwareAutomationModeSchema,
44699
44972
  inferred_risk: softwareRiskLevelSchema,
44700
44973
  risk_ceiling: softwareRiskLevelSchema.nullable().default(null),
44701
- authority_profile_ids: external_exports.array(uuid10).max(50).default([]),
44974
+ authority_profile_ids: external_exports.array(uuid11).max(50).default([]),
44702
44975
  active_secret_grant_count: external_exports.number().int().nonnegative().max(1e3).default(0),
44703
- pending_gate_ids: external_exports.array(uuid10).max(50).default([])
44976
+ pending_gate_ids: external_exports.array(uuid11).max(50).default([])
44704
44977
  }).strict();
44705
44978
  var forgeSeatSkillSchema = external_exports.object({
44706
44979
  slug: external_exports.string().trim().min(1).max(200),
@@ -44709,9 +44982,9 @@ var forgeSeatSkillSchema = external_exports.object({
44709
44982
  }).strict();
44710
44983
  var forgeRuntimeContextPacketSchema = external_exports.object({
44711
44984
  schema_version: external_exports.literal(1),
44712
- phase_run_id: uuid10,
44713
- build_request_id: uuid10,
44714
- software_project_id: uuid10,
44985
+ phase_run_id: uuid11,
44986
+ build_request_id: uuid11,
44987
+ software_project_id: uuid11,
44715
44988
  phase: softwarePhaseSchema,
44716
44989
  request_status: softwareRequestStatusSchema,
44717
44990
  project: external_exports.object({
@@ -44720,7 +44993,7 @@ var forgeRuntimeContextPacketSchema = external_exports.object({
44720
44993
  }).strict(),
44721
44994
  scheduler: external_exports.object({
44722
44995
  lease_model: external_exports.literal("work_order_claim_heartbeat"),
44723
- runner_id: uuid10,
44996
+ runner_id: uuid11,
44724
44997
  max_runner_sessions: external_exports.number().int().positive().max(8),
44725
44998
  model_account_state: external_exports.string().min(1).max(80),
44726
44999
  account_alias: external_exports.string().min(1).max(200).nullable()
@@ -44804,7 +45077,7 @@ var runnerTurnReportSchema = external_exports.object({
44804
45077
  var softwareDeveloperTeamInstallInputSchema = external_exports.object({
44805
45078
  // The human-accountable steward seat for the installed team. Agent seats created
44806
45079
  // by the template chain through this seat so no agent occupancy can be orphaned.
44807
- steward_seat_id: uuid10,
45080
+ steward_seat_id: uuid11,
44808
45081
  // Optional project scope for authority grants. Authority profile presets are
44809
45082
  // installed tenant-wide either way; grants are project-scoped only when supplied.
44810
45083
  // DER-1241: `.nullable()` too — this command is human-confirmed, so its input is
@@ -44812,7 +45085,7 @@ var softwareDeveloperTeamInstallInputSchema = external_exports.object({
44812
45085
  // replay; an empty project round-trips as JSON `null`, which a bare `.optional()`
44813
45086
  // rejects (→ "Command input failed schema validation"). Matches the sibling
44814
45087
  // software-factory schemas that already use `.nullable().optional()`.
44815
- software_project_id: uuid10.nullable().optional(),
45088
+ software_project_id: uuid11.nullable().optional(),
44816
45089
  assign_skills: external_exports.boolean().default(true),
44817
45090
  // DER-1264: the install auto-staffs live agents at a pr_only, observe-first
44818
45091
  // posture. If the tenant's company autonomy ceiling (`agent_policy`) is MORE
@@ -44832,34 +45105,34 @@ var softwareDeveloperTeamInstallInputSchema = external_exports.object({
44832
45105
  }).strict();
44833
45106
  var softwareDeveloperTeamSeatSummarySchema = external_exports.object({
44834
45107
  role: softwareDeveloperTeamRoleSchema,
44835
- seat_id: uuid10,
45108
+ seat_id: uuid11,
44836
45109
  name: external_exports.string(),
44837
- charter_version_id: uuid10,
45110
+ charter_version_id: uuid11,
44838
45111
  created: external_exports.boolean()
44839
45112
  });
44840
45113
  var softwareDeveloperTeamSkillSummarySchema = external_exports.object({
44841
45114
  slug: external_exports.string(),
44842
- skill_id: uuid10,
44843
- skill_version_id: uuid10,
44844
- assigned_seat_ids: external_exports.array(uuid10)
45115
+ skill_id: uuid11,
45116
+ skill_version_id: uuid11,
45117
+ assigned_seat_ids: external_exports.array(uuid11)
44845
45118
  });
44846
45119
  var softwareDeveloperTeamAuthorityProfileSummarySchema = external_exports.object({
44847
45120
  preset: softwareAuthorityPresetSchema,
44848
- profile_id: uuid10,
45121
+ profile_id: uuid11,
44849
45122
  name: external_exports.string()
44850
45123
  });
44851
45124
  var softwareDeveloperTeamAuthorityGrantSummarySchema = external_exports.object({
44852
45125
  role: softwareDeveloperTeamRoleSchema,
44853
- software_project_id: uuid10,
44854
- seat_id: uuid10,
44855
- authority_profile_id: uuid10,
44856
- grant_id: uuid10,
45126
+ software_project_id: uuid11,
45127
+ seat_id: uuid11,
45128
+ authority_profile_id: uuid11,
45129
+ grant_id: uuid11,
44857
45130
  created: external_exports.boolean()
44858
45131
  });
44859
45132
  var softwareDeveloperTeamOccupancySummarySchema = external_exports.object({
44860
45133
  role: softwareDeveloperTeamRoleSchema,
44861
- seat_id: uuid10,
44862
- agent_id: uuid10,
45134
+ seat_id: uuid11,
45135
+ agent_id: uuid11,
44863
45136
  template_slug: external_exports.string(),
44864
45137
  status: external_exports.literal("live"),
44865
45138
  // false when a live agent already occupied the seat (idempotent re-install).
@@ -44879,7 +45152,7 @@ var softwareDeveloperTeamTokenBudgetSummarySchema = external_exports.object({
44879
45152
  set_by_install: external_exports.boolean()
44880
45153
  });
44881
45154
  var softwareDeveloperTeamGithubPolicySummarySchema = external_exports.object({
44882
- software_project_id: uuid10,
45155
+ software_project_id: uuid11,
44883
45156
  automation_mode_ceiling: softwareAutomationModeSchema,
44884
45157
  // false when a pre-existing policy was preserved (not created by this install).
44885
45158
  created: external_exports.boolean()
@@ -44907,8 +45180,8 @@ var softwareDeveloperTeamUninstallInputSchema = external_exports.object({
44907
45180
  }).strict();
44908
45181
  var softwareDeveloperTeamDecommissionedAgentSchema = external_exports.object({
44909
45182
  role: softwareDeveloperTeamRoleSchema.nullable(),
44910
- seat_id: uuid10,
44911
- agent_id: uuid10
45183
+ seat_id: uuid11,
45184
+ agent_id: uuid11
44912
45185
  });
44913
45186
  var softwareDeveloperTeamUninstallOutputSchema = external_exports.object({
44914
45187
  torn_down: external_exports.boolean(),
@@ -45058,8 +45331,8 @@ var forgeMemoryDraftArtifact = external_exports.object({
45058
45331
  follow_up_items: forgeArtifactList
45059
45332
  }).strict();
45060
45333
  var softwareGithubAutomationPolicyInputSchema = external_exports.object({
45061
- software_project_id: uuid10,
45062
- authority_profile_id: uuid10.nullable().optional(),
45334
+ software_project_id: uuid11,
45335
+ authority_profile_id: uuid11.nullable().optional(),
45063
45336
  automation_mode_ceiling: softwareAutomationModeSchema.default("plan_only"),
45064
45337
  allowed_actions: external_exports.array(softwareGithubActionSchema).max(20),
45065
45338
  // DER-1233: the element schema is a single FLATTENED enum (the union of the
@@ -45090,12 +45363,12 @@ var softwareGithubInstallationConnectInputSchema = external_exports.object({
45090
45363
  repositories: external_exports.array(softwareGithubConnectedRepositoryInputSchema).min(1).max(200)
45091
45364
  }).strict();
45092
45365
  var softwareGithubInstallationConnectOutputSchema = external_exports.object({
45093
- github_installation_id: uuid10,
45366
+ github_installation_id: uuid11,
45094
45367
  repositories_connected: external_exports.number().int().nonnegative()
45095
45368
  });
45096
45369
  var softwareGithubRepositoryBindMappingSchema = external_exports.object({
45097
45370
  repository_id: external_exports.number().int().positive(),
45098
- software_project_id: uuid10
45371
+ software_project_id: uuid11
45099
45372
  }).strict();
45100
45373
  var softwareGithubInstallationBindInputSchema = external_exports.object({
45101
45374
  app_slug: external_exports.string().trim().min(1).max(120).default("rost-forge"),
@@ -45103,7 +45376,7 @@ var softwareGithubInstallationBindInputSchema = external_exports.object({
45103
45376
  bindings: external_exports.array(softwareGithubRepositoryBindMappingSchema).min(1).max(100)
45104
45377
  }).strict();
45105
45378
  var softwareGithubInstallationBindOutputSchema = external_exports.object({
45106
- github_installation_id: uuid10,
45379
+ github_installation_id: uuid11,
45107
45380
  repositories_bound: external_exports.number().int().nonnegative()
45108
45381
  });
45109
45382
  var softwareGithubRepositoryUnbindInputSchema = external_exports.object({
@@ -45124,12 +45397,12 @@ var softwareGithubInstallationRepositoryViewSchema = external_exports.object({
45124
45397
  private: external_exports.boolean(),
45125
45398
  default_branch: external_exports.string(),
45126
45399
  status: external_exports.enum(["connected", "active"]),
45127
- software_project_id: uuid10.nullable(),
45400
+ software_project_id: uuid11.nullable(),
45128
45401
  software_project_name: external_exports.string().nullable(),
45129
45402
  software_project_slug: external_exports.string().nullable()
45130
45403
  });
45131
45404
  var softwareGithubInstallationViewSchema = external_exports.object({
45132
- id: uuid10,
45405
+ id: uuid11,
45133
45406
  installation_id: external_exports.number().int().positive(),
45134
45407
  account_login: external_exports.string(),
45135
45408
  account_id: external_exports.number().int().positive(),
@@ -45141,16 +45414,16 @@ var softwareGithubInstallationListOutputSchema = external_exports.object({
45141
45414
  installations: external_exports.array(softwareGithubInstallationViewSchema)
45142
45415
  });
45143
45416
  var softwareGithubAutomationPolicyUpsertOutputSchema = external_exports.object({
45144
- policy_id: uuid10,
45145
- software_project_id: uuid10,
45417
+ policy_id: uuid11,
45418
+ software_project_id: uuid11,
45146
45419
  automation_mode_ceiling: softwareAutomationModeSchema
45147
45420
  });
45148
45421
  var softwareGithubInstallationTokenCreateInputSchema = external_exports.object({
45149
- software_project_id: uuid10,
45422
+ software_project_id: uuid11,
45150
45423
  repository_id: external_exports.number().int().positive(),
45151
45424
  requested_actions: external_exports.array(softwareGithubActionSchema).min(1).max(20),
45152
45425
  requested_automation_mode: softwareAutomationModeSchema.default("plan_only"),
45153
- seat_id: uuid10.optional()
45426
+ seat_id: uuid11.optional()
45154
45427
  }).strict();
45155
45428
  var softwareGithubInstallationTokenCreateOutputSchema = external_exports.object({
45156
45429
  installation_id: external_exports.number().int().positive(),
@@ -45187,13 +45460,13 @@ var softwareVercelConnectionConnectInputSchema = external_exports.object({
45187
45460
  scopes: external_exports.array(external_exports.string().trim().min(1).max(120)).max(40).default([])
45188
45461
  }).strict();
45189
45462
  var softwareVercelConnectionConnectOutputSchema = external_exports.object({
45190
- vercel_connection_id: uuid10,
45463
+ vercel_connection_id: uuid11,
45191
45464
  account_id: external_exports.string(),
45192
45465
  team_id: external_exports.string().nullable()
45193
45466
  });
45194
45467
  var softwareVercelProjectLinkInputSchema = external_exports.object({
45195
- software_project_id: uuid10,
45196
- vercel_connection_id: uuid10,
45468
+ software_project_id: uuid11,
45469
+ vercel_connection_id: uuid11,
45197
45470
  vercel_project_id: external_exports.string().trim().min(1).max(200),
45198
45471
  vercel_project_name: external_exports.string().trim().min(1).max(255),
45199
45472
  framework: external_exports.string().trim().min(1).max(120).nullable().optional(),
@@ -45202,12 +45475,12 @@ var softwareVercelProjectLinkInputSchema = external_exports.object({
45202
45475
  git_repository: external_exports.record(external_exports.string().min(1), external_exports.unknown()).default({})
45203
45476
  }).strict();
45204
45477
  var softwareVercelProjectLinkOutputSchema = external_exports.object({
45205
- vercel_project_link_id: uuid10,
45206
- software_project_id: uuid10,
45478
+ vercel_project_link_id: uuid11,
45479
+ software_project_id: uuid11,
45207
45480
  vercel_project_id: external_exports.string()
45208
45481
  });
45209
45482
  var softwareVercelConnectionViewSchema = external_exports.object({
45210
- id: uuid10,
45483
+ id: uuid11,
45211
45484
  account_id: external_exports.string(),
45212
45485
  account_name: external_exports.string().nullable(),
45213
45486
  team_id: external_exports.string().nullable(),
@@ -45218,11 +45491,11 @@ var softwareVercelConnectionViewSchema = external_exports.object({
45218
45491
  connected_at: external_exports.string()
45219
45492
  });
45220
45493
  var softwareVercelProjectLinkViewSchema = external_exports.object({
45221
- id: uuid10,
45222
- software_project_id: uuid10,
45494
+ id: uuid11,
45495
+ software_project_id: uuid11,
45223
45496
  software_project_name: external_exports.string(),
45224
45497
  software_project_slug: external_exports.string(),
45225
- vercel_connection_id: uuid10,
45498
+ vercel_connection_id: uuid11,
45226
45499
  vercel_project_id: external_exports.string(),
45227
45500
  vercel_project_name: external_exports.string(),
45228
45501
  framework: external_exports.string().nullable(),
@@ -45236,16 +45509,16 @@ var softwareVercelProjectListOutputSchema = external_exports.object({
45236
45509
  project_links: external_exports.array(softwareVercelProjectLinkViewSchema)
45237
45510
  });
45238
45511
  var softwareVercelDeployPreviewInputSchema = external_exports.object({
45239
- software_project_id: uuid10,
45512
+ software_project_id: uuid11,
45240
45513
  commit_sha: external_exports.string().trim().regex(/^[A-Fa-f0-9]{7,64}$/),
45241
45514
  git_ref: external_exports.string().trim().min(1).max(255),
45242
- build_request_id: uuid10.optional(),
45243
- phase_run_id: uuid10.optional(),
45244
- seat_id: uuid10.optional(),
45515
+ build_request_id: uuid11.optional(),
45516
+ phase_run_id: uuid11.optional(),
45517
+ seat_id: uuid11.optional(),
45245
45518
  required_secret_keys: external_exports.array(external_exports.string().trim().min(1).max(200)).max(25).default([])
45246
45519
  }).strict();
45247
45520
  var softwareVercelDeployPreviewOutputSchema = external_exports.object({
45248
- vercel_deployment_record_id: uuid10,
45521
+ vercel_deployment_record_id: uuid11,
45249
45522
  deployment_id: external_exports.string(),
45250
45523
  deployment_url: external_exports.string().nullable(),
45251
45524
  commit_sha: external_exports.string(),
@@ -45253,24 +45526,24 @@ var softwareVercelDeployPreviewOutputSchema = external_exports.object({
45253
45526
  });
45254
45527
 
45255
45528
  // ../../packages/protocol/src/software-factory-events.ts
45256
- var uuid11 = external_exports.string().uuid();
45529
+ var uuid12 = external_exports.string().uuid();
45257
45530
  var softwareFactoryPhaseRunCompletedEventSchema = external_exports.object({
45258
- tenantId: uuid11,
45259
- phaseRunId: uuid11,
45260
- buildRequestId: uuid11.nullish(),
45531
+ tenantId: uuid12,
45532
+ phaseRunId: uuid12,
45533
+ buildRequestId: uuid12.nullish(),
45261
45534
  status: external_exports.enum(["passed", "failed"]),
45262
45535
  idempotencyKey: external_exports.string().min(1).optional()
45263
45536
  }).strict();
45264
45537
  var softwareFactoryBudgetExhaustedEventSchema = external_exports.object({
45265
- tenantId: uuid11,
45266
- phaseRunId: uuid11,
45267
- buildRequestId: uuid11,
45538
+ tenantId: uuid12,
45539
+ phaseRunId: uuid12,
45540
+ buildRequestId: uuid12,
45268
45541
  reason: external_exports.string().min(1),
45269
45542
  idempotencyKey: external_exports.string().min(1).optional()
45270
45543
  }).strict();
45271
45544
 
45272
45545
  // ../../packages/protocol/src/sync-brief.ts
45273
- var uuidSchema16 = external_exports.string().uuid();
45546
+ var uuidSchema17 = external_exports.string().uuid();
45274
45547
  var dateSchema = external_exports.string().regex(/^\d{4}-\d{2}-\d{2}$/);
45275
45548
  var syncBriefGapSchema = external_exports.object({
45276
45549
  section: external_exports.enum(["exceptions", "goal_deltas", "task_review", "friction", "agent_activity"]),
@@ -45283,8 +45556,8 @@ var sectionSchema = (itemSchema) => external_exports.object({
45283
45556
  flagged_gaps: external_exports.array(syncBriefGapSchema)
45284
45557
  }).strict();
45285
45558
  var syncBriefExceptionSchema = external_exports.object({
45286
- measurable_id: uuidSchema16,
45287
- seat_id: uuidSchema16,
45559
+ measurable_id: uuidSchema17,
45560
+ seat_id: uuidSchema17,
45288
45561
  seat_name: external_exports.string().min(1),
45289
45562
  name: external_exports.string().min(1),
45290
45563
  state: external_exports.enum(["risk", "crit", "pending"]),
@@ -45295,8 +45568,8 @@ var syncBriefExceptionSchema = external_exports.object({
45295
45568
  freshness: external_exports.enum(["fresh", "due", "stale", "awaiting_first_reading", "not_expected"]).optional()
45296
45569
  }).strict();
45297
45570
  var syncBriefGoalDeltaSchema = external_exports.object({
45298
- goal_id: uuidSchema16,
45299
- seat_id: uuidSchema16.nullable(),
45571
+ goal_id: uuidSchema17,
45572
+ seat_id: uuidSchema17.nullable(),
45300
45573
  seat_name: external_exports.string().nullable(),
45301
45574
  title: external_exports.string().min(1),
45302
45575
  status: external_exports.enum(["on", "off", "done", "dropped"]),
@@ -45310,22 +45583,22 @@ var syncBriefTaskReviewSchema = external_exports.object({
45310
45583
  previous_done_rate: external_exports.number().min(0).max(1),
45311
45584
  delta: external_exports.number().min(-1).max(1),
45312
45585
  stalled: external_exports.array(external_exports.object({
45313
- task_id: uuidSchema16,
45314
- owner_seat_id: uuidSchema16,
45586
+ task_id: uuidSchema17,
45587
+ owner_seat_id: uuidSchema17,
45315
45588
  owner_seat_name: external_exports.string().min(1),
45316
45589
  title: external_exports.string().min(1),
45317
45590
  due_on: dateSchema,
45318
45591
  stalled_at: external_exports.string().nullable()
45319
45592
  }).strict()),
45320
45593
  overdue_by_owner: external_exports.array(external_exports.object({
45321
- owner_seat_id: uuidSchema16,
45594
+ owner_seat_id: uuidSchema17,
45322
45595
  owner_seat_name: external_exports.string().min(1),
45323
45596
  overdue_count: external_exports.number().int().nonnegative()
45324
45597
  }).strict())
45325
45598
  }).strict();
45326
45599
  var syncBriefIssueSchema = external_exports.object({
45327
- issue_id: uuidSchema16,
45328
- raised_by_seat_id: uuidSchema16,
45600
+ issue_id: uuidSchema17,
45601
+ raised_by_seat_id: uuidSchema17,
45329
45602
  raised_by_seat_name: external_exports.string().min(1),
45330
45603
  summary: external_exports.string().min(1),
45331
45604
  severity: external_exports.enum(["low", "med", "high", "critical"]),
@@ -45342,16 +45615,16 @@ var syncBriefActionItemTrendSchema = external_exports.object({
45342
45615
  has_prior: external_exports.boolean()
45343
45616
  }).strict();
45344
45617
  var syncBriefCascadeAtRiskSchema = external_exports.object({
45345
- goal_id: uuidSchema16,
45618
+ goal_id: uuidSchema17,
45346
45619
  title: external_exports.string().min(1),
45347
- seat_id: uuidSchema16.nullable(),
45620
+ seat_id: uuidSchema17.nullable(),
45348
45621
  progress_pct: external_exports.number().int().min(0).max(100),
45349
45622
  classification: external_exports.enum(["at_risk", "projected_miss"]),
45350
45623
  behind_days: external_exports.number().nullable()
45351
45624
  }).strict();
45352
45625
  var syncBriefAgentActivitySchema = external_exports.object({
45353
- agent_id: uuidSchema16,
45354
- seat_id: uuidSchema16,
45626
+ agent_id: uuidSchema17,
45627
+ seat_id: uuidSchema17,
45355
45628
  seat_name: external_exports.string().min(1),
45356
45629
  run_count: external_exports.number().int().nonnegative(),
45357
45630
  failed_run_count: external_exports.number().int().nonnegative(),
@@ -45363,11 +45636,11 @@ var syncBriefAgentActivitySchema = external_exports.object({
45363
45636
  var syncBriefSchema = external_exports.object({
45364
45637
  schema_version: external_exports.literal(1),
45365
45638
  tenant: external_exports.object({
45366
- id: uuidSchema16,
45639
+ id: uuidSchema17,
45367
45640
  name: external_exports.string().min(1)
45368
45641
  }).strict(),
45369
45642
  cluster: external_exports.object({
45370
- id: uuidSchema16,
45643
+ id: uuidSchema17,
45371
45644
  name: external_exports.string().min(1)
45372
45645
  }).strict().nullable(),
45373
45646
  period: external_exports.object({
@@ -45405,16 +45678,16 @@ var syncBriefSchema = external_exports.object({
45405
45678
  }).strict();
45406
45679
 
45407
45680
  // ../../packages/protocol/src/usage.ts
45408
- var isoDateTime7 = external_exports.string().datetime({ offset: true });
45681
+ var isoDateTime8 = external_exports.string().datetime({ offset: true });
45409
45682
  var periodKeySchema = external_exports.string().regex(/^\d{4}-\d{2}-\d{2}$/);
45410
45683
  var countSchema = external_exports.number().int().nonnegative();
45411
45684
  var usdSchema = external_exports.string();
45412
45685
  var bigCountSchema = external_exports.string();
45413
45686
  var usagePeriodSchema = external_exports.object({
45414
45687
  period: periodKeySchema,
45415
- period_start: isoDateTime7,
45416
- period_end: isoDateTime7,
45417
- captured_at: isoDateTime7,
45688
+ period_start: isoDateTime8,
45689
+ period_end: isoDateTime8,
45690
+ captured_at: isoDateTime8,
45418
45691
  run_count: countSchema,
45419
45692
  agent_count: countSchema,
45420
45693
  succeeded_run_count: countSchema,
@@ -45466,7 +45739,7 @@ var usageSnapshotInputSchema = external_exports.object({
45466
45739
  // current month. Normalized to the first of that month server-side.
45467
45740
  period: external_exports.union([
45468
45741
  external_exports.string().regex(/^\d{4}-\d{2}-\d{2}$/),
45469
- isoDateTime7
45742
+ isoDateTime8
45470
45743
  ]).optional()
45471
45744
  }).strict();
45472
45745
  var usageSnapshotOutputSchema = external_exports.object({
@@ -45478,11 +45751,11 @@ var usageSnapshotOutputSchema = external_exports.object({
45478
45751
  }).strict();
45479
45752
 
45480
45753
  // ../../packages/protocol/src/event-payloads.ts
45481
- var uuidSchema17 = external_exports.string().uuid();
45754
+ var uuidSchema18 = external_exports.string().uuid();
45482
45755
  var evidenceSchema = external_exports.array(external_exports.unknown());
45483
45756
  var statusEventPayloadSchema = external_exports.object({
45484
45757
  measurables: external_exports.array(external_exports.object({
45485
- id: uuidSchema17,
45758
+ id: uuidSchema18,
45486
45759
  value: external_exports.number().finite(),
45487
45760
  // DER-1045: an optional, non-secret citation for an agent-proposed reading
45488
45761
  // (signal.report) — where the number came from + the agent's confidence.
@@ -45511,7 +45784,7 @@ var statusEventPayloadSchema = external_exports.object({
45511
45784
  }).strict().optional()
45512
45785
  }).strict()).optional(),
45513
45786
  goals: external_exports.array(external_exports.object({
45514
- id: uuidSchema17,
45787
+ id: uuidSchema18,
45515
45788
  state: external_exports.enum(["on", "off"]),
45516
45789
  note: external_exports.string().min(1).optional()
45517
45790
  }).strict()).optional()
@@ -45524,8 +45797,8 @@ var escalationEventPayloadSchema = external_exports.object({
45524
45797
  }).strict();
45525
45798
  var issueEventPayloadSchema = external_exports.object({
45526
45799
  summary: external_exports.string().min(1),
45527
- blocking_goal_id: uuidSchema17.optional(),
45528
- broken_measurable_id: uuidSchema17.optional(),
45800
+ blocking_goal_id: uuidSchema18.optional(),
45801
+ broken_measurable_id: uuidSchema18.optional(),
45529
45802
  evidence: evidenceSchema,
45530
45803
  severity: external_exports.enum(["low", "med", "high", "critical"])
45531
45804
  }).strict();
@@ -45538,14 +45811,14 @@ var heldToolActionReplaySchema = external_exports.object({
45538
45811
  }).strict();
45539
45812
 
45540
45813
  // ../../packages/protocol/src/operating.ts
45541
- var uuidSchema18 = external_exports.string().uuid();
45814
+ var uuidSchema19 = external_exports.string().uuid();
45542
45815
  var taskListInputSchema = external_exports.object({}).strict();
45543
45816
  var operatingTaskSchema = external_exports.object({
45544
- id: uuidSchema18,
45817
+ id: uuidSchema19,
45545
45818
  title: external_exports.string(),
45546
45819
  description: external_exports.string().nullable(),
45547
- from_seat_id: uuidSchema18.nullable(),
45548
- goal_id: uuidSchema18.nullable(),
45820
+ from_seat_id: uuidSchema19.nullable(),
45821
+ goal_id: uuidSchema19.nullable(),
45549
45822
  acceptance_criteria: external_exports.unknown(),
45550
45823
  due_on: external_exports.string().nullable(),
45551
45824
  status: external_exports.string()
@@ -45554,48 +45827,48 @@ var taskListOutputSchema = external_exports.object({
45554
45827
  tasks: external_exports.array(operatingTaskSchema)
45555
45828
  }).strict();
45556
45829
  var taskAcceptInputSchema = external_exports.object({
45557
- id: uuidSchema18
45830
+ id: uuidSchema19
45558
45831
  }).strict();
45559
45832
  var taskMutationOutputSchema = external_exports.object({
45560
45833
  task: external_exports.object({
45561
- id: uuidSchema18,
45834
+ id: uuidSchema19,
45562
45835
  status: external_exports.string()
45563
45836
  }).strict()
45564
45837
  }).strict();
45565
45838
  var taskDeclineInputSchema = external_exports.object({
45566
- id: uuidSchema18,
45839
+ id: uuidSchema19,
45567
45840
  reason: external_exports.string().min(1)
45568
45841
  }).strict();
45569
45842
  var taskDeclineOutputSchema = external_exports.object({
45570
45843
  task: external_exports.object({
45571
- id: uuidSchema18,
45844
+ id: uuidSchema19,
45572
45845
  status: external_exports.string(),
45573
45846
  decline_reason: external_exports.string()
45574
45847
  }).strict()
45575
45848
  }).strict();
45576
45849
  var taskCompleteInputSchema = external_exports.object({
45577
- id: uuidSchema18,
45850
+ id: uuidSchema19,
45578
45851
  summary: external_exports.string().min(1),
45579
45852
  artifacts: external_exports.unknown().optional()
45580
45853
  }).strict();
45581
45854
  var taskCompleteOutputSchema = external_exports.object({
45582
- task_id: uuidSchema18,
45583
- event_id: uuidSchema18,
45855
+ task_id: uuidSchema19,
45856
+ event_id: uuidSchema19,
45584
45857
  type: external_exports.literal("handoff")
45585
45858
  }).strict();
45586
45859
  var statusRecordOutputSchema = external_exports.object({
45587
- event_id: uuidSchema18,
45860
+ event_id: uuidSchema19,
45588
45861
  type: external_exports.literal("status")
45589
45862
  }).strict();
45590
45863
  var duplicateFrictionCandidateSchema = external_exports.object({
45591
- issue_id: uuidSchema18,
45864
+ issue_id: uuidSchema19,
45592
45865
  summary: external_exports.string().min(1),
45593
45866
  // pg_trgm similarity in [0, 1]; higher is more similar.
45594
45867
  similarity: external_exports.number().min(0).max(1)
45595
45868
  }).strict();
45596
45869
  var frictionFileIssueOutputSchema = external_exports.object({
45597
- event_id: uuidSchema18,
45598
- issue_id: uuidSchema18,
45870
+ event_id: uuidSchema19,
45871
+ issue_id: uuidSchema19,
45599
45872
  type: external_exports.literal("issue"),
45600
45873
  // DER-1522: likely-duplicate candidates detected before creation. Recommend,
45601
45874
  // never block — filing always proceeds; empty when nothing crossed the
@@ -45606,12 +45879,12 @@ var workLogInputSchema = external_exports.object({
45606
45879
  note: external_exports.string().min(1)
45607
45880
  }).strict();
45608
45881
  var workLogOutputSchema = external_exports.object({
45609
- event_id: uuidSchema18,
45882
+ event_id: uuidSchema19,
45610
45883
  type: external_exports.literal("task")
45611
45884
  }).strict();
45612
45885
  var escalationRaiseOutputSchema = external_exports.object({
45613
- event_id: uuidSchema18,
45614
- escalation_id: uuidSchema18,
45886
+ event_id: uuidSchema19,
45887
+ escalation_id: uuidSchema19,
45615
45888
  type: external_exports.literal("escalation")
45616
45889
  }).strict();
45617
45890
  var deliverableKindSchema2 = external_exports.enum(["brief", "work_evidence", "artifact", "report", "other"]);
@@ -45659,7 +45932,7 @@ var deliverableAcceptOutputSchema = external_exports.object({
45659
45932
  }).strict();
45660
45933
 
45661
45934
  // ../../packages/protocol/src/steward.ts
45662
- var uuidSchema19 = external_exports.string().uuid();
45935
+ var uuidSchema20 = external_exports.string().uuid();
45663
45936
  var escalationStatusSchema = external_exports.enum([
45664
45937
  "open",
45665
45938
  "approved",
@@ -45667,21 +45940,21 @@ var escalationStatusSchema = external_exports.enum([
45667
45940
  "converted_to_issue"
45668
45941
  ]);
45669
45942
  var stewardEscalationSchema = external_exports.object({
45670
- id: uuidSchema19,
45671
- seat_id: uuidSchema19,
45943
+ id: uuidSchema20,
45944
+ seat_id: uuidSchema20,
45672
45945
  seat_name: external_exports.string(),
45673
45946
  seat_type: external_exports.enum(["human", "agent", "hybrid"]),
45674
- steward_seat_id: uuidSchema19,
45947
+ steward_seat_id: uuidSchema20,
45675
45948
  steward_seat_name: external_exports.string(),
45676
45949
  reason: external_exports.string(),
45677
45950
  charter_clause: external_exports.string(),
45678
45951
  recommended_action: external_exports.string().nullable(),
45679
45952
  status: escalationStatusSchema,
45680
- decided_by: uuidSchema19.nullable(),
45953
+ decided_by: uuidSchema20.nullable(),
45681
45954
  decided_by_name: external_exports.string().nullable(),
45682
45955
  decided_at: external_exports.string().nullable(),
45683
45956
  decision_note: external_exports.string().nullable(),
45684
- issue_id: uuidSchema19.nullable(),
45957
+ issue_id: uuidSchema20.nullable(),
45685
45958
  created_at: external_exports.string(),
45686
45959
  updated_at: external_exports.string()
45687
45960
  }).strict();
@@ -45692,27 +45965,27 @@ var escalationListOutputSchema = external_exports.object({
45692
45965
  escalations: external_exports.array(stewardEscalationSchema)
45693
45966
  }).strict();
45694
45967
  var escalationGetInputSchema = external_exports.object({
45695
- id: uuidSchema19
45968
+ id: uuidSchema20
45696
45969
  }).strict();
45697
45970
  var escalationGetOutputSchema = external_exports.object({
45698
45971
  escalation: stewardEscalationSchema
45699
45972
  }).strict();
45700
45973
  var escalationResolveActionSchema = external_exports.enum(["approve", "convert_to_issue"]);
45701
45974
  var escalationResolveInputSchema = external_exports.object({
45702
- id: uuidSchema19,
45975
+ id: uuidSchema20,
45703
45976
  action: escalationResolveActionSchema.optional(),
45704
45977
  rationale: external_exports.string().trim().min(1).optional()
45705
45978
  }).strict();
45706
45979
  var escalationRejectInputSchema = external_exports.object({
45707
- id: uuidSchema19,
45980
+ id: uuidSchema20,
45708
45981
  rationale: external_exports.string().trim().min(1).optional()
45709
45982
  }).strict();
45710
45983
  var escalationDecisionOutputSchema = external_exports.object({
45711
- escalation_id: uuidSchema19,
45984
+ escalation_id: uuidSchema20,
45712
45985
  status: escalationStatusSchema,
45713
- decision_id: uuidSchema19,
45714
- decided_by: uuidSchema19,
45715
- issue_id: uuidSchema19.nullable(),
45986
+ decision_id: uuidSchema20,
45987
+ decided_by: uuidSchema20,
45988
+ issue_id: uuidSchema20.nullable(),
45716
45989
  // DER-1478: true when the resolved escalation carries a durable replay_action
45717
45990
  // (an approval-gated connector write) that the approvals path should actuate
45718
45991
  // after this decision is recorded. Omitted (not false) for non-connector
@@ -45734,7 +46007,7 @@ var eventTypes = [
45734
46007
  "task"
45735
46008
  ];
45736
46009
  var publicMessageTypes = ["status", "handoff", "escalation", "issue"];
45737
- var uuidSchema20 = external_exports.string().uuid();
46010
+ var uuidSchema21 = external_exports.string().uuid();
45738
46011
  var evidenceSchema2 = external_exports.array(external_exports.unknown());
45739
46012
  var internalEventPayloadSchema = external_exports.record(external_exports.string(), external_exports.unknown()).refine((payload) => !Array.isArray(payload), "Internal event payload must be an object");
45740
46013
  var handoffEventPayloadSchema = external_exports.object({
@@ -45744,24 +46017,24 @@ var handoffEventPayloadSchema = external_exports.object({
45744
46017
  acceptance_criteria: external_exports.array(external_exports.string().min(1)),
45745
46018
  due: external_exports.string().datetime({ offset: true })
45746
46019
  }).strict(),
45747
- to_seat_id: uuidSchema20
46020
+ to_seat_id: uuidSchema21
45748
46021
  }).strict();
45749
46022
  var intakeEventPayloadSchema = external_exports.discriminatedUnion("action", [
45750
46023
  external_exports.object({
45751
46024
  action: external_exports.literal("uploaded"),
45752
- document_id: uuidSchema20,
46025
+ document_id: uuidSchema21,
45753
46026
  storage_ref: external_exports.string().min(1)
45754
46027
  }).strict(),
45755
46028
  external_exports.object({
45756
46029
  action: external_exports.literal("parsed"),
45757
- document_id: uuidSchema20,
46030
+ document_id: uuidSchema21,
45758
46031
  mode: external_exports.enum(["source_tree", "function_first"]),
45759
46032
  seat_count: external_exports.number().int().nonnegative(),
45760
46033
  edge_count: external_exports.number().int().nonnegative()
45761
46034
  }).strict(),
45762
46035
  external_exports.object({
45763
46036
  action: external_exports.literal("failed"),
45764
- document_id: uuidSchema20,
46037
+ document_id: uuidSchema21,
45765
46038
  reason: external_exports.string().min(1)
45766
46039
  }).strict(),
45767
46040
  external_exports.object({
@@ -45867,9 +46140,9 @@ var publicMessageTypeSchema = external_exports.enum(publicMessageTypes);
45867
46140
  var eventEnvelopeBaseSchema = external_exports.object({
45868
46141
  protocol: external_exports.literal(EVENT_PROTOCOL),
45869
46142
  type: eventTypeSchema,
45870
- seat_id: uuidSchema20.nullable(),
46143
+ seat_id: uuidSchema21.nullable(),
45871
46144
  occurred_at: external_exports.string().datetime({ offset: true }),
45872
- goal_ancestry: external_exports.array(uuidSchema20)
46145
+ goal_ancestry: external_exports.array(uuidSchema21)
45873
46146
  }).strict();
45874
46147
  var statusEventEnvelopeSchema = eventEnvelopeBaseSchema.extend({
45875
46148
  type: external_exports.literal("status"),
@@ -46143,7 +46416,7 @@ The Compass is drafted, then activated by a human through supersession.
46143
46416
  order: 15,
46144
46417
  title: "AICOS chat guide",
46145
46418
  summary: "How the AI Chief of Staff chat works in the authenticated app shell and what it can safely do today.",
46146
- version: "2026-07-11.1",
46419
+ version: "2026-07-13.1",
46147
46420
  public: true,
46148
46421
  audiences: ["human", "in_app_agent"],
46149
46422
  stages: ["company_setup", "operating_rhythm"],
@@ -46206,6 +46479,8 @@ The repair action ensures the same structure new companies receive: a Founder/CE
46206
46479
 
46207
46480
  Settings is the infrastructure surface for AICOS. Use it to confirm foundation status, inspect the current lane, see whether a seat-scoped MCP token exists, and choose **Cloud**, **Runner**, or **MCP** when the server-side readiness checks allow it. The AICOS seat has its own operations panel instead of the normal **Staff this seat** setup tabs, because AICOS is the company's governed AI Chief of Staff foundation rather than a generic agent to restaff from stock, custom design, or runner pairing controls. Use that panel to reach AICOS Settings, its Charter, runner readiness, MCP token management, and Trust Card run evidence.
46208
46481
 
46482
+ The same Settings area shows AICOS authority and launch recovery in customer language. AICOS starts with connected company capabilities at maximum available access and Trusted posture, but tenant dial-backs and always-human boundaries remain authoritative. Launch-credit status shows 50%, 80%, and exhaustion posture plus Billing and BYOK recovery links; BYOK reduces managed inference cost only and does not replace the required subscription after launch access ends.
46483
+
46209
46484
  ## What context AICOS receives
46210
46485
 
46211
46486
  Each turn carries server-normalized page context: route template, current path, safe search state, selected seat or object ids when authorized, onboarding state when relevant, and the current tenant clock. AICOS treats the supplied clock as authoritative for today's date and time instead of guessing from model priors. The server derives tenant and user authority from the authenticated session. Client-supplied tenant context is never accepted as authority.
@@ -46295,7 +46570,7 @@ Treat AICOS as a coordinator over the operating system. It can become more usefu
46295
46570
  order: 20,
46296
46571
  title: "Responsibility Graph playbook",
46297
46572
  summary: "How to build a functions-first graph with seats, owners, Stewards, vacancies, and clean authority.",
46298
- version: "2026-07-10.6",
46573
+ version: "2026-07-13.2",
46299
46574
  public: true,
46300
46575
  audiences: ["human", "cli", "mcp", "in_app_agent"],
46301
46576
  stages: ["graph_design", "staffing"],
@@ -46378,7 +46653,7 @@ A staffed non-AICOS agent's seat page uses one profile shell with eight URL-addr
46378
46653
 
46379
46654
  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.
46380
46655
 
46381
- 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.
46656
+ 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**, capability setup uses the production access language: **Off**, **Read**, and **Read & act**. Deterministic suggestions from the template or Charter are labelled, unavailable provider scopes are disabled instead of hidden, and human overrides stay visible until saved. Saving a capability change stages the governed \`tool_grants.agent.update\` path; selection alone never grants a tool call. The activation review then builds one receipt from the current scope digest, budget, lane, cadence, capabilities, and always-human boundaries. Signing Ask-first or creating a bounded Trusted grant uses that digest, so widening scopes or changing budget requires rebuilding and re-signing. 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.
46382
46657
 
46383
46658
  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.
46384
46659
 
@@ -46532,7 +46807,7 @@ Drafting can be assisted by agents. Activation is a human decision. When authori
46532
46807
  order: 40,
46533
46808
  title: "Agent staffing playbook",
46534
46809
  summary: "How to decide whether a seat should be human, agent, or hybrid, and how to go live safely.",
46535
- version: "2026-07-05.1",
46810
+ version: "2026-07-13.1",
46536
46811
  public: true,
46537
46812
  audiences: ["human", "cli", "mcp", "in_app_agent"],
46538
46813
  stages: ["staffing"],
@@ -46591,7 +46866,7 @@ Two creation paths, both draft-first. Read the stock-agents guide for templates
46591
46866
  - Custom: \`agent_setup.start\` / \`rost_start_agent_setup\` (returns a \`setup_id\`), iterate with \`agent_setup.get\` and \`agent_setup.update\`, then \`agent.create_custom\` / \`rost_create_custom_agent\`. Stage tools with \`agent.configure_tools\` (vault refs only) and sandbox with \`agent.run_dry_run\`.
46592
46867
  - Inspect runtime: \`agent.status\` / \`rost_get_agent_status\` with \`{"seat_id":"<seat-id>"}\` returns lane, live state, steward chain, dry-run result, and Runner availability.
46593
46868
  - Run on demand: \`{{cli}} agent run-now --seat-id <seat-id>\` / \`agent.run_now\` / \`rost_run_agent_now\` queues an immediate live run without changing the saved schedule. Cloud agents dispatch to the Inngest executor; runner agents queue work for the paired runner. The command is ungated but still requires a live staffed agent and the normal server-side tool guard.
46594
- - Audit what an agent did (Trust Card): \`{{cli}} command agent.list_runs --json '{"seat_id":"<seat-id>"}'\` / \`rost_list_agent_runs\` returns the seat's run history with per-run Skill activation counts plus tool-call and guard-held counts; \`{{cli}} agent get-run --seat-id <seat-id> --run-id <run-id>\` / \`agent.get_run\` / \`rost_get_agent_run_diagnostics\` reads one run's transcript reference, token/cost usage, outcome, product-visible run errors, and any Skill versions/files loaded for that run. Loaded Skill file hashes and sizes identify the immutable source package; the runtime may still bound or truncate prompt text before sending it to the model. \`{{cli}} command agent.list_tool_calls --json '{"seat_id":"<seat-id>"}'\` / \`rost_list_agent_tool_calls\` returns the tool-call ledger with each call's guard result. Both list commands include a \`denied_tool_call_count\` rollup \u2014 the actions held because they exceeded the charter. Pass \`{"seat_id":"<seat-id>","held_only":true}\` to \`agent.list_tool_calls\` for only the held calls. The web seat page shows the same facts as a Trust Card.
46869
+ - Audit what an agent did (Trust Card): \`{{cli}} command agent.list_runs --json '{"seat_id":"<seat-id>"}'\` / \`rost_list_agent_runs\` returns the seat's run history with per-run Skill activation counts plus tool-call and guard-held counts; \`{{cli}} agent get-run --seat-id <seat-id> --run-id <run-id>\` / \`agent.get_run\` / \`rost_get_agent_run_diagnostics\` reads one run's transcript reference, token/cost usage, outcome, product-visible run errors, and any Skill versions/files loaded for that run. Pass \`--transcript\` (\`{"transcript":true}\`) to also return the persisted, secret-scrubbed session transcript for that run when one exists \u2014 cloud-lane and runner turns persist a bounded transcript at turn end. Final run outcomes are no longer chopped to a short summary; the full report survives. Loaded Skill file hashes and sizes identify the immutable source package; the runtime may still bound or truncate prompt text before sending it to the model. \`{{cli}} command agent.list_tool_calls --json '{"seat_id":"<seat-id>"}'\` / \`rost_list_agent_tool_calls\` returns the tool-call ledger with each call's guard result. Both list commands include a \`denied_tool_call_count\` rollup \u2014 the actions held because they exceeded the charter. Pass \`{"seat_id":"<seat-id>","held_only":true}\` to \`agent.list_tool_calls\` for only the held calls. The web seat page shows the same facts as a Trust Card.
46595
46870
 
46596
46871
  ## Review readiness before go-live
46597
46872
 
@@ -47117,7 +47392,7 @@ External connectors are being rolled out provider by provider, conservatively (r
47117
47392
  order: 48,
47118
47393
  title: "CLI and MCP installation guide",
47119
47394
  summary: "Install the public CLI, register remote token-backed MCP clients, and find the full command and tool catalog.",
47120
- version: "2026-07-13.4",
47395
+ version: "2026-07-13.6",
47121
47396
  public: true,
47122
47397
  audiences: ["human", "cli", "mcp", "in_app_agent"],
47123
47398
  stages: ["company_setup", "staffing"],
@@ -47908,6 +48183,15 @@ Forge Vercel access is through a tenant-bound OAuth connection, never a browser-
47908
48183
 
47909
48184
  Preview deployment creation is a governed command. \`software_factory.vercel.deploy_preview\` requires an active Vercel project link, a Vercel OAuth vault-ref connection, active \`deploy_preview\` Forge authority for the requesting seat when a seat is supplied, and any requested preview secret/config grants. It writes the deployment id, URL, commit SHA, checks, status, and error metadata into \`software_vercel_deployments\`; build-request deployments also write a Forge artifact and event. Raw OAuth tokens and vault refs are never returned.
47910
48185
 
48186
+ #### Secret broker grants (tenant-level)
48187
+
48188
+ Generalized brokered-secret egress beyond Forge (DER-1738). A human grants an agent seat a scoped secret the \`secret.broker\` egress tool and the \`baserow.read\`/\`baserow.write\` tools (DER-1739) resolve server-side; Postgres stores only a vault-ref pointer, never secret material. A seat agent asks for and lists its own grants through the seat-scoped \`secret_grant.request\` / \`secret_grant.list\` tools (in Seat-scoped operating tools below); a human grants and revokes here. Baserow authenticates with an \`Authorization: Token <key>\` header, so a Baserow grant uses \`injection_mode: "header"\`, \`injection_name: "Authorization"\`, and stores the full \`Token <key>\` string as its vault secret.
48189
+
48190
+ | Tool | Command | What it does | Scope | Notes |
48191
+ |---|---|---|---|---|
48192
+ | \`rost_grant_a_brokered_secret\` | \`secret_grant.grant\` | A human grants a seat scoped brokered-secret access by vault ref (host, path prefix, methods, injection). Postgres stores only the pointer, never secret material. Owner-only and human-gated; the secret.broker and baserow.* tools resolve it server-side and the secret never enters agent context. | Tenant-admin | Call with {"seat_id":"<seat-id>","grant_key":"baserow","provider":"baserow","allowed_host":"baserow.example.com","allowed_path_prefix":"/api/database/rows/","allowed_methods":["GET","POST","PATCH"],"scope_tier":"write","injection_mode":"header","injection_name":"Authorization","vault_ref":"infisical://prod/baserow-token"}. |
48193
+ | \`rost_revoke_a_brokered_secret_grant\` | \`secret_grant.revoke\` | Revoke a brokered secret grant (teardown \u2014 cut a compromised or over-scoped seat egress immediately; the next broker call fails closed). Owner-only and human-gated. | Tenant-admin | Call with {"grant_id":"<grant-id>"}; non-interactive callers receive a confirmation handoff. |
48194
+
47911
48195
  ### Seat-scoped operating tools
47912
48196
 
47913
48197
  Seat-scoped MCP tokens expose the operating protocol below. The server still checks the seat's permission manifest, Charter, task ownership, and tenant boundary. These are the **seat-token equivalents** of the CLI \`{{cli}} task\` / \`{{cli}} signal\` / \`{{cli}} friction\` wrappers and the tenant-admin task tools above: \`rost_get_tasks\`, \`{{cli}} task list\`, and \`task.list\` are the same operation reached three different ways. The command-id column makes the mapping explicit.
@@ -47928,6 +48212,8 @@ Seat-scoped MCP tokens expose the operating protocol below. The server still che
47928
48212
  | \`rost_attach_agent_deliverable\` | \`deliverable.attach\` | Attach a scrubbed deliverable to a source run, task, or work order after server-side seat validation. | Seat | Call with title, kind, and the source ids that belong to the acting seat. |
47929
48213
  | \`rost_request_a_forge_secret_grant\` | \`software_factory.secret.request\` | Request access to a project secret by key. It creates a durable credential request and approval Task, never accepts a secret value, and does not grant access by itself. | Seat | Call with \`{"software_project_id":"<project-id>","environment":"preview","seat_id":"<seat-id>","action":"test.run","key_name":"OPENAI_API_KEY"}\`. |
47930
48214
  | \`rost_verify_forge_secret_broker_access\` | \`software_factory.secret.use\` | Verify broker authorization for a Forge secret without opening the vault. Missing grants create or reuse a credential request + approval Task; allowed grants return a redacted authorization summary only. Runtime vault use happens runner-side. | Seat | Call with \`{"software_project_id":"<project-id>","environment":"preview","seat_id":"<seat-id>","action":"test.run","key_name":"OPENAI_API_KEY","operation":"test_execution"}\`. |
48215
+ | \`rost_request_a_brokered_secret_grant\` | \`secret_grant.request\` | A seat agent requests a scoped brokered-secret grant (for secret.broker / baserow.*) by naming the host, path prefix, methods, and scope it needs. Draft-and-confirm: no secret and no vault ref; returns an event id for a human to grant via secret_grant.grant. | Seat | Call with {"seat_id":"<seat-id>","grant_key":"baserow","provider":"baserow","allowed_host":"baserow.example.com","allowed_path_prefix":"/api/database/rows/","allowed_methods":["GET"],"scope_tier":"read"}. |
48216
+ | \`rost_list_brokered_secret_grants\` | \`secret_grant.list\` | List the seat's own brokered secret grants. Returns egress allowlist metadata only (host, path prefix, methods, scope, status), never the vault ref or any secret. | Seat | Call with {} (an agent is server-pinned to its own seat). |
47931
48217
  | \`rost_record_forge_conformance_findings\` | \`software_factory.conformance.record_findings\` | A Forge review seat (plan conformance, security, or QA) records structured findings as reviewer evidence. Set \`changeset_id\` on a finding that targets a specific changeset. Open findings route the request back to implementation; accepting a gap remains a separate human gate. Requires the seat's signed manifest grant. | Seat | Call with \`{"build_request_id":"<request-id>","findings":[{"severity":"major","category":"scope_gap","summary":"Missing migration verification","changeset_id":"<changeset-id>"}]}\`. |
47932
48218
  | \`rost_resolve_forge_conformance_finding\` | \`software_factory.conformance.resolve_finding\` | A Forge review seat marks a prior open finding resolved after re-reviewing the changeset and verifying it is fixed (reviewer verification, not human gap-acceptance). A resolved finding stops routing the request back to implementation, so the recycle loop converges. Requires the seat's signed manifest grant. | Seat | Call with \`{"build_request_id":"<request-id>","finding_ids":["<finding-id>"]}\`. |
47933
48219
 
@@ -48819,7 +49105,7 @@ Stop before: approving a Charter, signing a manifest, connecting a tool or crede
48819
49105
  order: 71,
48820
49106
  title: "Billing and pricing guide",
48821
49107
  summary: "How {{brand}} packages company-wide access, Stripe billing, and governed-agent usage without per-human-seat pricing.",
48822
- version: "2026-07-13.1",
49108
+ version: "2026-07-13.2",
48823
49109
  public: true,
48824
49110
  audiences: ["human", "cli", "mcp", "in_app_agent"],
48825
49111
  stages: ["company_setup", "staffing", "operating_rhythm"],
@@ -48877,7 +49163,7 @@ Billable true-up is service-owned and runs after a period is closed. The tenant-
48877
49163
 
48878
49164
  ## Launch credits and recovery access
48879
49165
 
48880
- Eligible launch tenants can receive one configured launch credit for {{brand}}-managed variable costs. Managed LLM, Exa, browser, and sandbox costs are estimated before the provider call, reserved atomically against the active launch credit, and then settled to actual usage or released if the call does not complete. BYOK model calls do not draw down launch credit, but they still keep their ordinary audit and usage records.
49166
+ Eligible launch tenants can receive one configured launch credit for {{brand}}-managed variable costs. Managed LLM, Exa, browser, and sandbox costs are estimated before the provider call, reserved atomically against the active launch credit, and then settled to actual usage or released if the call does not complete. BYOK model calls do not draw down launch credit, but they still keep their ordinary audit and usage records. Settings surfaces 50%, 80%, and exhaustion posture so a tenant can choose subscription recovery, BYOK cost reduction, export, cancel, or delete before operations pause.
48881
49167
 
48882
49168
  Launch-credit notifications are informational and idempotent: owners may see threshold, exhaustion, or expiry notices with recovery actions when the remaining credit drops or the credit approaches its expiry window.
48883
49169
 
@@ -49237,7 +49523,7 @@ The runner should not store raw credentials in local notes, prompts, or logs. It
49237
49523
  order: 76,
49238
49524
  title: "Stock agents guide",
49239
49525
  summary: "How to use stock agent templates as starting points while preserving seat-specific Charters and human approval.",
49240
- version: "2026-07-04.1",
49526
+ version: "2026-07-13.5",
49241
49527
  public: true,
49242
49528
  audiences: ["human", "cli", "mcp", "in_app_agent"],
49243
49529
  stages: ["staffing"],
@@ -49264,7 +49550,7 @@ Before dry run, review the template's responsibilities, tool assumptions, escala
49264
49550
 
49265
49551
  ## Template catalog
49266
49552
 
49267
- Eight stock templates ship today. Every one is draft-first, escalates the actions in its safety boundaries, and keeps spend, external sends, and credential scope human-owned until a Steward sets a threshold. Read the live list with \`agent_template.list\` / \`rost_list_agent_templates\` or the \`rost://agents/templates\` resource.
49553
+ Nine stock templates ship today. Every one is draft-first, escalates the actions in its safety boundaries, and keeps spend, external sends, and credential scope human-owned until a Steward sets a threshold. Read the live list with \`agent_template.list\` / \`rost_list_agent_templates\` or the \`rost://agents/templates\` resource.
49268
49554
 
49269
49555
  ### AP Clerk \u2014 \`stock/ap-clerk\`
49270
49556
 
@@ -49273,6 +49559,13 @@ Eight stock templates ship today. Every one is draft-first, escalates the action
49273
49559
  - Default tools: Accounting bills read/write drafts; AP inbox read/draft.
49274
49560
  - Safety boundary: vendor bank changes, payment release, disputed or duplicate invoices, and unclear approval chains escalate before action.
49275
49561
 
49562
+ ### Vendor Follow-up Coordinator \u2014 \`stock/vendor-follow-up-coordinator\`
49563
+
49564
+ - Function: Finance. Tier: \`1 \xB7 Launch\`.
49565
+ - Responsibilities: Work the approved vendor follow-up queue on weekdays; Draft and send the routine follow-up message; Update the approved Sheet range and escalate any drift.
49566
+ - Default tools: Gmail read/draft/send; Sheets read/write approved range.
49567
+ - Safety boundary: new or changed recipients, attachments, nonroutine copy, out-of-range Sheet writes, and revoked authority escalate; only the approved weekday follow-up contract may run.
49568
+
49276
49569
  ### AR & Collections Clerk \u2014 \`stock/ar-collections-clerk\`
49277
49570
 
49278
49571
  - Function: Finance. Tier: \`1 \xB7 Launch\`.
@@ -51054,7 +51347,7 @@ var COMMAND_MANIFEST = [
51054
51347
  { "id": "agent.create_from_template", "namespace": "agent", "action": "create_from_template", "title": "Create agent from template", "description": "Create a draft stock agent and draft Charter from a stock template. Creates the agent occupancy only when a human steward chain resolves; the agent stays draft until a signed manifest, a passed dry run, and human go-live.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "template_slug", "flag": "template-slug", "type": "string", "required": true }, { "name": "expected_template_version", "flag": "expected-template-version", "type": "string", "required": false }], "hasComplexInput": false, "help": "Create a draft stock agent and draft Charter from a template; the agent occupancy is created only when a human steward chain resolves, and the agent stays draft until a signed manifest, a passed dry run, and human go-live." },
51055
51348
  { "id": "agent.decommission", "namespace": "agent", "action": "decommission", "title": "Decommission agent", "description": "Retire an agent occupancy safely. Blocks if it would leave another live agent without a human steward chain.", "requiredScope": "tenant", "confirmation": "dangerous", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "reason", "flag": "reason", "type": "string", "required": false }], "hasComplexInput": false, "help": "Retire an agent occupancy safely; the no-orphan guard blocks any decommission that would leave another live agent without a human steward chain." },
51056
51349
  { "id": "agent.fleet_digest", "namespace": "agent", "action": "fleet_digest", "title": "Get dogfood fleet health digest", "description": "Return a daily tenant fleet health digest with live/idle state, run counts, spend, failed runs, unresolved product errors, notification errors, and next actions.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "window_hours", "flag": "window-hours", "type": "integer", "required": false }, { "name": "error_limit", "flag": "error-limit", "type": "integer", "required": false }], "hasComplexInput": false, "help": "Capture a daily dogfood fleet health digest with fleet state, run counts, spend, failed runs, unresolved errors, failed notifications, and next actions." },
51057
- { "id": "agent.get_run", "namespace": "agent", "action": "get_run", "title": "Get agent run diagnostics", "description": "Return one seat run's diagnostic record: run status, transcript reference, token/cost usage, outcome, and linked product-visible run errors.", "requiredScope": "seat", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "run_id", "flag": "run-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Read one run's diagnostic record, transcript reference, token/cost usage, outcome, and linked product-visible errors." },
51350
+ { "id": "agent.get_run", "namespace": "agent", "action": "get_run", "title": "Get agent run diagnostics", "description": "Return one seat run's diagnostic record: run status, transcript reference, token/cost usage, outcome, and linked product-visible run errors.", "requiredScope": "seat", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "run_id", "flag": "run-id", "type": "string", "required": true }, { "name": "transcript", "flag": "transcript", "type": "boolean", "required": false }], "hasComplexInput": false, "help": "Read one run's diagnostic record, transcript reference, token/cost usage, outcome, and linked product-visible errors." },
51058
51351
  { "id": "agent.go_live", "namespace": "agent", "action": "go_live", "title": "Go live", "description": "Promote a dry-run agent seat to live after the human approval gate.", "requiredScope": "seat", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "charter_version_id", "flag": "charter-version-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Move an agent live only after dry-run evidence, signed permissions, and a human Steward chain are clear.", "example": { "seat_id": "0190aaaa-aaaa-7aaa-8aaa-aaaaaaaaaaaa", "charter_version_id": "0190cccc-cccc-7ccc-8ccc-cccccccccccc" } },
51059
51352
  { "id": "agent.list_fleet", "namespace": "agent", "action": "list_fleet", "title": "List agent fleet", "description": "Return every agent-occupied seat with lane, live state, last real turn, recent turn counts, top measurable status, open escalations, and 7-day real-run spend.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "Read every agent-occupied seat at once: lane, live state, last real turn, 24h/7d turns, measurable status, escalations, and spend." },
51060
51353
  { "id": "agent.list_runs", "namespace": "agent", "action": "list_runs", "title": "List agent runs", "description": "Return a seat's agent run history (status, lane, model, cost, per-run tool-call and guard-denial counts) plus the seat's run/tool-call rollup with held-action count.", "requiredScope": "seat", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "limit", "flag": "limit", "type": "integer", "required": false }], "hasComplexInput": false, "help": "Audit a seat's agent run history with per-run tool-call and guard-held counts (the Trust Card)." },
@@ -51179,6 +51472,10 @@ var COMMAND_MANIFEST = [
51179
51472
  { "id": "seat.rename", "namespace": "seat", "action": "rename", "title": "Rename seat", "description": "Rename a Responsibility Graph seat.", "requiredScope": "seat", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "name", "flag": "name", "type": "string", "required": true }], "hasComplexInput": false, "help": "Seat names should describe the function and accountability clearly." },
51180
51473
  { "id": "seat.reparent", "namespace": "seat", "action": "reparent", "title": "Reparent seat", "description": "Move a Responsibility Graph seat under a new parent.", "requiredScope": "seat", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "new_parent_seat_id", "flag": "new-parent-seat-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Reparent seats only when it clarifies accountable structure and preserves a clean graph." },
51181
51474
  { "id": "seat.set_type", "namespace": "seat", "action": "set_type", "title": "Set seat type", "description": "Set a Responsibility Graph seat type.", "requiredScope": "seat", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "seat_type", "flag": "seat-type", "type": "enum", "required": true, "enumValues": ["human", "agent", "hybrid"] }], "hasComplexInput": false, "help": "Seat type should follow the work, risk, measurable, and stewardship model." },
51475
+ { "id": "secret_grant.grant", "namespace": "secret_grant", "action": "grant", "title": "Grant a brokered secret", "description": "A human grants a seat scoped access to a brokered secret by VAULT REF (host + path prefix + methods + scope + injection). Postgres stores only the pointer \u2014 never secret material (invariant #5). Owner-only, human-gated. The secret.broker/baserow.* tools resolve this grant server-side; the secret never enters agent context.", "requiredScope": "tenant_admin", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "grant_key", "flag": "grant-key", "type": "string", "required": true }, { "name": "vault_ref", "flag": "vault-ref", "type": "string", "required": true }, { "name": "provider", "flag": "provider", "type": "string", "required": true }, { "name": "allowed_host", "flag": "allowed-host", "type": "string", "required": true }, { "name": "allowed_path_prefix", "flag": "allowed-path-prefix", "type": "string", "required": false }, { "name": "allowed_methods", "flag": "allowed-methods", "type": "array", "required": true, "itemType": "string" }, { "name": "scope_tier", "flag": "scope-tier", "type": "enum", "required": true, "enumValues": ["read", "write"] }, { "name": "injection_mode", "flag": "injection-mode", "type": "enum", "required": false, "enumValues": ["header_bearer", "header", "query"] }, { "name": "injection_name", "flag": "injection-name", "type": "string", "required": false }, { "name": "expires_at", "flag": "expires-at", "type": "string", "required": false }], "hasComplexInput": false, "help": "A human grants a seat a scoped brokered secret by vault ref (host + path prefix + methods + injection). Postgres stores only the pointer, never secret material. Owner-only and human-gated; the secret.broker/baserow.* tools resolve it server-side." },
51476
+ { "id": "secret_grant.list", "namespace": "secret_grant", "action": "list", "title": "List brokered secret grants", "description": "List brokered secret grants for the tenant (or one seat). Returns the egress allowlist metadata only (host, path prefix, methods, scope, status) \u2014 never the vault ref or any secret. An agent sees only its own seat's grants.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": false }, { "name": "include_revoked", "flag": "include-revoked", "type": "boolean", "required": false }], "hasComplexInput": false, "help": "List brokered secret grants for the tenant (or one seat). Returns the egress allowlist metadata only \u2014 host, path prefix, methods, scope, status \u2014 never the vault ref or any secret." },
51477
+ { "id": "secret_grant.request", "namespace": "secret_grant", "action": "request", "title": "Request a brokered secret grant", "description": "An agent or user REQUESTS a scoped brokered-secret grant by naming the egress it needs (grant key, host, path prefix, methods, scope). No secret and no vault ref are ever accepted (invariant #5) \u2014 this only records a durable ask for a human to grant.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "grant_key", "flag": "grant-key", "type": "string", "required": true }, { "name": "provider", "flag": "provider", "type": "string", "required": true }, { "name": "allowed_host", "flag": "allowed-host", "type": "string", "required": true }, { "name": "allowed_path_prefix", "flag": "allowed-path-prefix", "type": "string", "required": false }, { "name": "allowed_methods", "flag": "allowed-methods", "type": "array", "required": true, "itemType": "string" }, { "name": "scope_tier", "flag": "scope-tier", "type": "enum", "required": true, "enumValues": ["read", "write"] }, { "name": "reason", "flag": "reason", "type": "string", "required": false }], "hasComplexInput": false, "help": "An agent or user requests a brokered-secret egress grant by naming the host, path prefix, methods, and scope it needs. Draft-and-confirm: no secret or vault ref is accepted; a human grants it." },
51478
+ { "id": "secret_grant.revoke", "namespace": "secret_grant", "action": "revoke", "title": "Revoke a brokered secret grant", "description": "Revoke a brokered secret grant \u2014 a compromised or over-scoped seat's egress access can be cut immediately; the next broker call resolves no grant and fails closed. Owner-only, human-gated.", "requiredScope": "tenant_admin", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "grant_id", "flag": "grant-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Revoke a brokered secret grant (teardown \u2014 cut a compromised or over-scoped seat's egress immediately; the next broker call fails closed). Owner-only and human-gated." },
51182
51479
  { "id": "settings.agent_policy.get", "namespace": "settings", "action": "agent_policy.get", "title": "Get company autonomy ceiling", "description": "Read this company's Company Guardrails ceiling (ADR-0007): the profile, enforcement mode, and the most an agent may do autonomously (max_autonomous_risk). Returns metadata only.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "Read this company's autonomy ceiling (Company Guardrails, ADR-0007): profile, enforcement mode, and the most an agent may do autonomously." },
51183
51480
  { "id": "settings.agent_policy.update", "namespace": "settings", "action": "agent_policy.update", "title": "Set company autonomy ceiling", "description": "Set the Company Guardrails ceiling (ADR-0007): a named profile (locked_down, balanced, high_autonomy) or custom + max_autonomous_risk. Tenant-admin and human-gated. An explicitly set ceiling is ENFORCED by default; pass enforcement=observe to stage a change without blocking.", "requiredScope": "tenant_admin", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "profile", "flag": "profile", "type": "enum", "required": true, "enumValues": ["locked_down", "balanced", "high_autonomy", "custom"] }, { "name": "max_autonomous_risk", "flag": "max-autonomous-risk", "type": "enum", "required": false, "enumValues": ["low", "medium", "high", "critical"] }, { "name": "enforcement", "flag": "enforcement", "type": "enum", "required": false, "enumValues": ["observe", "enforce"] }], "hasComplexInput": false, "help": "Set the company autonomy ceiling: a profile (locked_down, balanced, high_autonomy) or custom + max_autonomous_risk. Owner-only, human-gated, and enforced by default." },
51184
51481
  { "id": "settings.confirmation_policy.get", "namespace": "settings", "action": "confirmation_policy.get", "title": "Get CLI confirmation mode", "description": "Read this company's CLI confirmation mode (DER-1490): careful (the strict default \u2014 the CLI cannot silently auto-approve a confirmation) or trusted_operator (an owner opt-in permitting silent auto-approval of non-dangerous confirmations). Returns metadata only.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [], "hasComplexInput": false, "help": "Read this company's CLI confirmation mode: careful (the strict default \u2014 the CLI cannot silently auto-approve a confirmation) or trusted_operator (an owner opt-in permitting silent auto-approval of non-dangerous confirmations)." },