codebase-cli 2.0.0-pre.0 → 2.0.0-pre.10

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 (49) hide show
  1. package/dist/agent/agent.js +16 -1
  2. package/dist/agent/agent.js.map +1 -1
  3. package/dist/agent/config.js +102 -15
  4. package/dist/agent/config.js.map +1 -1
  5. package/dist/app-server/protocol.js +7 -0
  6. package/dist/app-server/protocol.js.map +1 -0
  7. package/dist/app-server/server.js +241 -0
  8. package/dist/app-server/server.js.map +1 -0
  9. package/dist/auth/cli.js +22 -5
  10. package/dist/auth/cli.js.map +1 -1
  11. package/dist/auth/credentials.js +5 -1
  12. package/dist/auth/credentials.js.map +1 -1
  13. package/dist/auth/flow.js +174 -41
  14. package/dist/auth/flow.js.map +1 -1
  15. package/dist/cli.js +60 -3
  16. package/dist/cli.js.map +1 -1
  17. package/dist/commands/builtins.js +272 -1
  18. package/dist/commands/builtins.js.map +1 -1
  19. package/dist/config/store.js +125 -0
  20. package/dist/config/store.js.map +1 -0
  21. package/dist/config/types.js +2 -0
  22. package/dist/config/types.js.map +1 -0
  23. package/dist/headless/run.js +129 -21
  24. package/dist/headless/run.js.map +1 -1
  25. package/dist/permissions/store.js +105 -3
  26. package/dist/permissions/store.js.map +1 -1
  27. package/dist/projects/cli.js +92 -0
  28. package/dist/projects/cli.js.map +1 -0
  29. package/dist/projects/client.js +120 -0
  30. package/dist/projects/client.js.map +1 -0
  31. package/dist/projects/types.js +2 -0
  32. package/dist/projects/types.js.map +1 -0
  33. package/dist/skills/platform-loader.js +133 -38
  34. package/dist/skills/platform-loader.js.map +1 -1
  35. package/dist/tools/config.js +74 -0
  36. package/dist/tools/config.js.map +1 -0
  37. package/dist/tools/dispatch-agent.js +16 -0
  38. package/dist/tools/dispatch-agent.js.map +1 -1
  39. package/dist/tools/registry.js +4 -0
  40. package/dist/tools/registry.js.map +1 -1
  41. package/dist/ui/App.js +23 -10
  42. package/dist/ui/App.js.map +1 -1
  43. package/dist/ui/FirstRunSetup.js +239 -0
  44. package/dist/ui/FirstRunSetup.js.map +1 -0
  45. package/dist/ui/Message.js +80 -1
  46. package/dist/ui/Message.js.map +1 -1
  47. package/dist/ui/Status.js +13 -2
  48. package/dist/ui/Status.js.map +1 -1
  49. package/package.json +3 -1
@@ -32,7 +32,7 @@ function MessageBody({ message, width }) {
32
32
  return (_jsx(WrappedLines, { text: `(thinking) ${block.thinking}`, width: width, keyPrefix: key, dimColor: true, italic: true }, key));
33
33
  }
34
34
  if (block.type === "toolCall") {
35
- return (_jsx(WrappedLines, { text: `→ ${block.name}(${summarizeArgs(block.arguments)})`, width: width, keyPrefix: key, color: "magenta" }, key));
35
+ return (_jsx(WrappedLines, { text: `▸ ${toolActionLabel(block.name, block.arguments)}`, width: width, keyPrefix: key, color: "magenta" }, key));
36
36
  }
37
37
  return null;
38
38
  }), message.errorMessage ? (_jsx(WrappedLines, { text: `! ${message.errorMessage}`, width: width, keyPrefix: "err", color: "red" })) : null] }));
@@ -86,4 +86,83 @@ function summarizeArgs(args) {
86
86
  })
87
87
  .join(", ");
88
88
  }
