@tomsun28/pizza 0.0.1 → 0.0.5

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 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/extension/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * pi-pizza extension
3
+ *
4
+ * Replaces JSON tool calling with [CLI] tag output — the "pizza" approach.
5
+ * The LLM emits [CLI] toolName args[/CLI] text blocks instead of native tool
6
+ * calls. Results are returned as [RESULT]...[/RESULT] text. Conversation
7
+ * history is rewritten so the model always sees the [CLI]/[RESULT] format.
8
+ *
9
+ * Supports: ls, read, write, edit, grep, bash
10
+ *
11
+ * Usage in pi:
12
+ * /pizza-mode — toggle pizza mode on/off
13
+ */
14
+ import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
15
+ export default function (pi: ExtensionAPI): void;
@@ -0,0 +1,260 @@
1
+ /**
2
+ * pi-pizza extension
3
+ *
4
+ * Replaces JSON tool calling with [CLI] tag output — the "pizza" approach.
5
+ * The LLM emits [CLI] toolName args[/CLI] text blocks instead of native tool
6
+ * calls. Results are returned as [RESULT]...[/RESULT] text. Conversation
7
+ * history is rewritten so the model always sees the [CLI]/[RESULT] format.
8
+ *
9
+ * Supports: ls, read, write, edit, grep, bash
10
+ *
11
+ * Usage in pi:
12
+ * /pizza-mode — toggle pizza mode on/off
13
+ */
14
+ import { Text } from "@mariozechner/pi-tui";
15
+ import { MAX_CALLS_PER_TURN, buildResultBlock, dispatchTool, parseCLICalls, reconstructCliText, } from "./core.js";
16
+ // ─── System prompt addon ───────────────────────────────────────────────────────
17
+ const PIZZA_SYSTEM_PROMPT = `
18
+ You are a software engineering assistant that interacts with the user's environment by issuing commands wrapped in [CLI]...[/CLI] tags.
19
+
20
+ Any [CLI] blocks you emit are executed immediately; results come back as [RESULT]...[/RESULT] text.
21
+ You may include multiple [CLI] blocks in a single response — they all run before your next reply.
22
+ When issuing multiple [CLI] blocks, add an id attribute to each for result mapping: [CLI id=1] ... [/CLI]
23
+
24
+ ## Commands
25
+
26
+ [CLI] ls <path>[/CLI]
27
+ [CLI] read <path>[/CLI]
28
+ [CLI] read <path> --offset <n> --limit <n>[/CLI]
29
+ [CLI] write --path <path> --content <content>[/CLI]
30
+ [CLI] edit --path <path> --old <oldText> --new <newText>[/CLI]
31
+ [CLI] grep <pattern> --path <dir> --include <glob>[/CLI]
32
+ [CLI] bash <any shell command>[/CLI]
33
+
34
+ ## Examples
35
+
36
+ Example 1 — Explore the project (your response ends right after the [/CLI] tags):
37
+
38
+ [CLI id=1] ls .[/CLI]
39
+ [CLI id=2] bash node --version[/CLI]
40
+
41
+ (System will execute both commands and inject [RESULT] blocks automatically. You will see them in the next turn.)
42
+
43
+ Example 2 — After receiving results, you can issue more commands or respond normally:
44
+
45
+ The project has a \`src/\` directory and a \`package.json\`. Node is v22.3.0. Let me look at the code:
46
+
47
+ [CLI id=1] read src/app.ts[/CLI]
48
+
49
+ Example 3 — When you have enough information, respond without any [CLI] blocks:
50
+
51
+ Done — the greeting has been updated to "Hi".
52
+
53
+ ## Rules
54
+
55
+ - Emit at most ${MAX_CALLS_PER_TURN} [CLI] blocks per response
56
+ - All [CLI] blocks in your response are executed before you continue
57
+ - After emitting [CLI] blocks, STOP immediately. Do NOT write anything after the last [/CLI] tag
58
+ - NEVER generate [RESULT] blocks yourself — they are injected by the system automatically after execution
59
+ - Do NOT predict, guess, or fabricate command output
60
+ - When you have all the information you need, respond normally without any [CLI] blocks
61
+ - Do NOT use markdown code blocks for commands you want executed
62
+
63
+ ## Best Practices
64
+
65
+ - ALWAYS read a file before modifying it. Use \`read\` first, understand the existing code, then use \`edit\`
66
+ - Prefer \`edit\` over \`write\` for changing existing files — make minimal, targeted changes
67
+ - Only create new files when explicitly necessary
68
+ - For complex tasks, plan your approach first: read relevant files, understand the structure, then make changes step by step
69
+ - Keep responses concise and direct. Output text only when it communicates something useful to the user
70
+ - Be honest and objective. If something is wrong, say so. Do not blindly validate the user's assumptions
71
+ - Do not add unnecessary features, refactoring, comments, or error handling beyond what was requested — do the minimum necessary
72
+ - Avoid security vulnerabilities: do not introduce command injection, XSS, SQL injection, or other OWASP top 10 issues in generated code
73
+ - When running bash commands with file paths that contain spaces, quote the paths with double quotes
74
+ `.trim();
75
+ // ─── Extension ────────────────────────────────────────────────────────────────
76
+ export default function (pi) {
77
+ let pizzaModeActive = true;
78
+ // ── /pizza-mode command ──────────────────────────────────────────────────
79
+ pi.registerCommand("cli-mode", {
80
+ description: "Toggle [CLI] tag mode on/off (active by default at startup)",
81
+ handler: async (_args, ctx) => {
82
+ pizzaModeActive = !pizzaModeActive;
83
+ const status = pizzaModeActive ? "ON" : "OFF";
84
+ ctx.ui.notify(`CLI mode: ${status}`, "info");
85
+ ctx.ui.setStatus("cli-mode", pizzaModeActive ? "🍕 [CLI] on" : "🍕 cli");
86
+ },
87
+ });
88
+ // ── Inject system prompt ─────────────────────────────────────────────────
89
+ pi.on("before_agent_start", (event, _ctx) => {
90
+ if (!pizzaModeActive)
91
+ return;
92
+ return {
93
+ systemPrompt: event.systemPrompt + "\n\n" + PIZZA_SYSTEM_PROMPT,
94
+ };
95
+ });
96
+ // ── Strip tools from provider request ────────────────────────────────────
97
+ pi.on("before_provider_request", (event, _ctx) => {
98
+ if (!pizzaModeActive)
99
+ return;
100
+ const payload = { ...event.payload };
101
+ delete payload["tools"];
102
+ delete payload["tool_choice"];
103
+ delete payload["toolConfig"];
104
+ return payload;
105
+ });
106
+ // ── Parse [CLI] tags, execute tools, inject [RESULT] ─────────────────────
107
+ pi.on("agent_end", async (event, ctx) => {
108
+ if (!pizzaModeActive)
109
+ return;
110
+ const messages = event.messages;
111
+ // Find the last assistant text
112
+ let lastAssistantText = "";
113
+ for (let i = messages.length - 1; i >= 0; i--) {
114
+ const msg = messages[i];
115
+ if (msg.role === "assistant") {
116
+ if (typeof msg.content === "string") {
117
+ lastAssistantText = msg.content;
118
+ }
119
+ else if (Array.isArray(msg.content)) {
120
+ const textParts = msg.content
121
+ .filter((c) => c.type === "text")
122
+ .map((c) => c.text ?? "");
123
+ lastAssistantText = textParts.join("\n");
124
+ }
125
+ break;
126
+ }
127
+ }
128
+ const { calls } = parseCLICalls(lastAssistantText);
129
+ if (calls.length === 0)
130
+ return;
131
+ const cwd = ctx.cwd;
132
+ const toExecute = calls.slice(0, MAX_CALLS_PER_TURN);
133
+ const skipped = calls.length - toExecute.length;
134
+ // Execute all calls in parallel
135
+ const results = await Promise.all(toExecute.map(async (call) => {
136
+ try {
137
+ return await dispatchTool(call.toolName, call.rawArgs, cwd);
138
+ }
139
+ catch (err) {
140
+ return {
141
+ output: err instanceof Error ? err.message : String(err),
142
+ isError: true,
143
+ };
144
+ }
145
+ }));
146
+ // Build combined [RESULT] block(s)
147
+ const parts = results.map((r, i) => {
148
+ const call = toExecute[i];
149
+ const cliCmd = `${call.toolName}${call.rawArgs ? " " + call.rawArgs : ""}`;
150
+ return buildResultBlock(r.output, r.isError, call.id, results.length, cliCmd);
151
+ });
152
+ if (skipped > 0) {
153
+ parts.push(`[INFO] ${skipped} [CLI] call(s) were skipped (limit: ${MAX_CALLS_PER_TURN} per turn).`);
154
+ }
155
+ const content = parts.join("\n\n");
156
+ pi.sendMessage({ customType: "pizza-result", content, display: true }, { triggerTurn: true });
157
+ });
158
+ // ── Rewrite history: custom pizza-result → plain user text ───────────────
159
+ pi.on("context", (event, _ctx) => {
160
+ if (!pizzaModeActive)
161
+ return;
162
+ let modified = false;
163
+ const messages = event.messages.map((msg) => {
164
+ const custom = msg;
165
+ if (custom.role === "custom" && custom.customType === "pizza-result") {
166
+ modified = true;
167
+ return {
168
+ role: "user",
169
+ content: [{ type: "text", text: custom.content ?? "" }],
170
+ timestamp: custom.timestamp ?? Date.now(),
171
+ };
172
+ }
173
+ // Rewrite native tool_use/tool_result messages to [CLI]/[RESULT] text
174
+ // so the model's history stays in pizza format even across sessions
175
+ if (msg.role === "assistant" && Array.isArray(msg.content)) {
176
+ const content = msg.content;
177
+ const hasToolCalls = content.some((c) => c.type === "toolCall");
178
+ if (hasToolCalls) {
179
+ modified = true;
180
+ const textParts = [];
181
+ for (const block of content) {
182
+ if (block.type === "text" && block.text) {
183
+ textParts.push(block.text);
184
+ }
185
+ else if (block.type === "toolCall") {
186
+ const tc = block;
187
+ textParts.push(reconstructCliText(tc.name, tc.arguments));
188
+ }
189
+ }
190
+ return {
191
+ ...msg,
192
+ content: [{ type: "text", text: textParts.join("\n\n") }],
193
+ };
194
+ }
195
+ }
196
+ return msg;
197
+ });
198
+ if (modified)
199
+ return { messages };
200
+ });
201
+ // ── Custom renderer for pizza-result messages ─────────────────────────────
202
+ pi.registerMessageRenderer("pizza-result", (message, options, theme) => {
203
+ const content = typeof message.content === "string" ? message.content : "";
204
+ const resultPattern = /\[RESULT((?:\s+[^\]]*)?)\]([\s\S]*?)\[\/RESULT\]/g;
205
+ const PREVIEW_LINES = 2;
206
+ const lines = [];
207
+ let hasResults = false;
208
+ let match;
209
+ while ((match = resultPattern.exec(content)) !== null) {
210
+ hasResults = true;
211
+ const attrs = match[1] || "";
212
+ const isError = attrs.includes("error=true");
213
+ const body = match[2].trim();
214
+ const idMatch = attrs.match(/id=(\d+)/);
215
+ const cliMatch = attrs.match(/cli="((?:[^"\\]|\\.)*)"/);
216
+ const id = idMatch ? idMatch[1] : null;
217
+ const cli = cliMatch ? cliMatch[1].replace(/\\"/g, '"') : null;
218
+ const headerColor = isError ? "error" : "success";
219
+ const statusLabel = isError ? "error" : "ok";
220
+ const idLabel = id ? `[${id}]` : "";
221
+ const cliLabel = cli ? ` ${cli}` : "";
222
+ const header = `▶ result ${idLabel} ${statusLabel}${cliLabel}`;
223
+ lines.push(theme.fg(headerColor, header));
224
+ if (body) {
225
+ const bodyLines = body.split("\n");
226
+ const showAll = options.expanded || bodyLines.length <= PREVIEW_LINES;
227
+ const visible = showAll ? bodyLines : bodyLines.slice(0, PREVIEW_LINES);
228
+ for (const line of visible) {
229
+ lines.push(" " + theme.fg("dim", line));
230
+ }
231
+ if (!showAll) {
232
+ const hidden = bodyLines.length - PREVIEW_LINES;
233
+ lines.push(" " + theme.fg("muted", `... +${hidden} more lines (expand to see all)`));
234
+ }
235
+ }
236
+ else {
237
+ lines.push(" " + theme.fg("muted", "(no output)"));
238
+ }
239
+ lines.push("");
240
+ }
241
+ // Show any [INFO] lines (e.g. skipped calls notice)
242
+ const infoPattern = /\[INFO\] (.+)/g;
243
+ let infoMatch;
244
+ while ((infoMatch = infoPattern.exec(content)) !== null) {
245
+ lines.push(theme.fg("muted", `ℹ ${infoMatch[1]}`));
246
+ }
247
+ if (!hasResults) {
248
+ lines.push(theme.fg("muted", "(no pizza results)"));
249
+ }
250
+ return new Text(lines.join("\n"), 0, 0);
251
+ });
252
+ // ── Pizza UI customization ────────────────────────────────────────────────
253
+ pi.on("session_start", (_event, ctx) => {
254
+ ctx.ui.setTheme("pizza");
255
+ ctx.ui.setTitle("🍕 pizza");
256
+ ctx.ui.setWorkingMessage("🍕 baking...");
257
+ ctx.ui.setStatus("pizza-mode", pizzaModeActive ? "🍕 [CLI] on" : "🍕 pizza");
258
+ });
259
+ }
260
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extension/index.ts"],"names":[],"mappings":"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"}
package/dist/main.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/main.js CHANGED
@@ -1,88 +1,112 @@
1
1
  #!/usr/bin/env node
