gipity 1.0.48 → 1.0.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,16 +1,34 @@
1
1
  # Gipity CLI
2
2
 
3
- Connect AI coding agents to the Gipity platform. Built for [Claude Code](https://claude.ai/claude-code) and works great from your terminal too.
3
+ Most AI tools give you a chatbot. We gave ours a computer.
4
4
 
5
- Gipity gives your AI agent a persistent workspace with file storage, databases, code execution, deployment, memory, workflows, and more. This CLI is the bridge.
5
+ [Gipity](https://gipity.ai) is an AI agent with 90+ tools and a full cloud platform 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.
6
6
 
7
- ## Install
7
+ This CLI connects [Claude Code](https://claude.ai/claude-code) to Gipity's cloud platform — databases, deployment, browser testing, image gen, and 50+ other capabilities your local agent doesn't have. It also syncs files so Claude Code and the Gipity web agent share the same project.
8
+
9
+ ## Getting Started
10
+
11
+ You need **Node.js 18+** (which includes npm) and **Claude Code**.
8
12
 
9
13
  ```bash
10
- npm install -g @gipity/cli
14
+ # 1. Install Node.js (if you don't have it)
15
+
16
+ # macOS
17
+ brew install node
18
+
19
+ # Windows — download the installer from https://nodejs.org
20
+
21
+ # Linux (Ubuntu/Debian)
22
+ curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && sudo apt install -y nodejs
23
+
24
+ # 2. Install Gipity CLI and Claude Code
25
+ npm install -g gipity @anthropic-ai/claude-code
26
+
27
+ # 3. Go
28
+ gipity start-cc
11
29
  ```
12
30
 
13
- Requires Node 18+.
31
+ That's it. `start-cc` walks you through login, project setup, and launches Claude Code.
14
32
 
15
33
  ## Quick Start
16
34
 
@@ -109,7 +127,7 @@ gipity sync down # Pull remote changes
109
127
  | `gipity agent` | List, create, switch, or configure agents |
110
128
  | `gipity workflow` | Manage and trigger automated workflows |
111
129
  | `gipity file` | Browse remote files (ls, cat, tree) |
112
- | `gipity scaffold [title]` | Create web app structure (HTML, CSS, JS, favicons) |
130
+ | `gipity scaffold [title]` | Create app structure (`--type web` or `--type 3d-world`) |
113
131
  | `gipity checkpoint` | List or restore file snapshots (undo) |
114
132
  | `gipity logs fn <name>` | View function execution logs |
115
133
  | `gipity browser <url>` | Inspect a URL: console errors, performance, failed resources |
@@ -46,8 +46,8 @@ checkpointCommand
46
46
  const res = await post(`/projects/${config.projectGuid}/checkpoints/restore`, {
47
47
  checkpoint_guid: guid,
48
48
  });
49
- // Sync down restored files
50
- const syncResult = await syncDown();
49
+ // Sync down restored files (confirm deletions — restore may remove files)
50
+ const syncResult = await syncDown({ confirmDeletions: true });
51
51
  if (opts.json) {
52
52
  console.log(JSON.stringify({ ...res.data, synced: syncResult.pulled }));
53
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../src/commands/checkpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../src/commands/checkpoint.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { Command } from 'commander';
2
2
  import { post } from '../api.js';
3
3
  import { requireConfig } from '../config.js';
4
4
  import { syncUp } from '../sync.js';
5
+ import { formatSize } from '../utils.js';
5
6
  export const deployCommand = new Command('deploy')
6
7
  .description('Deploy project to dev or prod')
7
8
  .argument('[target]', 'dev or prod', 'dev')
@@ -37,7 +38,12 @@ export const deployCommand = new Command('deploy')
37
38
  console.log(res.data.warning);
38
39
  }
39
40
  else {
40
- console.log(`${res.data.url} (${res.data.fileCount} files)`);
41
+ const d = res.data;
42
+ const size = formatSize(d.totalBytes);
43
+ const parts = [`${d.fileCount} files`, size, `${d.elapsedMs}ms`];
44
+ if (d.frameworkVersion)
45
+ parts.push(`fw v${d.frameworkVersion}`);
46
+ console.log(`${d.url} (${parts.join(', ')})`);
41
47
  }
42
48
  }
43
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.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,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,+BAA+B,CAAC;KAC5C,QAAQ,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,CAAC;KAC1C,MAAM,CAAC,oBAAoB,EAAE,iCAAiC,CAAC;KAC/D,MAAM,CAAC,WAAW,EAAE,4BAA4B,CAAC;KACjD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAAI,EAAE,EAAE;IACrC,IAAI,CAAC;QACH,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAE/B,gBAAgB;QAChB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,MAAM,MAAM,EAAE,CAAC;YAClC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,UAAU,UAAU,CAAC,MAAM,QAAQ,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QAED,SAAS;QACT,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,KAAK,CAAC,CAAC;QAEzD,MAAM,GAAG,GAAG,MAAM,IAAI,CAEnB,aAAa,MAAM,CAAC,WAAW,SAAS,EAAE;YAC3C,MAAM;YACN,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,kBAAkB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { Command } from 'commander';
2
2
  import { basename } from 'path';
3
3
  import { get, post } from '../api.js';
4
4
  import { saveConfig, getConfig } from '../config.js';
5
- import { syncDown } from '../sync.js';
5
+ import { syncDown, syncUp } from '../sync.js';
6
6
  import { getAuth } from '../auth.js';
7
7
  import { slugify, setupClaudeHooks, setupClaudeMd, setupGitignore } from '../setup.js';
8
8
  export const initCommand = new Command('init')
@@ -85,10 +85,14 @@ export const initCommand = new Command('init')
85
85
  apiBase: opts.apiBase,
86
86
  ignore: ['node_modules', '.git', '.gipity.json', '.gipity/', '.claude/', '.gitignore', 'CLAUDE.md', '*.log'],
87
87
  });
