compact-agent 1.1.0 → 1.2.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.
- package/README.md +344 -394
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -1
- package/dist/query.js +46 -9
- package/dist/query.js.map +1 -1
- package/dist/stitch.d.ts +46 -0
- package/dist/stitch.js +278 -0
- package/dist/stitch.js.map +1 -0
- package/dist/theme.d.ts +2 -1
- package/dist/theme.js +67 -18
- package/dist/theme.js.map +1 -1
- package/dist/tools/index.js +8 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/stitch.d.ts +14 -0
- package/dist/tools/stitch.js +84 -0
- package/dist/tools/stitch.js.map +1 -0
- package/package.json +1 -1
package/dist/stitch.js
ADDED
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stitch integration — Google's AI UI/UX design + code generation tool.
|
|
3
|
+
*
|
|
4
|
+
* Ports gemini-cli-extensions/stitch into compact-agent. Two surfaces:
|
|
5
|
+
*
|
|
6
|
+
* 1. A `stitch` tool (src/tools/stitch.ts) that the LLM can call to hit
|
|
7
|
+
* the Stitch MCP server at stitch.googleapis.com/mcp via JSON-RPC.
|
|
8
|
+
*
|
|
9
|
+
* 2. A `/stitch <query>` slash command (wired in src/index.ts) that
|
|
10
|
+
* injects a system-prompt addition copied from the upstream
|
|
11
|
+
* gemini-extension commands/stitch.toml — intent routing between
|
|
12
|
+
* "enhance a prompt" and "use the assistant" modes.
|
|
13
|
+
*
|
|
14
|
+
* Auth: API key only, stored at ~/.crowcoder/stitch.json. ADC auth
|
|
15
|
+
* (Google Cloud) would require gcloud + the OAuth dance — out of scope
|
|
16
|
+
* for now. Get a key from https://stitch.withgoogle.com/ → profile menu
|
|
17
|
+
* → Stitch Settings → API Keys → Create Key.
|
|
18
|
+
*
|
|
19
|
+
* Bypass the config file via STITCH_API_KEY env var.
|
|
20
|
+
*/
|
|
21
|
+
import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'node:fs';
|
|
22
|
+
import { join } from 'node:path';
|
|
23
|
+
import chalk from 'chalk';
|
|
24
|
+
import { getConfigDir } from './config.js';
|
|
25
|
+
const STITCH_MCP_URL = 'https://stitch.googleapis.com/mcp';
|
|
26
|
+
const STITCH_CONFIG_FILE = join(getConfigDir(), 'stitch.json');
|
|
27
|
+
export function loadStitchConfig() {
|
|
28
|
+
const envKey = process.env.STITCH_API_KEY;
|
|
29
|
+
if (envKey) {
|
|
30
|
+
return { apiKey: envKey, configuredAt: '(from STITCH_API_KEY env)' };
|
|
31
|
+
}
|
|
32
|
+
if (!existsSync(STITCH_CONFIG_FILE))
|
|
33
|
+
return null;
|
|
34
|
+
try {
|
|
35
|
+
return JSON.parse(readFileSync(STITCH_CONFIG_FILE, 'utf-8'));
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export function saveStitchConfig(apiKey) {
|
|
42
|
+
mkdirSync(getConfigDir(), { recursive: true });
|
|
43
|
+
const cfg = {
|
|
44
|
+
apiKey,
|
|
45
|
+
configuredAt: new Date().toISOString(),
|
|
46
|
+
};
|
|
47
|
+
writeFileSync(STITCH_CONFIG_FILE, JSON.stringify(cfg, null, 2), 'utf-8');
|
|
48
|
+
}
|
|
49
|
+
export function stitchConfigured() {
|
|
50
|
+
return loadStitchConfig() !== null;
|
|
51
|
+
}
|
|
52
|
+
export async function callStitchMcp(req) {
|
|
53
|
+
const cfg = loadStitchConfig();
|
|
54
|
+
if (!cfg) {
|
|
55
|
+
return {
|
|
56
|
+
ok: false,
|
|
57
|
+
error: { message: 'Stitch not configured. Run /stitch-config to set an API key, or set STITCH_API_KEY in your env.' },
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
const body = {
|
|
61
|
+
jsonrpc: '2.0',
|
|
62
|
+
id: Date.now(),
|
|
63
|
+
method: req.method,
|
|
64
|
+
params: req.params ?? {},
|
|
65
|
+
};
|
|
66
|
+
try {
|
|
67
|
+
const resp = await fetch(STITCH_MCP_URL, {
|
|
68
|
+
method: 'POST',
|
|
69
|
+
headers: {
|
|
70
|
+
'Content-Type': 'application/json',
|
|
71
|
+
'Accept': 'application/json',
|
|
72
|
+
'X-Goog-Api-Key': cfg.apiKey,
|
|
73
|
+
},
|
|
74
|
+
body: JSON.stringify(body),
|
|
75
|
+
signal: AbortSignal.timeout(60_000),
|
|
76
|
+
});
|
|
77
|
+
const text = await resp.text();
|
|
78
|
+
let parsed = null;
|
|
79
|
+
try {
|
|
80
|
+
parsed = JSON.parse(text);
|
|
81
|
+
}
|
|
82
|
+
catch { /* not JSON */ }
|
|
83
|
+
if (!resp.ok) {
|
|
84
|
+
return {
|
|
85
|
+
ok: false,
|
|
86
|
+
status: resp.status,
|
|
87
|
+
error: {
|
|
88
|
+
message: parsed?.error?.message || `HTTP ${resp.status}: ${text.slice(0, 200)}`,
|
|
89
|
+
code: parsed?.error?.code,
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
if (parsed?.error) {
|
|
94
|
+
return { ok: false, status: resp.status, error: parsed.error };
|
|
95
|
+
}
|
|
96
|
+
return { ok: true, status: resp.status, result: parsed?.result ?? parsed };
|
|
97
|
+
}
|
|
98
|
+
catch (err) {
|
|
99
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
100
|
+
return { ok: false, error: { message: `Network error: ${msg}` } };
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* /stitch-tools — inject a prompt that drives the agent to call tools/list
|
|
105
|
+
* and pretty-print the catalog. Routes through the standard LLM tool loop
|
|
106
|
+
* (async via runQuery) so we don't need to make handleSlashCommand async.
|
|
107
|
+
*/
|
|
108
|
+
export function buildStitchToolsPrompt() {
|
|
109
|
+
return `# Stitch — list available MCP tools
|
|
110
|
+
|
|
111
|
+
Call the \`stitch\` tool with:
|
|
112
|
+
|
|
113
|
+
\`\`\`json
|
|
114
|
+
{ "method": "tools/list" }
|
|
115
|
+
\`\`\`
|
|
116
|
+
|
|
117
|
+
The response will be \`{ tools: [{ name, description, inputSchema }, ...] }\`.
|
|
118
|
+
|
|
119
|
+
Then render the catalog as a clean Markdown table with columns:
|
|
120
|
+
- **name** (exact string the user types)
|
|
121
|
+
- **description** (first line, trimmed)
|
|
122
|
+
- **required args** (comma-separated list from inputSchema.required, or "—")
|
|
123
|
+
|
|
124
|
+
If the call fails (non-ok response), report the HTTP status and error
|
|
125
|
+
message verbatim and suggest:
|
|
126
|
+
- Check the API key is valid (\`/stitch-status\`)
|
|
127
|
+
- Re-set it via \`/stitch-config <api-key>\`
|
|
128
|
+
- Confirm internet reachability
|
|
129
|
+
|
|
130
|
+
Do not invoke any tools other than \`stitch\`. Do not edit any files.`;
|
|
131
|
+
}
|
|
132
|
+
// ── Status ──────────────────────────────────────────────
|
|
133
|
+
export function printStitchStatus() {
|
|
134
|
+
const cfg = loadStitchConfig();
|
|
135
|
+
console.log(chalk.cyan('\n Stitch integration'));
|
|
136
|
+
if (!cfg) {
|
|
137
|
+
console.log(chalk.yellow(' not configured'));
|
|
138
|
+
console.log(chalk.dim(' Configure with /stitch-config <api-key>'));
|
|
139
|
+
console.log(chalk.dim(' Or: $env:STITCH_API_KEY = "..." (PowerShell)'));
|
|
140
|
+
console.log(chalk.dim(' export STITCH_API_KEY="..." (POSIX)'));
|
|
141
|
+
console.log(chalk.dim(' Get a key: https://stitch.withgoogle.com/ → Stitch Settings → API Keys'));
|
|
142
|
+
console.log();
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const masked = cfg.apiKey.length > 8
|
|
146
|
+
? cfg.apiKey.slice(0, 4) + '...' + cfg.apiKey.slice(-4)
|
|
147
|
+
: '***';
|
|
148
|
+
console.log(chalk.dim(` api key: ${masked}`));
|
|
149
|
+
console.log(chalk.dim(` configured at: ${cfg.configuredAt}`));
|
|
150
|
+
console.log(chalk.dim(` server: ${STITCH_MCP_URL}`));
|
|
151
|
+
console.log(chalk.dim(`\n Try: /stitch list my projects`));
|
|
152
|
+
console.log(chalk.dim(` /stitch generate a landing page for a podcast about productivity`));
|
|
153
|
+
console.log(chalk.dim(` /stitch enhance: dark dashboard with sidebar nav and 3 charts`));
|
|
154
|
+
console.log();
|
|
155
|
+
}
|
|
156
|
+
// ── Prompt builder (ports gemini-extension/commands/stitch.toml) ─────
|
|
157
|
+
/**
|
|
158
|
+
* Returns the prompt body for /stitch <query>. The model is given an intent
|
|
159
|
+
* router (enhance vs assistant) and the complete Stitch MCP tool catalog
|
|
160
|
+
* sourced from https://stitch.withgoogle.com/docs/mcp/reference.
|
|
161
|
+
*/
|
|
162
|
+
export function buildStitchPrompt(query) {
|
|
163
|
+
const safeQuery = query.replace(/`/g, '\\`');
|
|
164
|
+
return `# Stitch Intelligent Interface
|
|
165
|
+
|
|
166
|
+
You are the Stitch interface inside Compact Agent. Stitch is Google's AI
|
|
167
|
+
UI/UX design and code generation tool (https://stitch.withgoogle.com/).
|
|
168
|
+
Connect via the \`stitch\` tool, which wraps the Stitch MCP server at
|
|
169
|
+
https://stitch.googleapis.com/mcp.
|
|
170
|
+
|
|
171
|
+
Call shape:
|
|
172
|
+
|
|
173
|
+
{ "method": "tools/call", "name": "<tool>", "arguments": { ... } }
|
|
174
|
+
|
|
175
|
+
Use \`{ "method": "tools/list" }\` only if you encounter a tool-not-found
|
|
176
|
+
error — the catalog below is the authoritative list from the upstream
|
|
177
|
+
reference docs.
|
|
178
|
+
|
|
179
|
+
The user's query is: "${safeQuery}"
|
|
180
|
+
|
|
181
|
+
## Intent classification
|
|
182
|
+
|
|
183
|
+
Does the user want to **Enhance / Improve** a design prompt?
|
|
184
|
+
* **YES** (triggers: "enhance", "refine", "make this better"): PROTOCOL A.
|
|
185
|
+
* **NO** (any other Stitch operation): PROTOCOL B.
|
|
186
|
+
|
|
187
|
+
## PROTOCOL A: ENHANCE
|
|
188
|
+
|
|
189
|
+
1. \`web_fetch\` https://discuss.ai.google.dev/t/stitch-prompt-guide/83844
|
|
190
|
+
for the Stitch Effective Prompting Guide. Read it.
|
|
191
|
+
2. Generate a snake_case filename for the topic (e.g. \`podcast_landing_page.md\`).
|
|
192
|
+
3. Rewrite the user's intent into a polished prompt following the guide.
|
|
193
|
+
4. \`write_file\` to save it to that filename in the CWD.
|
|
194
|
+
5. Reply: "✨ Enhanced prompt saved to \`[filename]\`."
|
|
195
|
+
|
|
196
|
+
## PROTOCOL B: ASSISTANT
|
|
197
|
+
|
|
198
|
+
Use the catalog below. **Project Management** + **Screen Management** are
|
|
199
|
+
read-only and fast. **AI Generation** + **Design Systems** mutate state and
|
|
200
|
+
can take **a few minutes** — do NOT retry on connection errors; instead
|
|
201
|
+
poll \`get_screen\` after a few minutes to see if it completed.
|
|
202
|
+
|
|
203
|
+
### Domain model
|
|
204
|
+
|
|
205
|
+
- A user owns **projects** (a project is a container of UI work).
|
|
206
|
+
- Each project has many **screens**. A screen has an image + full HTML/
|
|
207
|
+
Tailwind document.
|
|
208
|
+
- Screens can share a **design system** (theme, components, tokens).
|
|
209
|
+
- Resource names follow Google Cloud format: \`projects/{projectId}\` and
|
|
210
|
+
\`projects/{projectId}/screens/{screenId}\`.
|
|
211
|
+
|
|
212
|
+
### Project Management
|
|
213
|
+
|
|
214
|
+
\`create_project\` (writes) — Create a new project.
|
|
215
|
+
\`get_project\` (read-only) — Args: \`{ name: "projects/{projectId}" }\`.
|
|
216
|
+
\`list_projects\` (read-only) — Args: \`{}\` or omit.
|
|
217
|
+
|
|
218
|
+
### Screen Management
|
|
219
|
+
|
|
220
|
+
\`list_screens\` (read-only) — Args: \`{ projectId: "<id-no-prefix>" }\`.
|
|
221
|
+
Returns an array of Screen objects.
|
|
222
|
+
\`get_screen\` (read-only) — Prefer \`{ name: "projects/{p}/screens/{s}" }\`.
|
|
223
|
+
Legacy \`projectId\` + \`screenId\` (deprecated, no prefixes) are also
|
|
224
|
+
accepted; currently all three may be required together.
|
|
225
|
+
|
|
226
|
+
### AI Generation (destructive, slow — minutes per call)
|
|
227
|
+
|
|
228
|
+
\`generate_screen_from_text\` — Generates a new screen from a text prompt.
|
|
229
|
+
Args: \`{ projectId, prompt, deviceType?, modelId? }\`.
|
|
230
|
+
- \`deviceType\` enum: \`DEVICE_TYPE_UNSPECIFIED\` | \`MOBILE\` | \`DESKTOP\` |
|
|
231
|
+
\`TABLET\` | \`AGNOSTIC\`. Default unspecified.
|
|
232
|
+
- \`modelId\` enum: \`MODEL_ID_UNSPECIFIED\` | \`GEMINI_3_PRO\` |
|
|
233
|
+
\`GEMINI_3_FLASH\`. Default unspecified (server picks Flash).
|
|
234
|
+
- If the response \`output_components\` field contains suggestions,
|
|
235
|
+
present them to the user. If accepted, call this tool AGAIN with the
|
|
236
|
+
chosen suggestion as the new \`prompt\`.
|
|
237
|
+
- This call takes **a few minutes**. Avoid retrying on connection
|
|
238
|
+
errors — they don't necessarily mean failure. Instead, poll
|
|
239
|
+
\`get_screen\` after a few minutes.
|
|
240
|
+
|
|
241
|
+
\`edit_screens\` — Edits existing screens with a text prompt.
|
|
242
|
+
Args: \`{ projectId, selectedScreenIds: [string], prompt, deviceType? }\`.
|
|
243
|
+
Same minutes-long behavior as \`generate_screen_from_text\`.
|
|
244
|
+
|
|
245
|
+
\`generate_variants\` — Produces alternate variants of a screen.
|
|
246
|
+
|
|
247
|
+
### Design Systems
|
|
248
|
+
|
|
249
|
+
\`create_design_system\` (writes) — Create a new design system.
|
|
250
|
+
\`update_design_system\` (writes) — Update an existing one.
|
|
251
|
+
\`list_design_systems\` (read-only) — List available design systems.
|
|
252
|
+
\`apply_design_system\` (writes) — Apply a design system to screens.
|
|
253
|
+
|
|
254
|
+
## Rules
|
|
255
|
+
|
|
256
|
+
1. **Don't retry slow AI calls.** If \`generate_screen_from_text\` or
|
|
257
|
+
\`edit_screens\` returns a network/timeout error, the work is likely
|
|
258
|
+
still progressing on the server. Wait, then call \`get_screen\` to
|
|
259
|
+
check status. Mention this to the user so they don't get impatient.
|
|
260
|
+
|
|
261
|
+
2. **Surface suggestions.** When \`generate_screen_from_text\` returns
|
|
262
|
+
\`output_components\` with prompt suggestions, list them for the user
|
|
263
|
+
in a numbered list and ask which to use.
|
|
264
|
+
|
|
265
|
+
3. **Resource names over deprecated IDs.** Prefer the \`name\` form
|
|
266
|
+
(\`projects/{p}\` or \`projects/{p}/screens/{s}\`) over bare \`projectId\`
|
|
267
|
+
when both are accepted.
|
|
268
|
+
|
|
269
|
+
4. **Read-only vs destructive matters.** Use read-only tools liberally to
|
|
270
|
+
explore. Confirm before generating/editing if the user wasn't explicit.
|
|
271
|
+
|
|
272
|
+
5. **Respond with structure.** Lists → Markdown tables. Generated screens
|
|
273
|
+
→ screen id + brief description + offer to fetch with \`get_screen\`.
|
|
274
|
+
On any failure, return the upstream error verbatim, then suggest a fix.`;
|
|
275
|
+
}
|
|
276
|
+
// ── Re-exports ──────────────────────────────────────────
|
|
277
|
+
export { STITCH_MCP_URL, STITCH_CONFIG_FILE };
|
|
278
|
+
//# sourceMappingURL=stitch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stitch.js","sourceRoot":"","sources":["../src/stitch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,cAAc,GAAG,mCAAmC,CAAC;AAC3D,MAAM,kBAAkB,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa,CAAC,CAAC;AAQ/D,MAAM,UAAU,gBAAgB;IAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,2BAA2B,EAAE,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,SAAS,CAAC,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAiB;QACxB,MAAM;QACN,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACvC,CAAC;IACF,aAAa,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,gBAAgB,EAAE,KAAK,IAAI,CAAC;AACrC,CAAC;AAwBD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAkB;IACpD,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;IAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,EAAE,OAAO,EAAE,iGAAiG,EAAE;SACtH,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;QACd,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;KACzB,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,cAAc,EAAE;YACvC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,QAAQ,EAAE,kBAAkB;gBAC5B,gBAAgB,EAAE,GAAG,CAAC,MAAM;aAC7B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,MAAM,GAAQ,IAAI,CAAC;QACvB,IAAI,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QAE3D,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE;oBACL,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,IAAI,QAAQ,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;oBAC/E,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI;iBAC1B;aACF,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;YAClB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACjE,CAAC;QAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,MAAM,EAAE,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,kBAAkB,GAAG,EAAE,EAAE,EAAE,CAAC;IACpE,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO;;;;;;;;;;;;;;;;;;;;;sEAqB6D,CAAC;AACvE,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC,CAAC;QACrG,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAClC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,KAAK,CAAC;IACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,cAAc,EAAE,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,wEAAwE;AACxE;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7C,OAAO;;;;;;;;;;;;;;;wBAee,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2EA+F0C,CAAC;AAC5E,CAAC;AAED,2DAA2D;AAC3D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC"}
|
package/dist/theme.d.ts
CHANGED
|
@@ -54,7 +54,8 @@ export declare function printToolResult(success: boolean, elapsed: number, outpu
|
|
|
54
54
|
export declare function printThinkingOpen(): void;
|
|
55
55
|
export declare function printThinkingText(text: string): void;
|
|
56
56
|
export declare function printThinkingClose(): void;
|
|
57
|
-
export declare function printCost(prompt: number, completion: number, cost: number, warning?: string): void;
|
|
57
|
+
export declare function printCost(prompt: number, completion: number, cost: number, warning?: string, elapsedMs?: number): void;
|
|
58
|
+
export declare function printApiError(message: string): void;
|
|
58
59
|
export declare function printSecurityBadge(level: string, threats: string[], blocked: boolean): void;
|
|
59
60
|
export declare function printDivider(): void;
|
|
60
61
|
export declare function spinner(text: string): string;
|
package/dist/theme.js
CHANGED
|
@@ -165,39 +165,88 @@ export function printKV(key, value, indent = 2) {
|
|
|
165
165
|
console.log(padding + theme.secondary(key.padEnd(14)) + theme.bright(value));
|
|
166
166
|
}
|
|
167
167
|
// ── Tool Execution Display ──────────────────────────────
|
|
168
|
+
// Args are condensed to a single line, truncated to 80 chars to keep the
|
|
169
|
+
// vertical footprint low.
|
|
168
170
|
export function printToolRun(name, args) {
|
|
171
|
+
const compactArgs = args.replace(/\s+/g, ' ').trim();
|
|
172
|
+
const display = compactArgs.length > 80 ? compactArgs.slice(0, 77) + '...' : compactArgs;
|
|
169
173
|
console.log(theme.toolName(` ${sym.running} ${name}`) +
|
|
170
|
-
theme.toolArgs(` ${
|
|
174
|
+
(display ? theme.toolArgs(` ${display}`) : ''));
|
|
171
175
|
}
|
|
176
|
+
// Result is always a single line: icon + elapsed + first non-empty line of
|
|
177
|
+
// output (max 120 chars). No more multi-line previews — they bloat the
|
|
178
|
+
// transcript and obscure the next action.
|
|
172
179
|
export function printToolResult(success, elapsed, output) {
|
|
173
180
|
const icon = success ? theme.toolStatus(sym.success) : theme.toolError(sym.error);
|
|
174
|
-
const time = theme.toolTime(
|
|
175
|
-
const
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
181
|
+
const time = theme.toolTime(`${(elapsed / 1000).toFixed(1)}s`);
|
|
182
|
+
const firstLine = (output.split('\n').find((l) => l.trim().length > 0) || '').trim();
|
|
183
|
+
const preview = firstLine.length > 120 ? firstLine.slice(0, 117) + '...' : firstLine;
|
|
184
|
+
const tail = output.length > preview.length + 10
|
|
185
|
+
? theme.dim(` +${output.length - preview.length}b`)
|
|
186
|
+
: '';
|
|
187
|
+
console.log(` ${icon} ${time} ${theme.dim(preview)}${tail}`);
|
|
179
188
|
}
|
|
180
189
|
// ── Thinking Display ────────────────────────────────────
|
|
190
|
+
// Inline streaming with a left border, no surrounding blank lines.
|
|
191
|
+
// Toggle visibility with /thinking.
|
|
181
192
|
export function printThinkingOpen() {
|
|
182
|
-
console.log('');
|
|
183
|
-
console.log(theme.thinkBorder(' │ ') + theme.thinkLabel(`${sym.thinking} Thinking...`));
|
|
193
|
+
console.log(theme.thinkBorder(' │ ') + theme.thinkLabel(`${sym.thinking} thinking`));
|
|
184
194
|
}
|
|
185
195
|
export function printThinkingText(text) {
|
|
186
|
-
// Prefix each
|
|
187
|
-
|
|
196
|
+
// Prefix each newline within the chunk so multi-line thoughts stay aligned.
|
|
197
|
+
const prefixed = text.replace(/\n(?!$)/g, '\n' + theme.thinkBorder(' │ '));
|
|
198
|
+
process.stdout.write(theme.thinkBorder(' │ ') + theme.thinkText(prefixed));
|
|
188
199
|
}
|
|
189
200
|
export function printThinkingClose() {
|
|
190
|
-
|
|
191
|
-
console.log(theme.thinkBorder(' │'));
|
|
201
|
+
process.stdout.write('\n');
|
|
192
202
|
}
|
|
193
|
-
// ── Cost
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
203
|
+
// ── Cost / telemetry line ─────────────────────────────────
|
|
204
|
+
// One compact status line per model turn: tokens + cost + elapsed time.
|
|
205
|
+
// No leading blank — caller is responsible for line state (newline as
|
|
206
|
+
// needed before this is printed).
|
|
207
|
+
export function printCost(prompt, completion, cost, warning, elapsedMs) {
|
|
208
|
+
const fmt = (n) => (n > 999 ? `${(n / 1000).toFixed(1)}K` : String(n));
|
|
209
|
+
const p = fmt(prompt);
|
|
210
|
+
const c = fmt(completion);
|
|
211
|
+
const t = typeof elapsedMs === 'number'
|
|
212
|
+
? ` ${theme.toolTime((elapsedMs / 1000).toFixed(1) + 's')}`
|
|
213
|
+
: '';
|
|
214
|
+
console.log(theme.cost(` ${p}${sym.arrow}${c} tokens $${cost.toFixed(4)}`) + t);
|
|
198
215
|
if (warning) {
|
|
199
|
-
console.log(theme.warning(
|
|
216
|
+
console.log(theme.warning(` ${sym.warn} ${warning}`));
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
// ── API error formatter ─────────────────────────────────
|
|
220
|
+
// Distinguish actionable errors (404/401/429) from generic failures.
|
|
221
|
+
// Surface the URL if the upstream message has one; suggest the fix.
|
|
222
|
+
export function printApiError(message) {
|
|
223
|
+
console.log('');
|
|
224
|
+
console.log(theme.error(` ${sym.error} API error`));
|
|
225
|
+
// Indent body, wrap at ~76 chars
|
|
226
|
+
for (const line of message.split('\n')) {
|
|
227
|
+
const trimmed = line.trim();
|
|
228
|
+
if (!trimmed)
|
|
229
|
+
continue;
|
|
230
|
+
console.log(theme.dim(' ' + trimmed));
|
|
231
|
+
}
|
|
232
|
+
const lower = message.toLowerCase();
|
|
233
|
+
let hint = '';
|
|
234
|
+
if (lower.includes('404') || lower.includes('no longer') || lower.includes('not found')) {
|
|
235
|
+
hint = 'Model unavailable. Switch with /model <name> or /config to pick a new one.';
|
|
200
236
|
}
|
|
237
|
+
else if (lower.includes('401') || lower.includes('unauthorized') || lower.includes('invalid api key')) {
|
|
238
|
+
hint = 'Auth failed. Re-set your key with /config.';
|
|
239
|
+
}
|
|
240
|
+
else if (lower.includes('429') || lower.includes('rate limit')) {
|
|
241
|
+
hint = 'Rate-limited. Wait a moment or switch to a different model with /model.';
|
|
242
|
+
}
|
|
243
|
+
else if (lower.includes('econn') || lower.includes('etimedout') || lower.includes('network')) {
|
|
244
|
+
hint = 'Network issue. Check connectivity, then retry.';
|
|
245
|
+
}
|
|
246
|
+
if (hint) {
|
|
247
|
+
console.log(theme.warning(` → ${hint}`));
|
|
248
|
+
}
|
|
249
|
+
console.log('');
|
|
201
250
|
}
|
|
202
251
|
// ── Security Display ────────────────────────────────────
|
|
203
252
|
export function printSecurityBadge(level, threats, blocked) {
|
package/dist/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.js
CHANGED
|
@@ -7,6 +7,13 @@ import { GlobTool } from './glob.js';
|
|
|
7
7
|
import { WebFetchTool } from './web-fetch.js';
|
|
8
8
|
import { WebSearchTool } from './web-search.js';
|
|
9
9
|
import { ListDirTool } from './list-dir.js';
|
|
10
|
+
import { StitchTool } from './stitch.js';
|
|
11
|
+
import { stitchConfigured } from '../stitch.js';
|
|
12
|
+
// Stitch is only listed in the tool registry when configured — otherwise
|
|
13
|
+
// free models hallucinate calls to it and waste turns on auth errors.
|
|
14
|
+
const OPTIONAL_TOOLS = [];
|
|
15
|
+
if (stitchConfigured())
|
|
16
|
+
OPTIONAL_TOOLS.push(StitchTool);
|
|
10
17
|
export const ALL_TOOLS = [
|
|
11
18
|
BashTool,
|
|
12
19
|
ReadTool,
|
|
@@ -17,6 +24,7 @@ export const ALL_TOOLS = [
|
|
|
17
24
|
ListDirTool,
|
|
18
25
|
WebFetchTool,
|
|
19
26
|
WebSearchTool,
|
|
27
|
+
...OPTIONAL_TOOLS,
|
|
20
28
|
];
|
|
21
29
|
export function getToolNames() {
|
|
22
30
|
return ALL_TOOLS.map((t) => t.name);
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,yEAAyE;AACzE,sEAAsE;AACtE,MAAM,cAAc,GAAW,EAAE,CAAC;AAClC,IAAI,gBAAgB,EAAE;IAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAExD,MAAM,CAAC,MAAM,SAAS,GAAW;IAC/B,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,aAAa;IACb,GAAG,cAAc;CAClB,CAAC;AAEF,MAAM,UAAU,YAAY;IAC1B,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* stitch tool — calls the Google Stitch MCP server.
|
|
3
|
+
*
|
|
4
|
+
* The LLM uses this to manage UI/UX design projects on Stitch:
|
|
5
|
+
* - List the user's projects
|
|
6
|
+
* - Read screens within a project
|
|
7
|
+
* - Download assets (images, HTML)
|
|
8
|
+
* - Generate a new screen from a text prompt
|
|
9
|
+
*
|
|
10
|
+
* Auth: API key from ~/.crowcoder/stitch.json or STITCH_API_KEY env var.
|
|
11
|
+
* Configure with `/stitch-config <key>` inside the REPL.
|
|
12
|
+
*/
|
|
13
|
+
import type { Tool } from './types.js';
|
|
14
|
+
export declare const StitchTool: Tool;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { callStitchMcp, stitchConfigured } from '../stitch.js';
|
|
2
|
+
export const StitchTool = {
|
|
3
|
+
name: 'stitch',
|
|
4
|
+
description: 'Google Stitch MCP server (stitch.googleapis.com/mcp). 12 tools across 4 categories: ' +
|
|
5
|
+
'Project Management (create_project, get_project, list_projects), ' +
|
|
6
|
+
'Screen Management (list_screens, get_screen), ' +
|
|
7
|
+
'AI Generation (generate_screen_from_text, edit_screens, generate_variants), ' +
|
|
8
|
+
'Design Systems (create_design_system, update_design_system, list_design_systems, apply_design_system). ' +
|
|
9
|
+
'AI Generation calls take a few minutes — do not retry on connection errors; poll with get_screen instead. ' +
|
|
10
|
+
'Requires STITCH_API_KEY or `/stitch-config` setup.',
|
|
11
|
+
parameters: {
|
|
12
|
+
type: 'object',
|
|
13
|
+
properties: {
|
|
14
|
+
method: {
|
|
15
|
+
type: 'string',
|
|
16
|
+
description: 'JSON-RPC method. "tools/call" to invoke a tool (default). "tools/list" to re-enumerate the catalog if you hit a tool-not-found error.',
|
|
17
|
+
},
|
|
18
|
+
name: {
|
|
19
|
+
type: 'string',
|
|
20
|
+
description: 'For "tools/call": the exact tool name (e.g. "list_projects", "generate_screen_from_text", "edit_screens"). See description for the full 12-tool catalog.',
|
|
21
|
+
},
|
|
22
|
+
arguments: {
|
|
23
|
+
type: 'object',
|
|
24
|
+
description: 'For "tools/call": tool-specific arguments. Examples: get_project → { name: "projects/{id}" }; list_screens → { projectId: "<id>" }; generate_screen_from_text → { projectId, prompt, deviceType?: "MOBILE"|"DESKTOP"|"TABLET"|"AGNOSTIC", modelId?: "GEMINI_3_PRO"|"GEMINI_3_FLASH" }.',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
required: ['method'],
|
|
28
|
+
},
|
|
29
|
+
isReadOnly: false,
|
|
30
|
+
// Marked destructive because the tool covers AI Generation (generate_screen_
|
|
31
|
+
// from_text, edit_screens, generate_variants) and Design System mutations
|
|
32
|
+
// (create/update/apply). Permission gating in permissions.ts will prompt
|
|
33
|
+
// under /perm ask, auto-approve in /perm yolo.
|
|
34
|
+
isDestructive: true,
|
|
35
|
+
async call(input) {
|
|
36
|
+
if (!stitchConfigured()) {
|
|
37
|
+
return {
|
|
38
|
+
output: 'Stitch is not configured. Run `/stitch-config <api-key>` in the REPL, or set STITCH_API_KEY in your environment. Get a key from https://stitch.withgoogle.com/ → Stitch Settings → API Keys.',
|
|
39
|
+
isError: true,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
const method = String(input.method || '').trim();
|
|
43
|
+
if (!method) {
|
|
44
|
+
return { output: 'stitch: missing required parameter "method"', isError: true };
|
|
45
|
+
}
|
|
46
|
+
if (method !== 'tools/list' && method !== 'tools/call') {
|
|
47
|
+
return {
|
|
48
|
+
output: `stitch: unsupported method "${method}". Use "tools/list" or "tools/call".`,
|
|
49
|
+
isError: true,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
let params = {};
|
|
53
|
+
if (method === 'tools/call') {
|
|
54
|
+
const name = String(input.name || '').trim();
|
|
55
|
+
if (!name) {
|
|
56
|
+
return {
|
|
57
|
+
output: 'stitch: "tools/call" requires a "name" parameter. Run with method="tools/list" first to discover available tools.',
|
|
58
|
+
isError: true,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
params = {
|
|
62
|
+
name,
|
|
63
|
+
arguments: input.arguments || {},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
const resp = await callStitchMcp({ method, params });
|
|
67
|
+
if (!resp.ok) {
|
|
68
|
+
return {
|
|
69
|
+
output: `stitch error${resp.status ? ` (HTTP ${resp.status})` : ''}: ${resp.error?.message || 'unknown error'}`,
|
|
70
|
+
isError: true,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
// Truncate huge payloads (Stitch can return image bytes / large HTML)
|
|
74
|
+
const formatted = typeof resp.result === 'string'
|
|
75
|
+
? resp.result
|
|
76
|
+
: JSON.stringify(resp.result, null, 2);
|
|
77
|
+
const MAX = 100_000;
|
|
78
|
+
const output = formatted.length > MAX
|
|
79
|
+
? formatted.slice(0, MAX) + `\n…[truncated ${formatted.length - MAX} bytes]`
|
|
80
|
+
: formatted;
|
|
81
|
+
return { output, isError: false };
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=stitch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stitch.js","sourceRoot":"","sources":["../../src/tools/stitch.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "compact-agent",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "A dense, feature-rich AI coding agent for the terminal. 80+ slash commands, 8 modes including Hermes self-improving loop, multi-agent orchestration, bundled everything-claude-code skills library, learning system, and observable LLM transport. Works with OpenRouter, OpenAI, Anthropic-compatible, Ollama, LM Studio, DeepSeek, or any OpenAI-compatible API.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|