@openape/apes 1.19.0 → 1.20.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/dist/cli.js CHANGED
@@ -2782,7 +2782,7 @@ if [ -n "$UID_OF" ]; then
2782
2782
  pkill -9 -u "$UID_OF" 2>/dev/null || true
2783
2783
  fi
2784
2784
 
2785
- # Per-agent system LaunchDaemon written by spawn --bridge. Bootout +
2785
+ # Per-agent system LaunchDaemon written by spawn (unless --no-bridge). Bootout +
2786
2786
  # delete must come BEFORE we delete the user, otherwise launchd keeps a
2787
2787
  # zombie reference. No-op if the plist isn't there.
2788
2788
  BRIDGE_LABEL="eco.hofmann.apes.bridge.$NAME"
@@ -3937,7 +3937,7 @@ function bridgePlistPath(agentName) {
3937
3937
  function buildBridgeEnvFile(cfg) {
3938
3938
  const modelLine = cfg.model ? `APE_CHAT_BRIDGE_MODEL=${cfg.model}
3939
3939
  ` : "";
3940
- return `# Auto-generated by 'apes agents spawn --bridge'.
3940
+ return `# Auto-generated by 'apes agents spawn'.
3941
3941
  # Read by the chat-bridge daemon at boot to talk to the local LLM proxy.
3942
3942
  LITELLM_BASE_URL=${cfg.baseUrl}
3943
3943
  LITELLM_API_KEY=${cfg.apiKey}
@@ -3946,7 +3946,7 @@ ${modelLine}`;
3946
3946
  function buildBridgeStartScript(hostBinDirs) {
3947
3947
  const pathLine = `export PATH="${hostBinDirs.join(":")}:/usr/bin:/bin"`;
3948
3948
  return `#!/usr/bin/env bash
3949
- # Auto-generated by 'apes agents spawn --bridge'.
3949
+ # Auto-generated by 'apes agents spawn'.
3950
3950
  # Slim launcher \u2014 bridge stack lives on the host, no per-agent install.
3951
3951
  set -euo pipefail
3952
3952
 
@@ -4043,9 +4043,9 @@ var spawnAgentCommand = defineCommand26({
4043
4043
  type: "boolean",
4044
4044
  description: "Read the Claude Code OAuth token from stdin (paranoid form of --claude-token)."
4045
4045
  },
4046
- "bridge": {
4046
+ "no-bridge": {
4047
4047
  type: "boolean",
4048
- description: "Install the ape-agent runtime for this agent: drops a launchd plist that runs `@openape/ape-agent` so the agent answers chat.openape.ai messages. Reads LITELLM_API_KEY/BASE_URL defaults from ~/litellm/.env; override via --bridge-key / --bridge-base-url."
4048
+ description: "Skip the ape-agent runtime install. Default behaviour installs the runtime so the agent answers chat.openape.ai messages (reads LITELLM_API_KEY/BASE_URL from ~/litellm/.env; override via --bridge-key / --bridge-base-url). Use --no-bridge for headless / CI / IdP-only account provisioning where the agent will not run a chat loop."
4049
4049
  },
4050
4050
  "bridge-key": {
4051
4051
  type: "string",
@@ -4138,7 +4138,8 @@ and try again.`
4138
4138
  flag: typeof args["claude-token"] === "string" ? args["claude-token"] : void 0,
4139
4139
  fromStdin: !!args["claude-token-stdin"]
4140
4140
  });
4141
- const bridge = args.bridge ? (() => {
4141
+ const withBridge = !args["no-bridge"];
4142
+ const bridge = withBridge ? (() => {
4142
4143
  const cfg = resolveBridgeConfig({
4143
4144
  cliKey: typeof args["bridge-key"] === "string" ? args["bridge-key"] : void 0,
4144
4145
  cliBaseUrl: typeof args["bridge-base-url"] === "string" ? args["bridge-base-url"] : void 0,
@@ -4192,7 +4193,7 @@ and try again.`
4192
4193
  home: homeDir,
4193
4194
  email: registration.email,
4194
4195
  registeredAt: Math.floor(Date.now() / 1e3),
4195
- bridge: args.bridge ? {
4196
+ bridge: withBridge ? {
4196
4197
  baseUrl: typeof args["bridge-base-url"] === "string" ? args["bridge-base-url"] : void 0,
4197
4198
  apiKey: typeof args["bridge-key"] === "string" ? args["bridge-key"] : void 0,
4198
4199
  model: typeof args["bridge-model"] === "string" ? args["bridge-model"] : void 0
@@ -4203,7 +4204,7 @@ and try again.`
4203
4204
  }
4204
4205
  consola23.success(`Agent ${name} spawned.`);
4205
4206
  consola23.info(`\u{1F517} Troop: https://troop.openape.ai/agents/${name}`);
4206
- if (args.bridge) {
4207
+ if (withBridge) {
4207
4208
  consola23.info(`On first boot, the bridge will send you a contact request from ${registration.email}.`);
4208
4209
  consola23.info("Open chat.openape.ai and accept it to start chatting with the agent.");
4209
4210
  }
@@ -4763,7 +4764,7 @@ var installNestCommand = defineCommand32({
4763
4764
  },
4764
4765
  "bridge-model": {
4765
4766
  type: "string",
4766
- description: "Default model for chat-bridge spawns. Persisted as APE_CHAT_BRIDGE_MODEL in ~/litellm/.env so every `apes [nest|agents] spawn --bridge` picks it up automatically. Common values: `gpt-5.4` (ChatGPT-only LiteLLM proxy), `claude-haiku-4-5` (Anthropic-only). Re-run install with a new value to overwrite."
4767
+ description: "Default model for ape-agent spawns. Persisted as APE_CHAT_BRIDGE_MODEL in ~/litellm/.env so every `apes [nest|agents] spawn` picks it up automatically. Common values: `gpt-5.4` (ChatGPT-only LiteLLM proxy), `claude-haiku-4-5` (Anthropic-only). Re-run install with a new value to overwrite."
4767
4768
  }
4768
4769
  },
4769
4770
  async run({ args }) {
@@ -4872,7 +4873,7 @@ var spawnNestCommand = defineCommand34({
4872
4873
  "spawn",
4873
4874
  name
4874
4875
  ];
4875
- if (!args["no-bridge"]) apesArgs.push("--bridge");
4876
+ if (args["no-bridge"]) apesArgs.push("--no-bridge");
4876
4877
  if (typeof args["bridge-key"] === "string") apesArgs.push("--bridge-key", args["bridge-key"]);
4877
4878
  if (typeof args["bridge-base-url"] === "string") apesArgs.push("--bridge-base-url", args["bridge-base-url"]);
4878
4879
  if (typeof args["bridge-model"] === "string") apesArgs.push("--bridge-model", args["bridge-model"]);
@@ -6427,7 +6428,7 @@ var mcpCommand = defineCommand48({
6427
6428
  if (transport !== "stdio" && transport !== "sse") {
6428
6429
  throw new Error('Transport must be "stdio" or "sse"');
6429
6430
  }
6430
- const { startMcpServer } = await import("./server-RW4PMCV7.js");
6431
+ const { startMcpServer } = await import("./server-WKCSHOBY.js");
6431
6432
  await startMcpServer(transport, port);
6432
6433
  }
6433
6434
  });
@@ -7065,7 +7066,7 @@ async function bestEffortGrantCount(idp) {
7065
7066
  }
7066
7067
  }
7067
7068
  async function runHealth(args) {
7068
- const version = true ? "1.19.0" : "0.0.0";
7069
+ const version = true ? "1.20.0" : "0.0.0";
7069
7070
  const auth = loadAuth();
7070
7071
  if (!auth) {
7071
7072
  throw new CliError("Not logged in. Run `apes login` first.", 1);
@@ -7338,10 +7339,10 @@ if (shellRewrite) {
7338
7339
  if (shellRewrite.action === "rewrite") {
7339
7340
  process.argv = shellRewrite.argv;
7340
7341
  } else if (shellRewrite.action === "version") {
7341
- console.log(`ape-shell ${"1.19.0"} (OpenApe DDISA shell wrapper)`);
7342
+ console.log(`ape-shell ${"1.20.0"} (OpenApe DDISA shell wrapper)`);
7342
7343
  process.exit(0);
7343
7344
  } else if (shellRewrite.action === "help") {
7344
- console.log(`ape-shell ${"1.19.0"} \u2014 OpenApe DDISA shell wrapper`);
7345
+ console.log(`ape-shell ${"1.20.0"} \u2014 OpenApe DDISA shell wrapper`);
7345
7346
  console.log("");
7346
7347
  console.log("Usage:");
7347
7348
  console.log(" ape-shell Start interactive grant-mediated REPL");
@@ -7399,7 +7400,7 @@ var configCommand = defineCommand60({
7399
7400
  var main = defineCommand60({
7400
7401
  meta: {
7401
7402
  name: "apes",
7402
- version: "1.19.0",
7403
+ version: "1.20.0",
7403
7404
  description: "Unified CLI for OpenApe"
7404
7405
  },
7405
7406
  subCommands: {
@@ -7456,7 +7457,7 @@ async function maybeRefreshAuth() {
7456
7457
  }
7457
7458
  }
7458
7459
  await maybeRefreshAuth();
7459
- await maybeWarnStaleVersion("1.19.0").catch(() => {
7460
+ await maybeWarnStaleVersion("1.20.0").catch(() => {
7460
7461
  });
7461
7462
  runMain(main).catch((err) => {
7462
7463
  if (err instanceof CliExit) {