@tomsun28/pizza 0.0.9 → 0.1.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.
@@ -1,25 +1,14 @@
1
1
  /**
2
2
  * pi-pizza extension
3
3
  *
4
- * Gives the model a real shell plus two precise file-editing blocks, while
5
- * leaving the rest of the native tool ecosystem (MCP, other extensions,
6
- * skills) fully available. The model may freely mix:
4
+ * Uses pi's built-in tools (read, write, edit, bash) but displays them in [CLI] tag format.
5
+ * The LLM uses pi's native tool calling, but conversation history is rewritten so the model
6
+ * sees [CLI]/[RESULT] format instead of JSON tool calls.
7
7
  *
8
- * [CLI id=1] rg "TODO" --type ts[/CLI]
9
- * [WRITE id=1 path=src/hello.ts]
10
- * export const hi = "hi";
11
- * [/WRITE]
12
- * [EDIT id=1 path=src/main.ts]
13
- * <<<<<<< SEARCH
14
- * const greet = "hello";
15
- * =======
16
- * const greet = "hi";
17
- * >>>>>>> REPLACE
18
- * [/EDIT]
8
+ * Supports: read, write, edit, bash (pi's built-in tools)
19
9
  *
20
- * …and/or native tool calls from MCP. Results come back as [RESULT …]…[/RESULT].
21
- *
22
- * Toggle at runtime with /cli-mode (on by default).
10
+ * Usage in pi:
11
+ * /cli-mode — toggle CLI display mode on/off
23
12
  */
24
13
  import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
25
14
  export default function (pi: ExtensionAPI): void;
@@ -1,117 +1,266 @@
1
1
  /**
2
2
  * pi-pizza extension
3
3
  *
4
- * Gives the model a real shell plus two precise file-editing blocks, while
5
- * leaving the rest of the native tool ecosystem (MCP, other extensions,
6
- * skills) fully available. The model may freely mix:
4
+ * Uses pi's built-in tools (read, write, edit, bash) but displays them in [CLI] tag format.
5
+ * The LLM uses pi's native tool calling, but conversation history is rewritten so the model
6
+ * sees [CLI]/[RESULT] format instead of JSON tool calls.
7
7
  *
8
- * [CLI id=1] rg "TODO" --type ts[/CLI]
9
- * [WRITE id=1 path=src/hello.ts]
10
- * export const hi = "hi";
11
- * [/WRITE]
12
- * [EDIT id=1 path=src/main.ts]
13
- * <<<<<<< SEARCH
14
- * const greet = "hello";
15
- * =======
16
- * const greet = "hi";
17
- * >>>>>>> REPLACE
18
- * [/EDIT]
8
+ * Supports: read, write, edit, bash (pi's built-in tools)
19
9
  *
20
- * …and/or native tool calls from MCP. Results come back as [RESULT …]…[/RESULT].
21
- *
22
- * Toggle at runtime with /cli-mode (on by default).
10
+ * Usage in pi:
11
+ * /cli-mode — toggle CLI display mode on/off
23
12
  */
24
13
  import { Text } from "@mariozechner/pi-tui";
