codebase-cli 2.0.0-pre.4 → 2.0.0-pre.40

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.
Files changed (111) hide show
  1. package/dist/agent/agent.js +43 -15
  2. package/dist/agent/agent.js.map +1 -1
  3. package/dist/agent/config.js +61 -20
  4. package/dist/agent/config.js.map +1 -1
  5. package/dist/agent/events.bench.js +84 -0
  6. package/dist/agent/events.bench.js.map +1 -0
  7. package/dist/agent/prompt-suggestion.js +141 -0
  8. package/dist/agent/prompt-suggestion.js.map +1 -0
  9. package/dist/agent/system-prompt.js +15 -0
  10. package/dist/agent/system-prompt.js.map +1 -1
  11. package/dist/app-server/protocol.js +7 -0
  12. package/dist/app-server/protocol.js.map +1 -0
  13. package/dist/app-server/server.js +241 -0
  14. package/dist/app-server/server.js.map +1 -0
  15. package/dist/auth/cli.js +1 -1
  16. package/dist/auth/cli.js.map +1 -1
  17. package/dist/auth/credentials.js +33 -2
  18. package/dist/auth/credentials.js.map +1 -1
  19. package/dist/auth/flow.js +145 -24
  20. package/dist/auth/flow.js.map +1 -1
  21. package/dist/auth/token-manager.js +73 -0
  22. package/dist/auth/token-manager.js.map +1 -0
  23. package/dist/cli.js +56 -1
  24. package/dist/cli.js.map +1 -1
  25. package/dist/commands/builtins.js +160 -14
  26. package/dist/commands/builtins.js.map +1 -1
  27. package/dist/commands/registry.js +46 -1
  28. package/dist/commands/registry.js.map +1 -1
  29. package/dist/compaction/monitor.js +38 -0
  30. package/dist/compaction/monitor.js.map +1 -0
  31. package/dist/config/types.js.map +1 -1
  32. package/dist/glue/client.js +12 -2
  33. package/dist/glue/client.js.map +1 -1
  34. package/dist/hooks/manager.js +8 -2
  35. package/dist/hooks/manager.js.map +1 -1
  36. package/dist/memory/store.js +2 -3
  37. package/dist/memory/store.js.map +1 -1
  38. package/dist/plan/run-flow.js +89 -0
  39. package/dist/plan/run-flow.js.map +1 -0
  40. package/dist/projects/cli.js +92 -0
  41. package/dist/projects/cli.js.map +1 -0
  42. package/dist/projects/client.js +120 -0
  43. package/dist/projects/client.js.map +1 -0
  44. package/dist/projects/types.js +2 -0
  45. package/dist/projects/types.js.map +1 -0
  46. package/dist/skills/platform-loader.js +133 -38
  47. package/dist/skills/platform-loader.js.map +1 -1
  48. package/dist/tools/__test__/mock-tool-context.js +31 -0
  49. package/dist/tools/__test__/mock-tool-context.js.map +1 -0
  50. package/dist/tools/file-state-cache.js.map +1 -1
  51. package/dist/tools/read-file.js +7 -2
  52. package/dist/tools/read-file.js.map +1 -1
  53. package/dist/ui/App.js +109 -110
  54. package/dist/ui/App.js.map +1 -1
  55. package/dist/ui/CompactionBanner.js +23 -0
  56. package/dist/ui/CompactionBanner.js.map +1 -0
  57. package/dist/ui/FirstRunSetup.js +66 -14
  58. package/dist/ui/FirstRunSetup.js.map +1 -1
  59. package/dist/ui/Input.js +370 -20
  60. package/dist/ui/Input.js.map +1 -1
  61. package/dist/ui/Markdown.js +286 -0
  62. package/dist/ui/Markdown.js.map +1 -0
  63. package/dist/ui/Message.js +110 -48
  64. package/dist/ui/Message.js.map +1 -1
  65. package/dist/ui/MessageList.js +100 -3
  66. package/dist/ui/MessageList.js.map +1 -1
  67. package/dist/ui/Permission.js +43 -20
  68. package/dist/ui/Permission.js.map +1 -1
  69. package/dist/ui/PixelC.js +25 -0
  70. package/dist/ui/PixelC.js.map +1 -0
  71. package/dist/ui/Status.js +267 -7
  72. package/dist/ui/Status.js.map +1 -1
  73. package/dist/ui/Throbber.js +11 -7
  74. package/dist/ui/Throbber.js.map +1 -1
  75. package/dist/ui/Welcome.js +59 -0
  76. package/dist/ui/Welcome.js.map +1 -0
  77. package/dist/ui/attachments.js +68 -0
  78. package/dist/ui/attachments.js.map +1 -0
  79. package/dist/ui/debug-input.js +44 -0
  80. package/dist/ui/debug-input.js.map +1 -0
  81. package/dist/ui/diff-summary.js +171 -0
  82. package/dist/ui/diff-summary.js.map +1 -0
  83. package/dist/ui/highlight.js +324 -0
  84. package/dist/ui/highlight.js.map +1 -0
  85. package/dist/ui/history-store.js +60 -0
  86. package/dist/ui/history-store.js.map +1 -0
  87. package/dist/ui/input-state.js +125 -1
  88. package/dist/ui/input-state.js.map +1 -1
  89. package/dist/ui/path-complete.js +102 -0
  90. package/dist/ui/path-complete.js.map +1 -0
  91. package/dist/ui/paths.js +41 -0
  92. package/dist/ui/paths.js.map +1 -0
  93. package/dist/ui/shell-escape.js +42 -0
  94. package/dist/ui/shell-escape.js.map +1 -0
  95. package/dist/ui/terminal-restore.js +83 -0
  96. package/dist/ui/terminal-restore.js.map +1 -0
  97. package/dist/ui/terminal-title.js +21 -0
  98. package/dist/ui/terminal-title.js.map +1 -0
  99. package/dist/ui/tool-call-line.js +83 -0
  100. package/dist/ui/tool-call-line.js.map +1 -0
  101. package/dist/ui/tool-labels.js +194 -0
  102. package/dist/ui/tool-labels.js.map +1 -0
  103. package/dist/ui/truncated-output.js +42 -0
  104. package/dist/ui/truncated-output.js.map +1 -0
  105. package/dist/ui/use-coalesced-agent-events.js +70 -0
  106. package/dist/ui/use-coalesced-agent-events.js.map +1 -0
  107. package/dist/ui/use-prompt-suggestion.js +52 -0
  108. package/dist/ui/use-prompt-suggestion.js.map +1 -0
  109. package/dist/ui/wrapped-lines.js +18 -0
  110. package/dist/ui/wrapped-lines.js.map +1 -0
  111. package/package.json +4 -1
