@tomsun28/pizza 0.0.4 → 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.
- package/README.md +154 -0
- package/dist/extension/index.js +14 -1
- package/dist/extension/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# 🍕 Pizza
|
|
2
|
+
|
|
3
|
+
> **CLI is all you need**
|
|
4
|
+
|
|
5
|
+
Pizza is a command-line AI assistant that replaces traditional JSON tool calls with a unique `[CLI]` tag format. Built on top of [pi-coding-agent](https://github.com/badlogic/pi-coding-agent), it provides developers with an efficient terminal interaction experience.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Features
|
|
10
|
+
|
|
11
|
+
- **[CLI] Tag Format** — Invoke tools using natural text tags, no complex JSON structures needed
|
|
12
|
+
- **Multi-Tool Support** — Built-in commands: `ls`, `read`, `write`, `edit`, `grep`, `bash`
|
|
13
|
+
- **Interactive TUI** — Beautiful terminal interface based on pi-tui with keyboard shortcuts
|
|
14
|
+
- **Multi-Model Support** — Compatible with OpenAI, Anthropic, and other LLM providers
|
|
15
|
+
- **Session Management** — Automatic saving and management of conversation history
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install -g @tomsun28/pizza
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Usage
|
|
28
|
+
|
|
29
|
+
### Start
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Interactive mode
|
|
33
|
+
pizza
|
|
34
|
+
|
|
35
|
+
# Execute a single command
|
|
36
|
+
pizza "analyze the current project structure"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Command Line Options
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
pizza [options] [message]
|
|
43
|
+
|
|
44
|
+
OPTIONS:
|
|
45
|
+
-p, --provider <name> LLM provider (reads from config by default)
|
|
46
|
+
-m, --model <id> Model ID
|
|
47
|
+
-h, --help Show help information
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Keyboard Shortcuts
|
|
51
|
+
|
|
52
|
+
| Shortcut | Function |
|
|
53
|
+
|----------|----------|
|
|
54
|
+
| `Ctrl+P` | Switch model |
|
|
55
|
+
| `Ctrl+T` | Think mode |
|
|
56
|
+
| `Ctrl+C` | Stop current operation |
|
|
57
|
+
|
|
58
|
+
### In-Session Commands
|
|
59
|
+
|
|
60
|
+
- `/cli-mode` — Toggle CLI tag mode (enabled by default)
|
|
61
|
+
- `/help` — Show help
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## [CLI] Tag Format
|
|
66
|
+
|
|
67
|
+
Pizza's core innovation replaces traditional JSON tool calls with `[CLI]` tags:
|
|
68
|
+
|
|
69
|
+
### Format
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
[CLI id=1] ls src[/CLI]
|
|
73
|
+
[CLI id=2] read package.json[/CLI]
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Result Return
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
[RESULT id=1]
|
|
80
|
+
file 1.2KB index.ts
|
|
81
|
+
file 2.5KB utils.ts
|
|
82
|
+
dir - components
|
|
83
|
+
[/RESULT]
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Supported Commands
|
|
87
|
+
|
|
88
|
+
| Command | Usage | Description |
|
|
89
|
+
|---------|-------|-------------|
|
|
90
|
+
| `ls` | `[CLI]ls <path>[/CLI]` | List directory contents |
|
|
91
|
+
| `read` | `[CLI]read <path> [--offset N] [--limit N][/CLI]` | Read file |
|
|
92
|
+
| `write` | `[CLI]write --path <path> --content <content>[/CLI]` | Write file |
|
|
93
|
+
| `edit` | `[CLI]edit --path <path> --old <text> --new <text>[/CLI]` | Edit file |
|
|
94
|
+
| `grep` | `[CLI]grep <pattern> --path <dir> --include <glob>[/CLI]` | Search files |
|
|
95
|
+
| `bash` | `[CLI]bash <command>[/CLI]` | Execute shell command |
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Development
|
|
100
|
+
|
|
101
|
+
### Project Structure
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
.
|
|
105
|
+
├── src/
|
|
106
|
+
│ ├── main.ts # Entry file
|
|
107
|
+
│ └── extension/
|
|
108
|
+
│ ├── index.ts # Extension main logic
|
|
109
|
+
│ └── core.ts # Core tool implementations
|
|
110
|
+
├── themes/
|
|
111
|
+
│ └── pizza.json # Theme configuration
|
|
112
|
+
├── package.json
|
|
113
|
+
└── tsconfig.json
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Local Development
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
# Clone the repository
|
|
120
|
+
git clone <repo-url>
|
|
121
|
+
cd pizza
|
|
122
|
+
|
|
123
|
+
# Install dependencies
|
|
124
|
+
pnpm install
|
|
125
|
+
|
|
126
|
+
# Development mode
|
|
127
|
+
pnpm dev
|
|
128
|
+
|
|
129
|
+
# Build
|
|
130
|
+
pnpm build
|
|
131
|
+
|
|
132
|
+
# Run
|
|
133
|
+
pnpm start
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Dependencies
|
|
139
|
+
|
|
140
|
+
- [pi-coding-agent](https://github.com/badlogic/pi-coding-agent) — Agent session management and extension system
|
|
141
|
+
- [pi-ai](https://github.com/badlogic/pi-coding-agent) — AI model interface
|
|
142
|
+
- [pi-tui](https://github.com/badlogic/pi-coding-agent) — Terminal user interface
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Configuration
|
|
147
|
+
|
|
148
|
+
Pizza uses the `.pizza` directory to store configuration and session data. It is created automatically on first run.
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## License
|
|
153
|
+
|
|
154
|
+
MIT
|
package/dist/extension/index.js
CHANGED
|
@@ -15,7 +15,8 @@ import { Text } from "@mariozechner/pi-tui";
|
|
|
15
15
|
import { MAX_CALLS_PER_TURN, buildResultBlock, dispatchTool, parseCLICalls, reconstructCliText, } from "./core.js";
|
|
16
16
|
// ─── System prompt addon ───────────────────────────────────────────────────────
|
|
17
17
|
const PIZZA_SYSTEM_PROMPT = `
|
|
18
|
-
You
|
|
18
|
+
You are a software engineering assistant that interacts with the user's environment by issuing commands wrapped in [CLI]...[/CLI] tags.
|
|
19
|
+
|
|
19
20
|
Any [CLI] blocks you emit are executed immediately; results come back as [RESULT]...[/RESULT] text.
|
|
20
21
|
You may include multiple [CLI] blocks in a single response — they all run before your next reply.
|
|
21
22
|
When issuing multiple [CLI] blocks, add an id attribute to each for result mapping: [CLI id=1] ... [/CLI]
|
|
@@ -58,6 +59,18 @@ Done — the greeting has been updated to "Hi".
|
|
|
58
59
|
- Do NOT predict, guess, or fabricate command output
|
|
59
60
|
- When you have all the information you need, respond normally without any [CLI] blocks
|
|
60
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
|
|
61
74
|
`.trim();
|
|
62
75
|
// ─── Extension ────────────────────────────────────────────────────────────────
|
|
63
76
|
export default function (pi) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extension/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EACN,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,kBAAkB,GAGlB,MAAM,WAAW,CAAC;AAEnB,kFAAkF;AAElF,MAAM,mBAAmB,GAAG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extension/index.ts"],"names":[],"mappings":"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"}
|