@mmerterden/multi-agent-pipeline 20.29.0 → 20.33.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/CHANGELOG.md +86 -0
- package/README.md +50 -5
- package/README.tr.md +64 -5
- package/docs/architecture.md +3 -3
- package/docs/ecosystem.md +5 -5
- package/docs/facts.json +9 -9
- package/install/_unattended-profile.mjs +61 -0
- package/install/catalog-history.json +1 -1
- package/install/claude.mjs +19 -3
- package/install/codex.mjs +2 -0
- package/install/copilot.mjs +13 -0
- package/install/index.mjs +10 -1
- package/install/templates/claude-hooks.json +12 -1
- package/manifest.json +230 -88
- package/package.json +3 -1
- package/pipeline/commands/multi-agent/analysis/SKILL.md +4 -4
- package/pipeline/commands/multi-agent/autopilot-on/SKILL.md +13 -15
- package/pipeline/commands/multi-agent/office-off/SKILL.md +27 -0
- package/pipeline/commands/multi-agent/office-on/SKILL.md +51 -0
- package/pipeline/commands/multi-agent/office-status/SKILL.md +29 -0
- package/pipeline/commands/multi-agent/prune-logs/SKILL.md +4 -1
- package/pipeline/commands/multi-agent/review/SKILL.md +4 -3
- package/pipeline/commands/multi-agent/scenario-audit/SKILL.md +4 -2
- package/pipeline/commands/multi-agent/serve/SKILL.md +4 -2
- package/pipeline/commands/multi-agent/stack/SKILL.md +15 -8
- package/pipeline/commands/multi-agent/steer/SKILL.md +10 -9
- package/pipeline/commands/multi-agent/sync/SKILL.md +15 -3
- package/pipeline/commands/multi-agent/test-gen/SKILL.md +29 -3
- package/pipeline/contract/CHANGELOG.md +108 -0
- package/pipeline/contract/README.md +72 -12
- package/pipeline/contract/fixtures/error-invalid-request.json +1 -1
- package/pipeline/contract/fixtures/error-unauthorized.json +1 -1
- package/pipeline/contract/fixtures/error-unsigned.json +1 -1
- package/pipeline/contract/fixtures/launch-plan.json +1 -1
- package/pipeline/contract/fixtures/runs-awaiting-question.json +6 -1
- package/pipeline/contract/fixtures/runs-empty.json +1 -1
- package/pipeline/contract/fixtures/runs-failed.json +6 -1
- package/pipeline/contract/fixtures/runs-old-schema.json +6 -1
- package/pipeline/contract/fixtures/runs-pr-opened-redacted.json +5 -1
- package/pipeline/contract/fixtures/runs-pr-opened.json +6 -1
- package/pipeline/contract/fixtures/runs-running.json +6 -1
- package/pipeline/contract/manifest.json +506 -27
- package/pipeline/contract/types/index.d.ts +829 -4
- package/pipeline/lib/bg-launch.mjs +106 -0
- package/pipeline/lib/code-digest.mjs +49 -0
- package/pipeline/lib/credential-resolve.mjs +42 -2
- package/pipeline/multi-agent-refs/cross-cli-contract.md +5 -4
- package/pipeline/multi-agent-refs/features/office-threat-model.md +109 -0
- package/pipeline/multi-agent-refs/features/unattended-security.md +1 -1
- package/pipeline/multi-agent-refs/help/en.md +3 -0
- package/pipeline/multi-agent-refs/help/tr.md +3 -0
- package/pipeline/multi-agent-refs/phases/modes.md +7 -7
- package/pipeline/multi-agent-refs/phases/phase-5-report.md +16 -10
- package/pipeline/multi-agent-refs/review-standalone-tracker.md +37 -0
- package/pipeline/multi-agent-refs/tracker-contract.md +8 -3
- package/pipeline/office/NOTICE.md +45 -0
- package/pipeline/office/assets/ARCHIVE_BOXES.png +0 -0
- package/pipeline/office/assets/BIN.png +0 -0
- package/pipeline/office/assets/BOOKSHELF.png +0 -0
- package/pipeline/office/assets/CACTUS.png +0 -0
- package/pipeline/office/assets/CLOCK.png +0 -0
- package/pipeline/office/assets/COFFEE.png +0 -0
- package/pipeline/office/assets/COFFEE_MACHINE.png +0 -0
- package/pipeline/office/assets/COFFEE_TABLE.png +0 -0
- package/pipeline/office/assets/COUNTER_SINK.png +0 -0
- package/pipeline/office/assets/CUSHIONED_BENCH.png +0 -0
- package/pipeline/office/assets/CUSHIONED_CHAIR_BACK.png +0 -0
- package/pipeline/office/assets/CUSHIONED_CHAIR_FRONT.png +0 -0
- package/pipeline/office/assets/CUSHIONED_CHAIR_SIDE.png +0 -0
- package/pipeline/office/assets/DESK_FRONT.png +0 -0
- package/pipeline/office/assets/DESK_SIDE.png +0 -0
- package/pipeline/office/assets/DEVICE_STAND.png +0 -0
- package/pipeline/office/assets/DOUBLE_BOOKSHELF.png +0 -0
- package/pipeline/office/assets/FILING_CABINET.png +0 -0
- package/pipeline/office/assets/FRIDGE.png +0 -0
- package/pipeline/office/assets/HANGING_PLANT.png +0 -0
- package/pipeline/office/assets/LARGE_PAINTING.png +0 -0
- package/pipeline/office/assets/LARGE_PLANT.png +0 -0
- package/pipeline/office/assets/MAILBOX.png +0 -0
- package/pipeline/office/assets/MOP_BUCKET.png +0 -0
- package/pipeline/office/assets/PC_BACK.png +0 -0
- package/pipeline/office/assets/PC_FRONT_OFF.png +0 -0
- package/pipeline/office/assets/PC_FRONT_ON_1.png +0 -0
- package/pipeline/office/assets/PC_FRONT_ON_2.png +0 -0
- package/pipeline/office/assets/PC_FRONT_ON_3.png +0 -0
- package/pipeline/office/assets/PC_SIDE.png +0 -0
- package/pipeline/office/assets/PLANT.png +0 -0
- package/pipeline/office/assets/PLANT_2.png +0 -0
- package/pipeline/office/assets/POT.png +0 -0
- package/pipeline/office/assets/PRINTER.png +0 -0
- package/pipeline/office/assets/RECEPTION_DESK.png +0 -0
- package/pipeline/office/assets/SERVER_RACK.png +0 -0
- package/pipeline/office/assets/SERVER_RACK_2.png +0 -0
- package/pipeline/office/assets/SMALL_PAINTING.png +0 -0
- package/pipeline/office/assets/SMALL_PAINTING_2.png +0 -0
- package/pipeline/office/assets/SMALL_TABLE_FRONT.png +0 -0
- package/pipeline/office/assets/SMALL_TABLE_SIDE.png +0 -0
- package/pipeline/office/assets/SOFA_BACK.png +0 -0
- package/pipeline/office/assets/SOFA_FRONT.png +0 -0
- package/pipeline/office/assets/SOFA_SIDE.png +0 -0
- package/pipeline/office/assets/TABLE_FRONT.png +0 -0
- package/pipeline/office/assets/TOILET_STALL.png +0 -0
- package/pipeline/office/assets/VENDING.png +0 -0
- package/pipeline/office/assets/WASHBASIN.png +0 -0
- package/pipeline/office/assets/WATER_COOLER.png +0 -0
- package/pipeline/office/assets/WHITEBOARD.png +0 -0
- package/pipeline/office/assets/WOODEN_BENCH.png +0 -0
- package/pipeline/office/assets/WOODEN_CHAIR_BACK.png +0 -0
- package/pipeline/office/assets/WOODEN_CHAIR_FRONT.png +0 -0
- package/pipeline/office/assets/WOODEN_CHAIR_SIDE.png +0 -0
- package/pipeline/office/assets/char_0.png +0 -0
- package/pipeline/office/assets/char_1.png +0 -0
- package/pipeline/office/assets/char_2.png +0 -0
- package/pipeline/office/assets/char_3.png +0 -0
- package/pipeline/office/assets/char_4.png +0 -0
- package/pipeline/office/assets/char_5.png +0 -0
- package/pipeline/office/assets/floor_0.png +0 -0
- package/pipeline/office/assets/floor_1.png +0 -0
- package/pipeline/office/assets/floor_2.png +0 -0
- package/pipeline/office/assets/floor_3.png +0 -0
- package/pipeline/office/assets/floor_4.png +0 -0
- package/pipeline/office/assets/floor_5.png +0 -0
- package/pipeline/office/assets/floor_6.png +0 -0
- package/pipeline/office/assets/floor_7.png +0 -0
- package/pipeline/office/assets/floor_8.png +0 -0
- package/pipeline/office/assets/wall_0.png +0 -0
- package/pipeline/office/index.html +8431 -0
- package/pipeline/office/toolkit.json +3 -0
- package/pipeline/schemas/activity-chat.schema.json +78 -0
- package/pipeline/schemas/activity-roles.json +48 -0
- package/pipeline/schemas/activity-roles.schema.json +49 -0
- package/pipeline/schemas/activity.schema.json +613 -0
- package/pipeline/schemas/agent-state.schema.json +493 -115
- package/pipeline/schemas/autopilot-on-request.schema.json +33 -0
- package/pipeline/schemas/autopilot-on.schema.json +111 -0
- package/pipeline/schemas/contract-error.schema.json +45 -4
- package/pipeline/schemas/issue-maturity.schema.json +68 -0
- package/pipeline/schemas/job-change.schema.json +72 -0
- package/pipeline/schemas/job-request.schema.json +38 -0
- package/pipeline/schemas/launch.json +4 -4
- package/pipeline/schemas/ledger.schema.json +202 -0
- package/pipeline/schemas/office-credentials.schema.json +71 -0
- package/pipeline/schemas/office-jobs.json +253 -0
- package/pipeline/schemas/office-jobs.schema.json +62 -0
- package/pipeline/schemas/office-memory.schema.json +105 -0
- package/pipeline/schemas/office-settings-request.schema.json +30 -0
- package/pipeline/schemas/office-settings.schema.json +67 -0
- package/pipeline/schemas/permissions.schema.json +47 -0
- package/pipeline/schemas/phases.json +10 -2
- package/pipeline/schemas/phases.schema.json +86 -19
- package/pipeline/schemas/prefs.schema.json +19 -0
- package/pipeline/schemas/prs.schema.json +78 -0
- package/pipeline/schemas/prune-logs-request.schema.json +26 -0
- package/pipeline/schemas/prune-logs.schema.json +52 -0
- package/pipeline/schemas/repo-change.schema.json +54 -0
- package/pipeline/schemas/repo-request.schema.json +29 -0
- package/pipeline/schemas/repos.schema.json +49 -1
- package/pipeline/schemas/review-verdict-request.schema.json +20 -0
- package/pipeline/schemas/review-verdict.schema.json +62 -0
- package/pipeline/schemas/routine-delete.schema.json +59 -0
- package/pipeline/schemas/routines.schema.json +38 -0
- package/pipeline/schemas/run-evidence.schema.json +29 -0
- package/pipeline/schemas/run-results.schema.json +218 -0
- package/pipeline/schemas/runs-index.schema.json +257 -46
- package/pipeline/schemas/service-read.schema.json +58 -0
- package/pipeline/schemas/stack-change.schema.json +82 -0
- package/pipeline/schemas/stack-request.schema.json +33 -0
- package/pipeline/schemas/stack.schema.json +59 -0
- package/pipeline/schemas/steer-request.schema.json +25 -0
- package/pipeline/schemas/steer.schema.json +59 -0
- package/pipeline/schemas/system-status.schema.json +111 -0
- package/pipeline/schemas/tool-call-request.schema.json +19 -0
- package/pipeline/schemas/tool-call.schema.json +47 -0
- package/pipeline/schemas/tools.schema.json +65 -0
- package/pipeline/schemas/unattended-profile.json +7 -2
- package/pipeline/scripts/_active-run.mjs +2 -1
- package/pipeline/scripts/_cost.mjs +66 -1
- package/pipeline/scripts/_office-smoke-lib.sh +115 -0
- package/pipeline/scripts/_spawn-async.mjs +77 -0
- package/pipeline/scripts/_transcript-tail.mjs +274 -0
- package/pipeline/scripts/activity-snapshot.mjs +1223 -0
- package/pipeline/scripts/autopilot-control.mjs +214 -9
- package/pipeline/scripts/autopilot-runner.mjs +7 -5
- package/pipeline/scripts/contract-server.mjs +1853 -197
- package/pipeline/scripts/cost-analyze.mjs +2 -53
- package/pipeline/scripts/cost-table.json +1 -0
- package/pipeline/scripts/gen-mode-dispatch.mjs +3 -1
- package/pipeline/scripts/job-launch.mjs +477 -0
- package/pipeline/scripts/launch-request.mjs +94 -9
- package/pipeline/scripts/office-build.mjs +226 -0
- package/pipeline/scripts/office-control.mjs +410 -0
- package/pipeline/scripts/office-credentials.mjs +106 -0
- package/pipeline/scripts/office-ledger.mjs +409 -0
- package/pipeline/scripts/office-memory.mjs +200 -0
- package/pipeline/scripts/office-prune.mjs +125 -0
- package/pipeline/scripts/office-settings.mjs +145 -0
- package/pipeline/scripts/phase-tracker.sh +12 -5
- package/pipeline/scripts/prune-logs.sh +53 -2
- package/pipeline/scripts/routine-registry.mjs +42 -6
- package/pipeline/scripts/run-results.mjs +373 -0
- package/pipeline/scripts/runs-index.mjs +62 -2
- package/pipeline/scripts/service-read.mjs +244 -0
- package/pipeline/scripts/stack-toggle.mjs +285 -0
- package/pipeline/scripts/steer-run.mjs +97 -0
- package/pipeline/scripts/system-status.mjs +196 -0
- package/pipeline/scripts/task-mirror.mjs +150 -0
- package/pipeline/scripts/task-mirror.sh +20 -0
- package/pipeline/scripts/toolkit-tools.mjs +625 -0
- package/pipeline/scripts/transcript-index.mjs +4 -1
- package/pipeline/scripts/uninstall.mjs +3 -0
- package/pipeline/scripts/work-items.mjs +473 -0
- package/pipeline/skills/.skill-manifest.json +23 -11
- package/pipeline/skills/.skills-index.json +34 -1
- package/pipeline/skills/shared/README.md +6 -3
- package/pipeline/skills/shared/core/multi-agent-autopilot-on/SKILL.md +13 -15
- package/pipeline/skills/shared/core/multi-agent-office-off/SKILL.md +16 -0
- package/pipeline/skills/shared/core/multi-agent-office-on/SKILL.md +21 -0
- package/pipeline/skills/shared/core/multi-agent-office-status/SKILL.md +17 -0
- package/pipeline/skills/shared/core/multi-agent-prune-logs/SKILL.md +4 -1
- package/pipeline/skills/shared/core/multi-agent-review/SKILL.md +19 -0
- package/pipeline/skills/shared/core/multi-agent-scenario-audit/SKILL.md +4 -2
- package/pipeline/skills/shared/core/multi-agent-serve/SKILL.md +4 -2
- package/pipeline/skills/shared/core/multi-agent-stack/SKILL.md +14 -6
- package/pipeline/skills/shared/core/multi-agent-steer/SKILL.md +10 -9
- package/pipeline/skills/shared/core/multi-agent-sync/SKILL.md +3 -3
- package/pipeline/skills/shared/core/multi-agent-test-gen/SKILL.md +26 -3
- package/pipeline/skills/skills-index.md +4 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"contractVersion": "1.
|
|
2
|
+
"contractVersion": "1.6.0",
|
|
3
3
|
"supportedMajors": [1],
|
|
4
4
|
"description": "The pipeline's client contract: every surface a client reads or writes, the CLI invocation and the HTTP route that carry it, and the schema its JSON follows. Schemas are not copied here; schemasDir points at the one tree the producers validate against. Paths in cli are relative to the pipeline directory (installed: ~/.claude).",
|
|
5
5
|
"schemasDir": "../schemas",
|
|
@@ -13,7 +13,9 @@
|
|
|
13
13
|
"redact": "1 drops every x-sensitivity local field, as --redact does; forced for a request that carries an Origin",
|
|
14
14
|
"v": "the major to serve; see README.md"
|
|
15
15
|
},
|
|
16
|
-
"confirm": "POST /v1/runs/{id}/kill and POST /v1/
|
|
16
|
+
"confirm": "POST /v1/runs/{id}/kill, POST /v1/gc, POST /v1/autopilot/on, POST /v1/stack, POST /v1/runs/{id}/steer, POST /v1/runs/{id}/review-verdict, POST /v1/repos and POST /v1/jobs take two requests: the first returns a preview, confirmToken and expiresAt; the second sends confirmToken back. DELETE /v1/routines/{name} and DELETE /v1/repos/{id} take the token as ?confirm=. Tokens are 32 random bytes held in the server's memory, single use, valid 120 seconds, bound to the route and its target.",
|
|
17
|
+
"tags": "Every surface carries remote (the scope a remote carrier would require: read, answer, launch, or local-only for anything that widens what runs on this machine) and risk (the confirmation tier it would require: read, low, high). Locally the bearer token is the only credential; nothing enforces the tags yet.",
|
|
18
|
+
"origin": "A request may carry no Origin, the server's own (http://127.0.0.1:<port>), or one passed with --allow-origin. Writes (POST, DELETE) and the chat route accept no Origin but the server's own. The bearer token is read from the Authorization header only."
|
|
17
19
|
},
|
|
18
20
|
"phone": {
|
|
19
21
|
"description": "Routes a phone reaches through a forwarder (a private network or a local relay; see multi-agent-refs/features/phone-api.md). Every request is signed with an enrolled device's Ed25519 key; the bearer token is neither needed nor accepted here, and a signature opens no desktop route. Responses are always the redacted view.",
|
|
@@ -72,7 +74,42 @@
|
|
|
72
74
|
"autopilot-off-request.schema.json",
|
|
73
75
|
"autopilot-off.schema.json",
|
|
74
76
|
"repos.schema.json",
|
|
75
|
-
"
|
|
77
|
+
"repo-request.schema.json",
|
|
78
|
+
"repo-change.schema.json",
|
|
79
|
+
"office-jobs.schema.json",
|
|
80
|
+
"job-request.schema.json",
|
|
81
|
+
"job-change.schema.json",
|
|
82
|
+
"activity.schema.json",
|
|
83
|
+
"activity-chat.schema.json",
|
|
84
|
+
"routines.schema.json",
|
|
85
|
+
"routine-delete.schema.json",
|
|
86
|
+
"stack.schema.json",
|
|
87
|
+
"stack-request.schema.json",
|
|
88
|
+
"stack-change.schema.json",
|
|
89
|
+
"autopilot-on-request.schema.json",
|
|
90
|
+
"autopilot-on.schema.json",
|
|
91
|
+
"steer-request.schema.json",
|
|
92
|
+
"steer.schema.json",
|
|
93
|
+
"ledger.schema.json",
|
|
94
|
+
"system-status.schema.json",
|
|
95
|
+
"office-credentials.schema.json",
|
|
96
|
+
"office-memory.schema.json",
|
|
97
|
+
"prune-logs.schema.json",
|
|
98
|
+
"prune-logs-request.schema.json",
|
|
99
|
+
"run-results.schema.json",
|
|
100
|
+
"run-evidence.schema.json",
|
|
101
|
+
"issue-maturity.schema.json",
|
|
102
|
+
"prs.schema.json",
|
|
103
|
+
"review-verdict-request.schema.json",
|
|
104
|
+
"review-verdict.schema.json",
|
|
105
|
+
"tools.schema.json",
|
|
106
|
+
"tool-call-request.schema.json",
|
|
107
|
+
"tool-call.schema.json",
|
|
108
|
+
"service-read.schema.json",
|
|
109
|
+
"permissions.schema.json",
|
|
110
|
+
"contract-error.schema.json",
|
|
111
|
+
"office-settings.schema.json",
|
|
112
|
+
"office-settings-request.schema.json"
|
|
76
113
|
],
|
|
77
114
|
"surfaces": [
|
|
78
115
|
{
|
|
@@ -82,7 +119,9 @@
|
|
|
82
119
|
"query": ["group", "redact"],
|
|
83
120
|
"cli": ["node", "scripts/runs-index.mjs", "--json", "[--group <group>]", "[--redact]"],
|
|
84
121
|
"schema": "runs-index.schema.json",
|
|
85
|
-
"version": "1.
|
|
122
|
+
"version": "1.3.0",
|
|
123
|
+
"remote": "read",
|
|
124
|
+
"risk": "read"
|
|
86
125
|
},
|
|
87
126
|
{
|
|
88
127
|
"id": "run",
|
|
@@ -91,7 +130,9 @@
|
|
|
91
130
|
"query": ["redact"],
|
|
92
131
|
"cli": ["node", "scripts/runs-index.mjs", "--json", "--task-id", "{id}", "[--redact]"],
|
|
93
132
|
"schema": "runs-index.schema.json",
|
|
94
|
-
"version": "1.
|
|
133
|
+
"version": "1.3.0",
|
|
134
|
+
"remote": "read",
|
|
135
|
+
"risk": "read"
|
|
95
136
|
},
|
|
96
137
|
{
|
|
97
138
|
"id": "commands",
|
|
@@ -100,7 +141,9 @@
|
|
|
100
141
|
"query": ["redact"],
|
|
101
142
|
"cli": ["node", "scripts/commands.mjs", "--json"],
|
|
102
143
|
"schema": "command-parameters.schema.json",
|
|
103
|
-
"version": "1.0.0"
|
|
144
|
+
"version": "1.0.0",
|
|
145
|
+
"remote": "read",
|
|
146
|
+
"risk": "read"
|
|
104
147
|
},
|
|
105
148
|
{
|
|
106
149
|
"id": "questions",
|
|
@@ -109,7 +152,9 @@
|
|
|
109
152
|
"query": ["redact"],
|
|
110
153
|
"cli": ["node", "scripts/launch-request.mjs", "questions"],
|
|
111
154
|
"schema": "run-questions.schema.json",
|
|
112
|
-
"version": "1.1.0"
|
|
155
|
+
"version": "1.1.0",
|
|
156
|
+
"remote": "read",
|
|
157
|
+
"risk": "read"
|
|
113
158
|
},
|
|
114
159
|
{
|
|
115
160
|
"id": "issues",
|
|
@@ -125,7 +170,9 @@
|
|
|
125
170
|
"[--max <n>]"
|
|
126
171
|
],
|
|
127
172
|
"schema": "issues.schema.json",
|
|
128
|
-
"version": "1.0.0"
|
|
173
|
+
"version": "1.0.0",
|
|
174
|
+
"remote": "read",
|
|
175
|
+
"risk": "read"
|
|
129
176
|
},
|
|
130
177
|
{
|
|
131
178
|
"id": "worktrees",
|
|
@@ -134,7 +181,9 @@
|
|
|
134
181
|
"query": ["measure", "redact"],
|
|
135
182
|
"cli": ["node", "scripts/worktrees.mjs", "--json", "[--measure]", "[--redact]"],
|
|
136
183
|
"schema": "worktrees.schema.json",
|
|
137
|
-
"version": "1.0.0"
|
|
184
|
+
"version": "1.0.0",
|
|
185
|
+
"remote": "read",
|
|
186
|
+
"risk": "read"
|
|
138
187
|
},
|
|
139
188
|
{
|
|
140
189
|
"id": "launch-spec",
|
|
@@ -143,17 +192,45 @@
|
|
|
143
192
|
"query": ["redact"],
|
|
144
193
|
"cli": ["node", "scripts/launch-request.mjs", "spec"],
|
|
145
194
|
"schema": "launch.schema.json",
|
|
146
|
-
"version": "1.2.0"
|
|
195
|
+
"version": "1.2.0",
|
|
196
|
+
"remote": "read",
|
|
197
|
+
"risk": "read"
|
|
147
198
|
},
|
|
148
199
|
{
|
|
149
200
|
"id": "repos",
|
|
150
201
|
"method": "GET",
|
|
151
202
|
"path": "/v1/repos",
|
|
152
|
-
"query": ["redact"],
|
|
153
|
-
"cli": ["node", "scripts/launch-request.mjs", "repos", "[--redact]"],
|
|
203
|
+
"query": ["redact", "all"],
|
|
204
|
+
"cli": ["node", "scripts/launch-request.mjs", "repos", "[--redact]", "[--all]"],
|
|
154
205
|
"schema": "repos.schema.json",
|
|
155
206
|
"version": "1.1.0",
|
|
156
|
-
"note": "The repositories POST /v1/launch?repo= accepts: configured autopilot repos and registered ones."
|
|
207
|
+
"note": "The repositories POST /v1/launch?repo= accepts: configured autopilot repos and registered ones. ?all=1 adds suggested checkouts from earlier runs and registered entries that are gone.",
|
|
208
|
+
"remote": "read",
|
|
209
|
+
"risk": "read"
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"id": "repo-add",
|
|
213
|
+
"method": "POST",
|
|
214
|
+
"path": "/v1/repos",
|
|
215
|
+
"query": [],
|
|
216
|
+
"body": "repo-request.schema.json",
|
|
217
|
+
"cli": ["node", "scripts/launch-request.mjs", "register-repo", "<path>"],
|
|
218
|
+
"schema": "repo-change.schema.json",
|
|
219
|
+
"version": "1.1.0",
|
|
220
|
+
"note": "Two steps: the preview names the repository, the confirmation stores it in launch-repos.json. Only a git checkout that is neither the home directory nor the root is accepted.",
|
|
221
|
+
"remote": "local-only",
|
|
222
|
+
"risk": "high"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"id": "repo-remove",
|
|
226
|
+
"method": "DELETE",
|
|
227
|
+
"path": "/v1/repos/{id}",
|
|
228
|
+
"query": ["confirm"],
|
|
229
|
+
"schema": "repo-change.schema.json",
|
|
230
|
+
"version": "1.1.0",
|
|
231
|
+
"note": "Two steps: without confirm the preview and a token; with ?confirm=<token> the registered entry is removed. Configured autopilot repositories are not touched.",
|
|
232
|
+
"remote": "local-only",
|
|
233
|
+
"risk": "high"
|
|
157
234
|
},
|
|
158
235
|
{
|
|
159
236
|
"id": "launch",
|
|
@@ -174,7 +251,9 @@
|
|
|
174
251
|
],
|
|
175
252
|
"schema": "launch-plan.schema.json",
|
|
176
253
|
"version": "1.1.0",
|
|
177
|
-
"note": "The server writes the request file (0600, named for a session id it mints) and returns the plan; the CLI plans a file the client wrote. Neither starts the host."
|
|
254
|
+
"note": "The server writes the request file (0600, named for a session id it mints) and returns the plan; the CLI plans a file the client wrote. Neither starts the host.",
|
|
255
|
+
"remote": "launch",
|
|
256
|
+
"risk": "high"
|
|
178
257
|
},
|
|
179
258
|
{
|
|
180
259
|
"id": "answer",
|
|
@@ -192,7 +271,9 @@
|
|
|
192
271
|
"<optionId>[,<optionId>...]"
|
|
193
272
|
],
|
|
194
273
|
"schema": "answer-result.schema.json",
|
|
195
|
-
"version": "1.0.0"
|
|
274
|
+
"version": "1.0.0",
|
|
275
|
+
"remote": "answer",
|
|
276
|
+
"risk": "low"
|
|
196
277
|
},
|
|
197
278
|
{
|
|
198
279
|
"id": "run-log",
|
|
@@ -202,7 +283,9 @@
|
|
|
202
283
|
"cli": ["node", "scripts/run-log.mjs", "{id}", "[--tail <n>]", "--json"],
|
|
203
284
|
"schema": "run-log.schema.json",
|
|
204
285
|
"version": "1.0.0",
|
|
205
|
-
"note": "tail is 1 to 2000, 200 by default. Lines are scrubbed under redact."
|
|
286
|
+
"note": "tail is 1 to 2000, 200 by default. Lines are scrubbed under redact.",
|
|
287
|
+
"remote": "read",
|
|
288
|
+
"risk": "read"
|
|
206
289
|
},
|
|
207
290
|
{
|
|
208
291
|
"id": "resume",
|
|
@@ -225,7 +308,9 @@
|
|
|
225
308
|
],
|
|
226
309
|
"schema": "launch-plan.schema.json",
|
|
227
310
|
"version": "1.1.0",
|
|
228
|
-
"note": "Returns the plan (mode resume) the client spawns; nothing starts the host. Only a run recorded under the unattended log root resumes here (409 not-resumable otherwise, and for a finished or killed run); a run whose session is alive is 409 run-active. answers answers the question the run is parked on before the plan is returned."
|
|
311
|
+
"note": "Returns the plan (mode resume) the client spawns; nothing starts the host. Only a run recorded under the unattended log root resumes here (409 not-resumable otherwise, and for a finished or killed run); a run whose session is alive is 409 run-active. answers answers the question the run is parked on before the plan is returned.",
|
|
312
|
+
"remote": "launch",
|
|
313
|
+
"risk": "high"
|
|
229
314
|
},
|
|
230
315
|
{
|
|
231
316
|
"id": "kill",
|
|
@@ -236,7 +321,9 @@
|
|
|
236
321
|
"cli": ["node", "scripts/run-kill.mjs", "preview|apply", "{id}", "--json"],
|
|
237
322
|
"schema": "kill.schema.json",
|
|
238
323
|
"version": "1.0.0",
|
|
239
|
-
"note": "Two steps: without confirmToken the preview and a token (single use, 120 s, bound to this route and run); with it the kill. 409 confirm-expired, 409 confirm-mismatch. Never deletes the remote branch or the logs."
|
|
324
|
+
"note": "Two steps: without confirmToken the preview and a token (single use, 120 s, bound to this route and run); with it the kill. 409 confirm-expired, 409 confirm-mismatch. Never deletes the remote branch or the logs.",
|
|
325
|
+
"remote": "local-only",
|
|
326
|
+
"risk": "high"
|
|
240
327
|
},
|
|
241
328
|
{
|
|
242
329
|
"id": "gc",
|
|
@@ -253,7 +340,9 @@
|
|
|
253
340
|
],
|
|
254
341
|
"schema": "gc.schema.json",
|
|
255
342
|
"version": "1.0.0",
|
|
256
|
-
"note": "Two steps, the same token flow as kill. Step 2 removes exactly the items step 1 listed."
|
|
343
|
+
"note": "Two steps, the same token flow as kill. Step 2 removes exactly the items step 1 listed.",
|
|
344
|
+
"remote": "local-only",
|
|
345
|
+
"risk": "high"
|
|
257
346
|
},
|
|
258
347
|
{
|
|
259
348
|
"id": "autopilot",
|
|
@@ -262,7 +351,9 @@
|
|
|
262
351
|
"query": ["redact"],
|
|
263
352
|
"cli": ["node", "scripts/autopilot-control.mjs", "status"],
|
|
264
353
|
"schema": "autopilot-status.schema.json",
|
|
265
|
-
"version": "1.0.0"
|
|
354
|
+
"version": "1.0.0",
|
|
355
|
+
"remote": "read",
|
|
356
|
+
"risk": "read"
|
|
266
357
|
},
|
|
267
358
|
{
|
|
268
359
|
"id": "autopilot-off",
|
|
@@ -273,7 +364,9 @@
|
|
|
273
364
|
"cli": ["node", "scripts/autopilot-control.mjs", "off", "[--now]"],
|
|
274
365
|
"schema": "autopilot-off.schema.json",
|
|
275
366
|
"version": "1.0.0",
|
|
276
|
-
"note": "Turning autopilot on stays a terminal command: it picks repositories with the user."
|
|
367
|
+
"note": "Turning autopilot on stays a terminal command: it picks repositories with the user.",
|
|
368
|
+
"remote": "launch",
|
|
369
|
+
"risk": "low"
|
|
277
370
|
},
|
|
278
371
|
{
|
|
279
372
|
"id": "phone-runs",
|
|
@@ -284,8 +377,9 @@
|
|
|
284
377
|
"scope": "read",
|
|
285
378
|
"cli": ["node", "scripts/runs-index.mjs", "--json", "[--group <group>]", "--redact"],
|
|
286
379
|
"schema": "runs-index.schema.json",
|
|
287
|
-
"version": "1.
|
|
288
|
-
"note": "Always redacted; redact=0 is refused."
|
|
380
|
+
"version": "1.3.0",
|
|
381
|
+
"note": "Always redacted; redact=0 is refused.",
|
|
382
|
+
"risk": "read"
|
|
289
383
|
},
|
|
290
384
|
{
|
|
291
385
|
"id": "phone-run",
|
|
@@ -296,8 +390,9 @@
|
|
|
296
390
|
"scope": "read",
|
|
297
391
|
"cli": ["node", "scripts/runs-index.mjs", "--json", "--task-id", "{id}", "--redact"],
|
|
298
392
|
"schema": "runs-index.schema.json",
|
|
299
|
-
"version": "1.
|
|
300
|
-
"note": "Always redacted; redact=0 is refused."
|
|
393
|
+
"version": "1.3.0",
|
|
394
|
+
"note": "Always redacted; redact=0 is refused.",
|
|
395
|
+
"risk": "read"
|
|
301
396
|
},
|
|
302
397
|
{
|
|
303
398
|
"id": "phone-answer",
|
|
@@ -318,7 +413,8 @@
|
|
|
318
413
|
],
|
|
319
414
|
"schema": "answer-result.schema.json",
|
|
320
415
|
"version": "1.0.0",
|
|
321
|
-
"note": "The same refusals as POST /v1/runs/{id}/answer: only an option id the pending question offered is recorded."
|
|
416
|
+
"note": "The same refusals as POST /v1/runs/{id}/answer: only an option id the pending question offered is recorded.",
|
|
417
|
+
"risk": "low"
|
|
322
418
|
},
|
|
323
419
|
{
|
|
324
420
|
"id": "phone-launch",
|
|
@@ -343,7 +439,383 @@
|
|
|
343
439
|
],
|
|
344
440
|
"schema": "launch-plan.schema.json",
|
|
345
441
|
"version": "1.1.0",
|
|
346
|
-
"note": "Off until `phone-devices.mjs launch on`. Writes the request file and returns the redacted plan; nothing starts the host."
|
|
442
|
+
"note": "Off until `phone-devices.mjs launch on`. Writes the request file and returns the redacted plan; nothing starts the host.",
|
|
443
|
+
"risk": "high"
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
"id": "autopilot-on",
|
|
447
|
+
"method": "POST",
|
|
448
|
+
"path": "/v1/autopilot/on",
|
|
449
|
+
"query": [],
|
|
450
|
+
"body": "autopilot-on-request.schema.json",
|
|
451
|
+
"cli": [
|
|
452
|
+
"node",
|
|
453
|
+
"scripts/autopilot-control.mjs",
|
|
454
|
+
"on-preview|on",
|
|
455
|
+
"--repo",
|
|
456
|
+
"<owner/name>",
|
|
457
|
+
"[--repo <owner/name>...]",
|
|
458
|
+
"[--configure-only]"
|
|
459
|
+
],
|
|
460
|
+
"schema": "autopilot-on.schema.json",
|
|
461
|
+
"version": "1.0.0",
|
|
462
|
+
"note": "Two steps, the confirm-token flow of kill: the preview names what is kept, dropped and probed; the confirmation turns the mode on for exactly that selection. Only repositories already in the autopilot config can be selected; adding one, with its sources and label, stays /multi-agent:autopilot-on.",
|
|
463
|
+
"remote": "local-only",
|
|
464
|
+
"risk": "high"
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
"id": "steer",
|
|
468
|
+
"method": "POST",
|
|
469
|
+
"path": "/v1/runs/{id}/steer",
|
|
470
|
+
"query": [],
|
|
471
|
+
"body": "steer-request.schema.json",
|
|
472
|
+
"cli": ["node", "scripts/steer-run.mjs", "<agent-state.json>", "--text", "<instruction>"],
|
|
473
|
+
"schema": "steer.schema.json",
|
|
474
|
+
"version": "1.0.0",
|
|
475
|
+
"note": "Two steps: the text and a preview with a token bound to this run and this text, then the token alone queues it as pendingSteer, applied at the next phase entry. 409 not-steerable for a finished run.",
|
|
476
|
+
"remote": "launch",
|
|
477
|
+
"risk": "high"
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
"id": "activity",
|
|
481
|
+
"method": "GET",
|
|
482
|
+
"path": "/v1/activity",
|
|
483
|
+
"query": [],
|
|
484
|
+
"cli": ["node", "scripts/activity-snapshot.mjs", "--json"],
|
|
485
|
+
"schema": "activity.schema.json",
|
|
486
|
+
"version": "1.1.0",
|
|
487
|
+
"note": "Derived from disk on every call; no field is machine-local, so redact changes nothing.",
|
|
488
|
+
"remote": "read",
|
|
489
|
+
"risk": "read"
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
"id": "activity-stream",
|
|
493
|
+
"method": "GET",
|
|
494
|
+
"path": "/v1/activity/stream",
|
|
495
|
+
"query": [],
|
|
496
|
+
"cli": ["node", "scripts/activity-snapshot.mjs", "--json"],
|
|
497
|
+
"schema": "activity.schema.json",
|
|
498
|
+
"version": "1.1.0",
|
|
499
|
+
"note": "text/event-stream: an `activity` event carrying the document whenever it changes (checked every 2 seconds), a comment line as heartbeat. At most 4 streams at once (429 too-many-streams).",
|
|
500
|
+
"remote": "read",
|
|
501
|
+
"risk": "read"
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
"id": "agent-chat",
|
|
505
|
+
"method": "GET",
|
|
506
|
+
"path": "/v1/agents/{sessionId}/{agentId}/chat",
|
|
507
|
+
"query": ["before", "limit"],
|
|
508
|
+
"cli": [
|
|
509
|
+
"node",
|
|
510
|
+
"scripts/activity-snapshot.mjs",
|
|
511
|
+
"chat",
|
|
512
|
+
"<sessionId>",
|
|
513
|
+
"[<agentId>]",
|
|
514
|
+
"[--before <offset>]",
|
|
515
|
+
"[--limit <n>]"
|
|
516
|
+
],
|
|
517
|
+
"schema": "activity-chat.schema.json",
|
|
518
|
+
"version": "1.1.0",
|
|
519
|
+
"note": "agentId main is the session itself. Refused (403) to any Origin but the server's own page, even an allowed one. limit is 1 to 500, 200 by default; before is the offset the previous page returned.",
|
|
520
|
+
"remote": "read",
|
|
521
|
+
"risk": "read"
|
|
522
|
+
},
|
|
523
|
+
{
|
|
524
|
+
"id": "routines",
|
|
525
|
+
"method": "GET",
|
|
526
|
+
"path": "/v1/routines",
|
|
527
|
+
"query": [],
|
|
528
|
+
"cli": ["node", "scripts/routine-registry.mjs", "list", "--json"],
|
|
529
|
+
"schema": "routines.schema.json",
|
|
530
|
+
"version": "1.1.0",
|
|
531
|
+
"remote": "read",
|
|
532
|
+
"risk": "read"
|
|
533
|
+
},
|
|
534
|
+
{
|
|
535
|
+
"id": "routine-delete",
|
|
536
|
+
"method": "DELETE",
|
|
537
|
+
"path": "/v1/routines/{name}",
|
|
538
|
+
"query": ["confirm"],
|
|
539
|
+
"cli": ["node", "scripts/routine-registry.mjs", "remove", "--name", "{name}"],
|
|
540
|
+
"schema": "routine-delete.schema.json",
|
|
541
|
+
"version": "1.1.0",
|
|
542
|
+
"note": "Two steps: without confirm the preview and a token; with ?confirm=<token> the removal. A shipped command is refused (409 not-removable).",
|
|
543
|
+
"remote": "local-only",
|
|
544
|
+
"risk": "high"
|
|
545
|
+
},
|
|
546
|
+
{
|
|
547
|
+
"id": "jobs",
|
|
548
|
+
"method": "GET",
|
|
549
|
+
"path": "/v1/jobs",
|
|
550
|
+
"query": [],
|
|
551
|
+
"cli": ["node", "scripts/job-launch.mjs", "list"],
|
|
552
|
+
"schema": "office-jobs.schema.json",
|
|
553
|
+
"version": "1.0.0",
|
|
554
|
+
"note": "The jobs the office can hand to someone: the command, the role that does it, team or solo, typed parameters and what it writes outside the machine; available is false when the command is not installed here.",
|
|
555
|
+
"remote": "read",
|
|
556
|
+
"risk": "read"
|
|
557
|
+
},
|
|
558
|
+
{
|
|
559
|
+
"id": "job-start",
|
|
560
|
+
"method": "POST",
|
|
561
|
+
"path": "/v1/jobs",
|
|
562
|
+
"query": [],
|
|
563
|
+
"body": "job-request.schema.json",
|
|
564
|
+
"schema": "job-change.schema.json",
|
|
565
|
+
"version": "1.0.0",
|
|
566
|
+
"note": "Two steps: the preview names the role, repository, exact prompt and what the job writes; the confirmation re-checks that the repository is allowed and starts it with claude --bg under the unattended profile after the workspace trust, agent-guard registration and sandbox checks; claude's own output stays in the server's log. A team job is refused while a run is live in that repository. Never reachable from a phone.",
|
|
567
|
+
"remote": "local-only",
|
|
568
|
+
"risk": "high"
|
|
569
|
+
},
|
|
570
|
+
{
|
|
571
|
+
"id": "stack",
|
|
572
|
+
"method": "GET",
|
|
573
|
+
"path": "/v1/stack",
|
|
574
|
+
"query": ["repo"],
|
|
575
|
+
"cli": ["node", "scripts/stack-toggle.mjs", "status", "--repo", "<path>", "--json"],
|
|
576
|
+
"schema": "stack.schema.json",
|
|
577
|
+
"version": "1.0.0",
|
|
578
|
+
"note": "repo is a name from GET /v1/repos or its path, and must be one of those repositories.",
|
|
579
|
+
"remote": "read",
|
|
580
|
+
"risk": "read"
|
|
581
|
+
},
|
|
582
|
+
{
|
|
583
|
+
"id": "stack-set",
|
|
584
|
+
"method": "POST",
|
|
585
|
+
"path": "/v1/stack",
|
|
586
|
+
"query": [],
|
|
587
|
+
"body": "stack-request.schema.json",
|
|
588
|
+
"cli": [
|
|
589
|
+
"node",
|
|
590
|
+
"scripts/stack-toggle.mjs",
|
|
591
|
+
"set",
|
|
592
|
+
"--repo",
|
|
593
|
+
"<path>",
|
|
594
|
+
"<stack>...",
|
|
595
|
+
"--json"
|
|
596
|
+
],
|
|
597
|
+
"schema": "stack-change.schema.json",
|
|
598
|
+
"version": "1.0.0",
|
|
599
|
+
"note": "Two steps: the planned enabledPlugins (nothing written), then the write. The same writer /multi-agent:stack uses.",
|
|
600
|
+
"remote": "local-only",
|
|
601
|
+
"risk": "high"
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
"id": "ledger",
|
|
605
|
+
"method": "GET",
|
|
606
|
+
"path": "/v1/ledger",
|
|
607
|
+
"query": [],
|
|
608
|
+
"cli": ["node", "scripts/office-ledger.mjs", "--json"],
|
|
609
|
+
"schema": "ledger.schema.json",
|
|
610
|
+
"version": "1.0.0",
|
|
611
|
+
"remote": "read",
|
|
612
|
+
"risk": "read",
|
|
613
|
+
"note": "Estimates at list price from cost-table.json. Each amount names its source (tracker-state, transcript, mixed); a run nobody could measure is not-measured with null numbers, never 0. prices.warning names a price table older than 60 days."
|
|
614
|
+
},
|
|
615
|
+
{
|
|
616
|
+
"id": "system",
|
|
617
|
+
"method": "GET",
|
|
618
|
+
"path": "/v1/system",
|
|
619
|
+
"query": [],
|
|
620
|
+
"cli": ["node", "scripts/system-status.mjs", "--json"],
|
|
621
|
+
"schema": "system-status.schema.json",
|
|
622
|
+
"version": "1.0.0",
|
|
623
|
+
"remote": "read",
|
|
624
|
+
"risk": "read",
|
|
625
|
+
"note": "Numbers only: CPU load, memory, free disk, the pipeline's own sessions and toolkit processes and its log folder size. No path, process argument, user or host name. A value that could not be measured is null."
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
"id": "prune-logs",
|
|
629
|
+
"method": "POST",
|
|
630
|
+
"path": "/v1/prune-logs",
|
|
631
|
+
"query": [],
|
|
632
|
+
"body": "prune-logs-request.schema.json",
|
|
633
|
+
"cli": ["node", "scripts/office-prune.mjs", "preview|apply", "{days}", "--json"],
|
|
634
|
+
"schema": "prune-logs.schema.json",
|
|
635
|
+
"version": "1.0.0",
|
|
636
|
+
"remote": "local-only",
|
|
637
|
+
"risk": "high",
|
|
638
|
+
"note": "Two steps: the preview lists the task log folders older than 7, 30 or 90 days; the confirmation lists them again, refuses with 409 changed when they differ, and prunes only that list (prune-logs.sh --only-from). The audit trail, metrics and counters are never removed; a folder written in the last minutes and a run that can still be resumed are spared."
|
|
639
|
+
},
|
|
640
|
+
{
|
|
641
|
+
"id": "settings",
|
|
642
|
+
"method": "GET",
|
|
643
|
+
"path": "/v1/settings",
|
|
644
|
+
"query": [],
|
|
645
|
+
"cli": ["node", "scripts/office-settings.mjs", "--json"],
|
|
646
|
+
"schema": "office-settings.schema.json",
|
|
647
|
+
"version": "1.0.0",
|
|
648
|
+
"remote": "local-only",
|
|
649
|
+
"risk": "read",
|
|
650
|
+
"note": "The output language, the fable rung and model routing, read from the preferences file."
|
|
651
|
+
},
|
|
652
|
+
{
|
|
653
|
+
"id": "settings-set",
|
|
654
|
+
"method": "POST",
|
|
655
|
+
"path": "/v1/settings",
|
|
656
|
+
"query": [],
|
|
657
|
+
"body": "office-settings-request.schema.json",
|
|
658
|
+
"cli": ["node", "scripts/office-settings.mjs", "set", "{setting}", "{value}", "--json"],
|
|
659
|
+
"schema": "office-settings.schema.json",
|
|
660
|
+
"version": "1.0.0",
|
|
661
|
+
"remote": "local-only",
|
|
662
|
+
"risk": "high",
|
|
663
|
+
"note": "Two steps: the preview names the change, the confirmation runs what /multi-agent:language, /multi-agent:model or /multi-agent:route-on|off runs; one change at a time (429 busy). Route on passes the saved strategy back; widening it stays in the terminal."
|
|
664
|
+
},
|
|
665
|
+
{
|
|
666
|
+
"id": "credentials",
|
|
667
|
+
"method": "GET",
|
|
668
|
+
"path": "/v1/credentials",
|
|
669
|
+
"query": ["probe"],
|
|
670
|
+
"cli": ["node", "scripts/office-credentials.mjs", "--json", "[--probe]"],
|
|
671
|
+
"schema": "office-credentials.schema.json",
|
|
672
|
+
"version": "1.0.0",
|
|
673
|
+
"remote": "local-only",
|
|
674
|
+
"risk": "read",
|
|
675
|
+
"note": "Logical names and verdicts only, never a value. probe=1 makes one cheap authenticated request per configured credential. Renewal is /multi-agent:setup in the terminal. Local only: not even the verdicts go to a phone."
|
|
676
|
+
},
|
|
677
|
+
{
|
|
678
|
+
"id": "memory",
|
|
679
|
+
"method": "GET",
|
|
680
|
+
"path": "/v1/memory",
|
|
681
|
+
"query": [],
|
|
682
|
+
"cli": ["node", "scripts/office-memory.mjs", "--json"],
|
|
683
|
+
"schema": "office-memory.schema.json",
|
|
684
|
+
"version": "1.0.0",
|
|
685
|
+
"remote": "local-only",
|
|
686
|
+
"risk": "read",
|
|
687
|
+
"note": "Counts per repository from the learning loop's stores and the newest learnings, redacted and cut to 120 characters. Local only."
|
|
688
|
+
},
|
|
689
|
+
{
|
|
690
|
+
"id": "run-results",
|
|
691
|
+
"method": "GET",
|
|
692
|
+
"path": "/v1/runs/{id}/results",
|
|
693
|
+
"query": [],
|
|
694
|
+
"cli": ["node", "scripts/run-results.mjs", "{id}", "--json"],
|
|
695
|
+
"schema": "run-results.schema.json",
|
|
696
|
+
"version": "1.0.0",
|
|
697
|
+
"remote": "read",
|
|
698
|
+
"risk": "read"
|
|
699
|
+
},
|
|
700
|
+
{
|
|
701
|
+
"id": "run-evidence",
|
|
702
|
+
"method": "GET",
|
|
703
|
+
"path": "/v1/runs/{id}/evidence/{name}",
|
|
704
|
+
"query": [],
|
|
705
|
+
"cli": ["node", "scripts/run-results.mjs", "{id}", "--evidence", "{name}"],
|
|
706
|
+
"schema": "run-evidence.schema.json",
|
|
707
|
+
"version": "1.0.0",
|
|
708
|
+
"remote": "read",
|
|
709
|
+
"risk": "read"
|
|
710
|
+
},
|
|
711
|
+
{
|
|
712
|
+
"id": "review-verdict",
|
|
713
|
+
"method": "POST",
|
|
714
|
+
"path": "/v1/runs/{id}/review-verdict",
|
|
715
|
+
"query": [],
|
|
716
|
+
"body": "review-verdict-request.schema.json",
|
|
717
|
+
"cli": ["node", "scripts/work-items.mjs", "verdict", "{id}", "[--post]"],
|
|
718
|
+
"schema": "review-verdict.schema.json",
|
|
719
|
+
"version": "1.1.0",
|
|
720
|
+
"note": "Two steps. Only a finished review whose every finding is triaged is previewed (409 review-incomplete); the token is bound to the decision and findingsDigest, and a confirmation after either changed is 409 confirm-mismatch.",
|
|
721
|
+
"remote": "launch",
|
|
722
|
+
"risk": "high"
|
|
723
|
+
},
|
|
724
|
+
{
|
|
725
|
+
"id": "issue-maturity",
|
|
726
|
+
"method": "GET",
|
|
727
|
+
"path": "/v1/issues/{key}/maturity",
|
|
728
|
+
"query": [],
|
|
729
|
+
"cli": ["node", "scripts/work-items.mjs", "maturity", "{key}"],
|
|
730
|
+
"schema": "issue-maturity.schema.json",
|
|
731
|
+
"version": "1.1.0",
|
|
732
|
+
"note": "key is URL-encoded (owner%2Frepo%23N for a GitHub issue).",
|
|
733
|
+
"remote": "read",
|
|
734
|
+
"risk": "read"
|
|
735
|
+
},
|
|
736
|
+
{
|
|
737
|
+
"id": "prs",
|
|
738
|
+
"method": "GET",
|
|
739
|
+
"path": "/v1/prs",
|
|
740
|
+
"query": ["redact"],
|
|
741
|
+
"cli": ["node", "scripts/work-items.mjs", "prs"],
|
|
742
|
+
"schema": "prs.schema.json",
|
|
743
|
+
"version": "1.1.0",
|
|
744
|
+
"note": "One list across every GitHub account gh is logged in to (each asked with its own token in GH_TOKEN) and the configured Bitbucket Server (https, token in the header). A source that cannot be read says why. Redacted, URLs and logins are dropped.",
|
|
745
|
+
"remote": "read",
|
|
746
|
+
"risk": "read"
|
|
747
|
+
},
|
|
748
|
+
{
|
|
749
|
+
"id": "tools",
|
|
750
|
+
"method": "GET",
|
|
751
|
+
"path": "/v1/tools",
|
|
752
|
+
"query": [],
|
|
753
|
+
"cli": ["node", "scripts/toolkit-tools.mjs", "list"],
|
|
754
|
+
"schema": "tools.schema.json",
|
|
755
|
+
"version": "1.0.0",
|
|
756
|
+
"note": "One toolkit MCP child per server, started on first use, closed when the server stops. 409 not-installed when no toolkit is registered.",
|
|
757
|
+
"remote": "read",
|
|
758
|
+
"risk": "read"
|
|
759
|
+
},
|
|
760
|
+
{
|
|
761
|
+
"id": "tool-call",
|
|
762
|
+
"method": "POST",
|
|
763
|
+
"path": "/v1/tools/{name}/call",
|
|
764
|
+
"query": [],
|
|
765
|
+
"body": "tool-call-request.schema.json",
|
|
766
|
+
"cli": ["node", "scripts/toolkit-tools.mjs", "call", "{name}", "<json arguments>"],
|
|
767
|
+
"schema": "tool-call.schema.json",
|
|
768
|
+
"version": "1.0.0",
|
|
769
|
+
"note": "Denied by default: only a readOnlyHint tool whose inputSchema takes no location, outside the web and context families, can be called (403 tool-not-allowed otherwise); a confirm argument is refused; the toolkit child always runs with MULTI_AGENT_UNATTENDED=1 and MCP_TOOLKIT_URL_POLICY=strict; an unknown tool is 404, invalid arguments 400.",
|
|
770
|
+
"remote": "local-only",
|
|
771
|
+
"risk": "high"
|
|
772
|
+
},
|
|
773
|
+
{
|
|
774
|
+
"id": "service-confluence",
|
|
775
|
+
"method": "GET",
|
|
776
|
+
"path": "/v1/services/confluence",
|
|
777
|
+
"query": ["page"],
|
|
778
|
+
"cli": ["node", "scripts/service-read.mjs", "confluence", "<page-id|https-url>"],
|
|
779
|
+
"schema": "service-read.schema.json",
|
|
780
|
+
"version": "1.0.0",
|
|
781
|
+
"remote": "read",
|
|
782
|
+
"risk": "read",
|
|
783
|
+
"note": "A page id, or an https URL on the configured Confluence host only (409 host-not-allowed otherwise, and for any URL when no host is configured). One request at a time (429 busy)."
|
|
784
|
+
},
|
|
785
|
+
{
|
|
786
|
+
"id": "service-crashlytics",
|
|
787
|
+
"method": "GET",
|
|
788
|
+
"path": "/v1/services/crashlytics",
|
|
789
|
+
"query": ["issue"],
|
|
790
|
+
"cli": ["node", "scripts/service-read.mjs", "crashlytics", "<https-issue-url>"],
|
|
791
|
+
"schema": "service-read.schema.json",
|
|
792
|
+
"version": "1.0.0",
|
|
793
|
+
"remote": "read",
|
|
794
|
+
"risk": "read"
|
|
795
|
+
},
|
|
796
|
+
{
|
|
797
|
+
"id": "service-figma",
|
|
798
|
+
"method": "GET",
|
|
799
|
+
"path": "/v1/services/figma",
|
|
800
|
+
"query": ["file", "node"],
|
|
801
|
+
"cli": ["node", "scripts/service-read.mjs", "figma", "<file-key>", "<node-id>"],
|
|
802
|
+
"schema": "service-read.schema.json",
|
|
803
|
+
"version": "1.0.0",
|
|
804
|
+
"note": "Rendered over the Figma REST API with the stored token; the Figma MCP is never called.",
|
|
805
|
+
"remote": "read",
|
|
806
|
+
"risk": "read"
|
|
807
|
+
},
|
|
808
|
+
{
|
|
809
|
+
"id": "permissions",
|
|
810
|
+
"method": "GET",
|
|
811
|
+
"path": "/v1/permissions",
|
|
812
|
+
"query": [],
|
|
813
|
+
"cli": ["node", "scripts/contract-server.mjs"],
|
|
814
|
+
"schema": "permissions.schema.json",
|
|
815
|
+
"version": "1.0.0",
|
|
816
|
+
"note": "available is false today: the host records no pending permission prompt another process can read.",
|
|
817
|
+
"remote": "read",
|
|
818
|
+
"risk": "read"
|
|
347
819
|
}
|
|
348
820
|
],
|
|
349
821
|
"fixtures": {
|
|
@@ -361,5 +833,12 @@
|
|
|
361
833
|
"error-unauthorized.json": "contract-error.schema.json",
|
|
362
834
|
"error-invalid-request.json": "contract-error.schema.json",
|
|
363
835
|
"error-unsigned.json": "contract-error.schema.json"
|
|
836
|
+
},
|
|
837
|
+
"page": {
|
|
838
|
+
"path": "/office",
|
|
839
|
+
"auth": "none for the page; the token reaches it through a one-time code in the URL fragment (POST /office/code with the bearer and no Origin mints it, valid 10 seconds and one use), traded at POST /office/exchange from the page's own origin only",
|
|
840
|
+
"source": "MA_OFFICE_PAGE, else prefs.global.office.page, else the installed office/index.html (~/.claude/office, pipeline/office in a checkout); 404 when none exists",
|
|
841
|
+
"csp": "default-src 'none'; script-src and style-src a per-response nonce; img-src 'self' data:; connect-src 'self'; frame-ancestors 'none'; base-uri 'none'; form-action 'none'",
|
|
842
|
+
"assets": "GET /office/assets/<name>.png without a token: a sprite from the assets directory beside the page; the name is a plain file name (letters, digits, underscore), the file a PNG of at most 256 KiB whose real path is directly in that directory; anything else is 404, a query 400"
|
|
364
843
|
}
|
|
365
844
|
}
|