gipity 1.0.228 → 1.0.245

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,350 @@
1
+ /**
2
+ * All long-form prompt text the CLI hands to Claude Code lives here.
3
+ *
4
+ * If you're tweaking what the agent sees — the per-project CLAUDE.md, the
5
+ * project-context preamble, the resume reminder, or the soft scaffold-warning
6
+ * hook — edit it here, not in claude.ts/setup.ts. Those files import and
7
+ * compose; this file owns the wording.
8
+ *
9
+ * Voice conventions:
10
+ * - Short imperative sentences. Plain markdown only.
11
+ * - No bold (`**`). No ALL-CAPS for emphasis — reserved for acronyms
12
+ * and identifiers (CLAUDE.md, GUID, SQL, etc.).
13
+ * - Section headings are `## `, lists are `-` or `1.`.
14
+ */
15
+ export const SCAFFOLD_TYPES = [
16
+ { key: 'web-simple', for: 'Static page, canvas demo, visualization, physics toy, landing page, dashboard, single-page tool' },
17
+ { key: 'web-fullstack', for: 'Frontend + backend — needs DB or serverless functions' },
18
+ { key: '2d-game', for: 'Phaser platformer / arcade / puzzle / endless runner' },
19
+ { key: '3d-world', for: 'Three.js + Rapier + Colyseus multiplayer world' },
20
+ { key: 'api', for: 'API only, no frontend' },
21
+ ];
22
+ export const SCAFFOLD_TYPE_KEYS = SCAFFOLD_TYPES.map(t => t.key).join('|');
23
+ export const SCAFFOLD_TYPE_PICKER = SCAFFOLD_TYPES
24
+ .map(t => ` - \`${t.key}\` — ${t.for}`)
25
+ .join('\n');
26
+ // ---------------------------------------------------------------------------
27
+ // Single source of truth for the build-vs-non-build rule.
28
+ // ---------------------------------------------------------------------------
29
+ export const BUILD_VS_NON_BUILD_RULE = [
30
+ `## Build vs. one-off`,
31
+ `Build request (deployable — web app, game, API): run \`gipity scaffold --type <type>\` before writing any files. Scaffolding wires up \`gipity.yaml\`, deploy config, and sync; hand-written files miss all of it. Pick the type:`,
32
+ SCAFFOLD_TYPE_PICKER,
33
+ `When unsure, default to \`web-simple\`. After scaffolding, edit the generated files, then \`gipity deploy dev\`.`,
34
+ ``,
35
+ `One-off task (PDF analysis, data exploration, media/document work, research, scratch): do not scaffold. Use \`gipity sandbox run\` for compute, or work with files directly.`,
36
+ ``,
37
+ `If ambiguous, ask one short clarifying question. Only skip scaffolding on a build request if the user explicitly says "don't scaffold".`,
38
+ ].join('\n');
39
+ export const DEFINITION_OF_DONE = [
40
+ `## Definition of done (build tasks)`,
41
+ `1. \`gipity deploy dev\` succeeds and you have a live URL.`,
42
+ `2. \`gipity browser <url>\` shows no console errors and the golden path works.`,
43
+ `3. For apps with functions: \`gipity test\` passes.`,
44
+ `4. You told the user the live URL.`,
45
+ ``,
46
+ `If any step fails, fix it before claiming done — do not report success on a broken deploy.`,
47
+ ].join('\n');
48
+ export const CAPABILITIES_BLURB_SHORT = `Gipity gives this session: cloud hosting, Postgres, serverless functions, a sandboxed toolkit ` +
49
+ `(ffmpeg, ImageMagick, pandas, pandoc, LibreOffice, etc.), headless browsers, file storage, email, ` +
50
+ `image/TTS/video generation, web search, scheduled workflows, persistent memory, custom domains. ` +
51
+ `Full reference is in CLAUDE.md. Prefer CLI commands and the sandbox over \`gipity chat\` — they're ` +
52
+ `faster and don't burn LLM tokens. Naming: honor the user's chosen name; if inventing, blend "Gip" or "Gipity" in.`;
53
+ function buildHeader(opts) {
54
+ const deployUrl = opts.accountSlug
55
+ ? `https://dev.gipity.ai/${opts.accountSlug}/${opts.projectSlug}/`
56
+ : '(not yet deployed)';
57
+ const entryLabel = opts.fileCount === 1 ? 'entry' : 'entries';
58
+ return [
59
+ `## Gipity project`,
60
+ `- Name: ${opts.projectName} (slug: \`${opts.projectSlug}\`)`,
61
+ `- GUID: \`${opts.projectGuid}\` — use as \`<PROJECT_GUID>\` in App Services calls`,
62
+ `- Directory: ${opts.cwd}`,
63
+ `- Deploy URL: ${deployUrl}`,
64
+ `- Files: ${opts.fileCount} top-level ${entryLabel}${opts.fileCount > 0 ? ` (${opts.contents})` : ''}`,
65
+ ].join('\n');
66
+ }
67
+ const EMPTY_STATE_NOTE = `Directory is empty. Apply the build-vs-one-off rule above before writing any files.`;
68
+ const EXISTING_STATE_NOTE = [
69
+ `Project already has files. Before making changes:`,
70
+ `- Read \`README.md\` / \`gipity.yaml\` if present to understand what's here.`,
71
+ `- Load the relevant skill with \`gipity skills read <name>\` if you need the scaffold's conventions.`,
72
+ `- Edit in place. Don't re-scaffold over an existing app.`,
73
+ `- Exception: if the existing files are user content (media, data, notes) and the user wants to build an app around them, scaffolding is allowed — \`gipity scaffold\` will refuse automatically if any file paths would collide.`,
74
+ ].join('\n');
75
+ /** Compact project-context preamble — header + capabilities + build rule + state note + definition of done. */
76
+ export function buildProjectContextBlock(opts) {
77
+ const isEmpty = opts.fileCount === 0;
78
+ return [
79
+ buildHeader(opts),
80
+ ``,
81
+ `## Session`,
82
+ `You're pairing with the user on this project. ${CAPABILITIES_BLURB_SHORT}`,
83
+ ``,
84
+ BUILD_VS_NON_BUILD_RULE,
85
+ ``,
86
+ isEmpty ? EMPTY_STATE_NOTE : EXISTING_STATE_NOTE,
87
+ ``,
88
+ DEFINITION_OF_DONE,
89
+ ].join('\n');
90
+ }
91
+ /** Project-context block + a brief greeting instruction. */
92
+ export function buildExistingProjectPrompt(opts) {
93
+ const isEmpty = opts.fileCount === 0;
94
+ const greeting = isEmpty
95
+ ? `Briefly greet the user and ask what they want to build.`
96
+ : `Briefly greet the user, summarize what this project appears to be (based on the file listing and any README/CLAUDE.md/gipity.yaml), and ask what they want to work on next.`;
97
+ return [buildProjectContextBlock(opts), ``, greeting].join('\n');
98
+ }
99
+ /** First-launch prompt for a brand-new (empty) project. Reuses buildProjectContextBlock. */
100
+ export function buildNewProjectPrompt(opts) {
101
+ const base = buildProjectContextBlock(opts);
102
+ if (opts.buildIdea) {
103
+ return `${base}\n\nThe user's first message: "${opts.buildIdea}"\n\nGet started. Apply the build-vs-one-off rule. Report back when you hit the definition of done.`;
104
+ }
105
+ return `${base}\n\nThe user started a blank project with no specific request. Briefly introduce yourself, highlight a few key capabilities, and ask what they want to build.`;
106
+ }
107
+ // ---------------------------------------------------------------------------
108
+ // Non-interactive (-p) wraps — what the relay sends per message
109
+ // ---------------------------------------------------------------------------
110
+ /** Compact capability reminder — safe to include on every resumed-session message.
111
+ * Hedges against Claude compacting away the original context block mid-session. */
112
+ export const PLATFORM_REMINDER = `This project runs on the Gipity hosting platform. The \`gipity\` CLI exposes 90+ tools — common ones: ` +
113
+ `\`gipity deploy dev\`, \`gipity browser <url>\`, \`gipity sandbox run\`, \`gipity test\`, \`gipity fn call\`. ` +
114
+ `Run \`gipity skills list\` for the full skill catalog; full platform reference is in \`CLAUDE.md\`.`;
115
+ /** Resume wrap: header + capability reminder + short framing. */
116
+ export function buildResumeWrap(opts, userMsg) {
117
+ return [
118
+ buildHeader(opts),
119
+ ``,
120
+ PLATFORM_REMINDER,
121
+ `Resumed session — apply the build-vs-one-off rule for new features; files auto-sync on save.`,
122
+ ``,
123
+ `User message: ${userMsg}`,
124
+ ``,
125
+ `Answer directly. Do not greet or reintroduce yourself.`,
126
+ ].join('\n');
127
+ }
128
+ /** Fresh wrap: full project context + the user's message. */
129
+ export function buildFreshWrap(contextBlock, userMsg) {
130
+ return `${contextBlock}\n\nUser message: ${userMsg}\n\nAnswer directly. Do not greet or reintroduce yourself.`;
131
+ }
132
+ // ---------------------------------------------------------------------------
133
+ // PreToolUse soft-warning hook (advisory message printed to stderr)
134
+ // ---------------------------------------------------------------------------
135
+ /** Plain ASCII, no apostrophes or backslashes — embedded inside a node -e shell command. */
136
+ export const SCAFFOLD_HOOK_WARNING = `[gipity] Heads up: this project has no scaffold yet. If you are building an app/game/API to deploy, ` +
137
+ `stop and run: gipity scaffold --type <${SCAFFOLD_TYPE_KEYS}> (default: web-simple). ` +
138
+ `If this is a one-off task (analysis, data, PDFs, scratch work), proceed.`;
139
+ // ---------------------------------------------------------------------------
140
+ // Per-project CLAUDE.md (written by `gipity claude` / `gipity init` setup)
141
+ // ---------------------------------------------------------------------------
142
+ export const SKILLS_CONTENT = `# Gipity Integration
143
+
144
+ Gipity is a platform for cloud agents — AI agents that run on a server with persistent memory, storage, a database, a sandboxed runtime, and direct internet access. Gip is the cloud agent on Gipity.
145
+
146
+ This Claude Code session is connected to a Gipity project. You have four ways to use the platform — try them in this order before falling back to \`gipity chat\`:
147
+
148
+ 1. CLI commands (fast, no agent overhead). The \`gipity\` CLI exposes ~30 commands covering scaffold/deploy/db/fn/logs/browser/sync/memory/skills/etc. Use these whenever possible.
149
+ 2. Cloud sandbox via \`gipity sandbox run\` (fast, no agent overhead, no deploy needed). The sandbox is a Docker container with a huge pre-installed toolkit — use it for any one-off media, data, or build task instead of delegating to Gip:
150
+ - Media: \`ffmpeg\` (transcode, trim, concat, extract audio, generate thumbnails, splice video), \`ImageMagick\` (resize, convert, composite, OCR-friendly preprocess), \`sox\` (audio mix/normalize/effects), \`exiftool\`, \`mediainfo\`, \`optipng\`, \`gifsicle\`, \`webp\`, \`potrace\` (raster→SVG)
151
+ - Documents: \`pandoc\` (any-to-any docs), \`LibreOffice\` headless (DOCX/XLSX/PPTX↔PDF), \`wkhtmltopdf\`, \`poppler-utils\` (PDF text/image extract), \`ghostscript\`, \`qpdf\`, \`python-docx\`, \`python-pptx\`, \`openpyxl\`, \`reportlab\`, \`cairosvg\`
152
+ - Data / analysis: Python with \`pandas\`, \`numpy\`, \`scipy\`, \`sympy\`, \`matplotlib\`, \`seaborn\`, \`pillow\`, \`bs4\`, \`requests\`, \`pyyaml\`, \`jinja2\`, \`tabulate\`, plus \`csvkit\`, \`miller\`, \`datamash\`, \`jq\`, \`xmlstarlet\`, \`sqlite3\`
153
+ - Misc: \`Graphviz\`, \`gnuplot\`, \`qrcode\`, \`p7zip\`, \`GCC/G++\`, \`Rust\` (rustc/cargo), \`mingw-w64\` (Windows cross-compile)
154
+ - Languages: Node 20, Python 3, Bash. Workspace files are auto-injected; output files auto-extract back to the project. Sticky session per user (state persists across calls). No network from inside the sandbox — fetch what you need before sending it in.
155
+
156
+ Examples:
157
+ \`\`\`bash
158
+ gipity sandbox run --lang bash "ffmpeg -i input.mp4 -vf scale=640:-1 -c:a copy out.mp4"
159
+ gipity sandbox run --lang bash "convert input.png -resize 200x200 thumb.jpg" # ImageMagick
160
+ gipity sandbox run --lang py "import pandas as pd; print(pd.read_csv('sales.csv').groupby('region').total.sum())"
161
+ gipity sandbox run --lang bash "libreoffice --headless --convert-to pdf report.docx"
162
+ gipity sandbox run --lang bash "pandoc article.md -o article.pdf"
163
+ \`\`\`
164
+ 3. Call app services directly from your app (no agent overhead, runtime endpoints). LLM, TTS, image, sound, music, transcription, video, file upload, and realtime multiplayer are HTTP endpoints under \`https://a.gipity.ai/api/<PROJECT_GUID>/services/*\` — see the app services section below. These are for the deployed app to call at runtime; for one-off generation during development, prefer \`gipity generate <image|video|...>\` or \`gipity chat\`.
165
+ 4. Delegate to Gip (\`gipity chat "<task>"\`) — only when the work genuinely needs agent reasoning or a tool that isn't in the CLI, the sandbox, or the app services. Required for: Twitter/X search, Gmail, calendar operations, push notifications, video understanding, audio source isolation, cross-model second opinions, multi-step orchestration. Don't use \`gipity chat\` to run ffmpeg, ImageMagick, pandas, LibreOffice, pandoc, or anything else listed in the sandbox toolkit above — \`gipity sandbox run\` is faster and doesn't burn tokens.
166
+
167
+ You are the developer. Write files in this directory — they auto-sync to Gipity via hooks. Don't run \`npm install\`, \`npm start\`, \`node\`, or \`python\` locally; there is no local runtime. Code runs in the Gipity sandbox.
168
+
169
+ ## Build vs. one-off
170
+
171
+ The full build-vs-one-off rule and definition of done are injected at the top of every session context. In short: if the user asks you to build something deployable (web app, game, API), run \`gipity scaffold --type <type>\` first (default \`web-simple\`); if it's a one-off task (analysis, PDFs, data work), use \`gipity sandbox run\` — do not scaffold.
172
+
173
+ ## Remote control
174
+
175
+ This session can be driven from the Gipity web CLI on any browser (desktop or phone). The first \`gipity claude\` run on this machine pairs the device and starts the relay daemon automatically. Once paired, typing \`/claude\` (or \`/cc\`) in the web CLI enters dispatch mode; each message queues a new \`gipity claude -p "…"\` session here and streams the captured conversation back to their browser. If the user asks how to use Gipity from their phone or another browser, point them at \`gipity relay --help\`.
176
+
177
+ ## Workflow
178
+
179
+ 1. Write and edit files normally (auto-pushed to Gipity on every save)
180
+ 2. \`gipity deploy dev\` → live URL instantly
181
+ 3. \`gipity deploy prod\` when ready
182
+
183
+ ## CLI commands
184
+
185
+ | Command | Purpose |
186
+ |---------|---------|
187
+ | \`gipity scaffold [title]\` | Create app structure. \`--type\` is required. Canonical types: \`${SCAFFOLD_TYPE_KEYS}\`. Run \`gipity scaffold --help\` for the full list. |
188
+ | \`gipity deploy [dev\\|prod]\` | Deploy and get live URL |
189
+ | \`gipity sync [up\\|down\\|check]\` | Manual file sync |
190
+ | \`gipity db create <name>\` | Create a project database |
191
+ | \`gipity db drop <name> [--project <slug>]\` | Drop a database (--project for cross-project) |
192
+ | \`gipity db query "SQL"\` | Run SQL on project database |
193
+ | \`gipity db list [--all]\` | List databases (--all for account-wide) |
194
+ | \`gipity fn list\\|call <name> [body]\\|logs <name>\` | Manage serverless functions |
195
+ | \`gipity memory list\\|read\\|write\` | Persistent key-value memory |
196
+ | \`gipity browser <url>\` | Inspect URL: console errors, timing, resources |
197
+ | \`gipity logs fn <name>\` | View function execution logs |
198
+ | \`gipity sandbox <lang> "code"\` | Execute code in cloud sandbox |
199
+ | \`gipity location [ip\\|lat lng]\` | IP geo / reverse-geocode / caller location |
200
+ | \`gipity chat <message>\` | Send a task to the Gipity agent |
201
+ | \`gipity skills list\` | List all available skill docs |
202
+ | \`gipity skills read <name>\` | Read detailed docs on a topic |
203
+ | \`gipity status\` | Check project and auth status (project GUID, slug, auth state) |
204
+
205
+ All commands support \`--json\` for structured output. Use \`--help\` on any command for details (auto-fetches relevant skill docs from the server).
206
+
207
+ ## Platform capabilities
208
+
209
+ - App hosting — deploy to dev/prod URLs on Gipity CDN
210
+ - Databases — per-project PostgreSQL databases with SQL access
211
+ - Serverless functions — JavaScript functions callable via REST
212
+ - Multiplayer — Colyseus WebSocket rooms (relay and state-synced)
213
+ - Image generation — OpenAI (gpt-image-1, DALL-E 3) and BFL/Flux
214
+ - Speech / TTS — ElevenLabs and OpenAI voices
215
+ - Audio/video processing — FFmpeg, sox, transcription, source isolation
216
+ - Web search — Brave API
217
+ - Browser automation — open URLs, screenshot, click, fill forms, console
218
+ - Workflows — cron or webhook-triggered multi-step AI pipelines
219
+ - Email — SendGrid transactional email
220
+ - Cloud sandbox — Python, Node.js, Bash with 50+ pre-installed tools
221
+ - Cross-model queries — ask GPT-5, Claude, etc. for second opinions
222
+
223
+ ## App services (HTTP endpoints your deployed app can call)
224
+
225
+ Every project automatically exposes platform services at \`https://a.gipity.ai/api/<PROJECT_GUID>/services/*\`. Your frontend or function calls these directly — don't write a server-side wrapper function for them, and don't fall back to browser APIs (e.g. \`window.speechSynthesis\`). Billing defaults to your credits (\`owner_pays\`); no setup needed.
226
+
227
+ Your \`<PROJECT_GUID>\` is printed in the session context header on every launch, and also via \`gipity status --json\`.
228
+
229
+ | Service | Endpoint | Purpose |
230
+ |---------|----------|---------|
231
+ | LLM | \`POST /services/llm\` | OpenAI-style chat completions (Anthropic + OpenAI models, streaming) |
232
+ | TTS | \`POST /services/tts\` | Text-to-speech → MP3 URL (ElevenLabs/OpenAI/Gemini) |
233
+ | Image | \`POST /services/image\` | Image generation (OpenAI/BFL/Gemini) |
234
+ | Sound effects | \`POST /services/sound\` | ElevenLabs SFX from text |
235
+ | Music | \`POST /services/music\` | ElevenLabs music from prompt |
236
+ | Transcribe (STT) | \`POST /services/transcribe\` | Multipart audio → text |
237
+ | Video | \`POST /services/video\` | Veo 3.1 video with audio |
238
+ | Files | \`POST /uploads/init\` + \`/uploads/complete\` | Presigned S3 uploads up to 30 GB |
239
+ | Realtime | \`wss://rt.gipity.ai\` | Colyseus rooms (relay or state) |
240
+
241
+ ### Universal auth — mint an app token
242
+
243
+ \`\`\`js
244
+ const r = await fetch('https://a.gipity.ai/api/token', { // must be absolute URL, POST
245
+ method: 'POST',
246
+ headers: { 'Content-Type': 'application/json' },
247
+ body: JSON.stringify({ app: '<PROJECT_GUID>' })
248
+ });
249
+ const { data: { token } } = await r.json(); // token is at .data.token
250
+ \`\`\`
251
+ Send on every service call as \`X-App-Token: <token>\`. For \`auth: user\` functions or \`user_pays\` services also pass \`credentials: 'include'\` so the \`.gipity.ai\` session cookie travels.
252
+
253
+ Common mistakes the agent should avoid:
254
+ - Relative URL \`/api/token\` (hits app host, 404) — always absolute \`https://a.gipity.ai/api/token\`
255
+ - Reading \`json.token\` instead of \`json.data.token\`
256
+ - Treating the project GUID as the bearer token
257
+ - Writing a server-side TTS \`speak\` function or a \`useBrowserTts\` fallback — just call \`/services/tts\` from the browser and \`new Audio(url).play()\`
258
+ - Calling \`client.getAvailableRooms()\` for realtime — that method doesn't exist; use \`GET https://rt.gipity.ai/rooms?room=<name>&token=<t>\`
259
+
260
+ ### Quick examples
261
+
262
+ LLM:
263
+ \`\`\`js
264
+ const r = await fetch(\`https://a.gipity.ai/api/\${APP}/services/llm\`, {
265
+ method: 'POST',
266
+ headers: { 'Content-Type': 'application/json', 'X-App-Token': token },
267
+ body: JSON.stringify({ messages: [{ role: 'user', content: 'Hi' }], model: 'gpt-5-mini' })
268
+ });
269
+ const { choices } = await r.json();
270
+ // choices[0].message.content
271
+ \`\`\`
272
+
273
+ TTS:
274
+ \`\`\`js
275
+ const r = await fetch(\`https://a.gipity.ai/api/\${APP}/services/tts\`, {
276
+ method: 'POST',
277
+ headers: { 'Content-Type': 'application/json', 'X-App-Token': token },
278
+ body: JSON.stringify({ text: 'Hello world', provider: 'elevenlabs' })
279
+ });
280
+ const { url } = await r.json();
281
+ new Audio(url).play();
282
+ \`\`\`
283
+
284
+ Transcribe:
285
+ \`\`\`js
286
+ const fd = new FormData();
287
+ fd.append('audio', file); // mp3/wav/m4a, up to 100MB
288
+ fd.append('diarize', 'true'); // optional
289
+ const r = await fetch(\`https://a.gipity.ai/api/\${APP}/services/transcribe\`, {
290
+ method: 'POST',
291
+ headers: { 'X-App-Token': token }, // do not set Content-Type for FormData
292
+ body: fd
293
+ });
294
+ const { text } = await r.json();
295
+ \`\`\`
296
+
297
+ File upload (helper script handles progress + multipart for 5GB+ files):
298
+ \`\`\`html
299
+ <script src="https://media.gipity.ai/scripts/gipity-upload.js"></script>
300
+ <script>
301
+ const result = await Gipity.upload(file, { appGuid: '<PROJECT_GUID>', appToken: token });
302
+ // result.url, result.guid
303
+ </script>
304
+ \`\`\`
305
+
306
+ For full request/response schemas, parameters, error codes, and edge cases (streaming, image input, multi-speaker TTS, Veo aspect ratios, multipart uploads, popup auth flow, Colyseus room safety patterns), load the matching skill before writing code.
307
+
308
+ ## Detailed documentation
309
+
310
+ Run \`gipity skills list\` to see all available skill docs. Run \`gipity skills read <name>\` to read one.
311
+
312
+ App services skills (load before calling \`/services/*\` endpoints — they contain the canonical request/response schemas, examples, and common-mistake guards):
313
+
314
+ - \`app-llm\` — \`/services/llm\` (chat completions, streaming, image input, model list)
315
+ - \`app-tts\` — \`/services/tts\` (voices, multi-speaker Gemini, languages)
316
+ - \`app-image\` — \`/services/image\` (providers, sizes, aspect ratios)
317
+ - \`app-audio\` — \`/services/sound\`, \`/services/music\`, \`/services/transcribe\`
318
+ - \`app-video\` — \`/services/video\` (Veo models, aspect, resolution)
319
+ - \`app-files\` — \`/uploads/init\`+\`/uploads/complete\`, \`gipity-upload.js\` helper, variants, file listing
320
+ - \`app-auth\` — sign in with Gipity, popup vs redirect, \`auth/status\`, error codes
321
+ - \`app-realtime\` — Colyseus rooms (relay vs state), \`MapSchema\` init guard, room discovery
322
+
323
+ Other key skills:
324
+
325
+ - \`web-app-basics\` — coding guidelines, file structure, HTML/CSS/JS patterns
326
+ - \`app-development\` — functions, database & API (write functions → deploy → test → call via REST)
327
+ - \`3d-world\` — 3D multiplayer game template (Three.js + Rapier + Colyseus)
328
+ - \`2d-game\` — 2D game template (Phaser 3)
329
+ - \`sandbox-tools\` — cloud sandbox capabilities and pre-installed tools
330
+ - \`tts-guide\` — agent-side speech tools (\`speech_generate\`, \`voice_set\`, sound/music) — different from the \`app-tts\` HTTP service
331
+
332
+ Load the relevant skill before starting a task — they contain the correct API patterns, code examples, and common mistakes.
333
+
334
+ ## File operations
335
+
336
+ All file creation and editing should happen locally — hooks auto-push changes to Gipity. Don't use \`gipity chat\` to create or edit files. Use \`gipity sync\` if files get out of sync. Files generated remotely by \`gipity chat\` (images, audio, etc.) also sync down automatically and can be referenced in your code like any local file.
337
+
338
+ ## Authentication
339
+
340
+ 1. \`gipity login --email user@example.com\` → sends a 6-digit code
341
+ 2. \`gipity login --email user@example.com --code 123456\`
342
+
343
+ ## Sync behavior
344
+
345
+ - Auto-push — files push to Gipity after every Write/Edit (hook)
346
+ - Auto-pull — remote changes pull before each prompt (hook)
347
+ - Tool-generated files sync too — images, audio, and other files created by \`gipity chat\` or remote agent tools auto-pull like any other
348
+ - Deletes are safe — use \`rollback\` with a datetime to undo, or \`file_version_restore\` for individual files
349
+ `;
350
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAcH,MAAM,CAAC,MAAM,cAAc,GAA4B;IACrD,EAAE,GAAG,EAAE,YAAY,EAAK,GAAG,EAAE,iGAAiG,EAAE;IAChI,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,uDAAuD,EAAE;IACtF,EAAE,GAAG,EAAE,SAAS,EAAQ,GAAG,EAAE,sDAAsD,EAAE;IACrF,EAAE,GAAG,EAAE,UAAU,EAAO,GAAG,EAAE,gDAAgD,EAAE;IAC/E,EAAE,GAAG,EAAE,KAAK,EAAY,GAAG,EAAE,uBAAuB,EAAE;CAC9C,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE3E,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc;KAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;KACzC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEd,8EAA8E;AAC9E,0DAA0D;AAC1D,8EAA8E;AAE9E,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,sBAAsB;IACtB,mOAAmO;IACnO,oBAAoB;IACpB,kHAAkH;IAClH,EAAE;IACF,8KAA8K;IAC9K,EAAE;IACF,yIAAyI;CAC1I,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,qCAAqC;IACrC,4DAA4D;IAC5D,gFAAgF;IAChF,qDAAqD;IACrD,oCAAoC;IACpC,EAAE;IACF,4FAA4F;CAC7F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,wBAAwB,GACnC,gGAAgG;IAChG,oGAAoG;IACpG,kGAAkG;IAClG,qGAAqG;IACrG,mHAAmH,CAAC;AAkBtH,SAAS,WAAW,CAAC,IAAwB;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW;QAChC,CAAC,CAAC,yBAAyB,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,GAAG;QAClE,CAAC,CAAC,oBAAoB,CAAC;IACzB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,OAAO;QACL,mBAAmB;QACnB,WAAW,IAAI,CAAC,WAAW,aAAa,IAAI,CAAC,WAAW,KAAK;QAC7D,aAAa,IAAI,CAAC,WAAW,sDAAsD;QACnF,gBAAgB,IAAI,CAAC,GAAG,EAAE;QAC1B,iBAAiB,SAAS,EAAE;QAC5B,YAAY,IAAI,CAAC,SAAS,cAAc,UAAU,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;KACvG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,gBAAgB,GACpB,qFAAqF,CAAC;AAExF,MAAM,mBAAmB,GAAG;IAC1B,mDAAmD;IACnD,8EAA8E;IAC9E,sGAAsG;IACtG,0DAA0D;IAC1D,kOAAkO;CACnO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,+GAA+G;AAC/G,MAAM,UAAU,wBAAwB,CAAC,IAAwB;IAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC;IACrC,OAAO;QACL,WAAW,CAAC,IAAI,CAAC;QACjB,EAAE;QACF,YAAY;QACZ,iDAAiD,wBAAwB,EAAE;QAC3E,EAAE;QACF,uBAAuB;QACvB,EAAE;QACF,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,mBAAmB;QAChD,EAAE;QACF,kBAAkB;KACnB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,0BAA0B,CAAC,IAAwB;IACjE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,KAAK,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,OAAO;QACtB,CAAC,CAAC,yDAAyD;QAC3D,CAAC,CAAC,6KAA6K,CAAC;IAClL,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,qBAAqB,CAAC,IAAgD;IACpF,MAAM,IAAI,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,GAAG,IAAI,kCAAkC,IAAI,CAAC,SAAS,qGAAqG,CAAC;IACtK,CAAC;IACD,OAAO,GAAG,IAAI,+JAA+J,CAAC;AAChL,CAAC;AAED,8EAA8E;AAC9E,gEAAgE;AAChE,8EAA8E;AAE9E;oFACoF;AACpF,MAAM,CAAC,MAAM,iBAAiB,GAC5B,wGAAwG;IACxG,gHAAgH;IAChH,qGAAqG,CAAC;AAExG,iEAAiE;AACjE,MAAM,UAAU,eAAe,CAAC,IAAwB,EAAE,OAAe;IACvE,OAAO;QACL,WAAW,CAAC,IAAI,CAAC;QACjB,EAAE;QACF,iBAAiB;QACjB,8FAA8F;QAC9F,EAAE;QACF,iBAAiB,OAAO,EAAE;QAC1B,EAAE;QACF,wDAAwD;KACzD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,cAAc,CAAC,YAAoB,EAAE,OAAe;IAClE,OAAO,GAAG,YAAY,qBAAqB,OAAO,4DAA4D,CAAC;AACjH,CAAC;AAED,8EAA8E;AAC9E,oEAAoE;AACpE,8EAA8E;AAE9E,4FAA4F;AAC5F,MAAM,CAAC,MAAM,qBAAqB,GAChC,sGAAsG;IACtG,yCAAyC,kBAAkB,4BAA4B;IACvF,0EAA0E,CAAC;AAE7E,8EAA8E;AAC9E,2EAA2E;AAC3E,8EAA8E;AAE9E,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mGA6CqE,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkKpH,CAAC"}
@@ -316,14 +316,55 @@ async function dispatchLoop(ctx, opts) {
316
316
  return 0;
317
317
  }
