approval-md 0.4.0 → 0.4.2

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 (190) hide show
  1. package/SPEC.md +11 -0
  2. package/cli.js +72 -4
  3. package/dist/src/channels/contract.d.ts +53 -0
  4. package/dist/src/channels/contract.js +56 -0
  5. package/dist/src/channels/contract.js.map +1 -1
  6. package/dist/src/channels/tagging.d.ts +25 -0
  7. package/dist/src/channels/tagging.js +57 -5
  8. package/dist/src/channels/tagging.js.map +1 -1
  9. package/dist/src/channels/telegram-minimal.d.ts +251 -0
  10. package/dist/src/channels/telegram-minimal.js +618 -0
  11. package/dist/src/channels/telegram-minimal.js.map +1 -0
  12. package/dist/src/channels/telegram.d.ts +454 -19
  13. package/dist/src/channels/telegram.js +931 -80
  14. package/dist/src/channels/telegram.js.map +1 -1
  15. package/dist/src/cli/amend.js +8 -1
  16. package/dist/src/cli/amend.js.map +1 -1
  17. package/dist/src/cli/attest.js +2 -1
  18. package/dist/src/cli/attest.js.map +1 -1
  19. package/dist/src/cli/audit-card.d.ts +1 -1
  20. package/dist/src/cli/audit-card.js +40 -1
  21. package/dist/src/cli/audit-card.js.map +1 -1
  22. package/dist/src/cli/audit.d.ts +7 -5
  23. package/dist/src/cli/audit.js +25 -12
  24. package/dist/src/cli/audit.js.map +1 -1
  25. package/dist/src/cli/channel-telegram-webhook.d.ts +2 -0
  26. package/dist/src/cli/channel-telegram-webhook.js +7 -0
  27. package/dist/src/cli/channel-telegram-webhook.js.map +1 -1
  28. package/dist/src/cli/channel-telegram.d.ts +75 -2
  29. package/dist/src/cli/channel-telegram.js +172 -16
  30. package/dist/src/cli/channel-telegram.js.map +1 -1
  31. package/dist/src/cli/channel-web.js +2 -1
  32. package/dist/src/cli/channel-web.js.map +1 -1
  33. package/dist/src/cli/channel.js +2 -1
  34. package/dist/src/cli/channel.js.map +1 -1
  35. package/dist/src/cli/doctor.js +1 -1
  36. package/dist/src/cli/doctor.js.map +1 -1
  37. package/dist/src/cli/execute.d.ts +12 -0
  38. package/dist/src/cli/execute.js +50 -4
  39. package/dist/src/cli/execute.js.map +1 -1
  40. package/dist/src/cli/gate.js +2 -1
  41. package/dist/src/cli/gate.js.map +1 -1
  42. package/dist/src/cli/help.d.ts +1 -0
  43. package/dist/src/cli/help.js +39 -18
  44. package/dist/src/cli/help.js.map +1 -1
  45. package/dist/src/cli/hook.d.ts +121 -3
  46. package/dist/src/cli/hook.js +719 -79
  47. package/dist/src/cli/hook.js.map +1 -1
  48. package/dist/src/cli/log-checkpoint.js +2 -1
  49. package/dist/src/cli/log-checkpoint.js.map +1 -1
  50. package/dist/src/cli/log-unlock.d.ts +23 -0
  51. package/dist/src/cli/log-unlock.js +110 -0
  52. package/dist/src/cli/log-unlock.js.map +1 -0
  53. package/dist/src/cli/main.js +23 -6
  54. package/dist/src/cli/main.js.map +1 -1
  55. package/dist/src/cli/setup-common.js +2 -1
  56. package/dist/src/cli/setup-common.js.map +1 -1
  57. package/dist/src/cli/up.js +5 -0
  58. package/dist/src/cli/up.js.map +1 -1
  59. package/dist/src/cli/vault.js +2 -1
  60. package/dist/src/cli/vault.js.map +1 -1
  61. package/dist/src/cli/verb-registry.js +1 -0
  62. package/dist/src/cli/verb-registry.js.map +1 -1
  63. package/dist/src/cli/wordmark.d.ts +2 -2
  64. package/dist/src/cli/wordmark.js +2 -2
  65. package/dist/src/core/attest-bootstrap.js +2 -1
  66. package/dist/src/core/attest-bootstrap.js.map +1 -1
  67. package/dist/src/core/attest.js +5 -4
  68. package/dist/src/core/attest.js.map +1 -1
  69. package/dist/src/core/audit.d.ts +113 -9
  70. package/dist/src/core/audit.js +382 -18
  71. package/dist/src/core/audit.js.map +1 -1
  72. package/dist/src/core/budgets.d.ts +12 -0
  73. package/dist/src/core/budgets.js +54 -1
  74. package/dist/src/core/budgets.js.map +1 -1
  75. package/dist/src/core/checkpoint.js +3 -2
  76. package/dist/src/core/checkpoint.js.map +1 -1
  77. package/dist/src/core/command-class.js +6 -0
  78. package/dist/src/core/command-class.js.map +1 -1
  79. package/dist/src/core/decision-refusal.js +2 -1
  80. package/dist/src/core/decision-refusal.js.map +1 -1
  81. package/dist/src/core/delegation.d.ts +109 -0
  82. package/dist/src/core/delegation.js +244 -0
  83. package/dist/src/core/delegation.js.map +1 -0
  84. package/dist/src/core/execute.js +12 -3
  85. package/dist/src/core/execute.js.map +1 -1
  86. package/dist/src/core/gate-window.js +4 -3
  87. package/dist/src/core/gate-window.js.map +1 -1
  88. package/dist/src/core/gate.d.ts +84 -43
  89. package/dist/src/core/gate.js +114 -6
  90. package/dist/src/core/gate.js.map +1 -1
  91. package/dist/src/core/gesture-refusal.js +2 -1
  92. package/dist/src/core/gesture-refusal.js.map +1 -1
  93. package/dist/src/core/identity.d.ts +105 -0
  94. package/dist/src/core/identity.js +122 -0
  95. package/dist/src/core/identity.js.map +1 -0
  96. package/dist/src/core/log-lock.d.ts +435 -0
  97. package/dist/src/core/log-lock.js +1093 -0
  98. package/dist/src/core/log-lock.js.map +1 -0
  99. package/dist/src/core/log.d.ts +82 -3
  100. package/dist/src/core/log.js +285 -40
  101. package/dist/src/core/log.js.map +1 -1
  102. package/dist/src/core/loop.d.ts +11 -0
  103. package/dist/src/core/loop.js +63 -4
  104. package/dist/src/core/loop.js.map +1 -1
  105. package/dist/src/core/policy-diff.js +20 -1
  106. package/dist/src/core/policy-diff.js.map +1 -1
  107. package/dist/src/core/policy-explain.js +18 -2
  108. package/dist/src/core/policy-explain.js.map +1 -1
  109. package/dist/src/core/policy-load.d.ts +38 -1
  110. package/dist/src/core/policy-load.js +34 -2
  111. package/dist/src/core/policy-load.js.map +1 -1
  112. package/dist/src/core/policy-match.js +30 -5
  113. package/dist/src/core/policy-match.js.map +1 -1
  114. package/dist/src/core/policy-proposal.d.ts +17 -0
  115. package/dist/src/core/policy-proposal.js +32 -16
  116. package/dist/src/core/policy-proposal.js.map +1 -1
  117. package/dist/src/core/prompt-layout.d.ts +186 -1
  118. package/dist/src/core/prompt-layout.js +345 -3
  119. package/dist/src/core/prompt-layout.js.map +1 -1
  120. package/dist/src/core/sender-identity.d.ts +24 -1
  121. package/dist/src/core/sender-identity.js +31 -0
  122. package/dist/src/core/sender-identity.js.map +1 -1
  123. package/dist/src/core/token.js +11 -0
  124. package/dist/src/core/token.js.map +1 -1
  125. package/dist/src/core/tool-map.d.ts +125 -0
  126. package/dist/src/core/tool-map.js +179 -0
  127. package/dist/src/core/tool-map.js.map +1 -0
  128. package/dist/src/core/validate.d.ts +20 -6
  129. package/dist/src/core/validate.js +0 -0
  130. package/dist/src/core/validate.js.map +1 -1
  131. package/dist/src/daemon/git-evidence.d.ts +2 -2
  132. package/dist/src/daemon/git-evidence.js +1 -1
  133. package/dist/src/serve/archive.d.ts +8 -0
  134. package/dist/src/serve/archive.js +11 -2
  135. package/dist/src/serve/archive.js.map +1 -1
  136. package/docs/README-extended.md +15 -0
  137. package/docs/cli-reference.md +571 -28
  138. package/package.json +2 -2
  139. package/schema/event.schema.json +387 -29
  140. package/schema/fixtures/event/invalid/audit-lock-reclaimed-age-without-created.json +19 -0
  141. package/schema/fixtures/event/invalid/audit-lock-reclaimed-agent-actor.json +14 -0
  142. package/schema/fixtures/event/invalid/audit-lock-reclaimed-lockfile-path.json +14 -0
  143. package/schema/fixtures/event/invalid/audit-lock-reclaimed-operator-cleared-system-actor.json +14 -0
  144. package/schema/fixtures/event/invalid/audit-lock-reclaimed-unknown-reason.json +14 -0
  145. package/schema/fixtures/event/invalid/audit-lock-reclaimed-without-age.json +13 -0
  146. package/schema/fixtures/event/invalid/audit-reviewed-agent-actor.json +6 -1
  147. package/schema/fixtures/event/invalid/audit-reviewed-bad-payload-hash.json +21 -0
  148. package/schema/fixtures/event/invalid/audit-reviewed-loved-no-note.json +5 -0
  149. package/schema/fixtures/event/invalid/audit-reviewed-model-actor.json +20 -0
  150. package/schema/fixtures/event/invalid/audit-reviewed-no-subject-hash.json +19 -0
  151. package/schema/fixtures/event/invalid/audit-reviewed-no-subject-seq.json +19 -0
  152. package/schema/fixtures/event/invalid/audit-reviewed-no-verdict-source.json +19 -0
  153. package/schema/fixtures/event/invalid/audit-reviewed-no-verdict.json +19 -0
  154. package/schema/fixtures/event/invalid/audit-reviewed-system-actor.json +6 -1
  155. package/schema/fixtures/event/invalid/audit-reviewed-verdict-source-model.json +20 -0
  156. package/schema/fixtures/event/invalid/audit-sampled-no-policy-hash.json +14 -0
  157. package/schema/fixtures/event/invalid/execution-started-harness-tool-space.json +18 -0
  158. package/schema/fixtures/event/valid/audit-lock-reclaimed-implausible-created.json +18 -0
  159. package/schema/fixtures/event/valid/audit-lock-reclaimed-legacy.json +14 -0
  160. package/schema/fixtures/event/valid/audit-lock-reclaimed-unlock.json +19 -0
  161. package/schema/fixtures/event/valid/audit-lock-reclaimed.json +19 -0
  162. package/schema/fixtures/event/valid/audit-reviewed-reaction.json +5 -0
  163. package/schema/fixtures/event/valid/audit-reviewed.json +6 -1
  164. package/schema/fixtures/event/valid/audit-sampled.json +2 -1
  165. package/schema/fixtures/event/valid/daemon-identity.json +2 -1
  166. package/schema/fixtures/event/valid/execution-started-harness-tool.json +19 -0
  167. package/schema/fixtures/policy/invalid/delegation-advice-string.json +15 -0
  168. package/schema/fixtures/policy/invalid/delegation-class-duplicate.json +18 -0
  169. package/schema/fixtures/policy/invalid/delegation-class-wildcard.json +17 -0
  170. package/schema/fixtures/policy/invalid/delegation-daily-cap-fractional.json +15 -0
  171. package/schema/fixtures/policy/invalid/delegation-daily-cap-negative.json +15 -0
  172. package/schema/fixtures/policy/invalid/delegation-daily-cap-too-high.json +15 -0
  173. package/schema/fixtures/policy/invalid/delegation-escalate-duplicate.json +18 -0
  174. package/schema/fixtures/policy/invalid/delegation-escalate-unknown.json +17 -0
  175. package/schema/fixtures/policy/invalid/delegation-max-autonomy-alias.json +15 -0
  176. package/schema/fixtures/policy/invalid/delegation-max-autonomy-autonomous.json +15 -0
  177. package/schema/fixtures/policy/invalid/delegation-model-no-version.json +15 -0
  178. package/schema/fixtures/policy/invalid/delegation-model-provider-form.json +15 -0
  179. package/schema/fixtures/policy/invalid/delegation-null.json +7 -0
  180. package/schema/fixtures/policy/invalid/delegation-reviewer-agent.json +17 -0
  181. package/schema/fixtures/policy/invalid/delegation-reviewer-bare-id.json +17 -0
  182. package/schema/fixtures/policy/invalid/delegation-unknown-key.json +16 -0
  183. package/schema/fixtures/policy/invalid/tools-class-wildcard.json +9 -0
  184. package/schema/fixtures/policy/invalid/tools-match-double-star.json +9 -0
  185. package/schema/fixtures/policy/invalid/unmapped-tool-unknown.json +7 -0
  186. package/schema/fixtures/policy/valid/delegation-empty.json +7 -0
  187. package/schema/fixtures/policy/valid/delegation-grammar-full.json +41 -0
  188. package/schema/fixtures/policy/valid/delegation-off.json +15 -0
  189. package/schema/fixtures/policy/valid/tools-mapping.json +17 -0
  190. package/schema/policy.schema.json +178 -0