25
- import { MAX_CALLS_PER_TURN, buildResultBlock, dispatchBlock, labelForBlock, parseBlocks, reconstructBlockText, } from "./core.js";
14
+ // ─── Helper functions for CLI format conversion ─────────────────────────────────
15
+ function toolCallToCliText(toolName, arguments_) {
16
+ switch (toolName) {
17
+ case "read":
18
+ const path = arguments_.path;
19
+ const offset = arguments_.offset !== undefined ? ` --offset ${arguments_.offset}` : "";
20
+ const limit = arguments_.limit !== undefined ? ` --limit ${arguments_.limit}` : "";
21
+ return `[CLI] read ${path}${offset}${limit}[/CLI]`;
22
+ case "write":
23
+ return `[CLI] write --path ${arguments_.path} --content "${arguments_.content.replace(/"/g, '\\"')}"[/CLI]`;
24
+ case "edit":
25
+ return `[CLI] edit --path ${arguments_.path} --old "${arguments_.oldText.replace(/"/g, '\\"')}" --new "${arguments_.newText.replace(/"/g, '\\"')}"[/CLI]`;
26
+ case "bash":
27
+ return `[CLI] bash ${arguments_.command}[/CLI]`;
28
+ default:
29
+ return `[CLI] ${toolName} ${JSON.stringify(arguments_)}[/CLI]`;
30
+ }
31
+ }
32
+ function toolResultToCliText(toolName, output, isError) {
33
+ const errorAttr = isError ? " error=true" : "";
34
+ return `[RESULT${errorAttr}]\n${output}\n[/RESULT]`;
35
+ }
36
+ function parseCLICalls(text) {
37
+ const regex = /\[CLI(?:\s+id=(\d+))?\]([\s\S]*?)\[\/CLI\]/g;
38
+ const calls = [];
39
+ let firstMatchStart = -1;
40
+ let autoId = 1;
41
+ let match;
42
+ while ((match = regex.exec(text)) !== null) {
43
+ if (firstMatchStart === -1)
44
+ firstMatchStart = match.index;
45
+ const explicitId = match[1] ? parseInt(match[1], 10) : undefined;
46
+ const inner = match[2].trim();
47
+ const spaceIdx = inner.search(/\s/);
48
+ const toolName = spaceIdx === -1 ? inner : inner.slice(0, spaceIdx);
49
+ const rawArgs = spaceIdx === -1 ? "" : inner.slice(spaceIdx + 1).trim();
50
+ if (toolName) {
51
+ calls.push({ id: explicitId ?? autoId, toolName, rawArgs });
52
+ autoId++;
53
+ }
54
+ }
55
+ const textBeforeCalls = firstMatchStart >= 0 ? text.substring(0, firstMatchStart).trimEnd() : text;
56
+ return { calls, textBeforeCalls };
57
+ }
58
+ // ─── Shell-style arg parser with HEREDOC support ─────────────────────────────────
59
+ function parseCliArgs(raw) {
60
+ const args = {};
61
+ const positional = [];
62
+ const tokens = [];
63
+ let i = 0;
64
+ while (i < raw.length) {
65
+ while (i < raw.length && /\s/.test(raw[i]))
66
+ i++;
67
+ if (i >= raw.length)
68
+ break;
69
+ // Handle HEREDOC: <<'DELIMITER' or <<"DELIMITER" or <<DELIMITER
70
+ if (raw.slice(i, i + 2) === "<<") {
71
+ i += 2;
72
+ while (i < raw.length && /\s/.test(raw[i]))
73
+ i++;
74
+ if (i >= raw.length)
75
+ break;
76
+ let delimiter;
77
+ let stripQuotes = false;
78
+ if (raw[i] === "'" || raw[i] === '"') {
79
+ const quote = raw[i++];
80
+ let delim = "";
81
+ while (i < raw.length && raw[i] !== quote) {
82
+ delim += raw[i++];
83
+ }
84
+ i++; // skip closing quote
85
+ delimiter = delim;
86
+ stripQuotes = true;
87
+ }
88
+ else {
89
+ let delim = "";
90
+ while (i < raw.length && !/\s/.test(raw[i]) && raw[i] !== "\n") {
91
+ delim += raw[i++];
92
+ }
93
+ delimiter = delim;
94
+ }
95
+ // Find the delimiter on its own line
96
+ const heredocStart = i;
97
+ while (i < raw.length) {
98
+ const lineStart = i;
99
+ while (i < raw.length && raw[i] !== "\n")
100
+ i++;
101
+ const line = raw.slice(lineStart, i).trim();
102
+ if (line === delimiter) {
103
+ break;
104
+ }
105
+ if (i < raw.length && raw[i] === "\n")
106
+ i++;
107
+ }
108
+ const heredocContent = raw.slice(heredocStart, i - delimiter.length - 1).trimEnd();
109
+ tokens.push(heredocContent);
110
+ continue;
111
+ }
112
+ if (raw[i] === '"' || raw[i] === "'") {
113
+ const quote = raw[i++];
114
+ let val = "";
115
+ while (i < raw.length && raw[i] !== quote) {
116
+ if (raw[i] === "\\" && i + 1 < raw.length) {
117
+ i++;
118
+ val += raw[i++];
119
+ }
120
+ else {
121
+ val += raw[i++];
122
+ }
123
+ }
124
+ i++;
125
+ tokens.push(val);
126
+ }
127
+ else {
128
+ let val = "";
129
+ while (i < raw.length && !/\s/.test(raw[i])) {
130
+ val += raw[i++];
131
+ }
132
+ tokens.push(val);
133
+ }
134
+ }
135
+ let ti = 0;
136
+ while (ti < tokens.length) {
137
+ const tok = tokens[ti];
138
+ if (tok.startsWith("--")) {
139
+ const key = tok.slice(2);
140
+ if (ti + 1 < tokens.length && !tokens[ti + 1].startsWith("--")) {
141
+ args[key] = tokens[ti + 1];
142
+ ti += 2;
143
+ }
144
+ else {
145
+ args[key] = true;
146
+ ti++;
147
+ }
148
+ }
149
+ else {
150
+ positional.push(tok);
151
+ ti++;
152
+ }
153
+ }
154
+ if (positional.length > 0) {
155
+ if (!("path" in args) && !("command" in args) && !("pattern" in args)) {
156
+ args._positional = positional.join(" ");
157
+ }
158
+ }
159
+ return args;
160
+ }
161
+ function mapArgsToTool(toolName, rawArgs) {
162
+ const args = parseCliArgs(rawArgs);
163
+ const pos = args._positional;
164
+ delete args._positional;
165
+ switch (toolName) {
166
+ case "read":
167
+ if (pos && !args.path)
168
+ args.path = pos;
169
+ break;
170
+ case "write":
171
+ // --path and --content required
172
+ break;
173
+ case "edit":
174
+ if (args.old) {
175
+ args.oldText = args.old;
176
+ delete args.old;
177
+ }
178
+ if (args.new) {
179
+ args.newText = args.new;
180
+ delete args.new;
181
+ }
182
+ if (pos && !args.path)
183
+ args.path = pos;
184
+ break;
185
+ case "bash":
186
+ if (rawArgs && !args.command)
187
+ args.command = rawArgs;
188
+ break;
189
+ default:
190
+ if (pos)
191
+ args.input = pos;
192
+ }
193
+ return args;
194
+ }
26
195
  // ─── System prompt addon ───────────────────────────────────────────────────────