88
- // 2. Pull existing files
89
- const result = await syncDown();
90
- if (result.pulled > 0) {
91
- console.log(`Pulled ${result.pulled} file${result.pulled > 1 ? 's' : ''}.`);
88
+ // 2. Sync: push local files up first, then pull any remote-only files down
89
+ const upResult = await syncUp();
90
+ if (upResult.pushed > 0) {
91
+ console.log(`Pushed ${upResult.pushed} file${upResult.pushed > 1 ? 's' : ''} to Gipity.`);
92
+ }
93
+ const downResult = await syncDown({ confirmDeletions: true });
94
+ if (downResult.pulled > 0) {
95
+ console.log(`Pulled ${downResult.pulled} file${downResult.pulled > 1 ? 's' : ''}.`);
92
96
  }
93
97
  // 3. Write .claude/settings.json (CC hooks)
94
98
  setupClaudeHooks();
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,9 @@ import { post } from '../api.js';
3
3
  import { requireConfig } from '../config.js';
4
4
  import { syncDown } from '../sync.js';
5
5
  export const scaffoldCommand = new Command('scaffold')
6
- .description('Create web app structure (src/ with HTML, CSS, JS, favicons)')
6
+ .description('Create app structure (src/ with HTML, CSS, JS, favicons)')
7
7
  .argument('[title]', 'App title (defaults to project name)')
8
+ .option('--type <type>', 'Project type: web (default) or 3d-world')
8
9
  .option('--description <desc>', 'App description for meta tags')
9
10
  .option('--json', 'Output as JSON')
10
11
  .action(async (title, opts) => {
@@ -14,6 +15,7 @@ export const scaffoldCommand = new Command('scaffold')
14
15
  const res = await post(`/projects/${config.projectGuid}/scaffold`, {
15
16
  title: appTitle,
16
17
  description: opts.description,
18
+ type: opts.type,
17
19
  });
18
20
  // Sync down the created files
19
21
  const syncResult = await syncDown();
@@ -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,8DAA8D,CAAC;KAC3E,QAAQ,CAAC,SAAS,EAAE,sCAAsC,CAAC;KAC3D,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;SAC9B,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"}
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,MAAM,CAAC,eAAe,EAAE,yCAAyC,CAAC;KAClE,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"}
@@ -6,7 +6,7 @@ import { homedir } from 'os';
6
6
  import { getAuth, saveAuth } from '../auth.js';
7
7
  import { get, post, publicPost } from '../api.js';
8
8
  import { getConfig, saveConfig, clearConfigCache } from '../config.js';
9
- import { syncDown } from '../sync.js';
9
+ import { syncDown, syncUp } from '../sync.js';
10
10
  import { slugify, setupClaudeHooks, setupClaudeMd, setupGitignore } from '../setup.js';
11
11
  import { prompt, decodeJwtExp } from '../utils.js';
12
12
  const PROJECTS_ROOT = join(homedir(), 'GipityProjects');
@@ -63,6 +63,7 @@ export const startCcCommand = new Command('start-cc')
63
63
  }
64
64
  console.log('');
65
65
  // ── Step 2: Project ───────────────────────────────────────────────
66
+ let initialPrompt = '';
66
67
  // If cwd already has .gipity.json, use it (user ran from inside a project)
67
68
  const existing = getConfig();
68
69
  if (existing) {
@@ -84,11 +85,15 @@ export const startCcCommand = new Command('start-cc')
84
85
  }
85
86
  const existingSlugs = projects.map(p => p.slug);
86
87
  let project;
88
+ let isNewProject = false;
87
89
  if (projects.length > 0) {
88
- project = await pickOrCreateProject(projects, existingSlugs);
90
+ const result = await pickOrCreateProject(projects, existingSlugs);
91
+ project = result.project;
92
+ isNewProject = result.isNew;
89
93
  }
90
94
  else {
91
95
  project = await createNewProject(existingSlugs);
96
+ isNewProject = true;
92
97
  }
93
98
  // Resolve project directory under ~/GipityProjects/{slug}
94
99
  const projectDir = join(PROJECTS_ROOT, project.slug);
@@ -117,16 +122,41 @@ export const startCcCommand = new Command('start-cc')
117
122
  ignore: ['node_modules', '.git', '.gipity.json', '.gipity/', '.claude/', '.gitignore', 'CLAUDE.md', '*.log'],
118
123
  });
