@riddledc/riddle-proof 0.7.0 → 0.7.1
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/{chunk-MO24D3PY.js → chunk-4DM3OTWH.js} +3 -0
- package/dist/{chunk-RFJ5BQF6.js → chunk-FPD2RF3Q.js} +40 -3
- package/dist/{chunk-RXFKKYWA.js → chunk-HIKFPDRO.js} +63 -48
- package/dist/{chunk-D3M2FAYQ.js → chunk-N5BVCRKI.js} +7 -3
- package/dist/cli.cjs +149 -20
- package/dist/cli.js +3 -3
- package/dist/engine-harness.cjs +149 -20
- package/dist/engine-harness.js +3 -3
- package/dist/index.cjs +209 -67
- package/dist/index.js +4 -4
- package/dist/openclaw.cjs +6 -0
- package/dist/openclaw.d.cts +3 -0
- package/dist/openclaw.d.ts +3 -0
- package/dist/openclaw.js +4 -1
- package/dist/proof-run-core.cjs +42 -3
- package/dist/proof-run-core.d.cts +13 -3
- package/dist/proof-run-core.d.ts +13 -3
- package/dist/proof-run-core.js +5 -1
- package/dist/proof-run-engine.cjs +142 -19
- package/dist/proof-run-engine.d.cts +43 -3
- package/dist/proof-run-engine.d.ts +43 -3
- package/dist/proof-run-engine.js +106 -17
- package/dist/runner.cjs +107 -47
- package/dist/runner.js +3 -2
- package/dist/state.cjs +3 -0
- package/dist/state.js +1 -1
- package/dist/types.d.cts +3 -0
- package/dist/types.d.ts +3 -0
- package/package.json +1 -1
|
@@ -21,6 +21,11 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
|
|
|
21
21
|
repo: any;
|
|
22
22
|
branch: any;
|
|
23
23
|
mode: any;
|
|
24
|
+
workflow_mode: any;
|
|
25
|
+
implementation_mode: any;
|
|
26
|
+
require_diff: any;
|
|
27
|
+
allow_code_changes: any;
|
|
28
|
+
no_implementation_mode: boolean;
|
|
24
29
|
reference: any;
|
|
25
30
|
before_ref: any;
|
|
26
31
|
allow_static_preview_fallback: boolean;
|
|
@@ -113,6 +118,11 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
|
|
|
113
118
|
repo: any;
|
|
114
119
|
branch: any;
|
|
115
120
|
mode: any;
|
|
121
|
+
workflow_mode: any;
|
|
122
|
+
implementation_mode: any;
|
|
123
|
+
require_diff: any;
|
|
124
|
+
allow_code_changes: any;
|
|
125
|
+
no_implementation_mode: boolean;
|
|
116
126
|
reference: any;
|
|
117
127
|
before_ref: any;
|
|
118
128
|
allow_static_preview_fallback: boolean;
|
|
@@ -203,6 +213,11 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
|
|
|
203
213
|
repo: any;
|
|
204
214
|
branch: any;
|
|
205
215
|
mode: any;
|
|
216
|
+
workflow_mode: any;
|
|
217
|
+
implementation_mode: any;
|
|
218
|
+
require_diff: any;
|
|
219
|
+
allow_code_changes: any;
|
|
220
|
+
no_implementation_mode: boolean;
|
|
206
221
|
reference: any;
|
|
207
222
|
before_ref: any;
|
|
208
223
|
allow_static_preview_fallback: boolean;
|
|
@@ -277,7 +292,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
|
|
|
277
292
|
blocking?: boolean;
|
|
278
293
|
details?: Record<string, unknown>;
|
|
279
294
|
ok: boolean;
|
|
280
|
-
action: "
|
|
295
|
+
action: "setup" | "recon" | "author" | "implement" | "verify" | "ship" | "run";
|
|
281
296
|
state_path: string;
|
|
282
297
|
stage: any;
|
|
283
298
|
summary: string;
|
|
@@ -286,6 +301,11 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
|
|
|
286
301
|
repo: any;
|
|
287
302
|
branch: any;
|
|
288
303
|
mode: any;
|
|
304
|
+
workflow_mode: any;
|
|
305
|
+
implementation_mode: any;
|
|
306
|
+
require_diff: any;
|
|
307
|
+
allow_code_changes: any;
|
|
308
|
+
no_implementation_mode: boolean;
|
|
289
309
|
reference: any;
|
|
290
310
|
before_ref: any;
|
|
291
311
|
allow_static_preview_fallback: boolean;
|
|
@@ -362,7 +382,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
|
|
|
362
382
|
continueWithStage?: WorkflowStage | null;
|
|
363
383
|
blocking?: boolean;
|
|
364
384
|
details?: Record<string, unknown>;
|
|
365
|
-
action: "
|
|
385
|
+
action: "setup" | "recon" | "author" | "implement" | "verify" | "ship" | "run";
|
|
366
386
|
state_path: string;
|
|
367
387
|
stage: any;
|
|
368
388
|
checkpoint: string;
|
|
@@ -372,6 +392,11 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
|
|
|
372
392
|
repo: any;
|
|
373
393
|
branch: any;
|
|
374
394
|
mode: any;
|
|
395
|
+
workflow_mode: any;
|
|
396
|
+
implementation_mode: any;
|
|
397
|
+
require_diff: any;
|
|
398
|
+
allow_code_changes: any;
|
|
399
|
+
no_implementation_mode: boolean;
|
|
375
400
|
reference: any;
|
|
376
401
|
before_ref: any;
|
|
377
402
|
allow_static_preview_fallback: boolean;
|
|
@@ -462,6 +487,11 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
|
|
|
462
487
|
repo: any;
|
|
463
488
|
branch: any;
|
|
464
489
|
mode: any;
|
|
490
|
+
workflow_mode: any;
|
|
491
|
+
implementation_mode: any;
|
|
492
|
+
require_diff: any;
|
|
493
|
+
allow_code_changes: any;
|
|
494
|
+
no_implementation_mode: boolean;
|
|
465
495
|
reference: any;
|
|
466
496
|
before_ref: any;
|
|
467
497
|
allow_static_preview_fallback: boolean;
|
|
@@ -550,6 +580,11 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
|
|
|
550
580
|
repo: any;
|
|
551
581
|
branch: any;
|
|
552
582
|
mode: any;
|
|
583
|
+
workflow_mode: any;
|
|
584
|
+
implementation_mode: any;
|
|
585
|
+
require_diff: any;
|
|
586
|
+
allow_code_changes: any;
|
|
587
|
+
no_implementation_mode: boolean;
|
|
553
588
|
reference: any;
|
|
554
589
|
before_ref: any;
|
|
555
590
|
allow_static_preview_fallback: boolean;
|
|
@@ -624,7 +659,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
|
|
|
624
659
|
error?: undefined;
|
|
625
660
|
} | {
|
|
626
661
|
ok: boolean;
|
|
627
|
-
action: "
|
|
662
|
+
action: "setup" | "recon" | "author" | "implement" | "verify" | "ship" | "run";
|
|
628
663
|
state_path: string;
|
|
629
664
|
stage: any;
|
|
630
665
|
summary: string;
|
|
@@ -633,6 +668,11 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
|
|
|
633
668
|
repo: any;
|
|
634
669
|
branch: any;
|
|
635
670
|
mode: any;
|
|
671
|
+
workflow_mode: any;
|
|
672
|
+
implementation_mode: any;
|
|
673
|
+
require_diff: any;
|
|
674
|
+
allow_code_changes: any;
|
|
675
|
+
no_implementation_mode: boolean;
|
|
636
676
|
reference: any;
|
|
637
677
|
before_ref: any;
|
|
638
678
|
allow_static_preview_fallback: boolean;
|
package/dist/proof-run-engine.js
CHANGED
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
ensureAction,
|
|
7
7
|
invalidateVerifyEvidence,
|
|
8
8
|
mergeStateFromParams,
|
|
9
|
+
noImplementationModeFor,
|
|
9
10
|
readState,
|
|
10
11
|
recordStageAttempt,
|
|
11
12
|
resolveConfig,
|
|
@@ -14,7 +15,7 @@ import {
|
|
|
14
15
|
validateShipGate,
|
|
15
16
|
workflowFile,
|
|
16
17
|
writeState
|
|
17
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-FPD2RF3Q.js";
|
|
18
19
|
|
|
19
20
|
// src/proof-run-engine.ts
|
|
20
21
|
import { execFileSync } from "child_process";
|
|
@@ -29,8 +30,11 @@ function authorReady(state) {
|
|
|
29
30
|
function implementationReady(state) {
|
|
30
31
|
return ["changes_detected", "completed"].includes(state?.implementation_status || "");
|
|
31
32
|
}
|
|
32
|
-
function
|
|
33
|
-
return
|
|
33
|
+
function implementationRequired(params, state) {
|
|
34
|
+
return !noImplementationModeFor(params, state);
|
|
35
|
+
}
|
|
36
|
+
function stageAfterAuthor(state, params) {
|
|
37
|
+
return implementationReady(state) || !implementationRequired(params, state) ? "verify" : "implement";
|
|
34
38
|
}
|
|
35
39
|
function latestReconAttempt(state) {
|
|
36
40
|
const history = Array.isArray(state?.recon_results?.attempt_history) ? state.recon_results.attempt_history : [];
|
|
@@ -241,7 +245,7 @@ function recommendedAdvanceStage(state) {
|
|
|
241
245
|
if (!state?.workspace_ready) return "setup";
|
|
242
246
|
if (!state?.recon_results || ["needs_agent_decision", "needs_supervisor_judgment"].includes(state?.recon_status || "")) return "recon";
|
|
243
247
|
if (!authorReady(state)) return "author";
|
|
244
|
-
if (!implementationReady(state)) return "implement";
|
|
248
|
+
if (!implementationReady(state) && !noImplementationModeFor(state)) return "implement";
|
|
245
249
|
if (state?.verify_status === "capture_incomplete") return verifyAssessment(state).continueWithStage || verifyAssessment(state).recommendedStage || "author";
|
|
246
250
|
if (state?.verify_status === "evidence_captured") return verifyAssessment(state).continueWithStage || verifyAssessment(state).recommendedStage;
|
|
247
251
|
if (!(state?.after_cdn || "").trim()) return "verify";
|
|
@@ -866,6 +870,7 @@ async function executeWorkflow(params, pluginConfig, resolvedConfig) {
|
|
|
866
870
|
checkpoint: params.advance_stage === "setup" ? "setup_review" : null,
|
|
867
871
|
autoApproved: setupRes.autoApproved || false
|
|
868
872
|
});
|
|
873
|
+
mergeStateFromParams(config.statePath, params);
|
|
869
874
|
state = readState(config.statePath);
|
|
870
875
|
if (params.advance_stage === "setup") {
|
|
871
876
|
return checkpoint(
|
|
@@ -1163,7 +1168,8 @@ async function executeWorkflow(params, pluginConfig, resolvedConfig) {
|
|
|
1163
1168
|
}
|
|
1164
1169
|
);
|
|
1165
1170
|
}
|
|
1166
|
-
const
|
|
1171
|
+
const noImplementationMode = !implementationRequired(params, state);
|
|
1172
|
+
const authorNextStage = stageAfterAuthor(state, params);
|
|
1167
1173
|
const explicitAuthorDebug = params.advance_stage === "author";
|
|
1168
1174
|
recordAttempt("author", "completed", "Author applied the supervising agent's proof packet to recon observations.", {
|
|
1169
1175
|
autoApproved: authorRes.autoApproved || false,
|
|
@@ -1181,7 +1187,7 @@ async function executeWorkflow(params, pluginConfig, resolvedConfig) {
|
|
|
1181
1187
|
return checkpoint(
|
|
1182
1188
|
"author",
|
|
1183
1189
|
"author_review",
|
|
1184
|
-
authorNextStage === "verify" ? "Author applied the supervising agent's proof packet. Because implementation is already recorded, you can continue straight into verify." : "Author applied the supervising agent's proof packet. Inspect it if needed, then continue into implement.",
|
|
1190
|
+
authorNextStage === "verify" ? noImplementationMode ? "Author applied the supervising agent's proof packet. Audit/no-diff mode disables implementation, so you can continue straight into verify." : "Author applied the supervising agent's proof packet. Because implementation is already recorded, you can continue straight into verify." : "Author applied the supervising agent's proof packet. Inspect it if needed, then continue into implement.",
|
|
1185
1191
|
{
|
|
1186
1192
|
nextActions: authorNextStage === "verify" ? ["inspect_proof_packet", "advance_run_to_verify", "rerun_author"] : ["inspect_proof_packet", "advance_run_to_implement", "rerun_author"],
|
|
1187
1193
|
advanceOptions: authorNextStage === "verify" ? ["author", "verify", "recon"] : ["author", "implement", "recon"],
|
|
@@ -1214,13 +1220,14 @@ async function executeWorkflow(params, pluginConfig, resolvedConfig) {
|
|
|
1214
1220
|
}
|
|
1215
1221
|
if (!effectiveAdvanceStage) {
|
|
1216
1222
|
const recommended = recommendedAdvanceStage(state);
|
|
1223
|
+
const noImplementationMode = !implementationRequired(params, state);
|
|
1217
1224
|
return checkpoint(
|
|
1218
|
-
recommended || "implement",
|
|
1225
|
+
recommended || (noImplementationMode ? "verify" : "implement"),
|
|
1219
1226
|
"awaiting_stage_advance",
|
|
1220
1227
|
"Proof authoring is ready. The wrapper will not guess the next stage from here, explicitly choose whether to revisit recon/author, validate implementation, capture verify evidence, or ship.",
|
|
1221
1228
|
{
|
|
1222
1229
|
nextActions: ["inspect_state", "set_advance_stage", "resume_run"],
|
|
1223
|
-
advanceOptions: ["recon", "author", "implement", "verify", "ship"],
|
|
1230
|
+
advanceOptions: noImplementationMode ? ["recon", "author", "verify", "ship"] : ["recon", "author", "implement", "verify", "ship"],
|
|
1224
1231
|
recommendedAdvanceStage: recommended,
|
|
1225
1232
|
details: { executed },
|
|
1226
1233
|
executed
|
|
@@ -1228,6 +1235,26 @@ async function executeWorkflow(params, pluginConfig, resolvedConfig) {
|
|
|
1228
1235
|
);
|
|
1229
1236
|
}
|
|
1230
1237
|
if (effectiveAdvanceStage === "implement") {
|
|
1238
|
+
if (!implementationRequired(params, state)) {
|
|
1239
|
+
recordAttempt("implement", "checkpoint", "Implementation stage was skipped because audit/no-diff mode disables code changes.", {
|
|
1240
|
+
checkpoint: "implement_disabled_for_audit",
|
|
1241
|
+
details: { executed }
|
|
1242
|
+
});
|
|
1243
|
+
return checkpoint(
|
|
1244
|
+
"verify",
|
|
1245
|
+
"implement_disabled_for_audit",
|
|
1246
|
+
"Audit/no-diff mode disables implementation. Continue to verify against the existing target; do not launch an implementation agent or require a git diff.",
|
|
1247
|
+
{
|
|
1248
|
+
nextActions: ["advance_run_to_verify", "inspect_author_packet", "rerun_recon_if_target_changed"],
|
|
1249
|
+
advanceOptions: ["verify", "author", "recon"],
|
|
1250
|
+
recommendedAdvanceStage: "verify",
|
|
1251
|
+
continueWithStage: "verify",
|
|
1252
|
+
blocking: false,
|
|
1253
|
+
details: { executed },
|
|
1254
|
+
executed
|
|
1255
|
+
}
|
|
1256
|
+
);
|
|
1257
|
+
}
|
|
1231
1258
|
const implementRes = runOne("implement");
|
|
1232
1259
|
executed.push(executedStep(implementRes));
|
|
1233
1260
|
if (implementRes.haltedForApproval) {
|
|
@@ -1318,7 +1345,8 @@ ${implementRes.stderr || ""}`;
|
|
|
1318
1345
|
}
|
|
1319
1346
|
if (effectiveAdvanceStage === "verify") {
|
|
1320
1347
|
state = readState(config.statePath);
|
|
1321
|
-
|
|
1348
|
+
const needsImplementation = implementationRequired(params, state);
|
|
1349
|
+
if (needsImplementation && !implementationReady(state)) {
|
|
1322
1350
|
return checkpoint(
|
|
1323
1351
|
"implement",
|
|
1324
1352
|
"implement_required",
|
|
@@ -1335,6 +1363,18 @@ ${implementRes.stderr || ""}`;
|
|
|
1335
1363
|
}
|
|
1336
1364
|
);
|
|
1337
1365
|
}
|
|
1366
|
+
if (!needsImplementation && !implementationReady(state)) {
|
|
1367
|
+
recordAttempt("implement", "completed", "Implementation stage is not required for this audit/no-diff run.", {
|
|
1368
|
+
checkpoint: "implementation_not_required",
|
|
1369
|
+
details: { executed }
|
|
1370
|
+
});
|
|
1371
|
+
state = updateState(config.statePath, (currentState) => {
|
|
1372
|
+
currentState.implementation_status = "not_required";
|
|
1373
|
+
currentState.implementation_mode = currentState.implementation_mode || "none";
|
|
1374
|
+
if (currentState.require_diff === void 0) currentState.require_diff = false;
|
|
1375
|
+
if (currentState.allow_code_changes === void 0) currentState.allow_code_changes = false;
|
|
1376
|
+
});
|
|
1377
|
+
}
|
|
1338
1378
|
const hasIncomingProofAssessment = typeof params.proof_assessment_json === "string" && params.proof_assessment_json.trim().length > 0;
|
|
1339
1379
|
const canReuseVerifyEvidence = (params.advance_stage !== "verify" || hasIncomingProofAssessment) && state?.verify_status === "evidence_captured" && Boolean((state?.after_cdn || "").trim()) && (state?.active_checkpoint === "verify_supervisor_judgment" || hasSupervisorProofAssessment(state));
|
|
1340
1380
|
let verifyRes = { ok: true, step: "verify", reusedEvidence: canReuseVerifyEvidence };
|
|
@@ -1357,8 +1397,13 @@ ${implementRes.stderr || ""}`;
|
|
|
1357
1397
|
const verifySummary = state?.verify_summary || state?.proof_summary || null;
|
|
1358
1398
|
const proofAssessment = verifyAssessment(state);
|
|
1359
1399
|
const convergenceSignals = nonConvergenceSignals(state, proofAssessment);
|
|
1360
|
-
const
|
|
1361
|
-
const
|
|
1400
|
+
const rawVerifyRecommendedStage = proofAssessment.recommendedStage || null;
|
|
1401
|
+
const verifyRecommendedStage = !needsImplementation && rawVerifyRecommendedStage === "implement" ? "verify" : rawVerifyRecommendedStage;
|
|
1402
|
+
const rawVerifyContinueWithStage = shouldEscalateVerifyToHuman(state, proofAssessment) ? null : proofAssessment.continueWithStage || verifyRecommendedStage || null;
|
|
1403
|
+
const verifyContinueWithStage = !needsImplementation && rawVerifyContinueWithStage === "implement" ? "verify" : rawVerifyContinueWithStage;
|
|
1404
|
+
const verifyLoopAdvanceOptions = needsImplementation ? ["author", "verify", "implement", "recon"] : ["author", "verify", "recon"];
|
|
1405
|
+
const verifyReviewAdvanceOptions = needsImplementation ? ["verify", "author", "implement", "recon", "ship"] : ["verify", "author", "recon"];
|
|
1406
|
+
const verifyRetryAdvanceOptions = needsImplementation ? ["author", "implement", "ship", "verify", "recon"] : ["author", "verify", "recon"];
|
|
1362
1407
|
const verifyDetails = {
|
|
1363
1408
|
executed,
|
|
1364
1409
|
verifyStatus,
|
|
@@ -1396,7 +1441,7 @@ ${implementRes.stderr || ""}`;
|
|
|
1396
1441
|
{
|
|
1397
1442
|
ok: true,
|
|
1398
1443
|
nextActions: ["inspect_after_capture", "continue_internal_loop_with_checkpoint", "return_to_recon_if_baseline_is_wrong"],
|
|
1399
|
-
advanceOptions:
|
|
1444
|
+
advanceOptions: verifyLoopAdvanceOptions,
|
|
1400
1445
|
recommendedAdvanceStage: verifyRecommendedStage || "author",
|
|
1401
1446
|
continueWithStage: verifyContinueWithStage || "author",
|
|
1402
1447
|
blocking: false,
|
|
@@ -1424,7 +1469,7 @@ ${implementRes.stderr || ""}`;
|
|
|
1424
1469
|
summary,
|
|
1425
1470
|
{
|
|
1426
1471
|
nextActions: ["inspect_evidence", "author_proof_assessment_json", "continue_internal_loop_with_checkpoint"],
|
|
1427
|
-
advanceOptions:
|
|
1472
|
+
advanceOptions: verifyReviewAdvanceOptions,
|
|
1428
1473
|
recommendedAdvanceStage: "verify",
|
|
1429
1474
|
continueWithStage: "verify",
|
|
1430
1475
|
blocking: false,
|
|
@@ -1454,7 +1499,7 @@ ${implementRes.stderr || ""}`;
|
|
|
1454
1499
|
{
|
|
1455
1500
|
ok: false,
|
|
1456
1501
|
nextActions: ["inspect_retry_history", "summarize_internal_loop", "ask_human_for_direction"],
|
|
1457
|
-
advanceOptions:
|
|
1502
|
+
advanceOptions: verifyRetryAdvanceOptions,
|
|
1458
1503
|
recommendedAdvanceStage: null,
|
|
1459
1504
|
continueWithStage: null,
|
|
1460
1505
|
blocking: true,
|
|
@@ -1469,7 +1514,7 @@ ${implementRes.stderr || ""}`;
|
|
|
1469
1514
|
}
|
|
1470
1515
|
);
|
|
1471
1516
|
}
|
|
1472
|
-
const shouldAutoShip = verifyContinueWithStage === "ship" && (params.ship_after_verify || params.continue_from_checkpoint || params.advance_stage !== "verify");
|
|
1517
|
+
const shouldAutoShip = verifyContinueWithStage === "ship" && needsImplementation && (params.ship_after_verify || params.continue_from_checkpoint || params.advance_stage !== "verify");
|
|
1473
1518
|
if (shouldAutoShip) {
|
|
1474
1519
|
const shipGate = validateShipGate(state);
|
|
1475
1520
|
if (!shipGate.ok) {
|
|
@@ -1527,6 +1572,33 @@ ${implementRes.stderr || ""}`;
|
|
|
1527
1572
|
};
|
|
1528
1573
|
}
|
|
1529
1574
|
if (proofAssessment.decision === "ready_to_ship") {
|
|
1575
|
+
if (!needsImplementation) {
|
|
1576
|
+
recordAttempt("verify", "completed", "Verify captured a proof packet for audit/no-diff mode; shipping remains disabled.", {
|
|
1577
|
+
autoApproved: verifyRes.autoApproved || false,
|
|
1578
|
+
checkpoint: "verify_audit_complete",
|
|
1579
|
+
details: verifyDetails
|
|
1580
|
+
});
|
|
1581
|
+
return checkpoint(
|
|
1582
|
+
"verify",
|
|
1583
|
+
"verify_audit_complete",
|
|
1584
|
+
"The supervising agent judged the audit proof sufficient. Audit/no-diff mode disables ship, PR creation, implementation agents, and git-diff requirements.",
|
|
1585
|
+
{
|
|
1586
|
+
nextActions: ["inspect_evidence", "report_audit_result", "rerun_verify_if_needed"],
|
|
1587
|
+
advanceOptions: ["verify", "author", "recon"],
|
|
1588
|
+
recommendedAdvanceStage: "verify",
|
|
1589
|
+
continueWithStage: null,
|
|
1590
|
+
blocking: false,
|
|
1591
|
+
details: verifyDetails,
|
|
1592
|
+
verifyStatus,
|
|
1593
|
+
verifySummary,
|
|
1594
|
+
afterCdn: state?.after_cdn || null,
|
|
1595
|
+
mergeRecommendation: state?.merge_recommendation || null,
|
|
1596
|
+
verifyDecisionRequest,
|
|
1597
|
+
proofAssessment: proofAssessment.raw,
|
|
1598
|
+
executed
|
|
1599
|
+
}
|
|
1600
|
+
);
|
|
1601
|
+
}
|
|
1530
1602
|
const shipGate = validateShipGate(state);
|
|
1531
1603
|
if (!shipGate.ok) {
|
|
1532
1604
|
recordAttempt("verify", "checkpoint", "Verify cannot mark ship ready because the hard ship gate is missing required evidence or approval.", {
|
|
@@ -1583,8 +1655,8 @@ ${implementRes.stderr || ""}`;
|
|
|
1583
1655
|
unresolvedSummary,
|
|
1584
1656
|
{
|
|
1585
1657
|
ok: true,
|
|
1586
|
-
nextActions: convergenceSignals.warning ? ["inspect_retry_history", "decide_whether_to_keep_iterating_or_escalate", "continue_internal_loop_with_checkpoint"] : ["inspect_proof_assessment", "continue_internal_loop_with_checkpoint", "return_to_implement_if_fix_failed"],
|
|
1587
|
-
advanceOptions:
|
|
1658
|
+
nextActions: convergenceSignals.warning ? ["inspect_retry_history", "decide_whether_to_keep_iterating_or_escalate", "continue_internal_loop_with_checkpoint"] : needsImplementation ? ["inspect_proof_assessment", "continue_internal_loop_with_checkpoint", "return_to_implement_if_fix_failed"] : ["inspect_proof_assessment", "continue_internal_loop_with_checkpoint", "rerun_author_if_proof_contract_is_wrong"],
|
|
1659
|
+
advanceOptions: verifyRetryAdvanceOptions,
|
|
1588
1660
|
recommendedAdvanceStage: verifyRecommendedStage,
|
|
1589
1661
|
continueWithStage: verifyContinueWithStage,
|
|
1590
1662
|
blocking: false,
|
|
@@ -1601,6 +1673,23 @@ ${implementRes.stderr || ""}`;
|
|
|
1601
1673
|
}
|
|
1602
1674
|
if (effectiveAdvanceStage === "ship") {
|
|
1603
1675
|
state = readState(config.statePath);
|
|
1676
|
+
if (!implementationRequired(params, state)) {
|
|
1677
|
+
return checkpoint(
|
|
1678
|
+
"verify",
|
|
1679
|
+
"ship_disabled_for_audit",
|
|
1680
|
+
"Audit/no-diff mode disables ship and PR creation. Report the audit result from verify evidence instead.",
|
|
1681
|
+
{
|
|
1682
|
+
ok: false,
|
|
1683
|
+
nextActions: ["inspect_verify_state", "report_audit_result"],
|
|
1684
|
+
advanceOptions: ["verify", "author", "recon"],
|
|
1685
|
+
recommendedAdvanceStage: "verify",
|
|
1686
|
+
continueWithStage: "verify",
|
|
1687
|
+
blocking: true,
|
|
1688
|
+
details: { executed },
|
|
1689
|
+
executed
|
|
1690
|
+
}
|
|
1691
|
+
);
|
|
1692
|
+
}
|
|
1604
1693
|
const shipAssessment = verifyAssessment(state);
|
|
1605
1694
|
const shipGate = validateShipGate(state);
|
|
1606
1695
|
if (state?.verify_status !== "evidence_captured") {
|
package/dist/runner.cjs
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __export = (target, all) => {
|
|
7
9
|
for (var name in all)
|
|
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
17
|
}
|
|
16
18
|
return to;
|
|
17
19
|
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
18
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
29
|
|
|
20
30
|
// src/runner.ts
|
|
@@ -188,6 +198,9 @@ function normalizeRunParams(input) {
|
|
|
188
198
|
context: input.context,
|
|
189
199
|
reviewer: input.reviewer,
|
|
190
200
|
mode: input.mode,
|
|
201
|
+
implementation_mode: input.implementation_mode,
|
|
202
|
+
require_diff: input.require_diff,
|
|
203
|
+
allow_code_changes: input.allow_code_changes,
|
|
191
204
|
build_command: input.build_command,
|
|
192
205
|
build_output: input.build_output,
|
|
193
206
|
server_image: input.server_image,
|
|
@@ -285,6 +298,41 @@ function setRunStatus(state, status, at = timestamp()) {
|
|
|
285
298
|
return state;
|
|
286
299
|
}
|
|
287
300
|
|
|
301
|
+
// src/proof-run-core.ts
|
|
302
|
+
var import_node_fs = require("fs");
|
|
303
|
+
var import_node_crypto = require("crypto");
|
|
304
|
+
var import_node_path = __toESM(require("path"), 1);
|
|
305
|
+
var import_node_url = require("url");
|
|
306
|
+
var import_meta = {};
|
|
307
|
+
function normalizedMode(value) {
|
|
308
|
+
return typeof value === "string" ? value.trim().toLowerCase() : "";
|
|
309
|
+
}
|
|
310
|
+
function noImplementationModeInput(value) {
|
|
311
|
+
return value && typeof value === "object" ? value : {};
|
|
312
|
+
}
|
|
313
|
+
function noImplementationModeFor(params, state) {
|
|
314
|
+
const input = noImplementationModeInput(params);
|
|
315
|
+
const stateInput = noImplementationModeInput(state);
|
|
316
|
+
const mode = normalizedMode(input.mode ?? input.workflow_mode ?? stateInput.mode ?? stateInput.workflow_mode);
|
|
317
|
+
const implementationMode = normalizedMode(input.implementation_mode ?? stateInput.implementation_mode);
|
|
318
|
+
const requireDiff = input.require_diff ?? stateInput.require_diff;
|
|
319
|
+
const allowCodeChanges = input.allow_code_changes ?? stateInput.allow_code_changes;
|
|
320
|
+
return mode === "audit" || mode === "profile" || implementationMode === "none" || requireDiff === false || allowCodeChanges === false;
|
|
321
|
+
}
|
|
322
|
+
function currentDistDir() {
|
|
323
|
+
const meta = typeof import_meta === "object" ? import_meta : {};
|
|
324
|
+
if (typeof meta.url === "string" && meta.url) {
|
|
325
|
+
return import_node_path.default.dirname((0, import_node_url.fileURLToPath)(meta.url));
|
|
326
|
+
}
|
|
327
|
+
if (typeof __dirname === "string") return __dirname;
|
|
328
|
+
return process.cwd();
|
|
329
|
+
}
|
|
330
|
+
var BUNDLED_RIDDLE_PROOF_DIR = import_node_path.default.resolve(
|
|
331
|
+
currentDistDir(),
|
|
332
|
+
"..",
|
|
333
|
+
"runtime"
|
|
334
|
+
);
|
|
335
|
+
|
|
288
336
|
// src/runner.ts
|
|
289
337
|
function errorDetails(error) {
|
|
290
338
|
if (error instanceof Error) {
|
|
@@ -485,6 +533,7 @@ async function runRiddleProof(input) {
|
|
|
485
533
|
}
|
|
486
534
|
}
|
|
487
535
|
const changeRequest = state.request.change_request?.trim();
|
|
536
|
+
const noImplementationMode = noImplementationModeFor(state.request);
|
|
488
537
|
if (!changeRequest) {
|
|
489
538
|
return blockRun({
|
|
490
539
|
state,
|
|
@@ -492,14 +541,14 @@ async function runRiddleProof(input) {
|
|
|
492
541
|
blocker: adapterBlocker("change_request_required", "A change request is required before implementation.", "request_invalid")
|
|
493
542
|
});
|
|
494
543
|
}
|
|
495
|
-
if (!workdir) {
|
|
544
|
+
if (!noImplementationMode && !workdir) {
|
|
496
545
|
return blockRun({
|
|
497
546
|
state,
|
|
498
547
|
stage: "setup",
|
|
499
548
|
blocker: adapterBlocker("workdir_not_configured", "A workdir or setup adapter result is required before implementation.", "setup_required")
|
|
500
549
|
});
|
|
501
550
|
}
|
|
502
|
-
if (!adapters.implementation) {
|
|
551
|
+
if (!noImplementationMode && !adapters.implementation) {
|
|
503
552
|
return blockRun({
|
|
504
553
|
state,
|
|
505
554
|
stage: "implement",
|
|
@@ -525,57 +574,68 @@ async function runRiddleProof(input) {
|
|
|
525
574
|
let assessment;
|
|
526
575
|
for (let attempt = 0; attempt < maxIterations; attempt += 1) {
|
|
527
576
|
state.iterations += 1;
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
stage: "implement",
|
|
537
|
-
summary: "Implementation adapter started.",
|
|
538
|
-
details: { iteration: state.iterations }
|
|
539
|
-
});
|
|
540
|
-
try {
|
|
541
|
-
implementation = await adapters.implementation.implement({
|
|
542
|
-
workdir,
|
|
543
|
-
change_request: changeRequest,
|
|
544
|
-
evidence_context: evidenceContext,
|
|
545
|
-
state
|
|
577
|
+
if (noImplementationMode) {
|
|
578
|
+
state.implementation_status = "not_required";
|
|
579
|
+
appendRunEvent(state, {
|
|
580
|
+
kind: "implementation.skipped",
|
|
581
|
+
checkpoint: "implementation_not_required",
|
|
582
|
+
stage: "implement",
|
|
583
|
+
summary: "Implementation stage skipped because audit/no-diff mode disables code changes.",
|
|
584
|
+
details: { iteration: state.iterations }
|
|
546
585
|
});
|
|
547
|
-
}
|
|
548
|
-
|
|
549
|
-
state,
|
|
586
|
+
} else {
|
|
587
|
+
appendStageHeartbeat(state, {
|
|
550
588
|
stage: "implement",
|
|
551
|
-
|
|
552
|
-
|
|
589
|
+
summary: "Implementation stage is active.",
|
|
590
|
+
details: { iteration: state.iterations }
|
|
553
591
|
});
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
state,
|
|
592
|
+
appendRunEvent(state, {
|
|
593
|
+
kind: "implementation.started",
|
|
594
|
+
checkpoint: "implementation_started",
|
|
558
595
|
stage: "implement",
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
"The implementation adapter did not complete successfully.",
|
|
562
|
-
"implementation_failed",
|
|
563
|
-
{ blockers: implementation.blockers }
|
|
564
|
-
),
|
|
565
|
-
evidence_bundle: evidenceBundle,
|
|
566
|
-
raw: { implementation }
|
|
596
|
+
summary: "Implementation adapter started.",
|
|
597
|
+
details: { iteration: state.iterations }
|
|
567
598
|
});
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
599
|
+
try {
|
|
600
|
+
implementation = await adapters.implementation.implement({
|
|
601
|
+
workdir,
|
|
602
|
+
change_request: changeRequest,
|
|
603
|
+
evidence_context: evidenceContext,
|
|
604
|
+
state
|
|
605
|
+
});
|
|
606
|
+
} catch (error) {
|
|
607
|
+
return blockRun({
|
|
608
|
+
state,
|
|
609
|
+
stage: "implement",
|
|
610
|
+
blocker: adapterBlocker("implementation_exception", "The implementation adapter threw an exception.", "implementation_failed", errorDetails(error)),
|
|
611
|
+
evidence_bundle: evidenceBundle
|
|
612
|
+
});
|
|
577
613
|
}
|
|
578
|
-
|
|
614
|
+
if (!implementation.ok) {
|
|
615
|
+
return blockRun({
|
|
616
|
+
state,
|
|
617
|
+
stage: "implement",
|
|
618
|
+
blocker: adapterBlocker(
|
|
619
|
+
"implementation_failed",
|
|
620
|
+
"The implementation adapter did not complete successfully.",
|
|
621
|
+
"implementation_failed",
|
|
622
|
+
{ blockers: implementation.blockers }
|
|
623
|
+
),
|
|
624
|
+
evidence_bundle: evidenceBundle,
|
|
625
|
+
raw: { implementation }
|
|
626
|
+
});
|
|
627
|
+
}
|
|
628
|
+
appendRunEvent(state, {
|
|
629
|
+
kind: "implementation.completed",
|
|
630
|
+
checkpoint: "implementation_completed",
|
|
631
|
+
stage: "implement",
|
|
632
|
+
summary: "Implementation adapter completed.",
|
|
633
|
+
details: {
|
|
634
|
+
changed_files: implementation.changed_files,
|
|
635
|
+
tests_run: implementation.tests_run
|
|
636
|
+
}
|
|
637
|
+
});
|
|
638
|
+
}
|
|
579
639
|
appendStageHeartbeat(state, {
|
|
580
640
|
stage: "prove",
|
|
581
641
|
summary: "Proof capture stage is active.",
|
package/dist/runner.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
runRiddleProof
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-HIKFPDRO.js";
|
|
4
|
+
import "./chunk-4DM3OTWH.js";
|
|
5
5
|
import "./chunk-3UHWI3FO.js";
|
|
6
|
+
import "./chunk-FPD2RF3Q.js";
|
|
6
7
|
import "./chunk-33XO42CY.js";
|
|
7
8
|
import "./chunk-DUFDZJOF.js";
|
|
8
9
|
export {
|
package/dist/state.cjs
CHANGED
|
@@ -361,6 +361,9 @@ function normalizeRunParams(input) {
|
|
|
361
361
|
context: input.context,
|
|
362
362
|
reviewer: input.reviewer,
|
|
363
363
|
mode: input.mode,
|
|
364
|
+
implementation_mode: input.implementation_mode,
|
|
365
|
+
require_diff: input.require_diff,
|
|
366
|
+
allow_code_changes: input.allow_code_changes,
|
|
364
367
|
build_command: input.build_command,
|
|
365
368
|
build_output: input.build_output,
|
|
366
369
|
server_image: input.server_image,
|
package/dist/state.js
CHANGED
package/dist/types.d.cts
CHANGED
|
@@ -31,6 +31,9 @@ interface RiddleProofRunParams {
|
|
|
31
31
|
context?: string;
|
|
32
32
|
reviewer?: string;
|
|
33
33
|
mode?: string;
|
|
34
|
+
implementation_mode?: "change" | "none" | (string & {});
|
|
35
|
+
require_diff?: boolean;
|
|
36
|
+
allow_code_changes?: boolean;
|
|
34
37
|
build_command?: string;
|
|
35
38
|
build_output?: string;
|
|
36
39
|
server_image?: string;
|
package/dist/types.d.ts
CHANGED
|
@@ -31,6 +31,9 @@ interface RiddleProofRunParams {
|
|
|
31
31
|
context?: string;
|
|
32
32
|
reviewer?: string;
|
|
33
33
|
mode?: string;
|
|
34
|
+
implementation_mode?: "change" | "none" | (string & {});
|
|
35
|
+
require_diff?: boolean;
|
|
36
|
+
allow_code_changes?: boolean;
|
|
34
37
|
build_command?: string;
|
|
35
38
|
build_output?: string;
|
|
36
39
|
server_image?: string;
|