@@ -0,0 +1,19 @@
1
+ {
2
+ "seq": 16,
3
+ "ts": "2026-08-04T09:26:02Z",
4
+ "event": "audit.reviewed",
5
+ "task": "task-049",
6
+ "action_key": "task-049:archive:2026-08-04",
7
+ "actor": "human:carter",
8
+ "channel": "cli",
9
+ "payload": {
10
+ "subject_seq": 15,
11
+ "subject_event": "audit.sampled",
12
+ "reviewed": true,
13
+ "verdict": "ok",
14
+ "verdict_source": "explicit"
15
+ },
16
+ "alg": "sha256/jcs",
17
+ "prev": "7f625051c176f2f260a1f7e25c9a933717ebb49917a8788ac25ae7a4614ebb30",
18
+ "hash": "6752e6617b2b810c1cc0cf09c51678c78891ff6fdfd8bb9399aecbdfca00dd5b"
19
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "seq": 16,
3
+ "ts": "2026-08-04T09:26:02Z",
4
+ "event": "audit.reviewed",
5
+ "task": "task-049",
6
+ "action_key": "task-049:archive:2026-08-04",
7
+ "actor": "human:carter",
8
+ "channel": "cli",
9
+ "payload": {
10
+ "subject_event": "audit.sampled",
11
+ "reviewed": true,
12
+ "sampled_subject_hash": "6c1d3f0b9a8e7d6c5b4a39281706f5e4d3c2b1a09f8e7d6c5b4a392817060504",
13
+ "verdict": "ok",
14
+ "verdict_source": "explicit"
15
+ },
16
+ "alg": "sha256/jcs",
17
+ "prev": "7f625051c176f2f260a1f7e25c9a933717ebb49917a8788ac25ae7a4614ebb30",
18
+ "hash": "6752e6617b2b810c1cc0cf09c51678c78891ff6fdfd8bb9399aecbdfca00dd5b"
19
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "seq": 16,
3
+ "ts": "2026-08-04T09:26:02Z",
4
+ "event": "audit.reviewed",
5
+ "task": "task-049",
6
+ "action_key": "task-049:archive:2026-08-04",
7
+ "actor": "human:carter",
8
+ "channel": "cli",
9
+ "payload": {
10
+ "subject_seq": 15,
11
+ "subject_event": "audit.sampled",
12
+ "reviewed": true,
13
+ "sampled_subject_hash": "6c1d3f0b9a8e7d6c5b4a39281706f5e4d3c2b1a09f8e7d6c5b4a392817060504",
14
+ "verdict": "ok"
15
+ },
16
+ "alg": "sha256/jcs",
17
+ "prev": "7f625051c176f2f260a1f7e25c9a933717ebb49917a8788ac25ae7a4614ebb30",
18
+ "hash": "6752e6617b2b810c1cc0cf09c51678c78891ff6fdfd8bb9399aecbdfca00dd5b"
19
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "seq": 16,
3
+ "ts": "2026-08-04T09:26:02Z",
4
+ "event": "audit.reviewed",
5
+ "task": "task-049",
6
+ "action_key": "task-049:archive:2026-08-04",
7
+ "actor": "human:carter",
8
+ "channel": "cli",
9
+ "payload": {
10
+ "subject_seq": 15,
11
+ "subject_event": "audit.sampled",
12
+ "reviewed": true,
13
+ "sampled_subject_hash": "6c1d3f0b9a8e7d6c5b4a39281706f5e4d3c2b1a09f8e7d6c5b4a392817060504",
14
+ "verdict_source": "explicit"
15
+ },
16
+ "alg": "sha256/jcs",
17
+ "prev": "7f625051c176f2f260a1f7e25c9a933717ebb49917a8788ac25ae7a4614ebb30",
18
+ "hash": "6752e6617b2b810c1cc0cf09c51678c78891ff6fdfd8bb9399aecbdfca00dd5b"
19
+ }
@@ -7,7 +7,12 @@
7
7
  "actor": "system:daemon",
