approval-md 0.4.1 → 0.4.3
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/SPEC.md +8 -0
- package/dist/src/cli/attest.js +2 -1
- package/dist/src/cli/attest.js.map +1 -1
- package/dist/src/cli/audit.js +3 -2
- package/dist/src/cli/audit.js.map +1 -1
- package/dist/src/cli/channel-telegram.js +2 -1
- package/dist/src/cli/channel-telegram.js.map +1 -1
- package/dist/src/cli/channel-web.js +2 -1
- package/dist/src/cli/channel-web.js.map +1 -1
- package/dist/src/cli/channel.js +2 -1
- package/dist/src/cli/channel.js.map +1 -1
- package/dist/src/cli/doctor.js +1 -1
- package/dist/src/cli/doctor.js.map +1 -1
- package/dist/src/cli/execute.js +4 -3
- package/dist/src/cli/execute.js.map +1 -1
- package/dist/src/cli/gate.js +2 -1
- package/dist/src/cli/gate.js.map +1 -1
- package/dist/src/cli/hook.d.ts +32 -2
- package/dist/src/cli/hook.js +510 -36
- package/dist/src/cli/hook.js.map +1 -1
- package/dist/src/cli/log-checkpoint.js +2 -1
- package/dist/src/cli/log-checkpoint.js.map +1 -1
- package/dist/src/cli/log-unlock.js +2 -1
- package/dist/src/cli/log-unlock.js.map +1 -1
- package/dist/src/cli/setup-common.js +2 -1
- package/dist/src/cli/setup-common.js.map +1 -1
- package/dist/src/cli/vault.js +2 -1
- package/dist/src/cli/vault.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.js +2 -1
- package/dist/src/core/attest-bootstrap.js.map +1 -1
- package/dist/src/core/attest.js +5 -4
- package/dist/src/core/attest.js.map +1 -1
- package/dist/src/core/audit.d.ts +15 -0
- package/dist/src/core/audit.js +19 -3
- package/dist/src/core/audit.js.map +1 -1
- package/dist/src/core/budgets.d.ts +12 -0
- package/dist/src/core/budgets.js +54 -1
- package/dist/src/core/budgets.js.map +1 -1
- package/dist/src/core/checkpoint.js +3 -2
- package/dist/src/core/checkpoint.js.map +1 -1
- package/dist/src/core/command-class.d.ts +57 -0
- package/dist/src/core/command-class.js +188 -10
- package/dist/src/core/command-class.js.map +1 -1
- package/dist/src/core/decision-refusal.js +2 -1
- package/dist/src/core/decision-refusal.js.map +1 -1
- package/dist/src/core/delegation.d.ts +109 -0
- package/dist/src/core/delegation.js +244 -0
- package/dist/src/core/delegation.js.map +1 -0
- package/dist/src/core/execute.js +12 -3
- package/dist/src/core/execute.js.map +1 -1
- package/dist/src/core/gate-window.js +4 -3
- package/dist/src/core/gate-window.js.map +1 -1
- package/dist/src/core/gate.d.ts +26 -42
- package/dist/src/core/gate.js +84 -3
- package/dist/src/core/gate.js.map +1 -1
- package/dist/src/core/gesture-refusal.js +2 -1
- package/dist/src/core/gesture-refusal.js.map +1 -1
- package/dist/src/core/identity.d.ts +105 -0
- package/dist/src/core/identity.js +122 -0
- package/dist/src/core/identity.js.map +1 -0
- package/dist/src/core/live-draw.d.ts +12 -2
- package/dist/src/core/live-draw.js +12 -2
- package/dist/src/core/live-draw.js.map +1 -1
- package/dist/src/core/loop.d.ts +11 -0
- package/dist/src/core/loop.js +63 -4
- package/dist/src/core/loop.js.map +1 -1
- package/dist/src/core/policy-diff.js +20 -1
- package/dist/src/core/policy-diff.js.map +1 -1
- package/dist/src/core/policy-explain.js +18 -2
- package/dist/src/core/policy-explain.js.map +1 -1
- package/dist/src/core/policy-load.d.ts +38 -1
- package/dist/src/core/policy-load.js +34 -2
- package/dist/src/core/policy-load.js.map +1 -1
- package/dist/src/core/policy-match.js +30 -5
- package/dist/src/core/policy-match.js.map +1 -1
- package/dist/src/core/policy-proposal.js +3 -2
- package/dist/src/core/policy-proposal.js.map +1 -1
- package/dist/src/core/token.js +11 -0
- package/dist/src/core/token.js.map +1 -1
- package/dist/src/core/tool-map.d.ts +125 -0
- package/dist/src/core/tool-map.js +179 -0
- package/dist/src/core/tool-map.js.map +1 -0
- package/dist/src/daemon/git-evidence.d.ts +2 -2
- package/dist/src/daemon/git-evidence.js +1 -1
- package/docs/README-extended.md +13 -0
- package/docs/cli-reference.md +64 -3
- package/package.json +2 -2
- package/schema/event.schema.json +34 -2
- package/schema/fixtures/event/invalid/audit-reviewed-model-actor.json +20 -0
- package/schema/fixtures/event/invalid/audit-reviewed-verdict-source-model.json +20 -0
- package/schema/fixtures/event/invalid/execution-started-harness-tool-space.json +18 -0
- package/schema/fixtures/event/valid/execution-started-harness-tool.json +19 -0
- package/schema/fixtures/policy/invalid/delegation-advice-string.json +15 -0
- package/schema/fixtures/policy/invalid/delegation-class-duplicate.json +18 -0
- package/schema/fixtures/policy/invalid/delegation-class-wildcard.json +17 -0
- package/schema/fixtures/policy/invalid/delegation-daily-cap-fractional.json +15 -0
- package/schema/fixtures/policy/invalid/delegation-daily-cap-negative.json +15 -0
- package/schema/fixtures/policy/invalid/delegation-daily-cap-too-high.json +15 -0
- package/schema/fixtures/policy/invalid/delegation-escalate-duplicate.json +18 -0
- package/schema/fixtures/policy/invalid/delegation-escalate-unknown.json +17 -0
- package/schema/fixtures/policy/invalid/delegation-max-autonomy-alias.json +15 -0
- package/schema/fixtures/policy/invalid/delegation-max-autonomy-autonomous.json +15 -0
- package/schema/fixtures/policy/invalid/delegation-model-no-version.json +15 -0
- package/schema/fixtures/policy/invalid/delegation-model-provider-form.json +15 -0
- package/schema/fixtures/policy/invalid/delegation-null.json +7 -0
- package/schema/fixtures/policy/invalid/delegation-reviewer-agent.json +17 -0
- package/schema/fixtures/policy/invalid/delegation-reviewer-bare-id.json +17 -0
- package/schema/fixtures/policy/invalid/delegation-unknown-key.json +16 -0
- package/schema/fixtures/policy/invalid/tools-class-wildcard.json +9 -0
- package/schema/fixtures/policy/invalid/tools-match-double-star.json +9 -0
- package/schema/fixtures/policy/invalid/unmapped-tool-unknown.json +7 -0
- package/schema/fixtures/policy/valid/delegation-empty.json +7 -0
- package/schema/fixtures/policy/valid/delegation-grammar-full.json +41 -0
- package/schema/fixtures/policy/valid/delegation-off.json +15 -0
- package/schema/fixtures/policy/valid/tools-mapping.json +17 -0
- package/schema/policy.schema.json +126 -0
package/schema/event.schema.json
CHANGED
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"actor": {
|
|
71
71
|
"type": "string",
|
|
72
72
|
"pattern": "^(human|agent|system):.+",
|
|
73
|
-
"description": "SPEC.md §8: who caused the event, as `<kind>:<id>` (the example record uses `human:carter`). Three kinds: `human:` for a person acting through a channel or the CLI, `agent:` for an agent-originated event, and `system:` for events the daemon originates with no external prompt (for example `approval.expired`, which fires on TTL lapse rather than on any actor's action). Approval decisions are restricted to `human:` — see the per-type rules below."
|
|
73
|
+
"description": "SPEC.md §8: who caused the event, as `<kind>:<id>` (the example record uses `human:carter`). Three kinds: `human:` for a person acting through a channel or the CLI, `agent:` for an agent-originated event, and `system:` for events the daemon originates with no external prompt (for example `approval.expired`, which fires on TTL lapse rather than on any actor's action). Approval decisions are restricted to `human:` — see the per-type rules below. A fourth kind, `model:<name>@<version>` (the judge, a pinned model reviewer), is RESERVED by APRV-500 (amended SPEC.md §5.2 proposed) and deliberately absent from this pattern: no record written by this release carries it, so a `model:` actor is refused here at the write boundary until a later core admits it on named events."
|
|
74
74
|
},
|
|
75
75
|
"alg": {
|
|
76
76
|
"const": "sha256/jcs",
|
|
@@ -274,7 +274,7 @@
|
|
|
274
274
|
"verdict_source": {
|
|
275
275
|
"type": "string",
|
|
276
276
|
"const": "explicit",
|
|
277
|
-
"description": "SPEC.md §5.2 (amended, PR #614 refutation F5): how the verdict was given. `explicit` is the only value: since APRV-482 a verdict is said by the reviewer (`--ok`/`--deny`, a card's OK or second Deny) and never defaulted. A review written before then may carry `verdict: \"ok\"` that the runtime filled in for a grade-only tap or a bare terminal review, and nothing else in the record tells the two apart, so this field is the discriminator a follower reads: present means explicit, absent (on an old record) means the verdict may have been defaulted. REQUIRED on new records."
|
|
277
|
+
"description": "SPEC.md §5.2 (amended, PR #614 refutation F5): how the verdict was given. `explicit` is the only value: since APRV-482 a verdict is said by the reviewer (`--ok`/`--deny`, a card's OK or second Deny) and never defaulted. A review written before then may carry `verdict: \"ok\"` that the runtime filled in for a grade-only tap or a bare terminal review, and nothing else in the record tells the two apart, so this field is the discriminator a follower reads: present means explicit, absent (on an old record) means the verdict may have been defaulted. REQUIRED on new records. A second value, `model` (a review given by the judge, `model:<name>@<version>`), is RESERVED by APRV-500 (amended SPEC.md §10.3 proposed): registered so the word means nothing else, never written by this release, and refused here by the `const`. A follower that meets it may ignore it, and then never counts a model review as a human approval."
|
|
278
278
|
},
|
|
279
279
|
"payload_hash": {
|
|
280
280
|
"type": "string",
|
|
@@ -1007,6 +1007,38 @@
|
|
|
1007
1007
|
}
|
|
1008
1008
|
}
|
|
1009
1009
|
},
|
|
1010
|
+
{
|
|
1011
|
+
"$comment": "SPEC.md §8 (APRV-499, proposed): a harness `execution.started` whose class came from the policy's tool mapping (a `tools` entry, or `harness.tool.unmapped` under `defaults.unmapped_tool`) carries `harness_tool`, the harness tool NAME the call was made under, because several tools share one such class and the class alone cannot say which ran. The name only: the call's arguments are bound by `payload_hash` and are never written to the log. OPTIONAL and additive: every record written before the field existed still validates and still verifies, and a start on any other path records none. Only the SHAPE is constrained here: the characters a `tools` match may name (letters, digits, `_`, `.`, `:`, `-`), at most 256 of them, so a name outside that set refuses the append rather than writing bytes no mapping could have named.",
|
|
1012
|
+
"if": {
|
|
1013
|
+
"type": "object",
|
|
1014
|
+
"properties": {
|
|
1015
|
+
"event": {
|
|
1016
|
+
"const": "execution.started"
|
|
1017
|
+
}
|
|
1018
|
+
},
|
|
1019
|
+
"required": [
|
|
1020
|
+
"event"
|
|
1021
|
+
]
|
|
1022
|
+
},
|
|
1023
|
+
"then": {
|
|
1024
|
+
"type": "object",
|
|
1025
|
+
"properties": {
|
|
1026
|
+
"payload": {
|
|
1027
|
+
"type": "object",
|
|
1028
|
+
"properties": {
|
|
1029
|
+
"harness_tool": {
|
|
1030
|
+
"type": "string",
|
|
1031
|
+
"minLength": 1,
|
|
1032
|
+
"maxLength": 256,
|
|
1033
|
+
"pattern": "^[A-Za-z0-9_.:-]+$",
|
|
1034
|
+
"description": "SPEC.md §8 (APRV-499, proposed): the harness tool name a policy-mapped or unmapped harness execution was made under.",
|
|
1035
|
+
"examples": ["mcp__contextsling__publish"]
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
1039
|
+
}
|
|
1040
|
+
}
|
|
1041
|
+
},
|
|
1010
1042
|
{
|
|
1011
1043
|
"$comment": "SPEC.md §10.3 (amended, APRV-38): a decision collected as part of a batch gesture carries the batch's channel delivery id as a first-class payload field. Optional — a unit decision has no batch — and constrained only when present, so the field can never arrive as an empty string or a number that audit would have to guess at.",
|
|
1012
1044
|
"if": {
|
|
@@ -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": "model:judge@0.3.0",
|
|
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
|
+
},
|
|
17
|
+
"alg": "sha256/jcs",
|
|
18
|
+
"prev": "7f625051c176f2f260a1f7e25c9a933717ebb49917a8788ac25ae7a4614ebb30",
|
|
19
|
+
"hash": "6752e6617b2b810c1cc0cf09c51678c78891ff6fdfd8bb9399aecbdfca00dd5b"
|
|
20
|
+
}
|
|
@@ -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,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,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,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,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": "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,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,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
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.1",
|
|
3
|
+
"defaults": {
|
|
4
|
+
"autonomy": "manual",
|
|
5
|
+
"unmapped_tool": "record"
|
|
6
|
+
},
|
|
7
|
+
"classes": {
|
|
8
|
+
"marketplace.*": { "autonomy": "manual" },
|
|
9
|
+
"marketplace.app.read": { "autonomy": "autonomous" },
|
|
10
|
+
"harness.tool.unmapped": { "autonomy": "supervised-retro" }
|
|
11
|
+
},
|
|
12
|
+
"tools": [
|
|
13
|
+
{ "match": "mcp__contextsling__publish", "class": "marketplace.contextsling.publish" },
|
|
14
|
+
{ "match": "mcp__contextsling__*", "class": "marketplace.app.read" },
|
|
15
|
+
{ "match": "*", "class": "marketplace.app.read" }
|
|
16
|
+
]
|
|
17
|
+
}
|