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.
@@ -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, projectId) {
309
- if (!projectId) return null;
308
+ export function resolveProject(projects, projectIdOrName) {
309
+ if (!projectIdOrName) return null;
310
310
 
311
- const project = projects.find(candidate => candidate.id === projectId);
312
- if (!project) {
313
- throw new Error(`Unknown project ID: ${projectId}`);
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
- return project;
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 <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
  }
@@ -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 <project-uuid>
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 <uuid> Resolve this project directly; skips working-directory matching
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 <uuid> Restrict to a single project
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> Explicit project; skips working-directory resolution
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> Explicit project for standalone draft creation
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> Skip cwd resolution and use this project explicitly
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
@@ -1945,7 +1945,10 @@ function installCodexPermissions() {
1945
1945
  // ---------------------------------------------------------------------------
1946
1946
 
1947
1947
  export async function runSetupCommand(args) {
1948
- const agent = args[0];
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "overlord-cli",
3
- "version": "0.2606041635.0",
3
+ "version": "0.2606050806.0",
4
4
  "description": "Overlord CLI — launch AI agents on tickets from anywhere",
5
5
  "homepage": "https://www.ovld.ai/docs/",
6
6
  "type": "module",
@@ -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 <project_uuid>
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 id is already known. 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
+ 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 <project_uuid>
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 id is already known. 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
+ 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: 'Project UUID to resolve directly. Skips working-directory matching.'
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 <project_uuid>
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 id is already known. 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
+ 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