27
196
  const PIZZA_SYSTEM_PROMPT = `
28
- You have direct access to the user's shell and filesystem through three text blocks.
29
- Any blocks you emit are executed immediately; results come back as [RESULT]...[/RESULT]
30
- text in the next turn. You may also continue to use any native tools that are
31
- available (e.g. MCP tools) — the two styles coexist.
197
+ You are a software engineering assistant that interacts with the user's environment by issuing commands wrapped in [CLI]...[/CLI] tags.
32
198
 
33
- ## Blocks
199
+ Any [CLI] blocks you emit are executed immediately; results come back as [RESULT]...[/RESULT] text.
200
+ You may include multiple [CLI] blocks in a single response — they all run before your next reply.
201
+ When issuing multiple [CLI] blocks, add an id attribute to each for result mapping: [CLI id=1] ... [/CLI]
34
202
 
35
- 1) Shell — run ANY command. Use the full unix toolbelt: ls, cat, head, tail,
36
- rg, fd, find, grep, sed, awk, jq, git, gh, curl, node, python, make, docker,
37
- kubectl, and whatever else is installed. Compose with pipes freely.
203
+ ## Commands
38
204
 
39
- [CLI id=1] <shell command>[/CLI]
205
+ [CLI] read <path>[/CLI]
206
+ [CLI] read <path> --offset <n> --limit <n>[/CLI]
207
+ [CLI] write --path <path> --content <content>[/CLI]
208
+ [CLI] edit --path <path> --old <oldText> --new <newText>[/CLI]
209
+ [CLI] bash <any shell command>[/CLI]
40
210
 
41
- 2) Write — overwrite a file with exact contents. The body is taken verbatim;
42
- do not wrap it in markdown fences. Do not emit the literal string [/WRITE]
43
- inside the body.
211
+ ## Multi-line Text
44
212
 
45
- [WRITE id=1 path=relative/or/absolute/path]
46
- <full file contents>
47
- [/WRITE]
213
+ For multi-line text in edit or write, use heredoc syntax:
48
214
 
49
- 3) Edit targeted replacement. SEARCH text must match the file exactly
50
- (including whitespace) and appear exactly once.
215
+ [CLI] edit --path file.js --old <<'EOF'
216
+ function foo() {
217
+ return 1;
218
+ }
219
+ EOF
220
+ --new <<'EOF'
221
+ function foo() {
222
+ return 2;
223
+ }
224
+ EOF
225
+ [/CLI]
51
226
 
52
- [EDIT id=1 path=relative/or/absolute/path]
53
- <<<<<<< SEARCH
54
- <exact existing text>
55
- =======
56
- <replacement text>
57
- >>>>>>> REPLACE
58
- [/EDIT]
227
+ The heredoc delimiter (EOF in the example) can be any word. Use single quotes around it to prevent variable expansion.
59
228
 
60
229
  ## Examples
61
230
 
62
- Explore the project:
231
+ Example 1 — Check Node version:
63
232
 
64
- Let me see what's here and check node.
65
- [CLI id=1] ls -la[/CLI]
66
- [CLI id=2] node --version[/CLI]
233
+ Let me check the Node version.
234
+ [CLI id=1] bash node --version[/CLI]
67
235
 
68
- After results come back, read files with plain shell:
236
+ Example 2 Edit a file with multi-line text:
69
237
 
70
- [CLI id=1] rg -n "TODO" src | head -40[/CLI]
71
- [CLI id=2] sed -n '1,80p' src/main.ts[/CLI]
238
+ [CLI id=1] edit --path app.js --old <<'EOF'
239
+ const x = 1;
240
+ EOF
241
+ --new <<'EOF'
242
+ const x = 2;
243
+ EOF
244
+ [/CLI]
72
245
 
73
- Create a new file:
246
+ ## Best Practices
74
247
 
75
- [WRITE id=1 path=src/greet.ts]
76
- export function greet(name: string): string {
77
- return \`hello, \${name}\`;
78
- }
79
- [/WRITE]
80
-
81
- Change an existing file:
82
-
83
- [EDIT id=1 path=src/main.ts]
84
- <<<<<<< SEARCH
85
- const greet = "hello";
86
- =======
87
- const greet = "hi";
88
- >>>>>>> REPLACE
89
- [/EDIT]
90
-
91
- When you have enough information, answer normally without any blocks.
92
-
93
- ## Rules
94
-
95
- - Emit at most ${MAX_CALLS_PER_TURN} blocks per response (combined across kinds)
96
- - All blocks in your response are executed before your next turn
97
- - NEVER generate [RESULT] blocks yourself — they are injected automatically
98
- - Do NOT wrap blocks in markdown fences; they must appear as raw text
99
- - Prefer [EDIT] over [WRITE] for existing files — keep changes minimal
100
- - ALWAYS read a file (\`sed -n '1,200p' path\` or \`cat path\`) before editing it
101
- - For file edits, the SEARCH text must match exactly once; include enough
102
- surrounding context to be unique
103
- - When running shell commands with paths that contain spaces, quote them
104
- - Be honest and objective. If something is wrong, say so
105
- - Do not add unnecessary features, refactoring, comments, or error handling
106
- beyond what was requested
107
- - Avoid introducing security issues (command injection, XSS, SQLi, etc.)
248
+ - ALWAYS read a file before modifying it. Use \`read\` first, understand the existing code, then use \`edit\`
249
+ - Prefer \`edit\` over \`write\` for changing existing files — make minimal, targeted changes
250
+ - Only create new files when explicitly necessary
251
+ - For complex tasks, plan your approach first: read relevant files, understand the structure, then make changes step by step
252
+ - Keep responses concise and direct. Output text only when it communicates something useful to the user
253
+ - Be honest and objective. If something is wrong, say so. Do not blindly validate the user's assumptions
254
+ - Do not add unnecessary features, refactoring, comments, or error handling beyond what was requested — do the minimum necessary
255
+ - Avoid security vulnerabilities: do not introduce command injection, XSS, SQL injection, or other OWASP top 10 issues in generated code
256
+ - When running bash commands with file paths that contain spaces, quote the paths with double quotes
108
257
  `.trim();
