approval-md 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +83 -914
- package/SPEC.md +101 -13
- package/cli.js +134 -7
- package/dist/src/adapters/smtp.d.ts +18 -0
- package/dist/src/adapters/smtp.js +24 -3
- package/dist/src/adapters/smtp.js.map +1 -1
- package/dist/src/channels/contract.d.ts +72 -0
- package/dist/src/channels/contract.js +161 -1
- package/dist/src/channels/contract.js.map +1 -1
- package/dist/src/channels/relay-server.d.ts +90 -0
- package/dist/src/channels/relay-server.js +295 -0
- package/dist/src/channels/relay-server.js.map +1 -0
- package/dist/src/channels/relay.d.ts +273 -0
- package/dist/src/channels/relay.js +564 -0
- package/dist/src/channels/relay.js.map +1 -0
- package/dist/src/channels/tagging.d.ts +25 -0
- package/dist/src/channels/tagging.js +63 -6
- package/dist/src/channels/tagging.js.map +1 -1
- package/dist/src/channels/telegram-minimal.d.ts +251 -0
- package/dist/src/channels/telegram-minimal.js +618 -0
- package/dist/src/channels/telegram-minimal.js.map +1 -0
- package/dist/src/channels/telegram-webhook.d.ts +273 -0
- package/dist/src/channels/telegram-webhook.js +536 -0
- package/dist/src/channels/telegram-webhook.js.map +1 -0
- package/dist/src/channels/telegram.d.ts +725 -20
- package/dist/src/channels/telegram.js +1332 -123
- package/dist/src/channels/telegram.js.map +1 -1
- package/dist/src/cli/amend.js +358 -5
- package/dist/src/cli/amend.js.map +1 -1
- package/dist/src/cli/attest.js +43 -6
- package/dist/src/cli/attest.js.map +1 -1
- package/dist/src/cli/audit-card.d.ts +1 -1
- package/dist/src/cli/audit-card.js +40 -1
- package/dist/src/cli/audit-card.js.map +1 -1
- package/dist/src/cli/audit.d.ts +7 -5
- package/dist/src/cli/audit.js +22 -10
- package/dist/src/cli/audit.js.map +1 -1
- package/dist/src/cli/channel-relay.d.ts +108 -0
- package/dist/src/cli/channel-relay.js +334 -0
- package/dist/src/cli/channel-relay.js.map +1 -0
- package/dist/src/cli/channel-telegram-webhook.d.ts +275 -0
- package/dist/src/cli/channel-telegram-webhook.js +716 -0
- package/dist/src/cli/channel-telegram-webhook.js.map +1 -0
- package/dist/src/cli/channel-telegram.d.ts +347 -28
- package/dist/src/cli/channel-telegram.js +648 -56
- package/dist/src/cli/channel-telegram.js.map +1 -1
- package/dist/src/cli/channel.d.ts +1 -1
- package/dist/src/cli/channel.js +5 -1
- package/dist/src/cli/channel.js.map +1 -1
- package/dist/src/cli/daemon.js +37 -5
- package/dist/src/cli/daemon.js.map +1 -1
- package/dist/src/cli/doctor.d.ts +63 -0
- package/dist/src/cli/doctor.js +856 -111
- package/dist/src/cli/doctor.js.map +1 -1
- package/dist/src/cli/execute.d.ts +29 -1
- package/dist/src/cli/execute.js +387 -21
- package/dist/src/cli/execute.js.map +1 -1
- package/dist/src/cli/exit-codes.d.ts +12 -0
- package/dist/src/cli/exit-codes.js +13 -0
- package/dist/src/cli/exit-codes.js.map +1 -1
- package/dist/src/cli/gate.d.ts +2 -0
- package/dist/src/cli/gate.js +233 -2
- package/dist/src/cli/gate.js.map +1 -1
- package/dist/src/cli/help.d.ts +10 -1
- package/dist/src/cli/help.js +283 -54
- package/dist/src/cli/help.js.map +1 -1
- package/dist/src/cli/hook.d.ts +485 -6
- package/dist/src/cli/hook.js +2370 -70
- package/dist/src/cli/hook.js.map +1 -1
- package/dist/src/cli/init.js +16 -7
- package/dist/src/cli/init.js.map +1 -1
- package/dist/src/cli/instructions.js +24 -3
- package/dist/src/cli/instructions.js.map +1 -1
- package/dist/src/cli/log-anchor.d.ts +55 -0
- package/dist/src/cli/log-anchor.js +199 -60
- package/dist/src/cli/log-anchor.js.map +1 -1
- package/dist/src/cli/log-unlock.d.ts +23 -0
- package/dist/src/cli/log-unlock.js +109 -0
- package/dist/src/cli/log-unlock.js.map +1 -0
- package/dist/src/cli/main.d.ts +0 -12
- package/dist/src/cli/main.js +72 -4
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/cli/muse.d.ts +2 -0
- package/dist/src/cli/muse.js +62 -0
- package/dist/src/cli/muse.js.map +1 -0
- package/dist/src/cli/payload.js +79 -1
- package/dist/src/cli/payload.js.map +1 -1
- package/dist/src/cli/scaffold.js +6 -0
- package/dist/src/cli/scaffold.js.map +1 -1
- package/dist/src/cli/serve.d.ts +53 -0
- package/dist/src/cli/serve.js +270 -0
- package/dist/src/cli/serve.js.map +1 -0
- package/dist/src/cli/up.js +26 -2
- package/dist/src/cli/up.js.map +1 -1
- package/dist/src/cli/verb-registry.d.ts +2 -0
- package/dist/src/cli/verb-registry.js +338 -39
- package/dist/src/cli/verb-registry.js.map +1 -1
- package/dist/src/cli/wordmark.d.ts +2 -2
- package/dist/src/cli/wordmark.js +2 -2
- package/dist/src/core/attest-bootstrap.d.ts +95 -0
- package/dist/src/core/attest-bootstrap.js +135 -0
- package/dist/src/core/attest-bootstrap.js.map +1 -0
- package/dist/src/core/attest.d.ts +20 -3
- package/dist/src/core/attest.js +25 -0
- package/dist/src/core/attest.js.map +1 -1
- package/dist/src/core/audit.d.ts +153 -12
- package/dist/src/core/audit.js +415 -20
- package/dist/src/core/audit.js.map +1 -1
- package/dist/src/core/channel-lease.d.ts +322 -0
- package/dist/src/core/channel-lease.js +663 -0
- package/dist/src/core/channel-lease.js.map +1 -0
- package/dist/src/core/command-class.d.ts +51 -0
- package/dist/src/core/command-class.js +766 -8
- package/dist/src/core/command-class.js.map +1 -1
- package/dist/src/core/daemon-host.d.ts +178 -0
- package/dist/src/core/daemon-host.js +228 -0
- package/dist/src/core/daemon-host.js.map +1 -0
- package/dist/src/core/daemon-identity.d.ts +238 -0
- package/dist/src/core/daemon-identity.js +252 -0
- package/dist/src/core/daemon-identity.js.map +1 -0
- package/dist/src/core/gate.d.ts +364 -6
- package/dist/src/core/gate.js +802 -27
- package/dist/src/core/gate.js.map +1 -1
- package/dist/src/core/harness-version.d.ts +128 -4
- package/dist/src/core/harness-version.js +179 -12
- package/dist/src/core/harness-version.js.map +1 -1
- package/dist/src/core/harness-wait.d.ts +82 -3
- package/dist/src/core/harness-wait.js +89 -3
- package/dist/src/core/harness-wait.js.map +1 -1
- package/dist/src/core/log-lock.d.ts +435 -0
- package/dist/src/core/log-lock.js +1093 -0
- package/dist/src/core/log-lock.js.map +1 -0
- package/dist/src/core/log-subscribe.d.ts +21 -0
- package/dist/src/core/log-subscribe.js +16 -6
- package/dist/src/core/log-subscribe.js.map +1 -1
- package/dist/src/core/log-write-layer.d.ts +55 -0
- package/dist/src/core/log-write-layer.js +91 -0
- package/dist/src/core/log-write-layer.js.map +1 -0
- package/dist/src/core/log.d.ts +130 -22
- package/dist/src/core/log.js +473 -50
- package/dist/src/core/log.js.map +1 -1
- package/dist/src/core/payload-census.d.ts +51 -0
- package/dist/src/core/payload-census.js +125 -2
- package/dist/src/core/payload-census.js.map +1 -1
- package/dist/src/core/payload-store.d.ts +31 -0
- package/dist/src/core/payload-store.js +113 -8
- package/dist/src/core/payload-store.js.map +1 -1
- package/dist/src/core/payload.d.ts +18 -3
- package/dist/src/core/payload.js +20 -4
- package/dist/src/core/payload.js.map +1 -1
- package/dist/src/core/policy-diff.d.ts +10 -0
- package/dist/src/core/policy-diff.js +10 -2
- package/dist/src/core/policy-diff.js.map +1 -1
- package/dist/src/core/policy-explain.d.ts +7 -1
- package/dist/src/core/policy-explain.js +16 -1
- package/dist/src/core/policy-explain.js.map +1 -1
- package/dist/src/core/policy-load.d.ts +24 -0
- package/dist/src/core/policy-load.js.map +1 -1
- package/dist/src/core/policy-match.d.ts +38 -0
- package/dist/src/core/policy-match.js +35 -0
- package/dist/src/core/policy-match.js.map +1 -1
- package/dist/src/core/policy-proposal.d.ts +40 -0
- package/dist/src/core/policy-proposal.js +37 -16
- package/dist/src/core/policy-proposal.js.map +1 -1
- package/dist/src/core/prompt-layout.d.ts +186 -1
- package/dist/src/core/prompt-layout.js +345 -3
- package/dist/src/core/prompt-layout.js.map +1 -1
- package/dist/src/core/read-scope.d.ts +10 -0
- package/dist/src/core/read-scope.js +4 -0
- package/dist/src/core/read-scope.js.map +1 -1
- package/dist/src/core/run-payload.d.ts +160 -0
- package/dist/src/core/run-payload.js +304 -0
- package/dist/src/core/run-payload.js.map +1 -0
- package/dist/src/core/sender-identity.d.ts +59 -11
- package/dist/src/core/sender-identity.js +79 -11
- package/dist/src/core/sender-identity.js.map +1 -1
- package/dist/src/core/state.d.ts +52 -1
- package/dist/src/core/state.js +52 -6
- package/dist/src/core/state.js.map +1 -1
- package/dist/src/core/telegram-config.d.ts +79 -0
- package/dist/src/core/telegram-config.js +108 -0
- package/dist/src/core/telegram-config.js.map +1 -1
- package/dist/src/core/validate.d.ts +20 -6
- package/dist/src/core/validate.js +0 -0
- package/dist/src/core/validate.js.map +1 -1
- package/dist/src/core/verify.d.ts +23 -1
- package/dist/src/core/verify.js +20 -2
- package/dist/src/core/verify.js.map +1 -1
- package/dist/src/daemon/audit.d.ts +80 -5
- package/dist/src/daemon/audit.js +126 -6
- package/dist/src/daemon/audit.js.map +1 -1
- package/dist/src/daemon/daemon.d.ts +174 -2
- package/dist/src/daemon/daemon.js +298 -7
- package/dist/src/daemon/daemon.js.map +1 -1
- package/dist/src/daemon/git-evidence.d.ts +2 -2
- package/dist/src/daemon/git-evidence.js +1 -1
- package/dist/src/daemon/projection.d.ts +13 -2
- package/dist/src/daemon/projection.js +39 -6
- package/dist/src/daemon/projection.js.map +1 -1
- package/dist/src/mcp/server.d.ts +39 -3
- package/dist/src/mcp/server.js +22 -3
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/muse/server.d.ts +16 -0
- package/dist/src/muse/server.js +238 -0
- package/dist/src/muse/server.js.map +1 -0
- package/dist/src/serve/archive.d.ts +166 -0
- package/dist/src/serve/archive.js +363 -0
- package/dist/src/serve/archive.js.map +1 -0
- package/dist/src/serve/arguments.d.ts +93 -0
- package/dist/src/serve/arguments.js +228 -0
- package/dist/src/serve/arguments.js.map +1 -0
- package/dist/src/serve/credentials.d.ts +91 -0
- package/dist/src/serve/credentials.js +143 -0
- package/dist/src/serve/credentials.js.map +1 -0
- package/dist/src/serve/follow.d.ts +86 -0
- package/dist/src/serve/follow.js +101 -0
- package/dist/src/serve/follow.js.map +1 -0
- package/dist/src/serve/hook-thread.d.ts +134 -0
- package/dist/src/serve/hook-thread.js +333 -0
- package/dist/src/serve/hook-thread.js.map +1 -0
- package/dist/src/serve/hook-worker.d.ts +134 -0
- package/dist/src/serve/hook-worker.js +173 -0
- package/dist/src/serve/hook-worker.js.map +1 -0
- package/dist/src/serve/server.d.ts +412 -0
- package/dist/src/serve/server.js +1251 -0
- package/dist/src/serve/server.js.map +1 -0
- package/docs/README-extended.md +768 -0
- package/docs/cli-reference.md +2139 -67
- package/package.json +4 -2
- package/schema/event.schema.json +413 -30
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-age-without-created.json +19 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-agent-actor.json +14 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-lockfile-path.json +14 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-operator-cleared-system-actor.json +14 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-unknown-reason.json +14 -0
- package/schema/fixtures/event/invalid/audit-lock-reclaimed-without-age.json +13 -0
- package/schema/fixtures/event/invalid/audit-reviewed-agent-actor.json +6 -1
- package/schema/fixtures/event/invalid/audit-reviewed-bad-payload-hash.json +21 -0
- package/schema/fixtures/event/invalid/audit-reviewed-loved-no-note.json +5 -0
- package/schema/fixtures/event/invalid/audit-reviewed-no-subject-hash.json +19 -0
- package/schema/fixtures/event/invalid/audit-reviewed-no-subject-seq.json +19 -0
- package/schema/fixtures/event/invalid/audit-reviewed-no-verdict-source.json +19 -0
- package/schema/fixtures/event/invalid/audit-reviewed-no-verdict.json +19 -0
- package/schema/fixtures/event/invalid/audit-reviewed-system-actor.json +6 -1
- package/schema/fixtures/event/invalid/audit-sampled-no-policy-hash.json +14 -0
- package/schema/fixtures/event/invalid/daemon-id-malformed.json +15 -0
- package/schema/fixtures/event/invalid/execution-started-truncated-policy-sha256.json +18 -0
- package/schema/fixtures/event/invalid/harness-cap-at-margin.json +16 -0
- package/schema/fixtures/event/invalid/harness-cap-fractional.json +16 -0
- package/schema/fixtures/event/invalid/harness-cap-negative.json +16 -0
- package/schema/fixtures/event/invalid/harness-cap-string.json +16 -0
- package/schema/fixtures/event/invalid/harness-cap-without-harness-execution.json +16 -0
- package/schema/fixtures/event/invalid/harness-cap-zero.json +16 -0
- package/schema/fixtures/event/valid/approval-requested-harness-cap.json +18 -0
- package/schema/fixtures/event/valid/audit-lock-reclaimed-implausible-created.json +18 -0
- package/schema/fixtures/event/valid/audit-lock-reclaimed-legacy.json +14 -0
- package/schema/fixtures/event/valid/audit-lock-reclaimed-unlock.json +19 -0
- package/schema/fixtures/event/valid/audit-lock-reclaimed.json +19 -0
- package/schema/fixtures/event/valid/audit-reviewed-reaction.json +5 -0
- package/schema/fixtures/event/valid/audit-reviewed.json +6 -1
- package/schema/fixtures/event/valid/audit-sampled.json +2 -1
- package/schema/fixtures/event/valid/daemon-identity-declared.json +17 -0
- package/schema/fixtures/event/valid/daemon-identity.json +16 -0
- package/schema/fixtures/event/valid/execution-started-policy-sha256.json +18 -0
- package/schema/fixtures/event/valid/harness-kind-hermes.json +23 -0
- package/schema/fixtures/policy/invalid/daemons-malformed-id.json +10 -0
- package/schema/fixtures/policy/valid/daemons-allowlist.json +19 -0
- package/schema/fixtures/policy-md/invalid/schema-invalid-agent-may-request.md +21 -0
- package/schema/fixtures/policy-md/valid/agent-may-request.md +24 -0
- package/schema/policy.schema.json +102 -6
|
@@ -0,0 +1,21 @@
|
|
|
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": "explicit",
|
|
16
|
+
"payload_hash": "6C1D3F0B"
|
|
17
|
+
},
|
|
18
|
+
"alg": "sha256/jcs",
|
|
19
|
+
"prev": "7f625051c176f2f260a1f7e25c9a933717ebb49917a8788ac25ae7a4614ebb30",
|
|
20
|
+
"hash": "6752e6617b2b810c1cc0cf09c51678c78891ff6fdfd8bb9399aecbdfca00dd5b"
|
|
21
|
+
}
|
|
@@ -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
|
},
|
|
13
18
|
"alg": "sha256/jcs",
|
|
@@ -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
|
-
"
|
|
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,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,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"seq": 63,
|
|
3
|
+
"ts": "2026-09-20T11:06:02Z",
|
|
4
|
+
"event": "audit.sampled",
|
|
5
|
+
"task": "task-311",
|
|
6
|
+
"action_key": "task-311:digest:2026-09-20",
|
|
7
|
+
"actor": "system:auditor",
|
|
8
|
+
"daemon": "Village Goa 1\nrate: 1.0",
|
|
9
|
+
"payload": {
|
|
10
|
+
"rate": 0.1
|
|
11
|
+
},
|
|
12
|
+
"alg": "sha256/jcs",
|
|
13
|
+
"prev": "07453feb30c2b0b1a2806398cdd17b38d98f9abf52b8a75ca42878c9101d8264",
|
|
14
|
+
"hash": "9d4c0be1a7fb25308c6ef4a1d0b39724ce85f16a2b0d7c39e8145af62b0c73d8"
|
|
15
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"seq": 9,
|
|
3
|
+
"ts": "2026-10-04T09:19:02Z",
|
|
4
|
+
"event": "execution.started",
|
|
5
|
+
"task": "hook:sess-1:tu-1",
|
|
6
|
+
"action_key": "hook:sess-1:tu-1:files.write.workspace",
|
|
7
|
+
"actor": "agent:claude-code",
|
|
8
|
+
"payload": {
|
|
9
|
+
"class": "files.write.workspace",
|
|
10
|
+
"est_cost_usd": "0",
|
|
11
|
+
"execution": "harness",
|
|
12
|
+
"payload_hash": "9f2b1c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f809",
|
|
13
|
+
"policy_sha256": "5f1c0de9a3b7"
|
|
14
|
+
},
|
|
15
|
+
"alg": "sha256/jcs",
|
|
16
|
+
"prev": "d973375d6aeec5e6cd2de3a0f7dc8f5bc1d9be77225f9af0f851e7fc519a07c3",
|
|
17
|
+
"hash": "707b79cfa14ec43224c8f71a4fee3ddbff52369f82525aab19bec18c369d5cad"
|
|
18
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"seq": 76,
|
|
3
|
+
"ts": "2026-09-22T08:34:20Z",
|
|
4
|
+
"event": "approval.requested",
|
|
5
|
+
"task": "hook:hermes-sess-1:tool-12",
|
|
6
|
+
"action_key": "hook:hermes-sess-1:tool-12:deps.add",
|
|
7
|
+
"actor": "agent:hermes",
|
|
8
|
+
"payload": {
|
|
9
|
+
"class": "deps.add",
|
|
10
|
+
"execution": "harness",
|
|
11
|
+
"harness_cap_ms": 60000
|
|
12
|
+
},
|
|
13
|
+
"alg": "sha256/jcs",
|
|
14
|
+
"prev": "1515151515151515151515151515151515151515151515151515151515151515",
|
|
15
|
+
"hash": "1616161616161616161616161616161616161616161616161616161616161616"
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"seq": 74,
|
|
3
|
+
"ts": "2026-09-22T08:33:19Z",
|
|
4
|
+
"event": "approval.requested",
|
|
5
|
+
"task": "hook:hermes-sess-1:tool-10",
|
|
6
|
+
"action_key": "hook:hermes-sess-1:tool-10:deps.add",
|
|
7
|
+
"actor": "agent:hermes",
|
|
8
|
+
"payload": {
|
|
9
|
+
"class": "deps.add",
|
|
10
|
+
"execution": "harness",
|
|
11
|
+
"harness_cap_ms": 299999.5
|
|
12
|
+
},
|
|
13
|
+
"alg": "sha256/jcs",
|
|
14
|
+
"prev": "1313131313131313131313131313131313131313131313131313131313131313",
|
|
15
|
+
"hash": "1414141414141414141414141414141414141414141414141414141414141414"
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"seq": 73,
|
|
3
|
+
"ts": "2026-09-22T08:32:44Z",
|
|
4
|
+
"event": "approval.requested",
|
|
5
|
+
"task": "hook:hermes-sess-1:tool-9",
|
|
6
|
+
"action_key": "hook:hermes-sess-1:tool-9:deps.add",
|
|
7
|
+
"actor": "agent:hermes",
|
|
8
|
+
"payload": {
|
|
9
|
+
"class": "deps.add",
|
|
10
|
+
"execution": "harness",
|
|
11
|
+
"harness_cap_ms": -300000
|
|
12
|
+
},
|
|
13
|
+
"alg": "sha256/jcs",
|
|
14
|
+
"prev": "1212121212121212121212121212121212121212121212121212121212121212",
|
|
15
|
+
"hash": "1313131313131313131313131313131313131313131313131313131313131313"
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"seq": 75,
|
|
3
|
+
"ts": "2026-09-22T08:33:52Z",
|
|
4
|
+
"event": "approval.requested",
|
|
5
|
+
"task": "hook:hermes-sess-1:tool-11",
|
|
6
|
+
"action_key": "hook:hermes-sess-1:tool-11:deps.add",
|
|
7
|
+
"actor": "agent:hermes",
|
|
8
|
+
"payload": {
|
|
9
|
+
"class": "deps.add",
|
|
10
|
+
"execution": "harness",
|
|
11
|
+
"harness_cap_ms": "300s"
|
|
12
|
+
},
|
|
13
|
+
"alg": "sha256/jcs",
|
|
14
|
+
"prev": "1414141414141414141414141414141414141414141414141414141414141414",
|
|
15
|
+
"hash": "1515151515151515151515151515151515151515151515151515151515151515"
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"seq": 77,
|
|
3
|
+
"ts": "2026-09-22T08:34:51Z",
|
|
4
|
+
"event": "approval.requested",
|
|
5
|
+
"task": "hook:hermes-sess-1:tool-13",
|
|
6
|
+
"action_key": "hook:hermes-sess-1:tool-13:deps.add",
|
|
7
|
+
"actor": "agent:hermes",
|
|
8
|
+
"payload": {
|
|
9
|
+
"class": "deps.add",
|
|
10
|
+
"harness_cap_ms": 300000,
|
|
11
|
+
"payload_hash": "5f1c2a6f3e9d4b8a7c0e1d2b3a4958677889aabbccddeeff0011223344556677"
|
|
12
|
+
},
|
|
13
|
+
"alg": "sha256/jcs",
|
|
14
|
+
"prev": "1616161616161616161616161616161616161616161616161616161616161616",
|
|
15
|
+
"hash": "1717171717171717171717171717171717171717171717171717171717171717"
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"seq": 72,
|
|
3
|
+
"ts": "2026-09-22T08:32:01Z",
|
|
4
|
+
"event": "approval.requested",
|
|
5
|
+
"task": "hook:hermes-sess-1:tool-8",
|
|
6
|
+
"action_key": "hook:hermes-sess-1:tool-8:deps.add",
|
|
7
|
+
"actor": "agent:hermes",
|
|
8
|
+
"payload": {
|
|
9
|
+
"class": "deps.add",
|
|
10
|
+
"execution": "harness",
|
|
11
|
+
"harness_cap_ms": 0
|
|
12
|
+
},
|
|
13
|
+
"alg": "sha256/jcs",
|
|
14
|
+
"prev": "1111111111111111111111111111111111111111111111111111111111111111",
|
|
15
|
+
"hash": "1212121212121212121212121212121212121212121212121212121212121212"
|
|
16
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"seq": 71,
|
|
3
|
+
"ts": "2026-09-22T08:31:14Z",
|
|
4
|
+
"event": "approval.requested",
|
|
5
|
+
"task": "hook:hermes-sess-1:tool-7",
|
|
6
|
+
"action_key": "hook:hermes-sess-1:tool-7:deps.add",
|
|
7
|
+
"actor": "agent:hermes",
|
|
8
|
+
"channel": "telegram",
|
|
9
|
+
"payload": {
|
|
10
|
+
"class": "deps.add",
|
|
11
|
+
"execution": "harness",
|
|
12
|
+
"harness_cap_ms": 300000,
|
|
13
|
+
"payload_hash": "5f1c2a6f3e9d4b8a7c0e1d2b3a4958677889aabbccddeeff0011223344556677"
|
|
14
|
+
},
|
|
15
|
+
"alg": "sha256/jcs",
|
|
16
|
+
"prev": "1010101010101010101010101010101010101010101010101010101010101010",
|
|
17
|
+
"hash": "1111111111111111111111111111111111111111111111111111111111111111"
|
|
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
|
-
"
|
|
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",
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"seq": 62,
|
|
3
|
+
"ts": "2026-09-20T11:05:44Z",
|
|
4
|
+
"event": "envelope.drift",
|
|
5
|
+
"task": "task-311",
|
|
6
|
+
"actor": "system:daemon",
|
|
7
|
+
"daemon": "village-goa-1",
|
|
8
|
+
"payload": {
|
|
9
|
+
"file": "backlog/tasks/task-311.md",
|
|
10
|
+
"declared_state": "requested",
|
|
11
|
+
"derived_state": "granted",
|
|
12
|
+
"reason": "state-mismatch"
|
|
13
|
+
},
|
|
14
|
+
"alg": "sha256/jcs",
|
|
15
|
+
"prev": "c0a1dd6b0f5a9b7fe7cf7d90cbb4aa4cf0a1eb2d5c7318cbbbd7a2b9efc33150",
|
|
16
|
+
"hash": "5b2f0c8419a7dd3e6f0b4a1c93de8027f5cbb1a40de92f7c3ab6051d8e4f29c7"
|
|
17
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"seq": 61,
|
|
3
|
+
"ts": "2026-09-20T11:04:19Z",
|
|
4
|
+
"event": "audit.sampled",
|
|
5
|
+
"task": "task-311",
|
|
6
|
+
"action_key": "task-311:digest:2026-09-20",
|
|
7
|
+
"actor": "system:auditor",
|
|
8
|
+
"daemon": "daemon-3f2a9c11",
|
|
9
|
+
"payload": {
|
|
10
|
+
"rate": 0.1,
|
|
11
|
+
"policy_sha256": "3b1f0c9d8e7a6b5c4d3e2f1a0b9c8d7e6f5a4b3c2d1e0f9a8b7c6d5e4f3a2b1c"
|
|
12
|
+
},
|
|
13
|
+
"alg": "sha256/jcs",
|
|
14
|
+
"prev": "07453feb30c2b0b1a2806398cdd17b38d98f9abf52b8a75ca42878c9101d8264",
|
|
15
|
+
"hash": "c0a1dd6b0f5a9b7fe7cf7d90cbb4aa4cf0a1eb2d5c7318cbbbd7a2b9efc33150"
|
|
16
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"seq": 9,
|
|
3
|
+
"ts": "2026-10-04T09:19:02Z",
|
|
4
|
+
"event": "execution.started",
|
|
5
|
+
"task": "hook:sess-1:tu-1",
|
|
6
|
+
"action_key": "hook:sess-1:tu-1:files.write.workspace",
|
|
7
|
+
"actor": "agent:claude-code",
|
|
8
|
+
"payload": {
|
|
9
|
+
"class": "files.write.workspace",
|
|
10
|
+
"est_cost_usd": "0",
|
|
11
|
+
"execution": "harness",
|
|
12
|
+
"payload_hash": "9f2b1c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f809",
|
|
13
|
+
"policy_sha256": "5f1c0de9a3b7e2d4c6f8091a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e"
|
|
14
|
+
},
|
|
15
|
+
"alg": "sha256/jcs",
|
|
16
|
+
"prev": "d973375d6aeec5e6cd2de3a0f7dc8f5bc1d9be77225f9af0f851e7fc519a07c3",
|
|
17
|
+
"hash": "707b79cfa14ec43224c8f71a4fee3ddbff52369f82525aab19bec18c369d5cad"
|
|
18
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"seq": 56,
|
|
3
|
+
"ts": "2026-09-20T09:41:12Z",
|
|
4
|
+
"event": "task.registered",
|
|
5
|
+
"task": "hook:hermes-sess-1:toolu-16",
|
|
6
|
+
"actor": "agent:hermes",
|
|
7
|
+
"payload": {
|
|
8
|
+
"state": "proposed",
|
|
9
|
+
"actions": [
|
|
10
|
+
{
|
|
11
|
+
"class": "deps.add",
|
|
12
|
+
"summary": "npm install --save-dev oxlint",
|
|
13
|
+
"idempotency_key": "hook:hermes-sess-1:toolu-16:deps.add",
|
|
14
|
+
"payload_hash": "4d0a9c2b7e5f13860ad4c9b217e3f508cc61a7d2394b8e05f7ca61d3b8092e4f"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"harness": "hermes",
|
|
18
|
+
"harness_version": "hermes 0.21.3"
|
|
19
|
+
},
|
|
20
|
+
"alg": "sha256/jcs",
|
|
21
|
+
"prev": "7d925ec380b14fa6c05e971b3d4287ac6fb015e93c2a480df6b1e7c05a83942f",
|
|
22
|
+
"hash": "e1f6a30c4d7b92815ac0fe43b6d258907cb14fe2839a5d07f4cb62e1a9350b7d"
|
|
23
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.1",
|
|
3
|
+
"defaults": {
|
|
4
|
+
"autonomy": "manual",
|
|
5
|
+
"channel": "telegram",
|
|
6
|
+
"approval_ttl": "30m",
|
|
7
|
+
"on_expiry": "reject"
|
|
8
|
+
},
|
|
9
|
+
"approvers": {
|
|
10
|
+
"carter": {
|
|
11
|
+
"channels": ["telegram", "cli"],
|
|
12
|
+
"senders": { "telegram": "5551234567" }
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"daemons": ["daemon-3f2a9c11", "village-goa-1"],
|
|
16
|
+
"classes": {
|
|
17
|
+
"communicate.email.external": { "autonomy": "manual" }
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Approval Policy
|
|
2
|
+
|
|
3
|
+
Two invalid spellings of `agent_may_request` (APRV-445): a string where a
|
|
4
|
+
boolean belongs, and `true` on a `human-only` rule, which is inert to agents
|
|
5
|
+
and may not be opened to them. Either alone fails the whole policy closed:
|
|
6
|
+
`schema-invalid`.
|
|
7
|
+
|
|
8
|
+
```yaml approval-policy
|
|
9
|
+
version: "0.1"
|
|
10
|
+
|
|
11
|
+
defaults:
|
|
12
|
+
autonomy: manual
|
|
13
|
+
|
|
14
|
+
classes:
|
|
15
|
+
intent.publish.inferred.index:
|
|
16
|
+
autonomy: manual
|
|
17
|
+
agent_may_request: "yes"
|
|
18
|
+
account.credential:
|
|
19
|
+
autonomy: human-only
|
|
20
|
+
agent_may_request: true
|
|
21
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Approval Policy
|
|
2
|
+
|
|
3
|
+
`agent_may_request` (APRV-445) opens `approval propose` to classes the operator
|
|
4
|
+
declares by name. The family line opens the branch; each member is still a line
|
|
5
|
+
of its own, and the closed member says no for itself.
|
|
6
|
+
|
|
7
|
+
```yaml approval-policy
|
|
8
|
+
version: "0.1"
|
|
9
|
+
|
|
10
|
+
defaults:
|
|
11
|
+
autonomy: manual
|
|
12
|
+
approval_ttl: 72h
|
|
13
|
+
|
|
14
|
+
classes:
|
|
15
|
+
intent.publish.*:
|
|
16
|
+
autonomy: manual
|
|
17
|
+
agent_may_request: true
|
|
18
|
+
intent.publish.inferred.index: { autonomy: manual }
|
|
19
|
+
intent.publish.stated.index: { autonomy: autonomous }
|
|
20
|
+
intent.publish.closed:
|
|
21
|
+
autonomy: manual
|
|
22
|
+
agent_may_request: false
|
|
23
|
+
communicate.email.external: { autonomy: manual }
|
|
24
|
+
```
|