@riddledc/riddle-proof 0.8.58 → 0.8.60

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 (118) hide show
  1. package/dist/adapters/codex-exec-agent.d.cts +1 -0
  2. package/dist/adapters/codex-exec-agent.d.ts +1 -0
  3. package/dist/adapters/codex-exec-agent.js +3 -2
  4. package/dist/adapters/codex.d.cts +1 -0
  5. package/dist/adapters/codex.d.ts +1 -0
  6. package/dist/adapters/codex.js +3 -2
  7. package/dist/adapters/local-agent.d.cts +1 -0
  8. package/dist/adapters/local-agent.d.ts +1 -0
  9. package/dist/adapters/local-agent.js +3 -2
  10. package/dist/adapters/openclaw.d.cts +1 -0
  11. package/dist/adapters/openclaw.d.ts +1 -0
  12. package/dist/adapters/openclaw.js +6 -5
  13. package/dist/advanced/engine-harness.cjs +253 -43
  14. package/dist/advanced/engine-harness.d.cts +1 -0
  15. package/dist/advanced/engine-harness.d.ts +1 -0
  16. package/dist/advanced/engine-harness.js +6 -5
  17. package/dist/advanced/index.cjs +253 -43
  18. package/dist/advanced/index.d.cts +1 -0
  19. package/dist/advanced/index.d.ts +1 -0
  20. package/dist/advanced/index.js +7 -6
  21. package/dist/advanced/runner.cjs +202 -4
  22. package/dist/advanced/runner.d.cts +1 -0
  23. package/dist/advanced/runner.d.ts +1 -0
  24. package/dist/advanced/runner.js +6 -5
  25. package/dist/checkpoint.d.cts +1 -0
  26. package/dist/checkpoint.d.ts +1 -0
  27. package/dist/checkpoint.js +3 -2
  28. package/dist/{chunk-TTB3ZAVX.js → chunk-3FK5HZHK.js} +2 -2
  29. package/dist/{chunk-ONOPGCID.js → chunk-AWRBSVNW.js} +4 -4
  30. package/dist/{chunk-MOTQNIZX.js → chunk-FX2CB4MG.js} +1 -1
  31. package/dist/{chunk-62XLYPMS.js → chunk-HZOILEGF.js} +15 -2
  32. package/dist/{chunk-KNPCWWF3.js → chunk-NXEAFQYZ.js} +16 -10
  33. package/dist/{chunk-GHBNDHG7.js → chunk-PCEDAQPG.js} +4 -4
  34. package/dist/{chunk-CUBYSWZT.js → chunk-QGMSN34W.js} +51 -4
  35. package/dist/{chunk-RS4HJLJQ.js → chunk-QPKY767W.js} +1 -1
  36. package/dist/{chunk-UZIX7M7D.js → chunk-UEY5SJG5.js} +13 -9
  37. package/dist/{chunk-KG64Y5MC.js → chunk-WKIIJX3O.js} +12 -0
  38. package/dist/{chunk-JLOZTVXU.js → chunk-XKNJ5OE4.js} +2 -2
  39. package/dist/cli/index.js +9 -9
  40. package/dist/cli.cjs +473 -403
  41. package/dist/cli.js +9 -9
  42. package/dist/codex-exec-agent.d.cts +1 -0
  43. package/dist/codex-exec-agent.d.ts +1 -0
  44. package/dist/codex-exec-agent.js +3 -2
  45. package/dist/diagnostics.d.cts +1 -0
  46. package/dist/diagnostics.d.ts +1 -0
  47. package/dist/engine-harness.cjs +253 -43
  48. package/dist/engine-harness.d.cts +1 -0
  49. package/dist/engine-harness.d.ts +1 -0
  50. package/dist/engine-harness.js +6 -5
  51. package/dist/index.cjs +248 -168
  52. package/dist/index.d.cts +2 -2
  53. package/dist/index.d.ts +2 -2
  54. package/dist/index.js +21 -11
  55. package/dist/local-agent.d.cts +1 -0
  56. package/dist/local-agent.d.ts +1 -0
  57. package/dist/local-agent.js +3 -2
  58. package/dist/openclaw.d.cts +1 -0
  59. package/dist/openclaw.d.ts +1 -0
  60. package/dist/openclaw.js +6 -5
  61. package/dist/pr-comment.cjs +19 -1
  62. package/dist/pr-comment.d.cts +2 -0
  63. package/dist/pr-comment.d.ts +2 -0
  64. package/dist/pr-comment.js +2 -2
  65. package/dist/profile/index.d.cts +1 -0
  66. package/dist/profile/index.d.ts +1 -0
  67. package/dist/profile.d.cts +1 -0
  68. package/dist/profile.d.ts +1 -0
  69. package/dist/proof-session.d.cts +1 -0
  70. package/dist/proof-session.d.ts +1 -0
  71. package/dist/public-state.cjs +15 -0
  72. package/dist/public-state.d.cts +4 -1
  73. package/dist/public-state.d.ts +4 -1
  74. package/dist/public-state.js +7 -1
  75. package/dist/result.cjs +211 -4
  76. package/dist/result.d.cts +12 -1
  77. package/dist/result.d.ts +12 -1
  78. package/dist/result.js +6 -1
  79. package/dist/run-card.cjs +198 -40
  80. package/dist/run-card.d.cts +1 -0
  81. package/dist/run-card.d.ts +1 -0
  82. package/dist/run-card.js +4 -3
  83. package/dist/runner.cjs +202 -4
  84. package/dist/runner.d.cts +1 -0
  85. package/dist/runner.d.ts +1 -0
  86. package/dist/runner.js +6 -5
  87. package/dist/spec/checkpoint.d.cts +1 -0
  88. package/dist/spec/checkpoint.d.ts +1 -0
  89. package/dist/spec/checkpoint.js +3 -2
  90. package/dist/spec/index.cjs +235 -167
  91. package/dist/spec/index.d.cts +2 -2
  92. package/dist/spec/index.d.ts +2 -2
  93. package/dist/spec/index.js +17 -7
  94. package/dist/spec/public-state.cjs +15 -0
  95. package/dist/spec/public-state.d.cts +1 -1
  96. package/dist/spec/public-state.d.ts +1 -1
  97. package/dist/spec/public-state.js +7 -1
  98. package/dist/spec/result.cjs +209 -4
  99. package/dist/spec/result.d.cts +2 -1
  100. package/dist/spec/result.d.ts +2 -1
  101. package/dist/spec/result.js +6 -1
  102. package/dist/spec/run-card.cjs +198 -40
  103. package/dist/spec/run-card.d.cts +1 -0
  104. package/dist/spec/run-card.d.ts +1 -0
  105. package/dist/spec/run-card.js +4 -3
  106. package/dist/spec/state.cjs +207 -45
  107. package/dist/spec/state.d.cts +1 -0
  108. package/dist/spec/state.d.ts +1 -0
  109. package/dist/spec/state.js +5 -4
  110. package/dist/spec/types.d.cts +1 -0
  111. package/dist/spec/types.d.ts +1 -0
  112. package/dist/state.cjs +207 -45
  113. package/dist/state.d.cts +1 -0
  114. package/dist/state.d.ts +1 -0
  115. package/dist/state.js +5 -4
  116. package/dist/types.d.cts +14 -0
  117. package/dist/types.d.ts +14 -0
  118. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