89
+ /**
90
+ * Render a tool call as a human-friendly action label, the way Claude
91
+ * Code formats them: present-tense verb + the salient argument
92
+ * (file path, command, URL, search query, etc.) instead of the raw
93
+ * `toolName(k1=v1, k2=v2)` shape. Falls back to the verbose form for
94
+ * tools we don't have a special case for.
95
+ */
96
+ function toolActionLabel(name, args) {
97
+ const a = (args ?? {});
98
+ const str = (k) => (typeof a[k] === "string" ? a[k] : "");
99
+ const path = str("path") || str("file_path");
100
+ switch (name) {
101
+ case "read_file":
102
+ return `Reading ${path}`;
103
+ case "write_file":
104
+ return `Writing ${path}`;
105
+ case "edit_file":
106
+ return `Editing ${path}`;
107
+ case "multi_edit":
108
+ return `Editing ${path}`;
109
+ case "notebook_edit":
110
+ return `Editing notebook ${path}`;
111
+ case "list_files":
112
+ return `Listing ${path || "."}`;
113
+ case "glob":
114
+ return `Searching ${str("pattern")}`;
115
+ case "grep":
116
+ return `Searching for "${str("pattern")}"`;
117
+ case "shell":
118
+ return `Running: ${truncate(str("command") || str("cmd"), 60)}`;
119
+ case "web_fetch":
120
+ return `Fetching ${str("url")}`;
121
+ case "web_search":
122
+ return `Searching: ${truncate(str("query"), 60)}`;
123
+ case "git_status":
124
+ return "git status";
125
+ case "git_diff":
126
+ return `git diff${str("target") ? ` ${str("target")}` : ""}`;
127
+ case "git_log":
128
+ return "git log";
129
+ case "git_commit":
130
+ return `git commit: ${truncate(str("message"), 50)}`;
131
+ case "git_branch":
132
+ return str("name") ? `git branch ${str("name")}` : "git branches";
133
+ case "enter_worktree":
134
+ return `Entering worktree ${str("branch") || str("name")}`;
135
+ case "exit_worktree":
136
+ return "Leaving worktree";
137
+ case "enter_plan_mode":
138
+ return "Entering plan mode";
139
+ case "exit_plan_mode":
140
+ return "Exiting plan mode";
141
+ case "dispatch_agent":
142
+ return `Dispatching subagent: ${truncate(str("task"), 60)}`;
143
+ case "ask_user":
144
+ return `Asking: ${truncate(str("question"), 60)}`;
145
+ case "create_task":
146
+ return `Task: ${truncate(str("subject"), 60)}`;
147
+ case "update_task":
148
+ return `Updating task ${str("taskId")}`;
149
+ case "list_tasks":
150
+ return "Listing tasks";
151
+ case "get_task":
152
+ return `Reading task ${str("taskId")}`;
153
+ case "save_memory":
154
+ return `Saving memory: ${str("name") || str("type")}`;
155
+ case "read_memory":
156
+ return str("filename") ? `Reading memory ${str("filename")}` : "Reading MEMORY.md";
157
+ case "config":
158
+ return str("path") ? `config(${str("path")})` : "Reading config";
159
+ default:
160
+ return `${name}(${summarizeArgs(args)})`;
161
+ }
162
+ }
163
+ function truncate(s, n) {
164
+ if (s.length <= n)
165
+ return s;
166
+ return `${s.slice(0, n - 1)}…`;
167
+ }
89
168
  //# sourceMappingURL=Message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Message.js","sourceRoot":"","sources":["../../src/ui/Message.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Message.js","sourceRoot":"","sources":["../../src/ui/Message.tsx"],"names":[],"mappings":"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"}
package/dist/ui/Status.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { basename } from "node:path";
2
3
  import { Box, Text } from "ink";
3
4
  import { Throbber } from "./Throbber.js";