119
124
  console.log(`\n Using ${projectDir}`);
120
- // Sync down remote files (non-fatal project is set up either way)
125
+ // Sync: push local files up first, then pull any remote-only files down (non-fatal)
121
126
  try {
122
- const result = await syncDown();
123
- if (result.pulled > 0) {
124
- console.log(` Pulled ${result.pulled} file${result.pulled > 1 ? 's' : ''} from Gipity.`);
127
+ const upResult = await syncUp();
128
+ if (upResult.pushed > 0) {
129
+ console.log(` Pushed ${upResult.pushed} file${upResult.pushed > 1 ? 's' : ''} to Gipity.`);
130
+ }
131
+ const downResult = await syncDown({ confirmDeletions: true });
132
+ if (downResult.pulled > 0) {
133
+ console.log(` Pulled ${downResult.pulled} file${downResult.pulled > 1 ? 's' : ''} from Gipity.`);
125
134
  }
126
135
  }
127
136
  catch {
128
137
  console.log(' Could not sync files (will retry on next prompt).');
129
138
  }
139
+ // ── Step 2b: Project type (new projects only) ───────────────────
140
+ if (isNewProject) {
141
+ const projectType = await pickProjectType();
142
+ initialPrompt = projectType.initialPrompt;
143
+ if (projectType.scaffoldType) {
144
+ console.log(` Scaffolding ${projectType.label}...`);
145
+ try {
146
+ await post(`/projects/${project.short_guid}/scaffold`, {
147
+ title: project.name,
148
+ type: projectType.scaffoldType,
149
+ });
150
+ const scaffoldSync = await syncDown();
151
+ if (scaffoldSync.pulled > 0) {
152
+ console.log(` Created ${scaffoldSync.pulled} starter file${scaffoldSync.pulled > 1 ? 's' : ''}.`);
153
+ }
154
+ }
155
+ catch {
156
+ console.log(' Scaffolding failed — starting with empty project.');
157
+ }
158
+ }
159
+ }
130
160
  setupClaudeHooks();
131
161
  setupClaudeMd();
132
162
  setupGitignore();
@@ -139,7 +169,8 @@ export const startCcCommand = new Command('start-cc')
139
169
  }
140
170
  // Check claude is installed
141
171
  try {
142
- execSync('which claude', { stdio: 'ignore' });
172
+ const checkCmd = process.platform === 'win32' ? 'where claude' : 'which claude';
173
+ execSync(checkCmd, { stdio: 'ignore' });
143
174
  }
144
175
  catch {
145
176
  console.log(' Claude Code not found. Install it: npm install -g @anthropic-ai/claude-code');
@@ -165,7 +196,12 @@ export const startCcCommand = new Command('start-cc')
165
196
  claudeArgs.splice(valueIdx, 1);
166
197
  }
167
198
  console.log(' Launching Claude Code...\n');
168
- const child = spawn('claude', claudeArgs, { stdio: 'inherit', cwd: process.cwd() });
199
+ const allArgs = initialPrompt ? [initialPrompt, ...claudeArgs] : claudeArgs;
200
+ const child = spawn('claude', allArgs, {
201
+ stdio: 'inherit',
202
+ cwd: process.cwd(),
203
+ shell: process.platform === 'win32',
204
+ });
169
205
  child.on('exit', (code) => process.exit(code ?? 0));
170
206
  }
