@riddledc/riddle-proof 0.8.54 → 0.8.56
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/adapters/codex-exec-agent.js +2 -2
- package/dist/adapters/codex.js +2 -2
- package/dist/adapters/local-agent.js +2 -2
- package/dist/adapters/openclaw.js +5 -5
- package/dist/advanced/engine-harness.cjs +129 -22
- package/dist/advanced/engine-harness.js +5 -5
- package/dist/advanced/index.cjs +130 -23
- package/dist/advanced/index.d.cts +1 -1
- package/dist/advanced/index.d.ts +1 -1
- package/dist/advanced/index.js +6 -6
- package/dist/advanced/proof-run-engine.d.cts +1 -1
- package/dist/advanced/proof-run-engine.d.ts +1 -1
- package/dist/advanced/runner.cjs +59 -1
- package/dist/advanced/runner.js +5 -5
- package/dist/checkpoint.cjs +4 -0
- package/dist/checkpoint.js +2 -2
- package/dist/{chunk-ECLGGGAI.js → chunk-54DIEDR3.js} +3 -3
- package/dist/{chunk-VY4Y5U57.js → chunk-CUBYSWZT.js} +57 -0
- package/dist/{chunk-IV4DVWPR.js → chunk-GHBNDHG7.js} +67 -25
- package/dist/{chunk-S5DX7Z6X.js → chunk-JLOZTVXU.js} +3 -3
- package/dist/{chunk-JJ4IWRMJ.js → chunk-KNPCWWF3.js} +8 -3
- package/dist/{chunk-BLM5EIBA.js → chunk-MOTQNIZX.js} +5 -1
- package/dist/{chunk-73EBR3YL.js → chunk-RS4HJLJQ.js} +1 -1
- package/dist/{chunk-LNWJAHAQ.js → chunk-TTB3ZAVX.js} +2 -2
- package/dist/{chunk-WDIKPIMB.js → chunk-UZIX7M7D.js} +11 -4
- package/dist/cli/index.js +7 -7
- package/dist/cli.cjs +129 -22
- package/dist/cli.js +7 -7
- package/dist/codex-exec-agent.js +2 -2
- package/dist/engine-harness.cjs +129 -22
- package/dist/engine-harness.js +5 -5
- package/dist/index.cjs +136 -23
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +14 -8
- package/dist/local-agent.js +2 -2
- package/dist/openclaw.js +5 -5
- package/dist/{proof-run-engine-MiKZt9oY.d.ts → proof-run-engine-BqRoA3Do.d.ts} +3 -3
- package/dist/{proof-run-engine-Baiv6l3A.d.cts → proof-run-engine-DpChFR5H.d.cts} +3 -3
- package/dist/proof-run-engine.d.cts +1 -1
- package/dist/proof-run-engine.d.ts +1 -1
- package/dist/result.cjs +62 -2
- package/dist/result.d.cts +17 -2
- package/dist/result.d.ts +17 -2
- package/dist/result.js +9 -3
- package/dist/run-card.cjs +43 -0
- package/dist/run-card.js +3 -3
- package/dist/runner.cjs +59 -1
- package/dist/runner.js +5 -5
- package/dist/spec/checkpoint.cjs +4 -0
- package/dist/spec/checkpoint.js +2 -2
- package/dist/spec/index.cjs +74 -1
- package/dist/spec/index.d.cts +1 -1
- package/dist/spec/index.d.ts +1 -1
- package/dist/spec/index.js +11 -5
- package/dist/spec/result.cjs +62 -2
- package/dist/spec/result.d.cts +1 -1
- package/dist/spec/result.d.ts +1 -1
- package/dist/spec/result.js +9 -3
- package/dist/spec/run-card.cjs +43 -0
- package/dist/spec/run-card.js +3 -3
- package/dist/spec/state.cjs +52 -1
- package/dist/spec/state.js +4 -4
- package/dist/state.cjs +52 -1
- package/dist/state.js +4 -4
- package/dist/types.d.cts +17 -0
- package/dist/types.d.ts +17 -0
- package/package.json +1 -1
package/dist/result.cjs
CHANGED
|
@@ -20,19 +20,25 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/result.ts
|
|
21
21
|
var result_exports = {};
|
|
22
22
|
__export(result_exports, {
|
|
23
|
+
applyShipControlState: () => applyShipControlState,
|
|
23
24
|
applyTerminalMetadata: () => applyTerminalMetadata,
|
|
24
25
|
compactRecord: () => compactRecord,
|
|
25
26
|
createRunResult: () => createRunResult,
|
|
27
|
+
isProtectedFinalStatus: () => isProtectedFinalStatus,
|
|
26
28
|
isSuccessfulStatus: () => isSuccessfulStatus,
|
|
27
29
|
isTerminalStatus: () => isTerminalStatus,
|
|
28
30
|
nonEmptyString: () => nonEmptyString,
|
|
29
31
|
normalizeTerminalMetadata: () => normalizeTerminalMetadata,
|
|
30
|
-
recordValue: () => recordValue
|
|
32
|
+
recordValue: () => recordValue,
|
|
33
|
+
shipControlStateFor: () => shipControlStateFor
|
|
31
34
|
});
|
|
32
35
|
module.exports = __toCommonJS(result_exports);
|
|
33
36
|
function isTerminalStatus(status) {
|
|
34
37
|
return status === "blocked" || status === "failed" || status === "ready_to_ship" || status === "shipped" || status === "completed";
|
|
35
38
|
}
|
|
39
|
+
function isProtectedFinalStatus(status) {
|
|
40
|
+
return status === "ready_to_ship" || status === "shipped" || status === "completed";
|
|
41
|
+
}
|
|
36
42
|
function isSuccessfulStatus(status) {
|
|
37
43
|
return status !== "blocked" && status !== "failed";
|
|
38
44
|
}
|
|
@@ -130,6 +136,9 @@ function normalizeTerminalMetadata(input) {
|
|
|
130
136
|
pr_state: prState,
|
|
131
137
|
marked_ready: markedReady,
|
|
132
138
|
left_draft: leftDraft,
|
|
139
|
+
ship_held: firstBoolean(riddleState.ship_held, result.ship_held, result.shipHeld, details.ship_held, details.shipHeld, shipReport.ship_held, shipReport.shipHeld),
|
|
140
|
+
shipping_disabled: firstBoolean(riddleState.shipping_disabled, result.shipping_disabled, result.shippingDisabled, details.shipping_disabled, details.shippingDisabled, shipReport.shipping_disabled, shipReport.shippingDisabled),
|
|
141
|
+
ship_authorized: firstBoolean(riddleState.ship_authorized, result.ship_authorized, result.shipAuthorized, details.ship_authorized, details.shipAuthorized, shipReport.ship_authorized, shipReport.shipAuthorized),
|
|
133
142
|
ci_status: firstNonEmptyString(riddleState.ci_status, result.ci_status, result.ciStatus, details.ci_status, details.ciStatus, shipReport.ci_status),
|
|
134
143
|
ship_commit: firstNonEmptyString(riddleState.ship_commit, result.ship_commit, result.shipCommit, details.ship_commit, details.shipCommit, shipReport.shipped_commit, shipReport.ship_commit),
|
|
135
144
|
ship_remote_head: firstNonEmptyString(riddleState.ship_remote_head, result.ship_remote_head, result.shipRemoteHead, details.ship_remote_head, details.shipRemoteHead, shipReport.ship_remote_head),
|
|
@@ -163,6 +172,9 @@ function applyTerminalMetadata(state, metadata) {
|
|
|
163
172
|
if (prBranch) state.pr_branch = prBranch;
|
|
164
173
|
if (typeof metadata.marked_ready === "boolean") state.marked_ready = metadata.marked_ready;
|
|
165
174
|
if (typeof metadata.left_draft === "boolean") state.left_draft = metadata.left_draft;
|
|
175
|
+
if (typeof metadata.ship_held === "boolean") state.ship_held = metadata.ship_held;
|
|
176
|
+
if (typeof metadata.shipping_disabled === "boolean") state.shipping_disabled = metadata.shipping_disabled;
|
|
177
|
+
if (typeof metadata.ship_authorized === "boolean") state.ship_authorized = metadata.ship_authorized;
|
|
166
178
|
const ciStatus = nonEmptyString(metadata.ci_status);
|
|
167
179
|
if (ciStatus) state.ci_status = ciStatus;
|
|
168
180
|
const shipCommit = nonEmptyString(metadata.ship_commit);
|
|
@@ -194,12 +206,54 @@ function applyTerminalMetadata(state, metadata) {
|
|
|
194
206
|
if (typeof metadata.finalized === "boolean") state.finalized = metadata.finalized;
|
|
195
207
|
return state;
|
|
196
208
|
}
|
|
209
|
+
function shipControlStateFor(input) {
|
|
210
|
+
const state = input.state;
|
|
211
|
+
const status = input.status || state.status;
|
|
212
|
+
const raw = recordValue(input.raw) || {};
|
|
213
|
+
const shipReport = recordValue(state.ship_report) || {};
|
|
214
|
+
const prState = recordValue(state.pr_state) || {};
|
|
215
|
+
const shippingDisabled = firstBoolean(
|
|
216
|
+
raw.shipping_disabled,
|
|
217
|
+
raw.shippingDisabled,
|
|
218
|
+
state.shipping_disabled,
|
|
219
|
+
shipReport.shipping_disabled,
|
|
220
|
+
shipReport.shippingDisabled
|
|
221
|
+
) ?? state.request?.ship_mode === "none";
|
|
222
|
+
const explicitAuthorized = firstBoolean(
|
|
223
|
+
raw.ship_authorized,
|
|
224
|
+
raw.shipAuthorized,
|
|
225
|
+
state.ship_authorized,
|
|
226
|
+
shipReport.ship_authorized,
|
|
227
|
+
shipReport.shipAuthorized
|
|
228
|
+
);
|
|
229
|
+
const authorizationEvidence = Boolean(
|
|
230
|
+
status === "shipped" || state.marked_ready === true || shipReport.marked_ready === true || prState.status === "merged" || state.merge_commit || state.merged_at
|
|
231
|
+
);
|
|
232
|
+
const inferredAuthorized = explicitAuthorized ?? authorizationEvidence;
|
|
233
|
+
const rawHeld = firstBoolean(raw.ship_held, raw.shipHeld);
|
|
234
|
+
const inferredHeld = status === "ready_to_ship" && shippingDisabled && !inferredAuthorized;
|
|
235
|
+
const shipHeld = rawHeld ?? (state.ship_held === true || inferredHeld);
|
|
236
|
+
return {
|
|
237
|
+
ship_held: shipHeld,
|
|
238
|
+
shipping_disabled: shippingDisabled,
|
|
239
|
+
ship_authorized: shipHeld ? false : inferredAuthorized
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
function applyShipControlState(state, input = {}) {
|
|
243
|
+
const control = shipControlStateFor({ state, status: input.status, raw: input.raw });
|
|
244
|
+
state.ship_held = control.ship_held;
|
|
245
|
+
state.shipping_disabled = control.shipping_disabled;
|
|
246
|
+
state.ship_authorized = control.ship_authorized;
|
|
247
|
+
return state;
|
|
248
|
+
}
|
|
197
249
|
function createRunResult(input) {
|
|
198
250
|
const status = input.status || input.state.status;
|
|
199
251
|
const ok = isSuccessfulStatus(status);
|
|
200
252
|
const state = input.metadata ? applyTerminalMetadata(input.state, input.metadata) : input.state;
|
|
201
253
|
state.status = status;
|
|
202
254
|
state.ok = ok;
|
|
255
|
+
if (isProtectedFinalStatus(status)) state.finalized = true;
|
|
256
|
+
applyShipControlState(state, { status, raw: input.raw });
|
|
203
257
|
return compactRecord({
|
|
204
258
|
ok,
|
|
205
259
|
status,
|
|
@@ -217,6 +271,9 @@ function createRunResult(input) {
|
|
|
217
271
|
pr_state: state.pr_state,
|
|
218
272
|
marked_ready: state.marked_ready,
|
|
219
273
|
left_draft: state.left_draft,
|
|
274
|
+
ship_held: state.ship_held,
|
|
275
|
+
shipping_disabled: state.shipping_disabled,
|
|
276
|
+
ship_authorized: state.ship_authorized,
|
|
220
277
|
ci_status: state.ci_status,
|
|
221
278
|
ship_commit: state.ship_commit,
|
|
222
279
|
ship_remote_head: state.ship_remote_head,
|
|
@@ -246,12 +303,15 @@ function createRunResult(input) {
|
|
|
246
303
|
}
|
|
247
304
|
// Annotate the CommonJS export names for ESM import in node:
|
|
248
305
|
0 && (module.exports = {
|
|
306
|
+
applyShipControlState,
|
|
249
307
|
applyTerminalMetadata,
|
|
250
308
|
compactRecord,
|
|
251
309
|
createRunResult,
|
|
310
|
+
isProtectedFinalStatus,
|
|
252
311
|
isSuccessfulStatus,
|
|
253
312
|
isTerminalStatus,
|
|
254
313
|
nonEmptyString,
|
|
255
314
|
normalizeTerminalMetadata,
|
|
256
|
-
recordValue
|
|
315
|
+
recordValue,
|
|
316
|
+
shipControlStateFor
|
|
257
317
|
});
|
package/dist/result.d.cts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { RiddleProofRunState,
|
|
1
|
+
import { RiddleProofRunState, RiddleProofStatus, RiddleProofTerminalMetadata, RiddleProofEvidenceBundle, RiddleProofRunResult } from './types.cjs';
|
|
2
2
|
|
|
3
3
|
declare function isTerminalStatus(status: RiddleProofStatus): boolean;
|
|
4
|
+
declare function isProtectedFinalStatus(status: unknown): boolean;
|
|
4
5
|
declare function isSuccessfulStatus(status: RiddleProofStatus): boolean;
|
|
5
6
|
declare function compactRecord<T extends Record<string, unknown>>(input: T): Partial<T>;
|
|
6
7
|
declare function nonEmptyString(value: unknown): string | undefined;
|
|
@@ -12,6 +13,20 @@ interface TerminalMetadataInput {
|
|
|
12
13
|
}
|
|
13
14
|
declare function normalizeTerminalMetadata(input: TerminalMetadataInput): RiddleProofTerminalMetadata;
|
|
14
15
|
declare function applyTerminalMetadata<T extends RiddleProofRunState>(state: T, metadata: RiddleProofTerminalMetadata): T;
|
|
16
|
+
interface RiddleProofShipControlState {
|
|
17
|
+
ship_held: boolean;
|
|
18
|
+
shipping_disabled: boolean;
|
|
19
|
+
ship_authorized: boolean;
|
|
20
|
+
}
|
|
21
|
+
declare function shipControlStateFor(input: {
|
|
22
|
+
state: RiddleProofRunState;
|
|
23
|
+
status?: RiddleProofStatus;
|
|
24
|
+
raw?: Record<string, unknown>;
|
|
25
|
+
}): RiddleProofShipControlState;
|
|
26
|
+
declare function applyShipControlState<T extends RiddleProofRunState>(state: T, input?: {
|
|
27
|
+
status?: RiddleProofStatus;
|
|
28
|
+
raw?: Record<string, unknown>;
|
|
29
|
+
}): T;
|
|
15
30
|
declare function createRunResult(input: {
|
|
16
31
|
state: RiddleProofRunState;
|
|
17
32
|
status?: RiddleProofStatus;
|
|
@@ -22,4 +37,4 @@ declare function createRunResult(input: {
|
|
|
22
37
|
raw?: Record<string, unknown>;
|
|
23
38
|
}): RiddleProofRunResult;
|
|
24
39
|
|
|
25
|
-
export { type TerminalMetadataInput, applyTerminalMetadata, compactRecord, createRunResult, isSuccessfulStatus, isTerminalStatus, nonEmptyString, normalizeTerminalMetadata, recordValue };
|
|
40
|
+
export { type RiddleProofShipControlState, type TerminalMetadataInput, applyShipControlState, applyTerminalMetadata, compactRecord, createRunResult, isProtectedFinalStatus, isSuccessfulStatus, isTerminalStatus, nonEmptyString, normalizeTerminalMetadata, recordValue, shipControlStateFor };
|
package/dist/result.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { RiddleProofRunState,
|
|
1
|
+
import { RiddleProofRunState, RiddleProofStatus, RiddleProofTerminalMetadata, RiddleProofEvidenceBundle, RiddleProofRunResult } from './types.js';
|
|
2
2
|
|
|
3
3
|
declare function isTerminalStatus(status: RiddleProofStatus): boolean;
|
|
4
|
+
declare function isProtectedFinalStatus(status: unknown): boolean;
|
|
4
5
|
declare function isSuccessfulStatus(status: RiddleProofStatus): boolean;
|
|
5
6
|
declare function compactRecord<T extends Record<string, unknown>>(input: T): Partial<T>;
|
|
6
7
|
declare function nonEmptyString(value: unknown): string | undefined;
|
|
@@ -12,6 +13,20 @@ interface TerminalMetadataInput {
|
|
|
12
13
|
}
|
|
13
14
|
declare function normalizeTerminalMetadata(input: TerminalMetadataInput): RiddleProofTerminalMetadata;
|
|
14
15
|
declare function applyTerminalMetadata<T extends RiddleProofRunState>(state: T, metadata: RiddleProofTerminalMetadata): T;
|
|
16
|
+
interface RiddleProofShipControlState {
|
|
17
|
+
ship_held: boolean;
|
|
18
|
+
shipping_disabled: boolean;
|
|
19
|
+
ship_authorized: boolean;
|
|
20
|
+
}
|
|
21
|
+
declare function shipControlStateFor(input: {
|
|
22
|
+
state: RiddleProofRunState;
|
|
23
|
+
status?: RiddleProofStatus;
|
|
24
|
+
raw?: Record<string, unknown>;
|
|
25
|
+
}): RiddleProofShipControlState;
|
|
26
|
+
declare function applyShipControlState<T extends RiddleProofRunState>(state: T, input?: {
|
|
27
|
+
status?: RiddleProofStatus;
|
|
28
|
+
raw?: Record<string, unknown>;
|
|
29
|
+
}): T;
|
|
15
30
|
declare function createRunResult(input: {
|
|
16
31
|
state: RiddleProofRunState;
|
|
17
32
|
status?: RiddleProofStatus;
|
|
@@ -22,4 +37,4 @@ declare function createRunResult(input: {
|
|
|
22
37
|
raw?: Record<string, unknown>;
|
|
23
38
|
}): RiddleProofRunResult;
|
|
24
39
|
|
|
25
|
-
export { type TerminalMetadataInput, applyTerminalMetadata, compactRecord, createRunResult, isSuccessfulStatus, isTerminalStatus, nonEmptyString, normalizeTerminalMetadata, recordValue };
|
|
40
|
+
export { type RiddleProofShipControlState, type TerminalMetadataInput, applyShipControlState, applyTerminalMetadata, compactRecord, createRunResult, isProtectedFinalStatus, isSuccessfulStatus, isTerminalStatus, nonEmptyString, normalizeTerminalMetadata, recordValue, shipControlStateFor };
|
package/dist/result.js
CHANGED
|
@@ -1,21 +1,27 @@
|
|
|
1
1
|
import {
|
|
2
|
+
applyShipControlState,
|
|
2
3
|
applyTerminalMetadata,
|
|
3
4
|
compactRecord,
|
|
4
5
|
createRunResult,
|
|
6
|
+
isProtectedFinalStatus,
|
|
5
7
|
isSuccessfulStatus,
|
|
6
8
|
isTerminalStatus,
|
|
7
9
|
nonEmptyString,
|
|
8
10
|
normalizeTerminalMetadata,
|
|
9
|
-
recordValue
|
|
10
|
-
|
|
11
|
+
recordValue,
|
|
12
|
+
shipControlStateFor
|
|
13
|
+
} from "./chunk-CUBYSWZT.js";
|
|
11
14
|
import "./chunk-MLKGABMK.js";
|
|
12
15
|
export {
|
|
16
|
+
applyShipControlState,
|
|
13
17
|
applyTerminalMetadata,
|
|
14
18
|
compactRecord,
|
|
15
19
|
createRunResult,
|
|
20
|
+
isProtectedFinalStatus,
|
|
16
21
|
isSuccessfulStatus,
|
|
17
22
|
isTerminalStatus,
|
|
18
23
|
nonEmptyString,
|
|
19
24
|
normalizeTerminalMetadata,
|
|
20
|
-
recordValue
|
|
25
|
+
recordValue,
|
|
26
|
+
shipControlStateFor
|
|
21
27
|
};
|
package/dist/run-card.cjs
CHANGED
|
@@ -48,6 +48,45 @@ function nonEmptyString(value) {
|
|
|
48
48
|
function recordValue(value) {
|
|
49
49
|
return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
|
|
50
50
|
}
|
|
51
|
+
function firstBoolean(...values) {
|
|
52
|
+
for (const value of values) {
|
|
53
|
+
if (typeof value === "boolean") return value;
|
|
54
|
+
}
|
|
55
|
+
return void 0;
|
|
56
|
+
}
|
|
57
|
+
function shipControlStateFor(input) {
|
|
58
|
+
const state = input.state;
|
|
59
|
+
const status = input.status || state.status;
|
|
60
|
+
const raw = recordValue(input.raw) || {};
|
|
61
|
+
const shipReport = recordValue(state.ship_report) || {};
|
|
62
|
+
const prState = recordValue(state.pr_state) || {};
|
|
63
|
+
const shippingDisabled = firstBoolean(
|
|
64
|
+
raw.shipping_disabled,
|
|
65
|
+
raw.shippingDisabled,
|
|
66
|
+
state.shipping_disabled,
|
|
67
|
+
shipReport.shipping_disabled,
|
|
68
|
+
shipReport.shippingDisabled
|
|
69
|
+
) ?? state.request?.ship_mode === "none";
|
|
70
|
+
const explicitAuthorized = firstBoolean(
|
|
71
|
+
raw.ship_authorized,
|
|
72
|
+
raw.shipAuthorized,
|
|
73
|
+
state.ship_authorized,
|
|
74
|
+
shipReport.ship_authorized,
|
|
75
|
+
shipReport.shipAuthorized
|
|
76
|
+
);
|
|
77
|
+
const authorizationEvidence = Boolean(
|
|
78
|
+
status === "shipped" || state.marked_ready === true || shipReport.marked_ready === true || prState.status === "merged" || state.merge_commit || state.merged_at
|
|
79
|
+
);
|
|
80
|
+
const inferredAuthorized = explicitAuthorized ?? authorizationEvidence;
|
|
81
|
+
const rawHeld = firstBoolean(raw.ship_held, raw.shipHeld);
|
|
82
|
+
const inferredHeld = status === "ready_to_ship" && shippingDisabled && !inferredAuthorized;
|
|
83
|
+
const shipHeld = rawHeld ?? (state.ship_held === true || inferredHeld);
|
|
84
|
+
return {
|
|
85
|
+
ship_held: shipHeld,
|
|
86
|
+
shipping_disabled: shippingDisabled,
|
|
87
|
+
ship_authorized: shipHeld ? false : inferredAuthorized
|
|
88
|
+
};
|
|
89
|
+
}
|
|
51
90
|
|
|
52
91
|
// src/checkpoint.ts
|
|
53
92
|
var import_node_crypto = __toESM(require("crypto"), 1);
|
|
@@ -218,6 +257,7 @@ function createRiddleProofRunCard(state, input = {}) {
|
|
|
218
257
|
const visualDelta = visualDeltaFrom({ fullRiddleState: fullState, runState: state });
|
|
219
258
|
const artifacts = artifactsFrom({ fullRiddleState: fullState, runState: state });
|
|
220
259
|
const viewportMatrix = viewportMatrixFrom({ fullRiddleState: fullState, runState: state });
|
|
260
|
+
const shipControl = shipControlStateFor({ state });
|
|
221
261
|
return {
|
|
222
262
|
version: RIDDLE_PROOF_RUN_CARD_VERSION,
|
|
223
263
|
run_id: state.run_id || "unknown",
|
|
@@ -271,6 +311,9 @@ function createRiddleProofRunCard(state, input = {}) {
|
|
|
271
311
|
stop_condition: compactRecord({
|
|
272
312
|
status: state.status,
|
|
273
313
|
terminal: isTerminalStatus(state.status),
|
|
314
|
+
ship_held: shipControl.ship_held,
|
|
315
|
+
shipping_disabled: shipControl.shipping_disabled,
|
|
316
|
+
ship_authorized: shipControl.ship_authorized,
|
|
274
317
|
blocker_code: state.blocker?.code || null,
|
|
275
318
|
blocker_message: state.blocker?.message || null,
|
|
276
319
|
proof_decision: state.proof_decision,
|
package/dist/run-card.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
RIDDLE_PROOF_RUN_CARD_VERSION,
|
|
3
3
|
createRiddleProofRunCard
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-KNPCWWF3.js";
|
|
5
|
+
import "./chunk-MOTQNIZX.js";
|
|
6
|
+
import "./chunk-CUBYSWZT.js";
|
|
7
7
|
import "./chunk-MLKGABMK.js";
|
|
8
8
|
export {
|
|
9
9
|
RIDDLE_PROOF_RUN_CARD_VERSION,
|
package/dist/runner.cjs
CHANGED
|
@@ -35,6 +35,9 @@ __export(runner_exports, {
|
|
|
35
35
|
module.exports = __toCommonJS(runner_exports);
|
|
36
36
|
|
|
37
37
|
// src/result.ts
|
|
38
|
+
function isProtectedFinalStatus(status) {
|
|
39
|
+
return status === "ready_to_ship" || status === "shipped" || status === "completed";
|
|
40
|
+
}
|
|
38
41
|
function isSuccessfulStatus(status) {
|
|
39
42
|
return status !== "blocked" && status !== "failed";
|
|
40
43
|
}
|
|
@@ -47,6 +50,12 @@ function nonEmptyString(value) {
|
|
|
47
50
|
function recordValue(value) {
|
|
48
51
|
return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
|
|
49
52
|
}
|
|
53
|
+
function firstBoolean(...values) {
|
|
54
|
+
for (const value of values) {
|
|
55
|
+
if (typeof value === "boolean") return value;
|
|
56
|
+
}
|
|
57
|
+
return void 0;
|
|
58
|
+
}
|
|
50
59
|
function applyTerminalMetadata(state, metadata) {
|
|
51
60
|
if (metadata.pr_state) {
|
|
52
61
|
state.pr_state = metadata.pr_state;
|
|
@@ -63,6 +72,9 @@ function applyTerminalMetadata(state, metadata) {
|
|
|
63
72
|
if (prBranch) state.pr_branch = prBranch;
|
|
64
73
|
if (typeof metadata.marked_ready === "boolean") state.marked_ready = metadata.marked_ready;
|
|
65
74
|
if (typeof metadata.left_draft === "boolean") state.left_draft = metadata.left_draft;
|
|
75
|
+
if (typeof metadata.ship_held === "boolean") state.ship_held = metadata.ship_held;
|
|
76
|
+
if (typeof metadata.shipping_disabled === "boolean") state.shipping_disabled = metadata.shipping_disabled;
|
|
77
|
+
if (typeof metadata.ship_authorized === "boolean") state.ship_authorized = metadata.ship_authorized;
|
|
66
78
|
const ciStatus = nonEmptyString(metadata.ci_status);
|
|
67
79
|
if (ciStatus) state.ci_status = ciStatus;
|
|
68
80
|
const shipCommit = nonEmptyString(metadata.ship_commit);
|
|
@@ -94,12 +106,54 @@ function applyTerminalMetadata(state, metadata) {
|
|
|
94
106
|
if (typeof metadata.finalized === "boolean") state.finalized = metadata.finalized;
|
|
95
107
|
return state;
|
|
96
108
|
}
|
|
109
|
+
function shipControlStateFor(input) {
|
|
110
|
+
const state = input.state;
|
|
111
|
+
const status = input.status || state.status;
|
|
112
|
+
const raw = recordValue(input.raw) || {};
|
|
113
|
+
const shipReport = recordValue(state.ship_report) || {};
|
|
114
|
+
const prState = recordValue(state.pr_state) || {};
|
|
115
|
+
const shippingDisabled = firstBoolean(
|
|
116
|
+
raw.shipping_disabled,
|
|
117
|
+
raw.shippingDisabled,
|
|
118
|
+
state.shipping_disabled,
|
|
119
|
+
shipReport.shipping_disabled,
|
|
120
|
+
shipReport.shippingDisabled
|
|
121
|
+
) ?? state.request?.ship_mode === "none";
|
|
122
|
+
const explicitAuthorized = firstBoolean(
|
|
123
|
+
raw.ship_authorized,
|
|
124
|
+
raw.shipAuthorized,
|
|
125
|
+
state.ship_authorized,
|
|
126
|
+
shipReport.ship_authorized,
|
|
127
|
+
shipReport.shipAuthorized
|
|
128
|
+
);
|
|
129
|
+
const authorizationEvidence = Boolean(
|
|
130
|
+
status === "shipped" || state.marked_ready === true || shipReport.marked_ready === true || prState.status === "merged" || state.merge_commit || state.merged_at
|
|
131
|
+
);
|
|
132
|
+
const inferredAuthorized = explicitAuthorized ?? authorizationEvidence;
|
|
133
|
+
const rawHeld = firstBoolean(raw.ship_held, raw.shipHeld);
|
|
134
|
+
const inferredHeld = status === "ready_to_ship" && shippingDisabled && !inferredAuthorized;
|
|
135
|
+
const shipHeld = rawHeld ?? (state.ship_held === true || inferredHeld);
|
|
136
|
+
return {
|
|
137
|
+
ship_held: shipHeld,
|
|
138
|
+
shipping_disabled: shippingDisabled,
|
|
139
|
+
ship_authorized: shipHeld ? false : inferredAuthorized
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
function applyShipControlState(state, input = {}) {
|
|
143
|
+
const control = shipControlStateFor({ state, status: input.status, raw: input.raw });
|
|
144
|
+
state.ship_held = control.ship_held;
|
|
145
|
+
state.shipping_disabled = control.shipping_disabled;
|
|
146
|
+
state.ship_authorized = control.ship_authorized;
|
|
147
|
+
return state;
|
|
148
|
+
}
|
|
97
149
|
function createRunResult(input) {
|
|
98
150
|
const status = input.status || input.state.status;
|
|
99
151
|
const ok = isSuccessfulStatus(status);
|
|
100
152
|
const state = input.metadata ? applyTerminalMetadata(input.state, input.metadata) : input.state;
|
|
101
153
|
state.status = status;
|
|
102
154
|
state.ok = ok;
|
|
155
|
+
if (isProtectedFinalStatus(status)) state.finalized = true;
|
|
156
|
+
applyShipControlState(state, { status, raw: input.raw });
|
|
103
157
|
return compactRecord({
|
|
104
158
|
ok,
|
|
105
159
|
status,
|
|
@@ -117,6 +171,9 @@ function createRunResult(input) {
|
|
|
117
171
|
pr_state: state.pr_state,
|
|
118
172
|
marked_ready: state.marked_ready,
|
|
119
173
|
left_draft: state.left_draft,
|
|
174
|
+
ship_held: state.ship_held,
|
|
175
|
+
shipping_disabled: state.shipping_disabled,
|
|
176
|
+
ship_authorized: state.ship_authorized,
|
|
120
177
|
ci_status: state.ci_status,
|
|
121
178
|
ship_commit: state.ship_commit,
|
|
122
179
|
ship_remote_head: state.ship_remote_head,
|
|
@@ -295,6 +352,7 @@ function appendStageHeartbeat(state, input) {
|
|
|
295
352
|
function setRunStatus(state, status, at = timestamp()) {
|
|
296
353
|
state.status = status;
|
|
297
354
|
state.ok = status !== "blocked" && status !== "failed";
|
|
355
|
+
if (isProtectedFinalStatus(status)) state.finalized = true;
|
|
298
356
|
state.updated_at = at;
|
|
299
357
|
return state;
|
|
300
358
|
}
|
|
@@ -770,7 +828,7 @@ async function runRiddleProof(input) {
|
|
|
770
828
|
status: "ready_to_ship",
|
|
771
829
|
last_summary: assessment.summary,
|
|
772
830
|
evidence_bundle: evidenceBundle,
|
|
773
|
-
raw: { implementation, assessment }
|
|
831
|
+
raw: { implementation, assessment, ship_held: true, shipping_disabled: true, ship_authorized: false }
|
|
774
832
|
});
|
|
775
833
|
return notifyIfConfigured({ state, result: result2, notification: adapters.notification });
|
|
776
834
|
}
|
package/dist/runner.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runRiddleProof
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-JLOZTVXU.js";
|
|
4
|
+
import "./chunk-UZIX7M7D.js";
|
|
5
|
+
import "./chunk-KNPCWWF3.js";
|
|
6
6
|
import "./chunk-EKZXU6MU.js";
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-MOTQNIZX.js";
|
|
8
|
+
import "./chunk-CUBYSWZT.js";
|
|
9
9
|
import "./chunk-MLKGABMK.js";
|
|
10
10
|
export {
|
|
11
11
|
runRiddleProof
|
package/dist/spec/checkpoint.cjs
CHANGED
|
@@ -759,6 +759,8 @@ function checkpointSummaryFromState(state, engineStatePath) {
|
|
|
759
759
|
const packets = history.filter((entry) => entry.packet);
|
|
760
760
|
const responses = acceptedCheckpointResponseEntries(state);
|
|
761
761
|
const duplicateResponses = events.filter((event) => event.kind === "checkpoint.response.duplicate");
|
|
762
|
+
const rejectedResponses = events.filter((event) => event.kind === "checkpoint.response.rejected");
|
|
763
|
+
const ignoredResponses = events.filter((event) => event.kind === "checkpoint.response.ignored");
|
|
762
764
|
const latestPacketEntry = [...history].reverse().find((entry) => entry.packet);
|
|
763
765
|
const latestResponseEntry = [...responses].reverse().find((entry) => entry.response);
|
|
764
766
|
const latestPacket = state.checkpoint_packet || latestPacketEntry?.packet;
|
|
@@ -774,6 +776,8 @@ function checkpointSummaryFromState(state, engineStatePath) {
|
|
|
774
776
|
packet_count: packets.length,
|
|
775
777
|
response_count: responses.length,
|
|
776
778
|
duplicate_response_count: duplicateResponses.length,
|
|
779
|
+
rejected_response_count: rejectedResponses.length,
|
|
780
|
+
ignored_response_count: ignoredResponses.length,
|
|
777
781
|
latest_checkpoint: state.checkpoint_packet?.checkpoint || latestResponse?.checkpoint || state.last_checkpoint || null,
|
|
778
782
|
latest_stage: state.checkpoint_packet?.stage || latestResponse?.continue_with_stage || state.current_stage || null,
|
|
779
783
|
latest_kind: state.checkpoint_packet?.kind || latestPacket?.kind || null,
|
package/dist/spec/checkpoint.js
CHANGED
|
@@ -14,8 +14,8 @@ import {
|
|
|
14
14
|
normalizeCheckpointResponse,
|
|
15
15
|
proofContractFromAuthorCheckpointResponse,
|
|
16
16
|
statePathsForRunState
|
|
17
|
-
} from "../chunk-
|
|
18
|
-
import "../chunk-
|
|
17
|
+
} from "../chunk-MOTQNIZX.js";
|
|
18
|
+
import "../chunk-CUBYSWZT.js";
|
|
19
19
|
import "../chunk-MLKGABMK.js";
|
|
20
20
|
export {
|
|
21
21
|
RIDDLE_PROOF_CHECKPOINT_PACKET_VERSION,
|