109
258
  // ─── Extension ────────────────────────────────────────────────────────────────
110
259
  export default function (pi) {
111
260
  let pizzaModeActive = true;
112
- // ── /cli-mode command ────────────────────────────────────────────────────
261
+ // ── /pizza-mode command ──────────────────────────────────────────────────
113
262
  pi.registerCommand("cli-mode", {
114
- description: "Toggle [CLI]/[WRITE]/[EDIT] block mode on/off (on by default)",
263
+ description: "Toggle [CLI] tag mode on/off (active by default at startup)",
115
264
  handler: async (_args, ctx) => {
116
265
  pizzaModeActive = !pizzaModeActive;
117
266
  const status = pizzaModeActive ? "ON" : "OFF";
@@ -127,121 +276,56 @@ export default function (pi) {
127
276
  systemPrompt: event.systemPrompt + "\n\n" + PIZZA_SYSTEM_PROMPT,
128
277
  };
129
278
  });
130
- // NOTE: we intentionally do NOT strip `tools` from the provider request.
131
- // Native tool calling (MCP, other extensions, skills) stays fully available;
132
- // the [CLI]/[WRITE]/[EDIT] blocks are an additive channel.
133
- // ── Parse blocks, execute, inject [RESULT] ───────────────────────────────
134
- pi.on("agent_end", async (event, ctx) => {
135
- if (!pizzaModeActive)
136
- return;
137
- const messages = event.messages;
138
- // Find the last assistant text
139
- let lastAssistantText = "";
140
- for (let i = messages.length - 1; i >= 0; i--) {
141
- const msg = messages[i];
142
- if (msg.role === "assistant") {
143
- if (typeof msg.content === "string") {
144
- lastAssistantText = msg.content;
145
- }
146
- else if (Array.isArray(msg.content)) {
147
- const textParts = msg.content
148
- .filter((c) => c.type === "text")
149
- .map((c) => c.text ?? "");
150
- lastAssistantText = textParts.join("\n");
151
- }
152
- break;
153
- }
154
- }
155
- const blocks = parseBlocks(lastAssistantText);
156
- if (blocks.length === 0)
157
- return;
158
- const cwd = ctx.cwd;
159
- const toExecute = blocks.slice(0, MAX_CALLS_PER_TURN);
160
- const skipped = blocks.length - toExecute.length;
161
- const results = [];
162
- for (const block of toExecute) {
163
- try {
164
- results.push(await dispatchBlock(block, cwd));
165
- }
166
- catch (err) {
167
- results.push({
168
- output: err instanceof Error ? err.message : String(err),
169
- isError: true,
170
- });
171
- }
172
- }
173
- const parts = results.map((r, i) => {
174
- const block = toExecute[i];
175
- return buildResultBlock(r.output, r.isError, block.id, block.kind, labelForBlock(block));
176
- });
177
- if (skipped > 0) {
178
- parts.push(`[INFO] ${skipped} block(s) were skipped (limit: ${MAX_CALLS_PER_TURN} per turn).`);
179
- }
180
- const content = parts.join("\n\n");
181
- pi.sendMessage({ customType: "pizza-result", content, display: true }, { triggerTurn: true });
182
- });
183
- // ── Rewrite history: custom pizza-result → plain user text ───────────────
279
+ // ── Keep pi's tools enabled ─────────────────────────────────────────────
280
+ // We don't strip tools anymore, so pi's built-in tools (read, write, edit, bash) are available
281
+ // ── Rewrite history: pi's tool_use/tool_result → [CLI]/[RESULT] format ─────
184
282
  pi.on("context", (event, _ctx) => {
185
283
  if (!pizzaModeActive)
186
284
  return;
187
285
  let modified = false;
188
286
  const messages = event.messages.map((msg) => {
189
- const custom = msg;
190
- if (custom.role === "custom" && custom.customType === "pizza-result") {
191
- modified = true;
192
- return {
193
- role: "user",
194
- content: [{ type: "text", text: custom.content ?? "" }],
195
- timestamp: custom.timestamp ?? Date.now(),
196
- };
197
- }
198
- // If legacy sessions recorded our built-ins as native tool calls,
199
- // rewrite them to pizza-format text so the history stays coherent.
287
+ // Rewrite assistant's tool_use messages to [CLI] format
200
288
  if (msg.role === "assistant" && Array.isArray(msg.content)) {
201
289
  const content = msg.content;
202
290
  const hasToolCalls = content.some((c) => c.type === "toolCall");
203
- if (!hasToolCalls)
204
- return msg;
205
- const textParts = [];
206
- let rewroteAny = false;
207
- const preservedBlocks = [];
208
- for (const block of content) {
209
- if (block.type === "text" && typeof block.text === "string") {
210
- textParts.push(block.text);
211
- }
212
- else if (block.type === "toolCall") {
213
- const tc = block;
214
- const reconstructed = reconstructBlockText(tc.name, tc.arguments);
215
- if (reconstructed !== null) {
216
- textParts.push(reconstructed);
217
- rewroteAny = true;
291
+ if (hasToolCalls) {
292
+ modified = true;
293
+ const textParts = [];
294
+ for (const block of content) {
295
+ if (block.type === "text" && block.text) {
296
+ textParts.push(block.text);
218
297
  }
219
- else {
220
- preservedBlocks.push(block);
298
+ else if (block.type === "toolCall") {
299
+ const tc = block;
300
+ textParts.push(toolCallToCliText(tc.name, tc.arguments));
221
301
  }
222
302
  }
223
- else {
224
- preservedBlocks.push(block);
225
- }
303
+ return {
304
+ ...msg,
305
+ content: [{ type: "text", text: textParts.join("\n\n") }],
306
+ };
226
307
  }
227
- if (!rewroteAny)
228
- return msg;
308
+ }
309
+ // Rewrite tool_result messages to [RESULT] format
310
+ if (msg.role === "toolResult" && typeof msg.content === "string") {
229
311
  modified = true;
230
- const newContent = [];
231
- if (textParts.length > 0) {
232
- newContent.push({ type: "text", text: textParts.join("\n\n") });
233
- }
234
- newContent.push(...preservedBlocks);
235
- return { ...msg, content: newContent };
312
+ const toolName = msg.toolName ?? "unknown";
313
+ const isError = msg.isError ?? false;
314
+ return {
315
+ role: "user",
316
+ content: [{ type: "text", text: toolResultToCliText(toolName, msg.content, isError) }],
317
+ timestamp: msg.timestamp ?? Date.now(),
318
+ };
236
319
  }
237
320
  return msg;
238
321
  });
239
322
  if (modified)
240
323
  return { messages };
241
324
  });
242
- // ── Custom renderer for pizza-result messages ─────────────────────────────
243
- pi.registerMessageRenderer("pizza-result", (message, options, theme) => {
325
+ // ── Custom renderer for [RESULT] messages ─────────────────────────────────────
326
+ pi.registerMessageRenderer("text", (message, options, theme) => {
244
327
  const content = typeof message.content === "string" ? message.content : "";
328
+ // Check if this is a [RESULT] block
245
329
  const resultPattern = /\[RESULT((?:\s+[^\]]*)?)\]([\s\S]*?)\[\/RESULT\]/g;
246
330
  const PREVIEW_LINES = 2;
247
331
  const lines = [];
@@ -252,18 +336,9 @@ export default function (pi) {
252
336
  const attrs = match[1] || "";
253
337
  const isError = attrs.includes("error=true");
254
338
  const body = match[2].trim();
255
- const idMatch = attrs.match(/id=(\d+)/);
256
- const kindMatch = attrs.match(/kind=(\w+)/);
257
- const labelMatch = attrs.match(/label="((?:[^"\\]|\\.)*)"/);
258
- const id = idMatch ? idMatch[1] : null;
259
- const kind = kindMatch ? kindMatch[1] : null;
260
- const label = labelMatch ? labelMatch[1].replace(/\\"/g, '"') : null;
261
339
  const headerColor = isError ? "error" : "success";
262
340
  const statusLabel = isError ? "error" : "ok";
263
- const idLabel = id ? `[${id}]` : "";
264
- const kindLabel = kind ? ` ${kind}` : "";
265
- const labelText = label ? ` ${label}` : "";
266
- const header = `▶ result ${idLabel}${kindLabel} ${statusLabel}${labelText}`;
341
+ const header = `▶ result ${statusLabel}`;
267
342
  lines.push(theme.fg(headerColor, header));
268
343
  if (body) {
269
344
  const bodyLines = body.split("\n");
@@ -282,15 +357,11 @@ export default function (pi) {
282
357
  }
283
358
  lines.push("");
284
359
  }
285
- const infoPattern = /\[INFO\] (.+)/g;
286
- let infoMatch;
287
- while ((infoMatch = infoPattern.exec(content)) !== null) {
288
- lines.push(theme.fg("muted", `ℹ ${infoMatch[1]}`));
289
- }
290
- if (!hasResults) {
291
- lines.push(theme.fg("muted", "(no pizza results)"));
360
+ if (hasResults) {
361
+ return new Text(lines.join("\n"), 0, 0);
292
362
  }
293
- return new Text(lines.join("\n"), 0, 0);
363
+ // Default rendering for non-RESULT text
364
+ return new Text(content, 0, 0);
294
365
  });
295
366
  // ── Pizza UI customization ────────────────────────────────────────────────
296
367
  pi.on("session_start", (_event, ctx) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extension/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,WAAW,EACX,oBAAoB,GAEpB,MAAM,WAAW,CAAC;AAEnB,kFAAkF;AAElF,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoEX,kBAAkB;;;;;;;;;;;;;CAalC,CAAC,IAAI,EAAE,CAAC;AAET,iFAAiF;AAEjF,MAAM,CAAC,OAAO,WAAW,EAAgB;IACxC,IAAI,eAAe,GAAG,IAAI,CAAC;IAE3B,4EAA4E;IAE5E,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE;QAC9B,WAAW,EAAE,+DAA+D;QAC5E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC7B,eAAe,GAAG,CAAC,eAAe,CAAC;YACnC,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YAC9C,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;YAC7C,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1E,CAAC;KACD,CAAC,CAAC;IAEH,4EAA4E;IAE5E,EAAE,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3C,IAAI,CAAC,eAAe;YAAE,OAAO;QAC7B,OAAO;YACN,YAAY,EAAE,KAAK,CAAC,YAAY,GAAG,MAAM,GAAG,mBAAmB;SAC/D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,yEAAyE;IACzE,6EAA6E;IAC7E,2DAA2D;IAE3D,4EAA4E;IAE5E,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACvC,IAAI,CAAC,eAAe;YAAE,OAAO;QAE7B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAEhC,+BAA+B;QAC/B,IAAI,iBAAiB,GAAG,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC9B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACrC,iBAAiB,GAAG,GAAG,CAAC,OAAO,CAAC;gBACjC,CAAC;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACvC,MAAM,SAAS,GAAI,GAAG,CAAC,OAAkD;yBACvE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;yBAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;oBAC3B,iBAAiB,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1C,CAAC;gBACD,MAAM;YACP,CAAC;QACF,CAAC;QAED,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEhC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;QACpB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QAEjD,MAAM,OAAO,GAAoB,EAAE,CAAC;QACpC,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACJ,OAAO,CAAC,IAAI,CAAC,MAAM,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC;oBACZ,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;oBACxD,OAAO,EAAE,IAAI;iBACb,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC3B,OAAO,gBAAgB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CACT,UAAU,OAAO,kCAAkC,kBAAkB,aAAa,CAClF,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEnC,EAAE,CAAC,WAAW,CACb,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EACtD,EAAE,WAAW,EAAE,IAAI,EAAE,CACrB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAE5E,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAChC,IAAI,CAAC,eAAe;YAAE,OAAO;QAE7B,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3C,MAAM,MAAM,GAAG,GAKd,CAAC;YAEF,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;gBACtE,QAAQ,GAAG,IAAI,CAAC;gBAChB,OAAO;oBACN,IAAI,EAAE,MAAe;oBACrB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;oBAChE,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;iBACzC,CAAC;YACH,CAAC;YAED,kEAAkE;YAClE,mEAAmE;YACnE,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5D,MAAM,OAAO,GAAI,GAAG,CAAC,OAAoE,CAAC;gBAC1F,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;gBAChE,IAAI,CAAC,YAAY;oBAAE,OAAO,GAAG,CAAC;gBAE9B,MAAM,SAAS,GAAa,EAAE,CAAC;gBAC/B,IAAI,UAAU,GAAG,KAAK,CAAC;gBACvB,MAAM,eAAe,GAAmB,EAAE,CAAC;gBAE3C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC7D,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC5B,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBACtC,MAAM,EAAE,GAAG,KAA2E,CAAC;wBACvF,MAAM,aAAa,GAAG,oBAAoB,CACzC,EAAE,CAAC,IAAI,EACP,EAAE,CAAC,SAAgC,CACnC,CAAC;wBACF,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;4BAC5B,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;4BAC9B,UAAU,GAAG,IAAI,CAAC;wBACnB,CAAC;6BAAM,CAAC;4BACP,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAC7B,CAAC;oBACF,CAAC;yBAAM,CAAC;wBACP,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC7B,CAAC;gBACF,CAAC;gBAED,IAAI,CAAC,UAAU;oBAAE,OAAO,GAAG,CAAC;gBAC5B,QAAQ,GAAG,IAAI,CAAC;gBAEhB,MAAM,UAAU,GAAU,EAAE,CAAC;gBAC7B,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACjE,CAAC;gBACD,UAAU,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;gBACpC,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;YACxC,CAAC;YAED,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,IAAI,QAAQ;YAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAE7E,EAAE,CAAC,uBAAuB,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACtE,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,aAAa,GAClB,mDAAmD,CAAC;QAErD,MAAM,aAAa,GAAG,CAAC,CAAC;QACxB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,KAA6B,CAAC;QAElC,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACvD,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAE7B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACxC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAE5D,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACvC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAErE,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAClD,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7C,MAAM,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,YAAY,OAAO,GAAG,SAAS,IAAI,WAAW,GAAG,SAAS,EAAE,CAAC;YAC5E,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;YAE1C,IAAI,IAAI,EAAE,CAAC;gBACV,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC,MAAM,IAAI,aAAa,CAAC;gBACtE,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;gBAExE,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;oBAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC1C,CAAC;gBAED,IAAI,CAAC,OAAO,EAAE,CAAC;oBACd,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC;oBAChD,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,MAAM,iCAAiC,CAAC,CAAC,CAAC;gBACvF,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;YACrD,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;QAED,MAAM,WAAW,GAAG,gBAAgB,CAAC;QACrC,IAAI,SAAiC,CAAC;QACtC,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAE7E,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACtC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzB,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC5B,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAC1C,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extension/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tomsun28/pizza",
3
- "version": "0.0.9",
3
+ "version": "0.1.0",
4
4
  "description": "Pizza - CLI is all you need",
5
5
  "type": "module",
6
6
  "bin": {