overlord-cli 0.2610281354.0 → 0.2610301446.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/VERSION +1 -1
- package/dist/connectors/adapters/antigravity/conformance-manifest.yaml +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/conformance-manifest.yaml +1 -1
- package/dist/connectors/adapters/codex/.codex-plugin/plugin.json +1 -1
- package/dist/connectors/adapters/codex/conformance-manifest.yaml +1 -1
- package/dist/connectors/adapters/cursor/.cursor-plugin/plugin.json +1 -1
- package/dist/connectors/adapters/cursor/conformance-manifest.yaml +1 -1
- package/dist/connectors/adapters/opencode/conformance-manifest.yaml +1 -1
- package/dist/connectors/adapters/pi/conformance-manifest.yaml +1 -1
- package/dist/connectors/core/overlord-mission/SKILL.md +19 -6
- package/dist/connectors/core/overlord-mission/reference/cli.md +9 -0
- package/dist/connectors/core/scripts/overlord-mcp.mjs +1 -1
- package/dist/connectors/docs/05-connectors-and-agent-plugins.md +1 -0
- package/dist/index.js +33 -5
- package/dist/index.js.map +2 -2
- package/package.json +2 -2
package/dist/connectors/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.3.
|
|
1
|
+
0.3.59
|
|
@@ -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.59",
|
|
5
5
|
"description": "Chat-driven access to Overlord mission protocol workflows through skills and MCP.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Cooperativ",
|
|
@@ -186,6 +186,16 @@ with a JSON string array when a path contains a comma or the list is long. They
|
|
|
186
186
|
Declared, never as native capture. Never use it to enumerate every changed or opened file, and
|
|
187
187
|
never make a separate call just to declare paths.
|
|
188
188
|
|
|
189
|
+
If attach warns that its local binding or ledger is unavailable, keep the explicit
|
|
190
|
+
`--session-key` and `--objective-id` on `update` / `deliver` and include the known missed
|
|
191
|
+
paths normally. The CLI still submits them through the authenticated session as Declared;
|
|
192
|
+
do not omit paths or replace the file evidence with a list in the summary. Check stderr for
|
|
193
|
+
acceptance/sync warnings. If fallback synchronization fails, repeat those declarations on a
|
|
194
|
+
later update/deliver because no local retry copy exists. Re-run attach in the intended checkout
|
|
195
|
+
with the same `OVLD_HOME` to restore native capture. `changes` reports the local coverage gap
|
|
196
|
+
in `capture.healthCodes`; `objective-changes` reads synchronized evidence, including fallback
|
|
197
|
+
declarations, from the server.
|
|
198
|
+
|
|
189
199
|
Artifacts and a delivery report remain optional annotations when they add review value. There
|
|
190
200
|
is no per-file explanation input. Use `--payload-json` when the full delivery object fits comfortably inline
|
|
191
201
|
(roughly under 8 KB). Larger inline `--*-json` values are rejected; stream them through the
|
|
@@ -233,12 +243,12 @@ human implementation follow-up such as deploy, secrets, or migrations (those bel
|
|
|
233
243
|
|
|
234
244
|
#### Writing a deferred-work item
|
|
235
245
|
|
|
236
|
-
| Field | Limit | What to write
|
|
237
|
-
| ---------- | --------- |
|
|
238
|
-
| `title` | 80 chars | The work, as an imperative phrase. Shown as the row title.
|
|
239
|
-
| `change` | 400 chars | The specific change that is needed, in one or two sentences.
|
|
240
|
-
| `location` | 200 chars | Where to find it: the file, function, component, or command.
|
|
241
|
-
| `doneWhen` | 200 chars | The observable result, in one sentence.
|
|
246
|
+
| Field | Limit | What to write |
|
|
247
|
+
| ---------- | --------- | ------------------------------------------------------------ |
|
|
248
|
+
| `title` | 80 chars | The work, as an imperative phrase. Shown as the row title. |
|
|
249
|
+
| `change` | 400 chars | The specific change that is needed, in one or two sentences. |
|
|
250
|
+
| `location` | 200 chars | Where to find it: the file, function, component, or command. |
|
|
251
|
+
| `doneWhen` | 200 chars | The observable result, in one sentence. |
|
|
242
252
|
|
|
243
253
|
All four fields are required. A plain string item is rejected with `invalid_input`.
|
|
244
254
|
|
|
@@ -361,6 +371,9 @@ ovld protocol deliver --session-key <sessionKey> --objective-id $OBJECTIVE_ID \
|
|
|
361
371
|
EOF
|
|
362
372
|
```
|
|
363
373
|
|
|
374
|
+
For spaces, quote the whole inline value, for example
|
|
375
|
+
`--paths "planning/demo environment.md,src/generated.ts"`, or use the JSON array form.
|
|
376
|
+
|
|
364
377
|
Paths are normalized against the checkout. Traversal, symlinks that leave the checkout, ignored
|
|
365
378
|
paths, and Overlord-managed paths are rejected with a reason on stderr and never fail the call.
|
|
366
379
|
|
|
@@ -143,6 +143,15 @@ paths, and Overlord-managed paths are rejected with a reason on stderr and never
|
|
|
143
143
|
Absent targets (deleted or renamed-away files) are valid. Never enumerate every changed or
|
|
144
144
|
opened file, and when unsure, describe the coverage gap in the summary instead of guessing.
|
|
145
145
|
|
|
146
|
+
Quote an inline value containing spaces: `--paths "planning/demo environment.md,src/generated.ts"`.
|
|
147
|
+
If the local binding or ledger is unavailable, pass `--session-key` and `--objective-id`
|
|
148
|
+
explicitly and keep the path flags. The CLI warns and submits normalized paths through the
|
|
149
|
+
authenticated session as Declared; do not drop the paths from delivery. Fallback sync failures
|
|
150
|
+
warn and need the declarations repeated on a later update/deliver (no local retry copy).
|
|
151
|
+
Use `objective-changes` to read synchronized fallback evidence. Local `changes` instead reports
|
|
152
|
+
the missing/invalid binding in `capture.healthCodes` and stderr. Restore native capture by
|
|
153
|
+
re-running attach in the intended checkout with the same `OVLD_HOME` and writable storage.
|
|
154
|
+
|
|
146
155
|
### Shared worktree safety (critical)
|
|
147
156
|
|
|
148
157
|
The working tree may contain file changes from **other agents, missions, or objectives** running concurrently in the same checkout or worktree. Those changes are **not yours to undo**.
|
|
@@ -1837,7 +1837,7 @@ process.stdin.on('data', async chunk => {
|
|
|
1837
1837
|
result: {
|
|
1838
1838
|
protocolVersion: PROTOCOL_VERSION,
|
|
1839
1839
|
capabilities: { tools: { listChanged: false } },
|
|
1840
|
-
serverInfo: { name: 'overlord-__OVERLORD_ADAPTER_KEY__', version: '0.3.
|
|
1840
|
+
serverInfo: { name: 'overlord-__OVERLORD_ADAPTER_KEY__', version: '0.3.59' }
|
|
1841
1841
|
}
|
|
1842
1842
|
});
|
|
1843
1843
|
continue;
|
|
@@ -41,6 +41,7 @@ Required content:
|
|
|
41
41
|
- Deliver last with a summary written by behavior or component, plus artifacts when they add review value.
|
|
42
42
|
- Never revert, restore, or delete concurrent work from other agents or missions to deliver; ask instead.
|
|
43
43
|
- Declare only known shell/script/generator outputs, deletes, and rename endpoints that capture missed (`--paths` / `--paths-file`); there is no per-file explanation input.
|
|
44
|
+
- Quote inline path lists containing spaces; use a JSON string array with `--paths-file <path|->` for commas or long lists. If local binding/storage is unavailable, retain the explicit session key, objective id, and path flags: the CLI warns and submits Declared evidence through the authenticated session. Read it with `objective-changes`; local `changes` explains the coverage gap. Failed fallback sync requires repeating the declarations because it has no local retry copy.
|
|
44
45
|
- Use stdin/file flags for shell-special content.
|
|
45
46
|
- Use stdin/file flags for oversized JSON payloads (`--*-json` values above ~8 KB are rejected; use `--*-file -`).
|
|
46
47
|
- Do not continue implementation after delivery unless follow-up execution is explicitly requested.
|
package/dist/index.js
CHANGED
|
@@ -6028,6 +6028,9 @@ function writeManifest(workingDirectory, entries) {
|
|
|
6028
6028
|
}
|
|
6029
6029
|
writeOwnerOnlyFileAtomically(manifestPath2(workingDirectory), contents);
|
|
6030
6030
|
}
|
|
6031
|
+
function manifestFits(workingDirectory, entries) {
|
|
6032
|
+
return Buffer.byteLength(JSON.stringify({ ...emptyManifest(workingDirectory), entries })) <= MAX_ACTIVE_SESSION_MANIFEST_BYTES;
|
|
6033
|
+
}
|
|
6031
6034
|
function resolveEntry(entries, requestedObjectiveId) {
|
|
6032
6035
|
const matching = entries.filter(
|
|
6033
6036
|
(entry2) => !entry2.deliveryPendingSync && entryMatchesObjective(entry2, requestedObjectiveId)
|
|
@@ -6066,7 +6069,7 @@ function writeActiveSession({
|
|
|
6066
6069
|
const prior = current.find(
|
|
6067
6070
|
(entry) => entry.objectiveId === trimmedObjective && !entry.deliveryPendingSync
|
|
6068
6071
|
);
|
|
6069
|
-
|
|
6072
|
+
let entries = current.filter(
|
|
6070
6073
|
(entry) => entry.objectiveId !== trimmedObjective || entry.deliveryPendingSync
|
|
6071
6074
|
);
|
|
6072
6075
|
if (prior && prior.sessionKey !== trimmedKey) {
|
|
@@ -6077,10 +6080,6 @@ function writeActiveSession({
|
|
|
6077
6080
|
});
|
|
6078
6081
|
if (!removed) entries.push({ ...prior, deliveryPendingSync: true });
|
|
6079
6082
|
}
|
|
6080
|
-
if (entries.filter((entry) => entry.objectiveId === trimmedObjective).length >= MAX_ACTIVE_OBJECTIVE_SESSION_BINDINGS) {
|
|
6081
|
-
if (prior && prior.sessionKey !== trimmedKey) writeManifest(workingDirectory, entries);
|
|
6082
|
-
return false;
|
|
6083
|
-
}
|
|
6084
6083
|
const next = {
|
|
6085
6084
|
missionId: trimmedMission,
|
|
6086
6085
|
objectiveId: trimmedObjective,
|
|
@@ -6089,6 +6088,24 @@ function writeActiveSession({
|
|
|
6089
6088
|
attachedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
6090
6089
|
deliveryPendingSync: false
|
|
6091
6090
|
};
|
|
6091
|
+
const hasCapacity = () => entries.filter((entry) => entry.objectiveId === trimmedObjective).length < MAX_ACTIVE_OBJECTIVE_SESSION_BINDINGS && manifestFits(workingDirectory, [...entries, next]);
|
|
6092
|
+
if (!hasCapacity()) {
|
|
6093
|
+
const retries = entries.filter((entry) => entry.deliveryPendingSync).sort((left, right) => Date.parse(left.attachedAt) - Date.parse(right.attachedAt));
|
|
6094
|
+
for (const entry of retries) {
|
|
6095
|
+
if (hasCapacity()) break;
|
|
6096
|
+
if (removeChangeLedger({
|
|
6097
|
+
workingDirectory,
|
|
6098
|
+
objectiveId: entry.objectiveId,
|
|
6099
|
+
sessionKey: entry.sessionKey
|
|
6100
|
+
})) {
|
|
6101
|
+
entries = entries.filter((candidate) => candidate !== entry);
|
|
6102
|
+
}
|
|
6103
|
+
}
|
|
6104
|
+
}
|
|
6105
|
+
if (!hasCapacity()) {
|
|
6106
|
+
if (prior && prior.sessionKey !== trimmedKey) writeManifest(workingDirectory, entries);
|
|
6107
|
+
return false;
|
|
6108
|
+
}
|
|
6092
6109
|
if (prior?.sessionKey !== trimmedKey) {
|
|
6093
6110
|
resetChangeLedger({
|
|
6094
6111
|
workingDirectory,
|
|
@@ -45048,6 +45065,8 @@ attach:
|
|
|
45048
45065
|
The CLI records the session's capture binding: bound when OVERLORD_OBJECTIVE_ID
|
|
45049
45066
|
names the attached objective, unbound otherwise. Bound is configuration evidence
|
|
45050
45067
|
only; it never claims the capture hook is installed or has run.
|
|
45068
|
+
Attach warns on stderr if its local binding cannot be saved. Check OVLD_HOME
|
|
45069
|
+
permissions and re-run attach in this checkout to restore native capture.
|
|
45051
45070
|
Returns:
|
|
45052
45071
|
Full JSON including session.sessionKey, mission, history, artifacts, sharedState,
|
|
45053
45072
|
and agentInstructions with required workflow instructions and structured-field pointers.
|
|
@@ -45591,6 +45610,13 @@ deliver:
|
|
|
45591
45610
|
out-of-checkout symlinks, ignored and Overlord-managed paths are rejected with a
|
|
45592
45611
|
reason on stderr), and absent targets are valid. Never enumerate opened files or a
|
|
45593
45612
|
shared-worktree diff; when unsure, describe the coverage limitation instead.
|
|
45613
|
+
Quote the whole --paths value when a path contains spaces. Use --paths-file -
|
|
45614
|
+
with a JSON string array on stdin for paths containing commas or a long list.
|
|
45615
|
+
If the local binding or ledger is missing, keep --session-key and --objective-id:
|
|
45616
|
+
declarations still synchronize through the authenticated session as Declared.
|
|
45617
|
+
A warning explains the local capture gap. Failed fallback sync has no local retry
|
|
45618
|
+
copy: repeat those declarations on update/deliver. objective-changes reads the
|
|
45619
|
+
synchronized server evidence; changes reads only this checkout's ledgers.
|
|
45594
45620
|
Inline --*-json values larger than ~8 KB are rejected; use --payload-file - and
|
|
45595
45621
|
stream JSON on stdin. Keep --summary inline.
|
|
45596
45622
|
|
|
@@ -45628,6 +45654,8 @@ changes:
|
|
|
45628
45654
|
syncState synced | pending } sorted by path and capped at 200; total counts distinct
|
|
45629
45655
|
local paths. coverage "unavailable" means no local session matched, not "no files
|
|
45630
45656
|
changed". This is not complete cross-device history: use objective-changes.
|
|
45657
|
+
capture.healthCodes and stderr explain missing bindings or unreadable local storage.
|
|
45658
|
+
Re-run attach in the intended checkout with the same OVLD_HOME to restore capture.
|
|
45631
45659
|
|
|
45632
45660
|
sync-changes:
|
|
45633
45661
|
Purpose:
|