overlord-cli 0.2606050717.0 → 0.2606050938.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bin/_cli/new-ticket.mjs +13 -10
- package/bin/_cli/protocol.mjs +12 -7
- package/package.json +1 -1
- package/plugins/claude/commands/record-work.md +1 -1
- package/plugins/claude/skills/overlord-ticket/reference/cli.md +4 -2
- package/plugins/cursor/skills/overlord-ticket/reference/cli.md +4 -2
- package/plugins/overlord/scripts/overlord-mcp.mjs +11 -3
- package/plugins/overlord/skills/overlord-ticket/reference/cli.md +4 -2
package/README.md
CHANGED
|
@@ -134,7 +134,7 @@ Agents can find docs here: https://www.ovld.ai/docs/for-agents
|
|
|
134
134
|
- `revert` - restore the local working tree to an objective checkpoint after fetching its checkpoint row
|
|
135
135
|
- `search-tickets` - find tickets by keyword, status, project, creator, or update date
|
|
136
136
|
- `add-objectives` - append ordered objectives to an existing ticket (`--objectives-json` / `--objectives-file`)
|
|
137
|
-
- `create` - create a draft ticket without attaching (standalone or follow-up)
|
|
137
|
+
- `create` - create a draft ticket without attaching (standalone or follow-up; `--project-id` can override the inherited project during follow-up creation)
|
|
138
138
|
- `prompt` - create a ticket and attach to it immediately (`spawn` is a backward-compatible alias)
|
|
139
139
|
- `record-work` - record already-completed chat work as a ticket in review with a completed objective and trigger feed-post generation
|
|
140
140
|
- `update` - post progress, discussion/decision events, optional change rationales, and explicit `--begin-follow-up-work` transitions
|
package/bin/_cli/new-ticket.mjs
CHANGED
|
@@ -48,10 +48,10 @@ function parseFlags(args) {
|
|
|
48
48
|
|
|
49
49
|
function buildUsage(commandName) {
|
|
50
50
|
if (commandName === 'prompt') {
|
|
51
|
-
return 'Usage: ovld prompt --objectives-json \'[{"objective":"..."}]\' [--objectives-file <path>] [--title "..."] [--acceptance-criteria "..."] [--available-tools "..."] [--for-human] [--priority low|medium|high|urgent] [--project-id <id>] [--agent <agent>] [--model <identifier>] [--delegate <agent>]';
|
|
51
|
+
return 'Usage: ovld prompt --objectives-json \'[{"objective":"..."}]\' [--objectives-file <path>] [--title "..."] [--acceptance-criteria "..."] [--available-tools "..."] [--for-human] [--priority low|medium|high|urgent] [--project-id <id-or-name>] [--agent <agent>] [--model <identifier>] [--delegate <agent>]';
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
return 'Usage: ovld create --objectives-json \'[{"objective":"..."}]\' [--objectives-file <path>] [--title "..."] [--acceptance-criteria "..."] [--available-tools "..."] [--for-human] [--priority low|medium|high|urgent] [--project-id <id>] [--agent <agent>] [--model <identifier>] [--delegate <agent>]';
|
|
54
|
+
return 'Usage: ovld create --objectives-json \'[{"objective":"..."}]\' [--objectives-file <path>] [--title "..."] [--acceptance-criteria "..."] [--available-tools "..."] [--for-human] [--priority low|medium|high|urgent] [--project-id <id-or-name>] [--agent <agent>] [--model <identifier>] [--delegate <agent>]';
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
function resolveForHumanFlag(flags) {
|
|
@@ -305,15 +305,17 @@ async function createTicket(platformUrl, bearerToken, localSecret, organizationI
|
|
|
305
305
|
return data.ticket;
|
|
306
306
|
}
|
|
307
307
|
|
|
308
|
-
function resolveProject(projects,
|
|
309
|
-
if (!
|
|
308
|
+
export function resolveProject(projects, projectIdOrName) {
|
|
309
|
+
if (!projectIdOrName) return null;
|
|
310
310
|
|
|
311
|
-
const
|
|
312
|
-
if (
|
|
313
|
-
|
|
314
|
-
|
|
311
|
+
const byId = projects.find(candidate => candidate.id === projectIdOrName);
|
|
312
|
+
if (byId) return byId;
|
|
313
|
+
|
|
314
|
+
const lowerName = projectIdOrName.toLowerCase();
|
|
315
|
+
const byName = projects.find(candidate => candidate.name?.toLowerCase() === lowerName);
|
|
316
|
+
if (byName) return byName;
|
|
315
317
|
|
|
316
|
-
|
|
318
|
+
throw new Error(`Unknown project: ${projectIdOrName}`);
|
|
317
319
|
}
|
|
318
320
|
|
|
319
321
|
function resolveAgent(agent) {
|
|
@@ -424,7 +426,8 @@ Creates a ticket after interactive numbered project selection.
|
|
|
424
426
|
|
|
425
427
|
Examples:
|
|
426
428
|
ovld create --objectives-json '[{"objective":"Implement login page"}]'
|
|
427
|
-
ovld create --objectives-json '[{"objective":"Fix sync bug"}]' --project-id <
|
|
429
|
+
ovld create --objectives-json '[{"objective":"Fix sync bug"}]' --project-id <id-or-name>
|
|
430
|
+
ovld create --objectives-json '[{"objective":"Fix sync bug"}]' --project-id "My Project"
|
|
428
431
|
`);
|
|
429
432
|
return;
|
|
430
433
|
}
|
package/bin/_cli/protocol.mjs
CHANGED
|
@@ -2551,6 +2551,7 @@ async function protocolCreateTicket(args) {
|
|
|
2551
2551
|
sessionKey,
|
|
2552
2552
|
ticketId,
|
|
2553
2553
|
...objectiveInput,
|
|
2554
|
+
...(flags['project-id'] ? { projectId: String(flags['project-id']) } : {}),
|
|
2554
2555
|
...(flags.title ? { title: String(flags.title) } : {}),
|
|
2555
2556
|
...(flags.priority ? { priority: String(flags.priority) } : {}),
|
|
2556
2557
|
...(flags['acceptance-criteria']
|
|
@@ -2836,10 +2837,12 @@ Project discovery:
|
|
|
2836
2837
|
You can also discover the project explicitly:
|
|
2837
2838
|
|
|
2838
2839
|
ovld protocol discover-project
|
|
2839
|
-
ovld protocol discover-project --project-id <
|
|
2840
|
+
ovld protocol discover-project --project-id <id-or-name>
|
|
2841
|
+
ovld protocol discover-project --project-id "My Project"
|
|
2840
2842
|
ovld protocol discover-project --working-directory /path/to/repo
|
|
2841
2843
|
|
|
2842
2844
|
Use --project-id to override automatic resolution on discover, prompt, or ticket creation.
|
|
2845
|
+
Accepts a UUID or a project name (names are unique per organization).
|
|
2843
2846
|
Use --personal to create a private ticket without assigning any project.
|
|
2844
2847
|
|
|
2845
2848
|
Subcommands:
|
|
@@ -2912,7 +2915,7 @@ discover-project:
|
|
|
2912
2915
|
Resolve the Overlord project that corresponds to the current (or given) working directory.
|
|
2913
2916
|
Uses the caller's configured "Local working directory" for matching.
|
|
2914
2917
|
Optional:
|
|
2915
|
-
--project-id <
|
|
2918
|
+
--project-id <id-or-name> Resolve this project directly; skips working-directory matching
|
|
2916
2919
|
--working-directory <path> Directory to match (default: current working directory)
|
|
2917
2920
|
--device-fingerprint <fp> Prefer resource directories for this registered device
|
|
2918
2921
|
--device-hostname <name> Register/update device metadata when fingerprint is provided
|
|
@@ -2982,7 +2985,7 @@ search-tickets:
|
|
|
2982
2985
|
--status <csv> Comma-separated statuses, e.g. "draft,next-up,execute"
|
|
2983
2986
|
--include-completed <bool> Include completed tickets (default: false)
|
|
2984
2987
|
--limit <n> Max results 1..50 (default: 8)
|
|
2985
|
-
--project-id <
|
|
2988
|
+
--project-id <id-or-name> Restrict to a single project
|
|
2986
2989
|
--created-by <uuid> Restrict to tickets created by this user
|
|
2987
2990
|
--updated-after <iso> Updated_at >= ISO timestamp
|
|
2988
2991
|
--updated-before <iso> Updated_at <= ISO timestamp
|
|
@@ -3134,7 +3137,7 @@ prompt:
|
|
|
3134
3137
|
Optional:
|
|
3135
3138
|
--title <text>
|
|
3136
3139
|
--priority <level> low | medium | high | urgent
|
|
3137
|
-
--project-id <id>
|
|
3140
|
+
--project-id <id-or-name> Explicit project (UUID or name); skips working-directory resolution
|
|
3138
3141
|
--personal Create the ticket without assigning a project
|
|
3139
3142
|
--working-directory <path> Override cwd for project resolution (default: cwd)
|
|
3140
3143
|
--acceptance-criteria <text>
|
|
@@ -3173,7 +3176,7 @@ create:
|
|
|
3173
3176
|
--session-key <key>
|
|
3174
3177
|
--ticket-id <ticket_id>
|
|
3175
3178
|
--working-directory <path> Resolve project by your configured local working directory (default: cwd)
|
|
3176
|
-
--project-id <id>
|
|
3179
|
+
--project-id <id-or-name> Explicit project (UUID or name); overrides follow-up inheritance or standalone cwd resolution
|
|
3177
3180
|
--personal Create a private standalone draft without a project
|
|
3178
3181
|
--title <text>
|
|
3179
3182
|
--priority <level> low | medium | high | urgent
|
|
@@ -3188,7 +3191,7 @@ create:
|
|
|
3188
3191
|
New draft ticket JSON (follow-up draft when session flags are provided)
|
|
3189
3192
|
Notes:
|
|
3190
3193
|
Standalone create auto-discovers the project from the current working directory unless --personal is set.
|
|
3191
|
-
Follow-up create requires both --session-key and --ticket-id.
|
|
3194
|
+
Follow-up create requires both --session-key and --ticket-id and inherits the current ticket project unless --project-id is passed.
|
|
3192
3195
|
Use create for future work. If the work is already complete and only needs to be recorded,
|
|
3193
3196
|
use \`record-work\` instead.
|
|
3194
3197
|
|
|
@@ -3219,7 +3222,7 @@ record-work:
|
|
|
3219
3222
|
Optional:
|
|
3220
3223
|
--title <text> Auto-derived from objective if omitted
|
|
3221
3224
|
--priority <level> low | medium | high | urgent
|
|
3222
|
-
--project-id <id>
|
|
3225
|
+
--project-id <id-or-name> Skip cwd resolution and use this project explicitly (UUID or name)
|
|
3223
3226
|
--working-directory <path> Override cwd for project resolution
|
|
3224
3227
|
--personal Create a private ticket when no project should be associated
|
|
3225
3228
|
--artifacts-json <json>
|
|
@@ -3421,8 +3424,10 @@ Examples:
|
|
|
3421
3424
|
ovld protocol auth-status
|
|
3422
3425
|
ovld protocol discover-project
|
|
3423
3426
|
ovld protocol discover-project --project-id <project-uuid>
|
|
3427
|
+
ovld protocol discover-project --project-id "My Project" # resolve by name
|
|
3424
3428
|
ovld protocol discover-project --working-directory /path/to/repo
|
|
3425
3429
|
ovld protocol prompt --agent codex --objective "Implement feature X" # auto-resolves project from cwd
|
|
3430
|
+
ovld protocol prompt --project-id "My Project" --objective "Fix bug" # resolve project by name
|
|
3426
3431
|
ovld protocol attach --ticket-id 1:899
|
|
3427
3432
|
ovld protocol attach --ticket-id 1:899 --external-session-id null
|
|
3428
3433
|
ovld protocol connect --ticket-id 1:899
|
package/package.json
CHANGED
|
@@ -24,6 +24,6 @@ After the command succeeds, report the new `TICKET_ID`.
|
|
|
24
24
|
Rules:
|
|
25
25
|
- Do NOT use this for in-progress work. Use `/prompt` for that.
|
|
26
26
|
- The CLI validates that every changed git-tracked file is represented in `changeRationales` unless `--skip-file-change-check` is passed.
|
|
27
|
-
- If project resolution fails, re-run with `--project-id <id>` or `--personal`.
|
|
27
|
+
- If project resolution fails, re-run with `--project-id <id-or-name>` or `--personal`.
|
|
28
28
|
|
|
29
29
|
|
|
@@ -114,6 +114,7 @@ When creating tickets from within a repository:
|
|
|
114
114
|
- Prefer `create` by default for draft ticket creation.
|
|
115
115
|
- Use `prompt` only when the user explicitly asks to start execution immediately.
|
|
116
116
|
- Both commands can resolve the project from the current working directory; use `--working-directory` to override or `--project-id` to be explicit.
|
|
117
|
+
- Follow-up `create` calls under an active session inherit the current ticket's project by default, but `--project-id` can override that when the follow-up belongs in a different project.
|
|
117
118
|
- Create multiple tickets when each prompt represents a different feature or goal.
|
|
118
119
|
- Add objectives to the same ticket when each prompt is a sequential step toward the same feature or goal; use `ovld protocol add-objectives --ticket-id <ticket_id> --objectives-json '[{"objective":"..."}]'`.
|
|
119
120
|
- `create`, `prompt`, and `record-work` 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.
|
|
@@ -134,11 +135,12 @@ To inspect project resolution explicitly:
|
|
|
134
135
|
|
|
135
136
|
```bash
|
|
136
137
|
ovld protocol discover-project
|
|
137
|
-
ovld protocol discover-project --project-id <
|
|
138
|
+
ovld protocol discover-project --project-id <id-or-name>
|
|
139
|
+
ovld protocol discover-project --project-id "My Project"
|
|
138
140
|
ovld protocol discover-project --working-directory /path/to/repo
|
|
139
141
|
```
|
|
140
142
|
|
|
141
|
-
Use `--project-id` when the project
|
|
143
|
+
Use `--project-id` when the project ID or name is already known (names are unique per organization, matched case-insensitively). Use `--working-directory` to override cwd path matching. If the runtime has an `OVERLORD_DEVICE_FINGERPRINT`, pass `--device-fingerprint "$OVERLORD_DEVICE_FINGERPRINT"` so resource-directory matching prefers the current device.
|
|
142
144
|
|
|
143
145
|
## Creating Projects
|
|
144
146
|
|
|
@@ -114,6 +114,7 @@ When creating tickets from within a repository:
|
|
|
114
114
|
- Prefer `create` by default for draft ticket creation.
|
|
115
115
|
- Use `prompt` only when the user explicitly asks to start execution immediately.
|
|
116
116
|
- Both commands can resolve the project from the current working directory; use `--working-directory` to override or `--project-id` to be explicit.
|
|
117
|
+
- Follow-up `create` calls under an active session inherit the current ticket's project by default, but `--project-id` can override that when the follow-up belongs in a different project.
|
|
117
118
|
- Create multiple tickets when each prompt represents a different feature or goal.
|
|
118
119
|
- Add objectives to the same ticket when each prompt is a sequential step toward the same feature or goal; use `ovld protocol add-objectives --ticket-id <ticket_id> --objectives-json '[{"objective":"..."}]'`.
|
|
119
120
|
- `create`, `prompt`, and `record-work` 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.
|
|
@@ -134,11 +135,12 @@ To inspect project resolution explicitly:
|
|
|
134
135
|
|
|
135
136
|
```bash
|
|
136
137
|
ovld protocol discover-project
|
|
137
|
-
ovld protocol discover-project --project-id <
|
|
138
|
+
ovld protocol discover-project --project-id <id-or-name>
|
|
139
|
+
ovld protocol discover-project --project-id "My Project"
|
|
138
140
|
ovld protocol discover-project --working-directory /path/to/repo
|
|
139
141
|
```
|
|
140
142
|
|
|
141
|
-
Use `--project-id` when the project
|
|
143
|
+
Use `--project-id` when the project ID or name is already known (names are unique per organization, matched case-insensitively). Use `--working-directory` to override cwd path matching. If the runtime has an `OVERLORD_DEVICE_FINGERPRINT`, pass `--device-fingerprint "$OVERLORD_DEVICE_FINGERPRINT"` so resource-directory matching prefers the current device.
|
|
142
144
|
|
|
143
145
|
## Creating Projects
|
|
144
146
|
|
|
@@ -64,7 +64,8 @@ const tools = [
|
|
|
64
64
|
properties: {
|
|
65
65
|
project_id: {
|
|
66
66
|
type: 'string',
|
|
67
|
-
description:
|
|
67
|
+
description:
|
|
68
|
+
'Project UUID or name to resolve directly. Skips working-directory matching. Names are unique per organization and matched case-insensitively.'
|
|
68
69
|
},
|
|
69
70
|
working_directory: {
|
|
70
71
|
type: 'string',
|
|
@@ -270,7 +271,8 @@ const tools = [
|
|
|
270
271
|
},
|
|
271
272
|
{
|
|
272
273
|
name: 'create_ticket',
|
|
273
|
-
description:
|
|
274
|
+
description:
|
|
275
|
+
'Create a draft ticket without attaching (ovld protocol create). When session_key/ticket_id are provided, this creates a follow-up draft and project_id can override the current ticket project.',
|
|
274
276
|
inputSchema: {
|
|
275
277
|
type: 'object',
|
|
276
278
|
properties: {
|
|
@@ -1170,6 +1172,11 @@ const searchTicketsTool = {
|
|
|
1170
1172
|
limit: {
|
|
1171
1173
|
type: 'number',
|
|
1172
1174
|
description: 'Maximum number of results to return (1–50, default 8).'
|
|
1175
|
+
},
|
|
1176
|
+
project_id: {
|
|
1177
|
+
type: 'string',
|
|
1178
|
+
description:
|
|
1179
|
+
'Optional project UUID or name to restrict results. Names are matched case-insensitively.'
|
|
1173
1180
|
}
|
|
1174
1181
|
}
|
|
1175
1182
|
},
|
|
@@ -1177,7 +1184,8 @@ const searchTicketsTool = {
|
|
|
1177
1184
|
query: args.query,
|
|
1178
1185
|
statuses: Array.isArray(args.statuses) ? args.statuses.join(',') : args.statuses,
|
|
1179
1186
|
'include-completed': args.include_completed,
|
|
1180
|
-
limit: args.limit
|
|
1187
|
+
limit: args.limit,
|
|
1188
|
+
'project-id': args.project_id
|
|
1181
1189
|
}),
|
|
1182
1190
|
subcommand: 'search-tickets'
|
|
1183
1191
|
};
|
|
@@ -114,6 +114,7 @@ When creating tickets from within a repository:
|
|
|
114
114
|
- Prefer `create` by default for draft ticket creation.
|
|
115
115
|
- Use `prompt` only when the user explicitly asks to start execution immediately.
|
|
116
116
|
- Both commands can resolve the project from the current working directory; use `--working-directory` to override or `--project-id` to be explicit.
|
|
117
|
+
- Follow-up `create` calls under an active session inherit the current ticket's project by default, but `--project-id` can override that when the follow-up belongs in a different project.
|
|
117
118
|
- Create multiple tickets when each prompt represents a different feature or goal.
|
|
118
119
|
- Add objectives to the same ticket when each prompt is a sequential step toward the same feature or goal; use `ovld protocol add-objectives --ticket-id <ticket_id> --objectives-json '[{"objective":"..."}]'`.
|
|
119
120
|
- `create`, `prompt`, and `record-work` 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.
|
|
@@ -134,11 +135,12 @@ To inspect project resolution explicitly:
|
|
|
134
135
|
|
|
135
136
|
```bash
|
|
136
137
|
ovld protocol discover-project
|
|
137
|
-
ovld protocol discover-project --project-id <
|
|
138
|
+
ovld protocol discover-project --project-id <id-or-name>
|
|
139
|
+
ovld protocol discover-project --project-id "My Project"
|
|
138
140
|
ovld protocol discover-project --working-directory /path/to/repo
|
|
139
141
|
```
|
|
140
142
|
|
|
141
|
-
Use `--project-id` when the project
|
|
143
|
+
Use `--project-id` when the project ID or name is already known (names are unique per organization, matched case-insensitively). Use `--working-directory` to override cwd path matching. If the runtime has an `OVERLORD_DEVICE_FINGERPRINT`, pass `--device-fingerprint "$OVERLORD_DEVICE_FINGERPRINT"` so resource-directory matching prefers the current device.
|
|
142
144
|
|
|
143
145
|
## Creating Projects
|
|
144
146
|
|