@rosthq/cli 0.7.94 → 0.7.95

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
@@ -44829,8 +44829,44 @@ var secretGrantListOutputSchema = external_exports.object({
44829
44829
  grants: external_exports.array(secretGrantSummarySchema)
44830
44830
  }).strict();
44831
44831
 
44832
- // ../../packages/protocol/src/software-factory.ts
44832
+ // ../../packages/protocol/src/gate.ts
44833
44833
  var uuid11 = external_exports.string().uuid();
44834
+ var gateDecisionSchema = external_exports.enum(["approve", "reject"]);
44835
+ var gateSubjectKindSchema = external_exports.enum(["prototype", "deliverable", "artifact"]);
44836
+ var gateDecideInputSchema = external_exports.object({
44837
+ subject_kind: gateSubjectKindSchema,
44838
+ subject_id: uuid11,
44839
+ artifact_ref: external_exports.object({
44840
+ // The deep link to the artifact (a prototype URL). Agent-supplied and rendered as a
44841
+ // clickable link in the operator's Home band, so it is constrained to an http(s)
44842
+ // URL or a relative in-app path — a `javascript:`/`data:` href would be a
44843
+ // stored-XSS-via-link vector (conservative-by-default, invariant #10).
44844
+ href: external_exports.string().min(1).max(2048).refine(
44845
+ (value) => value.startsWith("/") || /^https?:\/\//i.test(value),
44846
+ "href must be a relative path or an http(s) URL"
44847
+ ),
44848
+ label: external_exports.string().min(1).max(200)
44849
+ }).strict(),
44850
+ // The digest the gate is bound to. On approval the current artifact digest must
44851
+ // still match (a changed artifact is a stale gate — re-draft required).
44852
+ artifact_digest: external_exports.string().min(1).max(200),
44853
+ decision: gateDecisionSchema,
44854
+ ask: external_exports.string().min(1).max(400),
44855
+ consequence: external_exports.string().min(1).max(600),
44856
+ unblocked_targets: external_exports.array(external_exports.string().min(1).max(200)).max(20).default([]),
44857
+ rationale: external_exports.string().max(4e3).optional()
44858
+ }).strict();
44859
+ var gateDecideOutputSchema = external_exports.object({
44860
+ decision_id: uuid11.nullable(),
44861
+ subject_id: uuid11,
44862
+ artifact_digest: external_exports.string(),
44863
+ decision: gateDecisionSchema,
44864
+ decided_by: uuid11,
44865
+ gate_status: external_exports.enum(["approved", "rejected"])
44866
+ });
44867
+
44868
+ // ../../packages/protocol/src/software-factory.ts
44869
+ var uuid12 = external_exports.string().uuid();
44834
44870
  var SOFTWARE_PHASE_VALUES = [
44835
44871
  "intake",
44836
44872
  "discovery_scoping",
@@ -44941,7 +44977,7 @@ var softwareConfigValueKindSchema = external_exports.enum(["plain", "secret_ref"
44941
44977
  var softwareCredentialRequestStatusSchema = external_exports.enum(["pending", "fulfilled", "rejected", "canceled"]);
44942
44978
  var softwareSecretAccessOperationSchema = external_exports.enum(["use", "vercel_env_sync", "test_execution"]);
44943
44979
  var softwareProjectSummarySchema = external_exports.object({
44944
- id: uuid11,
44980
+ id: uuid12,
44945
44981
  name: external_exports.string().min(1),
44946
44982
  slug: external_exports.string().min(1),
44947
44983
  base_branch: external_exports.string().min(1),
@@ -44995,7 +45031,7 @@ var softwarePhaseSchedulerStateSchema = external_exports.object({
44995
45031
  ]).nullable(),
44996
45032
  message: external_exports.string(),
44997
45033
  remediation_href: external_exports.string().nullable(),
44998
- work_order_id: uuid11.nullable()
45034
+ work_order_id: uuid12.nullable()
44999
45035
  });
45000
45036
  var softwareDispatchHoldReasonSchema = external_exports.enum([
45001
45037
  "dependency",
@@ -45019,7 +45055,7 @@ var softwareDispatchPreviewRunnerRequirementSchema = external_exports.object({
45019
45055
  }).strict();
45020
45056
  var softwareDispatchPreviewItemSchema = external_exports.object({
45021
45057
  kind: external_exports.enum(["changeset", "task"]),
45022
- id: uuid11,
45058
+ id: uuid12,
45023
45059
  ordinal: external_exports.number().int().positive(),
45024
45060
  title: external_exports.string(),
45025
45061
  changeset_ordinal: external_exports.number().int().positive().nullable(),
@@ -45046,7 +45082,7 @@ var softwareTouchSetCollisionSchema = external_exports.object({
45046
45082
  overlap: external_exports.array(external_exports.string()).min(1)
45047
45083
  }).strict();
45048
45084
  var softwareCrossRequestCollisionGroupSchema = external_exports.object({
45049
- software_project_id: uuid11,
45085
+ software_project_id: uuid12,
45050
45086
  requests: external_exports.array(softwareTouchSetRefSchema),
45051
45087
  collisions: external_exports.array(softwareTouchSetCollisionSchema),
45052
45088
  unknown: external_exports.array(softwareTouchSetRefSchema)
@@ -45080,8 +45116,8 @@ var softwareDispatchPreviewSchema = external_exports.object({
45080
45116
  grooming_reason: external_exports.string().nullable()
45081
45117
  }).strict();
45082
45118
  var softwareBuildRequestSummarySchema = external_exports.object({
45083
- id: uuid11,
45084
- software_project_id: uuid11,
45119
+ id: uuid12,
45120
+ software_project_id: uuid12,
45085
45121
  title: external_exports.string(),
45086
45122
  source_channel: softwareSourceChannelSchema,
45087
45123
  source_ref: external_exports.string().nullable(),
@@ -45097,7 +45133,7 @@ var softwareBuildRequestSummarySchema = external_exports.object({
45097
45133
  scheduler_state: softwarePhaseSchedulerStateSchema.nullable()
45098
45134
  });
45099
45135
  var softwarePhaseRunSummarySchema = external_exports.object({
45100
- id: uuid11,
45136
+ id: uuid12,
45101
45137
  phase: softwarePhaseSchema,
45102
45138
  status: softwarePhaseRunStatusSchema,
45103
45139
  attempt_no: external_exports.number().int(),
@@ -45107,17 +45143,17 @@ var softwarePhaseRunSummarySchema = external_exports.object({
45107
45143
  scheduler_state: softwarePhaseSchedulerStateSchema.nullable()
45108
45144
  });
45109
45145
  var softwareGateSummarySchema = external_exports.object({
45110
- id: uuid11,
45146
+ id: uuid12,
45111
45147
  gate_type: softwareGateTypeSchema,
45112
45148
  status: external_exports.enum(["pending", "approved", "rejected", "held"]),
45113
- phase_run_id: uuid11.nullable(),
45114
- resolved_by_user_id: uuid11.nullable(),
45149
+ phase_run_id: uuid12.nullable(),
45150
+ resolved_by_user_id: uuid12.nullable(),
45115
45151
  rationale: external_exports.string().nullable(),
45116
45152
  created_at: external_exports.string()
45117
45153
  });
45118
45154
  var softwareChangesetSummarySchema = external_exports.object({
45119
- id: uuid11,
45120
- build_request_id: uuid11,
45155
+ id: uuid12,
45156
+ build_request_id: uuid12,
45121
45157
  ordinal: external_exports.number().int(),
45122
45158
  title: external_exports.string(),
45123
45159
  split_criterion: softwareChangesetSplitCriterionSchema,
@@ -45131,10 +45167,10 @@ var softwareChangesetSummarySchema = external_exports.object({
45131
45167
  created_at: external_exports.string()
45132
45168
  });
45133
45169
  var softwareTaskSummarySchema = external_exports.object({
45134
- id: uuid11,
45135
- build_request_id: uuid11,
45136
- changeset_id: uuid11,
45137
- plan_version_id: uuid11,
45170
+ id: uuid12,
45171
+ build_request_id: uuid12,
45172
+ changeset_id: uuid12,
45173
+ plan_version_id: uuid12,
45138
45174
  ordinal: external_exports.number().int(),
45139
45175
  task_key: external_exports.string(),
45140
45176
  title: external_exports.string(),
@@ -45173,8 +45209,8 @@ var softwarePlanArtifactSummarySchema = external_exports.object({
45173
45209
  changesets: external_exports.array(softwarePlanArtifactChangesetSummarySchema).default([])
45174
45210
  });
45175
45211
  var softwarePlanVersionSummarySchema = external_exports.object({
45176
- id: uuid11,
45177
- build_request_id: uuid11,
45212
+ id: uuid12,
45213
+ build_request_id: uuid12,
45178
45214
  version_no: external_exports.number().int(),
45179
45215
  status: softwarePlanVersionStatusSchema,
45180
45216
  summary: external_exports.string().nullable(),
@@ -45185,37 +45221,37 @@ var softwarePlanVersionSummarySchema = external_exports.object({
45185
45221
  answer: external_exports.string()
45186
45222
  })).default([]),
45187
45223
  planning_artifact: softwarePlanArtifactSummarySchema.nullable(),
45188
- created_by_seat_id: uuid11.nullable(),
45224
+ created_by_seat_id: uuid12.nullable(),
45189
45225
  created_at: external_exports.string()
45190
45226
  });
45191
45227
  var softwarePlanConformanceFindingSummarySchema = external_exports.object({
45192
- id: uuid11,
45193
- build_request_id: uuid11,
45194
- changeset_id: uuid11.nullable(),
45195
- phase_run_id: uuid11.nullable(),
45196
- plan_version_id: uuid11.nullable(),
45228
+ id: uuid12,
45229
+ build_request_id: uuid12,
45230
+ changeset_id: uuid12.nullable(),
45231
+ phase_run_id: uuid12.nullable(),
45232
+ plan_version_id: uuid12.nullable(),
45197
45233
  severity: softwareConformanceSeveritySchema,
45198
45234
  category: softwareConformanceCategorySchema,
45199
45235
  summary: external_exports.string(),
45200
45236
  detail: external_exports.string().nullable(),
45201
45237
  status: softwareConformanceStatusSchema,
45202
- accepted_by_decision_id: uuid11.nullable(),
45238
+ accepted_by_decision_id: uuid12.nullable(),
45203
45239
  resolved_at: external_exports.string().nullable(),
45204
45240
  created_at: external_exports.string()
45205
45241
  });
45206
45242
  var softwareAuthorityProfileSummarySchema = external_exports.object({
45207
- id: uuid11,
45208
- software_project_id: uuid11.nullable(),
45243
+ id: uuid12,
45244
+ software_project_id: uuid12.nullable(),
45209
45245
  name: external_exports.string(),
45210
45246
  preset: softwareAuthorityPresetSchema,
45211
45247
  is_default: external_exports.boolean(),
45212
45248
  created_at: external_exports.string()
45213
45249
  });
45214
45250
  var softwareSecretGrantSummarySchema = external_exports.object({
45215
- id: uuid11,
45216
- software_project_id: uuid11,
45251
+ id: uuid12,
45252
+ software_project_id: uuid12,
45217
45253
  environment: softwareEnvironmentSchema,
45218
- seat_id: uuid11,
45254
+ seat_id: uuid12,
45219
45255
  action: external_exports.string(),
45220
45256
  key_name: external_exports.string(),
45221
45257
  vault_ref: external_exports.string(),
@@ -45224,8 +45260,8 @@ var softwareSecretGrantSummarySchema = external_exports.object({
45224
45260
  revoked_at: external_exports.string().nullable()
45225
45261
  });
45226
45262
  var softwareConfigEntrySummarySchema = external_exports.object({
45227
- id: uuid11,
45228
- software_project_id: uuid11,
45263
+ id: uuid12,
45264
+ software_project_id: uuid12,
45229
45265
  environment: softwareEnvironmentSchema,
45230
45266
  key_name: external_exports.string(),
45231
45267
  value_kind: softwareConfigValueKindSchema,
@@ -45235,20 +45271,20 @@ var softwareConfigEntrySummarySchema = external_exports.object({
45235
45271
  updated_at: external_exports.string()
45236
45272
  });
45237
45273
  var softwareCredentialRequestSummarySchema = external_exports.object({
45238
- id: uuid11,
45239
- software_project_id: uuid11,
45274
+ id: uuid12,
45275
+ software_project_id: uuid12,
45240
45276
  environment: softwareEnvironmentSchema,
45241
- requested_by_seat_id: uuid11,
45277
+ requested_by_seat_id: uuid12,
45242
45278
  action: external_exports.string(),
45243
45279
  key_name: external_exports.string(),
45244
45280
  reason: external_exports.string().nullable(),
45245
45281
  status: softwareCredentialRequestStatusSchema,
45246
- approval_task_id: uuid11.nullable(),
45282
+ approval_task_id: uuid12.nullable(),
45247
45283
  created_at: external_exports.string()
45248
45284
  });
45249
45285
  var softwareCapacityObservationSummarySchema = external_exports.object({
45250
- id: uuid11,
45251
- runner_id: uuid11,
45286
+ id: uuid12,
45287
+ runner_id: uuid12,
45252
45288
  observed_at: external_exports.string(),
45253
45289
  os: external_exports.string().nullable(),
45254
45290
  cpu_count: external_exports.number().int().nullable(),
@@ -45264,7 +45300,7 @@ var softwareRequestCreateInputSchema = external_exports.object({
45264
45300
  // this schema) enforces that exactly one resolves, with an actionable error
45265
45301
  // when neither is given or neither matches — keeping this shape a plain
45266
45302
  // `z.object` so JSON-schema/CLI-flag projection stays simple (no `.refine`).
45267
- software_project_id: uuid11.optional(),
45303
+ software_project_id: uuid12.optional(),
45268
45304
  project: external_exports.string().trim().min(1).max(200).optional(),
45269
45305
  // Untrusted display text (ADR-0018 §5) — bounded, never treated as an instruction.
45270
45306
  title: external_exports.string().trim().min(1).max(500),
@@ -45276,11 +45312,11 @@ var softwareRequestCreateInputSchema = external_exports.object({
45276
45312
  automation_mode: softwareAutomationModeSchema.optional()
45277
45313
  }).strict();
45278
45314
  var softwareRequestCreateOutputSchema = external_exports.object({
45279
- build_request_id: uuid11,
45280
- software_project_id: uuid11,
45315
+ build_request_id: uuid12,
45316
+ software_project_id: uuid12,
45281
45317
  status: softwareRequestStatusSchema,
45282
45318
  current_phase: softwarePhaseSchema,
45283
- phase_run_id: uuid11,
45319
+ phase_run_id: uuid12,
45284
45320
  scheduler_state: softwarePhaseSchedulerStateSchema
45285
45321
  });
45286
45322
  var softwareRequestListInputSchema = external_exports.object({
@@ -45290,7 +45326,7 @@ var softwareRequestListOutputSchema = external_exports.object({
45290
45326
  requests: external_exports.array(softwareBuildRequestSummarySchema)
45291
45327
  });
45292
45328
  var softwareRequestShowInputSchema = external_exports.object({
45293
- build_request_id: uuid11
45329
+ build_request_id: uuid12
45294
45330
  }).strict();
45295
45331
  var softwareRequestShowOutputSchema = external_exports.object({
45296
45332
  request: softwareBuildRequestSummarySchema,
@@ -45304,51 +45340,51 @@ var softwareRequestShowOutputSchema = external_exports.object({
45304
45340
  });
45305
45341
  var softwareRequestLifecycleReason = external_exports.string().trim().min(1).max(2e3);
45306
45342
  var softwareRequestPauseInputSchema = external_exports.object({
45307
- build_request_id: uuid11,
45343
+ build_request_id: uuid12,
45308
45344
  reason: softwareRequestLifecycleReason.optional()
45309
45345
  }).strict();
45310
45346
  var softwareRequestCancelInputSchema = external_exports.object({
45311
- build_request_id: uuid11,
45347
+ build_request_id: uuid12,
45312
45348
  reason: softwareRequestLifecycleReason.optional()
45313
45349
  }).strict();
45314
45350
  var softwareRequestResumeInputSchema = external_exports.object({
45315
- build_request_id: uuid11,
45351
+ build_request_id: uuid12,
45316
45352
  reason: softwareRequestLifecycleReason.optional(),
45317
45353
  termination_bound: softwareTerminationBoundSchema.optional()
45318
45354
  }).strict();
45319
45355
  var softwareRequestLifecycleOutputSchema = external_exports.object({
45320
- build_request_id: uuid11,
45356
+ build_request_id: uuid12,
45321
45357
  status: softwareRequestStatusSchema,
45322
45358
  current_phase: softwarePhaseSchema,
45323
- phase_run_id: uuid11.nullable(),
45324
- work_order_id: uuid11.nullable(),
45325
- resume_from_task_id: uuid11.nullable()
45359
+ phase_run_id: uuid12.nullable(),
45360
+ work_order_id: uuid12.nullable(),
45361
+ resume_from_task_id: uuid12.nullable()
45326
45362
  });
45327
45363
  var softwarePhaseAdvanceInputSchema = external_exports.object({
45328
- build_request_id: uuid11,
45364
+ build_request_id: uuid12,
45329
45365
  to_phase: softwarePhaseSchema,
45330
- owning_seat_id: uuid11.optional(),
45366
+ owning_seat_id: uuid12.optional(),
45331
45367
  note: external_exports.string().max(2e3).optional()
45332
45368
  }).strict();
45333
45369
  var softwarePhaseAdvanceOutputSchema = external_exports.object({
45334
- build_request_id: uuid11,
45370
+ build_request_id: uuid12,
45335
45371
  from_phase: softwarePhaseSchema,
45336
45372
  to_phase: softwarePhaseSchema,
45337
- phase_run_id: uuid11
45373
+ phase_run_id: uuid12
45338
45374
  });
45339
45375
  var softwareGateDecideInputSchema = external_exports.object({
45340
- gate_id: uuid11,
45376
+ gate_id: uuid12,
45341
45377
  decision: softwareGateDecisionSchema,
45342
45378
  rationale: external_exports.string().max(4e3).optional()
45343
45379
  }).strict();
45344
45380
  var softwareGateDecideOutputSchema = external_exports.object({
45345
- gate_id: uuid11,
45381
+ gate_id: uuid12,
45346
45382
  status: external_exports.enum(["approved", "rejected"]),
45347
- resolved_by_user_id: uuid11,
45348
- decision_id: uuid11.nullable()
45383
+ resolved_by_user_id: uuid12,
45384
+ decision_id: uuid12.nullable()
45349
45385
  });
45350
45386
  var softwareDispatchSerializeInputSchema = external_exports.object({
45351
- build_request_id: uuid11,
45387
+ build_request_id: uuid12,
45352
45388
  // The task that must run FIRST (the dependency target).
45353
45389
  before_task_key: external_exports.string().trim().min(1).max(200),
45354
45390
  // The task that gains the depends_on edge and runs AFTER `before_task_key`.
@@ -45359,45 +45395,45 @@ var softwareDispatchSerializeInputSchema = external_exports.object({
45359
45395
  path: ["after_task_key"]
45360
45396
  });
45361
45397
  var softwareDispatchSerializeOutputSchema = external_exports.object({
45362
- build_request_id: uuid11,
45398
+ build_request_id: uuid12,
45363
45399
  before_task_key: external_exports.string(),
45364
45400
  after_task_key: external_exports.string(),
45365
45401
  // false when the edge already existed (idempotent no-op) — still a valid, audited call.
45366
45402
  edge_added: external_exports.boolean(),
45367
- decision_id: uuid11.nullable(),
45368
- event_id: uuid11.nullable()
45403
+ decision_id: uuid12.nullable(),
45404
+ event_id: uuid12.nullable()
45369
45405
  }).strict();
45370
45406
  var forgeClarificationAnswer = external_exports.object({
45371
45407
  question: external_exports.string().trim().min(1).max(2e3),
45372
45408
  answer: external_exports.string().trim().min(1).max(4e3)
45373
45409
  }).strict();
45374
45410
  var softwareRequestAnswerClarificationInputSchema = external_exports.object({
45375
- build_request_id: uuid11,
45411
+ build_request_id: uuid12,
45376
45412
  answers: external_exports.array(forgeClarificationAnswer).min(1).max(50),
45377
45413
  // The planner marks the plan ready once its questions are resolved; the human/COS can
45378
45414
  // signal that here. Default false keeps the plan in needs_clarification.
45379
45415
  mark_ready_for_plan_review: external_exports.boolean().default(false)
45380
45416
  }).strict();
45381
45417
  var softwareRequestAnswerClarificationOutputSchema = external_exports.object({
45382
- build_request_id: uuid11,
45383
- plan_version_id: uuid11,
45418
+ build_request_id: uuid12,
45419
+ plan_version_id: uuid12,
45384
45420
  status: softwarePlanVersionStatusSchema,
45385
45421
  answered_count: external_exports.number().int()
45386
45422
  });
45387
45423
  var softwarePlanApproveInputSchema = external_exports.object({
45388
- build_request_id: uuid11,
45424
+ build_request_id: uuid12,
45389
45425
  rationale: external_exports.string().trim().min(1).max(4e3).optional()
45390
45426
  }).strict();
45391
45427
  var softwarePlanRejectInputSchema = external_exports.object({
45392
- build_request_id: uuid11,
45428
+ build_request_id: uuid12,
45393
45429
  // A rejection must say why (it routes the request back to discovery/scoping).
45394
45430
  rationale: external_exports.string().trim().min(1).max(4e3)
45395
45431
  }).strict();
45396
45432
  var softwarePlanDecisionOutputSchema = external_exports.object({
45397
- build_request_id: uuid11,
45398
- plan_version_id: uuid11,
45433
+ build_request_id: uuid12,
45434
+ plan_version_id: uuid12,
45399
45435
  status: external_exports.enum(["approved", "rejected"]),
45400
- decision_id: uuid11,
45436
+ decision_id: uuid12,
45401
45437
  current_phase: softwarePhaseSchema
45402
45438
  });
45403
45439
  var forgeConformanceFindingInput = external_exports.object({
@@ -45405,41 +45441,41 @@ var forgeConformanceFindingInput = external_exports.object({
45405
45441
  category: softwareConformanceCategorySchema.default("other"),
45406
45442
  summary: external_exports.string().trim().min(1).max(2e3),
45407
45443
  detail: external_exports.string().trim().min(1).max(8e3).optional(),
45408
- changeset_id: uuid11.optional(),
45409
- plan_version_id: uuid11.optional()
45444
+ changeset_id: uuid12.optional(),
45445
+ plan_version_id: uuid12.optional()
45410
45446
  }).strict();
45411
45447
  var softwareConformanceRecordFindingsInputSchema = external_exports.object({
45412
- build_request_id: uuid11,
45413
- phase_run_id: uuid11.optional(),
45448
+ build_request_id: uuid12,
45449
+ phase_run_id: uuid12.optional(),
45414
45450
  findings: external_exports.array(forgeConformanceFindingInput).min(1).max(50)
45415
45451
  }).strict();
45416
45452
  var softwareConformanceRecordFindingsOutputSchema = external_exports.object({
45417
- build_request_id: uuid11,
45453
+ build_request_id: uuid12,
45418
45454
  recorded_count: external_exports.number().int(),
45419
- finding_ids: external_exports.array(uuid11),
45455
+ finding_ids: external_exports.array(uuid12),
45420
45456
  open_finding_count: external_exports.number().int()
45421
45457
  }).strict();
45422
45458
  var softwareConformanceResolveFindingInputSchema = external_exports.object({
45423
- build_request_id: uuid11,
45424
- finding_ids: external_exports.array(uuid11).min(1).max(50),
45459
+ build_request_id: uuid12,
45460
+ finding_ids: external_exports.array(uuid12).min(1).max(50),
45425
45461
  // The re-review run that verified the fix — provenance only (rides into the append-only audit
45426
45462
  // event; the finding row's resolution state is the durable transition).
45427
- phase_run_id: uuid11.optional()
45463
+ phase_run_id: uuid12.optional()
45428
45464
  }).strict();
45429
45465
  var softwareConformanceResolveFindingOutputSchema = external_exports.object({
45430
- build_request_id: uuid11,
45466
+ build_request_id: uuid12,
45431
45467
  resolved_count: external_exports.number().int(),
45432
- resolved_finding_ids: external_exports.array(uuid11),
45468
+ resolved_finding_ids: external_exports.array(uuid12),
45433
45469
  open_finding_count: external_exports.number().int()
45434
45470
  }).strict();
45435
45471
  var softwareAuthorityProfileListInputSchema = external_exports.object({
45436
- software_project_id: uuid11.nullable().optional()
45472
+ software_project_id: uuid12.nullable().optional()
45437
45473
  }).strict();
45438
45474
  var softwareAuthorityProfileListOutputSchema = external_exports.object({
45439
45475
  profiles: external_exports.array(softwareAuthorityProfileSummarySchema)
45440
45476
  });
45441
45477
  var softwareAuthorityProfileCreateInputSchema = external_exports.object({
45442
- software_project_id: uuid11.nullable().optional(),
45478
+ software_project_id: uuid12.nullable().optional(),
45443
45479
  name: external_exports.string().trim().min(1).max(120),
45444
45480
  preset: softwareAuthorityPresetSchema.default("read_only"),
45445
45481
  // A closed capability map (booleans by capability key). Never derived from
@@ -45448,77 +45484,77 @@ var softwareAuthorityProfileCreateInputSchema = external_exports.object({
45448
45484
  is_default: external_exports.boolean().optional()
45449
45485
  }).strict();
45450
45486
  var softwareAuthorityProfileCreateOutputSchema = external_exports.object({
45451
- profile_id: uuid11,
45487
+ profile_id: uuid12,
45452
45488
  name: external_exports.string(),
45453
45489
  preset: softwareAuthorityPresetSchema
45454
45490
  });
45455
45491
  var softwareAuthorityGrantInputSchema = external_exports.object({
45456
- software_project_id: uuid11,
45457
- seat_id: uuid11,
45458
- authority_profile_id: uuid11
45492
+ software_project_id: uuid12,
45493
+ seat_id: uuid12,
45494
+ authority_profile_id: uuid12
45459
45495
  }).strict();
45460
45496
  var softwareAuthorityGrantOutputSchema = external_exports.object({
45461
- grant_id: uuid11,
45462
- software_project_id: uuid11,
45463
- seat_id: uuid11,
45464
- authority_profile_id: uuid11,
45497
+ grant_id: uuid12,
45498
+ software_project_id: uuid12,
45499
+ seat_id: uuid12,
45500
+ authority_profile_id: uuid12,
45465
45501
  status: softwareGrantStatusSchema
45466
45502
  });
45467
45503
  var softwareAuthorityRevokeInputSchema = external_exports.object({
45468
- grant_id: uuid11
45504
+ grant_id: uuid12
45469
45505
  }).strict();
45470
45506
  var softwareAuthorityRevokeOutputSchema = external_exports.object({
45471
- grant_id: uuid11,
45507
+ grant_id: uuid12,
45472
45508
  status: softwareGrantStatusSchema
45473
45509
  });
45474
45510
  var softwareSecretRequestInputSchema = external_exports.object({
45475
- software_project_id: uuid11,
45511
+ software_project_id: uuid12,
45476
45512
  environment: softwareEnvironmentSchema,
45477
- seat_id: uuid11,
45513
+ seat_id: uuid12,
45478
45514
  action: softwareSecretActionSchema,
45479
45515
  key_name: softwareSecretKeyNameSchema,
45480
45516
  reason: external_exports.string().max(2e3).optional()
45481
45517
  }).strict();
45482
45518
  var softwareSecretRequestOutputSchema = external_exports.object({
45483
45519
  requested: external_exports.literal(true),
45484
- credential_request_id: uuid11,
45485
- approval_task_id: uuid11,
45486
- software_project_id: uuid11,
45520
+ credential_request_id: uuid12,
45521
+ approval_task_id: uuid12,
45522
+ software_project_id: uuid12,
45487
45523
  environment: softwareEnvironmentSchema,
45488
- seat_id: uuid11,
45524
+ seat_id: uuid12,
45489
45525
  key_name: external_exports.string()
45490
45526
  });
45491
45527
  var softwareSecretGrantInputSchema = external_exports.object({
45492
- software_project_id: uuid11,
45528
+ software_project_id: uuid12,
45493
45529
  environment: softwareEnvironmentSchema,
45494
- seat_id: uuid11,
45530
+ seat_id: uuid12,
45495
45531
  action: softwareSecretActionSchema,
45496
45532
  key_name: softwareSecretKeyNameSchema,
45497
45533
  // POINTER only. The vault ref shape refinement rejects any raw-secret value.
45498
45534
  vault_ref: softwareVaultRefSchema
45499
45535
  }).strict();
45500
45536
  var softwareSecretGrantOutputSchema = external_exports.object({
45501
- grant_id: uuid11,
45537
+ grant_id: uuid12,
45502
45538
  key_name: external_exports.string(),
45503
45539
  environment: softwareEnvironmentSchema,
45504
45540
  status: softwareGrantStatusSchema
45505
45541
  });
45506
45542
  var softwareSecretRevokeInputSchema = external_exports.object({
45507
- grant_id: uuid11
45543
+ grant_id: uuid12
45508
45544
  }).strict();
45509
45545
  var softwareSecretRevokeOutputSchema = external_exports.object({
45510
- grant_id: uuid11,
45546
+ grant_id: uuid12,
45511
45547
  status: softwareGrantStatusSchema
45512
45548
  });
45513
45549
  var softwareConfigListInputSchema = external_exports.object({
45514
- software_project_id: uuid11.nullable().optional(),
45550
+ software_project_id: uuid12.nullable().optional(),
45515
45551
  environment: softwareEnvironmentSchema.nullable().optional()
45516
45552
  }).strict();
45517
45553
  var softwareConfigListOutputSchema = external_exports.object({
45518
45554
  entries: external_exports.array(softwareConfigEntrySummarySchema)
45519
45555
  });
45520
45556
  var softwareConfigSetInputSchema = external_exports.object({
45521
- software_project_id: uuid11,
45557
+ software_project_id: uuid12,
45522
45558
  environment: softwareEnvironmentSchema,
45523
45559
  key_name: softwareSecretKeyNameSchema,
45524
45560
  value_kind: softwareConfigValueKindSchema,
@@ -45538,24 +45574,24 @@ var softwareConfigSetInputSchema = external_exports.object({
45538
45574
  }
45539
45575
  });
45540
45576
  var softwareConfigSetOutputSchema = external_exports.object({
45541
- config_entry_id: uuid11,
45542
- software_project_id: uuid11,
45577
+ config_entry_id: uuid12,
45578
+ software_project_id: uuid12,
45543
45579
  environment: softwareEnvironmentSchema,
45544
45580
  key_name: external_exports.string(),
45545
45581
  value_kind: softwareConfigValueKindSchema,
45546
45582
  has_secret_ref: external_exports.boolean()
45547
45583
  });
45548
45584
  var softwareSecretRequestListInputSchema = external_exports.object({
45549
- software_project_id: uuid11.nullable().optional(),
45585
+ software_project_id: uuid12.nullable().optional(),
45550
45586
  status: softwareCredentialRequestStatusSchema.nullable().optional()
45551
45587
  }).strict();
45552
45588
  var softwareSecretRequestListOutputSchema = external_exports.object({
45553
45589
  requests: external_exports.array(softwareCredentialRequestSummarySchema)
45554
45590
  });
45555
45591
  var softwareSecretUseInputSchema = external_exports.object({
45556
- software_project_id: uuid11,
45592
+ software_project_id: uuid12,
45557
45593
  environment: softwareEnvironmentSchema,
45558
- seat_id: uuid11,
45594
+ seat_id: uuid12,
45559
45595
  action: softwareSecretActionSchema,
45560
45596
  key_name: softwareSecretKeyNameSchema,
45561
45597
  operation: softwareSecretAccessOperationSchema.default("use")
@@ -45566,12 +45602,12 @@ var softwareSecretUseOutputSchema = external_exports.object({
45566
45602
  key_name: external_exports.string(),
45567
45603
  environment: softwareEnvironmentSchema,
45568
45604
  operation: softwareSecretAccessOperationSchema,
45569
- access_log_id: uuid11,
45570
- missing_request_id: uuid11.nullable(),
45605
+ access_log_id: uuid12,
45606
+ missing_request_id: uuid12.nullable(),
45571
45607
  redacted_summary: external_exports.record(external_exports.string(), external_exports.unknown())
45572
45608
  });
45573
45609
  var softwareCapacityListInputSchema = external_exports.object({
45574
- runner_id: uuid11.nullable().optional(),
45610
+ runner_id: uuid12.nullable().optional(),
45575
45611
  limit: external_exports.number().int().positive().max(200).optional()
45576
45612
  }).strict();
45577
45613
  var softwareCapacityListOutputSchema = external_exports.object({
@@ -45626,9 +45662,9 @@ var forgeTrustedControlSchema = external_exports.object({
45626
45662
  automation_mode: softwareAutomationModeSchema,
45627
45663
  inferred_risk: softwareRiskLevelSchema,
45628
45664
  risk_ceiling: softwareRiskLevelSchema.nullable().default(null),
45629
- authority_profile_ids: external_exports.array(uuid11).max(50).default([]),
45665
+ authority_profile_ids: external_exports.array(uuid12).max(50).default([]),
45630
45666
  active_secret_grant_count: external_exports.number().int().nonnegative().max(1e3).default(0),
45631
- pending_gate_ids: external_exports.array(uuid11).max(50).default([])
45667
+ pending_gate_ids: external_exports.array(uuid12).max(50).default([])
45632
45668
  }).strict();
45633
45669
  var forgeSeatSkillSchema = external_exports.object({
45634
45670
  slug: external_exports.string().trim().min(1).max(200),
@@ -45637,9 +45673,9 @@ var forgeSeatSkillSchema = external_exports.object({
45637
45673
  }).strict();
45638
45674
  var forgeRuntimeContextPacketSchema = external_exports.object({
45639
45675
  schema_version: external_exports.literal(1),
45640
- phase_run_id: uuid11,
45641
- build_request_id: uuid11,
45642
- software_project_id: uuid11,
45676
+ phase_run_id: uuid12,
45677
+ build_request_id: uuid12,
45678
+ software_project_id: uuid12,
45643
45679
  phase: softwarePhaseSchema,
45644
45680
  request_status: softwareRequestStatusSchema,
45645
45681
  project: external_exports.object({
@@ -45648,7 +45684,7 @@ var forgeRuntimeContextPacketSchema = external_exports.object({
45648
45684
  }).strict(),
45649
45685
  scheduler: external_exports.object({
45650
45686
  lease_model: external_exports.literal("work_order_claim_heartbeat"),
45651
- runner_id: uuid11,
45687
+ runner_id: uuid12,
45652
45688
  max_runner_sessions: external_exports.number().int().positive().max(8),
45653
45689
  model_account_state: external_exports.string().min(1).max(80),
45654
45690
  account_alias: external_exports.string().min(1).max(200).nullable()
@@ -45732,7 +45768,7 @@ var runnerTurnReportSchema = external_exports.object({
45732
45768
  var softwareDeveloperTeamInstallInputSchema = external_exports.object({
45733
45769
  // The human-accountable steward seat for the installed team. Agent seats created
45734
45770
  // by the template chain through this seat so no agent occupancy can be orphaned.
45735
- steward_seat_id: uuid11,
45771
+ steward_seat_id: uuid12,
45736
45772
  // Optional project scope for authority grants. Authority profile presets are
45737
45773
  // installed tenant-wide either way; grants are project-scoped only when supplied.
45738
45774
  // DER-1241: `.nullable()` too — this command is human-confirmed, so its input is
@@ -45740,7 +45776,7 @@ var softwareDeveloperTeamInstallInputSchema = external_exports.object({
45740
45776
  // replay; an empty project round-trips as JSON `null`, which a bare `.optional()`
45741
45777
  // rejects (→ "Command input failed schema validation"). Matches the sibling
45742
45778
  // software-factory schemas that already use `.nullable().optional()`.
45743
- software_project_id: uuid11.nullable().optional(),
45779
+ software_project_id: uuid12.nullable().optional(),
45744
45780
  assign_skills: external_exports.boolean().default(true),
45745
45781
  // DER-1264: the install auto-staffs live agents at a pr_only, observe-first
45746
45782
  // posture. If the tenant's company autonomy ceiling (`agent_policy`) is MORE
@@ -45760,34 +45796,34 @@ var softwareDeveloperTeamInstallInputSchema = external_exports.object({
45760
45796
  }).strict();
45761
45797
  var softwareDeveloperTeamSeatSummarySchema = external_exports.object({
45762
45798
  role: softwareDeveloperTeamRoleSchema,
45763
- seat_id: uuid11,
45799
+ seat_id: uuid12,
45764
45800
  name: external_exports.string(),
45765
- charter_version_id: uuid11,
45801
+ charter_version_id: uuid12,
45766
45802
  created: external_exports.boolean()
45767
45803
  });
45768
45804
  var softwareDeveloperTeamSkillSummarySchema = external_exports.object({
45769
45805
  slug: external_exports.string(),
45770
- skill_id: uuid11,
45771
- skill_version_id: uuid11,
45772
- assigned_seat_ids: external_exports.array(uuid11)
45806
+ skill_id: uuid12,
45807
+ skill_version_id: uuid12,
45808
+ assigned_seat_ids: external_exports.array(uuid12)
45773
45809
  });
45774
45810
  var softwareDeveloperTeamAuthorityProfileSummarySchema = external_exports.object({
45775
45811
  preset: softwareAuthorityPresetSchema,
45776
- profile_id: uuid11,
45812
+ profile_id: uuid12,
45777
45813
  name: external_exports.string()
45778
45814
  });
45779
45815
  var softwareDeveloperTeamAuthorityGrantSummarySchema = external_exports.object({
45780
45816
  role: softwareDeveloperTeamRoleSchema,
45781
- software_project_id: uuid11,
45782
- seat_id: uuid11,
45783
- authority_profile_id: uuid11,
45784
- grant_id: uuid11,
45817
+ software_project_id: uuid12,
45818
+ seat_id: uuid12,
45819
+ authority_profile_id: uuid12,
45820
+ grant_id: uuid12,
45785
45821
  created: external_exports.boolean()
45786
45822
  });
45787
45823
  var softwareDeveloperTeamOccupancySummarySchema = external_exports.object({
45788
45824
  role: softwareDeveloperTeamRoleSchema,
45789
- seat_id: uuid11,
45790
- agent_id: uuid11,
45825
+ seat_id: uuid12,
45826
+ agent_id: uuid12,
45791
45827
  template_slug: external_exports.string(),
45792
45828
  status: external_exports.literal("live"),
45793
45829
  // false when a live agent already occupied the seat (idempotent re-install).
@@ -45807,7 +45843,7 @@ var softwareDeveloperTeamTokenBudgetSummarySchema = external_exports.object({
45807
45843
  set_by_install: external_exports.boolean()
45808
45844
  });
45809
45845
  var softwareDeveloperTeamGithubPolicySummarySchema = external_exports.object({
45810
- software_project_id: uuid11,
45846
+ software_project_id: uuid12,
45811
45847
  automation_mode_ceiling: softwareAutomationModeSchema,
45812
45848
  // false when a pre-existing policy was preserved (not created by this install).
45813
45849
  created: external_exports.boolean()
@@ -45835,8 +45871,8 @@ var softwareDeveloperTeamUninstallInputSchema = external_exports.object({
45835
45871
  }).strict();
45836
45872
  var softwareDeveloperTeamDecommissionedAgentSchema = external_exports.object({
45837
45873
  role: softwareDeveloperTeamRoleSchema.nullable(),
45838
- seat_id: uuid11,
45839
- agent_id: uuid11
45874
+ seat_id: uuid12,
45875
+ agent_id: uuid12
45840
45876
  });
45841
45877
  var softwareDeveloperTeamUninstallOutputSchema = external_exports.object({
45842
45878
  torn_down: external_exports.boolean(),
@@ -45986,8 +46022,8 @@ var forgeMemoryDraftArtifact = external_exports.object({
45986
46022
  follow_up_items: forgeArtifactList
45987
46023
  }).strict();
45988
46024
  var softwareGithubAutomationPolicyInputSchema = external_exports.object({
45989
- software_project_id: uuid11,
45990
- authority_profile_id: uuid11.nullable().optional(),
46025
+ software_project_id: uuid12,
46026
+ authority_profile_id: uuid12.nullable().optional(),
45991
46027
  automation_mode_ceiling: softwareAutomationModeSchema.default("plan_only"),
45992
46028
  allowed_actions: external_exports.array(softwareGithubActionSchema).max(20),
45993
46029
  // DER-1233: the element schema is a single FLATTENED enum (the union of the
@@ -46023,12 +46059,12 @@ var softwareGithubInstallationConnectInputSchema = external_exports.object({
46023
46059
  repositories: external_exports.array(softwareGithubConnectedRepositoryInputSchema).min(1).max(200)
46024
46060
  }).strict();
46025
46061
  var softwareGithubInstallationConnectOutputSchema = external_exports.object({
46026
- github_installation_id: uuid11,
46062
+ github_installation_id: uuid12,
46027
46063
  repositories_connected: external_exports.number().int().nonnegative()
46028
46064
  });
46029
46065
  var softwareGithubRepositoryBindMappingSchema = external_exports.object({
46030
46066
  repository_id: external_exports.number().int().positive(),
46031
- software_project_id: uuid11
46067
+ software_project_id: uuid12
46032
46068
  }).strict();
46033
46069
  var softwareGithubInstallationBindInputSchema = external_exports.object({
46034
46070
  app_slug: external_exports.string().trim().min(1).max(120).default("rost-forge"),
@@ -46036,7 +46072,7 @@ var softwareGithubInstallationBindInputSchema = external_exports.object({
46036
46072
  bindings: external_exports.array(softwareGithubRepositoryBindMappingSchema).min(1).max(100)
46037
46073
  }).strict();
46038
46074
  var softwareGithubInstallationBindOutputSchema = external_exports.object({
46039
- github_installation_id: uuid11,
46075
+ github_installation_id: uuid12,
46040
46076
  repositories_bound: external_exports.number().int().nonnegative()
46041
46077
  });
46042
46078
  var softwareGithubRepositoryUnbindInputSchema = external_exports.object({
@@ -46057,12 +46093,12 @@ var softwareGithubInstallationRepositoryViewSchema = external_exports.object({
46057
46093
  private: external_exports.boolean(),
46058
46094
  default_branch: external_exports.string(),
46059
46095
  status: external_exports.enum(["connected", "active"]),
46060
- software_project_id: uuid11.nullable(),
46096
+ software_project_id: uuid12.nullable(),
46061
46097
  software_project_name: external_exports.string().nullable(),
46062
46098
  software_project_slug: external_exports.string().nullable()
46063
46099
  });
46064
46100
  var softwareGithubInstallationViewSchema = external_exports.object({
46065
- id: uuid11,
46101
+ id: uuid12,
46066
46102
  installation_id: external_exports.number().int().positive(),
46067
46103
  account_login: external_exports.string(),
46068
46104
  account_id: external_exports.number().int().positive(),
@@ -46074,17 +46110,17 @@ var softwareGithubInstallationListOutputSchema = external_exports.object({
46074
46110
  installations: external_exports.array(softwareGithubInstallationViewSchema)
46075
46111
  });
46076
46112
  var softwareGithubAutomationPolicyUpsertOutputSchema = external_exports.object({
46077
- policy_id: uuid11,
46078
- software_project_id: uuid11,
46113
+ policy_id: uuid12,
46114
+ software_project_id: uuid12,
46079
46115
  automation_mode_ceiling: softwareAutomationModeSchema,
46080
46116
  max_risk: softwareRiskLevelSchema.nullable()
46081
46117
  });
46082
46118
  var softwareGithubInstallationTokenCreateInputSchema = external_exports.object({
46083
- software_project_id: uuid11,
46119
+ software_project_id: uuid12,
46084
46120
  repository_id: external_exports.number().int().positive(),
46085
46121
  requested_actions: external_exports.array(softwareGithubActionSchema).min(1).max(20),
46086
46122
  requested_automation_mode: softwareAutomationModeSchema.default("plan_only"),
46087
- seat_id: uuid11.optional()
46123
+ seat_id: uuid12.optional()
46088
46124
  }).strict();
46089
46125
  var softwareGithubInstallationTokenCreateOutputSchema = external_exports.object({
46090
46126
  installation_id: external_exports.number().int().positive(),
@@ -46121,13 +46157,13 @@ var softwareVercelConnectionConnectInputSchema = external_exports.object({
46121
46157
  scopes: external_exports.array(external_exports.string().trim().min(1).max(120)).max(40).default([])
46122
46158
  }).strict();
46123
46159
  var softwareVercelConnectionConnectOutputSchema = external_exports.object({
46124
- vercel_connection_id: uuid11,
46160
+ vercel_connection_id: uuid12,
46125
46161
  account_id: external_exports.string(),
46126
46162
  team_id: external_exports.string().nullable()
46127
46163
  });
46128
46164
  var softwareVercelProjectLinkInputSchema = external_exports.object({
46129
- software_project_id: uuid11,
46130
- vercel_connection_id: uuid11,
46165
+ software_project_id: uuid12,
46166
+ vercel_connection_id: uuid12,
46131
46167
  vercel_project_id: external_exports.string().trim().min(1).max(200),
46132
46168
  vercel_project_name: external_exports.string().trim().min(1).max(255),
46133
46169
  framework: external_exports.string().trim().min(1).max(120).nullable().optional(),
@@ -46136,12 +46172,12 @@ var softwareVercelProjectLinkInputSchema = external_exports.object({
46136
46172
  git_repository: external_exports.record(external_exports.string().min(1), external_exports.unknown()).default({})
46137
46173
  }).strict();
46138
46174
  var softwareVercelProjectLinkOutputSchema = external_exports.object({
46139
- vercel_project_link_id: uuid11,
46140
- software_project_id: uuid11,
46175
+ vercel_project_link_id: uuid12,
46176
+ software_project_id: uuid12,
46141
46177
  vercel_project_id: external_exports.string()
46142
46178
  });
46143
46179
  var softwareVercelConnectionViewSchema = external_exports.object({
46144
- id: uuid11,
46180
+ id: uuid12,
46145
46181
  account_id: external_exports.string(),
46146
46182
  account_name: external_exports.string().nullable(),
46147
46183
  team_id: external_exports.string().nullable(),
@@ -46152,11 +46188,11 @@ var softwareVercelConnectionViewSchema = external_exports.object({
46152
46188
  connected_at: external_exports.string()
46153
46189
  });
46154
46190
  var softwareVercelProjectLinkViewSchema = external_exports.object({
46155
- id: uuid11,
46156
- software_project_id: uuid11,
46191
+ id: uuid12,
46192
+ software_project_id: uuid12,
46157
46193
  software_project_name: external_exports.string(),
46158
46194
  software_project_slug: external_exports.string(),
46159
- vercel_connection_id: uuid11,
46195
+ vercel_connection_id: uuid12,
46160
46196
  vercel_project_id: external_exports.string(),
46161
46197
  vercel_project_name: external_exports.string(),
46162
46198
  framework: external_exports.string().nullable(),
@@ -46170,16 +46206,16 @@ var softwareVercelProjectListOutputSchema = external_exports.object({
46170
46206
  project_links: external_exports.array(softwareVercelProjectLinkViewSchema)
46171
46207
  });
46172
46208
  var softwareVercelDeployPreviewInputSchema = external_exports.object({
46173
- software_project_id: uuid11,
46209
+ software_project_id: uuid12,
46174
46210
  commit_sha: external_exports.string().trim().regex(/^[A-Fa-f0-9]{7,64}$/),
46175
46211
  git_ref: external_exports.string().trim().min(1).max(255),
46176
- build_request_id: uuid11.optional(),
46177
- phase_run_id: uuid11.optional(),
46178
- seat_id: uuid11.optional(),
46212
+ build_request_id: uuid12.optional(),
46213
+ phase_run_id: uuid12.optional(),
46214
+ seat_id: uuid12.optional(),
46179
46215
  required_secret_keys: external_exports.array(external_exports.string().trim().min(1).max(200)).max(25).default([])
46180
46216
  }).strict();
46181
46217
  var softwareVercelDeployPreviewOutputSchema = external_exports.object({
46182
- vercel_deployment_record_id: uuid11,
46218
+ vercel_deployment_record_id: uuid12,
46183
46219
  deployment_id: external_exports.string(),
46184
46220
  deployment_url: external_exports.string().nullable(),
46185
46221
  commit_sha: external_exports.string(),
@@ -46187,18 +46223,18 @@ var softwareVercelDeployPreviewOutputSchema = external_exports.object({
46187
46223
  });
46188
46224
 
46189
46225
  // ../../packages/protocol/src/software-factory-events.ts
46190
- var uuid12 = external_exports.string().uuid();
46226
+ var uuid13 = external_exports.string().uuid();
46191
46227
  var softwareFactoryPhaseRunCompletedEventSchema = external_exports.object({
46192
- tenantId: uuid12,
46193
- phaseRunId: uuid12,
46194
- buildRequestId: uuid12.nullish(),
46228
+ tenantId: uuid13,
46229
+ phaseRunId: uuid13,
46230
+ buildRequestId: uuid13.nullish(),
46195
46231
  status: external_exports.enum(["passed", "failed"]),
46196
46232
  idempotencyKey: external_exports.string().min(1).optional()
46197
46233
  }).strict();
46198
46234
  var softwareFactoryBudgetExhaustedEventSchema = external_exports.object({
46199
- tenantId: uuid12,
46200
- phaseRunId: uuid12,
46201
- buildRequestId: uuid12,
46235
+ tenantId: uuid13,
46236
+ phaseRunId: uuid13,
46237
+ buildRequestId: uuid13,
46202
46238
  reason: external_exports.string().min(1),
46203
46239
  idempotencyKey: external_exports.string().min(1).optional()
46204
46240
  }).strict();
@@ -48388,7 +48424,7 @@ External connectors are being rolled out provider by provider, conservatively (r
48388
48424
  order: 48,
48389
48425
  title: "CLI and MCP installation guide",
48390
48426
  summary: "Install the public CLI, register remote token-backed MCP clients, and find the full command and tool catalog.",
48391
- version: "2026-07-16.8",
48427
+ version: "2026-07-16.9",
48392
48428
  public: true,
48393
48429
  audiences: ["human", "cli", "mcp", "in_app_agent"],
48394
48430
  stages: ["company_setup", "staffing"],
@@ -49232,6 +49268,7 @@ Seat-scoped MCP tokens expose the operating protocol below. The server still che
49232
49268
  | \`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). |
49233
49269
  | \`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>"}]}\`. |
49234
49270
  | \`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>"]}\`. |
49271
+ | \`rost_decide_a_conversational_gate\` | \`gate.decide\` | A seat agent DRAFTS a conversational gate approval bound to an artifact digest; the call stages a pending confirmation and a human owner/admin CONFIRMS it via /approvals (invariant #7 \u2014 an agent drafts, never self-decides). A stale artifact digest (the artifact changed since the gate was drafted) re-blocks and refuses. | Seat (draft; owner/admin decides) | Call with \`{"subject_kind":"artifact","subject_id":"<id>","artifact_ref":{"href":"<url>","label":"<label>"},"artifact_digest":"sha256:<digest>","decision":"approve","ask":"Ship it?","consequence":"Unblocks implementation."}\`; the seat-agent caller receives a confirmation handoff and the owner/admin decides. |
49235
49272
 
49236
49273
  ### MCP operation resources
49237
49274
 
@@ -52520,6 +52557,7 @@ var COMMAND_MANIFEST = [
52520
52557
  { "id": "friction.resolve", "namespace": "friction", "action": "resolve", "title": "Resolve Friction issue", "description": 'Resolve an issue with a root cause. In the default "ids" resolution_mode this also creates a remediation follow-up task; "already_fixed" records only the root cause (no follow-up task). Always records a human decision (decided_by) in the same transaction.', "requiredScope": "tenant_admin", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "issue_id", "flag": "issue-id", "type": "string", "required": true }, { "name": "resolution_mode", "flag": "resolution-mode", "type": "enum", "required": false, "enumValues": ["ids", "already_fixed"] }, { "name": "root_cause", "flag": "root-cause", "type": "string", "required": true }, { "name": "owner_seat_id", "flag": "owner-seat-id", "type": "string", "required": false }, { "name": "task_title", "flag": "task-title", "type": "string", "required": false }, { "name": "task_description", "flag": "task-description", "type": "string", "required": false }, { "name": "done_by", "flag": "done-by", "type": "string", "required": false }, { "name": "resolving_seat_id", "flag": "resolving-seat-id", "type": "string", "required": false }], "hasComplexInput": false, "help": "Resolve an issue with a root cause and remediation task; resolution is a human decision." },
52521
52558
  { "id": "friction.stale_candidates", "namespace": "friction", "action": "stale_candidates", "title": "Find stale friction", "description": "List open or diagnosing Friction issues whose linked remediation task has already shipped, making them high-confidence candidates for bulk resolution, with per-row evidence. Read-only \u2014 it never resolves anything.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "stale_after_days", "flag": "stale-after-days", "type": "integer", "required": false }, { "name": "limit", "flag": "limit", "type": "integer", "required": false }], "hasComplexInput": false, "help": "List open or diagnosing issues whose remediation task already shipped \u2014 high-confidence candidates for a bulk close-the-loop pass. Read-only." },
52522
52559
  { "id": "friction.update_status", "namespace": "friction", "action": "update_status", "title": "Update Friction issue status", "description": "Move a non-terminal issue between open and diagnosing. Terminal issues (resolved/dropped) cannot be reopened here.", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "issue_id", "flag": "issue-id", "type": "string", "required": true }, { "name": "status", "flag": "status", "type": "enum", "required": true, "enumValues": ["open", "diagnosing"] }], "hasComplexInput": false, "help": "Move a non-terminal issue between open and diagnosing while it is being worked." },
52560
+ { "id": "gate.decide", "namespace": "gate", "action": "decide", "title": "Decide a conversational gate", "description": "A human approves or rejects a conversational gate bound to an artifact digest (a prototype URL, deliverable, or artifact). The agent drafts the decision and the human confirms it; the resolver is always a human (invariant #7). On approval the artifact must be unchanged since the gate was drafted \u2014 a stale digest re-blocks. Requires confirmation.", "requiredScope": "tenant", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "subject_kind", "flag": "subject-kind", "type": "enum", "required": true, "enumValues": ["prototype", "deliverable", "artifact"] }, { "name": "subject_id", "flag": "subject-id", "type": "string", "required": true }, { "name": "artifact_digest", "flag": "artifact-digest", "type": "string", "required": true }, { "name": "decision", "flag": "decision", "type": "enum", "required": true, "enumValues": ["approve", "reject"] }, { "name": "ask", "flag": "ask", "type": "string", "required": true }, { "name": "consequence", "flag": "consequence", "type": "string", "required": true }, { "name": "unblocked_targets", "flag": "unblocked-targets", "type": "array", "required": false, "itemType": "string" }, { "name": "rationale", "flag": "rationale", "type": "string", "required": false }], "hasComplexInput": true, "help": "A human approves or rejects a conversational gate bound to an artifact digest; the agent drafts, the human confirms (invariant #7)." },
52523
52561
  { "id": "goal.bind_measurable", "namespace": "goal", "action": "bind_measurable", "title": "Bind a Signal to a Cascade goal", "description": "Bind a measurable to a goal. Role defaults to 'informs' \u2014 a conservative informative indicator allowed at any goal level (many per goal) that never changes goal status. Role 'drives_status' makes it the goal's status driver: allowed only on a childless seat goal or milestone, at most one per goal, requires a second_anchor (a prior closed period + expected value confirming the Signal matched the books), and auto-status starts OFF until a steward opts in with goal.set_auto_status. Binding a driver over an existing informs binding of the same Signal promotes it. Binding is human-gated.", "requiredScope": "seat", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "goal_id", "flag": "goal-id", "type": "string", "required": true }, { "name": "measurable_id", "flag": "measurable-id", "type": "string", "required": true }, { "name": "role", "flag": "role", "type": "enum", "required": false, "enumValues": ["drives_status", "informs"] }], "hasComplexInput": true, "help": "Bind a Signal to a goal. Defaults to role informs (a conservative indicator at any level that never changes status); pass role drives_status with a second_anchor (a prior closed period + expected value confirming the Signal matched the books) to make it a childless leaf goal's status driver \u2014 this promotes an existing informs binding (auto-status starts OFF until a steward opts in)." },
52524
52562
  { "id": "goal.create", "namespace": "goal", "action": "create", "title": "Create Cascade goal", "description": "Create a cycle goal under an existing objective. The parent chain must terminate at a Compass objective in the same cycle (enforced server-side).", "requiredScope": "tenant", "confirmation": "none", "exposeOverMcp": true, "fields": [{ "name": "cycle_id", "flag": "cycle-id", "type": "string", "required": true }, { "name": "seat_id", "flag": "seat-id", "type": "string", "required": true }, { "name": "parent_goal_id", "flag": "parent-goal-id", "type": "string", "required": true }, { "name": "title", "flag": "title", "type": "string", "required": true }, { "name": "definition_of_done", "flag": "definition-of-done", "type": "string", "required": true }, { "name": "status", "flag": "status", "type": "enum", "required": false, "enumValues": ["on", "off"] }], "hasComplexInput": false, "help": "Create cycle goals under an existing objective; the parent chain must terminate at a Compass objective." },
52525
52563
  { "id": "goal.drop", "namespace": "goal", "action": "drop", "title": "Drop Cascade goal", "description": "Drop (retire) a goal by setting status to dropped. Dropping retires the commitment, so it is human-gated. The row is retained for audit (never deleted).", "requiredScope": "tenant_admin", "confirmation": "human_required", "exposeOverMcp": true, "fields": [{ "name": "goal_id", "flag": "goal-id", "type": "string", "required": true }], "hasComplexInput": false, "help": "Drop a goal to retire a commitment; the goal is retained for audit and dropping is human-gated." },