@riddledc/riddle-proof 0.8.69 → 0.8.70

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 (57) hide show
  1. package/dist/adapters/codex-exec-agent.js +3 -3
  2. package/dist/adapters/codex.js +3 -3
  3. package/dist/adapters/local-agent.js +3 -3
  4. package/dist/adapters/openclaw.js +6 -6
  5. package/dist/advanced/engine-harness.cjs +19 -4
  6. package/dist/advanced/engine-harness.js +6 -6
  7. package/dist/advanced/index.cjs +19 -4
  8. package/dist/advanced/index.js +7 -7
  9. package/dist/advanced/runner.cjs +19 -4
  10. package/dist/advanced/runner.js +6 -6
  11. package/dist/checkpoint.js +3 -3
  12. package/dist/{chunk-NMQIWBSB.js → chunk-CGJX7LJO.js} +2 -2
  13. package/dist/{chunk-DTFSHRV5.js → chunk-CWRIXP5H.js} +1 -1
  14. package/dist/{chunk-ZB5XBHWD.js → chunk-DYE3URAQ.js} +1 -1
  15. package/dist/{chunk-WKNWMRDF.js → chunk-HNAMDVE3.js} +2 -2
  16. package/dist/{chunk-OD6OKXL2.js → chunk-KXLEN4SA.js} +1 -1
  17. package/dist/{chunk-UK7G4RKA.js → chunk-NKHZASNQ.js} +1 -1
  18. package/dist/{chunk-AF3KFD4A.js → chunk-RJVA5KKM.js} +4 -4
  19. package/dist/{chunk-2OTPBHSM.js → chunk-UTCL7FEZ.js} +2 -2
  20. package/dist/{chunk-P4BHU5NM.js → chunk-WLUMLHII.js} +4 -4
  21. package/dist/{chunk-LD2YTPD7.js → chunk-YH7ADFY4.js} +2 -2
  22. package/dist/{chunk-6PSM6KB2.js → chunk-ZAR7BWMN.js} +19 -4
  23. package/dist/cli/index.js +9 -9
  24. package/dist/cli.cjs +19 -4
  25. package/dist/cli.js +9 -9
  26. package/dist/codex-exec-agent.js +3 -3
  27. package/dist/engine-harness.cjs +19 -4
  28. package/dist/engine-harness.js +6 -6
  29. package/dist/index.cjs +19 -4
  30. package/dist/index.js +9 -9
  31. package/dist/local-agent.js +3 -3
  32. package/dist/openclaw.js +6 -6
  33. package/dist/pr-comment.cjs +19 -4
  34. package/dist/pr-comment.js +2 -2
  35. package/dist/public-state.cjs +19 -4
  36. package/dist/public-state.js +1 -1
  37. package/dist/result.cjs +19 -4
  38. package/dist/result.js +2 -2
  39. package/dist/run-card.cjs +19 -4
  40. package/dist/run-card.js +4 -4
  41. package/dist/runner.cjs +19 -4
  42. package/dist/runner.js +6 -6
  43. package/dist/spec/checkpoint.js +3 -3
  44. package/dist/spec/index.cjs +19 -4
  45. package/dist/spec/index.js +5 -5
  46. package/dist/spec/public-state.cjs +19 -4
  47. package/dist/spec/public-state.js +1 -1
  48. package/dist/spec/result.cjs +19 -4
  49. package/dist/spec/result.js +2 -2
  50. package/dist/spec/run-card.cjs +19 -4
  51. package/dist/spec/run-card.js +4 -4
  52. package/dist/spec/state.cjs +19 -4
  53. package/dist/spec/state.js +5 -5
  54. package/dist/state.cjs +19 -4
  55. package/dist/state.js +5 -5
  56. package/examples/story-matrices/riddle-proof-ux-coverage.csv +8 -2
  57. package/package.json +1 -1
