gipity 1.0.264 → 1.0.306

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 (95) hide show
  1. package/dist/__tests__/capture-transcript.test.d.ts +1 -0
  2. package/dist/__tests__/capture-transcript.test.js +92 -0
  3. package/dist/__tests__/capture-transcript.test.js.map +1 -0
  4. package/dist/__tests__/cli-smoke.test.js +5 -5
  5. package/dist/__tests__/cli-smoke.test.js.map +1 -1
  6. package/dist/__tests__/prompts.test.d.ts +1 -0
  7. package/dist/__tests__/prompts.test.js +129 -0
  8. package/dist/__tests__/prompts.test.js.map +1 -0
  9. package/dist/__tests__/push-cas.test.d.ts +1 -0
  10. package/dist/__tests__/push-cas.test.js +133 -0
  11. package/dist/__tests__/push-cas.test.js.map +1 -0
  12. package/dist/__tests__/sync-apply.test.d.ts +1 -0
  13. package/dist/__tests__/sync-apply.test.js +457 -0
  14. package/dist/__tests__/sync-apply.test.js.map +1 -0
  15. package/dist/__tests__/sync-lock.test.d.ts +1 -0
  16. package/dist/__tests__/sync-lock.test.js +105 -0
  17. package/dist/__tests__/sync-lock.test.js.map +1 -0
  18. package/dist/__tests__/sync.test.js +115 -151
  19. package/dist/__tests__/sync.test.js.map +1 -1
  20. package/dist/adopt-cwd.d.ts +66 -0
  21. package/dist/adopt-cwd.js +255 -0
  22. package/dist/adopt-cwd.js.map +1 -0
  23. package/dist/api.d.ts +11 -1
  24. package/dist/api.js +46 -3
  25. package/dist/api.js.map +1 -1
  26. package/dist/capture/sources/claude-code.d.ts +78 -0
  27. package/dist/capture/sources/claude-code.js +158 -0
  28. package/dist/capture/sources/claude-code.js.map +1 -0
  29. package/dist/commands/chat.js +8 -8
  30. package/dist/commands/chat.js.map +1 -1
  31. package/dist/commands/claude.js +265 -129
  32. package/dist/commands/claude.js.map +1 -1
  33. package/dist/commands/init.js +34 -59
  34. package/dist/commands/init.js.map +1 -1
  35. package/dist/commands/location.js +1 -1
  36. package/dist/commands/location.js.map +1 -1
  37. package/dist/commands/logout.js +1 -1
  38. package/dist/commands/logout.js.map +1 -1
  39. package/dist/commands/page-inspect.js +36 -25
  40. package/dist/commands/page-inspect.js.map +1 -1
  41. package/dist/commands/page-screenshot.d.ts +2 -0
  42. package/dist/commands/page-screenshot.js +212 -0
  43. package/dist/commands/page-screenshot.js.map +1 -0
  44. package/dist/commands/project.js +71 -12
  45. package/dist/commands/project.js.map +1 -1
  46. package/dist/commands/relay.js +1 -1
  47. package/dist/commands/relay.js.map +1 -1
  48. package/dist/commands/scaffold.js +19 -13
  49. package/dist/commands/scaffold.js.map +1 -1
  50. package/dist/commands/sync.js +15 -24
  51. package/dist/commands/sync.js.map +1 -1
  52. package/dist/commands/uninstall.js +1 -1
  53. package/dist/commands/uninstall.js.map +1 -1
  54. package/dist/commands/update.js +1 -1
  55. package/dist/commands/update.js.map +1 -1
  56. package/dist/config.d.ts +9 -0
  57. package/dist/config.js +9 -0
  58. package/dist/config.js.map +1 -1
  59. package/dist/helpers/sync.d.ts +4 -2
  60. package/dist/helpers/sync.js +13 -7
  61. package/dist/helpers/sync.js.map +1 -1
  62. package/dist/hooks/capture-runner.d.ts +24 -0
  63. package/dist/hooks/capture-runner.js +233 -0
  64. package/dist/hooks/capture-runner.js.map +1 -0
  65. package/dist/index.js +17 -16
  66. package/dist/index.js.map +1 -1
  67. package/dist/project-setup.d.ts +21 -0
  68. package/dist/project-setup.js +42 -0
  69. package/dist/project-setup.js.map +1 -0
  70. package/dist/prompts.d.ts +7 -0
  71. package/dist/prompts.js +25 -2
  72. package/dist/prompts.js.map +1 -1
  73. package/dist/relay/daemon.d.ts +8 -8
  74. package/dist/relay/daemon.js +23 -61
  75. package/dist/relay/daemon.js.map +1 -1
  76. package/dist/relay/device-http.d.ts +9 -0
  77. package/dist/relay/device-http.js +58 -0
  78. package/dist/relay/device-http.js.map +1 -0
  79. package/dist/relay/onboarding.js +3 -2
  80. package/dist/relay/onboarding.js.map +1 -1
  81. package/dist/setup.d.ts +8 -0
  82. package/dist/setup.js +55 -16
  83. package/dist/setup.js.map +1 -1
  84. package/dist/sync.d.ts +55 -37
  85. package/dist/sync.js +628 -445
  86. package/dist/sync.js.map +1 -1
  87. package/dist/updater/bootstrap.d.ts +6 -1
  88. package/dist/updater/bootstrap.js +21 -13
  89. package/dist/updater/bootstrap.js.map +1 -1
  90. package/dist/updater/shim.js +12 -1
  91. package/dist/updater/shim.js.map +1 -1
  92. package/dist/upload.d.ts +13 -2
  93. package/dist/upload.js +59 -6
  94. package/dist/upload.js.map +1 -1
  95. package/package.json +2 -2
