@farmslot/protocol 0.46.0 → 0.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/dist/contracts/recipe-conformance.d.ts +15 -1
  3. package/dist/contracts/recipe-conformance.d.ts.map +1 -1
  4. package/dist/contracts/recipe-conformance.js +88 -0
  5. package/dist/contracts/recipe-conformance.js.map +1 -1
  6. package/dist/contracts/run-bundles.d.ts +24 -0
  7. package/dist/contracts/run-bundles.d.ts.map +1 -1
  8. package/dist/contracts/run-bundles.js +11 -0
  9. package/dist/contracts/run-bundles.js.map +1 -1
  10. package/dist/contracts/run-lifecycle-view.d.ts +2 -0
  11. package/dist/contracts/run-lifecycle-view.d.ts.map +1 -1
  12. package/dist/contracts/run-lifecycle-view.js +5 -3
  13. package/dist/contracts/run-lifecycle-view.js.map +1 -1
  14. package/dist/contracts/runs.d.ts +38 -2
  15. package/dist/contracts/runs.d.ts.map +1 -1
  16. package/dist/contracts/runs.js.map +1 -1
  17. package/dist/recipe/claim-overrides.d.ts.map +1 -1
  18. package/dist/recipe/claim-overrides.js +1 -0
  19. package/dist/recipe/claim-overrides.js.map +1 -1
  20. package/dist/recipes/step-io.d.ts +6 -0
  21. package/dist/recipes/step-io.d.ts.map +1 -1
  22. package/dist/recipes/step-io.js +6 -0
  23. package/dist/recipes/step-io.js.map +1 -1
  24. package/dist/rpc/registry.d.ts +2 -0
  25. package/dist/rpc/registry.d.ts.map +1 -1
  26. package/dist/rpc/registry.js +2 -0
  27. package/dist/rpc/registry.js.map +1 -1
  28. package/dist/rpc/run.d.ts +18 -1
  29. package/dist/rpc/run.d.ts.map +1 -1
  30. package/dist/rpc/run.js +1 -0
  31. package/dist/rpc/run.js.map +1 -1
  32. package/dist/runs/review-retries.d.ts +2 -2
  33. package/dist/runs/review-retries.d.ts.map +1 -1
  34. package/dist/runs/review-retries.js +17 -6
  35. package/dist/runs/review-retries.js.map +1 -1
  36. package/dist/transport/signal.d.ts +12 -0
  37. package/dist/transport/signal.d.ts.map +1 -1
  38. package/dist/transport/signal.js.map +1 -1
  39. package/dist/version.d.ts +1 -1
  40. package/dist/version.js +1 -1
  41. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -4,7 +4,15 @@ All notable changes to `@farmslot/protocol` are tracked here.
4
4
 
5
5
  ## Unreleased
6
6
 
7
- - Active-development baseline; add user-facing changes here before release or package publication.
7
+ ## 0.48.0 - 2026-10-15
8
+
9
+ - Describe validated operator waits and their shared run activity label without changing run status.
10
+ - Add gateway-retained artifact references and the run.bundle.retain recovery contract; artifact links preserve their capture digest and availability.
11
+
12
+ ## 0.47.0 - 2026-10-15
13
+
14
+ - Expose scoped review-budget grants and the effective review limit.
15
+ - Declare initial resource proof modes in selected templates and share read-only admission with stored-plan precedence.
8
16
 
9
17
  ## 0.46.0 - 2026-10-15
10
18
 
@@ -1,5 +1,5 @@
1
1
  import type { RecipeExecutionPlan } from '../recipe/index.js';
