overlord-cli 0.2609250853.0 → 0.2609280950.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 +2 -0
- package/dist/connectors/VERSION +1 -1
- package/dist/connectors/adapters/antigravity/plugin.json +1 -1
- package/dist/connectors/adapters/claude/.claude-plugin/plugin.json +1 -1
- package/dist/connectors/adapters/claude/README.md +0 -9
- package/dist/connectors/adapters/codex/.codex-plugin/plugin.json +1 -1
- package/dist/connectors/adapters/cursor/.cursor-plugin/plugin.json +1 -1
- package/dist/connectors/core/overlord-mission/SKILL.md +3 -3
- package/dist/connectors/core/scripts/overlord-mcp.mjs +1 -1
- package/dist/index.js +55 -14
- package/dist/index.js.map +4 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -202,6 +202,8 @@ Notes for headless use:
|
|
|
202
202
|
- `ovld agent-setup` accepts `--home <dir>` to target a specific `OVLD_HOME`,
|
|
203
203
|
`--dry-run` to preview, and `--json` for machine-readable output. List
|
|
204
204
|
installable connectors with `ovld agent-setup --json`.
|
|
205
|
+
- `ovld agent-setup codex --export <dir>` renders the self-contained plugin
|
|
206
|
+
package into an empty directory without changing the user's Codex setup.
|
|
205
207
|
- Set `OVLD_HOME=/some/writable/dir` if the default `~/.ovld` is not writable in
|
|
206
208
|
your container; it relocates the entire CLI data directory.
|
|
207
209
|
- Interactive `ovld auth login` / `ovld config set` (no args) and `ovld setup`
|
package/dist/connectors/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.3.
|
|
1
|
+
0.3.49
|
|
@@ -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.49",
|
|
5
5
|
"description": "Chat-driven access to Overlord mission protocol workflows through skills and MCP.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Cooperativ",
|
|
@@ -52,15 +52,6 @@ The plugin prompts for `overlord_url` and, when needed for non-interactive use,
|
|
|
52
52
|
claude --plugin-dir /absolute/path/to/Overlord/connectors/adapters/claude
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
-
### Install (published marketplace)
|
|
56
|
-
|
|
57
|
-
Once published:
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
claude plugin marketplace add cooperativ/overlord-marketplace
|
|
61
|
-
claude plugin install overlord@cooperativ
|
|
62
|
-
```
|
|
63
|
-
|
|
64
55
|
### Namespaced components
|
|
65
56
|
|
|
66
57
|
Inside Claude Code the components are surfaced with the plugin prefix:
|
|
@@ -222,8 +222,8 @@ nothing qualifies. Omit the report when none of these facts apply.
|
|
|
222
222
|
|
|
223
223
|
#### Writing a human action the operator can complete
|
|
224
224
|
|
|
225
|
-
Human actions are
|
|
226
|
-
|
|
225
|
+
Human actions are shown on the delivery card, where the operator reads them without your
|
|
226
|
+
session transcript. Each item must stand alone:
|
|
227
227
|
|
|
228
228
|
| Field | Expected | What to write |
|
|
229
229
|
| ---------- | ---------- | ------------------------------------------------------------------------------------------------- |
|
|
@@ -241,7 +241,7 @@ Vague (the operator has to rediscover everything):
|
|
|
241
241
|
{ "action": "Set up the env var for Gemini." }
|
|
242
242
|
```
|
|
243
243
|
|
|
244
|
-
Good (the operator can finish it from the
|
|
244
|
+
Good (the operator can finish it from the card alone):
|
|
245
245
|
|
|
246
246
|
```json
|
|
247
247
|
{
|
|
@@ -1228,7 +1228,7 @@ process.stdin.on('data', async chunk => {
|
|
|
1228
1228
|
result: {
|
|
1229
1229
|
protocolVersion: PROTOCOL_VERSION,
|
|
1230
1230
|
capabilities: { tools: { listChanged: false } },
|
|
1231
|
-
serverInfo: { name: 'overlord-__OVERLORD_ADAPTER_KEY__', version: '0.3.
|
|
1231
|
+
serverInfo: { name: 'overlord-__OVERLORD_ADAPTER_KEY__', version: '0.3.49' }
|
|
1232
1232
|
}
|
|
1233
1233
|
});
|
|
1234
1234
|
continue;
|
package/dist/index.js
CHANGED
|
@@ -2952,13 +2952,25 @@ function setupConnector({
|
|
|
2952
2952
|
agentKey,
|
|
2953
2953
|
home,
|
|
2954
2954
|
configureCodexPermissions = true,
|
|
2955
|
-
dryRun = false
|
|
2955
|
+
dryRun = false,
|
|
2956
|
+
exportPath
|
|
2956
2957
|
}) {
|
|
2958
|
+
if (exportPath && agentKey !== "codex") {
|
|
2959
|
+
throw new CliError({
|
|
2960
|
+
message: "Export mode is currently supported only for the Codex connector."
|
|
2961
|
+
});
|
|
2962
|
+
}
|
|
2957
2963
|
const manifest = readConnectorManifest(agentKey);
|
|
2958
2964
|
const resolvedHome = resolveHome(home);
|
|
2959
|
-
const installPath = expandInstallPath(manifest.connector.installPath, resolvedHome);
|
|
2965
|
+
const installPath = exportPath ? path6.resolve(exportPath) : expandInstallPath(manifest.connector.installPath, resolvedHome);
|
|
2960
2966
|
const sourceDir = connectorDir(agentKey);
|
|
2961
2967
|
const warnings = [];
|
|
2968
|
+
if (exportPath) {
|
|
2969
|
+
mkdirSync3(installPath, { recursive: true });
|
|
2970
|
+
if (readdirSync(installPath).length > 0) {
|
|
2971
|
+
throw new CliError({ message: `Export destination must be empty: ${installPath}` });
|
|
2972
|
+
}
|
|
2973
|
+
}
|
|
2962
2974
|
const files = [];
|
|
2963
2975
|
const stateFiles = [];
|
|
2964
2976
|
const previousState = readInstallState(agentKey, resolvedHome);
|
|
@@ -3032,10 +3044,10 @@ function setupConnector({
|
|
|
3032
3044
|
`Agent binary "${binaryName}" not found on PATH. The connector is installed; install ${binaryName} to launch this agent.`
|
|
3033
3045
|
);
|
|
3034
3046
|
}
|
|
3035
|
-
if (agentKey === "cursor") {
|
|
3047
|
+
if (!exportPath && agentKey === "cursor") {
|
|
3036
3048
|
warnings.push(...configureCursorHarness({ home: resolvedHome, dryRun }));
|
|
3037
3049
|
}
|
|
3038
|
-
if (agentKey === "codex") {
|
|
3050
|
+
if (!exportPath && agentKey === "codex") {
|
|
3039
3051
|
warnings.push(
|
|
3040
3052
|
...configureCodexHarness({
|
|
3041
3053
|
home: resolvedHome,
|
|
@@ -3045,10 +3057,10 @@ function setupConnector({
|
|
|
3045
3057
|
})
|
|
3046
3058
|
);
|
|
3047
3059
|
}
|
|
3048
|
-
if (agentKey === "claude") {
|
|
3060
|
+
if (!exportPath && agentKey === "claude") {
|
|
3049
3061
|
warnings.push(...configureClaudeHarness({ home: resolvedHome, installPath, dryRun }));
|
|
3050
3062
|
}
|
|
3051
|
-
if (!dryRun) {
|
|
3063
|
+
if (!dryRun && !exportPath) {
|
|
3052
3064
|
const installedStateFiles = manifest.connector.managedFiles.map((relativePath) => {
|
|
3053
3065
|
const target = path6.join(installPath, relativePath);
|
|
3054
3066
|
if (!existsSync6(target)) return null;
|
|
@@ -4026,8 +4038,12 @@ async function runAgentSetupCommand({
|
|
|
4026
4038
|
const target = parsed.positional[0];
|
|
4027
4039
|
const dryRun = flagBoolean(parsed.flags, "--dry-run");
|
|
4028
4040
|
const home = flagValue(parsed.flags, "--home");
|
|
4041
|
+
const exportPath = flagValue(parsed.flags, "--export");
|
|
4042
|
+
if (exportPath && target !== "codex") {
|
|
4043
|
+
throw new CliError({ message: "`--export` requires `agent-setup codex`." });
|
|
4044
|
+
}
|
|
4029
4045
|
const shouldConfigureCodexPermissions = async (agentKey) => {
|
|
4030
|
-
if (agentKey !== "codex" || dryRun || json2 || !process.stdin.isTTY) return true;
|
|
4046
|
+
if (agentKey !== "codex" || exportPath || dryRun || json2 || !process.stdin.isTTY) return true;
|
|
4031
4047
|
return promptYesNo(
|
|
4032
4048
|
"Configure Codex permissions to allow it to communicate with the Overlord server?",
|
|
4033
4049
|
true
|
|
@@ -4055,15 +4071,21 @@ async function runAgentSetupCommand({
|
|
|
4055
4071
|
setupConnector({
|
|
4056
4072
|
agentKey: target,
|
|
4057
4073
|
home,
|
|
4074
|
+
exportPath,
|
|
4058
4075
|
dryRun,
|
|
4059
4076
|
configureCodexPermissions: await shouldConfigureCodexPermissions(target)
|
|
4060
4077
|
})
|
|
4061
4078
|
];
|
|
4062
4079
|
if (json2) {
|
|
4063
|
-
printJson({ ok: true, dryRun, results });
|
|
4080
|
+
printJson({ ok: true, dryRun, exported: Boolean(exportPath), results });
|
|
4064
4081
|
} else {
|
|
4065
4082
|
for (const result of results) {
|
|
4066
|
-
|
|
4083
|
+
if (exportPath) {
|
|
4084
|
+
printLine(`Exported connector "${result.agentKey}" \u2192 ${result.installPath}`);
|
|
4085
|
+
for (const file2 of result.files) printLine(` + ${file2.path}`);
|
|
4086
|
+
} else {
|
|
4087
|
+
printHumanResult(result);
|
|
4088
|
+
}
|
|
4067
4089
|
}
|
|
4068
4090
|
}
|
|
4069
4091
|
}
|
|
@@ -20364,6 +20386,23 @@ var init_errors2 = __esm({
|
|
|
20364
20386
|
}
|
|
20365
20387
|
});
|
|
20366
20388
|
|
|
20389
|
+
// ../packages/core/dist/service/worker-jobs.js
|
|
20390
|
+
var init_worker_jobs = __esm({
|
|
20391
|
+
"../packages/core/dist/service/worker-jobs.js"() {
|
|
20392
|
+
"use strict";
|
|
20393
|
+
init_util2();
|
|
20394
|
+
}
|
|
20395
|
+
});
|
|
20396
|
+
|
|
20397
|
+
// ../packages/core/dist/service/live-activity-jobs.js
|
|
20398
|
+
var init_live_activity_jobs = __esm({
|
|
20399
|
+
"../packages/core/dist/service/live-activity-jobs.js"() {
|
|
20400
|
+
"use strict";
|
|
20401
|
+
init_util2();
|
|
20402
|
+
init_worker_jobs();
|
|
20403
|
+
}
|
|
20404
|
+
});
|
|
20405
|
+
|
|
20367
20406
|
// ../database/dist/better-sqlite3-loader.js
|
|
20368
20407
|
var init_better_sqlite3_loader = __esm({
|
|
20369
20408
|
"../database/dist/better-sqlite3-loader.js"() {
|
|
@@ -35713,6 +35752,7 @@ var init_requests = __esm({
|
|
|
35713
35752
|
"use strict";
|
|
35714
35753
|
init_change_feed();
|
|
35715
35754
|
init_errors2();
|
|
35755
|
+
init_live_activity_jobs();
|
|
35716
35756
|
init_util2();
|
|
35717
35757
|
init_webhook_events();
|
|
35718
35758
|
init_window();
|
|
@@ -38674,8 +38714,8 @@ deliver:
|
|
|
38674
38714
|
"link": ".env.example" // when known. HTTP(S) URL or repo-relative path only.
|
|
38675
38715
|
}
|
|
38676
38716
|
Vague: { "action": "Set up the env var for Gemini." } forces the operator to rediscover
|
|
38677
|
-
the name, the place, and the check. Actions are read from the
|
|
38678
|
-
|
|
38717
|
+
the name, the place, and the check. Actions are read from the delivery card without
|
|
38718
|
+
your transcript, so each must stand alone. Overlord adds deterministic_rule actions for new
|
|
38679
38719
|
migrations, .env.example edits, dependency manifests, and CI workflow files on its own;
|
|
38680
38720
|
report those yourself when you can supply the real command and verify step.
|
|
38681
38721
|
Optional:
|
|
@@ -41650,7 +41690,7 @@ var COMMAND_FLAGS = {
|
|
|
41650
41690
|
init: [],
|
|
41651
41691
|
doctor: [],
|
|
41652
41692
|
setup: [],
|
|
41653
|
-
"agent-setup": ["--dry-run", "--home"],
|
|
41693
|
+
"agent-setup": ["--dry-run", "--home", "--export"],
|
|
41654
41694
|
config: ["--path", "--url"],
|
|
41655
41695
|
auth: ["--token", "--organization-id"],
|
|
41656
41696
|
"user-token": ["--label", "--expires-in", "--no-expiry", "--scope", "--id"],
|
|
@@ -41801,8 +41841,9 @@ General:
|
|
|
41801
41841
|
|
|
41802
41842
|
Connectors:
|
|
41803
41843
|
${primaryCommand} agent-setup [--json] List installable agent connectors
|
|
41804
|
-
${primaryCommand} agent-setup <agent> [--dry-run]
|
|
41805
|
-
Install/repair one connector
|
|
41844
|
+
${primaryCommand} agent-setup <agent> [--dry-run] [--export <dir>]
|
|
41845
|
+
Install/repair one connector; Codex --export
|
|
41846
|
+
writes a package without installing it
|
|
41806
41847
|
${primaryCommand} agent-setup all [--dry-run] Install/repair all supported connectors
|
|
41807
41848
|
${primaryCommand} agent-session capabilities [<agent>] [--json]
|
|
41808
41849
|
What a harness can really do on the agent-session
|