318
318
  // ─── Per-dispatch handler ──────────────────────────────────────────────
319
+ /** Post a `role='system'` message into a conv via the capture-routes family.
320
+ * Device-authed (this daemon's token). Non-2xx is logged but never throws —
321
+ * a missing lifecycle marker is a cosmetic issue, not a dispatch failure. */
322
+ async function postSystem(convGuid, content) {
323
+ try {
324
+ const res = await deviceFetch('POST', `/remote-sessions/${encodeURIComponent(convGuid)}/system`, {
325
+ content,
326
+ }, 10_000);
327
+ if (!res.ok) {
328
+ const body = await res.text().catch(() => '');
329
+ log('warn', 'system post non-2xx', { convGuid, httpStatus: res.status, body: body.slice(0, 200) });
330
+ }
331
+ }
332
+ catch (err) {
333
+ log('warn', 'system post network error', { convGuid, err: err?.message });
334
+ }
335
+ }
336
+ /** 123 B / 4.2 KB / 1.3 MB — short + readable for the "Invoking…" badge. */
337
+ function formatBytes(n) {
338
+ if (n < 1024)
339
+ return `${n} B`;
340
+ if (n < 1024 * 1024)
341
+ return `${(n / 1024).toFixed(1)} KB`;
342
+ return `${(n / (1024 * 1024)).toFixed(1)} MB`;
343
+ }
344
+ /** `18.4s` when under a minute, `3:12.2` above. */
345
+ function formatDuration(ms) {
346
+ const totalSec = ms / 1000;
347
+ if (totalSec < 60)
348
+ return `${totalSec.toFixed(1)}s`;
349
+ const m = Math.floor(totalSec / 60);
350
+ const s = totalSec - m * 60;
351
+ return `${m}:${s.toFixed(1).padStart(4, '0')}`;
352
+ }
319
353
  async function ack(shortGuid, status, error) {
320
354
  try {
321
- await deviceFetch('POST', `/remote-devices/dispatches/${encodeURIComponent(shortGuid)}/ack`, {
355
+ const res = await deviceFetch('POST', `/remote-devices/dispatches/${encodeURIComponent(shortGuid)}/ack`, {
322
356
  status, error: error ?? null,
323
357
  }, 10_000);
358
+ if (!res.ok) {
359
+ // fetch() doesn't throw on 4xx/5xx — surface it ourselves so a
360
+ // broken server route doesn't silently leave dispatches stuck in
361
+ // `delivering` (and therefore no `dispatch:ack` broadcast).
362
+ const body = await res.text().catch(() => '');
363
+ log('warn', 'ack non-2xx', { shortGuid, httpStatus: res.status, body: body.slice(0, 300) });
364
+ }
324
365
  }
325
366
  catch (err) {
326
- log('warn', 'ack failed', { shortGuid, err: err?.message });
367
+ log('warn', 'ack network error', { shortGuid, err: err?.message });
327
368
  }
328
369
  }
329
370
  async function handleDispatch(d) {
@@ -377,22 +418,44 @@ async function handleDispatch(d) {
377
418
  conv: d.conversation_guid,
378
419
  chain: d.kind === 'resume' ? `resume ${d.remote_session_id}` : 'start (fresh session)',
379
420
  });
421
+ // Lifecycle marker: "Invoking Claude Code …". Lands in the conv as a
422
+ // role='system' message, visible live + on refresh. Tells the user
423
+ // the relay received + started processing the dispatch even if Claude
424
+ // is slow to respond.
425
+ const words = d.message.trim().split(/\s+/).filter(Boolean).length;
426
+ const bytes = Buffer.byteLength(d.message, 'utf-8');
427
+ await postSystem(d.conversation_guid, `Invoking Claude Code (${words} word${words === 1 ? '' : 's'}, ${formatBytes(bytes)})`);
380
428
  const t0 = Date.now();
429
+ let exitCode = 1;
430
+ let spawnErr = null;
381
431
  try {
382
- const exitCode = await spawnGipityClaude(args, cwd, d.conversation_guid);
383
- const ms = Date.now() - t0;
384
- if (exitCode === 0) {
385
- log('info', 'dispatch done', { id: d.short_guid, ms });
386
- await ack(d.short_guid, 'done');
387
- }
388
- else {
389
- log('warn', 'dispatch child exited nonzero', { id: d.short_guid, exitCode, ms });
390
- await ack(d.short_guid, 'error', `gipity claude exited with code ${exitCode}`);
391
- }
432
+ exitCode = await spawnGipityClaude(args, cwd, d.conversation_guid);
392
433
  }
393
434
  catch (err) {
394
- log('error', 'dispatch spawn failed', { id: d.short_guid, err: err?.message });
395
- await ack(d.short_guid, 'error', err?.message || String(err));
435
+ spawnErr = err?.message || String(err);
436
+ log('error', 'dispatch spawn failed', { id: d.short_guid, err: spawnErr });
437
+ }
438
+ const ms = Date.now() - t0;
439
+ const dur = formatDuration(ms);
440
+ // Lifecycle marker: "Claude Code finished (…)" / "failed (…)". Runs
441
+ // regardless of outcome so the user always sees a closing footer even
442
+ // when the transcript hook's late POST hasn't landed yet.
443
+ const tail = spawnErr
444
+ ? `failed (${dur}: ${spawnErr})`
445
+ : exitCode === 0
446
+ ? `finished (${dur})`
447
+ : `failed (${dur}, exit ${exitCode})`;
448
+ await postSystem(d.conversation_guid, `Claude Code ${tail}`);
449
+ if (spawnErr) {
450
+ await ack(d.short_guid, 'error', spawnErr);
451
+ }
452
+ else if (exitCode === 0) {
453
+ log('info', 'dispatch done', { id: d.short_guid, ms });
454
+ await ack(d.short_guid, 'done');
455
+ }
456
+ else {
457
+ log('warn', 'dispatch child exited nonzero', { id: d.short_guid, exitCode, ms });
458
+ await ack(d.short_guid, 'error', `gipity claude exited with code ${exitCode}`);
396
459
  }
397
460
  }
398
461
  /**
@@ -476,9 +539,17 @@ export async function spawnGipityClaude(args, cwd, convGuid) {
476
539
  // ─── Helpers ───────────────────────────────────────────────────────────
477
540
  function sleep(ms, signal) {
478
541
  return new Promise(resolve => {
479
- const t = setTimeout(resolve, ms);
542
+ if (signal?.aborted)
543
+ return resolve();
544
+ let onAbort = null;
545
+ const t = setTimeout(() => {
546
+ if (onAbort && signal)
547
+ signal.removeEventListener('abort', onAbort);
548
+ resolve();
549
+ }, ms);
480
550
  if (signal) {
481
- signal.addEventListener('abort', () => { clearTimeout(t); resolve(); }, { once: true });
551
+ onAbort = () => { clearTimeout(t); signal.removeEventListener('abort', onAbort); resolve(); };
552
+ signal.addEventListener('abort', onAbort, { once: true });
482
553
  }
483
554
  });
484
555
  }
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/relay/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/relay/daemon.ts"],"names":[],"mappings":"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"}