codebase-cli 2.0.0-pre.5 → 2.0.0-pre.6

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.
@@ -0,0 +1,7 @@
1
+ export function isCommand(value) {
2
+ return typeof value === "object" && value !== null && typeof value.type === "string";
3
+ }
4
+ export function buildErrorResponse(id, command, error) {
5
+ return { id, type: "response", command, success: false, error };
6
+ }
7
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/app-server/protocol.ts"],"names":[],"mappings":"AA4HA,MAAM,UAAU,SAAS,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC9G,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EAAsB,EAAE,OAAe,EAAE,KAAa;IACxF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACjE,CAAC"}
@@ -0,0 +1,238 @@
1
+ import { createInterface } from "node:readline";
2
+ import { createAgent } from "../agent/agent.js";
3
+ import { ConfigError } from "../agent/config.js";
4
+ import { buildErrorResponse, isCommand, } from "./protocol.js";
5
+ const USER_AGENT = "codebase-cli/app-server";
6
+ const EMPTY_USAGE = {
7
+ input: 0,
8
+ output: 0,
9
+ cacheRead: 0,
10
+ cacheWrite: 0,
11
+ totalTokens: 0,
12
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
13
+ };
14
+ /**
15
+ * Start the JSON-RPC server on stdio.
16
+ *
17
+ * One connection = one agent instance = one session. The function
18
+ * resolves when stdin is closed; the caller (cli.tsx) exits with the
19
+ * returned exit code.
20
+ */
21
+ export async function runAppServer(opts = {}) {
22
+ const stdin = opts.stdin ?? process.stdin;
23
+ const stdout = opts.stdout ?? process.stdout;
24
+ const stderr = opts.stderr ?? process.stderr;
25
+ function send(message) {
26
+ stdout.write(`${JSON.stringify(message)}\n`);
27
+ }
28
+ function fatal(error) {
29
+ send({ type: "event", event: { type: "server_error", message: error } });
30
+ return 1;
31
+ }
32
+ let bundle;
33
+ try {
34
+ bundle = createAgent({ resume: opts.resume, autoApprove: opts.autoApprove });
35
+ }
36
+ catch (e) {
37
+ const msg = e instanceof ConfigError ? e.message : e instanceof Error ? e.message : String(e);
38
+ stderr.write(`app-server: ${msg}\n`);
39
+ return fatal(msg);
40
+ }
41
+ let totalUsage = { ...EMPTY_USAGE, cost: { ...EMPTY_USAGE.cost } };
42
+ let status = "idle";
43
+ let pendingPermission;
44
+ let inFlightPrompt = null;
45
+ // ─── outbound: forward agent events + track status ──────────────────
46
+ const unsubscribeAgent = bundle.subscribe((event) => {
47
+ // Update local status mirror for get_state queries.
48
+ if (event.type === "agent_start" || event.type === "turn_start") {
49
+ status = "thinking";
50
+ }
51
+ else if (event.type === "message_update" && event.message.role === "assistant") {
52
+ status = "streaming";
53
+ }
54
+ else if (event.type === "tool_execution_start") {
55
+ status = "tool";
56
+ }
57
+ else if (event.type === "tool_execution_end") {
58
+ status = "thinking";
59
+ }
60
+ else if (event.type === "agent_end") {
61
+ status = "idle";
62
+ }
63
+ // Accumulate usage from message_end events (pi-agent-core
64
+ // emits per-message usage there).
65
+ if (event.type === "message_end") {
66
+ const candidate = event.message.usage;
67
+ if (candidate) {
68
+ totalUsage = mergeUsage(totalUsage, candidate);
69
+ send({ type: "event", event: { type: "usage_update", usage: totalUsage } });
70
+ }
71
+ }
72
+ send({ type: "event", event });
73
+ });
74
+ // ─── permission requests: forward to the extension ─────────────────
75
+ const unsubscribePerms = bundle.permissions.subscribe((req) => {
76
+ if (!req) {
77
+ if (pendingPermission) {
78
+ pendingPermission = undefined;
79
+ send({ type: "event", event: { type: "permission_cleared" } });
80
+ }
81
+ status = inFlightPrompt ? "thinking" : "idle";
82
+ return;
83
+ }
84
+ pendingPermission = {
85
+ id: req.id,
86
+ tool: req.tool,
87
+ summary: req.summary,
88
+ detail: req.detail,
89
+ risk: req.risk,
90
+ };
91
+ status = "awaiting-permission";
92
+ send({
93
+ type: "event",
94
+ event: { type: "permission_request", request: pendingPermission },
95
+ });
96
+ });
97
+ // ─── inbound: line-by-line JSONL on stdin ───────────────────────────
98
+ const reader = createInterface({ input: stdin, crlfDelay: Infinity });
99
+ send({ type: "event", event: { type: "server_ready" } });
100
+ let initialized = false;
101
+ for await (const line of reader) {
102
+ const trimmed = line.trim();
103
+ if (!trimmed)
104
+ continue;
105
+ let command;
106
+ try {
107
+ command = JSON.parse(trimmed);
108
+ }
109
+ catch (e) {
110
+ send(buildErrorResponse(undefined, "parse", `JSON parse error: ${e instanceof Error ? e.message : String(e)}`));
111
+ continue;
112
+ }
113
+ if (!isCommand(command)) {
114
+ send(buildErrorResponse(undefined, "parse", "command must be an object with a `type` field"));
115
+ continue;
116
+ }
117
+ const c = command;
118
+ // Gate everything except initialize until we're initialized.
119
+ if (!initialized && c.type !== "initialize") {
120
+ send(buildErrorResponse(c.id, c.type, "send `initialize` first"));
121
+ continue;
122
+ }
123
+ try {
124
+ const response = await dispatch(c);
125
+ if (response)
126
+ send(response);
127
+ }
128
+ catch (e) {
129
+ send(buildErrorResponse(c.id, c.type, e instanceof Error ? e.message : String(e)));
130
+ }
131
+ }
132
+ unsubscribeAgent();
133
+ unsubscribePerms();
134
+ return 0;
135
+ // ─── command dispatch ──────────────────────────────────────────────
136
+ async function dispatch(c) {
137
+ switch (c.type) {
138
+ case "initialize": {
139
+ initialized = true;
140
+ const model = modelInfo();
141
+ return {
142
+ id: c.id,
143
+ type: "response",
144
+ command: "initialize",
145
+ success: true,
146
+ data: { userAgent: USER_AGENT, model, source: bundle.source },
147
+ };
148
+ }
149
+ case "prompt": {
150
+ if (inFlightPrompt) {
151
+ return buildErrorResponse(c.id, c.type, "a prompt is already in flight — abort first");
152
+ }
153
+ // Fire-and-forget; the response just acknowledges receipt.
154
+ // The real work surfaces via the agent event stream.
155
+ inFlightPrompt = bundle.agent
156
+ .prompt(c.message)
157
+ .catch((err) => {
158
+ send(buildErrorResponse(undefined, "prompt", err instanceof Error ? err.message : String(err)));
159
+ })
160
+ .finally(() => {
161
+ inFlightPrompt = null;
162
+ });
163
+ return { id: c.id, type: "response", command: "prompt", success: true };
164
+ }
165
+ case "abort": {
166
+ bundle.agent.abort();
167
+ return { id: c.id, type: "response", command: "abort", success: true };
168
+ }
169
+ case "get_state": {
170
+ return {
171
+ id: c.id,
172
+ type: "response",
173
+ command: "get_state",
174
+ success: true,
175
+ data: buildState(),
176
+ };
177
+ }
178
+ case "get_messages": {
179
+ return {
180
+ id: c.id,
181
+ type: "response",
182
+ command: "get_messages",
183
+ success: true,
184
+ data: { messages: bundle.agent.state.messages },
185
+ };
186
+ }
187
+ case "set_model": {
188
+ // Light-touch: pi-agent-core's Agent exposes a `state.model`
189
+ // setter, but switching mid-session requires careful handling
190
+ // of in-flight requests. For now we reject — the user picks
191
+ // the model at startup via env vars and we just report it.
192
+ return buildErrorResponse(c.id, c.type, "set_model is not yet supported in app-server mode — set CODEBASE_PROVIDER + CODEBASE_MODEL before launch");
193
+ }
194
+ case "permission_respond": {
195
+ if (!pendingPermission || pendingPermission.id !== c.requestId) {
196
+ return buildErrorResponse(c.id, c.type, "no matching pending permission request");
197
+ }
198
+ bundle.permissions.respond(c.requestId, c.choice);
199
+ return { id: c.id, type: "response", command: "permission_respond", success: true };
200
+ }
201
+ }
202
+ }
203
+ function modelInfo() {
204
+ return {
205
+ provider: bundle.model.provider,
206
+ id: bundle.model.id,
207
+ name: bundle.model.name,
208
+ };
209
+ }
210
+ function buildState() {
211
+ return {
212
+ model: modelInfo(),
213
+ source: bundle.source,
214
+ status,
215
+ messageCount: bundle.agent.state.messages.length,
216
+ usage: totalUsage,
217
+ cwd: bundle.toolContext.cwd,
218
+ pendingPermission,
219
+ };
220
+ }
221
+ }
222
+ function mergeUsage(a, b) {
223
+ return {
224
+ input: a.input + b.input,
225
+ output: a.output + b.output,
226
+ cacheRead: a.cacheRead + b.cacheRead,
227
+ cacheWrite: a.cacheWrite + b.cacheWrite,
228
+ totalTokens: a.totalTokens + b.totalTokens,
229
+ cost: {
230
+ input: a.cost.input + b.cost.input,
231
+ output: a.cost.output + b.cost.output,
232
+ cacheRead: a.cost.cacheRead + b.cost.cacheRead,
233
+ cacheWrite: a.cost.cacheWrite + b.cost.cacheWrite,
234
+ total: a.cost.total + b.cost.total,
235
+ },
236
+ };
237
+ }
238
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/app-server/server.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -2,6 +2,7 @@
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";
@@ -25,6 +26,16 @@ else if (argv[0] === "auth") {
25
26
  else if (argv[0] === "project" || argv[0] === "projects") {
26
27
  runProjectSubcommand(argv).then((code) => process.exit(code));
27
28
  }
29
+ else if (argv[0] === "app-server") {
30
+ // JSON-RPC-ish over stdio for IDE extensions. Auto-approve permissions
31
+ // by default — IDE clients render approval UIs themselves and we don't
32
+ // want the server to hang waiting on a TUI prompt no one's watching.
33
+ // The `--no-auto-approve` flag is for clients that DO implement their
34
+ // own approval flow via the `permission_request` event.
35
+ const noAutoApprove = argv.includes("--no-auto-approve");
36
+ const resume = argv.includes("--resume");
37
+ runAppServer({ autoApprove: !noAutoApprove, resume }).then((code) => process.exit(code));
38
+ }
28
39
  else if (argv[0] === "run") {
29
40
  const { prompt, outputFormat, autoApprove, error } = parseRunArgs(argv.slice(1));
30
41
  if (error) {
@@ -104,6 +115,7 @@ function printHelp() {
104
115
  " codebase auth <cbk_xxx> save a manual API key (for SSH / headless)",
105
116
  " codebase project list list your projects on codebase.design",
106
117
  " codebase project pull <id> download a project as a ZIP",
118
+ " codebase app-server JSON-RPC server on stdio (for IDE extensions)",
107
119
  " codebase --version print version and exit",
108
120
  " codebase --help show this message",
109
121
  "",
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":";;AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAA6B,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,+DAA+D;AAC/D,UAAU,EAAE,CAAC;AAab,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;AAE5F,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;IACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,kBAAkB,EAAE,IAAI,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;KAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;IACrD,SAAS,EAAE,CAAC;IACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;KAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;IAC/B,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;KAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;IAC5D,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/D,CAAC;KAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC;IACrC,uEAAuE;IACvE,uEAAuE;IACvE,qEAAqE;IACrE,sEAAsE;IACtE,wDAAwD;IACxD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1F,CAAC;KAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,IAAI,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;QACzG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IACD,WAAW,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACvF,CAAC;KAAM,CAAC;IACP,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAC,GAAG,KAAG,CAAC,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAAc;IACnC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,YAA8C,CAAC;IACnD,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAA6B,CAAC,EAAE,CAAC;gBACxE,OAAO,EAAE,KAAK,EAAE,4BAA4B,CAAC,GAAG,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACtF,CAAC;YACD,YAAY,GAAG,KAA6B,CAAC;YAC7C,CAAC,EAAE,CAAC;YACJ,SAAS;QACV,CAAC;QACD,IAAI,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAA6B,CAAC,EAAE,CAAC;gBAC9D,OAAO,EAAE,KAAK,EAAE,4BAA4B,CAAC,GAAG,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACtF,CAAC;YACD,YAAY,GAAG,KAA6B,CAAC;YAC7C,SAAS;QACV,CAAC;QACD,IAAI,CAAC,KAAK,gBAAgB,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAC3D,WAAW,GAAG,IAAI,CAAC;YACnB,SAAS;QACV,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;AACnE,CAAC;AAED,SAAS,kBAAkB;IAC1B,kEAAkE;IAClE,qEAAqE;IACrE,oBAAoB;IACpB,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAyB,CAAC;QAC1E,OAAO,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC;AAED,SAAS,SAAS;IACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CACnB;QACC,6CAA6C;QAC7C,EAAE;QACF,QAAQ;QACR,iFAAiF;QACjF,wEAAwE;QACxE,mDAAmD;QACnD,oEAAoE;QACpE,sEAAsE;QACtE,2DAA2D;QAC3D,qDAAqD;QACrD,+DAA+D;QAC/D,2EAA2E;QAC3E,sEAAsE;QACtE,4DAA4D;QAC5D,8EAA8E;QAC9E,uDAAuD;QACvD,kDAAkD;QAClD,EAAE;QACF,2DAA2D;QAC3D,EAAE;KACF,CAAC,IAAI,CAAC,IAAI,CAAC,CACZ,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codebase-cli",
3
- "version": "2.0.0-pre.5",
3
+ "version": "2.0.0-pre.6",
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",