overlord-cli 0.2609250853.0 → 0.2609270909.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
@@ -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/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
- printHumanResult(result);
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();
@@ -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 (e.g. claude)
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