8
8
  "channel": "cli",
9
9
  "payload": {
10
- "verdict": "ok"
10
+ "subject_seq": 15,
11
+ "subject_event": "audit.sampled",
12
+ "reviewed": true,
13
+ "sampled_subject_hash": "6c1d3f0b9a8e7d6c5b4a39281706f5e4d3c2b1a09f8e7d6c5b4a392817060504",
14
+ "verdict": "ok",
15
+ "verdict_source": "explicit"
11
16
  },
12
17
  "alg": "sha256/jcs",
13
18
  "prev": "7f625051c176f2f260a1f7e25c9a933717ebb49917a8788ac25ae7a4614ebb30",
@@ -0,0 +1,20 @@
1
+ {
2
+ "seq": 16,
3
+ "ts": "2026-08-04T09:26:02Z",
4
+ "event": "audit.reviewed",
5
+ "task": "task-049",
6
+ "action_key": "task-049:archive:2026-08-04",
7
+ "actor": "human:carter",
8
+ "channel": "cli",
9
+ "payload": {
10
+ "subject_seq": 15,
11
+ "subject_event": "audit.sampled",
12
+ "reviewed": true,
13
+ "sampled_subject_hash": "6c1d3f0b9a8e7d6c5b4a39281706f5e4d3c2b1a09f8e7d6c5b4a392817060504",
14
+ "verdict": "ok",
15
+ "verdict_source": "model"
16
+ },
17
+ "alg": "sha256/jcs",
18
+ "prev": "7f625051c176f2f260a1f7e25c9a933717ebb49917a8788ac25ae7a4614ebb30",
19
+ "hash": "6752e6617b2b810c1cc0cf09c51678c78891ff6fdfd8bb9399aecbdfca00dd5b"
20
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "seq": 15,
3
+ "ts": "2026-08-04T09:25:02Z",
4
+ "event": "audit.sampled",
5
+ "task": "task-049",
6
+ "action_key": "task-049:archive:2026-08-04",
7
+ "actor": "system:auditor",
8
+ "payload": {
9
+ "rate": 0.1
10
+ },
11
+ "alg": "sha256/jcs",
12
+ "prev": "07453feb30c2b0b1a2806398cdd17b38d98f9abf52b8a75ca42878c9101d8264",
13
+ "hash": "7f625051c176f2f260a1f7e25c9a933717ebb49917a8788ac25ae7a4614ebb30"
14
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "seq": 12,
3
+ "ts": "2026-10-05T22:50:00Z",
4
+ "event": "execution.started",
5
+ "task": "hook:sess-1:tu-4",
6
+ "action_key": "hook:sess-1:tu-4:harness.tool.unmapped",
7
+ "actor": "agent:claude-code",
8
+ "payload": {
9
+ "class": "harness.tool.unmapped",
10
+ "est_cost_usd": "0",
11
+ "execution": "harness",
12
+ "payload_hash": "3c987d69fe833bbea2b588ea7e7bc0848bbfb90703b298729a3d2d6d45346011",
13
+ "harness_tool": "mcp tool\nwith a line break"
14
+ },
15
+ "alg": "sha256/jcs",
16
+ "prev": "d973375d6aeec5e6cd2de3a0f7dc8f5bc1d9be77225f9af0f851e7fc519a07c3",
17
+ "hash": "4b7e0c2d9a8f6e5d4c3b2a1908f7e6d5c4b3a2918f7e6d5c4b3a291807f6e5d4"
18
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "seq": 216,
3
+ "ts": "2026-10-05T07:41:12.408Z",
4
+ "event": "audit.lock_reclaimed",
5
+ "actor": "system:log",
6
+ "payload": {
7
+ "lockfile": "events.jsonl.lock",
8
+ "reason": "holder-dead",
9
+ "holder": {
10
+ "pid": 48213,
11
+ "op": "append",
12
+ "created": null
13
+ }
14
+ },
15
+ "alg": "sha256/jcs",
16
+ "prev": "7f625051c176f2f260a1f7e25c9a933717ebb49917a8788ac25ae7a4614ebb30",
17
+ "hash": "2e9b7c1a4d6f08213b5c7e9a0d2f416385a7c9e1b3d5f70921a3c5e7092b4d6f"
18
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "seq": 215,
3
+ "ts": "2026-10-05T07:52:03.010Z",
4
+ "event": "audit.lock_reclaimed",
5
+ "actor": "system:log",
6
+ "payload": {
7
+ "lockfile": "events.jsonl.lock",
8
+ "reason": "legacy-aged",
9
+ "age_ms": 612000
10
+ },
11
+ "alg": "sha256/jcs",
12
+ "prev": "7f625051c176f2f260a1f7e25c9a933717ebb49917a8788ac25ae7a4614ebb30",
13
+ "hash": "2e9b7c1a4d6f08213b5c7e9a0d2f416385a7c9e1b3d5f70921a3c5e7092b4d6f"
14
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "seq": 216,
3
+ "ts": "2026-10-05T11:02:40.115Z",
4
+ "event": "audit.lock_reclaimed",
5
+ "actor": "human:carter",
6
+ "payload": {
7
+ "lockfile": "events.jsonl.lock",
8
+ "reason": "operator-cleared",
9
+ "age_ms": 4021877,
10
+ "holder": {
11
+ "pid": 31,
12
+ "op": "append",
13
+ "created": "2026-10-05T09:55:38.238Z"
14
+ }
15
+ },
16
+ "alg": "sha256/jcs",
17
+ "prev": "7f625051c176f2f260a1f7e25c9a933717ebb49917a8788ac25ae7a4614ebb30",
18
+ "hash": "2e9b7c1a4d6f08213b5c7e9a0d2f416385a7c9e1b3d5f70921a3c5e7092b4d6f"
19
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "seq": 214,
3
+ "ts": "2026-10-05T07:41:12.408Z",
4
+ "event": "audit.lock_reclaimed",
5
+ "actor": "system:log",
6
+ "payload": {
7
+ "lockfile": "events.jsonl.lock",
8
+ "reason": "holder-dead",
9
+ "age_ms": 734211,
10
+ "holder": {
11
+ "pid": 48213,
12
+ "op": "append",
13
+ "created": "2026-10-05T07:28:58.197Z"
14
+ }
15
+ },
16
+ "alg": "sha256/jcs",
17
+ "prev": "7f625051c176f2f260a1f7e25c9a933717ebb49917a8788ac25ae7a4614ebb30",
18
+ "hash": "2e9b7c1a4d6f08213b5c7e9a0d2f416385a7c9e1b3d5f70921a3c5e7092b4d6f"
19
+ }
@@ -7,7 +7,12 @@
7
7
  "actor": "human:carter",
