gipity 1.0.245 → 1.0.264

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.
Files changed (49) hide show
  1. package/README.md +1 -1
  2. package/dist/__tests__/relay-daemon.test.js +6 -2
  3. package/dist/__tests__/relay-daemon.test.js.map +1 -1
  4. package/dist/__tests__/relay-ingest-contract.test.d.ts +1 -0
  5. package/dist/__tests__/relay-ingest-contract.test.js +76 -0
  6. package/dist/__tests__/relay-ingest-contract.test.js.map +1 -0
  7. package/dist/__tests__/relay-installers.test.js +34 -8
  8. package/dist/__tests__/relay-installers.test.js.map +1 -1
  9. package/dist/__tests__/stream-json.test.d.ts +1 -0
  10. package/dist/__tests__/stream-json.test.js +186 -0
  11. package/dist/__tests__/stream-json.test.js.map +1 -0
  12. package/dist/commands/claude.js +81 -43
  13. package/dist/commands/claude.js.map +1 -1
  14. package/dist/commands/page-inspect.d.ts +2 -0
  15. package/dist/commands/page-inspect.js +84 -0
  16. package/dist/commands/page-inspect.js.map +1 -0
  17. package/dist/commands/relay-install.js +29 -14
  18. package/dist/commands/relay-install.js.map +1 -1
  19. package/dist/commands/relay.js +18 -18
  20. package/dist/commands/relay.js.map +1 -1
  21. package/dist/commands/sandbox.js +57 -6
  22. package/dist/commands/sandbox.js.map +1 -1
  23. package/dist/commands/skills.js +8 -0
  24. package/dist/commands/skills.js.map +1 -1
  25. package/dist/commands/uninstall.js +11 -7
  26. package/dist/commands/uninstall.js.map +1 -1
  27. package/dist/index.js +2 -5
  28. package/dist/index.js.map +1 -1
  29. package/dist/prompts.d.ts +28 -9
  30. package/dist/prompts.js +82 -220
  31. package/dist/prompts.js.map +1 -1
  32. package/dist/relay/daemon.d.ts +30 -6
  33. package/dist/relay/daemon.js +449 -51
  34. package/dist/relay/daemon.js.map +1 -1
  35. package/dist/relay/installers.d.ts +9 -3
  36. package/dist/relay/installers.js +56 -16
  37. package/dist/relay/installers.js.map +1 -1
  38. package/dist/relay/onboarding.js +11 -2
  39. package/dist/relay/onboarding.js.map +1 -1
  40. package/dist/relay/stream-json.d.ts +105 -0
  41. package/dist/relay/stream-json.js +158 -0
  42. package/dist/relay/stream-json.js.map +1 -0
  43. package/dist/relay/transcripts.d.ts +60 -0
  44. package/dist/relay/transcripts.js +119 -0
  45. package/dist/relay/transcripts.js.map +1 -0
  46. package/dist/setup.d.ts +0 -28
  47. package/dist/setup.js +11 -42
  48. package/dist/setup.js.map +1 -1
  49. package/package.json +2 -2
@@ -30,45 +30,83 @@ import { printBanner } from '../banner.js';
30
30
  const __clDir = dirname(fileURLToPath(import.meta.url));
31
31
  const __clPkg = JSON.parse(readFileSync(resolve(__clDir, '../../package.json'), 'utf-8'));
32
32
  import { getProjectsRoot } from '../relay/paths.js';
