@detergent-software/atk 1.2.0-dev.3 → 2.0.0-dev.1
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/build/commands/browse.js +2 -2
- package/build/commands/browse.js.map +1 -1
- package/build/commands/diff.js +1 -1
- package/build/commands/diff.js.map +1 -1
- package/build/commands/freeze.js +1 -1
- package/build/commands/freeze.js.map +1 -1
- package/build/commands/index.js +1 -1
- package/build/commands/index.js.map +1 -1
- package/build/commands/info.d.ts.map +1 -1
- package/build/commands/info.js +2 -18
- package/build/commands/info.js.map +1 -1
- package/build/commands/install.js +2 -3
- package/build/commands/install.js.map +1 -1
- package/build/commands/pin.js +1 -1
- package/build/commands/pin.js.map +1 -1
- package/build/commands/prune.js +2 -2
- package/build/commands/prune.js.map +1 -1
- package/build/commands/publish.js +1 -1
- package/build/commands/publish.js.map +1 -1
- package/build/commands/search.d.ts.map +1 -1
- package/build/commands/search.js +1 -13
- package/build/commands/search.js.map +1 -1
- package/build/commands/setup.d.ts +3 -2
- package/build/commands/setup.d.ts.map +1 -1
- package/build/commands/setup.js +396 -72
- package/build/commands/setup.js.map +1 -1
- package/build/commands/sync.d.ts.map +1 -1
- package/build/commands/sync.js +32 -6
- package/build/commands/sync.js.map +1 -1
- package/build/commands/thaw.js +1 -1
- package/build/commands/thaw.js.map +1 -1
- package/build/commands/uninstall.js +1 -1
- package/build/commands/uninstall.js.map +1 -1
- package/build/commands/unpin.js +1 -1
- package/build/commands/unpin.js.map +1 -1
- package/build/commands/update.js +1 -1
- package/build/commands/update.js.map +1 -1
- package/build/lib/config.d.ts +19 -1
- package/build/lib/config.d.ts.map +1 -1
- package/build/lib/config.js +52 -1
- package/build/lib/config.js.map +1 -1
- package/build/lib/diagnostics.d.ts.map +1 -1
- package/build/lib/diagnostics.js +48 -11
- package/build/lib/diagnostics.js.map +1 -1
- package/build/lib/gitignore.d.ts.map +1 -1
- package/build/lib/gitignore.js +4 -0
- package/build/lib/gitignore.js.map +1 -1
- package/build/lib/lockfile.d.ts +13 -5
- package/build/lib/lockfile.d.ts.map +1 -1
- package/build/lib/lockfile.js +38 -16
- package/build/lib/lockfile.js.map +1 -1
- package/build/lib/org.d.ts +2 -2
- package/build/lib/org.d.ts.map +1 -1
- package/build/lib/org.js +3 -3
- package/build/lib/org.js.map +1 -1
- package/build/lib/paths.d.ts +1 -1
- package/build/lib/paths.js +2 -2
- package/build/lib/paths.js.map +1 -1
- package/build/lib/schemas/config.d.ts +6 -0
- package/build/lib/schemas/config.d.ts.map +1 -1
- package/build/lib/schemas/config.js +5 -0
- package/build/lib/schemas/config.js.map +1 -1
- package/build/lib/schemas/index.d.ts +1 -1
- package/build/lib/schemas/index.d.ts.map +1 -1
- package/build/lib/schemas/index.js +1 -1
- package/build/lib/schemas/index.js.map +1 -1
- package/build/lib/schemas/lockfile.d.ts +0 -1
- package/build/lib/schemas/lockfile.d.ts.map +1 -1
- package/build/lib/schemas/lockfile.js +0 -1
- package/build/lib/schemas/lockfile.js.map +1 -1
- package/build/lib/tool-resolver.d.ts.map +1 -1
- package/build/lib/tool-resolver.js +4 -3
- package/build/lib/tool-resolver.js.map +1 -1
- package/build/lib/uninstaller.js +1 -1
- package/build/lib/uninstaller.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const description = "Initialize ATK in a project
|
|
2
|
+
export declare const description = "Initialize ATK in a project \u2014 select tools and create lockfiles";
|
|
3
3
|
export declare const options: z.ZodObject<{
|
|
4
4
|
org: z.ZodOptional<z.ZodString>;
|
|
5
5
|
projectRoot: z.ZodOptional<z.ZodString>;
|
|
6
6
|
tool: z.ZodOptional<z.ZodString>;
|
|
7
|
+
yes: z.ZodDefault<z.ZodBoolean>;
|
|
7
8
|
}, z.core.$strip>;
|
|
8
9
|
type Props = {
|
|
9
10
|
options: z.infer<typeof options>;
|
|
10
11
|
};
|
|
11
|
-
export default function Setup({ options: { org, projectRoot, tool } }: Props): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export default function Setup({ options: { org: orgFlag, projectRoot, tool: toolFlag, yes } }: Props): import("react/jsx-runtime").JSX.Element | null;
|
|
12
13
|
export {};
|
|
13
14
|
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,WAAW,yEAAoE,CAAC;AAE7F,eAAO,MAAM,OAAO;;;;;iBAqClB,CAAC;AAEH,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AASF,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,kDAkenG"}
|
package/build/commands/setup.js
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Text } from 'ink';
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Text, useApp, useInput, useStdin } from 'ink';
|
|
3
|
+
import TextInput from 'ink-text-input';
|
|
3
4
|
import { existsSync } from 'node:fs';
|
|
4
5
|
import { option } from 'pastel';
|
|
6
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
5
7
|
import { z } from 'zod';
|
|
6
8
|
import { Spinner } from '../components/index.js';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
+
import { loadAdapter, loadAllAdapters } from '../lib/adapter.js';
|
|
10
|
+
import { loadConfig, loadProjectConfig, saveProjectConfig } from '../lib/config.js';
|
|
11
|
+
import { ensureGitignoreEntries } from '../lib/gitignore.js';
|
|
12
|
+
import { discoverToolLockfiles, getLockfilePath, readLockfile, writeLockfile } from '../lib/lockfile.js';
|
|
9
13
|
import { findProjectRoot } from '../lib/paths.js';
|
|
10
|
-
|
|
11
|
-
export const description = 'Initialize ATK in a project by creating an empty lockfile';
|
|
14
|
+
export const description = 'Initialize ATK in a project — select tools and create lockfiles';
|
|
12
15
|
export const options = z.object({
|
|
13
16
|
org: z
|
|
14
17
|
.string()
|
|
@@ -31,88 +34,409 @@ export const options = z.object({
|
|
|
31
34
|
alias: 'T',
|
|
32
35
|
description: 'Target tool (e.g., claude-code)',
|
|
33
36
|
})),
|
|
37
|
+
yes: z
|
|
38
|
+
.boolean()
|
|
39
|
+
.default(false)
|
|
40
|
+
.describe(option({
|
|
41
|
+
alias: 'y',
|
|
42
|
+
description: 'Skip interactive prompts (use defaults)',
|
|
43
|
+
})),
|
|
34
44
|
});
|
|
35
|
-
export default function Setup({ options: { org, projectRoot, tool } }) {
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
45
|
+
export default function Setup({ options: { org: orgFlag, projectRoot, tool: toolFlag, yes } }) {
|
|
46
|
+
const { exit } = useApp();
|
|
47
|
+
const { isRawModeSupported: isTTY } = useStdin();
|
|
48
|
+
// Step state machine
|
|
49
|
+
const [step, setStep] = useState('loading');
|
|
50
|
+
// Data collected across steps
|
|
51
|
+
const [projectDir, setProjectDir] = useState('');
|
|
52
|
+
const [adapters, setAdapters] = useState([]);
|
|
53
|
+
const [existingLockfileTools, setExistingLockfileTools] = useState([]);
|
|
54
|
+
const [projectConfig, setProjectConfig] = useState({});
|
|
55
|
+
// Tool selection state
|
|
56
|
+
const [selectedTools, setSelectedTools] = useState(new Set());
|
|
57
|
+
const [cursorIndex, setCursorIndex] = useState(0);
|
|
58
|
+
// Org input state
|
|
59
|
+
const [orgValue, setOrgValue] = useState('');
|
|
60
|
+
// Bootstrap state
|
|
61
|
+
const [newTools, setNewTools] = useState([]);
|
|
62
|
+
const [bootstrapSourceTool, setBootstrapSourceTool] = useState('');
|
|
63
|
+
const [bootstrapAssetCount, setBootstrapAssetCount] = useState(0);
|
|
64
|
+
// Summary state
|
|
65
|
+
const [summaryActions, setSummaryActions] = useState([]);
|
|
66
|
+
// Error state
|
|
67
|
+
const [errorMessage, setErrorMessage] = useState('');
|
|
68
|
+
// ---------------------------------------------------------------------------
|
|
69
|
+
// Step 1: Loading — detect state
|
|
70
|
+
// ---------------------------------------------------------------------------
|
|
71
|
+
useEffect(() => {
|
|
72
|
+
if (step !== 'loading')
|
|
73
|
+
return;
|
|
74
|
+
let cancelled = false;
|
|
75
|
+
const load = async () => {
|
|
76
|
+
const resolvedDir = findProjectRoot(projectRoot);
|
|
77
|
+
const [allAdapters, existingLockfiles, config, projConfig] = await Promise.all([
|
|
78
|
+
loadAllAdapters(),
|
|
79
|
+
discoverToolLockfiles(resolvedDir),
|
|
80
|
+
loadConfig(),
|
|
81
|
+
loadProjectConfig(resolvedDir),
|
|
82
|
+
]);
|
|
83
|
+
if (cancelled)
|
|
84
|
+
return;
|
|
85
|
+
setProjectDir(resolvedDir);
|
|
86
|
+
setAdapters(allAdapters);
|
|
87
|
+
setProjectConfig(projConfig);
|
|
88
|
+
const existingTools = existingLockfiles.map((lf) => lf.tool);
|
|
89
|
+
setExistingLockfileTools(existingTools);
|
|
90
|
+
// Pre-fill org from flags or existing config
|
|
91
|
+
const prefillOrg = orgFlag ?? projConfig.org ?? config.org ?? '';
|
|
92
|
+
setOrgValue(prefillOrg);
|
|
93
|
+
// Determine initial tool selection
|
|
94
|
+
if (toolFlag) {
|
|
95
|
+
// --tool flag: use only the specified tool, skip interactive selection
|
|
96
|
+
setSelectedTools(new Set([toolFlag]));
|
|
97
|
+
if (yes || orgFlag !== undefined) {
|
|
98
|
+
// Non-interactive: skip all prompts
|
|
99
|
+
setStep('creating');
|
|
100
|
+
}
|
|
101
|
+
else if (isTTY) {
|
|
102
|
+
setStep('org-input');
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
setStep('creating');
|
|
106
|
+
}
|
|
107
|
+
return;
|
|
54
108
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
109
|
+
if (yes) {
|
|
110
|
+
// --yes: use defaultTool from user config or auto-detected, skip all prompts
|
|
111
|
+
const defaultTool = config.defaultTool ?? 'claude-code';
|
|
112
|
+
const preSelected = new Set();
|
|
113
|
+
// Include existing lockfile tools
|
|
114
|
+
for (const t of existingTools) {
|
|
115
|
+
preSelected.add(t);
|
|
58
116
|
}
|
|
59
|
-
|
|
117
|
+
// Include default tool
|
|
118
|
+
preSelected.add(defaultTool);
|
|
119
|
+
setSelectedTools(preSelected);
|
|
120
|
+
setStep('creating');
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
// Interactive mode: build pre-selected set for the tool selection step
|
|
124
|
+
const preSelected = new Set();
|
|
125
|
+
for (const t of existingTools) {
|
|
126
|
+
preSelected.add(t);
|
|
60
127
|
}
|
|
61
|
-
|
|
128
|
+
if (config.defaultTool) {
|
|
129
|
+
preSelected.add(config.defaultTool);
|
|
130
|
+
}
|
|
131
|
+
setSelectedTools(preSelected);
|
|
132
|
+
if (allAdapters.length === 0) {
|
|
133
|
+
setErrorMessage('No tool adapters found. Cannot proceed with setup.');
|
|
134
|
+
setStep('error');
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
if (!isTTY) {
|
|
138
|
+
// Non-interactive without --yes: use pre-selected or default
|
|
139
|
+
if (preSelected.size === 0) {
|
|
140
|
+
preSelected.add('claude-code');
|
|
141
|
+
setSelectedTools(preSelected);
|
|
142
|
+
}
|
|
143
|
+
setStep('creating');
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
setStep('select-tools');
|
|
147
|
+
};
|
|
148
|
+
load().catch((err) => {
|
|
149
|
+
if (!cancelled) {
|
|
150
|
+
setErrorMessage(err instanceof Error ? err.message : String(err));
|
|
151
|
+
setStep('error');
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
return () => {
|
|
155
|
+
cancelled = true;
|
|
156
|
+
};
|
|
157
|
+
}, [step, projectRoot, toolFlag, orgFlag, yes, isTTY]);
|
|
158
|
+
// ---------------------------------------------------------------------------
|
|
159
|
+
// Step 2: Tool selection — keyboard handling
|
|
160
|
+
// ---------------------------------------------------------------------------
|
|
161
|
+
useInput((input, key) => {
|
|
162
|
+
if (key.upArrow) {
|
|
163
|
+
setCursorIndex((prev) => (prev > 0 ? prev - 1 : adapters.length - 1));
|
|
62
164
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
if (
|
|
73
|
-
|
|
74
|
-
changes.push(`tool: ${lockfile.tool} -> ${resolvedTool}`);
|
|
75
|
-
}
|
|
76
|
-
if (org !== undefined && org !== lockfile.org) {
|
|
77
|
-
updatedOrg = org || undefined;
|
|
78
|
-
changes.push(org ? `org: ${lockfile.org ?? '(none)'} -> ${org}` : `org: ${lockfile.org} -> (none)`);
|
|
165
|
+
else if (key.downArrow) {
|
|
166
|
+
setCursorIndex((prev) => (prev < adapters.length - 1 ? prev + 1 : 0));
|
|
167
|
+
}
|
|
168
|
+
else if (input === ' ') {
|
|
169
|
+
// Toggle selection
|
|
170
|
+
const tool = adapters[cursorIndex]?.tool;
|
|
171
|
+
if (tool) {
|
|
172
|
+
setSelectedTools((prev) => {
|
|
173
|
+
const next = new Set(prev);
|
|
174
|
+
if (next.has(tool)) {
|
|
175
|
+
next.delete(tool);
|
|
79
176
|
}
|
|
80
|
-
|
|
81
|
-
|
|
177
|
+
else {
|
|
178
|
+
next.add(tool);
|
|
82
179
|
}
|
|
180
|
+
return next;
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
else if (key.return) {
|
|
185
|
+
// Confirm selection — must have at least 1 selected
|
|
186
|
+
if (selectedTools.size > 0) {
|
|
187
|
+
setStep('org-input');
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}, { isActive: step === 'select-tools' && isTTY });
|
|
191
|
+
// ---------------------------------------------------------------------------
|
|
192
|
+
// Step 3: Org input — submission handler
|
|
193
|
+
// ---------------------------------------------------------------------------
|
|
194
|
+
const handleOrgSubmit = useCallback((_value) => {
|
|
195
|
+
// orgValue is already kept in sync via onChange; just advance
|
|
196
|
+
setStep('creating');
|
|
197
|
+
}, []);
|
|
198
|
+
// ---------------------------------------------------------------------------
|
|
199
|
+
// Step 4: Creating — write project config, lockfiles, gitignore
|
|
200
|
+
// ---------------------------------------------------------------------------
|
|
201
|
+
useEffect(() => {
|
|
202
|
+
if (step !== 'creating')
|
|
203
|
+
return;
|
|
204
|
+
let cancelled = false;
|
|
205
|
+
const create = async () => {
|
|
206
|
+
const actions = [];
|
|
207
|
+
const resolvedOrg = orgValue.trim() || undefined;
|
|
208
|
+
const toolsArray = [...selectedTools];
|
|
209
|
+
// Write project config
|
|
210
|
+
const newProjectConfig = {
|
|
211
|
+
...projectConfig,
|
|
212
|
+
...(resolvedOrg !== undefined ? { org: resolvedOrg } : {}),
|
|
213
|
+
};
|
|
214
|
+
// Only remove org from config if it was explicitly cleared (user submitted empty when there was a value)
|
|
215
|
+
if (resolvedOrg === undefined && projectConfig.org !== undefined && orgFlag === undefined && !yes) {
|
|
216
|
+
// User cleared the org interactively
|
|
217
|
+
delete newProjectConfig.org;
|
|
218
|
+
}
|
|
219
|
+
await saveProjectConfig(projectDir, newProjectConfig);
|
|
220
|
+
actions.push({ detail: resolvedOrg ? `org: ${resolvedOrg}` : 'no org', label: 'Wrote .atkrc.json' });
|
|
221
|
+
// Track which tools are newly added
|
|
222
|
+
const createdTools = [];
|
|
223
|
+
// Create lockfiles for each selected tool
|
|
224
|
+
for (const tool of toolsArray) {
|
|
225
|
+
const lockfilePath = getLockfilePath(projectDir, tool);
|
|
226
|
+
if (!existsSync(lockfilePath)) {
|
|
83
227
|
await writeLockfile(projectDir, {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
tool
|
|
228
|
+
assets: [],
|
|
229
|
+
lockVersion: 1,
|
|
230
|
+
tool,
|
|
87
231
|
});
|
|
88
|
-
|
|
89
|
-
|
|
232
|
+
createdTools.push(tool);
|
|
233
|
+
actions.push({ label: `Created .atk-lock.${tool}.json` });
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
actions.push({ label: `.atk-lock.${tool}.json already exists` });
|
|
237
|
+
}
|
|
90
238
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
239
|
+
// Ensure gitignore entries for each selected tool's adapter
|
|
240
|
+
for (const tool of toolsArray) {
|
|
241
|
+
try {
|
|
242
|
+
const adapter = await loadAdapter(tool);
|
|
243
|
+
const { added } = await ensureGitignoreEntries(projectDir, adapter);
|
|
244
|
+
if (added.length > 0) {
|
|
245
|
+
actions.push({ detail: added.join(', '), label: `Updated .gitignore for ${tool}` });
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
catch {
|
|
249
|
+
// Adapter may not exist for a manually specified tool — skip gitignore
|
|
94
250
|
}
|
|
95
|
-
throw error;
|
|
96
251
|
}
|
|
252
|
+
// Ensure .atk-lock.*.json.lock sentinel pattern is in gitignore
|
|
253
|
+
// We do this by checking manually since ensureGitignoreEntries works with adapters
|
|
254
|
+
try {
|
|
255
|
+
const { readFile: readFileAsync, writeFile: writeFileAsync } = await import('node:fs/promises');
|
|
256
|
+
const { join } = await import('node:path');
|
|
257
|
+
const gitignorePath = join(projectDir, '.gitignore');
|
|
258
|
+
let content = '';
|
|
259
|
+
if (existsSync(gitignorePath)) {
|
|
260
|
+
content = await readFileAsync(gitignorePath, 'utf-8');
|
|
261
|
+
}
|
|
262
|
+
const lockPattern = '.atk-lock.*.json.lock';
|
|
263
|
+
if (!content.includes(lockPattern)) {
|
|
264
|
+
const atkHeader = '# ATK managed assets';
|
|
265
|
+
if (content.includes(atkHeader)) {
|
|
266
|
+
// Append after the ATK section
|
|
267
|
+
const lines = content.split('\n');
|
|
268
|
+
const headerIndex = lines.findIndex((line) => line.trim() === atkHeader);
|
|
269
|
+
let insertIndex = headerIndex + 1;
|
|
270
|
+
while (insertIndex < lines.length && lines[insertIndex].trim() !== '' && !lines[insertIndex].startsWith('#')) {
|
|
271
|
+
insertIndex++;
|
|
272
|
+
}
|
|
273
|
+
lines.splice(insertIndex, 0, lockPattern);
|
|
274
|
+
await writeFileAsync(gitignorePath, lines.join('\n'), 'utf-8');
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
const separator = content.length > 0 && !content.endsWith('\n') ? '\n\n' : content.length > 0 ? '\n' : '';
|
|
278
|
+
await writeFileAsync(gitignorePath, `${content}${separator}# ATK managed assets\n${lockPattern}\n`, 'utf-8');
|
|
279
|
+
}
|
|
280
|
+
actions.push({ label: 'Added .atk-lock.*.json.lock to .gitignore' });
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
catch {
|
|
284
|
+
// Non-fatal — gitignore update for sentinels is best-effort
|
|
285
|
+
}
|
|
286
|
+
if (cancelled)
|
|
287
|
+
return;
|
|
288
|
+
setSummaryActions(actions);
|
|
289
|
+
// Check if bootstrapping is needed
|
|
290
|
+
if (createdTools.length > 0 && existingLockfileTools.length > 0) {
|
|
291
|
+
// Find an existing lockfile with assets to bootstrap from
|
|
292
|
+
for (const existingTool of existingLockfileTools) {
|
|
293
|
+
if (selectedTools.has(existingTool) && !createdTools.includes(existingTool)) {
|
|
294
|
+
try {
|
|
295
|
+
const lockfile = await readLockfile(projectDir, existingTool);
|
|
296
|
+
const assetCount = (lockfile.assets ?? []).length;
|
|
297
|
+
if (assetCount > 0) {
|
|
298
|
+
setNewTools(createdTools);
|
|
299
|
+
setBootstrapSourceTool(existingTool);
|
|
300
|
+
setBootstrapAssetCount(assetCount);
|
|
301
|
+
if (yes) {
|
|
302
|
+
// Auto-bootstrap in --yes mode
|
|
303
|
+
await bootstrapLockfiles(projectDir, existingTool, createdTools);
|
|
304
|
+
actions.push({
|
|
305
|
+
detail: `${assetCount} assets from ${existingTool}`,
|
|
306
|
+
label: `Bootstrapped ${createdTools.join(', ')}`,
|
|
307
|
+
});
|
|
308
|
+
setSummaryActions([...actions]);
|
|
309
|
+
setStep('done');
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
if (!isTTY) {
|
|
313
|
+
// Non-interactive: skip bootstrap
|
|
314
|
+
setStep('done');
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
setStep('bootstrap-prompt');
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
catch {
|
|
322
|
+
// Skip this tool if we can't read its lockfile
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
setStep('done');
|
|
328
|
+
};
|
|
329
|
+
create().catch((err) => {
|
|
330
|
+
if (!cancelled) {
|
|
331
|
+
setErrorMessage(err instanceof Error ? err.message : String(err));
|
|
332
|
+
setStep('error');
|
|
333
|
+
}
|
|
334
|
+
});
|
|
335
|
+
return () => {
|
|
336
|
+
cancelled = true;
|
|
337
|
+
};
|
|
338
|
+
}, [step, projectDir, selectedTools, orgValue, projectConfig, orgFlag, yes, existingLockfileTools, isTTY]);
|
|
339
|
+
// ---------------------------------------------------------------------------
|
|
340
|
+
// Step 5: Bootstrap prompt — keyboard handling
|
|
341
|
+
// ---------------------------------------------------------------------------
|
|
342
|
+
const [bootstrapDecided, setBootstrapDecided] = useState(false);
|
|
343
|
+
useInput((input) => {
|
|
344
|
+
if (bootstrapDecided)
|
|
345
|
+
return;
|
|
346
|
+
if (input === 'y' || input === 'Y' || input === '\r') {
|
|
347
|
+
setBootstrapDecided(true);
|
|
348
|
+
bootstrapLockfiles(projectDir, bootstrapSourceTool, newTools)
|
|
349
|
+
.then(() => {
|
|
350
|
+
setSummaryActions((prev) => [
|
|
351
|
+
...prev,
|
|
352
|
+
{
|
|
353
|
+
detail: `${bootstrapAssetCount} assets from ${bootstrapSourceTool}`,
|
|
354
|
+
label: `Bootstrapped ${newTools.join(', ')}`,
|
|
355
|
+
},
|
|
356
|
+
]);
|
|
357
|
+
setStep('done');
|
|
358
|
+
})
|
|
359
|
+
.catch((err) => {
|
|
360
|
+
setErrorMessage(err instanceof Error ? err.message : String(err));
|
|
361
|
+
setStep('error');
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
else if (input === 'n' || input === 'N') {
|
|
365
|
+
setBootstrapDecided(true);
|
|
366
|
+
setStep('done');
|
|
367
|
+
}
|
|
368
|
+
}, { isActive: step === 'bootstrap-prompt' && isTTY && !bootstrapDecided });
|
|
369
|
+
// ---------------------------------------------------------------------------
|
|
370
|
+
// Exit handlers
|
|
371
|
+
// ---------------------------------------------------------------------------
|
|
372
|
+
useEffect(() => {
|
|
373
|
+
if (step === 'error') {
|
|
374
|
+
const timer = setTimeout(() => {
|
|
375
|
+
process.exitCode = 1;
|
|
376
|
+
exit();
|
|
377
|
+
}, 100);
|
|
378
|
+
return () => {
|
|
379
|
+
clearTimeout(timer);
|
|
380
|
+
};
|
|
97
381
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
382
|
+
}, [step, exit]);
|
|
383
|
+
useEffect(() => {
|
|
384
|
+
if (step === 'done') {
|
|
385
|
+
const timer = setTimeout(() => {
|
|
386
|
+
exit();
|
|
387
|
+
}, 100);
|
|
388
|
+
return () => {
|
|
389
|
+
clearTimeout(timer);
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
}, [step, exit]);
|
|
393
|
+
// ---------------------------------------------------------------------------
|
|
394
|
+
// Render
|
|
395
|
+
// ---------------------------------------------------------------------------
|
|
396
|
+
if (step === 'error') {
|
|
397
|
+
return _jsxs(Text, { color: 'red', children: ["Error: ", errorMessage] });
|
|
398
|
+
}
|
|
399
|
+
if (step === 'loading') {
|
|
400
|
+
return _jsx(Spinner, { message: 'Detecting project state...' });
|
|
401
|
+
}
|
|
402
|
+
if (step === 'select-tools') {
|
|
403
|
+
return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Box, { marginBottom: 1, children: [_jsx(Text, { bold: true, children: "Select tools to configure" }), _jsx(Text, { dimColor: true, children: " (space to toggle, enter to confirm)" })] }), adapters.map((adapter, index) => {
|
|
404
|
+
const isSelected = selectedTools.has(adapter.tool);
|
|
405
|
+
const isCursor = index === cursorIndex;
|
|
406
|
+
const hasExistingLockfile = existingLockfileTools.includes(adapter.tool);
|
|
407
|
+
return (_jsx(Box, { children: _jsxs(Text, { color: isCursor ? 'cyan' : undefined, children: [isCursor ? '>' : ' ', " [", isSelected ? 'x' : ' ', "] ", adapter.displayName, _jsxs(Text, { dimColor: true, children: [" (", adapter.tool, ")"] }), hasExistingLockfile && _jsx(Text, { color: 'green', children: " [lockfile exists]" })] }) }, adapter.tool));
|
|
408
|
+
}), selectedTools.size === 0 && (_jsx(Box, { marginTop: 1, children: _jsx(Text, { color: 'yellow', children: "Select at least one tool to continue." }) }))] }));
|
|
104
409
|
}
|
|
105
|
-
if (
|
|
106
|
-
return _jsxs(Text, { color: '
|
|
410
|
+
if (step === 'org-input') {
|
|
411
|
+
return (_jsx(Box, { flexDirection: 'column', children: _jsxs(Box, { children: [_jsx(Text, { color: 'cyan', children: '> ' }), _jsx(Text, { children: "Organization (optional, leave empty for none): " }), _jsx(TextInput, { focus: true, onChange: setOrgValue, onSubmit: handleOrgSubmit, value: orgValue })] }) }));
|
|
107
412
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
return (_jsxs(Text, { color: 'green', children: ["Set up ATK in ", _jsx(Text, { bold: true, children: data.projectDir }), " (tool: ", data.tool, data.org ? `, org: ${data.org}` : '', ")"] }));
|
|
413
|
+
if (step === 'creating') {
|
|
414
|
+
return _jsx(Spinner, { message: 'Setting up project...' });
|
|
111
415
|
}
|
|
112
|
-
if (
|
|
113
|
-
return (
|
|
416
|
+
if (step === 'bootstrap-prompt') {
|
|
417
|
+
return (_jsx(Box, { flexDirection: 'column', children: _jsxs(Text, { children: ["Found ", _jsx(Text, { bold: true, children: bootstrapAssetCount }), " asset", bootstrapAssetCount !== 1 ? 's' : '', " installed for", ' ', _jsx(Text, { bold: true, children: bootstrapSourceTool }), ". Install them for ", _jsx(Text, { bold: true, children: newTools.join(', ') }), "? [Y/n]"] }) }));
|
|
418
|
+
}
|
|
419
|
+
if (step === 'done') {
|
|
420
|
+
return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(Text, { bold: true, color: 'green', children: "ATK setup complete!" }), _jsx(Text, { children: " " }), summaryActions.map((action, index) => (_jsxs(Text, { children: [' ', _jsx(Text, { color: 'green', children: "+" }), " ", action.label, action.detail && _jsxs(Text, { dimColor: true, children: [" (", action.detail, ")"] })] }, index))), _jsx(Text, { children: " " }), _jsxs(Text, { dimColor: true, children: ["Project: ", projectDir] }), _jsxs(Text, { dimColor: true, children: ["Tools: ", [...selectedTools].join(', ')] })] }));
|
|
421
|
+
}
|
|
422
|
+
return null;
|
|
423
|
+
}
|
|
424
|
+
// ---------------------------------------------------------------------------
|
|
425
|
+
// Helpers
|
|
426
|
+
// ---------------------------------------------------------------------------
|
|
427
|
+
/**
|
|
428
|
+
* Bootstrap new tool lockfiles by copying asset entries from an existing lockfile.
|
|
429
|
+
* This is a simple lockfile copy — it does not re-install or fetch from the registry.
|
|
430
|
+
*/
|
|
431
|
+
async function bootstrapLockfiles(projectDir, sourceTool, targetTools) {
|
|
432
|
+
const sourceLockfile = await readLockfile(projectDir, sourceTool);
|
|
433
|
+
const sourceAssets = sourceLockfile.assets ?? [];
|
|
434
|
+
for (const targetTool of targetTools) {
|
|
435
|
+
const targetLockfile = await readLockfile(projectDir, targetTool);
|
|
436
|
+
await writeLockfile(projectDir, {
|
|
437
|
+
...targetLockfile,
|
|
438
|
+
assets: [...(targetLockfile.assets ?? []), ...sourceAssets],
|
|
439
|
+
});
|
|
114
440
|
}
|
|
115
|
-
// data.outcome === 'already-setup'
|
|
116
|
-
return (_jsxs(Text, { children: [_jsx(Text, { color: 'yellow', children: "!" }), " ATK is already set up (tool: ", data.tool, data.org ? `, org: ${data.org}` : '', "). Use ", _jsx(Text, { bold: true, children: "--org" }), " or ", _jsx(Text, { bold: true, children: "--tool" }), " to update."] }));
|
|
117
441
|
}
|
|
118
442
|
//# sourceMappingURL=setup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,eAAO,MAAM,WAAW,8DAA8D,CAAC;AAEvF,eAAO,MAAM,OAAO;;;;;;iBA8ClB,CAAC;AAEH,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAmBF,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,eAAO,MAAM,WAAW,8DAA8D,CAAC;AAEvF,eAAO,MAAM,OAAO;;;;;;iBA8ClB,CAAC;AAEH,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAmBF,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,2CA2W7F"}
|