8
8
  "channel": "cli",
9
9
  "payload": {
10
+ "subject_seq": 15,
11
+ "subject_event": "audit.sampled",
12
+ "reviewed": true,
13
+ "sampled_subject_hash": "6c1d3f0b9a8e7d6c5b4a39281706f5e4d3c2b1a09f8e7d6c5b4a392817060504",
10
14
  "verdict": "ok",
15
+ "verdict_source": "explicit",
11
16
  "reaction": "loved",
12
17
  "note": "exactly the archive I would have written by hand"
13
18
  },
@@ -7,7 +7,12 @@
7
7
  "actor": "human:carter",
8
8
  "channel": "cli",
9
9
  "payload": {
10
- "verdict": "ok"
10
+ "subject_seq": 15,
11
+ "subject_event": "audit.sampled",
12
+ "reviewed": true,
13
+ "sampled_subject_hash": "6c1d3f0b9a8e7d6c5b4a39281706f5e4d3c2b1a09f8e7d6c5b4a392817060504",
14
+ "verdict": "ok",
15
+ "verdict_source": "explicit"
11
16
  },
12
17
  "alg": "sha256/jcs",
13
18
  "prev": "7f625051c176f2f260a1f7e25c9a933717ebb49917a8788ac25ae7a4614ebb30",
