overlord-cli 3.12.0 → 3.18.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 CHANGED
@@ -38,7 +38,7 @@ ovld doctor
38
38
 
39
39
  ## Requirements
40
40
 
41
- - Node.js 18 or newer
41
+ - Node.js 24 or newer
42
42
  - Access to an Overlord instance when using authenticated commands
43
43
 
44
44
  ## Commands
@@ -56,4 +56,4 @@ ovld doctor
56
56
 
57
57
  ## License
58
58
 
59
- Permission is granted to use this software for any purpose, free of charge. You may not modify, distribute, sublicense, or sell copies of the software without explicit permission from the author.
59
+ Permission is granted to use this software for any purpose, free of charge. You may not modify, distribute, sublicense, or sell copies of the software without explicit permission from the author.
@@ -6,11 +6,35 @@
6
6
  */
7
7
 
8
8
  import { execFileSync } from 'node:child_process';
9
+ import fs from 'node:fs';
10
+ import os from 'node:os';
11
+ import path from 'node:path';
9
12
  import { buildAuthHeaders, resolveAuth } from './credentials.mjs';
10
13
  import { runAttachCommand } from './attach.mjs';
11
14
 
12
- async function fetchContext(platformUrl, agentToken, localSecret, ticketId) {
13
- const url = `${platformUrl}/api/protocol/context/${ticketId}?context=cli`;
15
+ function getInstructionMode(agent) {
16
+ if (agent === 'codex') {
17
+ const pluginManifest = path.join(
18
+ os.homedir(),
19
+ '.codex',
20
+ 'plugins',
21
+ 'overlord',
22
+ '.codex-plugin',
23
+ 'plugin.json'
24
+ );
25
+ return fs.existsSync(pluginManifest) ? 'bundle' : 'legacy';
26
+ }
27
+
28
+ return 'legacy';
29
+ }
30
+
31
+ async function fetchContext(platformUrl, agentToken, localSecret, ticketId, agent) {
32
+ const params = new URLSearchParams({
33
+ context: 'cli',
34
+ agent,
35
+ instructionMode: getInstructionMode(agent)
36
+ });
37
+ const url = `${platformUrl}/api/protocol/context/${ticketId}?${params.toString()}`;
14
38
  const response = await fetch(url, {
15
39
  headers: buildAuthHeaders(agentToken, localSecret)
16
40
  });
@@ -78,7 +102,7 @@ async function runAgent(agent, mode = 'run') {
78
102
  }
79
103
 
80
104
  const { platformUrl, agentToken, localSecret } = resolveAuth();
81
- const context = await fetchContext(platformUrl, agentToken, localSecret, ticketId);
105
+ const context = await fetchContext(platformUrl, agentToken, localSecret, ticketId, agent);
82
106
 
83
107
  const childEnv = { ...process.env, AGENT_IDENTIFIER: agentIdentifierMap[agent] };
84
108
 
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "overlord-cli",
3
- "version": "3.12.0",
3
+ "version": "3.18.0",
4
4
  "description": "Overlord CLI — launch AI agents on tickets from anywhere",
5
+ "private": false,
5
6
  "type": "module",
6
7
  "bin": {
7
- "ovld": "bin/ovld.mjs",
8
- "overlord": "bin/ovld.mjs"
8
+ "overlord": "bin/ovld.mjs",
9
+ "ovld": "bin/ovld.mjs"
9
10
  },
10
11
  "publishConfig": {
11
12
  "access": "public"
@@ -15,7 +16,7 @@
15
16
  "plugins/"
16
17
  ],
17
18
  "engines": {
18
- "node": ">=18"
19
+ "node": ">=24"
19
20
  },
20
21
  "keywords": [
21
22
  "overlord",
@@ -26,6 +27,6 @@
26
27
  "license": "Proprietary",
27
28
  "repository": {
28
29
  "type": "git",
29
- "url": "https://github.com/cooperativ/overlord"
30
+ "url": "git+https://github.com/cooperativ/overlord.git"
30
31
  }
31
32
  }