@riddledc/riddle-proof 0.8.55 → 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.
Files changed (66) hide show
  1. package/dist/adapters/codex-exec-agent.js +2 -2
  2. package/dist/adapters/codex.js +2 -2
  3. package/dist/adapters/local-agent.js +2 -2
  4. package/dist/adapters/openclaw.js +5 -5
  5. package/dist/advanced/engine-harness.cjs +64 -20
  6. package/dist/advanced/engine-harness.js +5 -5
  7. package/dist/advanced/index.cjs +64 -20
  8. package/dist/advanced/index.d.cts +1 -1
  9. package/dist/advanced/index.d.ts +1 -1
  10. package/dist/advanced/index.js +6 -6
  11. package/dist/advanced/proof-run-engine.d.cts +1 -1
  12. package/dist/advanced/proof-run-engine.d.ts +1 -1
  13. package/dist/advanced/runner.cjs +5 -0
  14. package/dist/advanced/runner.js +5 -5
  15. package/dist/checkpoint.cjs +4 -0
  16. package/dist/checkpoint.js +2 -2
  17. package/dist/{chunk-MYMTAVGP.js → chunk-54DIEDR3.js} +3 -3
  18. package/dist/{chunk-W44XEGYW.js → chunk-CUBYSWZT.js} +5 -0
  19. package/dist/{chunk-QGE3KBRL.js → chunk-GHBNDHG7.js} +60 -24
  20. package/dist/{chunk-F65S5LT2.js → chunk-JLOZTVXU.js} +2 -2
  21. package/dist/{chunk-NYRMPWJB.js → chunk-KNPCWWF3.js} +2 -2
  22. package/dist/{chunk-QUK3SG24.js → chunk-MOTQNIZX.js} +5 -1
  23. package/dist/{chunk-SONWF3FQ.js → chunk-RS4HJLJQ.js} +1 -1
  24. package/dist/{chunk-J2ZNL3H3.js → chunk-TTB3ZAVX.js} +2 -2
  25. package/dist/{chunk-Q5GYD5RG.js → chunk-UZIX7M7D.js} +4 -2
  26. package/dist/cli/index.js +7 -7
  27. package/dist/cli.cjs +64 -20
  28. package/dist/cli.js +7 -7
  29. package/dist/codex-exec-agent.js +2 -2
  30. package/dist/engine-harness.cjs +64 -20
  31. package/dist/engine-harness.js +5 -5
  32. package/dist/index.cjs +66 -20
  33. package/dist/index.d.cts +1 -1
  34. package/dist/index.d.ts +1 -1
  35. package/dist/index.js +9 -7
  36. package/dist/local-agent.js +2 -2
  37. package/dist/openclaw.js +5 -5
  38. package/dist/{proof-run-engine-MiKZt9oY.d.ts → proof-run-engine-BqRoA3Do.d.ts} +3 -3
  39. package/dist/{proof-run-engine-Baiv6l3A.d.cts → proof-run-engine-DpChFR5H.d.cts} +3 -3
  40. package/dist/proof-run-engine.d.cts +1 -1
  41. package/dist/proof-run-engine.d.ts +1 -1
  42. package/dist/result.cjs +6 -0
  43. package/dist/result.d.cts +2 -1
  44. package/dist/result.d.ts +2 -1
  45. package/dist/result.js +3 -1
  46. package/dist/run-card.js +3 -3
  47. package/dist/runner.cjs +5 -0
  48. package/dist/runner.js +5 -5
  49. package/dist/spec/checkpoint.cjs +4 -0
  50. package/dist/spec/checkpoint.js +2 -2
  51. package/dist/spec/index.cjs +11 -0
  52. package/dist/spec/index.d.cts +1 -1
  53. package/dist/spec/index.d.ts +1 -1
  54. package/dist/spec/index.js +6 -4
  55. package/dist/spec/result.cjs +6 -0
  56. package/dist/spec/result.d.cts +1 -1
  57. package/dist/spec/result.d.ts +1 -1
  58. package/dist/spec/result.js +3 -1
  59. package/dist/spec/run-card.js +3 -3
  60. package/dist/spec/state.cjs +4 -0
  61. package/dist/spec/state.js +4 -4
  62. package/dist/state.cjs +4 -0
  63. package/dist/state.js +4 -4
  64. package/dist/types.d.cts +2 -0
  65. package/dist/types.d.ts +2 -0
  66. package/package.json +1 -1
@@ -3421,6 +3421,9 @@ var import_node_crypto3 = __toESM(require("crypto"), 1);
3421
3421
  function isTerminalStatus(status) {
3422
3422
  return status === "blocked" || status === "failed" || status === "ready_to_ship" || status === "shipped" || status === "completed";
3423
3423
  }
3424
+ function isProtectedFinalStatus(status) {
3425
+ return status === "ready_to_ship" || status === "shipped" || status === "completed";
3426
+ }
3424
3427
  function isSuccessfulStatus(status) {
3425
3428
  return status !== "blocked" && status !== "failed";
3426
3429
  }