@@ -6,7 +6,8 @@
6
6
  "action_key": "task-049:archive:2026-08-04",
7
7
  "actor": "system:auditor",
8
8
  "payload": {
9
- "rate": 0.1
9
+ "rate": 0.1,
10
+ "policy_sha256": "3b1f0c9d8e7a6b5c4d3e2f1a0b9c8d7e6f5a4b3c2d1e0f9a8b7c6d5e4f3a2b1c"
10
11
  },
11
12
  "alg": "sha256/jcs",
12
13
  "prev": "07453feb30c2b0b1a2806398cdd17b38d98f9abf52b8a75ca42878c9101d8264",
@@ -7,7 +7,8 @@
7
7
  "actor": "system:auditor",
8
8
  "daemon": "daemon-3f2a9c11",
9
9
  "payload": {
10
- "rate": 0.1
10
+ "rate": 0.1,
11
+ "policy_sha256": "3b1f0c9d8e7a6b5c4d3e2f1a0b9c8d7e6f5a4b3c2d1e0f9a8b7c6d5e4f3a2b1c"
11
12
  },
12
13
  "alg": "sha256/jcs",
13
14
  "prev": "07453feb30c2b0b1a2806398cdd17b38d98f9abf52b8a75ca42878c9101d8264",
@@ -0,0 +1,19 @@
1
+ {
2
+ "seq": 12,
3
+ "ts": "2026-10-05T22:50:00Z",
4
+ "event": "execution.started",
5
+ "task": "hook:sess-1:tu-4",
6
+ "action_key": "hook:sess-1:tu-4:harness.tool.unmapped",
7
+ "actor": "agent:claude-code",
8
+ "payload": {
9
+ "class": "harness.tool.unmapped",
10
+ "est_cost_usd": "0",
11
+ "execution": "harness",
12
+ "payload_hash": "3c987d69fe833bbea2b588ea7e7bc0848bbfb90703b298729a3d2d6d45346011",
13
+ "policy_sha256": "5f1c0de9a3b7e2d4c6f8091a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e",
14
+ "harness_tool": "mcp__contextsling__publish"
15
+ },
16
+ "alg": "sha256/jcs",
17
+ "prev": "d973375d6aeec5e6cd2de3a0f7dc8f5bc1d9be77225f9af0f851e7fc519a07c3",
18
+ "hash": "4b7e0c2d9a8f6e5d4c3b2a1908f7e6d5c4b3a2918f7e6d5c4b3a291807f6e5d4"
19
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "version": "0.1",
3
+ "defaults": {
4
+ "autonomy": "manual"
5
+ },
6
+ "delegation": {
7
+ "model": null,
8
+ "classes": [],
9
+ "max_autonomy": "manual",
10
+ "daily_cap": 0,
11
+ "escalate_on": [],
12
+ "advice": "no",
13
+ "reviewers": []
14
+ }
15
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "version": "0.1",
3
+ "defaults": {
4
+ "autonomy": "manual"
5
+ },
6
+ "delegation": {
7
+ "model": null,
8
+ "classes": [
9
+ "digest.share",
10
+ "digest.share"
11
+ ],
12
+ "max_autonomy": "manual",
13
+ "daily_cap": 0,
14
+ "escalate_on": [],
15
+ "advice": false,
16
+ "reviewers": []
17
+ }
18
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "version": "0.1",
3
+ "defaults": {
4
+ "autonomy": "manual"
5
+ },
6
+ "delegation": {
7
+ "model": null,
8
+ "classes": [
9
+ "intent.*"
10
+ ],
11
+ "max_autonomy": "manual",
12
+ "daily_cap": 0,
13
+ "escalate_on": [],
14
+ "advice": false,
15
+ "reviewers": []
16
+ }
17
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "version": "0.1",
3
+ "defaults": {
4
+ "autonomy": "manual"
5
+ },
6
+ "delegation": {
7
+ "model": null,
8
+ "classes": [],
9
+ "max_autonomy": "manual",
10
+ "daily_cap": 2.5,
11
+ "escalate_on": [],
12
+ "advice": false,
13
+ "reviewers": []
14
+ }
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "version": "0.1",
3
+ "defaults": {
4
+ "autonomy": "manual"
5
+ },
6
+ "delegation": {
7
+ "model": null,
8
+ "classes": [],
9
+ "max_autonomy": "manual",
10
+ "daily_cap": -1,
11
+ "escalate_on": [],
12
+ "advice": false,
13
+ "reviewers": []
14
+ }
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "version": "0.1",
3
+ "defaults": {
4
+ "autonomy": "manual"
5
+ },
6
+ "delegation": {
7
+ "model": null,
8
+ "classes": [],
9
+ "max_autonomy": "manual",
10
+ "daily_cap": 1001,
11
+ "escalate_on": [],
12
+ "advice": false,
13
+ "reviewers": []
14
+ }
15
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "version": "0.1",
3
+ "defaults": {
4
+ "autonomy": "manual"
5
+ },
6
+ "delegation": {
7
+ "model": null,
8
+ "classes": [],
9
+ "max_autonomy": "manual",
10
+ "daily_cap": 0,
11
+ "escalate_on": [
12
+ "deny",
13
+ "deny"
14
+ ],
15
+ "advice": false,
16
+ "reviewers": []
17
+ }
18
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "version": "0.1",
3
+ "defaults": {
4
+ "autonomy": "manual"
5
+ },
6
+ "delegation": {
7
+ "model": null,
8
+ "classes": [],
9
+ "max_autonomy": "manual",
10
+ "daily_cap": 0,
11
+ "escalate_on": [
12
+ "always"
13
+ ],
14
+ "advice": false,
15
+ "reviewers": []
16
+ }
17
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "version": "0.1",
3
+ "defaults": {
4
+ "autonomy": "manual"
5
+ },
6
+ "delegation": {
7
+ "model": null,
8
+ "classes": [],
9
+ "max_autonomy": "supervised",
10
+ "daily_cap": 0,
11
+ "escalate_on": [],
12
+ "advice": false,
13
+ "reviewers": []
14
+ }
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "version": "0.1",
3
+ "defaults": {
4
+ "autonomy": "manual"
5
+ },
6
+ "delegation": {
7
+ "model": null,
8
+ "classes": [],
9
+ "max_autonomy": "autonomous",
10
+ "daily_cap": 0,
11
+ "escalate_on": [],
12
+ "advice": false,
13
+ "reviewers": []
14
+ }
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "version": "0.1",
3
+ "defaults": {
4
+ "autonomy": "manual"
5
+ },
6
+ "delegation": {
7
+ "model": "model:judge",
8
+ "classes": [],
9
+ "max_autonomy": "manual",
10
+ "daily_cap": 0,
11
+ "escalate_on": [],
12
+ "advice": false,
13
+ "reviewers": []
14
+ }
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "version": "0.1",
3
+ "defaults": {
4
+ "autonomy": "manual"
5
+ },
6
+ "delegation": {
7
+ "model": "anthropic/claude-judge@1.0.0",
8
+ "classes": [],
9
+ "max_autonomy": "manual",
10
+ "daily_cap": 0,
11
+ "escalate_on": [],
12
+ "advice": false,
13
+ "reviewers": []
14
+ }
15
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": "0.1",
3
+ "defaults": {
4
+ "autonomy": "manual"
5
+ },
6
+ "delegation": null
7
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "version": "0.1",
3
+ "defaults": {
4
+ "autonomy": "manual"
5
+ },
6
+ "delegation": {
7
+ "model": null,
8
+ "classes": [],
9
+ "max_autonomy": "manual",
10
+ "daily_cap": 0,
11
+ "escalate_on": [],
12
+ "advice": false,
13
+ "reviewers": [
14
+ "agent:claude"
15
+ ]
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "version": "0.1",
3
+ "defaults": {
4
+ "autonomy": "manual"
5
+ },
6
+ "delegation": {
7
+ "model": null,
8
+ "classes": [],
9
+ "max_autonomy": "manual",
10
+ "daily_cap": 0,
11
+ "escalate_on": [],
12
+ "advice": false,
13
+ "reviewers": [
14
+ "alice"
15
+ ]
16
+ }
17
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "version": "0.1",
3
+ "defaults": {
4
+ "autonomy": "manual"
5
+ },
6
+ "delegation": {
7
+ "model": null,
8
+ "classes": [],
9
+ "max_autonomy": "manual",
10
+ "daily_cap": 0,
11
+ "escalate_on": [],
12
+ "advice": false,
13
+ "reviewers": [],
14
+ "judge": "model:judge@0.3.0"
15
+ }
16
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": "0.1",
3
+ "classes": {
4
+ "marketplace.*": { "autonomy": "manual" }
5
+ },
6
+ "tools": [
7
+ { "match": "mcp__contextsling__*", "class": "marketplace.*" }
8
+ ]
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": "0.1",
3
+ "classes": {
4
+ "marketplace.*": { "autonomy": "manual" }
5
+ },
6
+ "tools": [
7
+ { "match": "mcp__**", "class": "marketplace.app.read" }
8
+ ]
9
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": "0.1",
3
+ "defaults": {
4
+ "autonomy": "manual",
5
+ "unmapped_tool": "allow"
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": "0.1",
3
+ "defaults": {
4
+ "autonomy": "manual"
5
+ },
6
+ "delegation": {}
7
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "version": "0.1",
3
+ "defaults": {
4
+ "autonomy": "manual"
5
+ },
6
+ "approvers": {
7
+ "resident": {
8
+ "channels": [
9
+ "telegram"
10
+ ]
11
+ }
12
+ },
13
+ "classes": {
14
+ "intent.publish.inferred.index": {
15
+ "autonomy": "manual"
16
+ },
17
+ "digest.share": {
18
+ "autonomy": "manual"
19
+ }
20
+ },
21
+ "delegation": {
22
+ "model": "model:judge@0.3.0",
23
+ "classes": [
24
+ "intent.publish.inferred.index",
25
+ "digest.share"
26
+ ],
27
+ "max_autonomy": "manual",
28
+ "daily_cap": 10,
29
+ "escalate_on": [
30
+ "deny",
31
+ "low_confidence",
32
+ "irreversible",
33
+ "unknown_class"
34
+ ],
35
+ "advice": true,
36
+ "reviewers": [
37
+ "model:judge@0.3.0",
38
+ "human:resident"
39
+ ]
40
+ }
41
+ }