@@ -0,0 +1,73 @@
1
+ import { refreshAccessToken } from "./flow.js";
2
+ /**
3
+ * Read-through, refresh-aware accessor for the OAuth access token.
4
+ *
5
+ * Pi-mono's `getApiKey` runs on every API call, so we have to be fast in
6
+ * the common case (token still valid). Slow path: refresh + persist before
7
+ * returning the new token. A single in-flight promise (`pending`) prevents
8
+ * a burst of concurrent calls from firing parallel refreshes at the same
9
+ * moment — they all await the one refresh that's already running.
10
+ */
11
+ export class TokenManager {
12
+ store;
13
+ oauthConfig;
14
+ refreshSkewMs;
15
+ pending = null;
16
+ constructor(options) {
17
+ this.store = options.store;
18
+ this.oauthConfig = options.oauthConfig;
19
+ this.refreshSkewMs = options.refreshSkewMs ?? 60_000;
20
+ }
21
+ /**
22
+ * Return a valid access token, refreshing if the stored one is within
23
+ * `refreshSkewMs` of expiry. Throws when no credentials exist or when
24
+ * a refresh fails (network or expired refresh token); the caller turns
25
+ * that into a user-facing "please run `codebase auth login`" message.
26
+ */
27
+ async getAccessToken() {
28
+ const creds = this.store.load();
29
+ if (!creds)
30
+ throw new Error("not signed in — run `codebase auth login`");
31
+ if (!this.needsRefresh(creds))
32
+ return creds.accessToken;
33
+ if (!creds.refreshToken) {
34
+ throw new Error("access token expired and no refresh token saved — run `codebase auth login`");
35
+ }
36
+ return this.refresh(creds.refreshToken);
37
+ }
38
+ needsRefresh(creds) {
39
+ if (!creds.expiresAt)
40
+ return false;
41
+ return creds.expiresAt - this.refreshSkewMs <= Date.now();
42
+ }
43
+ refresh(refreshToken) {
44
+ if (this.pending)
45
+ return this.pending;
46
+ this.pending = (async () => {
47
+ try {
48
+ const next = await refreshAccessToken(this.oauthConfig, refreshToken);
49
+ // Preserve fields the refresh response doesn't echo back (source,
50
+ // email, userId) so they survive every rotation. The refresh
51
+ // response is authoritative for tokens + expiry; we layer the
52
+ // stable metadata back on top.
53
+ const existing = this.store.load();
54
+ this.store.save({
55
+ accessToken: next.accessToken,
56
+ refreshToken: next.refreshToken ?? existing?.refreshToken ?? refreshToken,
57
+ expiresAt: next.expiresAt,
58
+ scopes: next.scopes,
59
+ source: existing?.source ?? next.source,
60
+ userId: existing?.userId ?? next.userId,
61
+ email: existing?.email ?? next.email,
62
+ provider: existing?.provider ?? next.provider,
63
+ });
64
+ return next.accessToken;
65
+ }
66
+ finally {
67
+ this.pending = null;
68
+ }
69
+ })();
70
+ return this.pending;
71
+ }
72
+ }
73
+ //# sourceMappingURL=token-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-manager.js","sourceRoot":"","sources":["../../src/auth/token-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAcjE;;;;;;;;GAQG;AACH,MAAM,OAAO,YAAY;IACP,KAAK,CAAmB;IACxB,WAAW,CAAc;IACzB,aAAa,CAAS;IAC/B,OAAO,GAA2B,IAAI,CAAC;IAE/C,YAAY,OAA4B;QACvC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,MAAM,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,WAAW,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;IAEO,YAAY,CAAC,KAAkB;QACtC,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QACnC,OAAO,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3D,CAAC;IAEO,OAAO,CAAC,YAAoB;QACnC,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE;YAC1B,IAAI,CAAC;gBACJ,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;gBACtE,kEAAkE;gBAClE,6DAA6D;gBAC7D,8DAA8D;gBAC9D,+BAA+B;gBAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;oBACf,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,QAAQ,EAAE,YAAY,IAAI,YAAY;oBACzE,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM;oBACvC,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM;oBACvC,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK;oBACpC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ;iBAC7C,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC,WAAW,CAAC;YACzB,CAAC;oBAAS,CAAC;gBACV,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACrB,CAAC;QACF,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;CACD"}
package/dist/cli.js CHANGED
@@ -2,14 +2,37 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { readFileSync } from "node:fs";
4
4
  import { render } from "ink";