package/dist/state.cjs CHANGED
@@ -111,6 +111,19 @@ function checkpointSummaryFrom(...values) {
111
111
  function uniqueStrings(values) {
112
112
  return [...new Set(values.filter(Boolean))];
113
113
  }
114
+ function statusIsProofFailed(status) {
115
+ return status === "failed" || status === "product_regression";
116
+ }
117
+ function statusIsProofBlocked(status) {
118
+ return status === "blocked" || status === "proof_insufficient" || status === "environment_blocked" || status === "configuration_error" || status === "needs_human_review";
119
+ }
120
+ function statusRequiresDisclosure(status) {
121
+ if (status === "proof_insufficient") return "proof_insufficient";
122
+ if (status === "environment_blocked") return "environment_blocked";
123
+ if (status === "configuration_error") return "configuration_error";
124
+ if (status === "needs_human_review") return "human_review_required";
125
+ return void 0;
126
+ }
114
127
  function summarizeRiddleProofPublicState(input) {
115
128
  const record = asRecord(input);
116
129
  const runCard = asRecord(record.run_card);
@@ -153,7 +166,7 @@ function summarizeRiddleProofPublicState(input) {
153
166
  asRecord(record.details).checkpoint_summary,
154
167
  asRecord(raw.details).checkpoint_summary
155
168
  );
156
- const blockedOrWaiting = status === "blocked" || status === "failed" || status === "awaiting_checkpoint" || handoffState === "proof_blocked" || handoffState === "proof_review_required" || handoffState === "proof_failed" || handoffState === "proof_checkpoint_required";
169
+ const blockedOrWaiting = statusIsProofBlocked(status) || statusIsProofFailed(status) || status === "awaiting_checkpoint" || handoffState === "proof_blocked" || handoffState === "proof_review_required" || handoffState === "proof_failed" || handoffState === "proof_checkpoint_required";
157
170
  const proofPassed = Boolean(proofComplete && !blockedOrWaiting);
158
171
  const explicitMergeReady = firstBooleanValue(record.merge_ready, stopCondition.merge_ready, raw.merge_ready, handoff.merge_ready);
159
172
  const normalPrAllowed = firstBooleanValue(record.normal_pr_allowed, raw.normal_pr_allowed, handoff.normal_pr_allowed);
@@ -162,8 +175,8 @@ function summarizeRiddleProofPublicState(input) {
162
175
  const syncAllowed = mergeReady;
163
176
  let policyState = "unknown";
164
177
  if (status === "awaiting_checkpoint" || handoffState === "proof_checkpoint_required") policyState = "awaiting_checkpoint";
165
- else if (status === "failed" || handoffState === "proof_failed") policyState = "proof_failed";
166
- else if (status === "blocked" || handoffState === "proof_blocked" || handoffState === "proof_review_required") policyState = "proof_blocked";
178
+ else if (statusIsProofFailed(status) || handoffState === "proof_failed") policyState = "proof_failed";
179
+ else if (statusIsProofBlocked(status) || handoffState === "proof_blocked" || handoffState === "proof_review_required") policyState = "proof_blocked";
167
180
  else if (handoffState === "proof_complete_ship_disabled") policyState = "proof_complete_ship_disabled";
168
181
  else if (proofComplete && shipHeld && !shipAuthorized) policyState = "proof_passed_ship_held";
169
182
  else if (proofComplete && shippingDisabled && !shipAuthorized) policyState = "proof_complete_ship_disabled";
@@ -175,6 +188,8 @@ function summarizeRiddleProofPublicState(input) {
175
188
  if (shippingDisabled) requiredDisclosures.push("shipping_disabled");
176
189
  if (checkpointSummary?.audit_disclosure_required) requiredDisclosures.push("checkpoint_audit_counters");
177
190
  if (status === "awaiting_checkpoint" || handoffState === "proof_checkpoint_required") requiredDisclosures.push("checkpoint_required");
191
+ const statusDisclosure = statusRequiresDisclosure(status);
192
+ if (statusDisclosure) requiredDisclosures.push(statusDisclosure);
178
193
  const prohibitedClaims = [];
179
194
  if (!shipAuthorized || shipHeld || shippingDisabled) prohibitedClaims.push("ship_authorized", "shipped");
180
195
  if (!mergeReady) prohibitedClaims.push("merge_ready");
@@ -185,7 +200,7 @@ function summarizeRiddleProofPublicState(input) {
185
200
  if (checkpointSummary?.audit_disclosure_required) {
186
201
  prohibitedClaims.push("all_checkpoint_responses_accepted");
187
202
  }
188
- 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";
203
+ const resultLabel = status === "product_regression" ? "product_regression" : status === "proof_insufficient" ? "proof_insufficient" : status === "environment_blocked" ? "environment_blocked" : status === "configuration_error" ? "configuration_error" : status === "needs_human_review" ? "needs_human_review" : 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";
189
204
  return {
190
205
  status,
191
206
  ok,
package/dist/state.js CHANGED
@@ -9,11 +9,11 @@ import {
9
9
  normalizePrLifecycleState,
10
10
  normalizeRunParams,
11
11
  setRunStatus
12
- } from "./chunk-NMQIWBSB.js";
13
- import "./chunk-2OTPBHSM.js";
14
- import "./chunk-ZB5XBHWD.js";
15
- import "./chunk-UK7G4RKA.js";
16
- import "./chunk-6PSM6KB2.js";
12
+ } from "./chunk-CGJX7LJO.js";
13
+ import "./chunk-UTCL7FEZ.js";
14
+ import "./chunk-DYE3URAQ.js";
15
+ import "./chunk-NKHZASNQ.js";
16
+ import "./chunk-ZAR7BWMN.js";
17
17
  import "./chunk-MLKGABMK.js";
18
18
  export {
19
19
  RIDDLE_PROOF_RUN_STATE_VERSION,
@@ -12,6 +12,12 @@ area,user_story_id,user_story,expected_behavior,surface,runner,evidence_required
12
12
  "Local browser","rp-ux-local-playwright-runner-smoke","As a user avoiding hosted infra, I can run the local Playwright runner and receive the same profile-result contract shape.","riddle-proof-playwright writes profile-result.json, proof.json, console.json, dom-summary.json, summary.md, and artifact-manifest.json.","@riddledc/riddle-proof-runner-playwright","local-playwright","profile-result.json; artifact-manifest.json; screenshot or DOM evidence","passed","2026-06-21","docs/riddle-proof-story-matrix-runs/2026-06-21-ux-coverage-batch.md","Live local Playwright smoke passed against riddledc.com/proof with 5/5 checks.","Keep as local-vs-hosted parity smoke; rerun after runner package changes.","P1","configuration_error"
13
13
  "Viewport matrices","rp-story-viewport-aggregate-does-not-hide-child-failure","As a maintainer running viewport matrices, I can aggregate child runs without losing the failing viewport.","Aggregate returns the worst child verdict, lists child outputs, and separates summed poll time from max child latency.","run-profile aggregate","local-cli","child profile-result files; aggregate profile-result.json; summary.md","product_regression_expected","2026-06-21","docs/riddle-proof-story-matrix-runs/2026-06-21-ux-coverage-batch.md","Aggregate preserved the phone child product_regression via split_viewport_children.","Keep as a recurring negative-control aggregate using one passing child and one failing child.","P1","contract_gap"
14
14
  "Formal contract","rp-story-formal-kernel-matches-runtime-contract","As a framework maintainer, I can prove the status/result contract that runtime tests depend on.","Lean kernel builds and runtime conformance tests mirror the formal contract cases.","formal/riddle-proof-kernel","lean-kernel","lake build; formal-conformance test log","passed","2026-06-21","PR #947 CI formal-kernel","Formal layer stayed in contract-hardening path, not runtime evidence collection.","Keep recurring when status semantics change.","P2","contract_gap"
15
- "Hosted proof view","rp-story-hosted-proof-view-uses-contract","As a hosted proof viewer, I see contract-derived status, artifacts, and missing-evidence explanations rather than raw backend fields.","Hosted proof renderer uses the same consumer-surface contract as PR comments and summaries.","hosted proof renderer","manual-review","manual review note; screenshot; passed and negative-control packets","needs_product_hook","","","Still not proven end-to-end through the hosted proof view UI.","Inspect renderer imports and run passed plus negative-control view smoke.","P1","contract_gap"
16
- "Agent summary","rp-ux-agent-summary-uses-contract","As an agent consuming Riddle Proof output, I see the same evidence-backed status language as reviewers.","Agent-facing summaries use shared public-state/consumer-surface contract and avoid raw-field overclaiming.","agent-facing summary","manual-review","summary text; contract import or documented gap; negative-control packet","needs_product_hook","","","Still not proven outside PR comments.","Find agent summary renderer and wire or verify shared contract usage.","P1","contract_gap"
15
+ "Hosted proof view","rp-ux-hosted-proof-view-contract-passed","As a hosted proof viewer, I see a passing packet rendered from the shared public-state contract.","Hosted proof view helper reports passed proof state only from passed/ready evidence and preserves handoff gating.","hosted proof view contract","formal-conformance","summarizeRiddleProofHostedProofViewSurface passed case; public-state claims; handoff claims","passed","2026-06-21","packages/riddle-proof/formal-conformance.test.js","Shared hosted-view helper uses the same public-state contract as PR comments.","Use this helper from any real hosted proof packet renderer.","P1","contract_gap"
16
+ "Hosted proof view","rp-ux-hosted-proof-view-contract-product-regression","As a hosted proof viewer, I see product_regression as failed evidence, not as a generic successful packet.","product_regression maps to proof_failed, keeps result_label product_regression, and prohibits proof_passed/ready_to_ship/merge claims.","hosted proof view contract","formal-conformance","product_regression packet; prohibited claims; suppressed merge recommendation","passed","2026-06-21","packages/riddle-proof/formal-conformance.test.js","Found and fixed the semantic gap where profile verdicts were not explicit public-state blockers.","Keep this as the negative-control renderer contract before UI smoke.","P1","contract_gap"
17
+ "Hosted proof view","rp-ux-hosted-proof-view-contract-proof-insufficient","As a hosted proof viewer, I see missing or incomplete evidence as proof_insufficient with an explicit disclosure.","proof_insufficient maps to proof_blocked, keeps result_label proof_insufficient, and requires proof_insufficient disclosure.","hosted proof view contract","formal-conformance","proof_insufficient packet; disclosure; prohibited proof_passed claim","passed","2026-06-21","packages/riddle-proof/formal-conformance.test.js","Incomplete evidence now stays blocked in public consumer surfaces.","Keep paired with product_regression in renderer smoke tests.","P1","proof_insufficient"
18
+ "Hosted proof view","rp-ux-hosted-proof-view-product-renderer-imports-contract","As a hosted proof viewer, the actual product renderer imports the shared contract instead of rendering raw proof fields.","Hosted proof packet UI uses @riddledc/riddle-proof/public-state or an equivalent shared wrapper for status, handoff, and disclosures.","hosted proof renderer","manual-review","renderer import; screenshot; passed and negative-control packets","needs_product_hook","","","Read-only site scan found proof/example pages, but no live hosted proof packet renderer importing public-state yet.","Wire any hosted proof packet renderer to summarizeRiddleProofHostedProofViewSurface and run passed plus negative-control UI smoke.","P1","contract_gap"
19
+ "Agent summary","rp-ux-agent-summary-contract-proof-insufficient","As an agent consuming Riddle Proof output, I see proof_insufficient as incomplete evidence, not as success.","Agent summary helper maps proof_insufficient to proof_blocked and prohibits proof_passed.","agent summary contract","formal-conformance","summarizeRiddleProofAgentSummarySurface proof_insufficient case; disclosure; prohibited claim","passed","2026-06-21","packages/riddle-proof/formal-conformance.test.js","Agent-facing proof_insufficient summaries now share the public-state blocker contract.","Keep as a fixture for agent-output golden summaries.","P1","proof_insufficient"
20
+ "Agent summary","rp-ux-agent-summary-contract-environment-blocked","As an agent consuming Riddle Proof output, I see environment_blocked as a blocker outside product correctness.","Agent summary helper maps environment_blocked to proof_blocked, suppresses merge recommendations, and requires environment disclosure.","agent summary contract","formal-conformance","environment_blocked packet; suppressed merge recommendation; disclosure","passed","2026-06-21","packages/riddle-proof/formal-conformance.test.js","Environment blockers stay visible and cannot become proof_passed in agent summaries.","Use in hosted cold-start/network-blocked summary tests.","P1","environment_blocked"
21
+ "Agent summary","rp-ux-agent-summary-contract-human-review","As an agent consuming Riddle Proof output, I see needs_human_review as a held proof state, not a pass.","Agent summary helper maps needs_human_review to proof_blocked and requires human-review disclosure.","agent summary contract","formal-conformance","needs_human_review packet; disclosure; prohibited proof_passed claim","passed","2026-06-21","packages/riddle-proof/formal-conformance.test.js","Human-review verdicts now stay blocked in public consumer surfaces.","Keep this for evidence packets with subjective or unsupported checks.","P2","contract_gap"
22
+ "Agent summary","rp-ux-agent-summary-product-wiring-uses-contract","As an agent consuming real Riddle Proof output, the emitted summary uses the shared contract rather than raw fields.","Agent-facing summaries import/use the public-state consumer helper for status, handoff, and prohibited claims.","agent-facing summary","manual-review","summary text; contract import or documented gap; negative-control packet","needs_product_hook","","","Package helper is now contract-tested; product wiring still needs an executable consumer check outside PR comments.","Find the actual agent summary renderer/emitter and wire or verify summarizeRiddleProofAgentSummarySurface usage.","P1","contract_gap"
17
23
  "Release and publish","rp-ux-release-publish-flow","As a package maintainer, I can merge a fix, get a version PR, and publish the package without manual status fakery.","Changeset release PR validates, merges, and trusted npm publish updates latest.","changesets release","github-actions","release PR; Release workflow; npm view latest","passed","2026-06-21","@riddledc/riddle-proof@0.8.68","Release path worked for the reporting fix and published with provenance.","Keep GitHub Action noise low and use this as release smoke.","P2","environment_blocked"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riddledc/riddle-proof",
3
- "version": "0.8.69",
3
+ "version": "0.8.70",
4
4
  "description": "Reusable Riddle Proof contracts and helpers for evidence-backed agent changes.",
5
5
  "license": "MIT",
6
6
  "author": "RiddleDC",