2
- import { createInterface } from "node:readline";
3
- import { createPizzaAgent } from "./agent.js";
4
- import { createRenderer } from "./ui/render.js";
5
- // ANSI helpers
6
- const bold = (s) => `\x1b[1m${s}\x1b[0m`;
7
- const dim = (s) => `\x1b[2m${s}\x1b[0m`;
8
- const green = (s) => `\x1b[32m${s}\x1b[0m`;
9
- const cyan = (s) => `\x1b[36m${s}\x1b[0m`;
10
- // Parse CLI args
2
+ import { InteractiveMode, SessionManager, createAgentSessionRuntime, createAgentSessionServices, createAgentSessionFromServices, getAgentDir, } from "@mariozechner/pi-coding-agent";
3
+ import { getModel } from "@mariozechner/pi-ai";
4
+ import { fileURLToPath } from "node:url";
5
+ import { join, dirname } from "node:path";
6
+ import pizzaExtension from "./extension/index.js";
7
+ const __dirname = dirname(fileURLToPath(import.meta.url));
8
+ const THEMES_DIR = join(__dirname, "..", "themes");
9
+ // ─── Startup banner ─────────────────────────────────────────────────────────
10
+ function printBanner() {
11
+ const r = "\x1b[0m";
12
+ const b = "\x1b[1m";
13
+ const o = "\x1b[38;5;214m";
14
+ const d = "\x1b[2m";
15
+ const y = "\x1b[33m";
16
+ console.log();
17
+ console.log(o + b + " ██████╗ ██╗███████╗███████╗ █████╗ " + r);
18
+ console.log(o + b + " ██╔══██╗██║╚════██║╚════██║██╔══██╗" + r);
19
+ console.log(o + b + " ██████╔╝██║ ███╔╝ ███╔╝ ███████║" + r);
20
+ console.log(o + b + " ██╔═══╝ ██║ ██╔╝ ██╔╝ ██╔══██║" + r);
21
+ console.log(o + b + " ██║ ██║███████╗███████╗██║ ██║" + r);
22
+ console.log(o + b + " ╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═╝" + r);
23
+ console.log();
24
+ console.log(y + " 🍕 CLI is all you need" + r);
25
+ console.log(d + " /cli-mode /help Ctrl+P: model Ctrl+T: think Ctrl+C: stop" + r);
26
+ console.log();
27
+ }
28
+ // ─── CLI arg parsing ──────────────────────────────────────────────────────────
11
29
  function parseArgs() {
12
30
  const args = process.argv.slice(2);
13
31
  const result = {};
14
32
  for (let i = 0; i < args.length; i++) {
15
- if (args[i] === "--provider" && args[i + 1]) {
33
+ if ((args[i] === "--provider" || args[i] === "-p") && args[i + 1]) {
16
34
  result.provider = args[++i];
17
35
  }
18
- else if (args[i] === "--model" && args[i + 1]) {
36
+ else if ((args[i] === "--model" || args[i] === "-m") && args[i + 1]) {
19
37
  result.model = args[++i];
20
38
  }
21
- else if (args[i] === "--api-key" && args[i + 1]) {
22
- result.apiKey = args[++i];
23
- }
24
39
  else if (args[i] === "--help" || args[i] === "-h") {
25
- console.log(`
26
- ${bold("pizza")} - A minimal coding agent
27
-
28
- ${bold("Usage:")}
29
- pizza [options]
30
-
31
- ${bold("Options:")}
32
- --provider <name> LLM provider (default: zai)
33
- --model <id> Model ID (default: glm-4.5)
34
- --api-key <key> API key (default: from env)
35
- -h, --help Show this help
36
-
37
- ${bold("Environment:")}
38
- ZAI_API_KEY ZAI API key
39
- ANTHROPIC_API_KEY Anthropic API key
40
- OPENAI_API_KEY OpenAI API key
41
- `);
40
+ printHelp();
42
41
  process.exit(0);
43
42
  }
43
+ else if (!args[i].startsWith("-")) {
44
+ result.message = args[i];
45
+ }
44
46
  }
45
47
  return result;
46
48
  }
49
+ function printHelp() {
50
+ console.log(`
51
+ 🍕 pizza — CLI is all you need
52
+
53
+ USAGE
54
+ pizza [options] [message]
55
+
56
+ OPTIONS
57
+ -p, --provider <name> LLM provider (default: from pizza settings)
58
+ -m, --model <id> Model ID (default: from pizza settings)
59
+ -h, --help Show this help
60
+
61
+ Powered by pi coding agent. Uses pi's TUI, session management, and extension system.
62
+ [CLI] tag mode is active by default. Use /pizza-mode inside the session to toggle it.
63
+ `);
64
+ }
65
+ // ─── Main ─────────────────────────────────────────────────────────────────────
47
66
  async function main() {
48
67
  const args = parseArgs();
49
- console.log(`\n${bold(green("🍕 pizza"))} ${dim("coding agent")}`);
50
- console.log(dim(`provider: ${args.provider ?? "zai"} | model: ${args.model ?? "glm-4.7"}`));
51
- console.log(dim(`cwd: ${process.cwd()}`));
52
- console.log(dim(`Type your message, or "exit" to quit.\n`));
53
- const { agent, model } = createPizzaAgent({
54
- provider: args.provider,
55
- model: args.model,
56
- apiKey: args.apiKey,
57
- });
58
- const render = createRenderer();
59
- agent.subscribe(render);
60
- const rl = createInterface({
61
- input: process.stdin,
62
- output: process.stdout,
63
- });
64
- const prompt = () => {
65
- rl.question(`${cyan(">")} `, async (input) => {
66
- const trimmed = input.trim();
67
- if (!trimmed) {
68
- prompt();
69
- return;
70
- }
71
- if (trimmed === "exit" || trimmed === "quit" || trimmed === "/exit" || trimmed === "/quit") {
72
- console.log(dim("\nBye!"));
73
- rl.close();
74
- process.exit(0);
75
- }
76
- try {
77
- await agent.prompt(trimmed);
78
- }
79
- catch (err) {
80
- console.error(`\n\x1b[31mError: ${err.message}\x1b[0m\n`);
81
- }
82
- prompt();
68
+ const cwd = process.cwd();
69
+ const createRuntime = async ({ cwd, agentDir, sessionManager, sessionStartEvent }) => {
70
+ const services = await createAgentSessionServices({
71
+ cwd,
72
+ agentDir,
73
+ resourceLoaderOptions: {
74
+ extensionFactories: [pizzaExtension],
75
+ additionalThemePaths: [join(THEMES_DIR, "pizza.json")],
76
+ },
77
+ });
78
+ const { settingsManager } = services;
79
+ settingsManager.setQuietStartup(true);
80
+ let model;
81
+ if (args.provider && args.model) {
82
+ model = getModel(args.provider, args.model);
83
+ }
84
+ else if (args.model) {
85
+ model = getModel("openai", args.model);
86
+ }
87
+ const created = await createAgentSessionFromServices({
88
+ services,
89
+ sessionManager,
90
+ sessionStartEvent,
91
+ model,
83
92
  });
93
+ return { ...created, services, diagnostics: [] };
84
94
  };
85
- prompt();
95
+ const agentDir = getAgentDir();
96
+ const sessionManager = SessionManager.create(cwd);
97
+ const runtime = await createAgentSessionRuntime(createRuntime, {
98
+ cwd,
99
+ agentDir,
100
+ sessionManager,
101
+ });
102
+ const interactive = new InteractiveMode(runtime, {
103
+ modelFallbackMessage: runtime.modelFallbackMessage,
104
+ initialMessage: args.message,
105
+ });
106
+ if (!args.message) {
107
+ printBanner();
108
+ }
109
+ await interactive.run();
86
110
  }
87
111
  main().catch((err) => {
88
112
  console.error("Fatal:", err);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.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.1",
3
+ "version": "0.0.5",
4
4
  "description": "Pizza - CLI is all you need",
5
5
  "type": "module",
6
6
  "bin": {
@@ -13,10 +13,9 @@
13
13
  "start": "node dist/main.js"
14
14
  },
15
15
  "dependencies": {
16
- "@mariozechner/pi-agent-core": "^0.62.0",
17
- "@mariozechner/pi-ai": "^0.62.0",
18
- "@mariozechner/pi-tui": "^0.62.0",
19
- "@sinclair/typebox": "^0.34.41"
16
+ "@mariozechner/pi-coding-agent": "^0.66.0",
17
+ "@mariozechner/pi-ai": "^0.66.0",
18
+ "@mariozechner/pi-tui": "^0.66.0"
20
19
  },
21
20
  "devDependencies": {
22
21
  "@types/node": "^22.0.0",
@@ -29,5 +28,14 @@
29
28
  "publishConfig": {
30
29
  "access": "public"
31
30
  },
32
- "author": "tomsun28"
31
+ "author": "tomsun28",
32
+ "files": [
33
+ "dist/",
34
+ "themes/",
35
+ "README.md"
36
+ ],
37
+ "piConfig": {
38
+ "name": "pizza",
39
+ "configDir": ".pizza"
40
+ }
33
41
  }