5
+ import { runAppServer } from "./app-server/server.js";
5
6
  import { runAuthSubcommand } from "./auth/cli.js";
6
7
  import { loadDotEnv } from "./dotenv/loader.js";
7
8
  import { runHeadless } from "./headless/run.js";
9
+ import { runProjectSubcommand } from "./projects/cli.js";
8
10
  import { App } from "./ui/App.js";
11
+ import { installTerminalRestoreHandlers } from "./ui/terminal-restore.js";
12
+ import { setTerminalTitle } from "./ui/terminal-title.js";
9
13
  // Auto-load .env files before any subsystem reads process.env.
10
14
  loadDotEnv();
11
15
  const VALID_OUTPUT_FORMATS = new Set(["text", "json", "stream-json"]);
12
- const argv = process.argv.slice(2);
16
+ const rawArgv = process.argv.slice(2);
17
+ // Strip flags consumed at the top-level dispatcher before subcommand
18
+ // matching. `--debug-input` is one of those: it sets an env var that
19
+ // the Input component picks up, then disappears from argv so it can't
20
+ // confuse downstream parsers.
21
+ const argv = [];
22
+ for (const a of rawArgv) {
23
+ if (a === "--debug-input") {
24
+ process.env.CODEBASE_DEBUG_INPUT = "1";
25
+ continue;
26
+ }
27
+ if (a === "--new" || a === "--fresh") {
28
+ // Skip the auto-resume that the interactive TUI does by default —
29
+ // useful when the prior session is no longer relevant or after a
30
+ // destructive change to the working tree.
31
+ process.env.CODEBASE_FRESH = "1";
32
+ continue;
33
+ }
34
+ argv.push(a);
35
+ }
13
36
  if (argv[0] === "--version" || argv[0] === "-v") {
14
37
  process.stdout.write(`${readPackageVersion()}\n`);
15
38
  process.exit(0);
@@ -21,6 +44,19 @@ else if (argv[0] === "--help" || argv[0] === "-h") {
21
44
  else if (argv[0] === "auth") {
22
45
  runAuthSubcommand(argv).then((code) => process.exit(code));
23
46
  }
47
+ else if (argv[0] === "project" || argv[0] === "projects") {
48
+ runProjectSubcommand(argv).then((code) => process.exit(code));
49
+ }
50
+ else if (argv[0] === "app-server") {
51
+ // JSON-RPC-ish over stdio for IDE extensions. Auto-approve permissions
52
+ // by default — IDE clients render approval UIs themselves and we don't
53
+ // want the server to hang waiting on a TUI prompt no one's watching.
54
+ // The `--no-auto-approve` flag is for clients that DO implement their
55
+ // own approval flow via the `permission_request` event.
56
+ const noAutoApprove = argv.includes("--no-auto-approve");
57
+ const resume = argv.includes("--resume");
58
+ runAppServer({ autoApprove: !noAutoApprove, resume }).then((code) => process.exit(code));
59
+ }
24
60
  else if (argv[0] === "run") {
25
61
  const { prompt, outputFormat, autoApprove, error } = parseRunArgs(argv.slice(1));
26
62
  if (error) {
@@ -34,7 +70,15 @@ else if (argv[0] === "run") {
34
70
  runHeadless({ prompt, outputFormat, autoApprove }).then((code) => process.exit(code));
35
71
  }
36
72
  else {
73
+ setTerminalTitle("codebase");
74
+ // Enable bracketed paste mode so the terminal wraps pasted content in
75
+ // CSI 200~ / 201~ markers. The Input component listens for them and
76
+ // collapses the content into a placeholder. terminal-restore.ts emits
77
+ // the matching disable sequence on every exit path.
78
+ if (process.stdout.isTTY)
79
+ process.stdout.write("\x1b[?2004h");
37
80
  const instance = render(_jsx(App, {}));
81
+ installTerminalRestoreHandlers(instance);
38
82
  instance.waitUntilExit().catch(() => {
39
83
  process.exit(1);
40
84
  });
@@ -98,9 +142,20 @@ function printHelp() {
98
142
  " codebase auth status show current sign-in",
99
143
  " codebase auth refresh force-refresh the access token",
100
144
  " codebase auth <cbk_xxx> save a manual API key (for SSH / headless)",
145
+ " codebase project list list your projects on codebase.design",
146
+ " codebase project pull <id> download a project as a ZIP",
147
+ " codebase app-server JSON-RPC server on stdio (for IDE extensions)",
101
148
  " codebase --version print version and exit",
102
149
  " codebase --help show this message",
103
150
  "",
151
+ "Session:",
152
+ " codebase resume the prior session for this directory if recent (≤7d)",
153
+ " codebase --new start a fresh session, ignoring saved history",
154
+ "",
155
+ "Diagnostics:",
156
+ " --debug-input log every keystroke to ~/.codebase/logs/input.log",
157
+ " (use when reporting a keyboard/terminal issue)",
158
+ "",
104
159
  "More: https://github.com/codebase-foundation/codebase-cli",
105
160
  "",
106
161
  ].join("\n"));
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"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"}
@@ -4,20 +4,24 @@ import { homedir } from "node:os";
4
4
  import { join } from "node:path";
5
5
  import { CredentialsStore } from "../auth/credentials.js";
6
6
  import { copyToClipboard, extractLastCodeBlock } from "../clipboard/copy.js";
7
+ import { NotAuthenticatedError, ProjectClient, ProjectClientError } from "../projects/client.js";
7
8
  const help = {
8
9
  name: "help",
9
- description: "List available slash commands.",
10
+ description: "List available slash commands and keyboard shortcuts.",
10
11
  handler: (_args, ctx) => {
11
- const lines = ["available slash commands:"];
12
- const reg = ctx.registry;
13
- // builtins() is built before registry is constructed, so the registry
14
- // reference is injected via ctx by the App. If absent (e.g. in tests),
15
- // we print just this message.
16
- if (reg) {
17
- for (const cmd of reg.list()) {
18
- const aliasPart = cmd.aliases?.length ? ` (${cmd.aliases.map((a) => `/${a}`).join(", ")})` : "";
19
- lines.push(` /${cmd.name}${aliasPart} — ${cmd.description}`);
20
- }
12
+ const lines = [];
13
+ lines.push("Keyboard shortcuts:");
14
+ lines.push(" / slash-command autocomplete (Tab to complete, ↑↓ to choose)");
15
+ lines.push(" !cmd run a shell command directly (e.g. !git status)");
16
+ lines.push(" @path inline a file's contents into the next prompt");
17
+ lines.push(" ↑/↓ recall prior prompts (at line start)");
18
+ lines.push(" \\<Enter> insert a newline instead of submitting");
19
+ lines.push(" Ctrl-C cancel turn (busy) · twice to exit (idle)");
20
+ lines.push("");
21
+ lines.push("Slash commands:");
22
+ for (const cmd of ctx.registry.list()) {
23
+ const aliasPart = cmd.aliases?.length ? ` (${cmd.aliases.map((a) => `/${a}`).join(", ")})` : "";
24
+ lines.push(` /${cmd.name}${aliasPart} — ${cmd.description}`);
21
25
  }
22
26
  ctx.emit(lines.join("\n"));
23
27
  return { handled: true };
@@ -32,6 +36,23 @@ const clear = {
32
36
  return { handled: true };
33
37
  },
34
38
  };
39
+ /**
40
+ * Hard reset: drop both the display transcript AND the agent's internal
41
+ * message history, so the next turn starts with zero context. Use after a
42
+ * topic shift, when the model's gotten stuck in a stale plan, or to free
43
+ * up context space without waiting for compaction.
44
+ */
45
+ const fresh = {
46
+ name: "new",
47
+ description: "Start a fresh conversation — wipes both display history and agent context.",
48
+ mutates: true,
49
+ handler: (_args, ctx) => {
50
+ ctx.bundle.agent.state.messages = [];
51
+ ctx.clearDisplay();
52
+ ctx.emit("Started a fresh conversation. Prior context is gone for this and the next turn.");
53
+ return { handled: true };
54
+ },
55
+ };
35
56
  const compact = {
36
57
  name: "compact",
37
58
  description: "Force a compaction pass on the running transcript.",
@@ -315,6 +336,54 @@ const context = {
315
336
  return { handled: true };
316
337
  },
317
338
  };
339
+ /**
340
+ * Diagnostic for "the model isn't remembering what I told it earlier."
341
+ * Compares the UI's display state (what the user sees in the transcript)
342
+ * with the agent's internal _state.messages (what actually ships to the
343
+ * model on the next turn). If those diverge, that's the bug. If they
344
+ * match but the model still acts amnesiac, the issue is in the wire
345
+ * call — pi-ai's openai-completions builder, the proxy, or the upstream.
346
+ */
347
+ const debug = {
348
+ name: "debug",
349
+ description: "Inspect internal agent state — message count, token estimate, last few roles.",
350
+ handler: (_args, ctx) => {
351
+ const display = ctx.state.messages;
352
+ const internal = ctx.bundle.agent.state.messages;
353
+ const rolesTail = (msgs, n) => msgs
354
+ .slice(-n)
355
+ .map((m) => m.role)
356
+ .join(" → ") || "(empty)";
357
+ const u = ctx.state.usage;
358
+ const used = u.input + u.cacheRead;
359
+ const compactAt = ctx.bundle.compaction.threshold();
360
+ const divergent = display.length !== internal.length;
361
+ const lines = [
362
+ "Internal state inspection:",
363
+ "",
364
+ ` Display messages (UI): ${display.length}`,
365
+ ` Agent state messages: ${internal.length}${divergent ? " ← MISMATCH!" : ""}`,
366
+ "",
367
+ ` Last 5 display roles: ${rolesTail(display, 5)}`,
368
+ ` Last 5 agent state roles: ${rolesTail(internal, 5)}`,
369
+ "",
370
+ ` Estimated tokens used: ${used.toLocaleString()}`,
371
+ ` Compaction triggers at: ${compactAt.toLocaleString()}`,
372
+ ` Streaming in progress: ${ctx.state.streaming ? "yes" : "no"}`,
373
+ "",
374
+ divergent
375
+ ? "Mismatch means the agent and the UI disagree about what's been said. " +
376
+ "That's the source of 'the model forgot' — the next turn ships internal " +
377
+ "messages, not display messages. Report this with a `codebase --debug-input` " +
378
+ "transcript so we can see how it happened."
379
+ : "Display and agent state match. If the model is still acting amnesiac, the " +
380
+ "context is leaving the CLI correctly but something on the wire is dropping " +
381
+ "it — capture with OPENAI_LOG=debug codebase to see the raw HTTP request body.",
382
+ ];
383
+ ctx.emit(lines.join("\n"));
384
+ return { handled: true };
385
+ },
386
+ };
318
387
  // ─── auth / session ───────────────────────────────────────────────────
319
388
  const login = {
320
389
  name: "login",
@@ -367,7 +436,7 @@ const init = {
367
436
  const template = [
368
437
  "# Project Instructions",
369
438
  "",
370
- "This file is auto-loaded by `codebase` (and Claude Code) on session start.",
439
+ "This file is auto-loaded by `codebase` on session start.",
371
440
  "Use it to capture project-specific rules and context the agent should follow.",
372
441
  "",
373
442
  "## What this project is",
@@ -395,20 +464,93 @@ const init = {
395
464
  return { handled: true };
396
465
  },
397
466
  };
467
+ const projects = {
468
+ name: "projects",
469
+ aliases: ["project"],
470
+ description: "List your projects from codebase.design (requires sign-in via `codebase auth login`).",
471
+ handler: async (_args, ctx) => {
472
+ const client = new ProjectClient();
473
+ if (!client.hasCredentials()) {
474
+ ctx.emit("not signed in. Run `codebase auth login` from a fresh terminal, then come back. " +
475
+ "Env-var providers (ANTHROPIC_API_KEY etc.) work fine for inference but the projects " +
476
+ "endpoint is gated on a codebase.design account.");
477
+ return { handled: true };
478
+ }
479
+ try {
480
+ const list = await client.list();
481
+ if (list.length === 0) {
482
+ ctx.emit("(no projects yet — build one at https://codebase.design)");
483
+ return { handled: true };
484
+ }
485
+ const lines = [`${list.length} project${list.length === 1 ? "" : "s"} on your account:`, ""];
486
+ for (const p of list) {
487
+ const tag = p.source === "storage-only" ? " [storage]" : "";
488
+ const date = p.publishedAt ? ` · ${p.publishedAt.slice(0, 10)}` : "";
489
+ lines.push(` ${p.id} ${p.title ?? "(untitled)"}${tag}${date}`);
490
+ }
491
+ lines.push("");
492
+ lines.push("pull one with: codebase project pull <id>");
493
+ ctx.emit(lines.join("\n"));
494
+ }
495
+ catch (err) {
496
+ if (err instanceof NotAuthenticatedError) {
497
+ ctx.emit(err.message);
498
+ }
499
+ else if (err instanceof ProjectClientError) {
500
+ ctx.emit(`/projects failed: ${err.message}`);
501
+ }
502
+ else {
503
+ ctx.emit(`/projects failed: ${err instanceof Error ? err.message : String(err)}`);
504
+ }
505
+ }
506
+ return { handled: true };
507
+ },
508
+ };
398
509
  const mcp = {
399
510
  name: "mcp",
400
511
  description: "Manage MCP (Model Context Protocol) servers — placeholder until Phase 9 lands.",
401
512
  handler: (_args, ctx) => {
402
513
  const configPath = join(homedir(), ".codebase", "config.json");
403
514
  ctx.emit("MCP support is on the Phase 9 roadmap; the runtime hasn't shipped it yet.\n" +
404
- `when it lands, server config will live at ${configPath} under "mcp_servers", ` +
405
- "matching Claude Code's shape so existing config files port over.");
515
+ `When it lands, server config will live at ${configPath} under "mcp_servers".`);
516
+ return { handled: true };
517
+ },
518
+ };
519
+ const redo = {
520
+ name: "redo",
521
+ aliases: ["retry"],
522
+ description: "Resend the last user prompt to the agent (e.g. after an error or aborted turn).",
523
+ handler: (_args, ctx) => {
524
+ const lastUser = [...ctx.state.messages].reverse().find((m) => m.role === "user");
525
+ if (!lastUser) {
526
+ ctx.emit("nothing to redo — no prior user prompts.");
527
+ return { handled: true };
528
+ }
529
+ const text = typeof lastUser.content === "string" ? lastUser.content : "";
530
+ if (!text) {
531
+ ctx.emit("can't redo — the last user message had non-text content.");
532
+ return { handled: true };
533
+ }
534
+ ctx.emit(`(redo) ${text.slice(0, 80)}${text.length > 80 ? "…" : ""}`);
535
+ void ctx.bundle.agent.prompt(text).catch(() => undefined);
536
+ return { handled: true };
537
+ },
538
+ };
539
+ const pwd = {
540
+ name: "pwd",
541
+ aliases: ["cwd"],
542
+ description: "Print the current working directory and copy it to the clipboard.",
543
+ handler: async (_args, ctx) => {
544
+ const cwd = ctx.bundle.toolContext.cwd;
545
+ const copied = await copyToClipboard(cwd).catch(() => false);
546
+ ctx.emit(copied ? `${cwd}\n(copied to clipboard)` : cwd);
406
547
  return { handled: true };
407
548
  },
408
549
  };
409
550
  export const BUILTIN_COMMANDS = [
410
551
  help,
411
552
  clear,
553
+ fresh,
412
554
  compact,
413
555
  session,
414
556
  cost,
@@ -424,7 +566,11 @@ export const BUILTIN_COMMANDS = [
424
566
  logout,
425
567
  resume,
426
568
  init,
569
+ projects,
427
570
  mcp,
571
+ pwd,
572
+ redo,
573
+ debug,
428
574
  exit,
429
575
  ];
430
576
  //# sourceMappingURL=builtins.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../src/commands/builtins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtins.js","sourceRoot":"","sources":["../../src/commands/builtins.ts"],"names":[],"mappings":"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"}
@@ -53,11 +53,56 @@ export class CommandRegistry {
53
53
  const args = splitIdx === -1 ? "" : trimmed.slice(splitIdx + 1).trim();
54
54
  const command = this.get(name);
55
55
  if (!command) {
56
- ctx.emit(`unknown command: /${name}. Try /help.`);
56
+ const suggestion = this.suggestClosest(name);
57
+ ctx.emit(suggestion
58
+ ? `unknown command: /${name}. Did you mean /${suggestion}?`
59
+ : `unknown command: /${name}. Try /help.`);
57
60
  return { handled: true };
58
61
  }
59
62
  return command.handler(args, ctx);
60
63
  }
64
+ /**
65
+ * Return the registered command name with the smallest edit distance
66
+ * to `query` when it's a likely typo (distance ≤ 2 or ≤ ceil(len/3),
67
+ * whichever is greater). Returns undefined when nothing's close
68
+ * enough — better to print "Try /help" than to mis-suggest.
69
+ */
70
+ suggestClosest(query) {
71
+ const q = normalize(query);
72
+ if (!q)
73
+ return undefined;
74
+ const threshold = Math.max(2, Math.ceil(q.length / 3));
75
+ let best;
76
+ for (const name of new Set(Array.from(this.commands.values()).map((c) => c.name))) {
77
+ const dist = levenshtein(q, name);
78
+ if (dist <= threshold && (!best || dist < best.dist)) {
79
+ best = { name, dist };
80
+ }
81
+ }
82
+ return best?.name;
83
+ }
84
+ }
85
+ function levenshtein(a, b) {
86
+ if (a === b)
87
+ return 0;
88
+ if (a.length === 0)
89
+ return b.length;
90
+ if (b.length === 0)
91
+ return a.length;
92
+ const prev = new Array(b.length + 1);
93
+ const curr = new Array(b.length + 1);
94
+ for (let j = 0; j <= b.length; j++)
95
+ prev[j] = j;
96
+ for (let i = 1; i <= a.length; i++) {
97
+ curr[0] = i;
98
+ for (let j = 1; j <= b.length; j++) {
99
+ const cost = a[i - 1] === b[j - 1] ? 0 : 1;
100
+ curr[j] = Math.min(curr[j - 1] + 1, prev[j] + 1, prev[j - 1] + cost);
101
+ }
102
+ for (let j = 0; j <= b.length; j++)
103
+ prev[j] = curr[j];
104
+ }
105
+ return prev[b.length];
61
106
  }
62
107
  function normalize(name) {
63
108
  return name.replace(/^\/+/, "").trim().toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/commands/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/commands/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Live status of in-flight compaction. The agent's transformContext hook
3
+ * runs synchronously on the critical path: when it triggers, the user
4
+ * sees a multi-second freeze with no visual signal — looks like a hang.
5
+ *
6
+ * CompactionMonitor is the bridge between the hook and the TUI: the hook
7
+ * calls `start()` before the glue summarize call, `end()` after. The TUI
8
+ * subscribes and renders a "Compacting…" banner for the duration. Same
9
+ * pubsub pattern PermissionStore and UserQueryStore use.
10
+ */
11
+ export class CompactionMonitor {
12
+ state = { active: false, startedAt: null, messageCount: 0 };
13
+ listeners = new Set();
14
+ start(messageCount) {
15
+ this.state = { active: true, startedAt: Date.now(), messageCount };
16
+ this.notify();
17
+ }
18
+ end() {
19
+ this.state = { active: false, startedAt: null, messageCount: 0 };
20
+ this.notify();
21
+ }
22
+ current() {
23
+ return this.state;
24
+ }
25
+ subscribe(listener) {
26
+ this.listeners.add(listener);
27
+ listener(this.current());
28
+ return () => {
29
+ this.listeners.delete(listener);
30
+ };
31
+ }
32
+ notify() {
33
+ const snapshot = this.current();
34
+ for (const listener of this.listeners)
35
+ listener(snapshot);
36
+ }
37
+ }
38
+ //# sourceMappingURL=monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/compaction/monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,MAAM,OAAO,iBAAiB;IACrB,KAAK,GAAoB,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IACpE,SAAS,GAAG,IAAI,GAAG,EAAsB,CAAC;IAE3D,KAAK,CAAC,YAAoB;QACzB,IAAI,CAAC,KAAK,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,CAAC;QACnE,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAED,GAAG;QACF,IAAI,CAAC,KAAK,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,SAAS,CAAC,QAA4B;QACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACzB,OAAO,GAAG,EAAE;YACX,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC,CAAC;IACH,CAAC;IAEO,MAAM;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAChC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS;YAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AA8BA,MAAM,CAAC,MAAM,YAAY,GAAW,MAAM,CAAC,MAAM,CAAC,EAAE,CAAW,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AA2BA,MAAM,CAAC,MAAM,YAAY,GAAW,MAAM,CAAC,MAAM,CAAC,EAAE,CAAW,CAAC"}