33
- function listProjectFiles(dir, limit = 40) {
34
- // `isSyncIgnored` is the single source of truth for "is this a workstation
35
- // artifact?"see setup.ts:DEFAULT_SYNC_IGNORE. Anything it ignores is not
36
- // counted here so scaffolding and empty-state prompts see a "just-provisioned"
37
- // project (with only CLAUDE.md / .gipity.json) as empty.
38
- const entries = [];
39
- let count = 0;
40
- let truncated = false;
41
- try {
42
- for (const name of readdirSync(dir).sort()) {
43
- if (isSyncIgnored(name))
44
- continue;
45
- count++;
46
- if (entries.length >= limit) {
47
- truncated = true;
48
- continue;
49
- }
50
- try {
51
- const isDir = statSync(join(dir, name)).isDirectory();
52
- entries.push(isDir ? `${name}/` : name);
53
- }
54
- catch { /* skip */ }
33
+ /** Ask the server for recursive VFS counts. Server owns the file metadata
34
+ * (counts, bytes, paths), so a single aggregate query beats walking the
35
+ * local filesystem which only sees depth 1 without recursion and led
36
+ * to the "1 top-level entry (src/)" bug for scaffolded projects where
37
+ * everything is under src/.
38
+ *
39
+ * Returns a best-effort local fallback if the API call fails (offline,
40
+ * auth missing, etc.) so the prompt still builds. */
41
+ async function fetchProjectStats(projectGuid, cwd) {
42
+ if (projectGuid) {
43
+ try {
44
+ const res = await get(`/projects/${encodeURIComponent(projectGuid)}/files/stats`);
45
+ const d = res.data;
46
+ const topLevelNames = d.top_level.map(e => e.type === 'directory' ? `${e.name}/` : e.name);
47
+ return {
48
+ fileCount: d.file_count,
49
+ folderCount: d.folder_count,
50
+ totalBytes: d.total_bytes,
51
+ topLevel: topLevelNames.length ? topLevelNames.slice(0, 20).join(', ') : '(empty directory)',
52
+ };
55
53
  }
54
+ catch { /* fall through to local walk */ }
56
55
  }
57
- catch { /* empty */ }
58
- if (truncated)
59
- entries.push('…');
60
- return {
61
- contents: entries.length ? entries.join(', ') : '(empty directory)',
62
- count,
56
+ return localFsFallback(cwd);
57
+ }
58
+ /** Local-filesystem fallback for when the stats API isn't reachable.
59
+ * Recursive walk (unlike the old top-level-only version). Caps entries to
60
+ * keep the prompt bounded. */
61
+ function localFsFallback(dir) {
62
+ let fileCount = 0;
63
+ let folderCount = 0;
64
+ let totalBytes = 0;
65
+ const topLevelEntries = [];
66
+ const walk = (d, depth) => {
67
+ try {
68
+ for (const name of readdirSync(d).sort()) {
69
+ if (isSyncIgnored(name))
70
+ continue;
71
+ let isDir = false;
72
+ let size = 0;
73
+ try {
74
+ const st = statSync(join(d, name));
75
+ isDir = st.isDirectory();
76
+ size = st.isFile() ? st.size : 0;
77
+ }
78
+ catch {
79
+ continue;
80
+ }
81
+ if (isDir) {
82
+ folderCount++;
83
+ if (depth === 0)
84
+ topLevelEntries.push(`${name}/`);
85
+ walk(join(d, name), depth + 1);
86
+ }
87
+ else {
88
+ fileCount++;
89
+ totalBytes += size;
90
+ if (depth === 0)
91
+ topLevelEntries.push(name);
92
+ }
93
+ }
94
+ }
95
+ catch { /* unreadable */ }
63
96
  };
97
+ walk(dir, 0);
98
+ const topLevel = topLevelEntries.length
99
+ ? topLevelEntries.slice(0, 20).join(', ') + (topLevelEntries.length > 20 ? ', …' : '')
100
+ : '(empty directory)';
101
+ return { fileCount, folderCount, totalBytes, topLevel };
64
102
  }
65
- function buildProjectContextBlock(opts) {
66
- const { contents, count } = listProjectFiles(opts.cwd);
67
- return buildProjectContextBlockText({ ...opts, contents, fileCount: count });
103
+ async function buildProjectContextBlock(opts) {
104
+ const stats = await fetchProjectStats(opts.projectGuid, opts.cwd);
105
+ return buildProjectContextBlockText({ ...opts, ...stats });
68
106
  }
69
- function buildExistingProjectPrompt(opts) {
70
- const { contents, count } = listProjectFiles(opts.cwd);
71
- return buildExistingProjectPromptText({ ...opts, contents, fileCount: count });
107
+ async function buildExistingProjectPrompt(opts) {
108
+ const stats = await fetchProjectStats(opts.projectGuid, opts.cwd);
109
+ return buildExistingProjectPromptText({ ...opts, ...stats });
72
110
  }
73
111
  // First-run relay onboarding now lives in `relay/onboarding.ts`
74
112
  // (`maybeOfferRelayOn`). `gipity claude` invokes it after project
@@ -101,7 +139,7 @@ function suggestProjectName(existingSlugs) {
101
139
  return `project-${Date.now().toString(36).slice(-6)}`;
102
140
  }
103
141
  export const claudeCommand = new Command('claude')
104
- .description('Log in, set up a project, and launch Claude Code (pass -p "msg" / --resume <id> for non-interactive use)')
142
+ .description('Log in, pair this machine, set up a project, and launch Claude Code (pass -p "msg" / --resume <id> for non-interactive use)')
105
143
  .option('--no-claude', 'Set up project but skip launching Claude Code')
106
144
  .allowUnknownOption(true)
107
145
  .allowExcessArguments(true)
@@ -193,7 +231,7 @@ export const claudeCommand = new Command('claude')
193
231
  catch {
194
232
  console.log(' Could not sync files (will retry on next prompt).');
195
233
  }
196
- initialPrompt = buildExistingProjectPrompt({
234
+ initialPrompt = await buildExistingProjectPrompt({
197
235
  projectName: existing.projectSlug,
198
236
  projectSlug: existing.projectSlug,
199
237
  projectGuid: existing.projectGuid,
@@ -289,20 +327,19 @@ export const claudeCommand = new Command('claude')
289
327
  console.log(` ${muted('Press Enter for a blank project.')}`);
290
328
  console.log('');
291
329
  const buildIdea = (await promptBoxed()).trim();
292
- const { contents, count } = listProjectFiles(process.cwd());
330
+ const stats = await fetchProjectStats(project.short_guid, process.cwd());
293
331
  initialPrompt = buildNewProjectPrompt({
294
332
  projectName: project.name,
295
333
  projectSlug: project.slug,
296
334
  projectGuid: project.short_guid,
297
335
  accountSlug,
298
336
  cwd: process.cwd(),
299
- contents,
300
- fileCount: count,
337
+ ...stats,
301
338
  buildIdea,
302
339
  });
303
340
  }
304
341
  else {
305
- initialPrompt = buildExistingProjectPrompt({
342
+ initialPrompt = await buildExistingProjectPrompt({
306
343
  projectName: project.name,
307
344
  projectSlug: project.slug,
308
345
  projectGuid: project.short_guid,
@@ -427,11 +464,12 @@ export const claudeCommand = new Command('claude')
427
464
  };
428
465
  let wrapped;
429
466
  if (hasResume) {
430
- const { contents, count } = listProjectFiles(process.cwd());
431
- wrapped = buildResumeWrap({ ...ctxOpts, contents, fileCount: count }, userMsg);
467
+ // Resume wrap only needs project identity (no file stats), so
468
+ // skip the stats API call on every resumed message.
469
+ wrapped = buildResumeWrap(ctxOpts, userMsg);
432
470
  }
433
471
  else {
434
- wrapped = buildFreshWrap(buildProjectContextBlock(ctxOpts), userMsg);
472
+ wrapped = buildFreshWrap(await buildProjectContextBlock(ctxOpts), userMsg);
435
473
  }
436
474
  allArgs = [...claudeArgs];
437
475
  allArgs[pIdx + 1] = wrapped;
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/commands/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/commands/claude.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare const pageInspectCommand: Command;
@@ -0,0 +1,84 @@
1
+ import { Command } from 'commander';
2
+ import { post } from '../api.js';
3
+ import { resolveProjectContext } from '../config.js';
4
+ import { formatSize } from '../utils.js';
5
+ import { brand, bold, error as clrError, warning, muted, info } from '../colors.js';
6
+ import { run } from '../helpers/index.js';
7
+ function shortUrl(url) {
8
+ try {
9
+ const u = new URL(url);
10
+ return u.pathname + u.search;
11
+ }
12
+ catch {
13
+ return url.length > 60 ? url.slice(-60) : url;
14
+ }
15
+ }
16
+ export const pageInspectCommand = new Command('page-inspect')
17
+ .description('Inspect a URL: console errors, performance, failed resources')
18
+ .argument('<url>', 'URL to inspect')
19
+ .option('--wait <ms>', 'Wait before capture in ms', '3000')
20
+ .option('--json', 'Output as JSON')
21
+ .action((url, opts) => run('Page inspect', async () => {
22
+ const { config } = await resolveProjectContext();
23
+ const waitMs = parseInt(opts.wait, 10) || 3000;
24
+ const res = await post(`/projects/${config.projectGuid}/browser/inspect`, { url, waitMs });
25
+ const b = res.data;
26
+ if (opts.json) {
27
+ console.log(JSON.stringify(b));
28
+ return;
29
+ }
30
+ const timing = b.timing || { ttfb: 0, domReady: 0, load: 0 };
31
+ // ── Page Info ──
32
+ console.log(`\n${brand('Inspecting')} ${bold(b.url || url)}`);
33
+ console.log(` ${muted('Title:')} ${b.title || '(none)'}`);
34
+ console.log(` ${muted('Elements:')} ${b.elementCount || 0}`);
35
+ console.log(` ${muted('Page weight:')} ${info(formatSize(b.totalBytes || 0))}`);
36
+ // ── Timing ──
37
+ console.log(`\n ${bold('Timing:')}`);
38
+ console.log(` ${muted('TTFB:')} ${timing.ttfb}ms`);
39
+ console.log(` ${muted('DOM ready:')} ${timing.domReady}ms`);
40
+ console.log(` ${muted('Load:')} ${timing.load}ms`);
41
+ if (b.lcp) {
42
+ console.log(` LCP: ${b.lcp.time}ms (${b.lcp.element}${b.lcp.url ? ' ' + shortUrl(b.lcp.url) : ''})`);
43
+ }
44
+ // ── Console ──
45
+ if (b.console?.length > 0) {
46
+ console.log(`\n ${bold('Console')} ${muted(`(${b.console.length})`)}:`);
47
+ for (const line of b.console) {
48
+ console.log(` ${warning(line)}`);
49
+ }
50
+ }
51
+ else {
52
+ console.log(`\n ${bold('Console:')} ${muted('(clean)')}`);
53
+ }
54
+ // ── Failed Resources ──
55
+ if (b.failedResources?.length > 0) {
56
+ console.log(`\n ${clrError(`Failed resources (${b.failedResources.length}):`)}`);
57
+ for (const r of b.failedResources) {
58
+ console.log(` ${clrError(r)}`);
59
+ }
60
+ }
61
+ // ── Render Blocking ──
62
+ if (b.renderBlocking?.length > 0) {
63
+ console.log(`\n ${warning(`Render-blocking (${b.renderBlocking.length}):`)}`);
64
+ for (const r of b.renderBlocking) {
65
+ console.log(` ${shortUrl(r)}`);
66
+ }
67
+ }
68
+ // ── Large Resources ──
69
+ if (b.largeResources?.length > 0) {
70
+ console.log(`\n ${warning(`Large resources >100KB (${b.largeResources.length}):`)}`);
71
+ for (const r of b.largeResources) {
72
+ console.log(` ${info(formatSize(r.size).padEnd(10))} ${muted(r.type.padEnd(8))} ${shortUrl(r.url)}`);
73
+ }
74
+ }
75
+ // ── Oversized Images ──
76
+ if (b.oversizedImages?.length > 0) {
77
+ console.log(`\n ${warning(`Oversized images (${b.oversizedImages.length}):`)}`);
78
+ for (const img of b.oversizedImages) {
79
+ console.log(` ${img.natural} served, ${img.displayed} displayed — ${shortUrl(img.src)}`);
80
+ }
81
+ }
82
+ console.log('');
83
+ }));
84
+ //# sourceMappingURL=page-inspect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-inspect.js","sourceRoot":"","sources":["../../src/commands/page-inspect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAgB1C,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAChD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC;KAC1D,WAAW,CAAC,8DAA8D,CAAC;KAC3E,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;KACnC,MAAM,CAAC,aAAa,EAAE,2BAA2B,EAAE,MAAM,CAAC;KAC1D,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,CAAC,GAAW,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;IAC5D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,qBAAqB,EAAE,CAAC;IACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;IAE/C,MAAM,GAAG,GAAG,MAAM,IAAI,CACpB,aAAa,MAAM,CAAC,WAAW,kBAAkB,EACjD,EAAE,GAAG,EAAE,MAAM,EAAE,CAChB,CAAC;IAEF,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;IAEnB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAE7D,kBAAkB;IAClB,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEjF,eAAe;IACf,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1G,CAAC;IAED,gBAAgB;IAChB,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;QACzE,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,yBAAyB;IACzB,IAAI,CAAC,CAAC,eAAe,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,qBAAqB,CAAC,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;QAClF,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,IAAI,CAAC,CAAC,cAAc,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/E,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,IAAI,CAAC,CAAC,cAAc,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,2BAA2B,CAAC,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;QACtF,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1G,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,IAAI,CAAC,CAAC,eAAe,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,qBAAqB,CAAC,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;QACjF,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,OAAO,YAAY,GAAG,CAAC,SAAS,gBAAgB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC,CAAC"}
@@ -8,7 +8,7 @@ import { planFor, UnsupportedPlatformError } from '../relay/installers.js';
8
8
  function requirePaired() {
9
9
  const device = state.getDevice();
10
10
  if (!device) {
11
- console.error(` ${clrError('Not paired.')} Run ${bold('gipity claude')} first.`);
11
+ console.error(` ${clrError('No paired device.')} Run ${bold('gipity claude')} to pair this machine.`);
12
12
  process.exit(1);
13
13
  }
14
14
  return device;
@@ -19,10 +19,25 @@ function requirePaired() {
19
19
  function resolveCliPath() {
20
20
  return resolve(process.argv[1] ?? 'gipity');
21
21
  }
22
+ /** Run a sequence of argv commands directly (no shell). Returns true if all
23
+ * succeeded. Spawns each command's stdio inherited so the user sees the
24
+ * service manager's output verbatim. */
25
+ function runArgvSequence(cmds, { failFast }) {
26
+ let allOk = true;
27
+ for (const argv of cmds) {
28
+ const r = spawnSync(argv[0], argv.slice(1), { stdio: 'inherit' });
29
+ if (r.status !== 0) {
30
+ allOk = false;
31
+ if (failFast)
32
+ return false;
33
+ }
34
+ }
35
+ return allOk;
36
+ }
22
37
  export function registerInstallCommands(relayCommand) {
23
38
  relayCommand
24
39
  .command('install')
25
- .description('Install the daemon as a login-time service (launchd / systemd / Task Scheduler)')
40
+ .description('Install the background service so it starts automatically at login')
26
41
  .option('--print', 'Print the service-unit file and the commands, but don\'t run them')
27
42
  .action(async (opts) => {
28
43
  requirePaired();
@@ -34,7 +49,7 @@ export function registerInstallCommands(relayCommand) {
34
49
  catch (err) {
35
50
  if (err instanceof UnsupportedPlatformError) {
36
51
  console.error(` ${clrError(err.message)}`);
37
- console.error(` ${dim('Supported: macOS (launchd), Linux (systemd --user), Windows (Task Scheduler).')}`);
52
+ console.error(` ${dim('Supported on macOS, Linux, and Windows.')}`);
38
53
  }
39
54
  else
40
55
  throw err;
@@ -48,7 +63,7 @@ export function registerInstallCommands(relayCommand) {
48
63
  console.log(`${dim('--- file content ---')}`);
49
64
  console.log(plan.content);
50
65
  console.log(`${dim('--- enable: ---')}`);
51
- console.log(plan.enableCmd);
66
+ console.log(plan.enableDisplay);
52
67
  console.log('');
53
68
  return;
54
69
  }
@@ -59,15 +74,13 @@ export function registerInstallCommands(relayCommand) {
59
74
  mkdirSync(dirname(plan.path), { recursive: true });
60
75
  writeFileSync(plan.path, plan.content);
61
76
  console.log(` ${success(`Wrote ${plan.path}`)}`);
62
- const r = spawnSync('sh', ['-c', plan.enableCmd], { stdio: 'inherit' });
63
- if (r.status !== 0) {
64
- console.error(`\n ${clrError('Enable command failed.')}`);
65
- console.error(` ${dim(`Try manually: ${plan.enableCmd}`)}`);
77
+ if (!runArgvSequence(plan.enableCmds, { failFast: true })) {
78
+ console.error(`\n ${clrError(`Couldn't enable autostart. Try manually: ${plan.enableDisplay}`)}`);
66
79
  process.exit(1);
67
80
  }
68
81
  console.log('');
69
- console.log(` ${success('Daemon installed and started.')}`);
70
- console.log(` ${dim(`Check status: ${plan.statusCmd}`)}`);
82
+ console.log(` ${success('Background service installed and started.')}`);
83
+ console.log(` ${dim(`Check status: ${plan.statusDisplay}`)}`);
71
84
  console.log(` ${dim(`Tail logs: gipity relay log`)}`);
72
85
  });
73
86
  relayCommand
@@ -91,10 +104,12 @@ export function registerInstallCommands(relayCommand) {
91
104
  else
92
105
  throw err;
93
106
  }
94
- const cmd = want === 'on' ? plan.enableCmd : plan.disableCmd;
95
- console.log(` ${info('Running:')} ${dim(cmd)}`);
96
- const r = spawnSync('sh', ['-c', cmd], { stdio: 'inherit' });
97
- if (r.status !== 0) {
107
+ const cmds = want === 'on' ? plan.enableCmds : plan.disableCmds;
108
+ const display = want === 'on' ? plan.enableDisplay : plan.disableDisplay;
109
+ console.log(` ${info('Running:')} ${dim(display)}`);
110
+ // Disable is best-effort (the task may already be stopped); enable is fail-fast.
111
+ const ok = runArgvSequence(cmds, { failFast: want === 'on' });
112
+ if (!ok && want === 'on') {
98
113
  console.error(`\n ${clrError('Command failed.')}`);
99
114
  process.exit(1);
100
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"relay-install.js","sourceRoot":"","sources":["../../src/commands/relay-install.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAE3E,SAAS,aAAa;IACpB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;IACjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;4CAE4C;AAC5C,SAAS,cAAc;IACrB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,YAAqB;IAC3D,YAAY;SACT,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,iFAAiF,CAAC;SAC9F,MAAM,CAAC,SAAS,EAAE,mEAAmE,CAAC;SACtF,MAAM,CAAC,KAAK,EAAE,IAAyB,EAAE,EAAE;QAC1C,aAAa,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YAAC,IAAI,GAAG,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAAC,CAAC;QACpC,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,GAAG,YAAY,wBAAwB,EAAE,CAAC;gBAC5C,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC5C,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,+EAA+E,CAAC,EAAE,CAAC,CAAC;YAC7G,CAAC;;gBAAM,MAAM,GAAG,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,8CAA8C,CAAC,CAAC,EAAE,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,yDAAyD,CAAC,EAAE,CAAC,CAAC;YACrF,OAAO;QACT,CAAC;QAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAElD,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;YAC3D,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,iBAAiB,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,iBAAiB,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEL,YAAY;SACT,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,wCAAwC,CAAC,EAAE,CAAC,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YAAC,IAAI,GAAG,OAAO,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;QAAC,CAAC;QACtD,OAAO,GAAG,EAAE,CAAC;YACX,IAAI,GAAG,YAAY,wBAAwB,EAAE,CAAC;gBAC5C,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;;gBAAM,MAAM,GAAG,CAAC;QACnB,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,aAAa,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"relay-install.js","sourceRoot":"","sources":["../../src/commands/relay-install.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ import * as state from '../relay/state.js';
15
15
  import * as daemon from '../relay/daemon.js';
16
16
  import { registerInstallCommands } from './relay-install.js';
17
17
  export const relayCommand = new Command('relay')
18
- .description('Connect your local Claude Code to the Gipity web CLI');
18
+ .description('Pair this machine\'s Claude Code with the Gipity web CLI');
19
19
  // ─── gipity relay status ───────────────────────────────────────────────
20
20
  relayCommand
21
21
  .command('status')
@@ -34,20 +34,20 @@ relayCommand
34
34
  }
35
35
  console.log('');
36
36
  if (!s.device) {
37
- console.log(` ${muted('No device registered.')} Run ${brand('gipity claude')} (or ${brand('gipity relay run')}) to register this device.`);
37
+ console.log(` ${muted('No paired device.')} Run ${brand('gipity claude')} to pair this machine.`);
38
38
  return;
39
39
  }
40
40
  console.log(` ${bold('Device:')} ${brand(s.device.name)} ${muted(`(${s.device.guid})`)}`);
41
41
  console.log(` ${bold('Platform:')} ${s.device.platform}`);
42
- console.log(` ${bold('Registered:')} ${s.device.paired_at}`);
42
+ console.log(` ${bold('Paired:')} ${s.device.paired_at}`);
43
43
  console.log(` ${bold('Paused:')} ${s.paused ? 'yes' : 'no'}`);
44
44
  console.log('');
45
45
  });
46
46
  // ─── gipity relay run ──────────────────────────────────────────────────
47
47
  relayCommand
48
48
  .command('run')
49
- .description('Start the long-running helper that accepts dispatches from the web CLI')
50
- .option('-v, --verbose', 'Log every dispatch decision (project cwd, session chain, spawn argv) — useful for watching behavior live')
49
+ .description('Run the background service that receives commands from the web CLI')
50
+ .option('-v, --verbose', 'Log every incoming command (project cwd, session chain, spawn argv) — useful for watching behavior live')
51
51
  .action(async (opts) => {
52
52
  // Tests bound the run via this env so they don't hang on SIGKILL.
53
53
  const maxRunMs = process.env.GIPITY_RELAY_MAX_RUN_MS
@@ -59,12 +59,12 @@ relayCommand
59
59
  // ─── gipity relay stop ─────────────────────────────────────────────────
60
60
  relayCommand
61
61
  .command('stop')
62
- .description('Stop the running daemon (sends SIGTERM to the PID in ~/.gipity/relay.pid)')
63
- .option('--force', 'SIGKILL if the daemon doesn\'t exit within 5s')
62
+ .description('Stop the background service')
63
+ .option('--force', 'Force-stop if it doesn\'t exit cleanly within 5s')
64
64
  .action(async (opts) => {
65
65
  const pidPath = state.getDaemonPidPath();
66
66
  if (!existsSync(pidPath)) {
67
- console.log(` ${muted('No daemon PID file — nothing to stop.')}`);
67
+ console.log(` ${muted('Background service isn\'t running.')}`);
68
68
  return;
69
69
  }
70
70
  const pid = parseInt(readFileSync(pidPath, 'utf-8').trim(), 10);
@@ -110,29 +110,29 @@ relayCommand
110
110
  process.kill(pid, 'SIGKILL');
111
111
  }
112
112
  catch { /* ignore */ }
113
- console.log(` ${success('Daemon killed (SIGKILL).')}`);
113
+ console.log(` ${success('Background service force-stopped.')}`);
114
114
  }
115
115
  else {
116
- console.error(` ${clrError(`PID ${pid} still running after 5s. Retry with --force to SIGKILL.`)}`);
116
+ console.error(` ${clrError(`Didn't shut down cleanly after 5s. Retry with --force to stop it.`)}`);
117
117
  process.exit(1);
118
118
  }
119
119
  }
120
120
  else {
121
- console.log(` ${success(`Daemon stopped (PID ${pid}).`)}`);
121
+ console.log(` ${success('Background service stopped.')}`);
122
122
  }
123
123
  });
124
124
  // ─── gipity relay pause / resume ───────────────────────────────────────
125
125
  relayCommand
126
126
  .command('pause')
127
- .description('Temporarily stop accepting dispatches (without unpairing)')
127
+ .description('Temporarily stop accepting commands (without unpairing)')
128
128
  .action(() => {
129
129
  requirePaired();
130
130
  state.setPaused(true);
131
- console.log(` ${success('Paused.')} ${dim('Run `gipity relay resume` to accept dispatches again.')}`);
131
+ console.log(` ${success('Paused.')} ${dim('Run `gipity relay resume` to accept commands again.')}`);
132
132
  });
133
133
  relayCommand
134
134
  .command('resume')
135
- .description('Resume accepting dispatches after a pause')
135
+ .description('Resume accepting commands after a pause')
136
136
  .action(() => {
137
137
  requirePaired();
138
138
  state.setPaused(false);
@@ -184,18 +184,18 @@ relayCommand
184
184
  }
185
185
  state.clearDevice();
186
186
  console.log(` ${success('Device revoked + local state cleared.')}`);
187
- console.log(` ${dim('Any running `gipity relay run` daemon will detect the revoke and exit within ~30s.')}`);
187
+ console.log(` ${dim('Any running background service will notice and exit within ~30s.')}`);
188
188
  });
189
189
  // ─── gipity relay log ──────────────────────────────────────────────────
190
190
  relayCommand
191
191
  .command('log')
192
- .description('Show the daemon\'s recent log (tails ~/.gipity/relay.log)')
192
+ .description('Show the background service\'s recent log (tails ~/.gipity/relay.log)')
193
193
  .option('-n, --lines <n>', 'How many lines to print (default 100)', '100')
194
194
  .option('-f, --follow', 'Follow the log like `tail -f`')
195
195
  .action((opts) => {
196
196
  const path = daemon.RELAY_LOG_PATH;
197
197
  if (!existsSync(path)) {
198
- console.log(` ${muted('No log file yet. Start the daemon with `gipity relay run` (or install it).')}`);
198
+ console.log(` ${muted('No log file yet. Start the service with `gipity relay run` (or install it).')}`);
199
199
  return;
200
200
  }
201
201
  const lines = parseInt(opts.lines, 10) || 100;
@@ -226,7 +226,7 @@ registerInstallCommands(relayCommand);
226
226
  function requirePaired() {
227
227
  const device = state.getDevice();
228
228
  if (!device) {
229
- console.error(` ${clrError('No device registered.')} Run ${brand('gipity claude')} (or ${brand('gipity relay run')}) first.`);
229
+ console.error(` ${clrError('No paired device.')} Run ${brand('gipity claude')} to pair this machine.`);
230
230
  process.exit(1);
231
231
  }
232
232
  return device;