@otto-code/cli 0.7.6 → 0.8.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.
@@ -22,7 +22,7 @@ export type AgentDeleteScope = "active" | "archived" | "both";
22
22
  * `--all` / `--cwd` still mean active-only.
23
23
  *
24
24
  * Both flags at once is contradictory ("only archived" and "also archived"), so
25
- * it is refused rather than guessed this command is irreversible.
25
+ * it is refused rather than guessed - this command is irreversible.
26
26
  */
27
27
  export declare function resolveAgentDeleteScope(options: {
28
28
  archived?: boolean;
@@ -20,7 +20,7 @@ export const deleteSchema = {
20
20
  * `--all` / `--cwd` still mean active-only.
21
21
  *
22
22
  * Both flags at once is contradictory ("only archived" and "also archived"), so
23
- * it is refused rather than guessed this command is irreversible.
23
+ * it is refused rather than guessed - this command is irreversible.
24
24
  */
25
25
  export function resolveAgentDeleteScope(options) {
26
26
  if (options.archived && options.includeArchived) {
@@ -153,7 +153,7 @@ export async function runSendCommand(agentIdArg, prompt, options, _command) {
153
153
  images,
154
154
  ...(options.queue ? { delivery: "queue" } : {}),
155
155
  });
156
- // A queued message has no run to wait for yet it starts when the current
156
+ // A queued message has no run to wait for yet - it starts when the current
157
157
  // turn ends, so report it and return rather than blocking on --wait.
158
158
  if (dispatch.queued) {
159
159
  await client.close();
@@ -79,9 +79,9 @@ function buildChildEnv(options) {
79
79
  // A packaged desktop build runs this CLI on the Electron binary
80
80
  // (`process.execPath` is e.g. /opt/Otto/Otto). Spawning the daemon through that
81
81
  // binary then needs two things the plain-Node path doesn't:
82
- // 1. ELECTRON_RUN_AS_NODE=1 otherwise the binary boots as the Otto GUI/CLI
82
+ // 1. ELECTRON_RUN_AS_NODE=1 - otherwise the binary boots as the Otto GUI/CLI
83
83
  // (commander) and rejects the daemon entry as an "unknown command".
84
- // 2. The unpacked node-entrypoint-runner the supervisor entry resolves to a
84
+ // 2. The unpacked node-entrypoint-runner - the supervisor entry resolves to a
85
85
  // path inside app.asar, which can't be the direct entry under
86
86
  // ELECTRON_RUN_AS_NODE, so it must be loaded via the runner (mirroring the
87
87
  // desktop daemon-manager: `<runner> node-script <entry>`).
@@ -1,6 +1,6 @@
1
1
  import { AGENT_PROVIDER_DEFINITIONS } from "@otto-code/protocol/provider-manifest";
2
2
  import { tryConnectToDaemon } from "../../utils/client.js";
3
- /** Derive provider list from the manifest single source of truth */
3
+ /** Derive provider list from the manifest - single source of truth */
4
4
  const PROVIDERS = AGENT_PROVIDER_DEFINITIONS.map((def) => ({
5
5
  provider: def.id,
6
6
  label: def.label,
@@ -12,7 +12,7 @@ export function isSameOrDescendantPath(basePath, candidatePath) {
12
12
  // Normalize both paths: replace all backslashes with forward slashes, strip trailing separator
13
13
  let normalizedBase = basePath.replace(/\\/g, "/").replace(/\/$/, "");
14
14
  let normalizedCandidate = candidatePath.replace(/\\/g, "/").replace(/\/$/, "");
15
- // Windows paths are case-insensitive detect by drive letter prefix (e.g. "C:/")
15
+ // Windows paths are case-insensitive - detect by drive letter prefix (e.g. "C:/")
16
16
  if (/^[a-zA-Z]:\//.test(normalizedBase) || /^[a-zA-Z]:\//.test(normalizedCandidate)) {
17
17
  normalizedBase = normalizedBase.toLowerCase();
18
18
  normalizedCandidate = normalizedCandidate.toLowerCase();
@@ -13,7 +13,7 @@ export interface ResolvedProviderModel {
13
13
  *
14
14
  * Callers run this **before** connecting. Full resolution happens after a connection because it
15
15
  * consults the host (personalities, defaults), so leaving this check there meant a plainly
16
- * malformed command line reported "Cannot connect to daemon" instead of the real problem and
16
+ * malformed command line reported "Cannot connect to daemon" instead of the real problem - and
17
17
  * only on machines without a daemon running, which is why it read as a CI-only failure.
18
18
  *
19
19
  * Silent when either input is absent or they agree; `resolveProviderAndModel` still repeats the
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Callers run this **before** connecting. Full resolution happens after a connection because it
6
6
  * consults the host (personalities, defaults), so leaving this check there meant a plainly
7
- * malformed command line reported "Cannot connect to daemon" instead of the real problem and
7
+ * malformed command line reported "Cannot connect to daemon" instead of the real problem - and
8
8
  * only on machines without a daemon running, which is why it read as a CI-only failure.
9
9
  *
10
10
  * Silent when either input is absent or they agree; `resolveProviderAndModel` still repeats the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@otto-code/cli",
3
- "version": "0.7.6",
3
+ "version": "0.8.0",
4
4
  "description": "Otto CLI - control your AI coding agents from the command line",
5
5
  "license": "AGPL-3.0-or-later",
6
6
  "bin": {
@@ -29,10 +29,10 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "@clack/prompts": "^1.0.0",
32
- "@otto-code/brain": "0.7.6",
33
- "@otto-code/client": "0.7.6",
34
- "@otto-code/protocol": "0.7.6",
35
- "@otto-code/server": "0.7.6",
32
+ "@otto-code/brain": "0.8.0",
33
+ "@otto-code/client": "0.8.0",
34
+ "@otto-code/protocol": "0.8.0",
35
+ "@otto-code/server": "0.8.0",
36
36
  "chalk": "^5.3.0",
37
37
  "commander": "^12.0.0",
38
38
  "mime-types": "^2.1.35",