4
5
  const STATUS_LABEL = {
@@ -17,12 +18,22 @@ const STATUS_COLOR = {
17
18
  aborted: "red",
18
19
  error: "red",
19
20
  };
20
- export function Status({ state }) {
21
+ /**
22
+ * Bottom status line — matches Claude Code's pattern: spinner + state
23
+ * on the left, model + cwd + context % + cost on the right. Stays on
24
+ * one row in normal terminal widths; the cwd basename is the only
25
+ * dynamic-length piece so we always show what matters.
26
+ */
27
+ export function Status({ state, cwd, contextWindow = 200_000 }) {
21
28
  const busy = state.status === "thinking" || state.status === "streaming" || state.status === "tool";
22
29
  const label = STATUS_LABEL[state.status];
23
30
  const color = STATUS_COLOR[state.status];
24
31
  const u = state.usage;
25
- return (_jsxs(Box, { flexDirection: "column", children: [state.error ? (_jsx(Box, { paddingX: 1, children: _jsxs(Text, { color: "red", children: ["! ", state.error] }) })) : null, _jsxs(Box, { paddingX: 1, justifyContent: "space-between", children: [_jsxs(Box, { children: [busy ? (_jsxs(_Fragment, { children: [_jsx(Throbber, { color: color }), _jsx(Text, { children: " " })] })) : null, _jsx(Text, { color: color, children: label })] }), _jsx(Box, { children: _jsxs(Text, { dimColor: true, children: [state.model.provider, "/", state.model.id, " \u00B7 \u2193", u.input, " \u2191", u.output, " $", formatCost(u.cost.total)] }) })] })] }));
32
+ const usedTokens = u.input + u.cacheRead;
33
+ const ctxPct = contextWindow > 0 ? Math.min(100, Math.round((usedTokens / contextWindow) * 100)) : 0;
34
+ const cwdLabel = cwd ? basename(cwd) || "/" : "";
35
+ const modelLabel = state.model.name || state.model.id;
36
+ return (_jsxs(Box, { flexDirection: "column", children: [state.error ? (_jsx(Box, { paddingX: 1, children: _jsxs(Text, { color: "red", children: ["! ", state.error] }) })) : null, _jsxs(Box, { paddingX: 1, justifyContent: "space-between", children: [_jsxs(Box, { children: [busy ? (_jsxs(_Fragment, { children: [_jsx(Throbber, { color: color }), _jsx(Text, { children: " " })] })) : null, _jsx(Text, { color: color, children: label })] }), _jsx(Box, { children: _jsxs(Text, { dimColor: true, children: [modelLabel, cwdLabel ? ` · ${cwdLabel}` : "", " \u00B7 ", ctxPct, "% ctx \u00B7 $", formatCost(u.cost.total)] }) })] })] }));
26
37
  }
27
38
  function formatCost(value) {
28
39
  if (value === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"Status.js","sourceRoot":"","sources":["../../src/ui/Status.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAMzC,MAAM,YAAY,GAAwC;IACzD,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,YAAY;IACvB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;CACd,CAAC;AAEF,MAAM,YAAY,GAAwC;IACzD,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,KAAK;CACZ,CAAC;AAEF,MAAM,UAAU,MAAM,CAAC,EAAE,KAAK,EAAe;IAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC;IACpG,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;IAEtB,OAAO,CACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CACd,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACf,MAAC,IAAI,IAAC,KAAK,EAAC,KAAK,mBAAI,KAAK,CAAC,KAAK,IAAQ,GACnC,CACN,CAAC,CAAC,CAAC,IAAI,EACR,MAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAC,eAAe,aAC/C,MAAC,GAAG,eACF,IAAI,CAAC,CAAC,CAAC,CACP,8BACC,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,GAAI,EAC1B,KAAC,IAAI,oBAAS,IACZ,CACH,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,YAAG,KAAK,GAAQ,IAC7B,EACN,KAAC,GAAG,cACH,MAAC,IAAI,IAAC,QAAQ,mBACZ,KAAK,CAAC,KAAK,CAAC,QAAQ,OAAG,KAAK,CAAC,KAAK,CAAC,EAAE,oBAAM,CAAC,CAAC,KAAK,aAAI,CAAC,CAAC,MAAM,QAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IACrF,GACF,IACD,IACD,CACN,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAChC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACjC,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"Status.js","sourceRoot":"","sources":["../../src/ui/Status.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codebase-cli",
3
- "version": "2.0.0-pre.0",
3
+ "version": "2.0.0-pre.10",
4
4
  "description": "Codebase CLI — a TypeScript coding agent on the pi-mono runtime. OAuth-aware, any LLM provider, single install.",
5
5
  "keywords": [
6
6
  "ai",
@@ -52,6 +52,8 @@
52
52
  "test": "vitest --run",
53
53
  "test:watch": "vitest",
54
54
  "check": "npm run typecheck && npm run lint && npm test",
55
+ "bench": "node bench/run.mjs",
56
+ "bench:report": "node bench/aggregate.mjs",
55
57
  "prepublishOnly": "npm run clean && npm run check && npm run build",
56
58
  "prepack": "npm run build"
57
59
  },