overlord-cli 0.2609071220.0 → 0.2609080806.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/antigravity/skills/add-objectives.md +2 -0
- package/dist/connectors/adapters/antigravity/skills/create.md +2 -0
- package/dist/connectors/adapters/claude/.claude-plugin/plugin.json +1 -1
- package/dist/connectors/adapters/claude/commands/add-objectives.md +2 -0
- package/dist/connectors/adapters/claude/commands/create.md +2 -0
- 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/commands/add-objectives.md +2 -0
- package/dist/connectors/adapters/cursor/commands/create.md +2 -0
- 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 +52 -2
- package/dist/connectors/core/overlord-mission/reference/cli.md +7 -0
- package/dist/connectors/core/scripts/overlord-mcp.mjs +32 -2
- package/dist/index.js +79 -16
- package/dist/index.js.map +3 -3
- package/package.json +1 -1
package/dist/connectors/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.3.
|
|
1
|
+
0.3.43
|
|
@@ -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.43",
|
|
5
5
|
"description": "Chat-driven access to Overlord mission protocol workflows through skills and MCP.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Cooperativ",
|
|
@@ -9,4 +9,6 @@ Use this when the prompts are sequential steps toward the same feature or goal.
|
|
|
9
9
|
Run:
|
|
10
10
|
`ovld protocol add-objectives --mission-id <mission_id> --objectives-json '[{"objective":"Step one"},{"objective":"Step two"}]'`
|
|
11
11
|
|
|
12
|
+
To assign an agent to the appended objectives, add `"agent":"<id>"` (and optional `"model"`) to each item, or pass `--objective-agent <id>` / `--objective-model <id>` as the default.
|
|
13
|
+
|
|
12
14
|
Index 0 is the first newly added objective to execute; later indexes queue after it.
|
|
@@ -9,6 +9,8 @@ If it already contains flags such as `--title`, `--priority`, `--project-id`, `-
|
|
|
9
9
|
Otherwise, treat the argument as the objective text and run:
|
|
10
10
|
`ovld protocol create --agent antigravity --objectives-json '[{"objective":"<objective>"}]'`
|
|
11
11
|
|
|
12
|
+
When the user names an agent for the work, assign it on the objective itself — add `"agent":"<id>"` (and optional `"model"`) to the objectives item, or pass `--objective-agent <id>` / `--objective-model <id>`. Never create the mission and then append a second objective just to name an agent.
|
|
13
|
+
|
|
12
14
|
If no objective was provided, ask the user for one and stop.
|
|
13
15
|
|
|
14
16
|
After the command succeeds, report the new `MISSION_ID`.
|
|
@@ -11,5 +11,7 @@ Use this when the prompts are sequential steps toward the same feature or goal.
|
|
|
11
11
|
Run:
|
|
12
12
|
`ovld protocol add-objectives --mission-id <mission_id> --objectives-json '[{"objective":"Step one"},{"objective":"Step two"}]'`
|
|
13
13
|
|
|
14
|
+
To assign an agent to the appended objectives, add `"agent":"<id>"` (and optional `"model"`) to each item, or pass `--objective-agent <id>` / `--objective-model <id>` as the default.
|
|
15
|
+
|
|
14
16
|
Index 0 is the first newly added objective to execute; later indexes queue after it.
|
|
15
17
|
|
|
@@ -12,6 +12,8 @@ If it already contains flags such as `--title`, `--priority`, `--project-id`, `-
|
|
|
12
12
|
Otherwise, treat `$ARGUMENTS` as the objective text and run:
|
|
13
13
|
`ovld protocol create --agent claude-code --objectives-json '[{"objective":"<objective>"}]'`
|
|
14
14
|
|
|
15
|
+
When the user names an agent for the work, assign it on the objective itself — add `"agent":"<id>"` (and optional `"model"`) to the objectives item, or pass `--objective-agent <id>` / `--objective-model <id>`. Never create the mission and then append a second objective just to name an agent.
|
|
16
|
+
|
|
15
17
|
If no objective was provided, ask the user for one and stop.
|
|
16
18
|
|
|
17
19
|
After the command succeeds, report the new `MISSION_ID`.
|
|
@@ -5,4 +5,6 @@ Use this when the prompts are sequential steps toward the same feature or goal.
|
|
|
5
5
|
Run:
|
|
6
6
|
`ovld protocol add-objectives --mission-id <mission_id> --objectives-json '[{"objective":"Step one"},{"objective":"Step two"}]'`
|
|
7
7
|
|
|
8
|
+
To assign an agent to the appended objectives, add `"agent":"<id>"` (and optional `"model"`) to each item, or pass `--objective-agent <id>` / `--objective-model <id>` as the default.
|
|
9
|
+
|
|
8
10
|
Index 0 is the first newly added objective to execute; later indexes queue after it.
|
|
@@ -8,6 +8,8 @@ If it already contains flags such as `--title`, `--priority`, `--project-id`, `-
|
|
|
8
8
|
Otherwise, treat the input as the objective text and run:
|
|
9
9
|
`ovld protocol create --agent cursor --objectives-json '[{"objective":"<objective>"}]'`
|
|
10
10
|
|
|
11
|
+
When the user names an agent for the work, assign it on the objective itself — add `"agent":"<id>"` (and optional `"model"`) to the objectives item, or pass `--objective-agent <id>` / `--objective-model <id>`. Never create the mission and then append a second objective just to name an agent.
|
|
12
|
+
|
|
11
13
|
If no objective was provided, ask the user for one and stop.
|
|
12
14
|
|
|
13
15
|
After the command succeeds, report the new `MISSION_ID`.
|
|
@@ -29,8 +29,11 @@ Use this mode when the prompt already contains a mission ID or explicitly says t
|
|
|
29
29
|
When review facts genuinely apply, you may add `deliveryReport.agentReport` through `--payload-json` / `--payload-file`: use
|
|
30
30
|
`humanActions`, `tradeoffsMade`, `knownRisks`, `deferredWork`, and `assumptions`, with empty arrays
|
|
31
31
|
when none apply. Human actions are concrete work a user must perform outside completed agent work;
|
|
32
|
-
never include Git operations or routine review/testing.
|
|
33
|
-
|
|
32
|
+
never include Git operations or routine review/testing. Every human action needs `action`, `reason`,
|
|
33
|
+
and `category`; add `command`, `verify`, and `link` whenever they exist so the operator can act
|
|
34
|
+
without re-reading the delivery (see **Delivery Evidence** below). Tradeoffs record the
|
|
35
|
+
implementation decision, alternatives considered, and rationale. These fields improve review
|
|
36
|
+
visibility but never block delivery.
|
|
34
37
|
|
|
35
38
|
For full command syntax, flags, phase values, and event types see **CLI Command Reference** below.
|
|
36
39
|
|
|
@@ -205,6 +208,46 @@ configure an external integration). Never list committing, pushing, opening a pu
|
|
|
205
208
|
reviewing code, or ordinary tests. A tradeoff must state the decision, alternatives considered,
|
|
206
209
|
and rationale. Omit the report when none of these facts apply.
|
|
207
210
|
|
|
211
|
+
#### Writing a human action the operator can complete
|
|
212
|
+
|
|
213
|
+
Human actions are collected across every mission into the Feed page's **Human actions** rail,
|
|
214
|
+
where the operator reads them without the delivery context. Each item must stand alone:
|
|
215
|
+
|
|
216
|
+
| Field | Expected | What to write |
|
|
217
|
+
| ---------- | -------- | ---------------------------------------------------------------------------------------------- |
|
|
218
|
+
| `action` | required | One imperative sentence naming the exact thing to do, where, and with what value. |
|
|
219
|
+
| `reason` | expected | Why the step is needed and what breaks or stays incomplete until it is done. |
|
|
220
|
+
| `category` | expected | `environment`, `database`, `deployment`, `codegen`, `packaging`, `external_service`, or `other`.|
|
|
221
|
+
| `blocking` | optional | `true` when the delivered work does not function until this is done. |
|
|
222
|
+
| `command` | when known | The exact command, setting name, or value to apply, verbatim. Placeholders in `<angle brackets>`. |
|
|
223
|
+
| `verify` | when known | How the operator confirms it worked: a command to run, a URL to open, or the state to observe. |
|
|
224
|
+
| `link` | when known | An HTTP(S) URL or a repository-relative file path (never another URI scheme). |
|
|
225
|
+
|
|
226
|
+
Vague (the operator has to rediscover everything):
|
|
227
|
+
|
|
228
|
+
```json
|
|
229
|
+
{ "action": "Set up the env var for Gemini." }
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
Good (the operator can finish it from the rail alone):
|
|
233
|
+
|
|
234
|
+
```json
|
|
235
|
+
{
|
|
236
|
+
"action": "Add GEMINI_API_KEY to the production backend service on Railway.",
|
|
237
|
+
"reason": "The delivery-compose worker falls back to the raw summary until a provider key is present.",
|
|
238
|
+
"category": "environment",
|
|
239
|
+
"blocking": false,
|
|
240
|
+
"command": "railway variables set GEMINI_API_KEY=<key> --service backend",
|
|
241
|
+
"verify": "The next delivery card shows a composed presentation instead of 'fallback' in the worker log.",
|
|
242
|
+
"link": ".env.example"
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
Overlord also derives its own `deterministic_rule` actions from the changed paths (new
|
|
247
|
+
migrations, `.env.example` changes, dependency manifests, CI workflow files) and always shows
|
|
248
|
+
them, so leaving one out never hides it; reporting it yourself with a real `command` and
|
|
249
|
+
`verify` replaces the generic wording with something the operator can follow.
|
|
250
|
+
|
|
208
251
|
### Change ledger health (diagnostic)
|
|
209
252
|
|
|
210
253
|
Use this only to inspect or troubleshoot objective-ledger synchronization and hook health:
|
|
@@ -284,6 +327,7 @@ When creating missions from within a repository:
|
|
|
284
327
|
- 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":"..."}]'`.
|
|
285
328
|
- `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` set the default when an item omits `autoAdvance` (default off).
|
|
286
329
|
- `add-objectives` uses the same per-item `autoAdvance` field and `--auto-advance` / `--no-auto-advance` default.
|
|
330
|
+
- **Assign the agent on the objectives you are already creating.** Every objective item on `create`, `prompt`, and `add-objectives` takes optional `"agent"` (and `"model"`, which requires an agent), and `--objective-agent <id>` / `--objective-model <id>` set the default for items that name no `agent` of their own. Never create a mission and then append a second objective just to name an agent — that leaves a duplicate objective behind. Note this is **not** `--agent`, which records who created the mission (and, on `prompt`, which agent attaches).
|
|
287
331
|
- To change auto-advance on an existing objective: `ovld protocol update-objective --objective-id <id> --auto-advance` or `--no-auto-advance`.
|
|
288
332
|
- `record-work` is different: it creates exactly one **completed** objective. It takes a single `--objective` (or positional / an `objective` field in `--payload-json`) plus a `--summary` and the file-change data — not `--objectives-json`. See [reference/record-work.md](reference/record-work.md).
|
|
289
333
|
- `create`, `prompt`, `create-mission`, and `record-work` accept `--assigned-to <member>` to set the mission's human owner. Accepts a username, an email, a user-id UUID, or the `orgid:username` member ID. When omitted, the assignee defaults to the mission creator.
|
|
@@ -292,6 +336,12 @@ When creating missions from within a repository:
|
|
|
292
336
|
ovld protocol create --agent <agent-identifier> --objectives-json '[{"objective":"Capture follow-up work from this repository"}]'
|
|
293
337
|
```
|
|
294
338
|
|
|
339
|
+
```bash
|
|
340
|
+
# One call: a draft mission whose first objective is already assigned to Codex.
|
|
341
|
+
ovld protocol create --agent <agent-identifier> \
|
|
342
|
+
--objectives-json '[{"objective":"Implement the API","agent":"codex","model":"gpt-5.6-terra"},{"objective":"Add CLI docs","agent":"claude"}]'
|
|
343
|
+
```
|
|
344
|
+
|
|
295
345
|
```bash
|
|
296
346
|
ovld protocol prompt --agent <agent-identifier> --objectives-json '[{"objective":"Implement feature X"}]'
|
|
297
347
|
```
|
|
@@ -181,6 +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
|
+
- Every objective item on `create`, `prompt`, and `add-objectives` also takes optional `"agent"` and `"model"` (a model requires an agent), and `--objective-agent <id>` / `--objective-model <id>` set the default for items that name no `agent` of their own. Assign the agent on the objectives you are already creating rather than appending a second objective just to name one. `--objective-agent` is distinct from `--agent`, which records creation provenance (and, on `prompt`, the attaching agent).
|
|
184
185
|
- 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
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).
|
|
186
187
|
|
|
@@ -188,6 +189,12 @@ When creating missions from within a repository:
|
|
|
188
189
|
ovld protocol create --agent <agent-identifier> --objectives-json '[{"objective":"Capture follow-up work from this repository"}]'
|
|
189
190
|
```
|
|
190
191
|
|
|
192
|
+
```bash
|
|
193
|
+
# One call: a draft mission whose first objective is already assigned to Codex.
|
|
194
|
+
ovld protocol create --agent <agent-identifier> \
|
|
195
|
+
--objectives-json '[{"objective":"Implement the API","agent":"codex","model":"gpt-5.6-terra"},{"objective":"Add CLI docs","agent":"claude"}]'
|
|
196
|
+
```
|
|
197
|
+
|
|
191
198
|
```bash
|
|
192
199
|
ovld protocol prompt --agent <agent-identifier> --objectives-json '[{"objective":"Implement feature X"}]'
|
|
193
200
|
```
|
|
@@ -264,6 +264,12 @@ const tools = [
|
|
|
264
264
|
objective: stringProperty('Initial objective text.'),
|
|
265
265
|
title: stringProperty('Optional mission title.'),
|
|
266
266
|
resourceKey: stringProperty('Optional logical project resource key for the objective.'),
|
|
267
|
+
agent: stringProperty(
|
|
268
|
+
'Optional agent identifier to assign to the initial objective, such as codex or claude. Omitted leaves the project launch-preference default; set it here instead of appending a second objective just to name an agent.'
|
|
269
|
+
),
|
|
270
|
+
model: stringProperty(
|
|
271
|
+
'Optional model identifier for the assigned agent. Requires agent; rejected without it.'
|
|
272
|
+
),
|
|
267
273
|
assignedTo: stringProperty(
|
|
268
274
|
'Optional workspace member to own the mission (workspace_users.id, profile UUID, orgid:username, bare username, or email). Rejected when the member is not in the workspace; meaningless on the inbox fallback.'
|
|
269
275
|
),
|
|
@@ -622,7 +628,25 @@ const tools = [
|
|
|
622
628
|
humanActions: {
|
|
623
629
|
type: 'array',
|
|
624
630
|
description:
|
|
625
|
-
'Concrete actions a human must perform; exclude Git operations and routine review/testing.'
|
|
631
|
+
'Concrete actions a human must perform; exclude Git operations and routine review/testing. ' +
|
|
632
|
+
'Each item needs action, reason, and category, plus command (exact command or setting), verify (how to confirm it worked), and link (HTTP(S) URL or repo-relative path) whenever they exist. ' +
|
|
633
|
+
'Vague: { action: "Set up the env var for Gemini." }. Good: { action: "Add GEMINI_API_KEY to the production backend service on Railway.", reason: "Compose falls back to the raw summary without it.", category: "environment", command: "railway variables set GEMINI_API_KEY=<key> --service backend", verify: "The next delivery card shows a composed presentation.", link: ".env.example" }.',
|
|
634
|
+
items: {
|
|
635
|
+
type: 'object',
|
|
636
|
+
properties: {
|
|
637
|
+
action: { type: 'string', description: 'Required. One imperative sentence: what, where, which value.' },
|
|
638
|
+
reason: { type: 'string', description: 'Expected. Why it is needed and what stays broken until done.' },
|
|
639
|
+
category: {
|
|
640
|
+
type: 'string',
|
|
641
|
+
description: 'Expected. environment, database, deployment, codegen, packaging, external_service, or other.'
|
|
642
|
+
},
|
|
643
|
+
blocking: { type: 'boolean', description: 'True when the delivered work does not function until this is done.' },
|
|
644
|
+
command: { type: 'string', description: 'Exact command, setting, or value to apply, verbatim.' },
|
|
645
|
+
verify: { type: 'string', description: 'How the operator confirms it worked.' },
|
|
646
|
+
link: { type: 'string', description: 'HTTP(S) URL or repository-relative file path.' }
|
|
647
|
+
},
|
|
648
|
+
required: ['action']
|
|
649
|
+
}
|
|
626
650
|
},
|
|
627
651
|
tradeoffsMade: {
|
|
628
652
|
type: 'array',
|
|
@@ -830,6 +854,12 @@ async function callOverlordTool(name, args) {
|
|
|
830
854
|
...(optionalString(args, 'resourceKey')
|
|
831
855
|
? { resource: requiredString(args, 'resourceKey') }
|
|
832
856
|
: {}),
|
|
857
|
+
...(optionalString(args, 'agent')
|
|
858
|
+
? { 'objective-agent': requiredString(args, 'agent') }
|
|
859
|
+
: {}),
|
|
860
|
+
...(optionalString(args, 'model')
|
|
861
|
+
? { 'objective-model': requiredString(args, 'model') }
|
|
862
|
+
: {}),
|
|
833
863
|
...(optionalString(args, 'assignedTo')
|
|
834
864
|
? { 'assigned-to': requiredString(args, 'assignedTo') }
|
|
835
865
|
: {}),
|
|
@@ -1175,7 +1205,7 @@ process.stdin.on('data', async chunk => {
|
|
|
1175
1205
|
result: {
|
|
1176
1206
|
protocolVersion: PROTOCOL_VERSION,
|
|
1177
1207
|
capabilities: { tools: { listChanged: false } },
|
|
1178
|
-
serverInfo: { name: 'overlord-__OVERLORD_ADAPTER_KEY__', version: '0.3.
|
|
1208
|
+
serverInfo: { name: 'overlord-__OVERLORD_ADAPTER_KEY__', version: '0.3.43' }
|
|
1179
1209
|
}
|
|
1180
1210
|
});
|
|
1181
1211
|
continue;
|
package/dist/index.js
CHANGED
|
@@ -35542,7 +35542,7 @@ var init_zod = __esm({
|
|
|
35542
35542
|
});
|
|
35543
35543
|
|
|
35544
35544
|
// ../packages/core/dist/service/delivery-report.js
|
|
35545
|
-
var MAX_ITEMS, MAX_ALTERNATIVES, MAX_ACTION_LENGTH, MAX_DETAIL_LENGTH, humanActionCategorySchema, conciseTextSchema, humanActionSchema, tradeoffSchema, MAX_WARNINGS, normalizedHumanActionSchema, normalizedTradeoffSchema, normalizedAgentReportSchema, deliveryPresentationSchema, persistedDeliveryReportSchema;
|
|
35545
|
+
var MAX_ITEMS, MAX_ALTERNATIVES, MAX_ACTION_LENGTH, MAX_DETAIL_LENGTH, humanActionCategorySchema, MAX_COMMAND_LENGTH2, MAX_LINK_LENGTH, conciseTextSchema, commandTextSchema, LINK_PATTERN, linkSchema, humanActionSchema, tradeoffSchema, MAX_WARNINGS, normalizedHumanActionSchema, normalizedTradeoffSchema, normalizedAgentReportSchema, deliveryPresentationSchema, persistedDeliveryReportSchema;
|
|
35546
35546
|
var init_delivery_report = __esm({
|
|
35547
35547
|
"../packages/core/dist/service/delivery-report.js"() {
|
|
35548
35548
|
"use strict";
|
|
@@ -35560,12 +35560,20 @@ var init_delivery_report = __esm({
|
|
|
35560
35560
|
"external_service",
|
|
35561
35561
|
"other"
|
|
35562
35562
|
]);
|
|
35563
|
+
MAX_COMMAND_LENGTH2 = 600;
|
|
35564
|
+
MAX_LINK_LENGTH = 400;
|
|
35563
35565
|
conciseTextSchema = external_exports.string().trim().min(1).max(MAX_DETAIL_LENGTH);
|
|
35566
|
+
commandTextSchema = external_exports.string().trim().min(1).max(MAX_COMMAND_LENGTH2);
|
|
35567
|
+
LINK_PATTERN = /^(?:https?:\/\/\S+|(?![a-z][a-z0-9+.-]*:)[^\s<>"'`]+)$/i;
|
|
35568
|
+
linkSchema = external_exports.string().trim().min(1).max(MAX_LINK_LENGTH).regex(LINK_PATTERN);
|
|
35564
35569
|
humanActionSchema = external_exports.strictObject({
|
|
35565
35570
|
action: external_exports.string().trim().min(1).max(MAX_ACTION_LENGTH),
|
|
35566
35571
|
reason: conciseTextSchema.optional(),
|
|
35567
35572
|
category: humanActionCategorySchema.optional(),
|
|
35568
|
-
blocking: external_exports.boolean().optional()
|
|
35573
|
+
blocking: external_exports.boolean().optional(),
|
|
35574
|
+
command: commandTextSchema.optional(),
|
|
35575
|
+
verify: conciseTextSchema.optional(),
|
|
35576
|
+
link: linkSchema.optional()
|
|
35569
35577
|
});
|
|
35570
35578
|
tradeoffSchema = external_exports.strictObject({
|
|
35571
35579
|
decision: external_exports.string().trim().min(1).max(MAX_ACTION_LENGTH),
|
|
@@ -35580,6 +35588,9 @@ var init_delivery_report = __esm({
|
|
|
35580
35588
|
reason: conciseTextSchema.optional(),
|
|
35581
35589
|
category: humanActionCategorySchema,
|
|
35582
35590
|
blocking: external_exports.boolean().optional(),
|
|
35591
|
+
command: commandTextSchema.optional(),
|
|
35592
|
+
verify: conciseTextSchema.optional(),
|
|
35593
|
+
link: linkSchema.optional(),
|
|
35583
35594
|
source: external_exports.enum(["agent", "change_rationale", "deterministic_rule"]),
|
|
35584
35595
|
sourceRef: external_exports.string().trim().min(1).max(200).optional()
|
|
35585
35596
|
});
|
|
@@ -38132,8 +38143,10 @@ list-deliveries:
|
|
|
38132
38143
|
Optional:
|
|
38133
38144
|
--objective-id <id> Supplies mission addressing when it is a display id
|
|
38134
38145
|
Returns:
|
|
38135
|
-
|
|
38136
|
-
|
|
38146
|
+
MissionDeliveriesDto { items, total, limit }. items are newest-first
|
|
38147
|
+
DeliveryDto records including summary, verification, follow-up notes, and
|
|
38148
|
+
normalized delivery report evidence, capped at 200. total is the matching
|
|
38149
|
+
row count before that cap.
|
|
38137
38150
|
|
|
38138
38151
|
launch-objective:
|
|
38139
38152
|
Purpose:
|
|
@@ -38377,10 +38390,13 @@ add-objectives:
|
|
|
38377
38390
|
Optional:
|
|
38378
38391
|
--auto-advance / --no-auto-advance
|
|
38379
38392
|
Default auto-advance for items that omit "autoAdvance". Defaults to off.
|
|
38393
|
+
--objective-agent <id> / --objective-model <id>
|
|
38394
|
+
Default launch selection for items that name no "agent" of their own.
|
|
38395
|
+
--objective-model requires --objective-agent.
|
|
38380
38396
|
Notes:
|
|
38381
38397
|
Each item is { "objective": "...", "title": "...", "agent": "codex",
|
|
38382
38398
|
"model": "gpt-5.6-terra", "autoAdvance": true|false, "resourceKey": "..." }.
|
|
38383
|
-
model requires agent. Per-item autoAdvance
|
|
38399
|
+
model requires agent. Per-item autoAdvance and agent win over the flags.
|
|
38384
38400
|
|
|
38385
38401
|
update-objective:
|
|
38386
38402
|
Purpose:
|
|
@@ -38439,6 +38455,12 @@ create:
|
|
|
38439
38455
|
--auto-advance / --no-auto-advance
|
|
38440
38456
|
Add matching objectives to the authoritative Run Queue. Defaults to off.
|
|
38441
38457
|
Per-item override: "autoAdvance": true|false in --objectives-json items.
|
|
38458
|
+
--objective-agent <id> / --objective-model <id>
|
|
38459
|
+
Assign a launch agent (and its model) to the objectives created here, so
|
|
38460
|
+
a mission can be created already assigned instead of appending a second
|
|
38461
|
+
objective just to name an agent. This is not --agent, which records
|
|
38462
|
+
creation provenance. Seeds only items with no "agent" of their own;
|
|
38463
|
+
--objective-model requires --objective-agent.
|
|
38442
38464
|
|
|
38443
38465
|
prompt:
|
|
38444
38466
|
Purpose:
|
|
@@ -38455,6 +38477,9 @@ prompt:
|
|
|
38455
38477
|
--auto-advance / --no-auto-advance
|
|
38456
38478
|
Add matching objectives to the authoritative Run Queue. Defaults to off.
|
|
38457
38479
|
Per-item override: "autoAdvance": true|false in --objectives-json items.
|
|
38480
|
+
--objective-agent <id> / --objective-model <id>
|
|
38481
|
+
Assign a launch agent (and its model) to the objectives created here.
|
|
38482
|
+
Distinct from --agent, which names the attaching agent for the session.
|
|
38458
38483
|
Returns:
|
|
38459
38484
|
New mission/session JSON plus SESSION_KEY on stderr when available.
|
|
38460
38485
|
|
|
@@ -38542,6 +38567,21 @@ deliver:
|
|
|
38542
38567
|
The payload may also include deliveryReport: { schemaVersion: 1, agentReport: {
|
|
38543
38568
|
humanActions, tradeoffsMade, knownRisks, deferredWork, assumptions } }. Use empty arrays
|
|
38544
38569
|
when none apply. Human actions exclude Git operations and routine review/testing.
|
|
38570
|
+
Human action shape (each item in agentReport.humanActions):
|
|
38571
|
+
{
|
|
38572
|
+
"action": "Add GEMINI_API_KEY to the production backend service on Railway.", // required. one imperative sentence: what, where, which value.
|
|
38573
|
+
"reason": "Compose falls back to the raw summary without it.", // expected. why, and what stays broken until done.
|
|
38574
|
+
"category": "environment", // expected. environment | database | deployment | codegen | packaging | external_service | other
|
|
38575
|
+
"blocking": false, // optional. true when the delivered work does not function until this is done.
|
|
38576
|
+
"command": "railway variables set GEMINI_API_KEY=<key> --service backend", // when known. exact command/setting, verbatim.
|
|
38577
|
+
"verify": "Next delivery card shows a composed presentation.", // when known. how the operator confirms it worked.
|
|
38578
|
+
"link": ".env.example" // when known. HTTP(S) URL or repo-relative path only.
|
|
38579
|
+
}
|
|
38580
|
+
Vague: { "action": "Set up the env var for Gemini." } forces the operator to rediscover
|
|
38581
|
+
the name, the place, and the check. Actions are read from the Feed rail without the
|
|
38582
|
+
delivery, so each must stand alone. Overlord adds deterministic_rule actions for new
|
|
38583
|
+
migrations, .env.example edits, dependency manifests, and CI workflow files on its own;
|
|
38584
|
+
report those yourself when you can supply the real command and verify step.
|
|
38545
38585
|
Optional:
|
|
38546
38586
|
--artifacts-json / --artifacts-file <path|->
|
|
38547
38587
|
--change-rationales-json / --change-rationales-file <path|->
|
|
@@ -39766,6 +39806,14 @@ async function resolveTerminalLaunchSettings({
|
|
|
39766
39806
|
function asRecord5(value) {
|
|
39767
39807
|
return value && typeof value === "object" ? value : {};
|
|
39768
39808
|
}
|
|
39809
|
+
function missionEvidenceItems(value) {
|
|
39810
|
+
if (Array.isArray(value)) return value;
|
|
39811
|
+
if (value && typeof value === "object" && "items" in value) {
|
|
39812
|
+
const items = value.items;
|
|
39813
|
+
if (Array.isArray(items)) return items;
|
|
39814
|
+
}
|
|
39815
|
+
return null;
|
|
39816
|
+
}
|
|
39769
39817
|
function parsePreLaunchCommandsValue(value) {
|
|
39770
39818
|
return Array.isArray(value) ? value.filter((entry) => typeof entry === "string") : [];
|
|
39771
39819
|
}
|
|
@@ -40483,17 +40531,25 @@ async function runManagementCommand({
|
|
|
40483
40531
|
name: "--auto-advance",
|
|
40484
40532
|
negatedName: "--no-auto-advance"
|
|
40485
40533
|
});
|
|
40534
|
+
const objectiveAgent = flagValue(parsed.flags, "--objective-agent")?.trim() || void 0;
|
|
40535
|
+
const objectiveModel = flagValue(parsed.flags, "--objective-model")?.trim() || void 0;
|
|
40536
|
+
if (objectiveModel && !objectiveAgent) {
|
|
40537
|
+
throw new CliError({ message: "--objective-model requires --objective-agent" });
|
|
40538
|
+
}
|
|
40539
|
+
const withAgentSelection = (item) => objectiveAgent && !item.agent ? { ...item, agent: objectiveAgent, model: item.model ?? objectiveModel ?? null } : item;
|
|
40486
40540
|
const parsedObjectives = objectivesJson ? JSON.parse(objectivesJson) : null;
|
|
40487
|
-
const objectives = parsedObjectives ? parsedObjectives.map(
|
|
40488
|
-
|
|
40489
|
-
|
|
40490
|
-
|
|
40491
|
-
|
|
40541
|
+
const objectives = parsedObjectives ? parsedObjectives.map(
|
|
40542
|
+
(item) => withAgentSelection({
|
|
40543
|
+
...item,
|
|
40544
|
+
...item.autoAdvance === void 0 && autoAdvance !== void 0 ? { autoAdvance } : {}
|
|
40545
|
+
})
|
|
40546
|
+
) : objective ? [
|
|
40547
|
+
withAgentSelection({
|
|
40492
40548
|
objective,
|
|
40493
40549
|
title: flagValue(parsed.flags, "--title") ?? null,
|
|
40494
40550
|
...autoAdvance !== void 0 ? { autoAdvance } : {},
|
|
40495
40551
|
...flagValue(parsed.flags, "--resource") ? { resourceKey: flagValue(parsed.flags, "--resource") } : {}
|
|
40496
|
-
}
|
|
40552
|
+
})
|
|
40497
40553
|
] : [];
|
|
40498
40554
|
const first = objectives[0];
|
|
40499
40555
|
if (!first) {
|
|
@@ -40857,8 +40913,11 @@ async function runManagementCommand({
|
|
|
40857
40913
|
}
|
|
40858
40914
|
const result = await runtime.backend.get(path37);
|
|
40859
40915
|
if (json2 || sub === "context") printJson(result);
|
|
40860
|
-
else
|
|
40861
|
-
|
|
40916
|
+
else {
|
|
40917
|
+
const items = missionEvidenceItems(result);
|
|
40918
|
+
if (items) for (const row of items) console.log(JSON.stringify(row));
|
|
40919
|
+
else printJson(result);
|
|
40920
|
+
}
|
|
40862
40921
|
return;
|
|
40863
40922
|
}
|
|
40864
40923
|
case "changes": {
|
|
@@ -40873,16 +40932,16 @@ async function runManagementCommand({
|
|
|
40873
40932
|
if (sub !== "status" && sub !== "rationales") {
|
|
40874
40933
|
throw new CliError({ message: "Usage: ovld changes status|rationales --mission-id <id>" });
|
|
40875
40934
|
}
|
|
40876
|
-
const
|
|
40935
|
+
const page = await runtime.backend.get(
|
|
40877
40936
|
`/api/missions/${encodeURIComponent(missionId)}/file-changes`
|
|
40878
40937
|
);
|
|
40879
|
-
let result =
|
|
40938
|
+
let result = missionEvidenceItems(page) ?? [];
|
|
40880
40939
|
if (objectiveRef) {
|
|
40881
40940
|
const mission = await runtime.backend.get(
|
|
40882
40941
|
`/api/missions/${encodeURIComponent(missionId)}`
|
|
40883
40942
|
);
|
|
40884
40943
|
const objectiveId = objectiveIdForRef(mission, objectiveRef);
|
|
40885
|
-
result =
|
|
40944
|
+
result = result.filter((row) => asRecord5(row).objectiveId === objectiveId);
|
|
40886
40945
|
}
|
|
40887
40946
|
if (json2) printJson({ files: result, rationales: result });
|
|
40888
40947
|
else for (const row of result) console.log(JSON.stringify(row));
|
|
@@ -41483,6 +41542,8 @@ var COMMAND_FLAGS = {
|
|
|
41483
41542
|
"--project-id",
|
|
41484
41543
|
"--title",
|
|
41485
41544
|
"--resource",
|
|
41545
|
+
"--objective-agent",
|
|
41546
|
+
"--objective-model",
|
|
41486
41547
|
"--auto-advance",
|
|
41487
41548
|
"--no-auto-advance"
|
|
41488
41549
|
],
|
|
@@ -41494,6 +41555,8 @@ var COMMAND_FLAGS = {
|
|
|
41494
41555
|
"--title",
|
|
41495
41556
|
"--resource",
|
|
41496
41557
|
"--agent",
|
|
41558
|
+
"--objective-agent",
|
|
41559
|
+
"--objective-model",
|
|
41497
41560
|
"--auto-advance",
|
|
41498
41561
|
"--no-auto-advance"
|
|
41499
41562
|
],
|