@@ -3634,6 +3637,7 @@ function createRunResult(input) {
3634
3637
  const state = input.metadata ? applyTerminalMetadata(input.state, input.metadata) : input.state;
3635
3638
  state.status = status;
3636
3639
  state.ok = ok;
3640
+ if (isProtectedFinalStatus(status)) state.finalized = true;
3637
3641
  applyShipControlState(state, { status, raw: input.raw });
3638
3642
  return compactRecord({
3639
3643
  ok,
@@ -4291,6 +4295,8 @@ function checkpointSummaryFromState(state, engineStatePath2) {
4291
4295
  const packets = history.filter((entry) => entry.packet);
4292
4296
  const responses = acceptedCheckpointResponseEntries(state);
4293
4297
  const duplicateResponses = events.filter((event) => event.kind === "checkpoint.response.duplicate");
4298
+ const rejectedResponses = events.filter((event) => event.kind === "checkpoint.response.rejected");
4299
+ const ignoredResponses = events.filter((event) => event.kind === "checkpoint.response.ignored");
4294
4300
  const latestPacketEntry = [...history].reverse().find((entry) => entry.packet);
4295
4301
  const latestResponseEntry = [...responses].reverse().find((entry) => entry.response);
4296
4302
  const latestPacket = state.checkpoint_packet || latestPacketEntry?.packet;
@@ -4306,6 +4312,8 @@ function checkpointSummaryFromState(state, engineStatePath2) {
4306
4312
  packet_count: packets.length,
4307
4313
  response_count: responses.length,
4308
4314
  duplicate_response_count: duplicateResponses.length,
4315
+ rejected_response_count: rejectedResponses.length,
4316
+ ignored_response_count: ignoredResponses.length,
4309
4317
  latest_checkpoint: state.checkpoint_packet?.checkpoint || latestResponse?.checkpoint || state.last_checkpoint || null,
4310
4318
  latest_stage: state.checkpoint_packet?.stage || latestResponse?.continue_with_stage || state.current_stage || null,
4311
4319
  latest_kind: state.checkpoint_packet?.kind || latestPacket?.kind || null,
@@ -4804,6 +4812,7 @@ function createRunStatusSnapshot(state, at = timestamp2()) {
4804
4812
  function setRunStatus(state, status, at = timestamp2()) {
4805
4813
  state.status = status;
4806
4814
  state.ok = status !== "blocked" && status !== "failed";
4815
+ if (isProtectedFinalStatus(status)) state.finalized = true;
4807
4816
  state.updated_at = at;
4808
4817
  return state;
4809
4818
  }
@@ -4872,9 +4881,6 @@ function loadRunState(input) {
4872
4881
  state_path: statePath
4873
4882
  });
4874
4883
  }
4875
- function isProtectedFinalStatus(status) {
4876
- return status === "ready_to_ship" || status === "shipped" || status === "completed";
4877
- }
4878
4884
  function shouldPreserveFinalizedRunState(filePath, incoming) {
4879
4885
  const existing = readJson(filePath);
4880
4886
  if (!existing?.finalized || !isProtectedFinalStatus(existing.status)) return false;
@@ -5446,19 +5452,38 @@ function appendCheckpointResponse(state, response, input = {}) {
5446
5452
  setRunStatus(state, "running", at);
5447
5453
  persist(state);
5448
5454
  }
5455
+ function checkpointResponseRejectedBlocker(state, input) {
5456
+ const packet = input.packet || null;
5457
+ const response = input.response || null;
5458
+ appendRunEvent(state, {
5459
+ kind: "checkpoint.response.rejected",
5460
+ checkpoint: response?.checkpoint || packet?.checkpoint || input.blocker.checkpoint || null,
5461
+ stage: packet?.stage || state.current_stage || "author",
5462
+ summary: input.blocker.message,
5463
+ details: compactRecord({
5464
+ code: input.blocker.code,
5465
+ decision: response?.decision,
5466
+ resume_token: response?.resume_token,
5467
+ packet_id: response?.packet_id,
5468
+ source: response?.source
5469
+ })
5470
+ });
5471
+ return { blocker: input.blocker };
5472
+ }
5449
5473
  function checkpointResponseContinuation(state, value) {
5450
5474
  if (!value) return {};
5451
5475
  const packet = state.checkpoint_packet;
5452
5476
  const response = normalizeCheckpointResponse(value);
5453
5477
  if (!response) {
5454
- return {
5478
+ return checkpointResponseRejectedBlocker(state, {
5479
+ packet,
5455
5480
  blocker: {
5456
5481
  code: "checkpoint_response_invalid",
5457
5482
  checkpoint: packet?.checkpoint || state.last_checkpoint || null,
5458
5483
  message: "Checkpoint response was not a valid riddle-proof.checkpoint_response.v1 object.",
5459
5484
  details: { checkpoint_packet: packet || null, checkpoint_summary: checkpointSummaryFromState(state) }
5460
5485
  }
5461
- };
5486
+ });
5462
5487
  }
5463
5488
  if (isDuplicateCheckpointResponse(state, response)) {
5464
5489
  const stage = packet?.stage || state.current_stage || "author";
@@ -5489,17 +5514,20 @@ function checkpointResponseContinuation(state, value) {
5489
5514
  };
5490
5515
  }
5491
5516
  if (!packet) {
5492
- return {
5517
+ return checkpointResponseRejectedBlocker(state, {
5518
+ response,
5493
5519
  blocker: {
5494
5520
  code: "checkpoint_response_without_packet",
5495
5521
  checkpoint: response.checkpoint,
5496
5522
  message: "A checkpoint response was supplied, but the run state has no pending checkpoint packet.",
5497
5523
  details: { response, checkpoint_summary: checkpointSummaryFromState(state) }
5498
5524
  }
5499
- };
5525
+ });
5500
5526
  }
5501
5527
  if (response.run_id !== packet.run_id || response.checkpoint !== packet.checkpoint) {
5502
- return {
5528
+ return checkpointResponseRejectedBlocker(state, {
5529
+ packet,
5530
+ response,
5503
5531
  blocker: {
5504
5532
  code: "checkpoint_response_mismatch",
5505
5533
  checkpoint: packet.checkpoint,
@@ -5510,10 +5538,12 @@ function checkpointResponseContinuation(state, value) {
5510
5538
  actual: { run_id: response.run_id, checkpoint: response.checkpoint }
5511
5539
  }
5512
5540
  }
5513
- };
5541
+ });
5514
5542
  }
5515
5543
  if (packet.resume_token && response.resume_token !== packet.resume_token) {
5516
- return {
5544
+ return checkpointResponseRejectedBlocker(state, {
5545
+ packet,
5546
+ response,
5517
5547
  blocker: {
5518
5548
  code: "checkpoint_response_resume_token_mismatch",
5519
5549
  checkpoint: packet.checkpoint,
@@ -5524,10 +5554,12 @@ function checkpointResponseContinuation(state, value) {
5524
5554
  actual_resume_token: response.resume_token || null
5525
5555
  }
5526
5556
  }
5527
- };
5557
+ });
5528
5558
  }
5529
5559
  if (packet.packet_id && response.packet_id !== packet.packet_id) {
5530
- return {
5560
+ return checkpointResponseRejectedBlocker(state, {
5561
+ packet,
5562
+ response,
5531
5563
  blocker: {
5532
5564
  code: "checkpoint_response_packet_id_mismatch",
5533
5565
  checkpoint: packet.checkpoint,
@@ -5540,10 +5572,12 @@ function checkpointResponseContinuation(state, value) {
5540
5572
  actual_resume_token: response.resume_token || null
5541
5573
  }
5542
5574
  }
5543
- };
5575
+ });
5544
5576
  }
5545
5577
  if (!packet.allowed_decisions.includes(response.decision)) {
5546
- return {
5578
+ return checkpointResponseRejectedBlocker(state, {
5579
+ packet,
5580
+ response,
5547
5581
  blocker: {
5548
5582
  code: "checkpoint_response_decision_not_allowed",
5549
5583
  checkpoint: packet.checkpoint,
@@ -5555,7 +5589,7 @@ function checkpointResponseContinuation(state, value) {
5555
5589
  response
5556
5590
  }
5557
5591
  }
5558
- };
5592
+ });
5559
5593
  }
5560
5594
  const base = {
5561
5595
  action: "run",
@@ -5565,14 +5599,16 @@ function checkpointResponseContinuation(state, value) {
5565
5599
  if (response.decision === "author_packet") {
5566
5600
  const payload = authorPacketPayloadFromCheckpointResponse(response);
5567
5601
  if (!payload) {
5568
- return {
5602
+ return checkpointResponseRejectedBlocker(state, {
5603
+ packet,
5604
+ response,
5569
5605
  blocker: {
5570
5606
  code: "checkpoint_author_packet_missing",
5571
5607
  checkpoint: packet.checkpoint,
5572
5608
  message: "Checkpoint response decision=author_packet did not include a proof_plan and capture_script payload.",
5573
5609
  details: { stage: packet.stage, response }
5574
5610
  }
5575
- };
5611
+ });
5576
5612
  }
5577
5613
  state.proof_contract = proofContractFromAuthorCheckpointResponse(response, packet, payload);
5578
5614
  appendCheckpointResponse(state, response);
@@ -5601,14 +5637,16 @@ function checkpointResponseContinuation(state, value) {
5601
5637
  const workdir = nonEmptyString(packet.state_excerpt?.after_worktree) || state.worktree_path;
5602
5638
  if (workdir) state.worktree_path = workdir;
5603
5639
  if (!hasGitDiff(workdir)) {
5604
- return {
5640
+ return checkpointResponseRejectedBlocker(state, {
5641
+ packet,
5642
+ response,
5605
5643
  blocker: {
5606
5644
  code: "implementation_diff_missing",
5607
5645
  checkpoint: packet.checkpoint,
5608
5646
  message: "Checkpoint response claimed implementation_complete, but the after worktree has no detectable git diff.",
5609
5647
  details: { stage: packet.stage, worktree_path: workdir || null, response }
5610
5648
  }
5611
- };
5649
+ });
5612
5650
  }
5613
5651
  appendCheckpointResponse(state, response);
5614
5652
  return {
@@ -5657,7 +5695,13 @@ function checkpointResponseContinuation(state, value) {
5657
5695
  response,
5658
5696
  code: "checkpoint_response_source_not_trusted"
5659
5697
  });
5660
- if (sourceBlocker) return { blocker: sourceBlocker };
5698
+ if (sourceBlocker) {
5699
+ return checkpointResponseRejectedBlocker(state, {
5700
+ packet,
5701
+ response,
5702
+ blocker: sourceBlocker
5703
+ });
5704
+ }
5661
5705
  appendCheckpointResponse(state, response);
5662
5706
  if (state.request.ship_mode !== "ship" && proofAssessmentRequestsShip(assessment)) {
5663
5707
  const result = {
@@ -2,12 +2,12 @@ import {
2
2
  createDisabledRiddleProofAgentAdapter,
3
3
  readRiddleProofRunStatus,
4
4
  runRiddleProofEngineHarness
5
- } from "./chunk-QGE3KBRL.js";
6
- import "./chunk-Q5GYD5RG.js";
7
- import "./chunk-NYRMPWJB.js";
5
+ } from "./chunk-GHBNDHG7.js";
6
+ import "./chunk-UZIX7M7D.js";
7
+ import "./chunk-KNPCWWF3.js";
8
8
  import "./chunk-EKZXU6MU.js";
9
- import "./chunk-QUK3SG24.js";
10
- import "./chunk-W44XEGYW.js";
9
+ import "./chunk-MOTQNIZX.js";
10
+ import "./chunk-CUBYSWZT.js";
11
11
  import "./chunk-MLKGABMK.js";
12
12
  export {
13
13
  createDisabledRiddleProofAgentAdapter,
package/dist/index.cjs CHANGED
@@ -3493,6 +3493,7 @@ __export(index_exports, {
3493
3493
  extractRiddleProofProfileResult: () => extractRiddleProofProfileResult,
3494
3494
  getRiddleBalance: () => getRiddleBalance,
3495
3495
  isDuplicateCheckpointResponse: () => isDuplicateCheckpointResponse,
3496
+ isProtectedFinalStatus: () => isProtectedFinalStatus,
3496
3497
  isRiddleProofPlayabilityMode: () => isRiddleProofPlayabilityMode,
3497
3498
  isSuccessfulStatus: () => isSuccessfulStatus,
3498
3499
  isTerminalRiddleJobStatus: () => isTerminalRiddleJobStatus,
@@ -3543,6 +3544,9 @@ module.exports = __toCommonJS(index_exports);
3543
3544
  function isTerminalStatus(status) {
3544
3545
  return status === "blocked" || status === "failed" || status === "ready_to_ship" || status === "shipped" || status === "completed";
3545
3546
  }
3547
+ function isProtectedFinalStatus(status) {
3548
+ return status === "ready_to_ship" || status === "shipped" || status === "completed";
3549
+ }
3546
3550
  function isSuccessfulStatus(status) {
3547
3551
  return status !== "blocked" && status !== "failed";
3548
3552
  }
@@ -3756,6 +3760,7 @@ function createRunResult(input) {
3756
3760
  const state = input.metadata ? applyTerminalMetadata(input.state, input.metadata) : input.state;
3757
3761
  state.status = status;
3758
3762
  state.ok = ok;
3763
+ if (isProtectedFinalStatus(status)) state.finalized = true;
3759
3764
  applyShipControlState(state, { status, raw: input.raw });
3760
3765
  return compactRecord({
3761
3766
  ok,
@@ -4503,6 +4508,8 @@ function checkpointSummaryFromState(state, engineStatePath2) {
4503
4508
  const packets = history.filter((entry) => entry.packet);
4504
4509
  const responses = acceptedCheckpointResponseEntries(state);
4505
4510
  const duplicateResponses = events.filter((event) => event.kind === "checkpoint.response.duplicate");
4511
+ const rejectedResponses = events.filter((event) => event.kind === "checkpoint.response.rejected");
4512
+ const ignoredResponses = events.filter((event) => event.kind === "checkpoint.response.ignored");
4506
4513
  const latestPacketEntry = [...history].reverse().find((entry) => entry.packet);
4507
4514
  const latestResponseEntry = [...responses].reverse().find((entry) => entry.response);
4508
4515
  const latestPacket = state.checkpoint_packet || latestPacketEntry?.packet;
@@ -4518,6 +4525,8 @@ function checkpointSummaryFromState(state, engineStatePath2) {
4518
4525
  packet_count: packets.length,
4519
4526
  response_count: responses.length,
4520
4527
  duplicate_response_count: duplicateResponses.length,
4528
+ rejected_response_count: rejectedResponses.length,
4529
+ ignored_response_count: ignoredResponses.length,
4521
4530
  latest_checkpoint: state.checkpoint_packet?.checkpoint || latestResponse?.checkpoint || state.last_checkpoint || null,
4522
4531
  latest_stage: state.checkpoint_packet?.stage || latestResponse?.continue_with_stage || state.current_stage || null,
4523
4532
  latest_kind: state.checkpoint_packet?.kind || latestPacket?.kind || null,
@@ -5046,6 +5055,7 @@ function createRunStatusSnapshot(state, at = timestamp2()) {
5046
5055
  function setRunStatus(state, status, at = timestamp2()) {
5047
5056
  state.status = status;
5048
5057
  state.ok = status !== "blocked" && status !== "failed";
5058
+ if (isProtectedFinalStatus(status)) state.finalized = true;
5049
5059
  state.updated_at = at;
5050
5060
  return state;
5051
5061
  }
@@ -5630,9 +5640,6 @@ function loadRunState(input) {
5630
5640
  state_path: statePath
5631
5641
  });
5632
5642
  }
5633
- function isProtectedFinalStatus(status) {
5634
- return status === "ready_to_ship" || status === "shipped" || status === "completed";
5635
- }
5636
5643
  function shouldPreserveFinalizedRunState(filePath, incoming) {
5637
5644
  const existing = readJson(filePath);
5638
5645
  if (!existing?.finalized || !isProtectedFinalStatus(existing.status)) return false;
@@ -6204,19 +6211,38 @@ function appendCheckpointResponse(state, response, input = {}) {
6204
6211
  setRunStatus(state, "running", at);
6205
6212
  persist(state);
6206
6213
  }
6214
+ function checkpointResponseRejectedBlocker(state, input) {
6215
+ const packet = input.packet || null;
6216
+ const response = input.response || null;
6217
+ appendRunEvent(state, {
6218
+ kind: "checkpoint.response.rejected",
6219
+ checkpoint: response?.checkpoint || packet?.checkpoint || input.blocker.checkpoint || null,
6220
+ stage: packet?.stage || state.current_stage || "author",
6221
+ summary: input.blocker.message,
6222
+ details: compactRecord({
6223
+ code: input.blocker.code,
6224
+ decision: response?.decision,
6225
+ resume_token: response?.resume_token,
6226
+ packet_id: response?.packet_id,
6227
+ source: response?.source
6228
+ })
6229
+ });
6230
+ return { blocker: input.blocker };
6231
+ }
6207
6232
  function checkpointResponseContinuation(state, value) {
6208
6233
  if (!value) return {};
6209
6234
  const packet = state.checkpoint_packet;
6210
6235
  const response = normalizeCheckpointResponse(value);
6211
6236
  if (!response) {
6212
- return {
6237
+ return checkpointResponseRejectedBlocker(state, {
6238
+ packet,
6213
6239
  blocker: {
6214
6240
  code: "checkpoint_response_invalid",
6215
6241
  checkpoint: packet?.checkpoint || state.last_checkpoint || null,
6216
6242
  message: "Checkpoint response was not a valid riddle-proof.checkpoint_response.v1 object.",
6217
6243
  details: { checkpoint_packet: packet || null, checkpoint_summary: checkpointSummaryFromState(state) }
6218
6244
  }
6219
- };
6245
+ });
6220
6246
  }
6221
6247
  if (isDuplicateCheckpointResponse(state, response)) {
6222
6248
  const stage = packet?.stage || state.current_stage || "author";
@@ -6247,17 +6273,20 @@ function checkpointResponseContinuation(state, value) {
6247
6273
  };
6248
6274
  }
6249
6275
  if (!packet) {
6250
- return {
6276
+ return checkpointResponseRejectedBlocker(state, {
6277
+ response,
6251
6278
  blocker: {
6252
6279
  code: "checkpoint_response_without_packet",
6253
6280
  checkpoint: response.checkpoint,
6254
6281
  message: "A checkpoint response was supplied, but the run state has no pending checkpoint packet.",
6255
6282
  details: { response, checkpoint_summary: checkpointSummaryFromState(state) }
6256
6283
  }
6257
- };
6284
+ });
6258
6285
  }
6259
6286
  if (response.run_id !== packet.run_id || response.checkpoint !== packet.checkpoint) {
6260
- return {
6287
+ return checkpointResponseRejectedBlocker(state, {
6288
+ packet,
6289
+ response,
6261
6290
  blocker: {
6262
6291
  code: "checkpoint_response_mismatch",
6263
6292
  checkpoint: packet.checkpoint,
@@ -6268,10 +6297,12 @@ function checkpointResponseContinuation(state, value) {
6268
6297
  actual: { run_id: response.run_id, checkpoint: response.checkpoint }
6269
6298
  }
6270
6299
  }
6271
- };
6300
+ });
6272
6301
  }
6273
6302
  if (packet.resume_token && response.resume_token !== packet.resume_token) {
6274
- return {
6303
+ return checkpointResponseRejectedBlocker(state, {
6304
+ packet,
6305
+ response,
6275
6306
  blocker: {
6276
6307
  code: "checkpoint_response_resume_token_mismatch",
6277
6308
  checkpoint: packet.checkpoint,
@@ -6282,10 +6313,12 @@ function checkpointResponseContinuation(state, value) {
6282
6313
  actual_resume_token: response.resume_token || null
6283
6314
  }
6284
6315
  }
6285
- };
6316
+ });
6286
6317
  }
6287
6318
  if (packet.packet_id && response.packet_id !== packet.packet_id) {
6288
- return {
6319
+ return checkpointResponseRejectedBlocker(state, {
6320
+ packet,
6321
+ response,
6289
6322
  blocker: {
6290
6323
  code: "checkpoint_response_packet_id_mismatch",
6291
6324
  checkpoint: packet.checkpoint,
@@ -6298,10 +6331,12 @@ function checkpointResponseContinuation(state, value) {
6298
6331
  actual_resume_token: response.resume_token || null
6299
6332
  }
6300
6333
  }
6301
- };
6334
+ });
6302
6335
  }
6303
6336
  if (!packet.allowed_decisions.includes(response.decision)) {
6304
- return {
6337
+ return checkpointResponseRejectedBlocker(state, {
6338
+ packet,
6339
+ response,
6305
6340
  blocker: {
6306
6341
  code: "checkpoint_response_decision_not_allowed",
6307
6342
  checkpoint: packet.checkpoint,
@@ -6313,7 +6348,7 @@ function checkpointResponseContinuation(state, value) {
6313
6348
  response
6314
6349
  }
6315
6350
  }
6316
- };
6351
+ });
6317
6352
  }
6318
6353
  const base = {
6319
6354
  action: "run",
@@ -6323,14 +6358,16 @@ function checkpointResponseContinuation(state, value) {
6323
6358
  if (response.decision === "author_packet") {
6324
6359
  const payload = authorPacketPayloadFromCheckpointResponse(response);
6325
6360
  if (!payload) {
6326
- return {
6361
+ return checkpointResponseRejectedBlocker(state, {
6362
+ packet,
6363
+ response,
6327
6364
  blocker: {
6328
6365
  code: "checkpoint_author_packet_missing",
6329
6366
  checkpoint: packet.checkpoint,
6330
6367
  message: "Checkpoint response decision=author_packet did not include a proof_plan and capture_script payload.",
6331
6368
  details: { stage: packet.stage, response }
6332
6369
  }
6333
- };
6370
+ });
6334
6371
  }
6335
6372
  state.proof_contract = proofContractFromAuthorCheckpointResponse(response, packet, payload);
6336
6373
  appendCheckpointResponse(state, response);
@@ -6359,14 +6396,16 @@ function checkpointResponseContinuation(state, value) {
6359
6396
  const workdir = nonEmptyString(packet.state_excerpt?.after_worktree) || state.worktree_path;
6360
6397
  if (workdir) state.worktree_path = workdir;
6361
6398
  if (!hasGitDiff(workdir)) {
6362
- return {
6399
+ return checkpointResponseRejectedBlocker(state, {
6400
+ packet,
6401
+ response,
6363
6402
  blocker: {
6364
6403
  code: "implementation_diff_missing",
6365
6404
  checkpoint: packet.checkpoint,
6366
6405
  message: "Checkpoint response claimed implementation_complete, but the after worktree has no detectable git diff.",
6367
6406
  details: { stage: packet.stage, worktree_path: workdir || null, response }
6368
6407
  }
6369
- };
6408
+ });
6370
6409
  }
6371
6410
  appendCheckpointResponse(state, response);
6372
6411
  return {
@@ -6415,7 +6454,13 @@ function checkpointResponseContinuation(state, value) {
6415
6454
  response,
6416
6455
  code: "checkpoint_response_source_not_trusted"
6417
6456
  });
6418
- if (sourceBlocker) return { blocker: sourceBlocker };
6457
+ if (sourceBlocker) {
6458
+ return checkpointResponseRejectedBlocker(state, {
6459
+ packet,
6460
+ response,
6461
+ blocker: sourceBlocker
6462
+ });
6463
+ }
6419
6464
  appendCheckpointResponse(state, response);
6420
6465
  if (state.request.ship_mode !== "ship" && proofAssessmentRequestsShip(assessment)) {
6421
6466
  const result = {
@@ -20166,6 +20211,7 @@ function buildRiddleProofPrCommentMarkdown(input) {
20166
20211
  extractRiddleProofProfileResult,
20167
20212
  getRiddleBalance,
20168
20213
  isDuplicateCheckpointResponse,
20214
+ isProtectedFinalStatus,
20169
20215
  isRiddleProofPlayabilityMode,
20170
20216
  isSuccessfulStatus,
20171
20217
  isTerminalRiddleJobStatus,
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { EvidenceArtifact, EvidenceReference, ImplementationAdapter, ImplementationAdapterInput, ImplementationAdapterResult, IntegrationContext, JsonObject, JsonPrimitive, JsonValue, JudgeAdapter, NotificationAdapter, PreflightAdapter, PreflightAdapterInput, PreflightAdapterResult, ProofAdapter, ProofAdapterInput, ProofAdapterResult, RiddleProofArtifactRole, RiddleProofAssessment, RiddleProofBlocker, RiddleProofCheckpointArtifact, RiddleProofCheckpointPacket, RiddleProofCheckpointResponse, RiddleProofCheckpointRole, RiddleProofCheckpointRoutingHint, RiddleProofCheckpointSummary, RiddleProofCheckpointVisibility, RiddleProofDecision, RiddleProofEvent, RiddleProofEvidenceBundle, RiddleProofPrLifecycleState, RiddleProofPrLifecycleStatus, RiddleProofProofContract, RiddleProofRunCard, RiddleProofRunParams, RiddleProofRunResult, RiddleProofRunState, RiddleProofRunStatusSnapshot, RiddleProofStage, RiddleProofStatePaths, RiddleProofStatus, RiddleProofTerminalMetadata, RiddleProofVerificationMode, RiddleProofViewportCapture, RiddleProofViewportMatrixStatus, RiddleProofVisualSession, RiddleProofVisualSessionFingerprintBasis, SetupAdapter, SetupAdapterInput, SetupAdapterResult, ShipAdapter } from './types.cjs';
2
- export { RiddleProofShipControlState, TerminalMetadataInput, applyShipControlState, applyTerminalMetadata, compactRecord, createRunResult, isSuccessfulStatus, isTerminalStatus, nonEmptyString, normalizeTerminalMetadata, recordValue, shipControlStateFor } from './result.cjs';
2
+ export { RiddleProofShipControlState, TerminalMetadataInput, applyShipControlState, applyTerminalMetadata, compactRecord, createRunResult, isProtectedFinalStatus, isSuccessfulStatus, isTerminalStatus, nonEmptyString, normalizeTerminalMetadata, recordValue, shipControlStateFor } from './result.cjs';
3
3
  export { CreateRunStateInput, RIDDLE_PROOF_RUN_STATE_VERSION, RunEventInput, appendRunEvent, appendStageHeartbeat, applyPrLifecycleState, createRunState, createRunStatusSnapshot, normalizeIntegrationContext, normalizePrLifecycleState, normalizeRunParams, setRunStatus } from './state.cjs';
4
4
  export { RIDDLE_PROOF_CHECKPOINT_PACKET_VERSION, RIDDLE_PROOF_CHECKPOINT_RESPONSE_VERSION, authorPacketPayloadFromCheckpointResponse, buildAuthorCheckpointPacket, buildCheckpointPacketForEngineResult, buildProofAssessmentCheckpointPacket, buildStageCheckpointPacket, checkpointPacketIdentity, checkpointResponseIdentity, checkpointSummaryFromState, createCheckpointResponseTemplate, isDuplicateCheckpointResponse, normalizeCheckpointResponse, proofContractFromAuthorCheckpointResponse, statePathsForRunState } from './checkpoint.cjs';
5
5
  export { RIDDLE_PROOF_RUN_CARD_VERSION, createRiddleProofRunCard } from './run-card.cjs';
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { EvidenceArtifact, EvidenceReference, ImplementationAdapter, ImplementationAdapterInput, ImplementationAdapterResult, IntegrationContext, JsonObject, JsonPrimitive, JsonValue, JudgeAdapter, NotificationAdapter, PreflightAdapter, PreflightAdapterInput, PreflightAdapterResult, ProofAdapter, ProofAdapterInput, ProofAdapterResult, RiddleProofArtifactRole, RiddleProofAssessment, RiddleProofBlocker, RiddleProofCheckpointArtifact, RiddleProofCheckpointPacket, RiddleProofCheckpointResponse, RiddleProofCheckpointRole, RiddleProofCheckpointRoutingHint, RiddleProofCheckpointSummary, RiddleProofCheckpointVisibility, RiddleProofDecision, RiddleProofEvent, RiddleProofEvidenceBundle, RiddleProofPrLifecycleState, RiddleProofPrLifecycleStatus, RiddleProofProofContract, RiddleProofRunCard, RiddleProofRunParams, RiddleProofRunResult, RiddleProofRunState, RiddleProofRunStatusSnapshot, RiddleProofStage, RiddleProofStatePaths, RiddleProofStatus, RiddleProofTerminalMetadata, RiddleProofVerificationMode, RiddleProofViewportCapture, RiddleProofViewportMatrixStatus, RiddleProofVisualSession, RiddleProofVisualSessionFingerprintBasis, SetupAdapter, SetupAdapterInput, SetupAdapterResult, ShipAdapter } from './types.js';
2
- export { RiddleProofShipControlState, TerminalMetadataInput, applyShipControlState, applyTerminalMetadata, compactRecord, createRunResult, isSuccessfulStatus, isTerminalStatus, nonEmptyString, normalizeTerminalMetadata, recordValue, shipControlStateFor } from './result.js';
2
+ export { RiddleProofShipControlState, TerminalMetadataInput, applyShipControlState, applyTerminalMetadata, compactRecord, createRunResult, isProtectedFinalStatus, isSuccessfulStatus, isTerminalStatus, nonEmptyString, normalizeTerminalMetadata, recordValue, shipControlStateFor } from './result.js';
3
3
  export { CreateRunStateInput, RIDDLE_PROOF_RUN_STATE_VERSION, RunEventInput, appendRunEvent, appendStageHeartbeat, applyPrLifecycleState, createRunState, createRunStatusSnapshot, normalizeIntegrationContext, normalizePrLifecycleState, normalizeRunParams, setRunStatus } from './state.js';
4
4
  export { RIDDLE_PROOF_CHECKPOINT_PACKET_VERSION, RIDDLE_PROOF_CHECKPOINT_RESPONSE_VERSION, authorPacketPayloadFromCheckpointResponse, buildAuthorCheckpointPacket, buildCheckpointPacketForEngineResult, buildProofAssessmentCheckpointPacket, buildStageCheckpointPacket, checkpointPacketIdentity, checkpointResponseIdentity, checkpointSummaryFromState, createCheckpointResponseTemplate, isDuplicateCheckpointResponse, normalizeCheckpointResponse, proofContractFromAuthorCheckpointResponse, statePathsForRunState } from './checkpoint.js';
5
5
  export { RIDDLE_PROOF_RUN_CARD_VERSION, createRiddleProofRunCard } from './run-card.js';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runRiddleProof
3
- } from "./chunk-F65S5LT2.js";
3
+ } from "./chunk-JLOZTVXU.js";
4
4
  import "./chunk-6F4PWJZI.js";
5
5
  import {
6
6
  RIDDLE_PROOF_PLAYABILITY_ASSESSMENT_VERSION,
@@ -102,7 +102,7 @@ import {
102
102
  createDisabledRiddleProofAgentAdapter,
103
103
  readRiddleProofRunStatus,
104
104
  runRiddleProofEngineHarness
105
- } from "./chunk-QGE3KBRL.js";
105
+ } from "./chunk-GHBNDHG7.js";
106
106
  import {
107
107
  RIDDLE_PROOF_RUN_STATE_VERSION,
108
108
  appendRunEvent,
@@ -114,11 +114,11 @@ import {
114
114
  normalizePrLifecycleState,
115
115
  normalizeRunParams,
116
116
  setRunStatus
117
- } from "./chunk-Q5GYD5RG.js";
117
+ } from "./chunk-UZIX7M7D.js";
118
118
  import {
119
119
  RIDDLE_PROOF_RUN_CARD_VERSION,
120
120
  createRiddleProofRunCard
121
- } from "./chunk-NYRMPWJB.js";
121
+ } from "./chunk-KNPCWWF3.js";
122
122
  import "./chunk-EKZXU6MU.js";
123
123
  import {
124
124
  RIDDLE_PROOF_CHECKPOINT_PACKET_VERSION,
@@ -136,25 +136,26 @@ import {
136
136
  normalizeCheckpointResponse,
137
137
  proofContractFromAuthorCheckpointResponse,
138
138
  statePathsForRunState
139
- } from "./chunk-QUK3SG24.js";
139
+ } from "./chunk-MOTQNIZX.js";
140
140
  import "./chunk-JFQXAJH2.js";
141
141
  import {
142
142
  createCodexExecAgentAdapter,
143
143
  createCodexExecJsonRunner,
144
144
  runCodexExecAgentDoctor
145
- } from "./chunk-SONWF3FQ.js";
145
+ } from "./chunk-RS4HJLJQ.js";
146
146
  import {
147
147
  applyShipControlState,
148
148
  applyTerminalMetadata,
149
149
  compactRecord,
150
150
  createRunResult,
151
+ isProtectedFinalStatus,
151
152
  isSuccessfulStatus,
152
153
  isTerminalStatus,
153
154
  nonEmptyString,
154
155
  normalizeTerminalMetadata,
155
156
  recordValue,
156
157
  shipControlStateFor
157
- } from "./chunk-W44XEGYW.js";
158
+ } from "./chunk-CUBYSWZT.js";
158
159
  import "./chunk-MLKGABMK.js";
159
160
  export {
160
161
  BASIC_GAMEPLAY_ACTION_TYPES,
@@ -243,6 +244,7 @@ export {
243
244
  extractRiddleProofProfileResult,
244
245
  getRiddleBalance,
245
246
  isDuplicateCheckpointResponse,
247
+ isProtectedFinalStatus,
246
248
  isRiddleProofPlayabilityMode,
247
249
  isSuccessfulStatus,
248
250
  isTerminalRiddleJobStatus,
@@ -3,8 +3,8 @@ import {
3
3
  createCodexExecAgentAdapter,
4
4
  createCodexExecJsonRunner,
5
5
  runCodexExecAgentDoctor
6
- } from "./chunk-SONWF3FQ.js";
7
- import "./chunk-W44XEGYW.js";
6
+ } from "./chunk-RS4HJLJQ.js";
7
+ import "./chunk-CUBYSWZT.js";
8
8
  import "./chunk-MLKGABMK.js";
9
9
  export {
10
10
  createCodexExecAgentAdapter as createLocalAgentAdapter,
package/dist/openclaw.js CHANGED
@@ -3,11 +3,11 @@ import {
3
3
  parseOpenClawAssertions,
4
4
  parseOpenClawJsonObjectOrArray,
5
5
  toRiddleProofRunParams
6
- } from "./chunk-J2ZNL3H3.js";
7
- import "./chunk-Q5GYD5RG.js";
8
- import "./chunk-NYRMPWJB.js";
9
- import "./chunk-QUK3SG24.js";
10
- import "./chunk-W44XEGYW.js";
6
+ } from "./chunk-TTB3ZAVX.js";
7
+ import "./chunk-UZIX7M7D.js";
8
+ import "./chunk-KNPCWWF3.js";
9
+ import "./chunk-MOTQNIZX.js";
10
+ import "./chunk-CUBYSWZT.js";
11
11
  import "./chunk-MLKGABMK.js";
12
12
  export {
13
13
  openClawIntegrationContext,
@@ -292,7 +292,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
292
292
  blocking?: boolean;
293
293
  details?: Record<string, unknown>;
294
294
  ok: boolean;
295
- action: "setup" | "recon" | "author" | "implement" | "verify" | "ship" | "run";
295
+ action: "author" | "recon" | "ship" | "implement" | "verify" | "setup" | "run";
296
296
  state_path: string;
297
297
  stage: any;
298
298
  summary: string;
@@ -382,7 +382,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
382
382
  continueWithStage?: WorkflowStage | null;
383
383
  blocking?: boolean;
384
384
  details?: Record<string, unknown>;
385
- action: "setup" | "recon" | "author" | "implement" | "verify" | "ship" | "run";
385
+ action: "author" | "recon" | "ship" | "implement" | "verify" | "setup" | "run";
386
386
  state_path: string;
387
387
  stage: any;
388
388
  checkpoint: string;
@@ -659,7 +659,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
659
659
  error?: undefined;
660
660
  } | {
661
661
  ok: boolean;
662
- action: "setup" | "recon" | "author" | "implement" | "verify" | "ship";
662
+ action: "author" | "recon" | "ship" | "implement" | "verify" | "setup";
663
663
  state_path: string;
664
664
  stage: any;
665
665
  summary: string;
@@ -292,7 +292,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
292
292
  blocking?: boolean;
293
293
  details?: Record<string, unknown>;
294
294
  ok: boolean;
295
- action: "setup" | "recon" | "author" | "implement" | "verify" | "ship" | "run";
295
+ action: "author" | "recon" | "ship" | "implement" | "verify" | "setup" | "run";
296
296
  state_path: string;
297
297
  stage: any;
298
298
  summary: string;
@@ -382,7 +382,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
382
382
  continueWithStage?: WorkflowStage | null;
383
383
  blocking?: boolean;
384
384
  details?: Record<string, unknown>;
385
- action: "setup" | "recon" | "author" | "implement" | "verify" | "ship" | "run";
385
+ action: "author" | "recon" | "ship" | "implement" | "verify" | "setup" | "run";
386
386
  state_path: string;
387
387
  stage: any;
388
388
  checkpoint: string;
@@ -659,7 +659,7 @@ declare function executeWorkflow(params: WorkflowParams, pluginConfig: any, reso
659
659
  error?: undefined;
660
660
  } | {
661
661
  ok: boolean;
662
- action: "setup" | "recon" | "author" | "implement" | "verify" | "ship";
662
+ action: "author" | "recon" | "ship" | "implement" | "verify" | "setup";
663
663
  state_path: string;
664
664
  stage: any;
665
665
  summary: string;
@@ -1,2 +1,2 @@
1
1
  import './proof-run-core-7Dqm7RKM.cjs';
2
- export { R as RiddleProofEngine, c as createRiddleProofEngine, e as executeWorkflow } from './proof-run-engine-Baiv6l3A.cjs';
2
+ export { R as RiddleProofEngine, c as createRiddleProofEngine, e as executeWorkflow } from './proof-run-engine-DpChFR5H.cjs';
@@ -1,2 +1,2 @@
1
1
  import './proof-run-core-7Dqm7RKM.js';
2
- export { R as RiddleProofEngine, c as createRiddleProofEngine, e as executeWorkflow } from './proof-run-engine-MiKZt9oY.js';
2
+ export { R as RiddleProofEngine, c as createRiddleProofEngine, e as executeWorkflow } from './proof-run-engine-BqRoA3Do.js';