gipity 1.0.67 → 1.0.73
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/dist/commands/generate.d.ts +2 -0
- package/dist/commands/generate.js +183 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/scaffold.js +1 -1
- package/dist/commands/scaffold.js.map +1 -1
- package/dist/commands/start-cc.js +5 -3
- package/dist/commands/start-cc.js.map +1 -1
- package/dist/gip3dw-guide.d.ts +1 -1
- package/dist/gip3dw-guide.js +2 -0
- package/dist/gip3dw-guide.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/provider-docs.d.ts +27 -0
- package/dist/provider-docs.js +69 -0
- package/dist/provider-docs.js.map +1 -0
- package/dist/setup.d.ts +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { post } from '../api.js';
|
|
3
|
+
import { requireConfig } from '../config.js';
|
|
4
|
+
import { writeFileSync } from 'fs';
|
|
5
|
+
import { IMAGE_MODELS_DOC, IMAGE_GEMINI_ASPECT_RATIOS, IMAGE_GEMINI_SIZES, VIDEO_MODELS_DOC, TTS_PROVIDER_DESCRIPTIONS } from '../provider-docs.js';
|
|
6
|
+
/** Download a URL and save to a local file */
|
|
7
|
+
async function downloadFile(url, filename) {
|
|
8
|
+
const res = await fetch(url);
|
|
9
|
+
if (!res.ok)
|
|
10
|
+
throw new Error(`Download failed: ${res.status}`);
|
|
11
|
+
const buffer = Buffer.from(await res.arrayBuffer());
|
|
12
|
+
writeFileSync(filename, buffer);
|
|
13
|
+
}
|
|
14
|
+
// ── IMAGE ──────────────────────────────────────────────────────────────
|
|
15
|
+
const imageCommand = new Command('image')
|
|
16
|
+
.description(`Generate an image from a text prompt using AI.
|
|
17
|
+
|
|
18
|
+
Models: ${IMAGE_MODELS_DOC}
|
|
19
|
+
|
|
20
|
+
Gemini-specific options:
|
|
21
|
+
--aspect-ratio Control output shape: ${IMAGE_GEMINI_ASPECT_RATIOS}
|
|
22
|
+
--image-size Control resolution: ${IMAGE_GEMINI_SIZES} (default: 1K)
|
|
23
|
+
|
|
24
|
+
Examples:
|
|
25
|
+
gipity generate image "a cat wearing a top hat"
|
|
26
|
+
gipity generate image "landscape sunset" --provider gemini --aspect-ratio 16:9 --image-size 2K
|
|
27
|
+
gipity generate image "product photo" --provider openai --model gpt-image-1 --size 1536x1024 --quality high
|
|
28
|
+
gipity generate image "abstract art" --provider bfl --model flux-2-pro -o art.png`)
|
|
29
|
+
.argument('<prompt>', 'Text description of the image to generate')
|
|
30
|
+
.option('--provider <provider>', 'Image provider: openai, bfl, or gemini (default: bfl)')
|
|
31
|
+
.option('--model <model>', 'Model ID (see provider list above)')
|
|
32
|
+
.option('--size <size>', 'Dimensions as WxH, e.g. "1024x1024" (OpenAI/BFL)')
|
|
33
|
+
.option('--quality <quality>', 'Quality: low|medium|high|auto (gpt-image-1), standard|hd (dall-e-3)')
|
|
34
|
+
.option('--aspect-ratio <ratio>', 'Aspect ratio (Gemini only): 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 4:5, 5:4, 21:9')
|
|
35
|
+
.option('--image-size <size>', 'Output resolution (Gemini only): 512, 1K, 2K, 4K')
|
|
36
|
+
.option('-o, --output <file>', 'Output filename (default: generated.png)')
|
|
37
|
+
.option('--json', 'Output as JSON')
|
|
38
|
+
.action(async (prompt, opts) => {
|
|
39
|
+
try {
|
|
40
|
+
const config = requireConfig();
|
|
41
|
+
const result = await post(`/projects/${config.projectGuid}/generate/image`, {
|
|
42
|
+
prompt,
|
|
43
|
+
provider: opts.provider,
|
|
44
|
+
model: opts.model,
|
|
45
|
+
size: opts.size,
|
|
46
|
+
quality: opts.quality,
|
|
47
|
+
aspect_ratio: opts.aspectRatio,
|
|
48
|
+
image_size: opts.imageSize,
|
|
49
|
+
});
|
|
50
|
+
const ext = result.content_type.includes('png') ? 'png' : 'jpg';
|
|
51
|
+
const filename = opts.output || `generated.${ext}`;
|
|
52
|
+
await downloadFile(result.url, filename);
|
|
53
|
+
if (opts.json) {
|
|
54
|
+
console.log(JSON.stringify({ ...result, saved: filename }));
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
const sizeKb = Math.round(result.size_bytes / 1024);
|
|
58
|
+
console.log(`Generated with ${result.provider}/${result.model} (${sizeKb}KB)`);
|
|
59
|
+
console.log(`Saved to ${filename}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
console.error(`Image generation failed: ${err.message}`);
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
// ── VIDEO ──────────────────────────────────────────────────────────────
|
|
68
|
+
const videoCommand = new Command('video')
|
|
69
|
+
.description(`Generate a short video (up to 8 seconds) from a text prompt using Google Veo.
|
|
70
|
+
|
|
71
|
+
Models: ${VIDEO_MODELS_DOC}
|
|
72
|
+
|
|
73
|
+
Options:
|
|
74
|
+
--aspect 16:9 (landscape, default), 9:16 (portrait/vertical), 1:1 (square)
|
|
75
|
+
--resolution 720p (default), 1080p, 4k
|
|
76
|
+
|
|
77
|
+
Tips:
|
|
78
|
+
- Describe the scene, camera movement, lighting, and any dialogue
|
|
79
|
+
- Generation takes 30-120 seconds depending on model
|
|
80
|
+
- Videos include AI-generated audio
|
|
81
|
+
|
|
82
|
+
Examples:
|
|
83
|
+
gipity generate video "a bird flying over a mountain lake at sunset"
|
|
84
|
+
gipity generate video "close-up of coffee being poured" --model veo-3.1-fast-generate-preview
|
|
85
|
+
gipity generate video "vertical dance video" --aspect 9:16 --resolution 1080p -o dance.mp4`)
|
|
86
|
+
.argument('<prompt>', 'Description of the video scene, action, camera movement, and dialogue')
|
|
87
|
+
.option('--model <model>', 'Veo model: veo-3.1-generate-preview (quality), veo-3.1-fast-generate-preview (speed), veo-3.1-lite-generate-preview (budget)')
|
|
88
|
+
.option('--aspect <ratio>', 'Aspect ratio: 16:9 (landscape), 9:16 (portrait), 1:1 (square)')
|
|
89
|
+
.option('--resolution <res>', 'Video resolution: 720p, 1080p, 4k')
|
|
90
|
+
.option('-o, --output <file>', 'Output filename (default: generated.mp4)')
|
|
91
|
+
.option('--json', 'Output as JSON')
|
|
92
|
+
.action(async (prompt, opts) => {
|
|
93
|
+
try {
|
|
94
|
+
const config = requireConfig();
|
|
95
|
+
console.log('Generating video (this may take 30-120 seconds)...');
|
|
96
|
+
const result = await post(`/projects/${config.projectGuid}/generate/video`, {
|
|
97
|
+
prompt,
|
|
98
|
+
model: opts.model,
|
|
99
|
+
aspect_ratio: opts.aspect,
|
|
100
|
+
resolution: opts.resolution,
|
|
101
|
+
});
|
|
102
|
+
const filename = opts.output || 'generated.mp4';
|
|
103
|
+
await downloadFile(result.url, filename);
|
|
104
|
+
if (opts.json) {
|
|
105
|
+
console.log(JSON.stringify({ ...result, saved: filename }));
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
const sizeKb = Math.round(result.size_bytes / 1024);
|
|
109
|
+
console.log(`Generated with ${result.provider}/${result.model} (${sizeKb}KB)`);
|
|
110
|
+
console.log(`Saved to ${filename}`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
console.error(`Video generation failed: ${err.message}`);
|
|
115
|
+
process.exit(1);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
// ── SPEECH ─────────────────────────────────────────────────────────────
|
|
119
|
+
const speechCommand = new Command('speech')
|
|
120
|
+
.description(`Generate speech audio from text using text-to-speech.
|
|
121
|
+
|
|
122
|
+
Providers: ${Object.entries(TTS_PROVIDER_DESCRIPTIONS).map(([k, v]) => `${k} — ${v}`).join('\n ')}
|
|
123
|
+
|
|
124
|
+
Gemini-specific options:
|
|
125
|
+
--language BCP-47 language code (e.g. ja-JP, es-ES, fr-FR). 60+ languages supported.
|
|
126
|
+
--speakers Multi-speaker mode (up to 2). JSON array: [{"name":"Joe","voice":"Kore"},{"name":"Jane","voice":"Puck"}]
|
|
127
|
+
When using multi-speaker, format your text as "Name: dialogue" on each line.
|
|
128
|
+
|
|
129
|
+
Examples:
|
|
130
|
+
gipity generate speech "Hello, welcome to Gipity!"
|
|
131
|
+
gipity generate speech "こんにちは世界" --provider gemini --voice Kore --language ja-JP
|
|
132
|
+
gipity generate speech "Bonjour le monde" --provider gemini --language fr-FR
|
|
133
|
+
gipity generate speech 'Joe: Hey!\\nJane: Hi there!' --provider gemini --speakers '[{"name":"Joe","voice":"Charon"},{"name":"Jane","voice":"Leda"}]'`)
|
|
134
|
+
.argument('<text>', 'Text to convert to speech (max 5000 characters)')
|
|
135
|
+
.option('--provider <provider>', 'TTS provider: elevenlabs (default), openai, or gemini')
|
|
136
|
+
.option('--voice <voice>', 'Voice ID or name (provider-specific)')
|
|
137
|
+
.option('--language <code>', 'BCP-47 language code, e.g. ja-JP, es-ES (Gemini only, 60+ languages)')
|
|
138
|
+
.option('--speakers <json>', 'Multi-speaker config as JSON array (Gemini only, up to 2 speakers)')
|
|
139
|
+
.option('-o, --output <file>', 'Output filename (default: speech.mp3)')
|
|
140
|
+
.option('--json', 'Output as JSON')
|
|
141
|
+
.action(async (text, opts) => {
|
|
142
|
+
try {
|
|
143
|
+
const config = requireConfig();
|
|
144
|
+
let speakers;
|
|
145
|
+
if (opts.speakers) {
|
|
146
|
+
try {
|
|
147
|
+
speakers = JSON.parse(opts.speakers);
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
console.error('Invalid --speakers JSON');
|
|
151
|
+
process.exit(1);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
const result = await post(`/projects/${config.projectGuid}/generate/speech`, {
|
|
155
|
+
text,
|
|
156
|
+
provider: opts.provider,
|
|
157
|
+
voice: opts.voice,
|
|
158
|
+
language: opts.language,
|
|
159
|
+
speakers,
|
|
160
|
+
});
|
|
161
|
+
const filename = opts.output || 'speech.mp3';
|
|
162
|
+
await downloadFile(result.url, filename);
|
|
163
|
+
if (opts.json) {
|
|
164
|
+
console.log(JSON.stringify({ ...result, saved: filename }));
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
const sizeKb = Math.round(result.size_bytes / 1024);
|
|
168
|
+
console.log(`Generated with ${result.provider} (${sizeKb}KB)`);
|
|
169
|
+
console.log(`Saved to ${filename}`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
catch (err) {
|
|
173
|
+
console.error(`Speech generation failed: ${err.message}`);
|
|
174
|
+
process.exit(1);
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
// ── PARENT COMMAND ─────────────────────────────────────────────────────
|
|
178
|
+
export const generateCommand = new Command('generate')
|
|
179
|
+
.description('Generate media (images, videos, speech) using AI')
|
|
180
|
+
.addCommand(imageCommand)
|
|
181
|
+
.addCommand(videoCommand)
|
|
182
|
+
.addCommand(speechCommand);
|
|
183
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,yBAAyB,EAAyB,MAAM,qBAAqB,CAAC;AAU3K,8CAA8C;AAC9C,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,QAAgB;IACvD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,0EAA0E;AAE1E,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KACtC,WAAW,CAAC;;UAEL,gBAAgB;;;2CAGiB,0BAA0B;yCAC5B,kBAAkB;;;;;;oFAMyB,CAAC;KAClF,QAAQ,CAAC,UAAU,EAAE,2CAA2C,CAAC;KACjE,MAAM,CAAC,uBAAuB,EAAE,uDAAuD,CAAC;KACxF,MAAM,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;KAC/D,MAAM,CAAC,eAAe,EAAE,kDAAkD,CAAC;KAC3E,MAAM,CAAC,qBAAqB,EAAE,qEAAqE,CAAC;KACpG,MAAM,CAAC,wBAAwB,EAAE,iFAAiF,CAAC;KACnH,MAAM,CAAC,qBAAqB,EAAE,kDAAkD,CAAC;KACjF,MAAM,CAAC,qBAAqB,EAAE,0CAA0C,CAAC;KACzE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAAI,EAAE,EAAE;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAiB,aAAa,MAAM,CAAC,WAAW,iBAAiB,EAAE;YAC1F,MAAM;YACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,WAAW;YAC9B,UAAU,EAAE,IAAI,CAAC,SAAS;SAC3B,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,aAAa,GAAG,EAAE,CAAC;QAEnD,MAAM,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAEzC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,KAAK,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,0EAA0E;AAE1E,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KACtC,WAAW,CAAC;;UAEL,gBAAgB;;;;;;;;;;;;;;6FAcmE,CAAC;KAC3F,QAAQ,CAAC,UAAU,EAAE,uEAAuE,CAAC;KAC7F,MAAM,CAAC,iBAAiB,EAAE,8HAA8H,CAAC;KACzJ,MAAM,CAAC,kBAAkB,EAAE,+DAA+D,CAAC;KAC3F,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,qBAAqB,EAAE,0CAA0C,CAAC;KACzE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAAI,EAAE,EAAE;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAElE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAiB,aAAa,MAAM,CAAC,WAAW,iBAAiB,EAAE;YAC1F,MAAM;YACN,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,YAAY,EAAE,IAAI,CAAC,MAAM;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC;QAChD,MAAM,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAEzC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,KAAK,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,0EAA0E;AAE1E,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KACxC,WAAW,CAAC;;aAEF,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;;;;;;;uJAWqD,CAAC;KACrJ,QAAQ,CAAC,QAAQ,EAAE,iDAAiD,CAAC;KACrE,MAAM,CAAC,uBAAuB,EAAE,uDAAuD,CAAC;KACxF,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,CAAC;KACjE,MAAM,CAAC,mBAAmB,EAAE,sEAAsE,CAAC;KACnG,MAAM,CAAC,mBAAmB,EAAE,oEAAoE,CAAC;KACjG,MAAM,CAAC,qBAAqB,EAAE,uCAAuC,CAAC;KACtE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAI,EAAE,EAAE;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAE/B,IAAI,QAAQ,CAAC;QACb,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC;gBAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAAC,CAAC;YAC7C,MAAM,CAAC;gBAAC,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAC,CAAC;QACtE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAiB,aAAa,MAAM,CAAC,WAAW,kBAAkB,EAAE;YAC3F,IAAI;YACJ,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ;SACT,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC;QAC7C,MAAM,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAEzC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,QAAQ,KAAK,MAAM,KAAK,CAAC,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,6BAA6B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,0EAA0E;AAE1E,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KACnD,WAAW,CAAC,kDAAkD,CAAC;KAC/D,UAAU,CAAC,YAAY,CAAC;KACxB,UAAU,CAAC,YAAY,CAAC;KACxB,UAAU,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { syncDown } from '../sync.js';
|
|
|
5
5
|
export const scaffoldCommand = new Command('scaffold')
|
|
6
6
|
.description('Create app structure (src/ with HTML, CSS, JS, favicons)')
|
|
7
7
|
.argument('[title]', 'App title (defaults to project name)')
|
|
8
|
-
.requiredOption('--type <type>', 'Project type: web or 3d-world')
|
|
8
|
+
.requiredOption('--type <type>', 'Project type: web, 2d-game, or 3d-world')
|
|
9
9
|
.option('--description <desc>', 'App description for meta tags')
|
|
10
10
|
.option('--json', 'Output as JSON')
|
|
11
11
|
.action(async (title, opts) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/commands/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KACnD,WAAW,CAAC,0DAA0D,CAAC;KACvE,QAAQ,CAAC,SAAS,EAAE,sCAAsC,CAAC;KAC3D,cAAc,CAAC,eAAe,EAAE
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/commands/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KACnD,WAAW,CAAC,0DAA0D,CAAC;KACvE,QAAQ,CAAC,SAAS,EAAE,sCAAsC,CAAC;KAC3D,cAAc,CAAC,eAAe,EAAE,yCAAyC,CAAC;KAC1E,MAAM,CAAC,sBAAsB,EAAE,+BAA+B,CAAC;KAC/D,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,KAAyB,EAAE,IAAI,EAAE,EAAE;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,KAAK,IAAI,MAAM,CAAC,WAAW,CAAC;QAE7C,MAAM,GAAG,GAAG,MAAM,IAAI,CAEnB,aAAa,MAAM,CAAC,WAAW,WAAW,EAAE;YAC7C,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;QAEH,8BAA8B;QAC9B,MAAM,UAAU,GAAG,MAAM,QAAQ,EAAE,CAAC;QAEpC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,KAAK,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC;YACnF,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACxB,CAAC;YACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,YAAY,UAAU,CAAC,MAAM,kBAAkB,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -3,15 +3,17 @@ import { join } from 'path';
|
|
|
3
3
|
import { mkdirSync } from 'fs';
|
|
4
4
|
import { execSync, spawn } from 'child_process';
|
|
5
5
|
import { homedir } from 'os';
|
|
6
|
-
/**
|
|
6
|
+
/** On Windows, spawn without shell:true needs an explicit extension (.exe or .cmd) */
|
|
7
7
|
function resolveCommand(cmd) {
|
|
8
8
|
if (process.platform !== 'win32')
|
|
9
9
|
return cmd;
|
|
10
10
|
try {
|
|
11
|
-
|
|
11
|
+
const lines = execSync(`where ${cmd}`, { encoding: 'utf-8' }).split(/\r?\n/).map(l => l.trim()).filter(Boolean);
|
|
12
|
+
// Prefer .exe (native) over .cmd (npm shim)
|
|
13
|
+
return lines.find(l => l.endsWith('.exe')) || lines.find(l => l.endsWith('.cmd')) || cmd;
|
|
12
14
|
}
|
|
13
15
|
catch {
|
|
14
|
-
return cmd
|
|
16
|
+
return `${cmd}.cmd`;
|
|
15
17
|
}
|
|
16
18
|
}
|
|
17
19
|
import { getAuth, saveAuth } from '../auth.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start-cc.js","sourceRoot":"","sources":["../../src/commands/start-cc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"start-cc.js","sourceRoot":"","sources":["../../src/commands/start-cc.ts"],"names":[],"mappings":"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"}
|
package/dist/gip3dw-guide.d.ts
CHANGED
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* - server/src/services/skills/ (web agent skills)
|
|
5
5
|
* - cli/src/setup.ts (CLAUDE.md template for Claude Code)
|
|
6
6
|
*/
|
|
7
|
-
export declare const GIP_3DW_GUIDE = "## 3D World\n\n**3D World** is the 3D multiplayer game template on Gipity. All 3D World games share the same visual style, physics engine (Rapier), and multiplayer backend (Colyseus). The template is locked \u2014 creators only write game logic.\n\nScaffold a 3D World project with `app_scaffold type=3d-world` (web agent) or `gipity scaffold --type 3d-world` (CLI). This creates a playable 3D game with Three.js + Rapier physics + Colyseus multiplayer. The `src/template/` directory is READ-ONLY (locked engine). Editable files: `config.js` (metadata), `settings.js` (tunable values), `strings.js` (display text), `objects.js` (entity factories), `game.js` (orchestrator).\n\n**Genres:** obby/parkour, tycoon, simulator, PvP combat, shooter, tower defense, horror, racing, RPG, social.\n\nRegular game requests (\"make a wordle\", \"build a quiz\") should use the standard web scaffold \u2014 they don't need the 3D template.";
|
|
7
|
+
export declare const GIP_3DW_GUIDE = "## 3D World\n\n**3D World** is the 3D multiplayer game template on Gipity. All 3D World games share the same visual style, physics engine (Rapier), and multiplayer backend (Colyseus). The template is locked \u2014 creators only write game logic.\n\nScaffold a 3D World project with `app_scaffold type=3d-world` (web agent) or `gipity scaffold --type 3d-world` (CLI). This creates a playable 3D game with Three.js + Rapier physics + Colyseus multiplayer. The `src/template/` directory is READ-ONLY (locked engine). Editable files: `config.js` (metadata), `settings.js` (tunable values), `strings.js` (display text), `objects.js` (entity factories), `game.js` (orchestrator).\n\n**Genres:** obby/parkour, tycoon, simulator, PvP combat, shooter, tower defense, horror, racing, RPG, social.\n\n**Features:** Opt-in gameplay modules enabled via `config.features`. Available: `rocket-launcher` (projectile weapon with physics explosions). Example: `features: { 'rocket-launcher': true }` in config.js. Features are template-level and auto-initialize during boot.\n\nRegular game requests (\"make a wordle\", \"build a quiz\") should use the standard web scaffold \u2014 they don't need the 3D template.";
|
package/dist/gip3dw-guide.js
CHANGED
|
@@ -12,5 +12,7 @@ Scaffold a 3D World project with \`app_scaffold type=3d-world\` (web agent) or \
|
|
|
12
12
|
|
|
13
13
|
**Genres:** obby/parkour, tycoon, simulator, PvP combat, shooter, tower defense, horror, racing, RPG, social.
|
|
14
14
|
|
|
15
|
+
**Features:** Opt-in gameplay modules enabled via \`config.features\`. Available: \`rocket-launcher\` (projectile weapon with physics explosions). Example: \`features: { 'rocket-launcher': true }\` in config.js. Features are template-level and auto-initialize during boot.
|
|
16
|
+
|
|
15
17
|
Regular game requests ("make a wordle", "build a quiz") should use the standard web scaffold — they don't need the 3D template.`;
|
|
16
18
|
//# sourceMappingURL=gip3dw-guide.js.map
|
package/dist/gip3dw-guide.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gip3dw-guide.js","sourceRoot":"","sources":["../src/gip3dw-guide.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG
|
|
1
|
+
{"version":3,"file":"gip3dw-guide.js","sourceRoot":"","sources":["../src/gip3dw-guide.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;gIAUmG,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -30,6 +30,7 @@ import { fnCommand } from './commands/fn.js';
|
|
|
30
30
|
import { rbacCommand } from './commands/rbac.js';
|
|
31
31
|
import { auditCommand } from './commands/audit.js';
|
|
32
32
|
import { emailCommand } from './commands/email.js';
|
|
33
|
+
import { generateCommand } from './commands/generate.js';
|
|
33
34
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
34
35
|
const pkg = JSON.parse(readFileSync(resolve(__dirname, '../package.json'), 'utf-8'));
|
|
35
36
|
// ── ANSI helpers ────────────────────────────────────────────────────────
|
|
@@ -55,7 +56,7 @@ const setupGroup = [loginCommand, logoutCommand, initCommand, startCcCommand];
|
|
|
55
56
|
// ── Project commands ────────────────────────────────────────────────────
|
|
56
57
|
const projectGroup = [statusCommand, syncCommand, pushCommand, deployCommand, scaffoldCommand, checkpointCommand];
|
|
57
58
|
// ── Resource commands ───────────────────────────────────────────────────
|
|
58
|
-
const resourceGroup = [dbCommand, memoryCommand, fileCommand, sandboxCommand, apiCommand, logsCommand, browserCommand, recordsCommand, fnCommand, rbacCommand, auditCommand, emailCommand];
|
|
59
|
+
const resourceGroup = [dbCommand, memoryCommand, fileCommand, sandboxCommand, apiCommand, logsCommand, browserCommand, recordsCommand, fnCommand, rbacCommand, auditCommand, emailCommand, generateCommand];
|
|
59
60
|
// ── Agent commands ──────────────────────────────────────────────────────
|
|
60
61
|
const agentGroup = [chatCommand, projectCommand, agentCommand, workflowCommand, creditsCommand];
|
|
61
62
|
for (const cmd of [...setupGroup, ...projectGroup, ...resourceGroup, ...agentGroup]) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAErF,2EAA2E;AAC3E,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;AACjD,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;AAElD,2EAA2E;AAC3E,SAAS,aAAa,CAAC,GAAY;IACjC,GAAG,CAAC,aAAa,CAAC;QAChB,UAAU,CAAC,GAAG,EAAE,MAAM;YACpB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YACtE,OAAO,IAAI,GAAG,WAAW,GAAG,IAAI,CAAC;QACnC,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,gDAAgD,GAAG,CAAC,2EAA2E,CAAC,EAAE,CAAC;KAChL,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAEzC,aAAa,CAAC,OAAO,CAAC,CAAC;AAEvB,2EAA2E;AAC3E,MAAM,UAAU,GAAG,CAAC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;AAC9E,2EAA2E;AAC3E,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC;AAClH,2EAA2E;AAC3E,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;AAC5M,2EAA2E;AAC3E,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;AAEhG,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,UAAU,EAAE,GAAG,YAAY,EAAE,GAAG,aAAa,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;IACpF,aAAa,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider documentation strings for CLI help text.
|
|
3
|
+
*
|
|
4
|
+
* ⚠️ AUTO-GENERATED — do not edit directly.
|
|
5
|
+
* Source: platform/server/src/config/constants/provider-docs.ts
|
|
6
|
+
* Run `just sync-docs` to refresh from platform.
|
|
7
|
+
*/
|
|
8
|
+
export declare const GEMINI_LLM_MODELS_DOC = "gemini-2.5-flash (Gemini 2.5 Flash, $0.15/$0.6 per 1M tok, 1049K ctx), gemini-2.5-pro (Gemini 2.5 Pro, $1.25/$10 per 1M tok, 1049K ctx), gemini-3-pro-preview (Gemini 3 Pro, $2/$12 per 1M tok, 200K ctx)";
|
|
9
|
+
export declare const GEMINI_TTS_VOICES: readonly ["Zephyr", "Puck", "Charon", "Kore", "Fenrir", "Leda", "Orus", "Aoede", "Callirrhoe", "Autonoe", "Enceladus", "Iapetus", "Umbriel", "Algieba", "Despina", "Erinome", "Algenib", "Rasalgethi", "Laomedeia", "Achernar", "Alnilam", "Schedar", "Gacrux", "Pulcherrima", "Achird", "Zubenelgenubi", "Vindemiatrix", "Sadachbia", "Sadaltager", "Sulafat"];
|
|
10
|
+
export declare const GEMINI_TTS_VOICES_DOC = "Zephyr, Puck, Charon, Kore, Fenrir, Leda, Orus, Aoede, Callirrhoe, Autonoe, Enceladus, Iapetus, Umbriel, Algieba, Despina, Erinome, Algenib, Rasalgethi, Laomedeia, Achernar, Alnilam, Schedar, Gacrux, Pulcherrima, Achird, Zubenelgenubi, Vindemiatrix, Sadachbia, Sadaltager, Sulafat";
|
|
11
|
+
export declare const GEMINI_TTS_VOICES_SHORT = "Kore, Puck, Zephyr, Charon, Fenrir, Leda, Orus, Aoede, and 22 more";
|
|
12
|
+
export declare const IMAGE_GEMINI_ASPECT_RATIOS = "1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 4:5, 5:4, 21:9";
|
|
13
|
+
export declare const IMAGE_GEMINI_SIZES = "512, 1K, 2K, 4K";
|
|
14
|
+
export declare const IMAGE_MODELS_DOC = "openai: gpt-image-1, dall-e-3. bfl: flux-2-pro, flux-2-flex, flux-2-max, flux-dev. gemini: gemini-2.5-flash-image, gemini-3.1-flash-image-preview, gemini-3-pro-image-preview";
|
|
15
|
+
export declare const IMAGE_PROVIDERS_BULLET = "- **OpenAI**: `gpt-image-1, dall-e-3`\n- **BFL/Flux**: `flux-2-pro, flux-2-flex, flux-2-max, flux-dev`\n- **Gemini/Nano Banana**: `gemini-2.5-flash-image, gemini-3.1-flash-image-preview, gemini-3-pro-image-preview`";
|
|
16
|
+
export declare const IMAGE_PROVIDERS_LIST = "openai, bfl, gemini";
|
|
17
|
+
export declare const IMAGE_PROVIDER_DESCRIPTIONS: Record<string, string>;
|
|
18
|
+
export declare const LLM_DEFAULT_MODELS_DOC = "OpenAI: gpt-5-mini (cheapest). Anthropic: claude-haiku-4-5 (cheapest). Gemini: gemini-2.5-flash (cheapest, 1M context)";
|
|
19
|
+
export declare const LLM_PROVIDERS_LIST = "anthropic, openai, gemini";
|
|
20
|
+
export declare const OPENAI_TTS_VOICES_DOC = "alloy, ash, ballad, coral, echo, fable, nova, onyx, sage, shimmer, verse";
|
|
21
|
+
export declare const TRANSCRIBE_PROVIDERS_DOC = "elevenlabs (default, Scribe v2), openai (GPT-4o Transcribe), gemini (Gemini 2.5 Flash \u2014 cheapest, multilingual)";
|
|
22
|
+
export declare const TTS_PROVIDERS_LIST = "elevenlabs, openai, gemini";
|
|
23
|
+
export declare const TTS_PROVIDER_DESCRIPTIONS: Record<string, string>;
|
|
24
|
+
export declare const VIDEO_ASPECT_RATIOS = "16:9 (landscape), 9:16 (portrait), 1:1 (square)";
|
|
25
|
+
export declare const VIDEO_MODELS_DOC = "veo-3.1-generate-preview (best quality, ~$0.40/sec), veo-3.1-fast-generate-preview (faster, ~$0.15/sec), veo-3.1-lite-generate-preview (budget, ~$0.07/sec)";
|
|
26
|
+
export declare const VIDEO_MODELS_LIST = "veo-3.1-generate-preview, veo-3.1-fast-generate-preview, veo-3.1-lite-generate-preview";
|
|
27
|
+
export declare const VIDEO_RESOLUTIONS = "720p, 1080p, 4k";
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider documentation strings for CLI help text.
|
|
3
|
+
*
|
|
4
|
+
* ⚠️ AUTO-GENERATED — do not edit directly.
|
|
5
|
+
* Source: platform/server/src/config/constants/provider-docs.ts
|
|
6
|
+
* Run `just sync-docs` to refresh from platform.
|
|
7
|
+
*/
|
|
8
|
+
export const GEMINI_LLM_MODELS_DOC = `gemini-2.5-flash (Gemini 2.5 Flash, $0.15/$0.6 per 1M tok, 1049K ctx), gemini-2.5-pro (Gemini 2.5 Pro, $1.25/$10 per 1M tok, 1049K ctx), gemini-3-pro-preview (Gemini 3 Pro, $2/$12 per 1M tok, 200K ctx)`;
|
|
9
|
+
export const GEMINI_TTS_VOICES = [
|
|
10
|
+
'Zephyr',
|
|
11
|
+
'Puck',
|
|
12
|
+
'Charon',
|
|
13
|
+
'Kore',
|
|
14
|
+
'Fenrir',
|
|
15
|
+
'Leda',
|
|
16
|
+
'Orus',
|
|
17
|
+
'Aoede',
|
|
18
|
+
'Callirrhoe',
|
|
19
|
+
'Autonoe',
|
|
20
|
+
'Enceladus',
|
|
21
|
+
'Iapetus',
|
|
22
|
+
'Umbriel',
|
|
23
|
+
'Algieba',
|
|
24
|
+
'Despina',
|
|
25
|
+
'Erinome',
|
|
26
|
+
'Algenib',
|
|
27
|
+
'Rasalgethi',
|
|
28
|
+
'Laomedeia',
|
|
29
|
+
'Achernar',
|
|
30
|
+
'Alnilam',
|
|
31
|
+
'Schedar',
|
|
32
|
+
'Gacrux',
|
|
33
|
+
'Pulcherrima',
|
|
34
|
+
'Achird',
|
|
35
|
+
'Zubenelgenubi',
|
|
36
|
+
'Vindemiatrix',
|
|
37
|
+
'Sadachbia',
|
|
38
|
+
'Sadaltager',
|
|
39
|
+
'Sulafat',
|
|
40
|
+
];
|
|
41
|
+
export const GEMINI_TTS_VOICES_DOC = `Zephyr, Puck, Charon, Kore, Fenrir, Leda, Orus, Aoede, Callirrhoe, Autonoe, Enceladus, Iapetus, Umbriel, Algieba, Despina, Erinome, Algenib, Rasalgethi, Laomedeia, Achernar, Alnilam, Schedar, Gacrux, Pulcherrima, Achird, Zubenelgenubi, Vindemiatrix, Sadachbia, Sadaltager, Sulafat`;
|
|
42
|
+
export const GEMINI_TTS_VOICES_SHORT = `Kore, Puck, Zephyr, Charon, Fenrir, Leda, Orus, Aoede, and 22 more`;
|
|
43
|
+
export const IMAGE_GEMINI_ASPECT_RATIOS = `1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 4:5, 5:4, 21:9`;
|
|
44
|
+
export const IMAGE_GEMINI_SIZES = `512, 1K, 2K, 4K`;
|
|
45
|
+
export const IMAGE_MODELS_DOC = `openai: gpt-image-1, dall-e-3. bfl: flux-2-pro, flux-2-flex, flux-2-max, flux-dev. gemini: gemini-2.5-flash-image, gemini-3.1-flash-image-preview, gemini-3-pro-image-preview`;
|
|
46
|
+
export const IMAGE_PROVIDERS_BULLET = `- **OpenAI**: \`gpt-image-1, dall-e-3\`
|
|
47
|
+
- **BFL/Flux**: \`flux-2-pro, flux-2-flex, flux-2-max, flux-dev\`
|
|
48
|
+
- **Gemini/Nano Banana**: \`gemini-2.5-flash-image, gemini-3.1-flash-image-preview, gemini-3-pro-image-preview\``;
|
|
49
|
+
export const IMAGE_PROVIDERS_LIST = `openai, bfl, gemini`;
|
|
50
|
+
export const IMAGE_PROVIDER_DESCRIPTIONS = {
|
|
51
|
+
'openai': `OpenAI (gpt-image-1, dall-e-3)`,
|
|
52
|
+
'bfl': `BFL/Flux (flux-2-pro, flux-2-flex, flux-2-max, flux-dev)`,
|
|
53
|
+
'gemini': `Gemini/Nano Banana (gemini-2.5-flash-image, gemini-3.1-flash-image-preview, gemini-3-pro-image-preview)`,
|
|
54
|
+
};
|
|
55
|
+
export const LLM_DEFAULT_MODELS_DOC = `OpenAI: gpt-5-mini (cheapest). Anthropic: claude-haiku-4-5 (cheapest). Gemini: gemini-2.5-flash (cheapest, 1M context)`;
|
|
56
|
+
export const LLM_PROVIDERS_LIST = `anthropic, openai, gemini`;
|
|
57
|
+
export const OPENAI_TTS_VOICES_DOC = `alloy, ash, ballad, coral, echo, fable, nova, onyx, sage, shimmer, verse`;
|
|
58
|
+
export const TRANSCRIBE_PROVIDERS_DOC = `elevenlabs (default, Scribe v2), openai (GPT-4o Transcribe), gemini (Gemini 2.5 Flash — cheapest, multilingual)`;
|
|
59
|
+
export const TTS_PROVIDERS_LIST = `elevenlabs, openai, gemini`;
|
|
60
|
+
export const TTS_PROVIDER_DESCRIPTIONS = {
|
|
61
|
+
'elevenlabs': `ElevenLabs (many voices — use voice_set list to discover)`,
|
|
62
|
+
'openai': `OpenAI (alloy, ash, ballad, coral, echo, fable, nova, onyx, sage, shimmer, verse)`,
|
|
63
|
+
'gemini': `Gemini (30 voices: Kore, Puck, Zephyr, Charon, Fenrir, Leda, Orus, Aoede, and 22 more). Multi-speaker (up to 2) and 60+ languages`,
|
|
64
|
+
};
|
|
65
|
+
export const VIDEO_ASPECT_RATIOS = `16:9 (landscape), 9:16 (portrait), 1:1 (square)`;
|
|
66
|
+
export const VIDEO_MODELS_DOC = `veo-3.1-generate-preview (best quality, ~$0.40/sec), veo-3.1-fast-generate-preview (faster, ~$0.15/sec), veo-3.1-lite-generate-preview (budget, ~$0.07/sec)`;
|
|
67
|
+
export const VIDEO_MODELS_LIST = `veo-3.1-generate-preview, veo-3.1-fast-generate-preview, veo-3.1-lite-generate-preview`;
|
|
68
|
+
export const VIDEO_RESOLUTIONS = `720p, 1080p, 4k`;
|
|
69
|
+
//# sourceMappingURL=provider-docs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-docs.js","sourceRoot":"","sources":["../src/provider-docs.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,2MAA2M,CAAC;AAEjP,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,YAAY;IACZ,SAAS;IACT,WAAW;IACX,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,YAAY;IACZ,WAAW;IACX,UAAU;IACV,SAAS;IACT,SAAS;IACT,QAAQ;IACR,aAAa;IACb,QAAQ;IACR,eAAe;IACf,cAAc;IACd,WAAW;IACX,YAAY;IACZ,SAAS;CACD,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAG,0RAA0R,CAAC;AAEhU,MAAM,CAAC,MAAM,uBAAuB,GAAG,oEAAoE,CAAC;AAE5G,MAAM,CAAC,MAAM,0BAA0B,GAAG,qDAAqD,CAAC;AAEhG,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAEpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,+KAA+K,CAAC;AAEhN,MAAM,CAAC,MAAM,sBAAsB,GAAG;;iHAE2E,CAAC;AAElH,MAAM,CAAC,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAE1D,MAAM,CAAC,MAAM,2BAA2B,GAA2B;IACjE,QAAQ,EAAE,gCAAgC;IAC1C,KAAK,EAAE,0DAA0D;IACjE,QAAQ,EAAE,yGAAyG;CACpH,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,wHAAwH,CAAC;AAE/J,MAAM,CAAC,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AAE9D,MAAM,CAAC,MAAM,qBAAqB,GAAG,0EAA0E,CAAC;AAEhH,MAAM,CAAC,MAAM,wBAAwB,GAAG,iHAAiH,CAAC;AAE1J,MAAM,CAAC,MAAM,kBAAkB,GAAG,4BAA4B,CAAC;AAE/D,MAAM,CAAC,MAAM,yBAAyB,GAA2B;IAC/D,YAAY,EAAE,2DAA2D;IACzE,QAAQ,EAAE,mFAAmF;IAC7F,QAAQ,EAAE,mIAAmI;CAC9I,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,iDAAiD,CAAC;AAErF,MAAM,CAAC,MAAM,gBAAgB,GAAG,6JAA6J,CAAC;AAE9L,MAAM,CAAC,MAAM,iBAAiB,GAAG,wFAAwF,CAAC;AAE1H,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC"}
|
package/dist/setup.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const SKILLS_CONTENT = "# Gipity Integration\n\nMost AI tools give you a chatbot. We gave ours a computer. Gipity is an AI agent with 90+ tools and a full cloud platform \u2014 app hosting, databases, file storage, deployment, workflows, code execution, and more. Use it standalone or plug it into Claude Code to give your local agent cloud superpowers.\n\n**You are the developer.** Write HTML, JS, CSS, Python \u2014 whatever the project needs \u2014 directly in this directory. Files auto-sync to Gipity's cloud via hooks. There is no local runtime; do NOT run `npm install`, `npm start`, `node`, or `python` locally.\n\n## Workflow\n\n1. Write and edit files normally (auto-pushed to Gipity on every save)\n2. `gipity deploy dev` \u2192 get a live URL instantly\n3. `curl <url>` or WebFetch to verify\n4. `gipity deploy prod` when ready\n\n## CLI Commands\n\n| Command | Purpose |\n|---------|---------|\n| `gipity scaffold [title]` | Create app structure (`--type web` default, or `--type 3d-world` for 3D games) |\n| `gipity deploy [dev\\|prod]` | Deploy and get live URL |\n| `gipity sync [up\\|down\\|check]` | Manual file sync |\n| `gipity db create <name>` | Create a project database |\n| `gipity db query \"SQL\"` | Run SQL on project database |\n| `gipity db list` | List databases |\n| `gipity memory list\\|read\\|write` | Persistent key-value memory |\n| `gipity api list\\|define\\|get` | Manage backend API procedures |\n| `gipity checkpoint list` | List file snapshots |\n| `gipity checkpoint restore <id>` | Restore files to a snapshot (undo) |\n| `gipity logs fn <name>` | View function execution logs (errors, timing) |\n| `gipity browser <url>` | Inspect a URL: console errors, timing, failed resources |\n| `gipity status` | Check project and sync status |\n\nAll commands support `--json` for structured output.\n\n## Processing & Code Execution\n\nDo NOT install tools or run heavy processing locally. Gipity has a cloud sandbox accessible via `gipity chat` with extensive tools pre-installed:\n\n- **Image/video**: ImageMagick, FFmpeg, Graphviz, gnuplot, optipng, gifsicle, potrace, webp, exiftool, mediainfo\n- **Documents**: LibreOffice (headless), pandoc, wkhtmltopdf, ghostscript, qpdf, poppler-utils\n- **Python**: pandas, numpy, matplotlib, scipy, sympy, pillow, openpyxl, python-docx, python-pptx, reportlab, cairosvg, seaborn, qrcode, requests, bs4, Jinja2, faker\n- **Audio**: sox, FFmpeg\n- **Data**: jq, sqlite3, csvkit, datamash, miller, xmlstarlet\n- **Compile**: GCC/G++, mingw-w64 (Windows cross-compile)\n\nUse `gipity chat` to have the platform do it. Example: `gipity chat \"resize all images in src/images to 800px wide\"`\n\n## File Operations\n\nAll file creation and editing should happen locally \u2014 hooks auto-push changes to Gipity. Do NOT use `gipity chat` to create or edit files. Use `gipity sync` if files get out of sync. Use `gipity file ls` and `gipity file cat` to browse remote files without syncing.\n\n## Platform Services\n\nCapabilities beyond local file editing \u2014 use `gipity chat` (CLI) or the built-in tools (web agent):\n\n- **Image generation**: OpenAI (gpt-image-1, DALL-E 3) and BFL/Flux\n- **Speech / TTS**: ElevenLabs and OpenAI voices (streaming and batch)\n- **Sound effects / Music**: ElevenLabs audio generation\n- **Audio processing**: Transcription, source isolation\n- **Web search**: Brave API\n- **Twitter/X search**: v2 API, last 7 days\n- **Browser automation**: Open URLs, screenshot, click, fill forms, read console\n- **Workflow automation**: Cron-scheduled or webhook-triggered multi-step AI pipelines\n- **Email**: SendGrid transactional email\n- **Google services**: Gmail, Google Calendar integration\n- **External services**: Slack, GitHub, Todoist, Notion via service connectors\n- **Cross-model queries**: Ask GPT-5, Claude, etc. for second opinions\n- **Serverless functions**: JavaScript functions callable via REST\n\nUse `gipity chat` to access these from the CLI. Example: `gipity chat \"generate a hero image for the landing page\"`\n\n## 3D World\n\n**3D World** is the 3D multiplayer game template on Gipity. All 3D World games share the same visual style, physics engine (Rapier), and multiplayer backend (Colyseus). The template is locked \u2014 creators only write game logic.\n\nScaffold a 3D World project with `app_scaffold type=3d-world` (web agent) or `gipity scaffold --type 3d-world` (CLI). This creates a playable 3D game with Three.js + Rapier physics + Colyseus multiplayer. The `src/template/` directory is READ-ONLY (locked engine). Editable files: `config.js` (metadata), `settings.js` (tunable values), `strings.js` (display text), `objects.js` (entity factories), `game.js` (orchestrator).\n\n**Genres:** obby/parkour, tycoon, simulator, PvP combat, shooter, tower defense, horror, racing, RPG, social.\n\nRegular game requests (\"make a wordle\", \"build a quiz\") should use the standard web scaffold \u2014 they don't need the 3D template.\n\n## File Structure\n- **Use src/ convention**: All app files live under `src/` \u2014 `src/index.html`, `src/css/styles.css`, `src/js/main.js`, `src/images/`\n- **Separate files**: Split into `index.html`, `styles.css`, and `app.js` (or `main.js`). Never inline large blocks of CSS or JS in HTML.\n- If the app grows, organize into folders: `src/css/`, `src/js/`, `src/assets/`, `src/sounds/`, `src/images/`, etc.\n- **Use subfolders \u2014 don't flatten**: Reference assets from their folders (e.g. `sounds/click.ogg`, `images/logo.png`). Never copy files to the root just for convenience \u2014 deployed apps serve the full directory tree.\n- Keep `index.html` clean \u2014 it should be structure/markup, not behavior or styling\n\n## HTML\n- Use semantic elements: `<header>`, `<nav>`, `<main>`, `<section>`, `<footer>`, `<article>`\n- Always include `<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">`\n- Add a proper `<title>` and favicon link\n- Unless the user specifies a different CSS framework, include Water.css for automatic styling: `<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/water.css@2/out/water.css\">`\n- Water.css styles semantic HTML automatically (buttons, tables, forms, nav, cards) \u2014 no classes needed. It supports dark/light themes automatically. Add custom CSS on top for app-specific tweaks.\n\n## CSS\n- When using Water.css, it handles base styling, resets, and typography \u2014 don't duplicate what it provides\n- Water.css exposes CSS variables for theming \u2014 override them in `:root` for custom colors/fonts\n- Use CSS custom properties (variables) for app-specific colors, spacing, and fonts\n- Add smooth transitions on interactive elements (buttons, links, hover states)\n\n## JavaScript\n- Use `const`/`let`, arrow functions, template literals, and modern ES6+ syntax\n- Wait for DOM: wrap in `DOMContentLoaded` or place script at end of body\n- Keep functions small and focused\n- Use `addEventListener` \u2014 never inline `onclick` attributes in HTML\n\n## Code Quality\n- **Keep files under ~400 lines** unless the content genuinely requires it (e.g. a long data table, template string, or config object). When logic grows beyond that, split into focused modules (e.g. `utils.js`, `api.js`, `ui.js`).\n- **Don't duplicate code.** If the same logic appears twice, extract it into a shared function. Before writing a new helper, check if one already exists or could be extended.\n- **One responsibility per file.** A file that handles both UI rendering and API calls should be split.\n- **Name things clearly.** Functions, variables, and files should describe what they do \u2014 no `temp`, `data2`, `stuff.js`.\n- **Prefer simple, readable code** over clever code that hides bugs. Flat over nested \u2014 use early returns, avoid deep nesting.\n- **Centralize configuration.** App settings, API URLs, feature flags, and magic numbers should live in a dedicated config file (e.g. `config.js` or `constants.js`), not scattered across the codebase.\n- **Write utility functions** for repeated operations (formatting, validation, API calls). Keep them in a `utils.js` or `helpers.js` file. Small, pure functions are easy to test and reuse.\n\n## Testing\n- **Write tests for new functions** \u2014 especially utility/helper functions. Cover the happy path and edge cases (empty input, null, boundary values).\n- **Don't mock unless absolutely required.** Tests should exercise real code paths. Only mock external paid services (APIs that cost money per call).\n- **E2E tests should hit real infrastructure** (real API, real DB) \u2014 just clean up test data when done.\n- **Test file naming**: `*.test.js` for unit tests, `*.e2e.test.js` for end-to-end tests.\n\n## Deployment\n- **src/ detection**: If a `src/` directory exists, only `src/` is deployed. Otherwise the full project root is deployed.\n\n## Authentication\n\nLogin is a two-step process that works non-interactively:\n\n1. `gipity login --email user@example.com` \u2192 sends a 6-digit code to that email\n2. Ask the user for the code, then: `gipity login --email user@example.com --code 123456`\n\nCheck auth status: `gipity status`\nLog out: `gipity logout`\n\n## Sync Behavior\n\n- **Auto-push**: Files push to Gipity after every Write/Edit (hook)\n- **Auto-pull**: Remote changes pull before each prompt (hook)\n- **Manual**: `gipity sync check` to see pending changes\n- **Deletes are safe**: All file deletions are soft deletes. Use `gipity checkpoint list` and `gipity checkpoint restore <id>` to undo any delete or revert to a previous state.\n\n## Debugging\n\n- `gipity browser <url>` \u2014 open a deployed URL and get JS console errors, failed resources (404s), and page load timing. Useful when something looks broken after deploy.\n- `gipity logs fn <name>` \u2014 view recent function execution logs with error messages and timing. Use when API calls return errors.\n- `gipity sync check` \u2014 verify local and remote files are in sync if things seem stale.\n- `gipity checkpoint restore <id>` \u2014 undo a bad change by restoring to a previous file snapshot.\n";
|
|
1
|
+
export declare const SKILLS_CONTENT = "# Gipity Integration\n\nMost AI tools give you a chatbot. We gave ours a computer. Gipity is an AI agent with 90+ tools and a full cloud platform \u2014 app hosting, databases, file storage, deployment, workflows, code execution, and more. Use it standalone or plug it into Claude Code to give your local agent cloud superpowers.\n\n**You are the developer.** Write HTML, JS, CSS, Python \u2014 whatever the project needs \u2014 directly in this directory. Files auto-sync to Gipity's cloud via hooks. There is no local runtime; do NOT run `npm install`, `npm start`, `node`, or `python` locally.\n\n## Workflow\n\n1. Write and edit files normally (auto-pushed to Gipity on every save)\n2. `gipity deploy dev` \u2192 get a live URL instantly\n3. `curl <url>` or WebFetch to verify\n4. `gipity deploy prod` when ready\n\n## CLI Commands\n\n| Command | Purpose |\n|---------|---------|\n| `gipity scaffold [title]` | Create app structure (`--type web` default, or `--type 3d-world` for 3D games) |\n| `gipity deploy [dev\\|prod]` | Deploy and get live URL |\n| `gipity sync [up\\|down\\|check]` | Manual file sync |\n| `gipity db create <name>` | Create a project database |\n| `gipity db query \"SQL\"` | Run SQL on project database |\n| `gipity db list` | List databases |\n| `gipity memory list\\|read\\|write` | Persistent key-value memory |\n| `gipity api list\\|define\\|get` | Manage backend API procedures |\n| `gipity checkpoint list` | List file snapshots |\n| `gipity checkpoint restore <id>` | Restore files to a snapshot (undo) |\n| `gipity logs fn <name>` | View function execution logs (errors, timing) |\n| `gipity browser <url>` | Inspect a URL: console errors, timing, failed resources |\n| `gipity status` | Check project and sync status |\n\nAll commands support `--json` for structured output.\n\n## Processing & Code Execution\n\nDo NOT install tools or run heavy processing locally. Gipity has a cloud sandbox accessible via `gipity chat` with extensive tools pre-installed:\n\n- **Image/video**: ImageMagick, FFmpeg, Graphviz, gnuplot, optipng, gifsicle, potrace, webp, exiftool, mediainfo\n- **Documents**: LibreOffice (headless), pandoc, wkhtmltopdf, ghostscript, qpdf, poppler-utils\n- **Python**: pandas, numpy, matplotlib, scipy, sympy, pillow, openpyxl, python-docx, python-pptx, reportlab, cairosvg, seaborn, qrcode, requests, bs4, Jinja2, faker\n- **Audio**: sox, FFmpeg\n- **Data**: jq, sqlite3, csvkit, datamash, miller, xmlstarlet\n- **Compile**: GCC/G++, mingw-w64 (Windows cross-compile)\n\nUse `gipity chat` to have the platform do it. Example: `gipity chat \"resize all images in src/images to 800px wide\"`\n\n## File Operations\n\nAll file creation and editing should happen locally \u2014 hooks auto-push changes to Gipity. Do NOT use `gipity chat` to create or edit files. Use `gipity sync` if files get out of sync. Use `gipity file ls` and `gipity file cat` to browse remote files without syncing.\n\n## Platform Services\n\nCapabilities beyond local file editing \u2014 use `gipity chat` (CLI) or the built-in tools (web agent):\n\n- **Image generation**: OpenAI (gpt-image-1, DALL-E 3) and BFL/Flux\n- **Speech / TTS**: ElevenLabs and OpenAI voices (streaming and batch)\n- **Sound effects / Music**: ElevenLabs audio generation\n- **Audio processing**: Transcription, source isolation\n- **Web search**: Brave API\n- **Twitter/X search**: v2 API, last 7 days\n- **Browser automation**: Open URLs, screenshot, click, fill forms, read console\n- **Workflow automation**: Cron-scheduled or webhook-triggered multi-step AI pipelines\n- **Email**: SendGrid transactional email\n- **Google services**: Gmail, Google Calendar integration\n- **External services**: Slack, GitHub, Todoist, Notion via service connectors\n- **Cross-model queries**: Ask GPT-5, Claude, etc. for second opinions\n- **Serverless functions**: JavaScript functions callable via REST\n\nUse `gipity chat` to access these from the CLI. Example: `gipity chat \"generate a hero image for the landing page\"`\n\n## 3D World\n\n**3D World** is the 3D multiplayer game template on Gipity. All 3D World games share the same visual style, physics engine (Rapier), and multiplayer backend (Colyseus). The template is locked \u2014 creators only write game logic.\n\nScaffold a 3D World project with `app_scaffold type=3d-world` (web agent) or `gipity scaffold --type 3d-world` (CLI). This creates a playable 3D game with Three.js + Rapier physics + Colyseus multiplayer. The `src/template/` directory is READ-ONLY (locked engine). Editable files: `config.js` (metadata), `settings.js` (tunable values), `strings.js` (display text), `objects.js` (entity factories), `game.js` (orchestrator).\n\n**Genres:** obby/parkour, tycoon, simulator, PvP combat, shooter, tower defense, horror, racing, RPG, social.\n\n**Features:** Opt-in gameplay modules enabled via `config.features`. Available: `rocket-launcher` (projectile weapon with physics explosions). Example: `features: { 'rocket-launcher': true }` in config.js. Features are template-level and auto-initialize during boot.\n\nRegular game requests (\"make a wordle\", \"build a quiz\") should use the standard web scaffold \u2014 they don't need the 3D template.\n\n## File Structure\n- **Use src/ convention**: All app files live under `src/` \u2014 `src/index.html`, `src/css/styles.css`, `src/js/main.js`, `src/images/`\n- **Separate files**: Split into `index.html`, `styles.css`, and `app.js` (or `main.js`). Never inline large blocks of CSS or JS in HTML.\n- If the app grows, organize into folders: `src/css/`, `src/js/`, `src/assets/`, `src/sounds/`, `src/images/`, etc.\n- **Use subfolders \u2014 don't flatten**: Reference assets from their folders (e.g. `sounds/click.ogg`, `images/logo.png`). Never copy files to the root just for convenience \u2014 deployed apps serve the full directory tree.\n- Keep `index.html` clean \u2014 it should be structure/markup, not behavior or styling\n\n## HTML\n- Use semantic elements: `<header>`, `<nav>`, `<main>`, `<section>`, `<footer>`, `<article>`\n- Always include `<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">`\n- Add a proper `<title>` and favicon link\n- Unless the user specifies a different CSS framework, include Water.css for automatic styling: `<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/water.css@2/out/water.css\">`\n- Water.css styles semantic HTML automatically (buttons, tables, forms, nav, cards) \u2014 no classes needed. It supports dark/light themes automatically. Add custom CSS on top for app-specific tweaks.\n\n## CSS\n- When using Water.css, it handles base styling, resets, and typography \u2014 don't duplicate what it provides\n- Water.css exposes CSS variables for theming \u2014 override them in `:root` for custom colors/fonts\n- Use CSS custom properties (variables) for app-specific colors, spacing, and fonts\n- Add smooth transitions on interactive elements (buttons, links, hover states)\n\n## JavaScript\n- Use `const`/`let`, arrow functions, template literals, and modern ES6+ syntax\n- Wait for DOM: wrap in `DOMContentLoaded` or place script at end of body\n- Keep functions small and focused\n- Use `addEventListener` \u2014 never inline `onclick` attributes in HTML\n\n## Code Quality\n- **Keep files under ~400 lines** unless the content genuinely requires it (e.g. a long data table, template string, or config object). When logic grows beyond that, split into focused modules (e.g. `utils.js`, `api.js`, `ui.js`).\n- **Don't duplicate code.** If the same logic appears twice, extract it into a shared function. Before writing a new helper, check if one already exists or could be extended.\n- **One responsibility per file.** A file that handles both UI rendering and API calls should be split.\n- **Name things clearly.** Functions, variables, and files should describe what they do \u2014 no `temp`, `data2`, `stuff.js`.\n- **Prefer simple, readable code** over clever code that hides bugs. Flat over nested \u2014 use early returns, avoid deep nesting.\n- **Centralize configuration.** App settings, API URLs, feature flags, and magic numbers should live in a dedicated config file (e.g. `config.js` or `constants.js`), not scattered across the codebase.\n- **Write utility functions** for repeated operations (formatting, validation, API calls). Keep them in a `utils.js` or `helpers.js` file. Small, pure functions are easy to test and reuse.\n\n## Testing\n- **Write tests for new functions** \u2014 especially utility/helper functions. Cover the happy path and edge cases (empty input, null, boundary values).\n- **Don't mock unless absolutely required.** Tests should exercise real code paths. Only mock external paid services (APIs that cost money per call).\n- **E2E tests should hit real infrastructure** (real API, real DB) \u2014 just clean up test data when done.\n- **Test file naming**: `*.test.js` for unit tests, `*.e2e.test.js` for end-to-end tests.\n\n## Deployment\n- **src/ detection**: If a `src/` directory exists, only `src/` is deployed. Otherwise the full project root is deployed.\n\n## Authentication\n\nLogin is a two-step process that works non-interactively:\n\n1. `gipity login --email user@example.com` \u2192 sends a 6-digit code to that email\n2. Ask the user for the code, then: `gipity login --email user@example.com --code 123456`\n\nCheck auth status: `gipity status`\nLog out: `gipity logout`\n\n## Sync Behavior\n\n- **Auto-push**: Files push to Gipity after every Write/Edit (hook)\n- **Auto-pull**: Remote changes pull before each prompt (hook)\n- **Manual**: `gipity sync check` to see pending changes\n- **Deletes are safe**: All file deletions are soft deletes. Use `gipity checkpoint list` and `gipity checkpoint restore <id>` to undo any delete or revert to a previous state.\n\n## Debugging\n\n- `gipity browser <url>` \u2014 open a deployed URL and get JS console errors, failed resources (404s), and page load timing. Useful when something looks broken after deploy.\n- `gipity logs fn <name>` \u2014 view recent function execution logs with error messages and timing. Use when API calls return errors.\n- `gipity sync check` \u2014 verify local and remote files are in sync if things seem stale.\n- `gipity checkpoint restore <id>` \u2014 undo a bad change by restoring to a previous file snapshot.\n";
|
|
2
2
|
export declare const HOOKS_SETTINGS: {
|
|
3
3
|
hooks: {
|
|
4
4
|
PostToolUse: {
|