- import "./chunk-ONOPGCID.js";
2
+ import "./chunk-AWRBSVNW.js";
3
3
  import "./chunk-DI2XNGEZ.js";
4
- import "./chunk-62XLYPMS.js";
4
+ import "./chunk-HZOILEGF.js";
5
5
  import "./chunk-EX7TO4I5.js";
6
- import "./chunk-KG64Y5MC.js";
7
- import "./chunk-GHBNDHG7.js";
8
- import "./chunk-UZIX7M7D.js";
9
- import "./chunk-KNPCWWF3.js";
6
+ import "./chunk-PCEDAQPG.js";
7
+ import "./chunk-UEY5SJG5.js";
8
+ import "./chunk-NXEAFQYZ.js";
10
9
  import "./chunk-EKZXU6MU.js";
11
- import "./chunk-MOTQNIZX.js";
10
+ import "./chunk-FX2CB4MG.js";
12
11
  import "./chunk-JFQXAJH2.js";
13
- import "./chunk-RS4HJLJQ.js";
14
- import "./chunk-CUBYSWZT.js";
12
+ import "./chunk-QPKY767W.js";
13
+ import "./chunk-QGMSN34W.js";
14
+ import "./chunk-WKIIJX3O.js";
15
15
  import "./chunk-MLKGABMK.js";
@@ -1,5 +1,6 @@
1
1
  import { R as RiddleProofAgentAdapter } from './engine-harness-LBfqbFSe.cjs';
2
2
  import { RiddleProofBlocker } from './types.cjs';
3
+ import './public-state.cjs';
3
4
 
