overlord-cli 0.2606041635.0 → 0.2606050806.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/bin/_cli/new-ticket.mjs +13 -10
- package/bin/_cli/protocol.mjs +10 -6
- package/bin/_cli/setup.mjs +11 -5
- package/package.json +1 -1
- package/plugins/claude/commands/record-work.md +1 -1
- package/plugins/claude/skills/overlord-ticket/reference/cli.md +3 -2
- package/plugins/cursor/skills/overlord-ticket/reference/cli.md +3 -2
- package/plugins/overlord/scripts/overlord-mcp.mjs +9 -2
- package/plugins/overlord/skills/overlord-ticket/reference/cli.md +3 -2
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
|
@@ -2836,10 +2836,12 @@ Project discovery:
|
|
|
2836
2836
|
You can also discover the project explicitly:
|
|
2837
2837
|
|
|
2838
2838
|
ovld protocol discover-project
|
|
2839
|
-
ovld protocol discover-project --project-id <
|
|
2839
|
+
ovld protocol discover-project --project-id <id-or-name>
|
|
2840
|
+
ovld protocol discover-project --project-id "My Project"
|
|
2840
2841
|
ovld protocol discover-project --working-directory /path/to/repo
|
|
2841
2842
|
|
|
2842
2843
|
Use --project-id to override automatic resolution on discover, prompt, or ticket creation.
|
|
2844
|
+
Accepts a UUID or a project name (names are unique per organization).
|
|
2843
2845
|
Use --personal to create a private ticket without assigning any project.
|
|
2844
2846
|
|
|
2845
2847
|
Subcommands:
|
|
@@ -2912,7 +2914,7 @@ discover-project:
|
|
|
2912
2914
|
Resolve the Overlord project that corresponds to the current (or given) working directory.
|
|
2913
2915
|
Uses the caller's configured "Local working directory" for matching.
|
|
2914
2916
|
Optional:
|
|
2915
|
-
--project-id <
|
|
2917
|
+
--project-id <id-or-name> Resolve this project directly; skips working-directory matching
|
|
2916
2918
|
--working-directory <path> Directory to match (default: current working directory)
|
|
2917
2919
|
--device-fingerprint <fp> Prefer resource directories for this registered device
|
|
2918
2920
|
--device-hostname <name> Register/update device metadata when fingerprint is provided
|
|
@@ -2982,7 +2984,7 @@ search-tickets:
|
|
|
2982
2984
|
--status <csv> Comma-separated statuses, e.g. "draft,next-up,execute"
|
|
2983
2985
|
--include-completed <bool> Include completed tickets (default: false)
|
|
2984
2986
|
--limit <n> Max results 1..50 (default: 8)
|
|
2985
|
-
--project-id <
|
|
2987
|
+
--project-id <id-or-name> Restrict to a single project
|
|
2986
2988
|
--created-by <uuid> Restrict to tickets created by this user
|
|
2987
2989
|
--updated-after <iso> Updated_at >= ISO timestamp
|
|
2988
2990
|
--updated-before <iso> Updated_at <= ISO timestamp
|
|
@@ -3134,7 +3136,7 @@ prompt:
|
|
|
3134
3136
|
Optional:
|
|
3135
3137
|
--title <text>
|
|
3136
3138
|
--priority <level> low | medium | high | urgent
|
|
3137
|
-
--project-id <id>
|
|
3139
|
+
--project-id <id-or-name> Explicit project (UUID or name); skips working-directory resolution
|
|
3138
3140
|
--personal Create the ticket without assigning a project
|
|
3139
3141
|
--working-directory <path> Override cwd for project resolution (default: cwd)
|
|
3140
3142
|
--acceptance-criteria <text>
|
|
@@ -3173,7 +3175,7 @@ create:
|
|
|
3173
3175
|
--session-key <key>
|
|
3174
3176
|
--ticket-id <ticket_id>
|
|
3175
3177
|
--working-directory <path> Resolve project by your configured local working directory (default: cwd)
|
|
3176
|
-
--project-id <id>
|
|
3178
|
+
--project-id <id-or-name> Explicit project (UUID or name) for standalone draft creation
|
|
3177
3179
|
--personal Create a private standalone draft without a project
|
|
3178
3180
|
--title <text>
|
|
3179
3181
|
--priority <level> low | medium | high | urgent
|
|
@@ -3219,7 +3221,7 @@ record-work:
|
|
|
3219
3221
|
Optional:
|
|
3220
3222
|
--title <text> Auto-derived from objective if omitted
|
|
3221
3223
|
--priority <level> low | medium | high | urgent
|
|
3222
|
-
--project-id <id>
|
|
3224
|
+
--project-id <id-or-name> Skip cwd resolution and use this project explicitly (UUID or name)
|
|
3223
3225
|
--working-directory <path> Override cwd for project resolution
|
|
3224
3226
|
--personal Create a private ticket when no project should be associated
|
|
3225
3227
|
--artifacts-json <json>
|
|
@@ -3421,8 +3423,10 @@ Examples:
|
|
|
3421
3423
|
ovld protocol auth-status
|
|
3422
3424
|
ovld protocol discover-project
|
|
3423
3425
|
ovld protocol discover-project --project-id <project-uuid>
|
|
3426
|
+
ovld protocol discover-project --project-id "My Project" # resolve by name
|
|
3424
3427
|
ovld protocol discover-project --working-directory /path/to/repo
|
|
3425
3428
|
ovld protocol prompt --agent codex --objective "Implement feature X" # auto-resolves project from cwd
|
|
3429
|
+
ovld protocol prompt --project-id "My Project" --objective "Fix bug" # resolve project by name
|
|
3426
3430
|
ovld protocol attach --ticket-id 1:899
|
|
3427
3431
|
ovld protocol attach --ticket-id 1:899 --external-session-id null
|
|
3428
3432
|
ovld protocol connect --ticket-id 1:899
|
package/bin/_cli/setup.mjs
CHANGED
|
@@ -1945,7 +1945,10 @@ function installCodexPermissions() {
|
|
|
1945
1945
|
// ---------------------------------------------------------------------------
|
|
1946
1946
|
|
|
1947
1947
|
export async function runSetupCommand(args) {
|
|
1948
|
-
const
|
|
1948
|
+
const yesFlag = args.includes('--yes') || args.includes('-y') ||
|
|
1949
|
+
/^(1|true|yes|on)$/i.test(String(process.env.AGENT_POD_OVERLORD ?? '').trim());
|
|
1950
|
+
const filteredArgs = args.filter(a => a !== '--yes' && a !== '-y');
|
|
1951
|
+
const agent = filteredArgs[0];
|
|
1949
1952
|
|
|
1950
1953
|
if (agent === '--help' || agent === '-h' || agent === 'help') {
|
|
1951
1954
|
console.log(`Usage:
|
|
@@ -1956,7 +1959,10 @@ export async function runSetupCommand(args) {
|
|
|
1956
1959
|
ovld setup antigravity Install Overlord Antigravity plugin (agy) and protocol policy rules
|
|
1957
1960
|
ovld setup opencode Install Overlord connector for OpenCode
|
|
1958
1961
|
ovld setup all Prepare all supported agents
|
|
1959
|
-
ovld doctor Validate installed connectors and check for CLI updates
|
|
1962
|
+
ovld doctor Validate installed connectors and check for CLI updates
|
|
1963
|
+
|
|
1964
|
+
Options:
|
|
1965
|
+
--yes, -y Auto-approve all prompts (for non-interactive / pod environments)`);
|
|
1960
1966
|
return;
|
|
1961
1967
|
}
|
|
1962
1968
|
|
|
@@ -2025,7 +2031,7 @@ export async function runSetupCommand(args) {
|
|
|
2025
2031
|
console.log('Agent plugins/connectors prepared successfully!\n');
|
|
2026
2032
|
|
|
2027
2033
|
printAgentPermissionsDescription();
|
|
2028
|
-
const shouldInstallPermissions = await askYesNo(
|
|
2034
|
+
const shouldInstallPermissions = yesFlag || await askYesNo(
|
|
2029
2035
|
'Would you like to configure agent permissions for Overlord protocol access?',
|
|
2030
2036
|
true
|
|
2031
2037
|
);
|
|
@@ -2072,7 +2078,7 @@ export async function runSetupCommand(args) {
|
|
|
2072
2078
|
if (agentsThatNeedPermissions.length > 0) {
|
|
2073
2079
|
console.log();
|
|
2074
2080
|
printAgentPermissionsDescription();
|
|
2075
|
-
const shouldInstallPermissions = await askYesNo(
|
|
2081
|
+
const shouldInstallPermissions = yesFlag || await askYesNo(
|
|
2076
2082
|
'Would you like to configure agent permissions for Overlord protocol access?',
|
|
2077
2083
|
true
|
|
2078
2084
|
);
|
|
@@ -2107,7 +2113,7 @@ export async function runSetupCommand(args) {
|
|
|
2107
2113
|
if (['claude', 'codex', 'opencode'].includes(agent)) {
|
|
2108
2114
|
console.log();
|
|
2109
2115
|
printAgentPermissionsDescription();
|
|
2110
|
-
const shouldInstallPermissions = await askYesNo(
|
|
2116
|
+
const shouldInstallPermissions = yesFlag || await askYesNo(
|
|
2111
2117
|
'Would you like to configure agent permissions for Overlord protocol access?',
|
|
2112
2118
|
true
|
|
2113
2119
|
);
|
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
|
|
|
@@ -134,11 +134,12 @@ To inspect project resolution explicitly:
|
|
|
134
134
|
|
|
135
135
|
```bash
|
|
136
136
|
ovld protocol discover-project
|
|
137
|
-
ovld protocol discover-project --project-id <
|
|
137
|
+
ovld protocol discover-project --project-id <id-or-name>
|
|
138
|
+
ovld protocol discover-project --project-id "My Project"
|
|
138
139
|
ovld protocol discover-project --working-directory /path/to/repo
|
|
139
140
|
```
|
|
140
141
|
|
|
141
|
-
Use `--project-id` when the project
|
|
142
|
+
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
143
|
|
|
143
144
|
## Creating Projects
|
|
144
145
|
|
|
@@ -134,11 +134,12 @@ To inspect project resolution explicitly:
|
|
|
134
134
|
|
|
135
135
|
```bash
|
|
136
136
|
ovld protocol discover-project
|
|
137
|
-
ovld protocol discover-project --project-id <
|
|
137
|
+
ovld protocol discover-project --project-id <id-or-name>
|
|
138
|
+
ovld protocol discover-project --project-id "My Project"
|
|
138
139
|
ovld protocol discover-project --working-directory /path/to/repo
|
|
139
140
|
```
|
|
140
141
|
|
|
141
|
-
Use `--project-id` when the project
|
|
142
|
+
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
143
|
|
|
143
144
|
## Creating Projects
|
|
144
145
|
|
|
@@ -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',
|
|
@@ -1170,6 +1171,11 @@ const searchTicketsTool = {
|
|
|
1170
1171
|
limit: {
|
|
1171
1172
|
type: 'number',
|
|
1172
1173
|
description: 'Maximum number of results to return (1–50, default 8).'
|
|
1174
|
+
},
|
|
1175
|
+
project_id: {
|
|
1176
|
+
type: 'string',
|
|
1177
|
+
description:
|
|
1178
|
+
'Optional project UUID or name to restrict results. Names are matched case-insensitively.'
|
|
1173
1179
|
}
|
|
1174
1180
|
}
|
|
1175
1181
|
},
|
|
@@ -1177,7 +1183,8 @@ const searchTicketsTool = {
|
|
|
1177
1183
|
query: args.query,
|
|
1178
1184
|
statuses: Array.isArray(args.statuses) ? args.statuses.join(',') : args.statuses,
|
|
1179
1185
|
'include-completed': args.include_completed,
|
|
1180
|
-
limit: args.limit
|
|
1186
|
+
limit: args.limit,
|
|
1187
|
+
'project-id': args.project_id
|
|
1181
1188
|
}),
|
|
1182
1189
|
subcommand: 'search-tickets'
|
|
1183
1190
|
};
|
|
@@ -134,11 +134,12 @@ To inspect project resolution explicitly:
|
|
|
134
134
|
|
|
135
135
|
```bash
|
|
136
136
|
ovld protocol discover-project
|
|
137
|
-
ovld protocol discover-project --project-id <
|
|
137
|
+
ovld protocol discover-project --project-id <id-or-name>
|
|
138
|
+
ovld protocol discover-project --project-id "My Project"
|
|
138
139
|
ovld protocol discover-project --working-directory /path/to/repo
|
|
139
140
|
```
|
|
140
141
|
|
|
141
|
-
Use `--project-id` when the project
|
|
142
|
+
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
143
|
|
|
143
144
|
## Creating Projects
|
|
144
145
|
|