@@ -1,160 +1,124 @@
1
1
  import { describe, it } from 'node:test';
2
2
  import assert from 'node:assert/strict';
3
- import { diffManifest, formatDiff } from '../sync.js';
4
- const remoteFiles = [
5
- { path: 'src/index.html', size: 500, modified: '2024-01-01', type: 'file', guid: 'f1' },
6
- { path: 'src/app.js', size: 1200, modified: '2024-01-01', type: 'file', guid: 'f2' },
7
- { path: 'src/styles.css', size: 300, modified: '2024-01-01', type: 'file', guid: 'f3' },
8
- { path: 'src/', size: 0, modified: '2024-01-01', type: 'directory', guid: 'd1' },
9
- ];
10
- describe('diffManifest down', () => {
11
- it('detects added files (remote has, local lacks)', () => {
12
- const local = new Map();
13
- const changes = diffManifest(remoteFiles, local, 'down');
14
- const added = changes.filter(c => c.type === 'added');
15
- assert.equal(added.length, 3);
16
- });
17
- it('detects modified files (size mismatch)', () => {
18
- const local = new Map([
19
- ['src/index.html', { size: 999, modified: '2024-01-01' }],
20
- ['src/app.js', { size: 1200, modified: '2024-01-01' }],
21
- ['src/styles.css', { size: 300, modified: '2024-01-01' }],
22
- ]);
23
- const changes = diffManifest(remoteFiles, local, 'down');
24
- assert.equal(changes.length, 1);
25
- assert.equal(changes[0].type, 'modified');
26
- assert.equal(changes[0].path, 'src/index.html');
27
- });
28
- it('detects deleted files (local has, remote lacks)', () => {
29
- const local = new Map([
30
- ['src/index.html', { size: 500, modified: '2024-01-01' }],
31
- ['src/app.js', { size: 1200, modified: '2024-01-01' }],
32
- ['src/styles.css', { size: 300, modified: '2024-01-01' }],
33
- ['src/old.js', { size: 100, modified: '2024-01-01' }],
34
- ]);
35
- const changes = diffManifest(remoteFiles, local, 'down');
36
- const deleted = changes.filter(c => c.type === 'deleted');
37
- assert.equal(deleted.length, 1);
38
- assert.equal(deleted[0].path, 'src/old.js');
39
- });
40
- it('returns empty when in sync', () => {
41
- const local = new Map([
42
- ['src/index.html', { size: 500, modified: '2024-01-01' }],
43
- ['src/app.js', { size: 1200, modified: '2024-01-01' }],
44
- ['src/styles.css', { size: 300, modified: '2024-01-01' }],
45
- ]);
46
- const changes = diffManifest(remoteFiles, local, 'down');
47
- assert.equal(changes.length, 0);
48
- });
49
- it('detects same-size-different-content via hash (the bug)', () => {
50
- // Remote and local both report size=500, but content hashes differ.
51
- // Size-only diff used to silently skip this; now it's caught.
52
- const remote = [
53
- { path: 'src/index.html', size: 500, modified: '2024-01-01', type: 'file', guid: 'f1', contentHash: 'aaa' },
54
- ];
55
- const local = new Map([
56
- ['src/index.html', { size: 500, modified: '2024-01-02', sha256: 'bbb' }],
57
- ]);
58
- // No baseline no way to decide which side changed conflict.
59
- const changes = diffManifest(remote, local, 'down');
60
- assert.equal(changes.length, 1);
61
- assert.equal(changes[0].type, 'conflict');
62
- });
63
- it('pulls when local matches baseline but remote diverged', () => {
64
- const remote = [
65
- { path: 'src/index.html', size: 500, modified: '2024-02-01', type: 'file', guid: 'f1', contentHash: 'new-hash' },
66
- ];
67
- const local = new Map([
68
- ['src/index.html', { size: 500, modified: '2024-01-01', sha256: 'old-hash' }],
69
- ]);
70
- const baseline = { 'src/index.html': { size: 500, modified: '2024-01-01', sha256: 'old-hash' } };
71
- const changes = diffManifest(remote, local, 'down', baseline);
72
- assert.equal(changes.length, 1);
73
- assert.equal(changes[0].type, 'modified');
74
- });
75
- it('skips (no-op) when remote matches baseline but local diverged — protects local edits', () => {
76
- const remote = [
77
- { path: 'src/index.html', size: 500, modified: '2024-01-01', type: 'file', guid: 'f1', contentHash: 'base-hash' },
78
- ];
79
- const local = new Map([
80
- ['src/index.html', { size: 500, modified: '2024-01-05', sha256: 'local-edit' }],
81
- ]);
82
- const baseline = { 'src/index.html': { size: 500, modified: '2024-01-01', sha256: 'base-hash' } };
83
- const changes = diffManifest(remote, local, 'down', baseline);
84
- assert.equal(changes.length, 0);
85
- });
86
- it('flags conflict when both sides diverged from baseline', () => {
87
- const remote = [
88
- { path: 'src/index.html', size: 500, modified: '2024-02-01', type: 'file', guid: 'f1', contentHash: 'remote-new' },
89
- ];
90
- const local = new Map([
91
- ['src/index.html', { size: 500, modified: '2024-02-02', sha256: 'local-new' }],
92
- ]);
93
- const baseline = { 'src/index.html': { size: 500, modified: '2024-01-01', sha256: 'base-hash' } };
94
- const changes = diffManifest(remote, local, 'down', baseline);
95
- assert.equal(changes.length, 1);
96
- assert.equal(changes[0].type, 'conflict');
97
- });
98
- it('treats matching hash as in-sync even when size/mtime metadata differs', () => {
99
- const remote = [
100
- { path: 'src/index.html', size: 500, modified: '2024-02-01', type: 'file', guid: 'f1', contentHash: 'same-hash' },
101
- ];
102
- const local = new Map([
103
- ['src/index.html', { size: 500, modified: '2024-01-01', sha256: 'same-hash' }],
104
- ]);
105
- const changes = diffManifest(remote, local, 'down');
106
- assert.equal(changes.length, 0);
3
+ import { plan, formatPlan } from '../sync.js';
4
+ function remote(path, sha, sv = 1, size = 100) {
5
+ return { path, size, sha256: sha, serverVersion: sv, modified: '2024-01-01' };
6
+ }
7
+ function local(size = 100, sha) {
8
+ return { size, mtime: '2024-01-01', sha256: sha };
9
+ }
10
+ function baselineOf(sha, sv = 1, size = 100) {
11
+ return { size, mtime: '2024-01-01', sha256: sha, serverVersion: sv };
12
+ }
13
+ describe('plan() 9-cell decision table', () => {
14
+ it('unchanged × unchanged → noop (no action)', () => {
15
+ const p = plan(new Map([['foo', local(100, 'h1')]]), new Map([['foo', remote('foo', 'h1', 5)]]), { foo: baselineOf('h1', 5) });
16
+ assert.equal(p.actions.length, 0);
17
+ });
18
+ it('unchanged × modified download', () => {
19
+ const p = plan(new Map([['foo', local(100, 'h1')]]), new Map([['foo', remote('foo', 'h2', 6)]]), { foo: baselineOf('h1', 5) });
20
+ assert.equal(p.actions.length, 1);
21
+ assert.equal(p.actions[0].kind, 'download');
22
+ });
23
+ it('unchanged × deleted delete-local', () => {
24
+ const p = plan(new Map([['foo', local(100, 'h1')]]), new Map(), { foo: baselineOf('h1', 5) });
25
+ assert.equal(p.actions.length, 1);
26
+ assert.equal(p.actions[0].kind, 'delete-local');
27
+ });
28
+ it('modified × unchanged upload with CAS=baseline.serverVersion', () => {
29
+ const p = plan(new Map([['foo', local(100, 'h-local-new')]]), new Map([['foo', remote('foo', 'h1', 5)]]), { foo: baselineOf('h1', 5) });
30
+ assert.equal(p.actions.length, 1);
31
+ assert.equal(p.actions[0].kind, 'upload');
32
+ assert.equal(p.actions[0].expectedServerVersion, 5);
33
+ });
34
+ it('modified × modified (shas differ) → conflict', () => {
35
+ const p = plan(new Map([['foo', local(100, 'h-local')]]), new Map([['foo', remote('foo', 'h-remote', 6)]]), { foo: baselineOf('h-base', 5) });
36
+ assert.equal(p.actions.length, 1);
37
+ assert.equal(p.actions[0].kind, 'conflict');
38
+ assert.ok(p.actions[0].renamedLocalTo);
39
+ assert.ok(p.actions[0].renamedLocalTo.includes('conflict from'));
40
+ });
41
+ it('modified × modified (shas happen to match) → noop', () => {
42
+ const p = plan(new Map([['foo', local(100, 'h-new')]]), new Map([['foo', remote('foo', 'h-new', 6)]]), { foo: baselineOf('h-base', 5) });
43
+ assert.equal(p.actions.length, 0);
44
+ });
45
+ it('modified × deleted → re-upload as new (expected=null)', () => {
46
+ const p = plan(new Map([['foo', local(100, 'h-local')]]), new Map(), { foo: baselineOf('h-base', 5) });
47
+ assert.equal(p.actions.length, 1);
48
+ assert.equal(p.actions[0].kind, 'upload');
49
+ assert.equal(p.actions[0].expectedServerVersion, null);
50
+ });
51
+ it('added × absent upload as new (expected=null)', () => {
52
+ const p = plan(new Map([['foo', local(100, 'h1')]]), new Map(), {});
53
+ assert.equal(p.actions.length, 1);
54
+ assert.equal(p.actions[0].kind, 'upload');
55
+ assert.equal(p.actions[0].expectedServerVersion, null);
56
+ });
57
+ it('added × added (shas match) → noop', () => {
58
+ const p = plan(new Map([['foo', local(100, 'h1')]]), new Map([['foo', remote('foo', 'h1', 1)]]), {});
59
+ assert.equal(p.actions.length, 0);
60
+ });
61
+ it('added × added (shas differ) → conflict', () => {
62
+ const p = plan(new Map([['foo', local(100, 'h-local')]]), new Map([['foo', remote('foo', 'h-remote', 1)]]), {});
63
+ assert.equal(p.actions.length, 1);
64
+ assert.equal(p.actions[0].kind, 'conflict');
65
+ });
66
+ it('deleted × unchanged → delete-remote with CAS=baseline.serverVersion', () => {
67
+ const p = plan(new Map(), new Map([['foo', remote('foo', 'h1', 5)]]), { foo: baselineOf('h1', 5) });
68
+ assert.equal(p.actions.length, 1);
69
+ assert.equal(p.actions[0].kind, 'delete-remote');
70
+ assert.equal(p.actions[0].expectedServerVersion, 5);
71
+ });
72
+ it('deleted × modified → download (remote preserved)', () => {
73
+ const p = plan(new Map(), new Map([['foo', remote('foo', 'h-new', 6)]]), { foo: baselineOf('h-base', 5) });
74
+ assert.equal(p.actions.length, 1);
75
+ assert.equal(p.actions[0].kind, 'download');
76
+ });
77
+ it('deleted × deleted noop (baseline dropped silently)', () => {
78
+ const p = plan(new Map(), new Map(), { foo: baselineOf('h1', 5) });
79
+ assert.equal(p.actions.length, 0);
80
+ });
81
+ it('absent × added → download (remote added since last sync)', () => {
82
+ const p = plan(new Map(), new Map([['foo', remote('foo', 'h1', 1)]]), {});
83
+ assert.equal(p.actions.length, 1);
84
+ assert.equal(p.actions[0].kind, 'download');
107
85
  });
108
86
  });
109
- describe('diffManifestup', () => {
110
- it('detects locally added files', () => {
111
- const local = new Map([
112
- ['src/index.html', { size: 500, modified: '2024-01-01' }],
113
- ['src/app.js', { size: 1200, modified: '2024-01-01' }],
114
- ['src/styles.css', { size: 300, modified: '2024-01-01' }],
115
- ['src/new.js', { size: 200, modified: '2024-01-01' }],
116
- ]);
117
- const changes = diffManifest(remoteFiles, local, 'up');
118
- const added = changes.filter(c => c.type === 'added');
119
- assert.equal(added.length, 1);
120
- assert.equal(added[0].path, 'src/new.js');
121
- });
122
- it('detects locally deleted files', () => {
123
- const local = new Map([
124
- ['src/index.html', { size: 500, modified: '2024-01-01' }],
125
- ]);
126
- const changes = diffManifest(remoteFiles, local, 'up');
127
- const deleted = changes.filter(c => c.type === 'deleted');
128
- assert.equal(deleted.length, 2); // app.js and styles.css
87
+ describe('plan()summary counts', () => {
88
+ it('counts uploads, downloads, conflicts, deletes correctly', () => {
89
+ const p = plan(new Map([
90
+ ['add', local(100, 'a1')], // → upload
91
+ ['mod', local(100, 'm2')], // → upload (CAS)
92
+ ['keep', local(100, 'k1')], // unchanged
93
+ ['conflict', local(100, 'cL')], // → conflict
94
+ ['delremote', local(100, 'd1')], // unchanged, remote deletes → delete-local
95
+ ]), new Map([
96
+ ['mod', remote('mod', 'm1', 5)],
97
+ ['keep', remote('keep', 'k1', 3)],
98
+ ['conflict', remote('conflict', 'cR', 7)],
99
+ ['remote-new', remote('remote-new', 'r1', 1)], // → download
100
+ ]), {
101
+ mod: baselineOf('m1', 5),
102
+ keep: baselineOf('k1', 3),
103
+ conflict: baselineOf('cBase', 6),
104
+ delremote: baselineOf('d1', 4),
105
+ });
106
+ assert.equal(p.uploads, 2);
107
+ assert.equal(p.downloads, 1);
108
+ assert.equal(p.deletesLocal, 1);
109
+ assert.equal(p.conflicts, 1);
129
110
  });
130
111
  });
131
- describe('formatDiff', () => {
132
- it('returns no changes message when empty', () => {
133
- assert.equal(formatDiff([], 'down'), 'No changes detected.');
134
- });
135
- it('shows recent pull info when no changes and lastPull provided', () => {
136
- const lastPull = { timestamp: new Date().toISOString(), count: 2, summary: '2 changes:' };
137
- const result = formatDiff([], 'down', lastPull);
138
- assert.ok(result.startsWith('Already up to date.'));
139
- assert.ok(result.includes('2 files pulled'));
140
- });
141
- it('shows singular file in recent pull message', () => {
142
- const lastPull = { timestamp: new Date().toISOString(), count: 1, summary: '1 change:' };
143
- const result = formatDiff([], 'down', lastPull);
144
- assert.ok(result.includes('1 file pulled'));
145
- assert.ok(!result.includes('1 files'));
146
- });
147
- it('formats changes with counts', () => {
148
- const changes = [
149
- { type: 'added', path: 'src/new.js', remoteSize: 100 },
150
- { type: 'modified', path: 'src/app.js', localSize: 1000, remoteSize: 1200 },
151
- { type: 'deleted', path: 'src/old.js', localSize: 50 },
152
- ];
153
- const output = formatDiff(changes, 'down');
154
- assert.ok(output.includes('3 changes'));
155
- assert.ok(output.includes('+ src/new.js'));
156
- assert.ok(output.includes('~ src/app.js'));
157
- assert.ok(output.includes('- src/old.js'));
112
+ describe('formatPlan', () => {
113
+ it('returns "Up to date." for empty plan', () => {
114
+ const p = plan(new Map(), new Map(), {});
115
+ assert.equal(formatPlan(p), 'Up to date.');
116
+ });
117
+ it('includes action counts in the summary line', () => {
118
+ const p = plan(new Map([['foo', local(100, 'h1')]]), new Map(), {});
119
+ const out = formatPlan(p);
120
+ assert.ok(out.includes('1 upload'));
121
+ assert.ok(out.includes('↑ foo'));
158
122
  });
159
123
  });
160
124
  //# sourceMappingURL=sync.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.test.js","sourceRoot":"","sources":["../../src/__tests__/sync.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.test.js","sourceRoot":"","sources":["../../src/__tests__/sync.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ export interface ProjectData {
2
+ short_guid: string;
3
+ name: string;
4
+ slug: string;
5
+ }
6
+ export type AdoptTier = 'easy' | 'moderate' | 'refuse';
7
+ export interface AdoptScan {
8
+ tier: AdoptTier;
9
+ files: number;
10
+ bytes: number;
11
+ /** True once we hit the refuse threshold and stopped walking. */
12
+ truncated: boolean;
13
+ }
14
+ /** Walk `cwd` (respecting `isSyncIgnored`) and bucket by file count + size.
15
+ * Bails out early once we cross either refuse threshold so a 1M-file dir
16
+ * doesn't take seconds to count. */
17
+ export declare function scanForAdoption(cwd: string): AdoptScan;
18
+ /** Treat cwd as "empty" if it has no entries that aren't sync-ignored
19
+ * (dotfiles, node_modules, .git, etc.). When true, the picker should still
20
+ * offer the "what would you like to build?" prompt so Claude can scaffold
21
+ * in place. */
22
+ export declare function isLikelyEmpty(cwd: string): boolean;
23
+ /** Hide-list for "Use this directory" — places where adopting cwd as a
24
+ * project is obviously wrong. Exact-match only; subdirectories are fine
25
+ * (e.g. `/tmp/scratch` is allowed, just not `/tmp` itself). */
26
+ export declare function canAdoptCwd(cwd: string): boolean;
27
+ /** Format `cwd` as a short two-segment tail for picker labels:
28
+ * /home/steve/Github/Gipity → ~/Github/Gipity (collapse home)
29
+ * /tmp/scratch → /tmp/scratch
30
+ * Used to give the user enough context to recognize the dir without
31
+ * taking up the whole line. */
32
+ export declare function formatCwdLabel(cwd: string): string;
33
+ /** Format byte count handling KB/MB/GB. utils.formatSize tops out at MB,
34
+ * which prints "1024.0 MB" for the 1 GB refuse threshold. */
35
+ export declare function formatBytes(n: number): string;
36
+ export interface AdoptResult {
37
+ project: ProjectData;
38
+ isNew: boolean;
39
+ agentGuid: string;
40
+ accountSlug: string;
41
+ applied: number;
42
+ }
43
+ /** Adopt `cwd` as a Gipity project. Mirrors `gipity init`'s flow:
44
+ * 1. Slug = slugify(basename(cwd)) — provided by caller (so caller can
45
+ * validate/prompt as needed).
46
+ * 2. Try to match an existing server project by slug; adopt if found.
47
+ * 3. Otherwise POST /projects with relay-device wiring.
48
+ * 4. Fetch agent + account, then `finalizeLocalProject` to write config,
49
+ * sync, and install hooks/skills/gitignore.
50
+ * Caller is responsible for the size-tier check before calling. */
51
+ export declare function adoptCurrentDir(opts: {
52
+ cwd: string;
53
+ projectName: string;
54
+ projectSlug: string;
55
+ accountSlug: string;
56
+ confirmDeletions: boolean;
57
+ /** Force a specific agent guid; skip the auto-lookup. */
58
+ agentOverride?: string;
59
+ }): Promise<AdoptResult>;
60
+ /** Re-export so callers can unify on these constants for messaging. */
61
+ export declare const ADOPT_THRESHOLDS: {
62
+ EASY_FILES: number;
63
+ EASY_BYTES: number;
64
+ REFUSE_FILES: number;
65
+ REFUSE_BYTES: number;
66
+ };