approval-md 0.1.0 → 0.2.0
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 +584 -553
- package/SPEC.md +42 -13
- package/dist/src/adapters/agentmail.d.ts +426 -0
- package/dist/src/adapters/agentmail.js +2 -2
- package/dist/src/adapters/conformance.d.ts +149 -0
- package/dist/src/adapters/contract.d.ts +628 -0
- package/dist/src/adapters/contract.js +110 -16
- package/dist/src/adapters/contract.js.map +1 -1
- package/dist/src/adapters/email.d.ts +324 -0
- package/dist/src/adapters/env-passphrase.d.ts +93 -0
- package/dist/src/adapters/public.d.ts +11 -0
- package/dist/src/adapters/public.js +11 -0
- package/dist/src/adapters/public.js.map +1 -0
- package/dist/src/adapters/registry.d.ts +59 -0
- package/dist/src/adapters/registry.js +2 -1
- package/dist/src/adapters/registry.js.map +1 -1
- package/dist/src/adapters/smtp.d.ts +213 -0
- package/dist/src/adapters/vault-provider.d.ts +114 -0
- package/dist/src/adapters/vault-provider.js +3 -3
- package/dist/src/adapters/zzz.d.ts +66 -0
- package/dist/src/adapters/zzz.js +299 -0
- package/dist/src/adapters/zzz.js.map +1 -0
- package/dist/src/channels/batch.d.ts +109 -0
- package/dist/src/channels/cli.d.ts +193 -0
- package/dist/src/channels/conformance.d.ts +92 -0
- package/dist/src/channels/contract.d.ts +623 -0
- package/dist/src/channels/payload-view.d.ts +35 -0
- package/dist/src/channels/render-queue.d.ts +149 -0
- package/dist/src/channels/tagging.d.ts +196 -0
- package/dist/src/channels/telegram.d.ts +1832 -0
- package/dist/src/channels/web.d.ts +341 -0
- package/dist/src/cli/adapter.d.ts +90 -0
- package/dist/src/cli/adapter.js +25 -15
- package/dist/src/cli/adapter.js.map +1 -1
- package/dist/src/cli/amend.d.ts +59 -0
- package/dist/src/cli/args.d.ts +43 -0
- package/dist/src/cli/attest.d.ts +41 -0
- package/dist/src/cli/audit-card.d.ts +62 -0
- package/dist/src/cli/audit.d.ts +59 -0
- package/dist/src/cli/channel-telegram.d.ts +806 -0
- package/dist/src/cli/channel-web.d.ts +131 -0
- package/dist/src/cli/channel.d.ts +71 -0
- package/dist/src/cli/checkpoint-tap.d.ts +169 -0
- package/dist/src/cli/codex.d.ts +2 -0
- package/dist/src/cli/codex.js +172 -0
- package/dist/src/cli/codex.js.map +1 -0
- package/dist/src/cli/coverage.d.ts +61 -0
- package/dist/src/cli/daemon.d.ts +120 -0
- package/dist/src/cli/doctor.d.ts +129 -0
- package/dist/src/cli/doctor.js +119 -5
- package/dist/src/cli/doctor.js.map +1 -1
- package/dist/src/cli/env.d.ts +65 -0
- package/dist/src/cli/execute.d.ts +202 -0
- package/dist/src/cli/exit-codes.d.ts +73 -0
- package/dist/src/cli/feedback.d.ts +60 -0
- package/dist/src/cli/gate-window.d.ts +40 -0
- package/dist/src/cli/gate.d.ts +68 -0
- package/dist/src/cli/git-scope.d.ts +190 -0
- package/dist/src/cli/gloss-attach.d.ts +85 -0
- package/dist/src/cli/gloss-codex-child.d.ts +9 -0
- package/dist/src/cli/gloss-codex.d.ts +24 -0
- package/dist/src/cli/gloss-options.d.ts +42 -0
- package/dist/src/cli/gloss.d.ts +265 -0
- package/dist/src/cli/help.d.ts +103 -0
- package/dist/src/cli/help.js +173 -51
- package/dist/src/cli/help.js.map +1 -1
- package/dist/src/cli/hook-codex.d.ts +78 -0
- package/dist/src/cli/hook-codex.js +167 -0
- package/dist/src/cli/hook-codex.js.map +1 -0
- package/dist/src/cli/hook.d.ts +331 -0
- package/dist/src/cli/hook.js +186 -80
- package/dist/src/cli/hook.js.map +1 -1
- package/dist/src/cli/import.d.ts +35 -0
- package/dist/src/cli/init.d.ts +84 -0
- package/dist/src/cli/init.js +2 -2
- package/dist/src/cli/init.js.map +1 -1
- package/dist/src/cli/instructions.d.ts +23 -0
- package/dist/src/cli/journal.d.ts +41 -0
- package/dist/src/cli/log-advance.d.ts +287 -0
- package/dist/src/cli/log-advance.js +102 -11
- package/dist/src/cli/log-advance.js.map +1 -1
- package/dist/src/cli/log-anchor.d.ts +176 -0
- package/dist/src/cli/log-checkpoint.d.ts +22 -0
- package/dist/src/cli/log-sync.d.ts +243 -0
- package/dist/src/cli/log-verbs.d.ts +16 -0
- package/dist/src/cli/log-verbs.js +7 -1
- package/dist/src/cli/log-verbs.js.map +1 -1
- package/dist/src/cli/long-help.d.ts +70 -0
- package/dist/src/cli/main.d.ts +77 -0
- package/dist/src/cli/main.js +155 -5
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/cli/mcp.d.ts +52 -0
- package/dist/src/cli/paths.d.ts +56 -0
- package/dist/src/cli/payload.d.ts +58 -0
- package/dist/src/cli/policy.d.ts +43 -0
- package/dist/src/cli/preflight.d.ts +363 -0
- package/dist/src/cli/preflight.js +294 -7
- package/dist/src/cli/preflight.js.map +1 -1
- package/dist/src/cli/progress.d.ts +78 -0
- package/dist/src/cli/prompt.d.ts +209 -0
- package/dist/src/cli/quickstart.d.ts +46 -0
- package/dist/src/cli/quickstart.js +297 -0
- package/dist/src/cli/quickstart.js.map +1 -0
- package/dist/src/cli/records.d.ts +34 -0
- package/dist/src/cli/render.d.ts +22 -0
- package/dist/src/cli/sandbox.d.ts +51 -0
- package/dist/src/cli/scaffold.d.ts +79 -0
- package/dist/src/cli/setup-adapter.d.ts +137 -0
- package/dist/src/cli/setup-adapter.js +38 -4
- package/dist/src/cli/setup-adapter.js.map +1 -1
- package/dist/src/cli/setup-channel.d.ts +117 -0
- package/dist/src/cli/setup-checkpoint.d.ts +57 -0
- package/dist/src/cli/setup-common.d.ts +275 -0
- package/dist/src/cli/setup-flow.d.ts +287 -0
- package/dist/src/cli/setup-service.d.ts +96 -0
- package/dist/src/cli/setup.d.ts +202 -0
- package/dist/src/cli/style.d.ts +320 -0
- package/dist/src/cli/token.d.ts +39 -0
- package/dist/src/cli/up.d.ts +155 -0
- package/dist/src/cli/up.js +4 -2
- package/dist/src/cli/up.js.map +1 -1
- package/dist/src/cli/usage.d.ts +37 -0
- package/dist/src/cli/values.d.ts +40 -0
- package/dist/src/cli/vault.d.ts +59 -0
- package/dist/src/cli/vault.js +2 -2
- package/dist/src/cli/vault.js.map +1 -1
- package/dist/src/cli/verb-registry.d.ts +76 -0
- package/dist/src/cli/verb-registry.js +176 -8
- package/dist/src/cli/verb-registry.js.map +1 -1
- package/dist/src/cli/wordmark.d.ts +31 -0
- package/dist/src/cli/wordmark.js +2 -2
- package/dist/src/codex/doctor.d.ts +13 -0
- package/dist/src/codex/doctor.js +41 -0
- package/dist/src/codex/doctor.js.map +1 -0
- package/dist/src/codex/manifest.d.ts +49 -0
- package/dist/src/codex/manifest.js +103 -0
- package/dist/src/codex/manifest.js.map +1 -0
- package/dist/src/codex/templates.d.ts +41 -0
- package/dist/src/codex/templates.js +319 -0
- package/dist/src/codex/templates.js.map +1 -0
- package/dist/src/codex/trust.d.ts +19 -0
- package/dist/src/codex/trust.js +183 -0
- package/dist/src/codex/trust.js.map +1 -0
- package/dist/src/codex/workspace-plan.d.ts +131 -0
- package/dist/src/codex/workspace-plan.js +561 -0
- package/dist/src/codex/workspace-plan.js.map +1 -0
- package/dist/src/core/actor.d.ts +2 -0
- package/dist/src/core/actor.js +5 -0
- package/dist/src/core/actor.js.map +1 -0
- package/dist/src/core/advance-cycle.d.ts +170 -0
- package/dist/src/core/agents-md.d.ts +276 -0
- package/dist/src/core/apply-patch.d.ts +49 -0
- package/dist/src/core/apply-patch.js +266 -0
- package/dist/src/core/apply-patch.js.map +1 -0
- package/dist/src/core/attest.d.ts +420 -0
- package/dist/src/core/attest.js +13 -1
- package/dist/src/core/attest.js.map +1 -1
- package/dist/src/core/audit.d.ts +492 -0
- package/dist/src/core/budgets.d.ts +238 -0
- package/dist/src/core/checkpoint.d.ts +500 -0
- package/dist/src/core/child-env.d.ts +88 -0
- package/dist/src/core/clock.d.ts +52 -0
- package/dist/src/core/command-class.d.ts +543 -0
- package/dist/src/core/command-class.js +43 -8
- package/dist/src/core/command-class.js.map +1 -1
- package/dist/src/core/coverage-sources/adapter.d.ts +40 -0
- package/dist/src/core/coverage-sources/gh.d.ts +48 -0
- package/dist/src/core/coverage-sources/git.d.ts +101 -0
- package/dist/src/core/coverage.d.ts +217 -0
- package/dist/src/core/credential-spec.d.ts +72 -0
- package/dist/src/core/dark-session.d.ts +331 -0
- package/dist/src/core/decision-refusal.d.ts +185 -0
- package/dist/src/core/env-file.d.ts +450 -0
- package/dist/src/core/execute.d.ts +858 -0
- package/dist/src/core/execute.js +44 -6
- package/dist/src/core/execute.js.map +1 -1
- package/dist/src/core/frontmatter.d.ts +78 -0
- package/dist/src/core/gate-window.d.ts +312 -0
- package/dist/src/core/gate.d.ts +1364 -0
- package/dist/src/core/gate.js +68 -13
- package/dist/src/core/gate.js.map +1 -1
- package/dist/src/core/git-run.d.ts +73 -0
- package/dist/src/core/harness-version.d.ts +157 -0
- package/dist/src/core/harness-version.js +2 -1
- package/dist/src/core/harness-version.js.map +1 -1
- package/dist/src/core/harness-wait.d.ts +55 -0
- package/dist/src/core/head-retry.d.ts +107 -0
- package/dist/src/core/instance.d.ts +253 -0
- package/dist/src/core/intake-limits.d.ts +247 -0
- package/dist/src/core/jcs.d.ts +52 -0
- package/dist/src/core/journal.d.ts +144 -0
- package/dist/src/core/live-draw.d.ts +436 -0
- package/dist/src/core/log-reconcile.d.ts +89 -0
- package/dist/src/core/log-subscribe.d.ts +36 -0
- package/dist/src/core/log-subscribe.js +162 -0
- package/dist/src/core/log-subscribe.js.map +1 -0
- package/dist/src/core/log.d.ts +278 -0
- package/dist/src/core/loop.d.ts +274 -0
- package/dist/src/core/loop.js +11 -0
- package/dist/src/core/loop.js.map +1 -1
- package/dist/src/core/md-fence.d.ts +41 -0
- package/dist/src/core/money.d.ts +147 -0
- package/dist/src/core/payload-census.d.ts +74 -0
- package/dist/src/core/payload-store.d.ts +175 -0
- package/dist/src/core/payload.d.ts +71 -0
- package/dist/src/core/policy-diff.d.ts +292 -0
- package/dist/src/core/policy-diff.js +27 -4
- package/dist/src/core/policy-diff.js.map +1 -1
- package/dist/src/core/policy-expectations.d.ts +199 -0
- package/dist/src/core/policy-explain.d.ts +150 -0
- package/dist/src/core/policy-explain.js +31 -3
- package/dist/src/core/policy-explain.js.map +1 -1
- package/dist/src/core/policy-load.d.ts +527 -0
- package/dist/src/core/policy-load.js +15 -3
- package/dist/src/core/policy-load.js.map +1 -1
- package/dist/src/core/policy-match.d.ts +281 -0
- package/dist/src/core/policy-match.js +20 -9
- package/dist/src/core/policy-match.js.map +1 -1
- package/dist/src/core/policy-proposal.d.ts +265 -0
- package/dist/src/core/prompt-layout.d.ts +221 -0
- package/dist/src/core/protected-path-guard.d.ts +453 -0
- package/dist/src/core/protected-path-guard.js +514 -35
- package/dist/src/core/protected-path-guard.js.map +1 -1
- package/dist/src/core/registration.d.ts +25 -0
- package/dist/src/core/reindex.d.ts +99 -0
- package/dist/src/core/sampler.d.ts +313 -0
- package/dist/src/core/sandbox.d.ts +290 -0
- package/dist/src/core/seal.d.ts +165 -0
- package/dist/src/core/state.d.ts +505 -0
- package/dist/src/core/task-file.d.ts +185 -0
- package/dist/src/core/telegram-config.d.ts +93 -0
- package/dist/src/core/token.d.ts +409 -0
- package/dist/src/core/token.js +21 -38
- package/dist/src/core/token.js.map +1 -1
- package/dist/src/core/validate.d.ts +138 -0
- package/dist/src/core/values.d.ts +137 -0
- package/dist/src/core/vault.d.ts +291 -0
- package/dist/src/core/verified-snapshot.d.ts +204 -0
- package/dist/src/core/verify.d.ts +336 -0
- package/dist/src/core/version.d.ts +8 -0
- package/dist/src/core/wysiwys.d.ts +370 -0
- package/dist/src/daemon/advance-child.d.ts +39 -0
- package/dist/src/daemon/advance.d.ts +466 -0
- package/dist/src/daemon/audit.d.ts +87 -0
- package/dist/src/daemon/daemon.d.ts +1180 -0
- package/dist/src/daemon/dark-session.d.ts +64 -0
- package/dist/src/daemon/draw-child.d.ts +36 -0
- package/dist/src/daemon/draw.d.ts +154 -0
- package/dist/src/daemon/git-evidence.d.ts +173 -0
- package/dist/src/daemon/git-evidence.js +1 -1
- package/dist/src/daemon/projection.d.ts +180 -0
- package/dist/src/daemon/prune.d.ts +207 -0
- package/dist/src/mcp/http.d.ts +113 -0
- package/dist/src/mcp/server.d.ts +265 -0
- package/dist/src/mcp/server.js +9 -1
- package/dist/src/mcp/server.js.map +1 -1
- package/docs/adapter-api.md +106 -0
- package/docs/cli-reference.md +389 -36
- package/docs/codex-enforced-session.md +30 -0
- package/package.json +12 -2
- package/schema/codex-instance.schema.json +82 -0
- package/schema/event.schema.json +2 -1
- package/schema/fixtures/codex-instance/invalid/unpinned-codex-version.json +40 -0
- package/schema/fixtures/codex-instance/valid/canonical.json +40 -0
- package/schema/policy.schema.json +21 -1
- package/templates/codex/README.md +9 -0
package/package.json
CHANGED
|
@@ -1,20 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "approval-md",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Human approval for agent actions. CLI runtime for the approval.md convention (pre-release).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"approval": "./cli.js"
|
|
8
8
|
},
|
|
9
|
+
"exports": {
|
|
10
|
+
"./adapters": {
|
|
11
|
+
"types": "./dist/src/adapters/public.d.ts",
|
|
12
|
+
"import": "./dist/src/adapters/public.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
9
15
|
"files": [
|
|
10
16
|
"cli.js",
|
|
11
17
|
"dist/src",
|
|
12
18
|
"schema",
|
|
19
|
+
"docs/adapter-api.md",
|
|
13
20
|
"docs/cli-reference.md",
|
|
14
21
|
"SPEC.md",
|
|
15
22
|
"README.md",
|
|
16
23
|
"LICENSE",
|
|
17
|
-
"NOTICE"
|
|
24
|
+
"NOTICE",
|
|
25
|
+
"docs/codex-enforced-session.md",
|
|
26
|
+
"templates/codex"
|
|
18
27
|
],
|
|
19
28
|
"repository": "github:approval-md/approval.md",
|
|
20
29
|
"homepage": "https://approval.md",
|
|
@@ -25,6 +34,7 @@
|
|
|
25
34
|
},
|
|
26
35
|
"scripts": {
|
|
27
36
|
"build": "tsc -p tsconfig.json",
|
|
37
|
+
"codex:mcp": "node .codex/approval-mcp.mjs",
|
|
28
38
|
"typecheck": "tsc --noEmit",
|
|
29
39
|
"test": "tsc -p tsconfig.json && node scripts/run-tests.mjs",
|
|
30
40
|
"lint": "oxlint src tests",
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://approval.md/schema/codex-instance.schema.json",
|
|
4
|
+
"$comment": "CC0 1.0. See schema/LICENSE.",
|
|
5
|
+
"title": "Constrained Codex instance manifest",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["schema_version", "instance_id", "platform", "codex_version", "node_version", "package_version", "paths", "principals", "invocation", "components"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"schema_version": { "const": "approval.codex.instance.v1" },
|
|
11
|
+
"instance_id": { "type": "string", "pattern": "^[a-z][a-z0-9-]{0,62}$" },
|
|
12
|
+
"platform": { "const": "darwin" },
|
|
13
|
+
"codex_version": { "const": "0.152.1" },
|
|
14
|
+
"node_version": { "type": "string", "pattern": "^(?:2[0-9]|[3-9][0-9])\\.[0-9]+\\.[0-9]+$" },
|
|
15
|
+
"package_version": { "type": "string", "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$" },
|
|
16
|
+
"paths": {
|
|
17
|
+
"type": "object",
|
|
18
|
+
"additionalProperties": false,
|
|
19
|
+
"required": ["install_root", "package_root", "workspace", "primary", "policy", "log", "manifest", "codex_executable", "node_executable", "mcp_executable", "broker_executable", "runner_executable"],
|
|
20
|
+
"properties": {
|
|
21
|
+
"install_root": { "$ref": "#/$defs/absolute_path" },
|
|
22
|
+
"package_root": { "$ref": "#/$defs/absolute_path" },
|
|
23
|
+
"workspace": { "$ref": "#/$defs/absolute_path" },
|
|
24
|
+
"primary": { "$ref": "#/$defs/absolute_path" },
|
|
25
|
+
"policy": { "$ref": "#/$defs/absolute_path" },
|
|
26
|
+
"log": { "$ref": "#/$defs/absolute_path" },
|
|
27
|
+
"manifest": { "$ref": "#/$defs/absolute_path" },
|
|
28
|
+
"codex_executable": { "$ref": "#/$defs/absolute_path" },
|
|
29
|
+
"node_executable": { "$ref": "#/$defs/absolute_path" },
|
|
30
|
+
"mcp_executable": { "$ref": "#/$defs/absolute_path" },
|
|
31
|
+
"broker_executable": { "$ref": "#/$defs/absolute_path" },
|
|
32
|
+
"runner_executable": { "$ref": "#/$defs/absolute_path" }
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"principals": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"additionalProperties": false,
|
|
38
|
+
"required": ["codex", "broker", "runner"],
|
|
39
|
+
"properties": {
|
|
40
|
+
"codex": { "const": "_approval_codex" },
|
|
41
|
+
"broker": { "const": "_approval_broker" },
|
|
42
|
+
"runner": { "const": "_approval_runner" }
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"invocation": {
|
|
46
|
+
"type": "object",
|
|
47
|
+
"additionalProperties": false,
|
|
48
|
+
"required": ["command", "args"],
|
|
49
|
+
"properties": {
|
|
50
|
+
"command": { "$ref": "#/$defs/absolute_path" },
|
|
51
|
+
"args": {
|
|
52
|
+
"type": "array",
|
|
53
|
+
"prefixItems": [
|
|
54
|
+
{ "const": "codex" },
|
|
55
|
+
{ "const": "serve" },
|
|
56
|
+
{ "const": "--manifest" },
|
|
57
|
+
{ "$ref": "#/$defs/absolute_path" }
|
|
58
|
+
],
|
|
59
|
+
"items": false,
|
|
60
|
+
"minItems": 4,
|
|
61
|
+
"maxItems": 4
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"components": {
|
|
66
|
+
"type": "object",
|
|
67
|
+
"additionalProperties": false,
|
|
68
|
+
"required": ["broker", "runner"],
|
|
69
|
+
"properties": {
|
|
70
|
+
"broker": { "const": "required-not-shipped" },
|
|
71
|
+
"runner": { "const": "required-not-shipped" }
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"$defs": {
|
|
76
|
+
"absolute_path": {
|
|
77
|
+
"type": "string",
|
|
78
|
+
"minLength": 1,
|
|
79
|
+
"pattern": "^/"
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
package/schema/event.schema.json
CHANGED
|
@@ -112,7 +112,8 @@
|
|
|
112
112
|
"type": "string",
|
|
113
113
|
"enum": [
|
|
114
114
|
"claude-code",
|
|
115
|
-
"cursor"
|
|
115
|
+
"cursor",
|
|
116
|
+
"codex"
|
|
116
117
|
],
|
|
117
118
|
"description": "SPEC.md §10.1 (amended, APRV-227): which harness hook wrote this record. A closed set, extended only by a task that adds the case, because it is the discriminator a reader scopes `harness_version` by: one log holds the records of every harness that ever wrote to it, and a version with no binary named beside it is a string nobody can compare against anything. OPTIONAL and additive — every record written before the field existed still validates and still verifies, and the two fields travel together or not at all."
|
|
118
119
|
},
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "approval.codex.instance.v1",
|
|
3
|
+
"instance_id": "team",
|
|
4
|
+
"platform": "darwin",
|
|
5
|
+
"codex_version": "0.153.0",
|
|
6
|
+
"node_version": "20.19.0",
|
|
7
|
+
"package_version": "0.1.0",
|
|
8
|
+
"paths": {
|
|
9
|
+
"install_root": "/Library/Application Support/approval-codex",
|
|
10
|
+
"package_root": "/Library/Application Support/approval-codex/package",
|
|
11
|
+
"workspace": "/Users/_approval_codex/workspace",
|
|
12
|
+
"primary": "/Users/operator/approval-primary",
|
|
13
|
+
"policy": "/Users/operator/approval-primary/APPROVAL.md",
|
|
14
|
+
"log": "/Users/operator/approval-primary/.approval/log/events.jsonl",
|
|
15
|
+
"manifest": "/Library/Application Support/approval-codex/instances/team.json",
|
|
16
|
+
"codex_executable": "/Library/Application Support/approval-codex/bin/codex",
|
|
17
|
+
"node_executable": "/Library/Application Support/approval-codex/bin/node",
|
|
18
|
+
"mcp_executable": "/Library/Application Support/approval-codex/bin/approval-codex-mcp",
|
|
19
|
+
"broker_executable": "/Library/Application Support/approval-codex/bin/approval-codex-broker",
|
|
20
|
+
"runner_executable": "/Library/Application Support/approval-codex/bin/approval-codex-runner"
|
|
21
|
+
},
|
|
22
|
+
"principals": {
|
|
23
|
+
"codex": "_approval_codex",
|
|
24
|
+
"broker": "_approval_broker",
|
|
25
|
+
"runner": "_approval_runner"
|
|
26
|
+
},
|
|
27
|
+
"invocation": {
|
|
28
|
+
"command": "/Library/Application Support/approval-codex/bin/approval-codex-mcp",
|
|
29
|
+
"args": [
|
|
30
|
+
"codex",
|
|
31
|
+
"serve",
|
|
32
|
+
"--manifest",
|
|
33
|
+
"/Library/Application Support/approval-codex/instances/team.json"
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
"components": {
|
|
37
|
+
"broker": "required-not-shipped",
|
|
38
|
+
"runner": "required-not-shipped"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "approval.codex.instance.v1",
|
|
3
|
+
"instance_id": "team",
|
|
4
|
+
"platform": "darwin",
|
|
5
|
+
"codex_version": "0.152.1",
|
|
6
|
+
"node_version": "20.19.0",
|
|
7
|
+
"package_version": "0.1.0",
|
|
8
|
+
"paths": {
|
|
9
|
+
"install_root": "/Library/Application Support/approval-codex",
|
|
10
|
+
"package_root": "/Library/Application Support/approval-codex/package",
|
|
11
|
+
"workspace": "/Users/_approval_codex/workspace",
|
|
12
|
+
"primary": "/Users/operator/approval-primary",
|
|
13
|
+
"policy": "/Users/operator/approval-primary/APPROVAL.md",
|
|
14
|
+
"log": "/Users/operator/approval-primary/.approval/log/events.jsonl",
|
|
15
|
+
"manifest": "/Library/Application Support/approval-codex/instances/team.json",
|
|
16
|
+
"codex_executable": "/Library/Application Support/approval-codex/bin/codex",
|
|
17
|
+
"node_executable": "/Library/Application Support/approval-codex/bin/node",
|
|
18
|
+
"mcp_executable": "/Library/Application Support/approval-codex/bin/approval-codex-mcp",
|
|
19
|
+
"broker_executable": "/Library/Application Support/approval-codex/bin/approval-codex-broker",
|
|
20
|
+
"runner_executable": "/Library/Application Support/approval-codex/bin/approval-codex-runner"
|
|
21
|
+
},
|
|
22
|
+
"principals": {
|
|
23
|
+
"codex": "_approval_codex",
|
|
24
|
+
"broker": "_approval_broker",
|
|
25
|
+
"runner": "_approval_runner"
|
|
26
|
+
},
|
|
27
|
+
"invocation": {
|
|
28
|
+
"command": "/Library/Application Support/approval-codex/bin/approval-codex-mcp",
|
|
29
|
+
"args": [
|
|
30
|
+
"codex",
|
|
31
|
+
"serve",
|
|
32
|
+
"--manifest",
|
|
33
|
+
"/Library/Application Support/approval-codex/instances/team.json"
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
"components": {
|
|
37
|
+
"broker": "required-not-shipped",
|
|
38
|
+
"runner": "required-not-shipped"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -369,7 +369,7 @@
|
|
|
369
369
|
"type": "object",
|
|
370
370
|
"additionalProperties": false,
|
|
371
371
|
"required": ["autonomy"],
|
|
372
|
-
"description": "SPEC.md §5.1: a class rule. The shorthand form is `{ autonomy }` alone; the full form
|
|
372
|
+
"description": "SPEC.md §5.1: a class rule. The shorthand form is `{ autonomy }` alone; the full form may add rates, `allow_irreversible`, `approvers` and `limits`. Both are this one shape — `autonomy` is always REQUIRED, since a rule without it cannot decide anything, and unknown keys are rejected so a typo'd constraint is never silently ignored.",
|
|
373
373
|
"allOf": [
|
|
374
374
|
{
|
|
375
375
|
"$comment": "SPEC.md §5.2 (amended, APRV-127): `live_rate` belongs to `supervised-live` and to nothing else. Required there, because a live mode with no fraction declares a control without saying how much of it runs, and the runtime would have to invent the number an author did not write. Forbidden everywhere else, because a rate sitting on a `manual`, `supervised-retro` or `autonomous` rule is a fraction its author believes is in force that nothing reads — the same silent no-op this schema's closed shape exists to prevent. APRV-185 adds `human-only` to that everywhere-else, and the `else` branch below already carries it with no new clause: a level whose actions no agent may take has no fraction of them to gate, so a `live_rate` written there is a control its author believes is running over a population of size zero.",
|
|
@@ -405,6 +405,22 @@
|
|
|
405
405
|
"type": "object",
|
|
406
406
|
"properties": { "retro_rate": false }
|
|
407
407
|
}
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
"$comment": "SPEC.md §5.2/§7 (amended, APRV-317): `allow_irreversible: true` is an explicit operator-authored capability for a nonmanual class rule. It is valid only where there is agent execution to retain: autonomous and the three supervised spellings. False is admitted on every level as the explicit spelling of the backward-compatible default. Manual needs no exception and human-only must never acquire one.",
|
|
411
|
+
"if": {
|
|
412
|
+
"type": "object",
|
|
413
|
+
"properties": { "allow_irreversible": { "const": true } },
|
|
414
|
+
"required": ["allow_irreversible"]
|
|
415
|
+
},
|
|
416
|
+
"then": {
|
|
417
|
+
"type": "object",
|
|
418
|
+
"properties": {
|
|
419
|
+
"autonomy": {
|
|
420
|
+
"enum": ["supervised-live", "supervised", "supervised-retro", "autonomous"]
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
}
|
|
408
424
|
}
|
|
409
425
|
],
|
|
410
426
|
"properties": {
|
|
@@ -414,6 +430,10 @@
|
|
|
414
430
|
},
|
|
415
431
|
"live_rate": { "$ref": "#/$defs/liveRate" },
|
|
416
432
|
"retro_rate": { "$ref": "#/$defs/retroRate" },
|
|
433
|
+
"allow_irreversible": {
|
|
434
|
+
"type": "boolean",
|
|
435
|
+
"description": "SPEC.md §5.2/§7 (amended, APRV-317): explicit permission for truthful `reversible: false` actions matching this rule to retain its nonmanual autonomy. Omission or false preserves the manual floor. Every equally most-specific matching rule must say true; defaults and action metadata cannot supply it."
|
|
436
|
+
},
|
|
417
437
|
"approvers": {
|
|
418
438
|
"type": "array",
|
|
419
439
|
"minItems": 1,
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Constrained Codex host templates
|
|
2
|
+
|
|
3
|
+
These files are documentation inputs for approval codex prepare. The command
|
|
4
|
+
renders an instance-specific bundle with absolute paths and hashes.
|
|
5
|
+
|
|
6
|
+
Generated output is inert. Do not copy it into /etc/codex, load its launchd
|
|
7
|
+
units, create service accounts, or start its launchers until the policy-bound
|
|
8
|
+
broker and confined runner are installed and strict doctor reports ready.
|
|
9
|
+
APRV-325.1 always reports them as not ready.
|