4
5
  interface CodexExecAgentConfig {
5
6
  codexCommand?: string;
@@ -1,5 +1,6 @@
1
1
  import { R as RiddleProofAgentAdapter } from './engine-harness-CMACHP6A.js';
2
2
  import { RiddleProofBlocker } from './types.js';
3
+ import './public-state.js';
3
4
 
4
5
  interface CodexExecAgentConfig {
5
6
  codexCommand?: string;
@@ -2,8 +2,9 @@ import {
2
2
  createCodexExecAgentAdapter,
3
3
  createCodexExecJsonRunner,
4
4
  runCodexExecAgentDoctor
5
- } from "./chunk-RS4HJLJQ.js";
6
- import "./chunk-CUBYSWZT.js";
5
+ } from "./chunk-QPKY767W.js";
6
+ import "./chunk-QGMSN34W.js";
7
+ import "./chunk-WKIIJX3O.js";
7
8
  import "./chunk-MLKGABMK.js";
8
9
  export {
9
10
  createCodexExecAgentAdapter,
@@ -1,4 +1,5 @@
1
1
  import { JsonValue } from './types.cjs';
2
+ import './public-state.cjs';
2
3
 
3
4
  declare const RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION: "riddle-proof.capture-diagnostic.v1";
4
5
  declare const DEFAULT_DIAGNOSTIC_STRING_LIMIT = 2000;
@@ -1,4 +1,5 @@
1
1
  import { JsonValue } from './types.js';
2
+ import './public-state.js';
2
3
 
3
4
  declare const RIDDLE_PROOF_CAPTURE_DIAGNOSTIC_VERSION: "riddle-proof.capture-diagnostic.v1";
4
5
  declare const DEFAULT_DIAGNOSTIC_STRING_LIMIT = 2000;
@@ -1609,7 +1609,7 @@ function normalizeStageRequest(state, requestedAdvanceStage) {
1609
1609
  if (!state?.recon_results || ["needs_agent_decision", "needs_supervisor_judgment"].includes(state?.recon_status || "")) return "recon";
1610
1610
  return null;
1611
1611
  }
1612
- function stringValue(value) {
1612
+ function stringValue2(value) {
1613
1613
  return typeof value === "string" && value.trim() ? value.trim() : "";
1614
1614
  }
1615
1615
  function commandResult(command, args, cwd, timeout = 6e4) {
@@ -1632,7 +1632,7 @@ function repoDirForSync(state) {
1632
1632
  state?.repo_dir,
1633
1633
  state?.after_worktree,
1634
1634
  state?.before_worktree
1635
- ].map(stringValue).filter(Boolean);
1635
+ ].map(stringValue2).filter(Boolean);
1636
1636
  return candidates.find((candidate) => (0, import_node_fs2.existsSync)(import_node_path2.default.join(candidate, ".git"))) || "";
1637
1637
  }
1638
1638
  function parseWorktreeList(output) {
@@ -1752,32 +1752,32 @@ function baseCheckoutReport(repoDir, baseBranch, updateRequested, updateAllowed)
1752
1752
  return report;
1753
1753
  }
1754
1754
  function normalizeGhPrStatus(value) {
1755
- const status = stringValue(value).toLowerCase();
1755
+ const status = stringValue2(value).toLowerCase();
1756
1756
  if (status === "merged") return "merged";
1757
1757
  if (status === "open") return "open";
1758
1758
  if (status === "closed") return "closed";
1759
1759
  return status || "unknown";
1760
1760
  }
1761
1761
  function prRefFromState(state) {
1762
- return stringValue(state?.pr_number) || stringValue(state?.pr_url);
1762
+ return stringValue2(state?.pr_number) || stringValue2(state?.pr_url);
1763
1763
  }
1764
1764
  function prNumberFromUrl(url) {
1765
1765
  const match = url.match(/\/pull\/(\d+)(?:$|[?#])/);
1766
1766
  return match?.[1] || "";
1767
1767
  }
1768
1768
  function normalizePrState(raw, state, checkedAt = (/* @__PURE__ */ new Date()).toISOString()) {
1769
- const mergeCommit = typeof raw?.mergeCommit === "object" && raw.mergeCommit ? stringValue(raw.mergeCommit.oid) : stringValue(raw?.mergeCommit);
1770
- const url = stringValue(raw?.url) || stringValue(state?.pr_url);
1769
+ const mergeCommit = typeof raw?.mergeCommit === "object" && raw.mergeCommit ? stringValue2(raw.mergeCommit.oid) : stringValue2(raw?.mergeCommit);
1770
+ const url = stringValue2(raw?.url) || stringValue2(state?.pr_url);
1771
1771
  return {
1772
1772
  status: normalizeGhPrStatus(raw?.state),
1773
1773
  pr_url: url || null,
1774
1774
  pr_number: String(raw?.number || state?.pr_number || prNumberFromUrl(url) || ""),
1775
- repo: stringValue(state?.repo) || null,
1776
- head_branch: stringValue(raw?.headRefName) || stringValue(state?.target_branch) || stringValue(state?.branch) || null,
1777
- base_branch: stringValue(raw?.baseRefName) || stringValue(state?.base_branch) || "main",
1775
+ repo: stringValue2(state?.repo) || null,
1776
+ head_branch: stringValue2(raw?.headRefName) || stringValue2(state?.target_branch) || stringValue2(state?.branch) || null,
1777
+ base_branch: stringValue2(raw?.baseRefName) || stringValue2(state?.base_branch) || "main",
1778
1778
  merge_commit: mergeCommit || null,
1779
- merged_at: stringValue(raw?.mergedAt) || null,
1780
- closed_at: stringValue(raw?.closedAt) || null,
1779
+ merged_at: stringValue2(raw?.mergedAt) || null,
1780
+ closed_at: stringValue2(raw?.closedAt) || null,
1781
1781
  checked_at: checkedAt,
1782
1782
  source: "gh"
1783
1783
  };
@@ -1794,7 +1794,7 @@ function cleanupMergedProofRun(state, repoDir, params, prState) {
1794
1794
  branch_delete_errors: [],
1795
1795
  pruned: false
1796
1796
  };
1797
- const baseBranch = stringValue(prState.base_branch) || stringValue(state?.base_branch) || "main";
1797
+ const baseBranch = stringValue2(prState.base_branch) || stringValue2(state?.base_branch) || "main";
1798
1798
  let fetchedBase = params.fetch_base === false;
1799
1799
  if (params.fetch_base !== false && baseBranch) {
1800
1800
  const fetch = commandResult("git", ["fetch", "origin", baseBranch], repoDir, 12e4);
@@ -1812,7 +1812,7 @@ function cleanupMergedProofRun(state, repoDir, params, prState) {
1812
1812
  }
1813
1813
  const removed = [];
1814
1814
  const removeErrors = [];
1815
- for (const candidate of [state?.before_worktree, state?.after_worktree].map(stringValue).filter(Boolean)) {
1815
+ for (const candidate of [state?.before_worktree, state?.after_worktree].map(stringValue2).filter(Boolean)) {
1816
1816
  if (!(0, import_node_fs2.existsSync)(candidate) || import_node_path2.default.resolve(candidate) === import_node_path2.default.resolve(repoDir)) continue;
1817
1817
  const remove = commandResult("git", ["worktree", "remove", "--force", candidate], repoDir, 12e4);
1818
1818
  if (remove.ok) {
@@ -1823,7 +1823,7 @@ function cleanupMergedProofRun(state, repoDir, params, prState) {
1823
1823
  }
1824
1824
  cleanup.worktrees_removed = removed;
1825
1825
  cleanup.worktree_remove_errors = removeErrors;
1826
- const afterBranch = stringValue(state?.after_worktree_branch);
1826
+ const afterBranch = stringValue2(state?.after_worktree_branch);
1827
1827
  if (afterBranch.startsWith("riddle-proof/")) {
1828
1828
  const deleted = commandResult("git", ["branch", "-D", afterBranch], repoDir, 6e4);
1829
1829
  if (deleted.ok) {
@@ -1859,7 +1859,7 @@ function syncPrLifecycle(statePath, params) {
1859
1859
  const prState2 = {
1860
1860
  status: missingPr ? "orphaned" : "unavailable",
1861
1861
  pr_url: state.pr_url || null,
1862
- pr_number: String(state.pr_number || prNumberFromUrl(stringValue(state.pr_url)) || ""),
1862
+ pr_number: String(state.pr_number || prNumberFromUrl(stringValue2(state.pr_url)) || ""),
1863
1863
  repo: state.repo || null,
1864
1864
  head_branch: state.target_branch || state.branch || null,
1865
1865
  base_branch: state.base_branch || "main",
@@ -1888,7 +1888,7 @@ function syncPrLifecycle(statePath, params) {
1888
1888
  const prState2 = {
1889
1889
  status: "unavailable",
1890
1890
  pr_url: state.pr_url || null,
1891
- pr_number: String(state.pr_number || prNumberFromUrl(stringValue(state.pr_url)) || ""),
1891
+ pr_number: String(state.pr_number || prNumberFromUrl(stringValue2(state.pr_url)) || ""),
1892
1892
  repo: state.repo || null,
1893
1893
  head_branch: state.target_branch || state.branch || null,
1894
1894
  base_branch: state.base_branch || "main",
@@ -2669,8 +2669,8 @@ ${implementRes.stdout || ""}
2669
2669
  ${implementRes.stderr || ""}`;
2670
2670
  if (implementError.includes("No implementation detected")) {
2671
2671
  const implementationState = readState(config.statePath) || {};
2672
- const implementationSummary = stringValue(implementationState?.implementation_summary) || null;
2673
- const implementationDetectionSummary = stringValue(implementationState?.implementation_detection_summary) || null;
2672
+ const implementationSummary = stringValue2(implementationState?.implementation_summary) || null;
2673
+ const implementationDetectionSummary = stringValue2(implementationState?.implementation_detection_summary) || null;
2674
2674
  const implementationDetection = implementationState?.implementation_detection && typeof implementationState.implementation_detection === "object" && !Array.isArray(implementationState.implementation_detection) ? implementationState.implementation_detection : null;
2675
2675
  recordAttempt("implement", "checkpoint", "Implementation checkpoint found no material code changes yet.", {
2676
2676
  checkpoint: "implement_changes_missing",
@@ -2788,14 +2788,14 @@ ${implementRes.stderr || ""}`;
2788
2788
  const captureQuality = verifyDecisionRequest2?.capture_quality || {};
2789
2789
  const conclusiveVerifyBlockers2 = proofAssessmentHardBlockersForState({
2790
2790
  ...failedVerifyState,
2791
- structured_interaction_capture_failure_summary: stringValue(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue(failedVerifyState?.structured_interaction_capture_failure_summary) || void 0,
2792
- structured_interaction_failure_summary: stringValue(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue(failedVerifyState?.structured_interaction_failure_summary) || void 0
2791
+ structured_interaction_capture_failure_summary: stringValue2(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue2(failedVerifyState?.structured_interaction_capture_failure_summary) || void 0,
2792
+ structured_interaction_failure_summary: stringValue2(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue2(failedVerifyState?.structured_interaction_failure_summary) || void 0
2793
2793
  });
2794
- const structuredInteractionFailureSummary2 = stringValue(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue(failedVerifyState?.structured_interaction_capture_failure_summary) || stringValue(failedVerifyState?.structured_interaction_failure_summary) || stringValue(conclusiveVerifyBlockers2[0]);
2794
+ const structuredInteractionFailureSummary2 = stringValue2(verifyDecisionRequest2?.structured_interaction_capture_failure_summary) || stringValue2(verifyDecisionRequest2?.structured_interaction_failure_summary) || stringValue2(failedVerifyState?.structured_interaction_capture_failure_summary) || stringValue2(failedVerifyState?.structured_interaction_failure_summary) || stringValue2(conclusiveVerifyBlockers2[0]);
2795
2795
  const captureTerminalBlocker = failedVerifyStatus === "capture_error" || conclusiveVerifyBlockers2.length > 0 || Boolean(structuredInteractionFailureSummary2) || captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
2796
- const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue(captureQuality?.summary) : "";
2796
+ const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue2(captureQuality?.summary) : "";
2797
2797
  const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
2798
- const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary2 || stringValue(verifyDecisionRequest2?.summary) || stringValue(failedVerifyState?.verify_summary) || stringValue(failedVerifyState?.proof_summary) || stringValue(verifyRes.error) || "Verify capture failed before the evidence could be judged.";
2798
+ const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary2 || stringValue2(verifyDecisionRequest2?.summary) || stringValue2(failedVerifyState?.verify_summary) || stringValue2(failedVerifyState?.proof_summary) || stringValue2(verifyRes.error) || "Verify capture failed before the evidence could be judged.";
2799
2799
  const failedVerifyDetails = {
2800
2800
  executed,
2801
2801
  verifyStatus: failedVerifyStatus,
@@ -2873,10 +2873,10 @@ ${implementRes.stderr || ""}`;
2873
2873
  };
2874
2874
  const conclusiveVerifyBlockers = proofAssessmentHardBlockersForState({
2875
2875
  ...state,
2876
- structured_interaction_capture_failure_summary: stringValue(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue(state?.structured_interaction_capture_failure_summary) || void 0,
2877
- structured_interaction_failure_summary: stringValue(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue(state?.structured_interaction_failure_summary) || void 0
2876
+ structured_interaction_capture_failure_summary: stringValue2(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue2(state?.structured_interaction_capture_failure_summary) || void 0,
2877
+ structured_interaction_failure_summary: stringValue2(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue2(state?.structured_interaction_failure_summary) || void 0
2878
2878
  });
2879
- const structuredInteractionFailureSummary = stringValue(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue(state?.structured_interaction_capture_failure_summary) || stringValue(state?.structured_interaction_failure_summary) || stringValue(conclusiveVerifyBlockers[0]);
2879
+ const structuredInteractionFailureSummary = stringValue2(verifyDecisionRequest?.structured_interaction_capture_failure_summary) || stringValue2(verifyDecisionRequest?.structured_interaction_failure_summary) || stringValue2(state?.structured_interaction_capture_failure_summary) || stringValue2(state?.structured_interaction_failure_summary) || stringValue2(conclusiveVerifyBlockers[0]);
2880
2880
  if (verifyStatus !== "evidence_captured") {
2881
2881
  const captureQuality = verifyDecisionRequest?.capture_quality || {};
2882
2882
  const captureTerminalBlocker = conclusiveVerifyBlockers.length > 0 || Boolean(structuredInteractionFailureSummary) || captureQuality?.terminal_blocker === true || captureQuality?.blocking === true;
@@ -2888,9 +2888,9 @@ ${implementRes.stderr || ""}`;
2888
2888
  });
2889
2889
  state = readState(config.statePath);
2890
2890
  }
2891
- const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue(captureQuality?.summary) : "";
2891
+ const terminalCaptureQualitySummary = captureQuality?.terminal_blocker === true || captureQuality?.blocking === true ? stringValue2(captureQuality?.summary) : "";
2892
2892
  const checkpointName = captureTerminalBlocker ? "verify_capture_blocked" : "verify_capture_retry";
2893
- const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary || stringValue(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
2893
+ const summary = terminalCaptureQualitySummary || structuredInteractionFailureSummary || stringValue2(proofAssessment.summary) || "Verify ran, but the proof packet still needs internal capture-plan work before it should ship.";
2894
2894
  recordAttempt("verify", "checkpoint", summary, {
2895
2895
  autoApproved: verifyRes.autoApproved || false,
2896
2896
  checkpoint: checkpointName,
@@ -3417,6 +3417,167 @@ var import_node_fs3 = require("fs");
3417
3417
  var import_node_path3 = __toESM(require("path"), 1);
3418
3418
  var import_node_crypto3 = __toESM(require("crypto"), 1);
3419
3419
 
3420
+ // src/public-state.ts
3421
+ function riddleProofPublicStateAllowsClaim(summary, claim) {
3422
+ return !summary?.prohibited_claims.includes(claim);
3423
+ }
3424
+ function riddleProofPublicStateAllowsMergeRecommendation(summary) {
3425
+ return riddleProofPublicStateAllowsClaim(summary, "merge_ready") && riddleProofPublicStateAllowsClaim(summary, "sync_allowed");
3426
+ }
3427
+ function riddleProofPublicStateMergeRecommendation(summary, recommendation) {
3428
+ return recommendation && riddleProofPublicStateAllowsMergeRecommendation(summary) ? recommendation : void 0;
3429
+ }
3430
+ function asRecord(value) {
3431
+ return value && typeof value === "object" && !Array.isArray(value) ? value : {};
3432
+ }
3433
+ function stringValue(value) {
3434
+ return typeof value === "string" && value.trim() ? value.trim() : void 0;
3435
+ }
3436
+ function booleanValue(value) {
3437
+ return typeof value === "boolean" ? value : void 0;
3438
+ }
3439
+ function numberValue(value) {
3440
+ return typeof value === "number" && Number.isFinite(value) ? value : void 0;
3441
+ }
3442
+ function firstStringValue(...values) {
3443
+ for (const value of values) {
3444
+ const text = stringValue(value);
3445
+ if (text) return text;
3446
+ }
3447
+ return void 0;
3448
+ }
3449
+ function firstBooleanValue(...values) {
3450
+ for (const value of values) {
3451
+ const bool = booleanValue(value);
3452
+ if (typeof bool === "boolean") return bool;
3453
+ }
3454
+ return void 0;
3455
+ }
3456
+ function firstRecordValue(...values) {
3457
+ for (const value of values) {
3458
+ const record = asRecord(value);
3459
+ if (Object.keys(record).length) return record;
3460
+ }
3461
+ return void 0;
3462
+ }
3463
+ function countValue(value) {
3464
+ const number = numberValue(value);
3465
+ return typeof number === "number" && number > 0 ? Math.trunc(number) : 0;
3466
+ }
3467
+ function checkpointSummaryFrom(...values) {
3468
+ const record = firstRecordValue(...values);
3469
+ if (!record) return void 0;
3470
+ const accepted = countValue(record.response_count);
3471
+ const rejected = countValue(record.rejected_response_count);
3472
+ const ignored = countValue(record.ignored_response_count);
3473
+ const duplicate = countValue(record.duplicate_response_count);
3474
+ const summary = {
3475
+ pending: booleanValue(record.pending),
3476
+ accepted_response_count: accepted,
3477
+ rejected_response_count: rejected,
3478
+ ignored_response_count: ignored,
3479
+ duplicate_response_count: duplicate,
3480
+ latest_decision: stringValue(record.latest_decision),
3481
+ audit_disclosure_required: rejected > 0 || ignored > 0 || duplicate > 0
3482
+ };
3483
+ return Object.values(summary).some((value) => typeof value !== "undefined") ? summary : void 0;
3484
+ }
3485
+ function uniqueStrings(values) {
3486
+ return [...new Set(values.filter(Boolean))];
3487
+ }
3488
+ function summarizeRiddleProofPublicState(input) {
3489
+ const record = asRecord(input);
3490
+ const runCard = asRecord(record.run_card);
3491
+ const stopCondition = asRecord(runCard.stop_condition);
3492
+ const raw = asRecord(record.raw);
3493
+ const request = asRecord(record.request);
3494
+ const requestMetadata = asRecord(record.request_metadata);
3495
+ const prState = asRecord(record.pr_state);
3496
+ const handoff = asRecord(record.pr_handoff_policy);
3497
+ const handoffState = stringValue(handoff.state);
3498
+ const status = firstStringValue(record.status, stopCondition.status);
3499
+ const ok = booleanValue(record.ok) ?? null;
3500
+ const shipMode = firstStringValue(request.ship_mode, requestMetadata.ship_mode, record.ship_mode, handoff.ship_mode);
3501
+ const explicitShippingDisabled = firstBooleanValue(
3502
+ record.shipping_disabled,
3503
+ stopCondition.shipping_disabled,
3504
+ raw.shipping_disabled,
3505
+ handoff.shipping_disabled
3506
+ );
3507
+ const shippingDisabled = explicitShippingDisabled === true || shipMode === "none" || handoffState === "proof_complete_ship_disabled";
3508
+ const explicitShipAuthorized = firstBooleanValue(
3509
+ record.ship_authorized,
3510
+ stopCondition.ship_authorized,
3511
+ raw.ship_authorized
3512
+ );
3513
+ const authorizationEvidence = Boolean(
3514
+ status === "shipped" || record.marked_ready === true || stringValue(prState.status) === "merged" || record.merge_commit || record.merged_at
3515
+ );
3516
+ const shipAuthorizedBeforeHold = explicitShipAuthorized ?? authorizationEvidence;
3517
+ const explicitShipHeld = firstBooleanValue(record.ship_held, stopCondition.ship_held, raw.ship_held);
3518
+ const inferredHeld = status === "ready_to_ship" && shippingDisabled && !shipAuthorizedBeforeHold;
3519
+ const shipHeld = explicitShipHeld === true || inferredHeld;
3520
+ const shipAuthorized = shipHeld ? false : shipAuthorizedBeforeHold === true;
3521
+ const proofComplete = Boolean(
3522
+ status === "ready_to_ship" || status === "shipped" || status === "completed" || status === "passed" || ok === true || handoff.proof_complete === true
3523
+ );
3524
+ const checkpointSummary = checkpointSummaryFrom(
3525
+ record.checkpoint_summary,
3526
+ stopCondition.checkpoint_summary,
3527
+ asRecord(record.details).checkpoint_summary,
3528
+ asRecord(raw.details).checkpoint_summary
3529
+ );
3530
+ const blockedOrWaiting = status === "blocked" || status === "failed" || status === "awaiting_checkpoint" || handoffState === "proof_blocked" || handoffState === "proof_review_required" || handoffState === "proof_failed" || handoffState === "proof_checkpoint_required";
3531
+ const proofPassed = Boolean(proofComplete && !blockedOrWaiting);
3532
+ const explicitMergeReady = firstBooleanValue(record.merge_ready, stopCondition.merge_ready, raw.merge_ready, handoff.merge_ready);
3533
+ const normalPrAllowed = firstBooleanValue(record.normal_pr_allowed, raw.normal_pr_allowed, handoff.normal_pr_allowed);
3534
+ const baseHandoffAllowed = !blockedOrWaiting && !shipHeld && !shippingDisabled;
3535
+ const mergeReady = baseHandoffAllowed && normalPrAllowed !== false && (explicitMergeReady ?? shipAuthorized);
3536
+ const syncAllowed = mergeReady;
3537
+ let policyState = "unknown";
3538
+ if (status === "awaiting_checkpoint" || handoffState === "proof_checkpoint_required") policyState = "awaiting_checkpoint";
3539
+ else if (status === "failed" || handoffState === "proof_failed") policyState = "proof_failed";
3540
+ else if (status === "blocked" || handoffState === "proof_blocked" || handoffState === "proof_review_required") policyState = "proof_blocked";
3541
+ else if (handoffState === "proof_complete_ship_disabled") policyState = "proof_complete_ship_disabled";
3542
+ else if (proofComplete && shipHeld && !shipAuthorized) policyState = "proof_passed_ship_held";
3543
+ else if (proofComplete && shippingDisabled && !shipAuthorized) policyState = "proof_complete_ship_disabled";
3544
+ else if (shipAuthorized) policyState = "ship_authorized";
3545
+ else if (proofPassed) policyState = "proof_passed";
3546
+ else if (status === "running") policyState = "proof_in_progress";
3547
+ const requiredDisclosures = [];
3548
+ if (shipHeld) requiredDisclosures.push("ship_held");
3549
+ if (shippingDisabled) requiredDisclosures.push("shipping_disabled");
3550
+ if (checkpointSummary?.audit_disclosure_required) requiredDisclosures.push("checkpoint_audit_counters");
3551
+ if (status === "awaiting_checkpoint" || handoffState === "proof_checkpoint_required") requiredDisclosures.push("checkpoint_required");
3552
+ const prohibitedClaims = [];
3553
+ if (!shipAuthorized || shipHeld || shippingDisabled) prohibitedClaims.push("ship_authorized", "shipped");
3554
+ if (!mergeReady) prohibitedClaims.push("merge_ready");
3555
+ if (!syncAllowed) prohibitedClaims.push("sync_allowed");
3556
+ if (blockedOrWaiting) {
3557
+ prohibitedClaims.push("proof_passed", "ready_to_ship");
3558
+ }
3559
+ if (checkpointSummary?.audit_disclosure_required) {
3560
+ prohibitedClaims.push("all_checkpoint_responses_accepted");
3561
+ }
3562
+ const resultLabel = policyState === "awaiting_checkpoint" ? "checkpoint required" : policyState === "proof_blocked" ? "blocked" : policyState === "proof_failed" ? "failed" : policyState === "proof_complete_ship_disabled" ? "proof complete; shipping disabled" : policyState === "proof_passed_ship_held" ? "proof passed; ship held" : policyState === "ship_authorized" ? status === "shipped" ? "shipped" : "ship authorized" : policyState === "proof_passed" ? "passed" : policyState === "proof_in_progress" ? "running" : status || "recorded";
3563
+ return {
3564
+ status,
3565
+ ok,
3566
+ policy_state: policyState,
3567
+ result_label: resultLabel,
3568
+ proof_complete: proofComplete,
3569
+ proof_passed: proofPassed,
3570
+ ship_held: shipHeld,
3571
+ shipping_disabled: shippingDisabled,
3572
+ ship_authorized: shipAuthorized,
3573
+ merge_ready: mergeReady,
3574
+ sync_allowed: syncAllowed,
3575
+ checkpoint_summary: checkpointSummary,
3576
+ required_disclosures: uniqueStrings(requiredDisclosures),
3577
+ prohibited_claims: uniqueStrings(prohibitedClaims)
3578
+ };
3579
+ }
3580
+
3420
3581
  // src/result.ts
3421
3582
  function isTerminalStatus(status) {
3422
3583
  return status === "blocked" || status === "failed" || status === "ready_to_ship" || status === "shipped" || status === "completed";
@@ -3591,6 +3752,37 @@ function applyTerminalMetadata(state, metadata) {
3591
3752
  if (typeof metadata.finalized === "boolean") state.finalized = metadata.finalized;
3592
3753
  return state;
3593
3754
  }
3755
+ function publicStateForRunState(input) {
3756
+ const state = input.state;
3757
+ const status = input.status || state.status;
3758
+ const raw = recordValue(input.raw) || {};
3759
+ const extendedState = state;
3760
+ const terminalOk = isTerminalStatus(status) ? state.ok : void 0;
3761
+ return summarizeRiddleProofPublicState(compactRecord({
3762
+ status,
3763
+ ok: terminalOk,
3764
+ request: state.request,
3765
+ pr_state: state.pr_state,
3766
+ marked_ready: state.marked_ready,
3767
+ ship_held: state.ship_held,
3768
+ shipping_disabled: state.shipping_disabled,
3769
+ ship_authorized: state.ship_authorized,
3770
+ ship_mode: state.request?.ship_mode,
3771
+ merge_commit: state.merge_commit,
3772
+ merged_at: state.merged_at,
3773
+ checkpoint_summary: state.checkpoint_summary,
3774
+ pr_handoff_policy: recordValue(extendedState.pr_handoff_policy),
3775
+ merge_ready: extendedState.merge_ready,
3776
+ normal_pr_allowed: extendedState.normal_pr_allowed,
3777
+ raw: Object.keys(raw).length ? raw : void 0
3778
+ }));
3779
+ }
3780
+ function publicMergeRecommendationForRunState(input) {
3781
+ return riddleProofPublicStateMergeRecommendation(
3782
+ publicStateForRunState(input),
3783
+ input.state.merge_recommendation
3784
+ );
3785
+ }
3594
3786
  function shipControlStateFor(input) {
3595
3787
  const state = input.state;
3596
3788
  const status = input.status || state.status;
@@ -3639,6 +3831,11 @@ function createRunResult(input) {
3639
3831
  state.ok = ok;
3640
3832
  if (isProtectedFinalStatus(status)) state.finalized = true;
3641
3833
  applyShipControlState(state, { status, raw: input.raw });
3834
+ const publicState = publicStateForRunState({ state, status, raw: input.raw });
3835
+ const publicMergeRecommendation = riddleProofPublicStateMergeRecommendation(
3836
+ publicState,
3837
+ state.merge_recommendation
3838
+ );
3642
3839
  return compactRecord({
3643
3840
  ok,
3644
3841
  status,
@@ -3656,9 +3853,12 @@ function createRunResult(input) {
3656
3853
  pr_state: state.pr_state,
3657
3854
  marked_ready: state.marked_ready,
3658
3855
  left_draft: state.left_draft,
3659
- ship_held: state.ship_held,
3660
- shipping_disabled: state.shipping_disabled,
3661
- ship_authorized: state.ship_authorized,
3856
+ result_label: publicState.result_label,
3857
+ ship_held: publicState.ship_held,
3858
+ shipping_disabled: publicState.shipping_disabled,
3859
+ ship_authorized: publicState.ship_authorized,
3860
+ merge_ready: publicState.merge_ready,
3861
+ sync_allowed: publicState.sync_allowed,
3662
3862
  ci_status: state.ci_status,
3663
3863
  ship_commit: state.ship_commit,
3664
3864
  ship_remote_head: state.ship_remote_head,
@@ -3672,7 +3872,8 @@ function createRunResult(input) {
3672
3872
  cleanup_report: state.cleanup_report,
3673
3873
  notification: state.notification,
3674
3874
  proof_decision: state.proof_decision,
3675
- merge_recommendation: state.merge_recommendation,
3875
+ merge_recommendation: publicMergeRecommendation,
3876
+ public_state: publicState,
3676
3877
  finalized: state.finalized,
3677
3878
  blocker: state.blocker,
3678
3879
  checkpoint_packet: state.checkpoint_packet,
@@ -4552,7 +4753,8 @@ function createRiddleProofRunCard(state, input = {}) {
4552
4753
  const visualDelta = visualDeltaFrom({ fullRiddleState: fullState, runState: state });
4553
4754
  const artifacts = artifactsFrom({ fullRiddleState: fullState, runState: state });
4554
4755
  const viewportMatrix = viewportMatrixFrom({ fullRiddleState: fullState, runState: state });
4555
- const shipControl = shipControlStateFor({ state });
4756
+ const publicState = publicStateForRunState({ state, status: state.status });
4757
+ const publicMergeRecommendation = publicMergeRecommendationForRunState({ state, status: state.status });
4556
4758
  return {
4557
4759
  version: RIDDLE_PROOF_RUN_CARD_VERSION,
4558
4760
  run_id: state.run_id || "unknown",
@@ -4606,14 +4808,18 @@ function createRiddleProofRunCard(state, input = {}) {
4606
4808
  stop_condition: compactRecord({
4607
4809
  status: state.status,
4608
4810
  terminal: isTerminalStatus(state.status),
4609
- ship_held: shipControl.ship_held,
4610
- shipping_disabled: shipControl.shipping_disabled,
4611
- ship_authorized: shipControl.ship_authorized,
4811
+ result_label: publicState.result_label,
4812
+ ship_held: publicState.ship_held,
4813
+ shipping_disabled: publicState.shipping_disabled,
4814
+ ship_authorized: publicState.ship_authorized,
4815
+ merge_ready: publicState.merge_ready,
4816
+ sync_allowed: publicState.sync_allowed,
4612
4817
  blocker_code: state.blocker?.code || null,
4613
4818
  blocker_message: state.blocker?.message || null,
4614
4819
  proof_decision: state.proof_decision,
4615
- merge_recommendation: state.merge_recommendation,
4616
- monitor_should_continue: !isTerminalStatus(state.status)
4820
+ merge_recommendation: publicMergeRecommendation,
4821
+ monitor_should_continue: !isTerminalStatus(state.status),
4822
+ public_state: publicState
4617
4823
  }),
4618
4824
  updated_at: state.updated_at
4619
4825
  };
@@ -4769,8 +4975,8 @@ function appendStageHeartbeat(state, input) {
4769
4975
  function createRunStatusSnapshot(state, at = timestamp2()) {
4770
4976
  const latestEvent = state.events[state.events.length - 1];
4771
4977
  const runId = state.run_id || "unknown";
4772
- const shipControl = shipControlStateFor({ state });
4773
- const existingRunCardCurrent = state.run_card?.status === state.status && state.run_card.stop_condition?.status === state.status && state.run_card.stop_condition?.terminal === isTerminalStatus(state.status) && state.run_card.stop_condition?.monitor_should_continue === !isTerminalStatus(state.status) && state.run_card.stop_condition?.ship_held === shipControl.ship_held && state.run_card.stop_condition?.shipping_disabled === shipControl.shipping_disabled && state.run_card.stop_condition?.ship_authorized === shipControl.ship_authorized;
4978
+ const publicState = publicStateForRunState({ state, status: state.status });
4979
+ const existingRunCardCurrent = state.run_card?.status === state.status && state.run_card.stop_condition?.status === state.status && state.run_card.stop_condition?.terminal === isTerminalStatus(state.status) && state.run_card.stop_condition?.monitor_should_continue === !isTerminalStatus(state.status) && state.run_card.stop_condition?.ship_held === publicState.ship_held && state.run_card.stop_condition?.shipping_disabled === publicState.shipping_disabled && state.run_card.stop_condition?.ship_authorized === publicState.ship_authorized && state.run_card.stop_condition?.merge_ready === publicState.merge_ready && state.run_card.stop_condition?.sync_allowed === publicState.sync_allowed && state.run_card.stop_condition?.result_label === publicState.result_label;
4774
4980
  const runCard = existingRunCardCurrent ? state.run_card : createRiddleProofRunCard(state, { at });
4775
4981
  return compactRecord({
4776
4982
  run_id: runId,
@@ -4784,9 +4990,13 @@ function createRunStatusSnapshot(state, at = timestamp2()) {
4784
4990
  pr_url: state.pr_url ?? null,
4785
4991
  pr_branch: state.pr_branch ?? null,
4786
4992
  pr_state: state.pr_state,
4787
- ship_held: shipControl.ship_held,
4788
- shipping_disabled: shipControl.shipping_disabled,
4789
- ship_authorized: shipControl.ship_authorized,
4993
+ result_label: publicState.result_label,
4994
+ ship_held: publicState.ship_held,
4995
+ shipping_disabled: publicState.shipping_disabled,
4996
+ ship_authorized: publicState.ship_authorized,
4997
+ merge_ready: publicState.merge_ready,
4998
+ sync_allowed: publicState.sync_allowed,
4999
+ public_state: publicState,
4790
5000
  ci_status: state.ci_status,
4791
5001
  ship_commit: state.ship_commit,
4792
5002
  ship_remote_head: state.ship_remote_head,
@@ -1,2 +1,3 @@
1
1
  import './types.cjs';
2
2
  export { R as RiddleProofAgentAdapter, a as RiddleProofAgentPayload, b as RiddleProofCheckpointMode, c as RiddleProofEngine, d as RiddleProofEngineHarnessConfig, e as RiddleProofEngineHarnessContext, f as RiddleProofEngineResult, g as RiddleProofShipMode, h as RiddleProofWorkflowParams, i as RunRiddleProofEngineHarnessInput, j as createDisabledRiddleProofAgentAdapter, r as readRiddleProofRunStatus, k as runRiddleProofEngineHarness } from './engine-harness-LBfqbFSe.cjs';
3
+ import './public-state.cjs';
@@ -1,2 +1,3 @@
1
1
  import './types.js';
2
2
  export { R as RiddleProofAgentAdapter, a as RiddleProofAgentPayload, b as RiddleProofCheckpointMode, c as RiddleProofEngine, d as RiddleProofEngineHarnessConfig, e as RiddleProofEngineHarnessContext, f as RiddleProofEngineResult, g as RiddleProofShipMode, h as RiddleProofWorkflowParams, i as RunRiddleProofEngineHarnessInput, j as createDisabledRiddleProofAgentAdapter, r as readRiddleProofRunStatus, k as runRiddleProofEngineHarness } from './engine-harness-CMACHP6A.js';
3
+ import './public-state.js';
@@ -2,12 +2,13 @@ import {
2
2
  createDisabledRiddleProofAgentAdapter,
3
3
  readRiddleProofRunStatus,
4
4
  runRiddleProofEngineHarness
5
- } from "./chunk-GHBNDHG7.js";
6
- import "./chunk-UZIX7M7D.js";
7
- import "./chunk-KNPCWWF3.js";
5
+ } from "./chunk-PCEDAQPG.js";
6
+ import "./chunk-UEY5SJG5.js";
7
+ import "./chunk-NXEAFQYZ.js";
8
8
  import "./chunk-EKZXU6MU.js";
9
- import "./chunk-MOTQNIZX.js";
10
- import "./chunk-CUBYSWZT.js";
9
+ import "./chunk-FX2CB4MG.js";
10
+ import "./chunk-QGMSN34W.js";
11
+ import "./chunk-WKIIJX3O.js";
11
12
  import "./chunk-MLKGABMK.js";
12
13
  export {
13
14
  createDisabledRiddleProofAgentAdapter,