171
207
  catch (err) {
@@ -181,8 +217,8 @@ async function pickOrCreateProject(projects, existingSlugs) {
181
217
  const choice = await prompt(` Choose (1-${projects.length + 1}): `);
182
218
  const idx = parseInt(choice, 10);
183
219
  if (idx >= 1 && idx <= projects.length)
184
- return projects[idx - 1];
185
- return createNewProject(existingSlugs);
220
+ return { project: projects[idx - 1], isNew: false };
221
+ return { project: await createNewProject(existingSlugs), isNew: true };
186
222
  }
187
223
  async function createNewProject(existingSlugs) {
188
224
  const suggested = suggestProjectName(existingSlugs);
@@ -198,4 +234,36 @@ async function createNewProject(existingSlugs) {
198
234
  console.log(' Created.');
199
235
  return res.data;
200
236
  }
237
+ const PROJECT_TYPE_OPTIONS = [
238
+ {
239
+ label: 'Web app',
240
+ scaffoldType: 'web',
241
+ initialPrompt: 'This is a new web app project on Gipity. It\'s been scaffolded with starter HTML/CSS/JS. Deploy it to dev so I can see it live. Then briefly introduce yourself — mention that I have access to databases, server-side API endpoints, image generation, web search, and cloud hosting — and ask me what I want to build.',
242
+ },
243
+ {
244
+ label: '3D World game',
245
+ scaffoldType: '3d-world',
246
+ initialPrompt: 'This is a new 3D World game on Gipity. Deploy it to dev so I can play it right away. Then briefly introduce yourself — mention that I can customize the world, objects, physics, game logic, and multiplayer — and ask me what kind of game I want to make.',
247
+ },
248
+ {
249
+ label: 'Start empty',
250
+ initialPrompt: 'This is a new empty project on Gipity. Briefly introduce yourself — mention that I have access to cloud hosting, databases, server-side API endpoints, sandboxed code execution, image generation, speech, and web search — and ask me what I want to build.',
251
+ },
252
+ ];
253
+ async function pickProjectType() {
254
+ console.log('');
255
+ console.log(' What kind of project?\n');
256
+ console.log(' 1. Web app');
257
+ console.log(' Website, dashboard, tool, or browser game — scaffolds HTML/CSS/JS starter files.\n');
258
+ console.log(' 2. 3D World game');
259
+ console.log(' 3D multiplayer game with Three.js + Rapier physics — scaffolds a playable starter world.\n');
260
+ console.log(' 3. Start empty');
261
+ console.log(' No scaffolding. Begin with a blank project and build everything from scratch.\n');
262
+ const choice = await prompt(' Choose (1-3): ');
263
+ const idx = parseInt(choice, 10);
264
+ if (idx >= 1 && idx <= 3)
265
+ return PROJECT_TYPE_OPTIONS[idx - 1];
266
+ // Default to empty on invalid input
267
+ return PROJECT_TYPE_OPTIONS[2];
268
+ }
201
269
  //# sourceMappingURL=start-cc.js.map
@@ -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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"}
@@ -9,7 +9,7 @@ export const syncCommand = new Command('sync')
9
9
  let result;
10
10
  switch (direction) {
11
11
  case 'down':
12
- result = await syncDown();
12
+ result = await syncDown({ confirmDeletions: true });
13
13
  break;
14
14
  case 'up':
15
15
  result = await syncUp();
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,qCAAqC,CAAC;KAClD,QAAQ,CAAC,aAAa,EAAE,oBAAoB,EAAE,OAAO,CAAC;KACtD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAI,EAAE,EAAE;IACxC,IAAI,CAAC;QACH,IAAI,MAAM,CAAC;QAEX,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,MAAM;gBACT,MAAM,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC1B,MAAM;YACR,KAAK,IAAI;gBACP,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC;gBACxB,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;gBAC3B,MAAM;YACR;gBACE,OAAO,CAAC,KAAK,CAAC,sBAAsB,SAAS,2BAA2B,CAAC,CAAC;gBAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,MAAM,UAAU,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAChF,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,MAAM,UAAU,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAChF,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,qCAAqC,CAAC;KAClD,QAAQ,CAAC,aAAa,EAAE,oBAAoB,EAAE,OAAO,CAAC;KACtD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAI,EAAE,EAAE;IACxC,IAAI,CAAC;QACH,IAAI,MAAM,CAAC;QAEX,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,MAAM;gBACT,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpD,MAAM;YACR,KAAK,IAAI;gBACP,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC;gBACxB,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;gBAC3B,MAAM;YACR;gBACE,OAAO,CAAC,KAAK,CAAC,sBAAsB,SAAS,2BAA2B,CAAC,CAAC;gBAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,MAAM,UAAU,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAChF,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,MAAM,UAAU,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAChF,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Shared 3D World template description.
3
+ * Single source of truth used by:
4
+ * - server/src/services/skills/ (web agent skills)
5
+ * - cli/src/setup.ts (CLAUDE.md template for Claude Code)
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.";
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Shared 3D World template description.
3
+ * Single source of truth used by:
4
+ * - server/src/services/skills/ (web agent skills)
5
+ * - cli/src/setup.ts (CLAUDE.md template for Claude Code)
6
+ */
7
+ export const GIP_3DW_GUIDE = `## 3D World
8
+
9
+ **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 — creators only write game logic.
10
+
11
+ Scaffold 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).
12
+
13
+ **Genres:** obby/parkour, tycoon, simulator, PvP combat, shooter, tower defense, horror, racing, RPG, social.
14
+
15
+ Regular game requests ("make a wordle", "build a quiz") should use the standard web scaffold — they don't need the 3D template.`;
16
+ //# sourceMappingURL=gip3dw-guide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gip3dw-guide.js","sourceRoot":"","sources":["../src/gip3dw-guide.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;gIAQmG,CAAC"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/gipcc.js ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ // Shortcut: gipcc → gipity start-cc
3
+ process.argv = [process.argv[0], process.argv[1], 'start-cc', ...process.argv.slice(2)];
4
+ await import('./index.js');
5
+ export {};
6
+ //# sourceMappingURL=gipcc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gipcc.js","sourceRoot":"","sources":["../src/gipcc.ts"],"names":[],"mappings":";AACA,oCAAoC;AACpC,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxF,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/gipccd.js ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ // Shortcut: gipccd → gipity start-cc --dangerously-skip-permissions
3
+ process.argv = [process.argv[0], process.argv[1], 'start-cc', '--dangerously-skip-permissions', ...process.argv.slice(2)];
4
+ await import('./index.js');
5
+ export {};
6
+ //# sourceMappingURL=gipccd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gipccd.js","sourceRoot":"","sources":["../src/gipccd.ts"],"names":[],"mappings":";AACA,oEAAoE;AACpE,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,gCAAgC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1H,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC"}
package/dist/index.js CHANGED
File without changes
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Shared Gipity platform capability descriptions.
3
+ * Single source of truth used by:
4
+ * - server/src/services/skills/ (web agent skills)
5
+ * - tools/gipity-cli/src/setup.ts (CLAUDE.md template for Claude Code)
6
+ */
7
+ export declare const PLATFORM_SERVICES = "## 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";
8
+ export declare const CLI_COMMANDS = "## 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.";
9
+ export declare const DEPLOY_VERIFICATION = "## Deploy Verification\n\nUse the browser tool to verify deploys when it matters \u2014 first deploy, structural changes (new pages, new frameworks, changed imports), or when something might have broken. Skip verification for trivial changes (copy tweaks, style adjustments, config values).\n\nTo verify: `browser action=open url=<deployed-url>` \u2014 waits for async modules, captures console errors automatically. Check output for `[Console errors captured after page load]`. Use `browser action=screenshot` to confirm visual correctness.\n\n**Debugging in production:** Add `console.error()` calls to app code for diagnostics, redeploy, then use `browser action=console` to read the output. Remove debug logging when done.";
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Shared Gipity platform capability descriptions.
3
+ * Single source of truth used by:
4
+ * - server/src/services/skills/ (web agent skills)
5
+ * - tools/gipity-cli/src/setup.ts (CLAUDE.md template for Claude Code)
6
+ */
7
+ export const PLATFORM_SERVICES = `## Platform Services
8
+
9
+ Capabilities beyond local file editing — use \`gipity chat\` (CLI) or the built-in tools (web agent):
10
+
11
+ - **Image generation**: OpenAI (gpt-image-1, DALL-E 3) and BFL/Flux
12
+ - **Speech / TTS**: ElevenLabs and OpenAI voices (streaming and batch)
13
+ - **Sound effects / Music**: ElevenLabs audio generation
14
+ - **Audio processing**: Transcription, source isolation
15
+ - **Web search**: Brave API
16
+ - **Twitter/X search**: v2 API, last 7 days
17
+ - **Browser automation**: Open URLs, screenshot, click, fill forms, read console
18
+ - **Workflow automation**: Cron-scheduled or webhook-triggered multi-step AI pipelines
19
+ - **Email**: SendGrid transactional email
20
+ - **Google services**: Gmail, Google Calendar integration
21
+ - **External services**: Slack, GitHub, Todoist, Notion via service connectors
22
+ - **Cross-model queries**: Ask GPT-5, Claude, etc. for second opinions
23
+ - **Serverless functions**: JavaScript functions callable via REST`;
24
+ export const CLI_COMMANDS = `## CLI Commands
25
+
26
+ | Command | Purpose |
27
+ |---------|---------|
28
+ | \`gipity scaffold [title]\` | Create app structure (\`--type web\` default, or \`--type 3d-world\` for 3D games) |
29
+ | \`gipity deploy [dev\\|prod]\` | Deploy and get live URL |
30
+ | \`gipity sync [up\\|down\\|check]\` | Manual file sync |
31
+ | \`gipity db create <name>\` | Create a project database |
32
+ | \`gipity db query "SQL"\` | Run SQL on project database |
33
+ | \`gipity db list\` | List databases |
34
+ | \`gipity memory list\\|read\\|write\` | Persistent key-value memory |
35
+ | \`gipity api list\\|define\\|get\` | Manage backend API procedures |
36
+ | \`gipity checkpoint list\` | List file snapshots |
37
+ | \`gipity checkpoint restore <id>\` | Restore files to a snapshot (undo) |
38
+ | \`gipity logs fn <name>\` | View function execution logs (errors, timing) |
39
+ | \`gipity browser <url>\` | Inspect a URL: console errors, timing, failed resources |
40
+ | \`gipity status\` | Check project and sync status |
41
+
42
+ All commands support \`--json\` for structured output.`;
43
+ export const DEPLOY_VERIFICATION = `## Deploy Verification
44
+
45
+ Use the browser tool to verify deploys when it matters — first deploy, structural changes (new pages, new frameworks, changed imports), or when something might have broken. Skip verification for trivial changes (copy tweaks, style adjustments, config values).
46
+
47
+ To verify: \`browser action=open url=<deployed-url>\` — waits for async modules, captures console errors automatically. Check output for \`[Console errors captured after page load]\`. Use \`browser action=screenshot\` to confirm visual correctness.
48
+
49
+ **Debugging in production:** Add \`console.error()\` calls to app code for diagnostics, redeploy, then use \`browser action=console\` to read the output. Remove debug logging when done.`;
50
+ //# sourceMappingURL=platform-overview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-overview.js","sourceRoot":"","sources":["../src/platform-overview.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;mEAgBkC,CAAC;AAEpE,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;uDAkB2B,CAAC;AAExD,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;0LAMuJ,CAAC"}
package/dist/setup.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const SKILLS_CONTENT = "# Gipity Integration\n\nThis is a Gipity-powered project. Gipity gives every project its own cloud infrastructure \u2014 hosting, databases, file storage, deployment, sandboxed code execution, and a 64-tool AI agent \u2014 with zero setup. You write code here, it runs there.\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 web app structure (src/ with HTML, CSS, JS, favicons) |\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 (via `gipity chat`)\n\nSome Gipity capabilities require its hosted AI agent. Use `gipity chat` for things you cannot do directly. The response includes text output, which tools were used, and any files created are auto-synced locally. Add `--json` for structured output.\n\n- **Image generation**: `gipity chat \"generate a hero image for the landing page\"`\n- **Speech / TTS**: `gipity chat \"generate speech audio for this welcome message\"`\n- **Sound effects / Music**: `gipity chat \"generate a click sound effect\"`\n- **Web search**: `gipity chat \"search the web for current pricing of competitor X\"`\n- **Twitter/X search**: `gipity chat \"search twitter for mentions of our app\"`\n- **Browser interaction**: `gipity chat \"open our deployed app, click the login button, and screenshot the result\"`\n- **Workflow automation**: `gipity chat \"create a cron workflow that emails a daily summary\"`\n- **Email**: `gipity chat \"send a summary email to the team\"`\n- **LLM queries**: `gipity chat \"ask GPT-4 to review this code for security issues\"`\n\nDo NOT use `gipity chat` for writing code, creating files, or scaffolding \u2014 do that directly.\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\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: {
package/dist/setup.js CHANGED
@@ -4,9 +4,11 @@
4
4
  import { resolve, join } from 'path';
5
5
  import { existsSync, mkdirSync, writeFileSync, readFileSync } from 'fs';
6
6
  import { CODING_GUIDELINES } from './coding-guidelines.js';
7
+ import { GIP_3DW_GUIDE } from './gip3dw-guide.js';
8
+ import { CLI_COMMANDS, PLATFORM_SERVICES } from './platform-overview.js';
7
9
  export const SKILLS_CONTENT = `# Gipity Integration
8
10
 
9
- This is a Gipity-powered project. Gipity gives every project its own cloud infrastructure — hosting, databases, file storage, deployment, sandboxed code execution, and a 64-tool AI agent with zero setup. You write code here, it runs there.
11
+ Most AI tools give you a chatbot. We gave ours a computer. Gipity is an AI agent with 90+ tools and a full cloud platformapp 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.
10
12
 
11
13
  **You are the developer.** Write HTML, JS, CSS, Python — whatever the project needs — 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.
12
14
 
@@ -17,25 +19,7 @@ This is a Gipity-powered project. Gipity gives every project its own cloud infra
17
19
  3. \`curl <url>\` or WebFetch to verify
18
20
  4. \`gipity deploy prod\` when ready
19
21
 
20
- ## CLI Commands
21
-
22
- | Command | Purpose |
23
- |---------|---------|
24
- | \`gipity scaffold [title]\` | Create web app structure (src/ with HTML, CSS, JS, favicons) |
25
- | \`gipity deploy [dev\\|prod]\` | Deploy and get live URL |
26
- | \`gipity sync [up\\|down\\|check]\` | Manual file sync |
27
- | \`gipity db create <name>\` | Create a project database |
28
- | \`gipity db query "SQL"\` | Run SQL on project database |
29
- | \`gipity db list\` | List databases |
30
- | \`gipity memory list\\|read\\|write\` | Persistent key-value memory |
31
- | \`gipity api list\\|define\\|get\` | Manage backend API procedures |
32
- | \`gipity checkpoint list\` | List file snapshots |
33
- | \`gipity checkpoint restore <id>\` | Restore files to a snapshot (undo) |
34
- | \`gipity logs fn <name>\` | View function execution logs (errors, timing) |
35
- | \`gipity browser <url>\` | Inspect a URL: console errors, timing, failed resources |
36
- | \`gipity status\` | Check project and sync status |
37
-
38
- All commands support \`--json\` for structured output.
22
+ ${CLI_COMMANDS}
39
23
 
40
24
  ## Processing & Code Execution
41
25
 
@@ -54,21 +38,11 @@ Use \`gipity chat\` to have the platform do it. Example: \`gipity chat "resize a
54
38
 
55
39
  All file creation and editing should happen locally — 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.
56
40
 
57
- ## Platform Services (via \`gipity chat\`)
41
+ ${PLATFORM_SERVICES}
58
42
 
59
- Some Gipity capabilities require its hosted AI agent. Use \`gipity chat\` for things you cannot do directly. The response includes text output, which tools were used, and any files created are auto-synced locally. Add \`--json\` for structured output.
43
+ Use \`gipity chat\` to access these from the CLI. Example: \`gipity chat "generate a hero image for the landing page"\`
60
44
 
61
- - **Image generation**: \`gipity chat "generate a hero image for the landing page"\`
62
- - **Speech / TTS**: \`gipity chat "generate speech audio for this welcome message"\`
63
- - **Sound effects / Music**: \`gipity chat "generate a click sound effect"\`
64
- - **Web search**: \`gipity chat "search the web for current pricing of competitor X"\`
65
- - **Twitter/X search**: \`gipity chat "search twitter for mentions of our app"\`
66
- - **Browser interaction**: \`gipity chat "open our deployed app, click the login button, and screenshot the result"\`
67
- - **Workflow automation**: \`gipity chat "create a cron workflow that emails a daily summary"\`
68
- - **Email**: \`gipity chat "send a summary email to the team"\`
69
- - **LLM queries**: \`gipity chat "ask GPT-4 to review this code for security issues"\`
70
-
71
- Do NOT use \`gipity chat\` for writing code, creating files, or scaffolding — do that directly.
45
+ ${GIP_3DW_GUIDE}
72
46
 
73
47
  ${CODING_GUIDELINES}
74
48
 
@@ -96,20 +70,21 @@ Log out: \`gipity logout\`
96
70
  - \`gipity sync check\` — verify local and remote files are in sync if things seem stale.
97
71
  - \`gipity checkpoint restore <id>\` — undo a bad change by restoring to a previous file snapshot.
98
72
  `;
73
+ // Cross-platform hooks using node -e (no bash/jq dependency)
99
74
  export const HOOKS_SETTINGS = {
100
75
  hooks: {
101
76
  PostToolUse: [{
102
77
  matcher: 'Write|Edit',
103
78
  hooks: [{
104
79
  type: 'command',
105
- command: 'bash -c \'INPUT=$(cat); FILE_PATH=$(echo "$INPUT" | jq -r ".tool_input.file_path // empty"); [ -z "$FILE_PATH" ] && exit 0; [ ! -f ".gipity.json" ] && exit 0; gipity push "$FILE_PATH" --quiet & disown; exit 0\'',
80
+ command: `node -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{try{const p=JSON.parse(d).tool_input?.file_path;if(!p||!require('fs').existsSync('.gipity.json'))process.exit(0);require('child_process').spawn('gipity',['push',p,'--quiet'],{stdio:'ignore',detached:true,shell:true}).unref()}catch{}})"`,
106
81
  }],
107
82
  }],
108
83
  UserPromptSubmit: [{
109
84
  matcher: '',
110
85
  hooks: [{
111
86
  type: 'command',
112
- command: 'bash -c \'[ ! -f ".gipity.json" ] && exit 0; RESULT=$(gipity sync down --json 2>/dev/null); PULLED=$(echo "$RESULT" | jq -r ".pulled // 0" 2>/dev/null); if [ "$PULLED" -gt 0 ]; then SUMMARY=$(echo "$RESULT" | jq -r ".summary // empty" 2>/dev/null); echo "{\\\"systemMessage\\\": \\\"Gipity sync: $SUMMARY\\\"}"; fi; exit 0\'',
87
+ command: `node -e "if(!require('fs').existsSync('.gipity.json'))process.exit(0);require('child_process').exec('gipity sync down --json',(e,o)=>{if(e)process.exit(0);try{const r=JSON.parse(o);if(r.pulled>0)console.log(JSON.stringify({systemMessage:'Gipity sync: '+(r.summary||'Files changed remotely.')}))}catch{}})"`,
113
88
  }],
114
89
  }],
115
90
  },
package/dist/setup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
package/dist/sync.d.ts CHANGED
@@ -15,8 +15,14 @@ export interface SyncResult {
15
15
  changes: SyncChange[];
16
16
  pulled: number;
17
17
  pushed: number;
18
+ deleted: number;
19
+ skippedDeletions: number;
18
20
  summary: string;
19
21
  }
22
+ export interface SyncDownOptions {
23
+ /** If true, prompt user to confirm before deleting files. Default: false (skip deletions silently). */
24
+ confirmDeletions?: boolean;
25
+ }
20
26
  /** Compare remote manifest against local files, detect changes */
21
27
  export declare function diffManifest(remoteFiles: RemoteFile[], localFiles: Map<string, {
22
28
  size: number;
@@ -24,7 +30,7 @@ export declare function diffManifest(remoteFiles: RemoteFile[], localFiles: Map<
24
30
  }>, direction: 'down' | 'up'): SyncChange[];
25
31
  export declare function formatDiff(changes: SyncChange[], direction: 'down' | 'up'): string;
26
32
  /** Sync down: pull remote changes to local */
27
- export declare function syncDown(): Promise<SyncResult>;
33
+ export declare function syncDown(opts?: SyncDownOptions): Promise<SyncResult>;
28
34
  /** Sync up: push local changes to remote */
29
35
  export declare function syncUp(): Promise<SyncResult>;
30
36
  /** Check for changes without pulling/pushing */
package/dist/sync.js CHANGED
@@ -2,7 +2,7 @@ import { readFileSync, writeFileSync, mkdirSync, existsSync, statSync, unlinkSyn
2
2
  import { join, relative, dirname } from 'path';
3
3
  import { get, put, del } from './api.js';
4
4
  import { requireConfig, shouldIgnore, getConfigPath } from './config.js';
5
- import { isBinaryFile, formatSize } from './utils.js';
5
+ import { isBinaryFile, formatSize, prompt } from './utils.js';
6
6
  function syncStatePath() {
7
7
  const configPath = getConfigPath();
8
8
  const projectDir = dirname(configPath);
@@ -133,22 +133,68 @@ export function formatDiff(changes, direction) {
133
133
  }
134
134
  return lines.join('\n');
135
135
  }
136
+ /** Confirm file deletions with the user. Returns true if deletions should proceed. */
137
+ async function confirmFileDeletions(deletions) {
138
+ const count = deletions.length;
139
+ if (count <= 10) {
140
+ // Show each file, simple y/n
141
+ console.log(`\nSync will delete ${count} local file${count > 1 ? 's' : ''}:`);
142
+ for (const d of deletions) {
143
+ console.log(` - ${d.path}`);
144
+ }
145
+ const answer = await prompt(`\nDelete ${count} file${count > 1 ? 's' : ''}? (y/n) `);
146
+ return answer.trim().toLowerCase() === 'y';
147
+ }
148
+ // 10+ files — show summary + sample, require typing "delete"
149
+ console.log(`\nSync will delete ${count} local files. Examples:`);
150
+ for (const d of deletions.slice(0, 5)) {
151
+ console.log(` - ${d.path}`);
152
+ }
153
+ console.log(` ... and ${count - 5} more`);
154
+ const answer = await prompt(`\nType "delete" to confirm, or anything else to skip: `);
155
+ return answer.trim().toLowerCase() === 'delete';
156
+ }
136
157
  /** Sync down: pull remote changes to local */
137
- export async function syncDown() {
158
+ export async function syncDown(opts = {}) {
138
159
  const config = requireConfig();
139
160
  const root = projectDir();
140
161
  const remoteFiles = await fetchManifest(config.projectGuid);
141
162
  const localFiles = walkLocal(root, root, config.ignore);
142
163
  const changes = diffManifest(remoteFiles, localFiles, 'down');
164
+ const remoteFileCount = remoteFiles.filter(f => f.type === 'file').length;
165
+ const deletions = changes.filter(c => c.type === 'deleted');
166
+ // Decide whether to execute deletions
167
+ let executeDeletions = false;
168
+ let skippedDeletions = 0;
169
+ if (deletions.length > 0) {
170
+ if (remoteFileCount === 0) {
171
+ // Remote is empty — never delete local files (prevents wiping on fresh init)
172
+ executeDeletions = false;
173
+ skippedDeletions = deletions.length;
174
+ }
175
+ else if (opts.confirmDeletions) {
176
+ // Interactive mode — ask user
177
+ executeDeletions = await confirmFileDeletions(deletions);
178
+ if (!executeDeletions)
179
+ skippedDeletions = deletions.length;
180
+ }
181
+ else {
182
+ // Non-interactive (hooks, automation) — skip deletions for safety
183
+ skippedDeletions = deletions.length;
184
+ }
185
+ }
143
186
  let pulled = 0;
187
+ let deleted = 0;
144
188
  for (const change of changes) {
145
189
  if (change.type === 'deleted') {
146
- // File deleted remotely — delete locally
190
+ if (!executeDeletions)
191
+ continue;
147
192
  const fullPath = join(root, change.path);
148
193
  try {
149
194
  unlinkSync(fullPath);
150
195
  }
151
196
  catch { /* already gone */ }
197
+ deleted++;
152
198
  pulled++;
153
199
  continue;
154
200
  }
@@ -167,7 +213,7 @@ export async function syncDown() {
167
213
  }
168
214
  saveSyncState({ lastSync: new Date().toISOString(), files: stateFiles });
169
215
  const summary = formatDiff(changes, 'down');
170
- return { changes, pulled, pushed: 0, summary };
216
+ return { changes, pulled, pushed: 0, deleted, skippedDeletions, summary };
171
217
  }
172
218
  /** Sync up: push local changes to remote */
173
219
  export async function syncUp() {
@@ -206,7 +252,7 @@ export async function syncUp() {
206
252
  }
207
253
  saveSyncState({ lastSync: new Date().toISOString(), files: stateFiles });
208
254
  const summary = formatDiff(changes.filter(c => c.type !== 'deleted'), 'up');
209
- return { changes, pushed, pulled: 0, summary };
255
+ return { changes, pushed, pulled: 0, deleted: 0, skippedDeletions: 0, summary };
210
256
  }
211
257
  /** Check for changes without pulling/pushing */
212
258
  export async function syncCheck() {
@@ -216,7 +262,7 @@ export async function syncCheck() {
216
262
  const localFiles = walkLocal(root, root, config.ignore);
217
263
  const downChanges = diffManifest(remoteFiles, localFiles, 'down');
218
264
  const summary = formatDiff(downChanges, 'down');
219
- return { changes: downChanges, pulled: 0, pushed: 0, summary };
265
+ return { changes: downChanges, pulled: 0, pushed: 0, deleted: 0, skippedDeletions: 0, summary };
220
266
  }
221
267
  /** Push a single file to remote */
222
268
  export async function pushFile(filePath) {
package/dist/sync.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,11 @@
1
1
  {
2
2
  "name": "gipity",
3
- "version": "1.0.48",
3
+ "version": "1.0.54",
4
4
  "description": "Connect AI coding agents like Claude Code to the Gipity platform",
5
5
  "bin": {
6
- "gipity": "./dist/index.js"
6
+ "gipity": "./dist/index.js",
7
+ "gipcc": "./dist/gipcc.js",
8
+ "gipccd": "./dist/gipccd.js"
7
9
  },
8
10
  "type": "module",
9
11
  "scripts": {