overlord-cli 0.2608210739.0 → 0.2608211014.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/dist/connectors/AGENTS.md +6 -5
- package/dist/connectors/VERSION +1 -1
- package/dist/connectors/adapters/antigravity/plugin.json +1 -1
- package/dist/connectors/adapters/claude/.claude-plugin/plugin.json +1 -1
- package/dist/connectors/adapters/claude/CAPABILITIES.md +6 -6
- package/dist/connectors/adapters/claude/README.md +2 -1
- package/dist/connectors/adapters/claude/conformance-manifest.yaml +1 -1
- package/dist/connectors/adapters/claude/harness-capabilities.yaml +13 -10
- package/dist/connectors/adapters/codex/.codex-plugin/plugin.json +1 -1
- package/dist/connectors/adapters/codex/CAPABILITIES.md +3 -3
- package/dist/connectors/adapters/codex/README.md +1 -1
- package/dist/connectors/adapters/codex/conformance-manifest.yaml +1 -1
- package/dist/connectors/adapters/codex/harness-capabilities.yaml +4 -2
- package/dist/connectors/adapters/cursor/.cursor-plugin/plugin.json +1 -1
- package/dist/connectors/adapters/cursor/CAPABILITIES.md +2 -2
- package/dist/connectors/adapters/cursor/README.md +2 -2
- package/dist/connectors/adapters/cursor/conformance-manifest.yaml +1 -1
- package/dist/connectors/adapters/cursor/harness-capabilities.yaml +3 -2
- package/dist/connectors/adapters/pi/CAPABILITIES.md +2 -2
- package/dist/connectors/adapters/pi/conformance-manifest.yaml +1 -1
- package/dist/connectors/adapters/pi/harness-capabilities.yaml +2 -1
- package/dist/connectors/core/overlord-mission/reference/cli.md +1 -1
- package/dist/connectors/core/overlord-mission/reference/mcp.md +2 -2
- package/dist/connectors/core/scripts/overlord-mcp.mjs +215 -2
- package/dist/index.js +1076 -1343
- package/dist/index.js.map +4 -4
- package/package.json +1 -1
|
@@ -80,11 +80,12 @@ stale. `yarn connectors:check` runs it alongside the connector version check.
|
|
|
80
80
|
|
|
81
81
|
### The rendered agent-session hook
|
|
82
82
|
|
|
83
|
-
Mechanical observe / decide / inject is **not a live Overlord connector path**. Latch
|
|
84
|
-
|
|
85
|
-
adapters must not register `ovld agent-session` hooks. Channel 1
|
|
86
|
-
(follow-up capture, touched-file attribution, Stop delivery reminder).
|
|
87
|
-
|
|
83
|
+
Mechanical observe / decide / inject is **not a live Overlord connector path**. Latch v2
|
|
84
|
+
removed the CLI event and send surface that previously backed it, and Overlord does not
|
|
85
|
+
emulate that protocol. New adapters must not register `ovld agent-session` hooks. Channel 1
|
|
86
|
+
stays on `ovld protocol` (follow-up capture, touched-file attribution, Stop delivery reminder).
|
|
87
|
+
A future conversation surface must be a native Latch v2 Conversation Hub client. The rest of
|
|
88
|
+
this section documents leftover CLI runtime and historical fixtures.
|
|
88
89
|
|
|
89
90
|
Do not write a per-adapter shell script for agent-session traffic. One core script,
|
|
90
91
|
`connectors/core/scripts/agent-session-hook.sh`, is rendered per adapter at `ovld agent-setup`
|
package/dist/connectors/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.3.
|
|
1
|
+
0.3.33
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://antigravity.google/schemas/v1/plugin.json",
|
|
3
3
|
"name": "overlord",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.33",
|
|
5
5
|
"description": "Chat-driven access to Overlord mission protocol workflows through skills and MCP.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Cooperativ",
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
**Harness version verified** `2.1.227` · **range** `>=2.1.0` · **scheme** `semver`
|
|
8
8
|
|
|
9
|
-
**Descriptor digest** `
|
|
9
|
+
**Descriptor digest** `15ea657c37363b74db085466a97f38db044892abf2e28465b1c7bcd6cc4ce927`
|
|
10
10
|
|
|
11
11
|
> The tier is derived from passing fixtures, never authored. `unsupported` means the harness
|
|
12
12
|
> cannot do it — do not attempt it. `not-implemented` means it is buildable and unbuilt: that is
|
|
@@ -63,15 +63,15 @@ Per-command `timeout` in seconds with no documented ceiling. Omitting `decision`
|
|
|
63
63
|
|
|
64
64
|
### Capability notes
|
|
65
65
|
|
|
66
|
-
- **`observe.prompt`** — Two registrations used to ride UserPromptSubmit.
|
|
66
|
+
- **`observe.prompt`** — Two registrations used to ride UserPromptSubmit. Latch v2 removed the CLI event stream that previously owned mechanical agent-session observation. This capability grades the protocol follow-up hook that posts `user_follow_up` mission events; that Channel 1 path stays installed.
|
|
67
67
|
- **`observe.toolCall`** — Deliberately unregistered in Phase 1. PreToolUse is decision-capable: registering it for observation alone would put a script in front of every tool call for no benefit a PostToolUse registration does not already provide, while inheriting the blast radius of the decision path. It lands with the codecs that can actually use it.
|
|
68
|
-
- **`observe.toolResult`** —
|
|
68
|
+
- **`observe.toolResult`** — Latch v2 removed the CLI event stream that previously owned mechanical tool-result observation. The protocol PostToolUse hook still records touched files for delivery attribution.
|
|
69
69
|
- **`observe.fileEdit`** — The shipped PostToolUse hook that records touched files into the per-session log used by `deliver` for change attribution remains registered. Mechanical agent-session observation is no longer a live Overlord path.
|
|
70
|
-
- **`observe.sessionLifecycle`** —
|
|
71
|
-
- **`decide.universal`** —
|
|
70
|
+
- **`observe.sessionLifecycle`** — Latch v2 removed the CLI event stream that previously owned session observation. There is no matching Overlord registration.
|
|
71
|
+
- **`decide.universal`** — Latch v2 removed the CLI pending-input and send surface. The native Claude prompt owns approvals; Overlord exposes no remote decision control.
|
|
72
72
|
- **`answer.structuredQuestion`** — Elicitation/ElicitationResult hook events exist in the binary but their request and response shapes were not read. Write the fixture before relying on them.
|
|
73
73
|
- **`answer.persistentAllow`** — Structurally available, deliberately unbuilt. A standing permission grant needs its own design, confirmation, audit language, and RBAC review before any remote surface offers it.
|
|
74
|
-
- **`inject.midTurn`** — Session-input injection
|
|
74
|
+
- **`inject.midTurn`** — Session-input injection is not a live Overlord connector path. A future conversation surface must use the native Latch v2 Conversation Hub protocol.
|
|
75
75
|
- **`inject.turnBoundary`** — Turn-boundary injection moved off Overlord connectors. The protocol Stop hook still reminds the agent to deliver when needed.
|
|
76
76
|
- **`inject.nextTurn`** — No distinct next-turn-only path yet; turn-boundary Stop covers the portable fallback.
|
|
77
77
|
- **`terminal.statusSurface`** — `statusMessage` is static install-time configuration with no per-request interpolation and no session-binding predicate, so it renders in unbound sessions too. It must be worded as an option, never as an instruction.
|
|
@@ -87,7 +87,8 @@ This connector is intentionally reviewable against the four connector layers in
|
|
|
87
87
|
- `commands/*.md` — slash commands for session routing, objective discussion, mission creation, and work recording.
|
|
88
88
|
- `hooks/hooks.json` + `scripts/*.sh` — Channel 1 mission follow-up (`UserPromptSubmit`),
|
|
89
89
|
touched-file capture (`PostToolUse`), and Stop delivery reminder. Mechanical harness
|
|
90
|
-
observation, permission, and injection are
|
|
90
|
+
observation, permission, and injection are not live Overlord connector paths under Latch v2;
|
|
91
|
+
native Claude prompts retain control.
|
|
91
92
|
- `userConfig` for `overlord_url` and `user_token`; the hook scripts use the `ovld protocol` CLI and pass the plugin's USER_TOKEN to that CLI as `Overlord_USER_TOKEN`.
|
|
92
93
|
- `conformance-manifest.yaml` — connector conformance declaration for the Overlord contract.
|
|
93
94
|
- `prompt-wrapper.md` — Claude launch context-file guidance.
|
|
@@ -15,7 +15,7 @@ connector:
|
|
|
15
15
|
harnessCapabilities:
|
|
16
16
|
path: connectors/adapters/claude/harness-capabilities.yaml
|
|
17
17
|
schemaVersion: 1
|
|
18
|
-
digest: "
|
|
18
|
+
digest: "15ea657c37363b74db085466a97f38db044892abf2e28465b1c7bcd6cc4ce927"
|
|
19
19
|
capabilities:
|
|
20
20
|
- followUpHook
|
|
21
21
|
- permissionHook
|
|
@@ -50,9 +50,10 @@ capabilities:
|
|
|
50
50
|
native: UserPromptSubmit
|
|
51
51
|
fixtures: [fixtures/normalize-user-prompt-submit.json]
|
|
52
52
|
notes: >-
|
|
53
|
-
Two registrations used to ride UserPromptSubmit.
|
|
54
|
-
|
|
55
|
-
`user_follow_up` mission events; that Channel 1 path
|
|
53
|
+
Two registrations used to ride UserPromptSubmit. Latch v2 removed the CLI event stream
|
|
54
|
+
that previously owned mechanical agent-session observation. This capability grades the
|
|
55
|
+
protocol follow-up hook that posts `user_follow_up` mission events; that Channel 1 path
|
|
56
|
+
stays installed.
|
|
56
57
|
observe.toolCall:
|
|
57
58
|
status: not-implemented
|
|
58
59
|
native: PreToolUse
|
|
@@ -67,8 +68,9 @@ capabilities:
|
|
|
67
68
|
native: PostToolUse
|
|
68
69
|
trackedAs: latch-engine
|
|
69
70
|
notes: >-
|
|
70
|
-
|
|
71
|
-
hook still records touched files for delivery
|
|
71
|
+
Latch v2 removed the CLI event stream that previously owned mechanical tool-result
|
|
72
|
+
observation. The protocol PostToolUse hook still records touched files for delivery
|
|
73
|
+
attribution.
|
|
72
74
|
observe.fileEdit:
|
|
73
75
|
status: supported
|
|
74
76
|
native: PostToolUse
|
|
@@ -84,8 +86,8 @@ capabilities:
|
|
|
84
86
|
native: SessionStart
|
|
85
87
|
trackedAs: latch-engine
|
|
86
88
|
notes: >-
|
|
87
|
-
|
|
88
|
-
registration.
|
|
89
|
+
Latch v2 removed the CLI event stream that previously owned session observation. There
|
|
90
|
+
is no matching Overlord registration.
|
|
89
91
|
decide.shell:
|
|
90
92
|
status: not-implemented
|
|
91
93
|
native: PermissionRequest
|
|
@@ -107,8 +109,8 @@ capabilities:
|
|
|
107
109
|
native: PermissionRequest
|
|
108
110
|
trackedAs: latch-engine
|
|
109
111
|
notes: >-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
+
Latch v2 removed the CLI pending-input and send surface. The native Claude prompt owns
|
|
113
|
+
approvals; Overlord exposes no remote decision control.
|
|
112
114
|
answer.structuredQuestion:
|
|
113
115
|
status: unverified
|
|
114
116
|
native: Elicitation
|
|
@@ -128,7 +130,8 @@ capabilities:
|
|
|
128
130
|
native: asyncRewake
|
|
129
131
|
trackedAs: latch-engine
|
|
130
132
|
notes: >-
|
|
131
|
-
Session-input injection
|
|
133
|
+
Session-input injection is not a live Overlord connector path. A future conversation
|
|
134
|
+
surface must use the native Latch v2 Conversation Hub protocol.
|
|
132
135
|
inject.turnBoundary:
|
|
133
136
|
status: not-implemented
|
|
134
137
|
native: Stop
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
**Harness version verified** `0.147.0` · **range** `>=0.124.0` · **scheme** `semver`
|
|
8
8
|
|
|
9
|
-
**Descriptor digest** `
|
|
9
|
+
**Descriptor digest** `9743c504d8d11ffec193751273102d9a1277293e55f43aef8914da4b05ddfa23`
|
|
10
10
|
|
|
11
11
|
> The tier is derived from passing fixtures, never authored. `unsupported` means the harness
|
|
12
12
|
> cannot do it — do not attempt it. `not-implemented` means it is buildable and unbuilt: that is
|
|
@@ -64,9 +64,9 @@ Per-hook timeouts in seconds; the documentation gives a 600-second default. The
|
|
|
64
64
|
|
|
65
65
|
### Capability notes
|
|
66
66
|
|
|
67
|
-
- **`observe.toolCall`** —
|
|
67
|
+
- **`observe.toolCall`** — Latch v2 removed the CLI event stream that previously owned mechanical observation. Overlord exposes no replacement until it has a native Conversation Hub client.
|
|
68
68
|
- **`observe.fileEdit`** — The lifecycle PostToolUse registration pipes Codex's native payload to `ovld protocol record-touched`, which appends normalized changed paths to the per-session attribution log read by `deliver`. It is intentionally separate from mechanical agent-session observation, which remains owned by Latch.
|
|
69
|
-
- **`decide.universal`** —
|
|
69
|
+
- **`decide.universal`** — Latch v2 removed the CLI pending-input and send surface. The native Codex prompt owns approvals; Overlord exposes no remote decision control.
|
|
70
70
|
- **`answer.structuredQuestion`** — `codex app-server` exposes ToolRequestUserInput with per-option label/description and an autoResolutionMs — an ACP-shaped structured question in everything but name. It is unreachable until the single-subscriber question is settled.
|
|
71
71
|
- **`inject.midTurn`** — ThreadInjectItems/TurnSteer exist on the experimental app-server surface only. The binary carries "expected exactly one client subscribed to the thread, found {}", so if the TUI is that one client Overlord cannot also subscribe and this path is closed.
|
|
72
72
|
|
|
@@ -72,7 +72,7 @@ This connector is intentionally reviewable against the four connector layers in
|
|
|
72
72
|
- `.codex-plugin/hooks.json` — Channel 1 `UserPromptSubmit` follow-up capture through
|
|
73
73
|
`ovld protocol hook-event` and `PostToolUse` delivery attribution through
|
|
74
74
|
`ovld protocol record-touched`. Mechanical harness observation, permission, and injection
|
|
75
|
-
are
|
|
75
|
+
are not live Overlord connector paths under Latch v2; native Codex prompts retain control.
|
|
76
76
|
- `.mcp.json` + `scripts/overlord-mcp.mjs` — MCP bridge to common `ovld protocol` operations. The shim is **generated**: it is rendered from `connectors/core/scripts/overlord-mcp.mjs` at setup time with the adapter key substituted, and there is no copy in this directory to edit.
|
|
77
77
|
- `assets/` — branded plugin assets for Codex install surfaces.
|
|
78
78
|
- `conformance-manifest.yaml` — connector conformance declaration for the Overlord contract.
|
|
@@ -15,7 +15,7 @@ connector:
|
|
|
15
15
|
harnessCapabilities:
|
|
16
16
|
path: connectors/adapters/codex/harness-capabilities.yaml
|
|
17
17
|
schemaVersion: 1
|
|
18
|
-
digest: "
|
|
18
|
+
digest: "9743c504d8d11ffec193751273102d9a1277293e55f43aef8914da4b05ddfa23"
|
|
19
19
|
capabilities:
|
|
20
20
|
- followUpHook
|
|
21
21
|
- permissionHook
|
|
@@ -56,7 +56,8 @@ capabilities:
|
|
|
56
56
|
native: PreToolUse
|
|
57
57
|
trackedAs: latch-engine
|
|
58
58
|
notes: >-
|
|
59
|
-
|
|
59
|
+
Latch v2 removed the CLI event stream that previously owned mechanical observation.
|
|
60
|
+
Overlord exposes no replacement until it has a native Conversation Hub client.
|
|
60
61
|
observe.toolResult:
|
|
61
62
|
status: not-implemented
|
|
62
63
|
native: PostToolUse
|
|
@@ -98,7 +99,8 @@ capabilities:
|
|
|
98
99
|
native: PermissionRequest
|
|
99
100
|
trackedAs: latch-engine
|
|
100
101
|
notes: >-
|
|
101
|
-
|
|
102
|
+
Latch v2 removed the CLI pending-input and send surface. The native Codex prompt owns
|
|
103
|
+
approvals; Overlord exposes no remote decision control.
|
|
102
104
|
answer.structuredQuestion:
|
|
103
105
|
status: unverified
|
|
104
106
|
native: ToolRequestUserInput
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
**Harness version verified** `2026.08.04-aaa8809` · **range** `>=2026.07.01` · **scheme** `calendar`
|
|
8
8
|
|
|
9
|
-
**Descriptor digest** `
|
|
9
|
+
**Descriptor digest** `48b805b1d1cd28ccde10a839b0eb2a85eb237d82b46e3d54b21f671997b0c870`
|
|
10
10
|
|
|
11
11
|
> The tier is derived from passing fixtures, never authored. `unsupported` means the harness
|
|
12
12
|
> cannot do it — do not attempt it. `not-implemented` means it is buildable and unbuilt: that is
|
|
@@ -65,7 +65,7 @@ The 60-second per-script default is an order of magnitude below any window sized
|
|
|
65
65
|
|
|
66
66
|
### Capability notes
|
|
67
67
|
|
|
68
|
-
- **`observe.toolCall`** —
|
|
68
|
+
- **`observe.toolCall`** — Latch v2 removed the CLI event stream that previously owned mechanical observation. Native Cursor permission prompts own approvals; Overlord exposes no replacement until it has a native Conversation Hub client.
|
|
69
69
|
- **`observe.fileEdit`** — Carried on postToolUse rather than on Cursor's dedicated `afterFileEdit`, for the same reason Claude carries it on PostToolUse: one registration then covers every mutation, including the ones a shell command makes, and the split into `file.edited` happens where the normalized tool name is already known. `afterFileEdit` remains available if a future need appears for edit-level granularity the tool-level event cannot express.
|
|
70
70
|
- **`observe.sessionLifecycle`** — Cursor fires the event, but no shipped code in this repo has ever read one of its payloads, so the field carrying the equivalent of Claude's `source` is unknown. A codec rule on a guessed path would not fail loudly — an unresolved path yields a card with no detail — so this stays unbuilt until a real payload is recorded, rather than being claimed on an assumed field name.
|
|
71
71
|
- **`inject.turnBoundary`** — `stop` returns `followup_message` for the protocol delivery reminder. Session-input injection is no longer a live Overlord path.
|
|
@@ -77,7 +77,7 @@ This connector is intentionally reviewable against the four connector layers in
|
|
|
77
77
|
- `commands/*.md` — slash commands for session routing, objective discussion, mission creation, and work recording.
|
|
78
78
|
- `hooks/overlord-user-prompt-submit.sh` — `beforeSubmitPrompt` follow-up capture through `ovld protocol hook-event`.
|
|
79
79
|
- `hooks/overlord-post-tool-use.sh` — records `postToolUse` file edits and shell-mediated changes for exact per-session delivery attribution.
|
|
80
|
-
- `hooks/overlord-stop.sh` — checks pending delivery through `ovld protocol hook-event`; when needed, it asks Cursor to continue once so the agent can finish delivery. Mechanical harness observation, permission, and injection are
|
|
80
|
+
- `hooks/overlord-stop.sh` — checks pending delivery through `ovld protocol hook-event`; when needed, it asks Cursor to continue once so the agent can finish delivery. Mechanical harness observation, permission, and injection are not live Overlord connector paths under Latch v2; native Cursor prompts retain control.
|
|
81
81
|
- `rules/overlord-local.mdc` — always-on workflow rules for Cursor sessions.
|
|
82
82
|
- `mcp.json` + `scripts/overlord-mcp.mjs` — MCP bridge to common `ovld protocol` operations. The shim is **generated**: it is rendered from `connectors/core/scripts/overlord-mcp.mjs` at setup time with the adapter key substituted, and there is no copy in this directory to edit.
|
|
83
83
|
- `conformance-manifest.yaml` — connector conformance declaration for the Overlord contract.
|
|
@@ -92,4 +92,4 @@ The shared Connector Core source lives at `connectors/core/overlord-mission`. `o
|
|
|
92
92
|
|
|
93
93
|
See the [adapter capability matrix](../../README.md#adapter-capability-matrix) for how this compares across adapters.
|
|
94
94
|
|
|
95
|
-
Cursor hook execution is fail-open by default, so Overlord protocol-hook failures do not strand the agent. Permission and question prompts
|
|
95
|
+
Cursor hook execution is fail-open by default, so Overlord protocol-hook failures do not strand the agent. Permission and question prompts remain with Cursor; Overlord has no Latch v2 conversation client yet.
|
|
@@ -15,7 +15,7 @@ connector:
|
|
|
15
15
|
harnessCapabilities:
|
|
16
16
|
path: connectors/adapters/cursor/harness-capabilities.yaml
|
|
17
17
|
schemaVersion: 1
|
|
18
|
-
digest: "
|
|
18
|
+
digest: "48b805b1d1cd28ccde10a839b0eb2a85eb237d82b46e3d54b21f671997b0c870"
|
|
19
19
|
capabilities:
|
|
20
20
|
- followUpHook
|
|
21
21
|
- stopHook
|
|
@@ -58,8 +58,9 @@ capabilities:
|
|
|
58
58
|
native: preToolUse
|
|
59
59
|
trackedAs: latch-engine
|
|
60
60
|
notes: >-
|
|
61
|
-
|
|
62
|
-
prompts own approvals
|
|
61
|
+
Latch v2 removed the CLI event stream that previously owned mechanical observation.
|
|
62
|
+
Native Cursor permission prompts own approvals; Overlord exposes no replacement until it
|
|
63
|
+
has a native Conversation Hub client.
|
|
63
64
|
observe.toolResult:
|
|
64
65
|
status: supported
|
|
65
66
|
native: postToolUse
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
**Harness version verified** `0.83.0` · **range** `>=0.83.0 <0.84.0` · **scheme** `semver`
|
|
8
8
|
|
|
9
|
-
**Descriptor digest** `
|
|
9
|
+
**Descriptor digest** `0166eb18d8913ea41704d3aa9afbf9164d994ae16089927e38f681be5dd005ff`
|
|
10
10
|
|
|
11
11
|
> The tier is derived from passing fixtures, never authored. `unsupported` means the harness
|
|
12
12
|
> cannot do it — do not attempt it. `not-implemented` means it is buildable and unbuilt: that is
|
|
@@ -64,7 +64,7 @@ Remote decision hold moved to Latch. Pi has no native prompt; Overlord no longer
|
|
|
64
64
|
|
|
65
65
|
- **`observe.prompt`** — The shipped extension captures `input` and posts follow-up activity through `ovld protocol hook-event`. Mechanical agent-session observation is not a live path.
|
|
66
66
|
- **`decide.universal`** — Remote tool-call decisions moved to Latch. Pi no longer intercepts tools on the Overlord connector path.
|
|
67
|
-
- **`inject.midTurn`** — Session-input injection
|
|
67
|
+
- **`inject.midTurn`** — Session-input injection is not a live Overlord connector path. A future conversation surface must use the native Latch v2 Conversation Hub protocol.
|
|
68
68
|
|
|
69
69
|
## Hazards
|
|
70
70
|
|
|
@@ -15,7 +15,7 @@ connector:
|
|
|
15
15
|
harnessCapabilities:
|
|
16
16
|
path: connectors/adapters/pi/harness-capabilities.yaml
|
|
17
17
|
schemaVersion: 1
|
|
18
|
-
digest: "
|
|
18
|
+
digest: "0166eb18d8913ea41704d3aa9afbf9164d994ae16089927e38f681be5dd005ff"
|
|
19
19
|
capabilities:
|
|
20
20
|
- followUpHook
|
|
21
21
|
- nativeResume
|
|
@@ -103,7 +103,8 @@ capabilities:
|
|
|
103
103
|
native: sendUserMessage(deliverAs=steer)
|
|
104
104
|
trackedAs: latch-engine
|
|
105
105
|
notes: >-
|
|
106
|
-
Session-input injection
|
|
106
|
+
Session-input injection is not a live Overlord connector path. A future conversation
|
|
107
|
+
surface must use the native Latch v2 Conversation Hub protocol.
|
|
107
108
|
inject.turnBoundary:
|
|
108
109
|
status: not-implemented
|
|
109
110
|
native: sendUserMessage(deliverAs=followUp)
|
|
@@ -181,7 +181,7 @@ When creating missions from within a repository:
|
|
|
181
181
|
- Add objectives to the same mission when each prompt is a sequential step toward the same feature or goal; use `ovld protocol add-objectives --mission-id <mission_id> --objectives-json '[{"objective":"..."}]'`.
|
|
182
182
|
- `create` and `prompt` require `--objectives-json` or `--objectives-file` with an ordered array of `{ "objective": "...", "title": "...", "autoAdvance": true }` objects. A single objective is just an array with one item. `--auto-advance` / `--no-auto-advance` map each opted-in item to authoritative Run Queue membership (default off).
|
|
183
183
|
- `add-objectives` uses the same per-item `autoAdvance` field and `--auto-advance` / `--no-auto-advance` mapping.
|
|
184
|
-
- Use `ovld protocol queue-objective --objective-id <id> [--queue <id|name>] [--after <queued-entry|objective>|--front|--position <rank>]
|
|
184
|
+
- Use `ovld protocol run-queue [--project-id <id|slug|name>|--objective-id <id>|--mission-id <id>] [--queue <id|name>]` to inspect live queues. Entry operations use `queue-objective --objective-id <id> [--queue <id|name>] [--after <queued-entry|objective>|--front|--position <rank>]`, `dequeue-objective --objective-id <id>`, and `reorder-run-queue --queue <id|name> --ordered-entries-json <json>`; they require `execution_request:create`. Queue-definition operations use `create-run-queue`, `update-run-queue`, `delete-run-queue`, and `reorder-project-run-queues`; they require `project:update` and therefore a full-scope token.
|
|
185
185
|
- `ovld protocol update-objective --objective-id <id> --auto-advance` / `--no-auto-advance` is retained as an enqueue/dequeue compatibility mapping. `autoAdvance` is deprecated and derived from `queueEntry`; legacy writes retire next release and column removal requires a later contract bump.
|
|
186
186
|
- `record-work` creates exactly one **completed** objective from a single `--objective` (or positional / an `objective` field in `--payload-json`) plus a `--summary` and file-change data — it does not take `--objectives-json`. See [record-work.md](record-work.md).
|
|
187
187
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# MCP And API Defaults
|
|
2
2
|
|
|
3
|
-
- Every mission-scoped tool accepts `objectiveId` (hosted MCP) / `objective_id` (local shim) alongside `missionId`, taking an objective UUID or a display id such as `coo:756.k7xm`. A display id already names its mission, so `missionId` is **optional** whenever one is supplied — `overlord_load_mission_context`, `overlord_attach_session`, `overlord_update_session`, `overlord_deliver_session`, `overlord_add_artifact`, `overlord_add_objectives`, and `overlord_update_artifact` all resolve the mission from it. An objective **UUID** names no mission and still needs `missionId`. On `overlord_load_mission_context` and `overlord_attach_session` the objective is also a
|
|
3
|
+
- Every mission-scoped tool accepts `objectiveId` (hosted MCP) / `objective_id` (local shim) alongside `missionId`, taking an objective UUID or a display id such as `coo:756.k7xm`. A display id already names its mission, so `missionId` is **optional** whenever one is supplied — `overlord_load_mission_context`, `overlord_attach_session`, `overlord_update_session`, `overlord_deliver_session`, `overlord_add_artifact`, `overlord_add_objectives`, and `overlord_update_artifact` all resolve the mission from it. An objective **UUID** names no mission and still needs `missionId`. On `overlord_load_mission_context` and `overlord_attach_session` the objective is also a _pin_: it selects which objective to read or execute, which is the only way to address a mission that is running objectives in parallel.
|
|
4
4
|
- API requires `agentIdentifier` and `connectionMethod` on attach/connect/prompt. Connector adapters set the appropriate agent identifier; the CLI uses `cli` as the connection method, and the MCP tool defaults to `mcp`. Override with `--agent` / `--method` when calling from a different runtime.
|
|
5
5
|
- Hosted Overlord MCP (`/mcp`) uses camelCase JSON keys (`missionId`, `sessionKey`, `deviceFingerprint`) matching `POST /api/protocol/*` bodies. The local shim uses snake_case keys mapped to CLI flags (`mission_id`, `session_key`, `device_fingerprint`). Some local-only operations (`connect`, `revert`, `prompt`, runner queue tools) intentionally remain out of hosted MCP for now.
|
|
6
6
|
- `discover_project` accepts an explicit project id (`projectId` hosted, `project_id` local shim) or a working directory (`workingDirectory` hosted, `working_directory` local shim). When resolving by directory and a device fingerprint is available, include `deviceFingerprint` / `device_fingerprint` so resource-directory matching prefers the current device.
|
|
@@ -10,6 +10,6 @@
|
|
|
10
10
|
- `overlord_record_work` (hosted MCP) and `ovld protocol record-work` (CLI) record already-completed chat work as a single review-column mission with a completed objective, file-change rationales, and the standard Gemini delivery summary — no `attach`/`deliver`. Hosted MCP requires `projectId` (it never chooses a project implicitly); the CLI resolves the project from the working directory or `--project-id`. The submission format is in [record-work.md](record-work.md). The route is `POST /api/protocol/record-work`.
|
|
11
11
|
- `overlord_add_artifact` (hosted MCP) and `ovld protocol add-artifact` (CLI) create a mission artifact during a turn without delivering. Required: `type` / `--type`, `label` / `--label`, mission scope (`missionId` / `--mission-id`, or an objective display id as `objectiveId` / `--objective-id`), plus at least one of `contentText` / `--content-text`/`--content-text-file` or `externalUrl` / `--external-url`. Optional `sessionKey` / `--session-key` stamps session/objective provenance; `objectiveId` / `--objective-id` does the same when there is no live session, and the session key wins if both are given. Same service as REST `POST /api/missions/:id/artifacts`. The route is `POST /api/protocol/add-artifact`.
|
|
12
12
|
- `overlord_update_artifact` (hosted MCP) and `ovld protocol update-artifact` (CLI) revise an existing mission artifact's label, Markdown content, and/or HTTP(S) URL in place. Required: `artifactId` / `--artifact-id`, `expectedRevision` / `--expected-revision`, and mission scope (`missionId` / `--mission-id`, or an objective display id as `objectiveId` / `--objective-id`). Provide at least one editable field. No session key is required. Same service as REST `PATCH /api/missions/:id/artifacts/:artifactId`. The route is `POST /api/protocol/update-artifact`.
|
|
13
|
-
- `overlord_queue_objective` accepts `objectiveId`, optional `queue` / `after`, and `remove
|
|
13
|
+
- Run Queue MCP stays a thin Protocol surface: `overlord_list_run_queues` reads compact/full state; `overlord_reorder_run_queue` atomically replaces one queue's complete entry order; and `overlord_queue_objective` accepts `objectiveId`, optional `queue` / `after` / `front` / `position`, and `remove`. `overlord_manage_run_queue` creates, updates, deletes, and reorders queue definitions. Entry operations use `execution_request:create`; definition operations use `project:update`, so they require a full-scope token. `overlord_create_mission` / `overlord_add_objectives` optional `autoAdvance`, `overlord_update_objective.autoAdvance`, and `ovld protocol update-objective --auto-advance|--no-auto-advance` map to that same membership. `autoAdvance` is deprecated and derived from `queueEntry`; legacy storage writes retire next release and column removal requires a later contract bump. Instruction text remains editable only in `draft` or `future` state. The routes are `POST /api/protocol/run-queue`, `reorder-run-queue`, `queue-objective`, `dequeue-objective`, `create-run-queue`, `update-run-queue`, `delete-run-queue`, `reorder-project-run-queues`, and `update-objective`.
|
|
14
14
|
- Objective attachment tools follow the `<verb>_<noun>` MCP naming: `list_attachments`, `prepare_attachment_upload`, `finalize_attachment_upload`, `get_attachment_download_url`, `upload_attachment_file`. CLI commands use `attachment-*`. `mission_id` / `missionId` is optional for attachment calls when the objective or attachment id lets the server derive mission scope.
|
|
15
15
|
- "Artifacts" may be published mid-turn with `add-artifact` / `overlord_add_artifact`, revised with `update-artifact` / `overlord_update_artifact`, or attached at `deliver` time (next_steps, test_results, migration, decision, note, url) — not user-uploaded files. Files attached by users live on objectives via the attachment tools above.
|