2
- import type { RuntimeCapabilityCatalogEntry } from './runtime-capabilities.js';
2
+ import { type RuntimeCapabilityCatalogEntry, type RuntimeCapabilityProofPlan, type RuntimeCapabilityProofRequirement } from './runtime-capabilities.js';
3
3
  export interface RecipeConformanceSource {
4
4
  head: string | null;
5
5
  status: string;
@@ -99,6 +99,17 @@ export interface RecipeFlowRequirements {
99
99
  capture: boolean;
100
100
  hud: boolean;
101
101
  resources: string[];
102
+ proofRequirements: RuntimeCapabilityProofRequirement[];
103
+ }
104
+ export interface RecipeProofRequirementResolution {
105
+ requirements: RuntimeCapabilityProofRequirement[];
106
+ missingRequirements: string[];
107
+ diagnostics: string[];
108
+ }
109
+ export interface RecipeProofRequirementInput {
110
+ required: Pick<RecipeFlowRequirements, 'resources' | 'proofRequirements'>;
111
+ owner?: Pick<RuntimeCapabilityProofPlan, 'ownerRunId' | 'slotId'>;
112
+ plan?: RuntimeCapabilityProofPlan;
102
113
  }
103
114
  export interface RecipeProjectCompatibility {
104
115
  scope: RecipeConformanceScope;
@@ -118,6 +129,8 @@ export interface RecipeProjectCompatibility {
118
129
  export declare function conformanceChecksPass(checks: readonly RecipeConformanceCheck[], mode?: RecipeConformanceReport['mode']): boolean;
119
130
  /** Read requirements from the entry the canonical template selector already chose. */
120
131
  export declare function recipeFlowRequirements(metadata: Readonly<Record<string, unknown>> | null): RecipeFlowRequirements;
132
+ /** Pure declaration/stored-plan precedence, shared by admission and owned acquisition. */
133
+ export declare function resolveRecipeProofRequirements(input: RecipeProofRequirementInput): RecipeProofRequirementResolution;
121
134
  /** The caller must revalidate report identities and retained artifacts on the slot first. */
122
135
  export declare function recipeProjectCompatibility(input: {
123
136
  scope: RecipeConformanceScope;
@@ -125,5 +138,6 @@ export declare function recipeProjectCompatibility(input: {
125
138
  required: RecipeFlowRequirements;
126
139
  report?: RecipeConformanceReport;
127
140
  resources: readonly RuntimeCapabilityCatalogEntry[];
141
+ proof?: RecipeProofRequirementResolution;
128
142
  }): RecipeProjectCompatibility;
129
143
  //# sourceMappingURL=recipe-conformance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"recipe-conformance.d.ts","sourceRoot":"","sources":["../../src/contracts/recipe-conformance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recipe-conformance.d.ts","sourceRoot":"","sources":["../../src/contracts/recipe-conformance.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { isRuntimeCapabilityProofMode, } from './runtime-capabilities.js';
1
2
  /** Missing, skipped and unsupported checks never establish conformance. */
2
3
  export function conformanceChecksPass(checks, mode = 'static') {
3
4
  const required = checks.filter((check) => check.required);
@@ -60,7 +61,25 @@ export function recipeFlowRequirements(metadata) {
60
61
  capture: flag('recipe_capture'),
61
62
  hud: flag('recipe_hud'),
62
63
  resources: list('runtime_capabilities'),
64
+ proofRequirements: [],
63
65
  };
66
+ if (metadata?.runtime_capability_requirements !== undefined) {
67
+ const value = metadata.runtime_capability_requirements;
68
+ if (typeof value !== 'string')
69
+ throw new Error('Template runtime_capability_requirements must be a JSON array in a scalar string.');
70
+ let decoded;
71
+ try {
72
+ decoded = JSON.parse(value);
73
+ }
74
+ catch {
75
+ throw new Error('Template runtime_capability_requirements must contain valid JSON.');
76
+ }
77
+ requirements.proofRequirements = validateRecipeProofRequirements(decoded);
78
+ const ids = new Set(requirements.proofRequirements.map((entry) => entry.capabilityId));
79
+ if (ids.size !== requirements.resources.length ||
80
+ requirements.resources.some((id) => !ids.has(id)))
81
+ throw new Error('Template runtime_capability_requirements must exactly cover runtime_capabilities.');
82
+ }
64
83
  if ((requirements.actions.length ||
65
84
  requirements.capture ||
66
85
  requirements.hud ||
@@ -70,6 +89,69 @@ export function recipeFlowRequirements(metadata) {
70
89
  }
71
90
  return requirements;
72
91
  }
92
+ function validateRecipeProofRequirements(value) {
93
+ if (!Array.isArray(value))
94
+ throw new Error('Resource proof requirements must be an array.');
95
+ const ids = new Set();
96
+ for (const entry of value) {
97
+ if (!entry ||
98
+ typeof entry !== 'object' ||
99
+ Array.isArray(entry) ||
100
+ Object.keys(entry).some((key) => !['capabilityId', 'reason', 'mode', 'parameters'].includes(key)) ||
101
+ typeof entry.capabilityId !== 'string' ||
102
+ !entry.capabilityId.trim() ||
103
+ entry.capabilityId !== entry.capabilityId.trim() ||
104
+ typeof entry.reason !== 'string' ||
105
+ !entry.reason.trim() ||
106
+ entry.reason !== entry.reason.trim() ||
107
+ !isRuntimeCapabilityProofMode(entry.mode) ||
108
+ (entry.parameters !== undefined &&
109
+ (!entry.parameters ||
110
+ typeof entry.parameters !== 'object' ||
111
+ Array.isArray(entry.parameters))))
112
+ throw new Error('Resource proof requirements need a capabilityId, reason, state/visual/mixed mode and optional object parameters.');
113
+ if (ids.has(entry.capabilityId))
114
+ throw new Error(`Duplicate resource proof requirement '${entry.capabilityId}'.`);
115
+ ids.add(entry.capabilityId);
116
+ }
117
+ return value;
118
+ }
119
+ /** Pure declaration/stored-plan precedence, shared by admission and owned acquisition. */
120
+ export function resolveRecipeProofRequirements(input) {
121
+ const { required, owner, plan } = input;
122
+ const result = {
123
+ requirements: [],
124
+ missingRequirements: [],
125
+ diagnostics: [],
126
+ };
127
+ let stored = [];
128
+ if (plan) {
129
+ if (!owner ||
130
+ plan.version !== 1 ||
131
+ plan.ownerRunId !== owner.ownerRunId ||
132
+ plan.slotId !== owner.slotId)
133
+ throw new Error('The resource proof plan belongs to another run or slot, or has an unsupported version.');
134
+ stored = validateRecipeProofRequirements(plan.requirements);
135
+ }
136
+ for (const id of required.resources) {
137
+ const declared = required.proofRequirements.find((entry) => entry.capabilityId === id);
138
+ const retained = stored.find((entry) => entry.capabilityId === id);
139
+ const effective = retained ?? declared;
140
+ if (!effective) {
141
+ result.missingRequirements.push(`resource.${id}.proof-mode`);
142
+ result.diagnostics.push(`Declared capability '${id}' requires an authored state/visual/mixed proof mode before dispatch.`);
143
+ }
144
+ else if (declared && retained && declared.mode !== retained.mode) {
145
+ result.missingRequirements.push(`resource.${id}.proof-mode`);
146
+ result.diagnostics.push(`Declared capability '${id}' conflicts with its stored ${retained.mode} proof mode. Use explicit target recovery.`);
147
+ }
148
+ else {
149
+ // Retargeted acquire inputs stay authoritative. Never merge template defaults.
150
+ result.requirements.push(structuredClone(effective));
151
+ }
152
+ }
153
+ return result;
154
+ }
73
155
  function reportScope(identity) {
74
156
  return {
75
157
  project: identity.project,
@@ -110,6 +192,11 @@ export function recipeProjectCompatibility(input) {
110
192
  const resource = input.resources.find((entry) => entry.id === id);
111
193
  add(`resource.${id}`, resource?.availability.state === 'available', resource ? 'failed' : 'unknown', 'declared');
112
194
  }
195
+ const proof = input.proof ?? resolveRecipeProofRequirements({ required });
196
+ for (const requirement of proof.requirements)
197
+ add(`resource.${requirement.capabilityId}.proof-mode.${requirement.mode}`, true, 'unknown', 'declared');
198
+ for (const missing of proof.missingRequirements)
199
+ add(missing, false, 'failed');
113
200
  return {
114
201
  scope,
115
202
  registered,
@@ -118,6 +205,7 @@ export function recipeProjectCompatibility(input) {
118
205
  missingRequirements: requirements
119
206
  .filter((check) => check.status === 'failed' || check.status === 'unknown')
120
207
  .map((check) => check.name),
208
+ ...(proof.diagnostics.length ? { diagnostics: proof.diagnostics } : {}),
121
209
  ...(report
122
210
  ? {
123
211
  checked: {
@@ -1 +1 @@
1
- {"version":3,"file":"recipe-conformance.js","sourceRoot":"","sources":["../../src/contracts/recipe-conformance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recipe-conformance.js","sourceRoot":"","sources":["../../src/contracts/recipe-conformance.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { Run, RunDecisionPayload } from './runs.js';
1
2
  export declare const RUN_BUNDLE_VERSION: 1;
2
3
  export type RunBundleProfile = 'reference' | 'family' | 'full';
3
4
  export type RunBundleRemapPolicy = 'preserve-ids' | 'remap-ids' | 'reference-only';
@@ -9,6 +10,26 @@ export interface RunImportProvenance {
9
10
  sourceFarmslotRoot?: string;
10
11
  bundleId?: string;
11
12
  mode: RunBundleImportMode;
13
+ /** Source digest aliases resolve only to target-owned captures after import. */
14
+ artifactBundleRefs?: Record<string, RunArtifactBundleRef>;
15
+ }
16
+ /** Gateway-owned immutable capture; the Run store remains lifecycle authority. */
17
+ export interface RunArtifactBundleRef {
18
+ storeId: string;
19
+ bundleDigest: string;
20
+ taskKey: string;
21
+ /** Original output inventory identity, including historical reviews. */
22
+ manifestDigest: string;
23
+ }
24
+ export interface RunBundleRetentionPolicy {
25
+ maxBundleBytes: number;
26
+ maxStoreBytes: number;
27
+ metadataReserveBytes: number;
28
+ mediaRetentionDays: number;
29
+ }
30
+ export interface RunBundleRetainResult {
31
+ ref: RunArtifactBundleRef;
32
+ missingData: string[];
12
33
  }
13
34
  export interface RunBundleSource {
14
35
  gatewayUrl?: string;
@@ -24,6 +45,7 @@ export interface RunBundleRunEntry {
24
45
  originalRunId: string;
25
46
  runPath: string;
26
47
  taskKey?: string;
48
+ artifactBundleDigests?: string[];
27
49
  taskRelativePath?: string;
28
50
  packagePaths?: string[];
29
51
  missingData?: string[];
@@ -69,4 +91,6 @@ export interface RunBundleListResult {
69
91
  export declare function isRunBundleProfile(value: unknown): value is RunBundleProfile;
70
92
  export declare function isRunBundleImportMode(value: unknown): value is RunBundleImportMode;
71
93
  export declare function isRunBundleManifest(value: unknown): value is RunBundleManifest;
94
+ /** The reader and collector must pin the same captured decision snapshot. */
95
+ export declare function decisionArtifactBundleRef(run: Pick<Run, 'output'>, payload: RunDecisionPayload | undefined): RunArtifactBundleRef | undefined;
72
96
  //# sourceMappingURL=run-bundles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-bundles.d.ts","sourceRoot":"","sources":["../../src/contracts/run-bundles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-bundles.d.ts","sourceRoot":"","sources":["../../src/contracts/run-bundles.ts"],"names":[],"mappings":"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"}
@@ -21,4 +21,15 @@ export function isRunBundleManifest(value) {
21
21
  !!record.entries &&
22
22
  typeof record.entries === 'object');
23
23
  }
24
+ /** The reader and collector must pin the same captured decision snapshot. */
25
+ export function decisionArtifactBundleRef(run, payload) {
26
+ if (payload?.kind === 'ready')
27
+ return payload.prPackage?.artifactBundle;
28
+ if (payload?.kind === 'output-review')
29
+ return (payload.artifactBundle ??
30
+ (payload.manifestDigest === run.output?.manifestDigest
31
+ ? run.output.artifactBundle
32
+ : undefined));
33
+ return undefined;
34
+ }
24
35
  //# sourceMappingURL=run-bundles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-bundles.js","sourceRoot":"","sources":["../../src/contracts/run-bundles.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAU,CAAC;AAkF7C,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,OAAO,KAAK,KAAK,gBAAgB,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,MAAM,GAAG,KAA0B,CAAC;IAC1C,OAAO,CACL,MAAM,CAAC,OAAO,KAAK,kBAAkB;QACrC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC;QAClC,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;QACrC,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;QACnC,CAAC,CAAC,MAAM,CAAC,MAAM;QACf,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,KAAK,QAAQ;QAC9C,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QACnC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;QACtC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,CAAC,MAAM,CAAC,OAAO;QAChB,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CACnC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"run-bundles.js","sourceRoot":"","sources":["../../src/contracts/run-bundles.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAU,CAAC;AA0G7C,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,OAAO,KAAK,KAAK,gBAAgB,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,MAAM,GAAG,KAA0B,CAAC;IAC1C,OAAO,CACL,MAAM,CAAC,OAAO,KAAK,kBAAkB;QACrC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC;QAClC,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;QACrC,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;QACnC,CAAC,CAAC,MAAM,CAAC,MAAM;QACf,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,KAAK,QAAQ;QAC9C,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QACnC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;QACtC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QAC1B,CAAC,CAAC,MAAM,CAAC,OAAO;QAChB,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CACnC,CAAC;AACJ,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,yBAAyB,CACvC,GAAwB,EACxB,OAAuC;IAEvC,IAAI,OAAO,EAAE,IAAI,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC;IACxE,IAAI,OAAO,EAAE,IAAI,KAAK,eAAe;QACnC,OAAO,CACL,OAAO,CAAC,cAAc;YACtB,CAAC,OAAO,CAAC,cAAc,KAAK,GAAG,CAAC,MAAM,EAAE,cAAc;gBACpD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc;gBAC3B,CAAC,CAAC,SAAS,CAAC,CACf,CAAC;IACJ,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { WorkerOperatorWait } from '../transport/signal.js';
1
2
  import type { RunGatePrerequisiteReason } from './run-gate-readiness.js';
2
3
  import type { RunStatus } from './runs.js';
3
4
  export interface RunLifecycleView {
@@ -13,5 +14,6 @@ export interface RunLifecycleView {
13
14
  export declare function deriveRunLifecycleView(input: {
14
15
  status: RunStatus;
15
16
  gateReadiness?: unknown;
17
+ waitingForOperator?: WorkerOperatorWait;
16
18
  }): RunLifecycleView;
17
19
  //# sourceMappingURL=run-lifecycle-view.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-lifecycle-view.d.ts","sourceRoot":"","sources":["../../src/contracts/run-lifecycle-view.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAoB,MAAM,yBAAyB,CAAC;AAC3F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,SAAS,yBAAyB,EAAE,CAAC;CAC/C;AAwBD,qFAAqF;AACrF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,MAAM,EAAE,SAAS,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,gBAAgB,CAmCnB"}
1
+ {"version":3,"file":"run-lifecycle-view.d.ts","sourceRoot":"","sources":["../../src/contracts/run-lifecycle-view.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,KAAK,EAAE,yBAAyB,EAAoB,MAAM,yBAAyB,CAAC;AAC3F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,SAAS,yBAAyB,EAAE,CAAC;CAC/C;AAwBD,qFAAqF;AACrF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,MAAM,EAAE,SAAS,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC,GAAG,gBAAgB,CAqCnB"}
@@ -36,9 +36,11 @@ export function deriveRunLifecycleView(input) {
36
36
  return {
37
37
  status: input.status,
38
38
  label: labels[input.status],
39
- ...(['fixing', 'review-failed', 'reconciling'].includes(input.status)
40
- ? { activityLabel: labels[input.status] }
41
- : {}),
39
+ ...(input.waitingForOperator && ['monitoring', 'reviewing', 'fixing'].includes(input.status)
40
+ ? { activityLabel: `Waiting on operator: ${input.waitingForOperator.who}` }
41
+ : ['fixing', 'review-failed', 'reconciling'].includes(input.status)
42
+ ? { activityLabel: labels[input.status] }
43
+ : {}),
42
44
  tone,
43
45
  ...(readiness
44
46
  ? {
@@ -1 +1 @@
1
- {"version":3,"file":"run-lifecycle-view.js","sourceRoot":"","sources":["../../src/contracts/run-lifecycle-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-lifecycle-view.js","sourceRoot":"","sources":["../../src/contracts/run-lifecycle-view.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { ArtifactRef, ReviewIssue } from '../recipes/step-io.js';
2
- import type { WorkerSignalChecklistEvent, WorkerSignalChecklistTiming, WorkerSignalStatus } from '../transport/signal.js';
2
+ import type { WorkerOperatorWait, WorkerSignalChecklistEvent, WorkerSignalChecklistTiming, WorkerSignalStatus } from '../transport/signal.js';
3
3
  import type { AcceptanceStatusLedger } from './acceptance.js';
4
4
  import type { AgentContext, AgentContextTarget, RunnerSessionArchiveRef, SafetyTier, ScriptedRunnerConfig, WorkerTransport } from './agents.js';
5
5
  import type { FailureCategory, RunRecoveryProposalConfidence } from './chat.js';
@@ -7,7 +7,7 @@ import type { TaskTemplateSelection, TemplateProvenance } from './evals.js';
7
7
  import type { EvidenceQualityReport, RecipeQualityArtifact } from './recipes.js';
8
8
  import type { ResourcePostureWaitPolicy, RunResourcePostureState } from './resource-posture.js';
9
9
  import type { ResourceType } from './resources.js';
10
- import type { RunImportProvenance } from './run-bundles.js';
10
+ import type { RunArtifactBundleRef, RunImportProvenance } from './run-bundles.js';
11
11
  import type { EvidencePolicyAttestation, RunGateReadiness } from './run-gate-readiness.js';
12
12
  import type { RuntimeCapabilityProofRequirement } from './runtime-capabilities.js';
13
13
  import type { SlotHealth } from './slots.js';
@@ -65,6 +65,7 @@ export interface RunStep {
65
65
  export type LiveRecipeSource = 'decision' | 'recipe-run-live' | 'recipe-run-artifacts' | 'final-artifacts';
66
66
  export type LiveRecipeSelectionReason = 'latest-run' | 'user-selected' | 'decision-derived' | 'fallback-none';
67
67
  export interface LiveRecipeContext {
68
+ artifactBundle?: RunArtifactBundleRef;
68
69
  source: LiveRecipeSource;
69
70
  recipeRunId: string | null;
70
71
  artifactRoot: string | null;
@@ -586,6 +587,7 @@ export interface GateTokenSummary {
586
587
  runnerSessionPaths?: string[];
587
588
  }
588
589
  export interface ReadyGatePrPackage {
590
+ artifactBundle?: RunArtifactBundleRef;
589
591
  /** Gateway override receipts applied when this package was prepared. */
590
592
  claimOverrideReceiptIds?: string[];
591
593
  /** Authenticated visual judgments captured by this review snapshot. */
@@ -628,12 +630,29 @@ export interface ReadyGateInputSnapshot {
628
630
  checklist?: string[];
629
631
  templateProvenance?: TemplateProvenance | null;
630
632
  }
633
+ export interface ReviewBudgetExtension {
634
+ requestId: string;
635
+ runId: string;
636
+ project: string;
637
+ branch: string;
638
+ repository?: string;
639
+ prNumber?: number;
640
+ headSha: string;
641
+ previousLimit: number;
642
+ limit: number;
643
+ scopeBrief: string;
644
+ principalId: string;
645
+ principalSubject: import('../rpc/principal.js').PrincipalSubject;
646
+ approvedAt: string;
647
+ }
631
648
  export interface ReviewRoundBudget {
632
649
  used: number;
633
650
  limit: number;
634
651
  remaining: number;
635
652
  label: string;
636
653
  diagnosis?: string;
654
+ extensions?: ReviewBudgetExtension[];
655
+ extensionSummary?: string;
637
656
  }
638
657
  export interface ReadyGatePayload {
639
658
  kind: 'ready';
@@ -1023,6 +1042,7 @@ export interface LearningsDraftPayload {
1023
1042
  export type RunDecisionPayload = OutputReviewPayload | ReviewGatePayload | ReadyGatePayload | NoChangeGatePayload | SlotPickerPayload | BranchAffinityNudgePayload | ImprovementDiffPayload | LearningsDraftPayload | RetrospectivePayload | CollisionPayload | ReviewContinuationPayload;
1024
1043
  /** Review retained output independently of worker outcome or publication. */
1025
1044
  export interface OutputReviewPayload {
1045
+ artifactBundle?: RunArtifactBundleRef;
1026
1046
  kind: 'output-review';
1027
1047
  claimOverrideReceiptIds?: string[];
1028
1048
  /** Authenticated visual judgments captured by this review snapshot. */
@@ -1031,6 +1051,8 @@ export interface OutputReviewPayload {
1031
1051
  reportPath: string;
1032
1052
  }
1033
1053
  export interface RunOutput {
1054
+ artifactBundle?: RunArtifactBundleRef;
1055
+ retentionMissingData?: string[];
1034
1056
  capturedAt: string;
1035
1057
  workerFinished: boolean;
1036
1058
  artifactManifest: ArtifactRef[];
@@ -1412,6 +1434,10 @@ export interface RunBudgetDeliveryState {
1412
1434
  attempts: number;
1413
1435
  firstHeldAt?: number;
1414
1436
  }
1437
+ export interface RunOperatorWait extends WorkerOperatorWait {
1438
+ contextId: string;
1439
+ attemptId: string;
1440
+ }
1415
1441
  export interface RunMonitorState {
1416
1442
  nudgeCount: number;
1417
1443
  lastPollAt: string;
@@ -1419,6 +1445,10 @@ export interface RunMonitorState {
1419
1445
  lastPaneHash?: string;
1420
1446
  /** ISO time of last structured runner progress; used to restore stuck clocks. */
1421
1447
  lastStructuredProgressAt?: string;
1448
+ /** Confirmed operator wait time excluded from the monitor's execution timeout. */
1449
+ operatorWaitMs?: number;
1450
+ /** Inactivity grace after explicit resume; this is not worker progress. */
1451
+ operatorResumedAt?: string;
1422
1452
  /** True after a one-shot usage-budget warning was emitted for this monitor session. */
1423
1453
  budgetWarned?: boolean;
1424
1454
  /** True after a budget nudge was confirmed delivered (may retry while false). */
@@ -1978,6 +2008,8 @@ export interface Run {
1978
2008
  sourceProvenance?: import('../sources/contracts.js').RunSourceProvenance;
1979
2009
  /** Gateway-owned, opaque reviewer admission receipts. Replay must retain these. */
1980
2010
  reviewRoundAdmissions?: string[];
2011
+ /** Gateway-authorized scoped grants; copied with admissions when a PR scope is shared. */
2012
+ reviewBudgetExtensions?: ReviewBudgetExtension[];
1981
2013
  /** Run cleanup preserved resources whose ownership could not be proven. */
1982
2014
  slotTeardownSkipped?: string;
1983
2015
  /** Gateway-owned automatic QA opt-in and durable follow-up status. */
@@ -2073,6 +2105,8 @@ export interface Run {
2073
2105
  completionPolicy?: RunCompletionPolicy;
2074
2106
  /** Local retained output; viewing or acknowledging it never changes the verdict. */
2075
2107
  output?: RunOutput;
2108
+ /** Most recent explicit retained capture. Historical decisions keep their own refs. */
2109
+ artifactBundle?: RunArtifactBundleRef;
2076
2110
  /** Principal-stamped one-dispatch pressure override requested for this run.
2077
2111
  * Bound to one machine + pressure generation; dispatch execution recomputes
2078
2112
  * the admission decision and rejects the override when the generation moved. */
@@ -2167,6 +2201,8 @@ export interface Run {
2167
2201
  */
2168
2202
  redirectedToRunId?: string | null;
2169
2203
  monitorState?: RunMonitorState;
2204
+ /** Monitor-validated dependency; the worker signal remains the authority. */
2205
+ waitingForOperator?: RunOperatorWait;
2170
2206
  /** CI-watch inline-fix dedup + counters. Persisted so the circuit breaker survives gateway restart (ADR-027). */
2171
2207
  ciWatchState?: RunCiWatchState;
2172
2208
  /** Run-engine runtime flags + replay generation counter. Persisted so warm-recovery hints