@detergent-software/atk 3.0.0-dev.2 → 3.0.0-dev.4

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 (64) hide show
  1. package/build/commands/browse.d.ts.map +1 -1
  2. package/build/commands/browse.js +3 -80
  3. package/build/commands/browse.js.map +1 -1
  4. package/build/commands/init.d.ts.map +1 -1
  5. package/build/commands/init.js +39 -405
  6. package/build/commands/init.js.map +1 -1
  7. package/build/commands/prune.d.ts.map +1 -1
  8. package/build/commands/prune.js +14 -32
  9. package/build/commands/prune.js.map +1 -1
  10. package/build/commands/publish.d.ts +3 -1
  11. package/build/commands/publish.d.ts.map +1 -1
  12. package/build/commands/publish.js +65 -390
  13. package/build/commands/publish.js.map +1 -1
  14. package/build/commands/setup.d.ts.map +1 -1
  15. package/build/commands/setup.js +37 -238
  16. package/build/commands/setup.js.map +1 -1
  17. package/build/commands/uninstall.d.ts.map +1 -1
  18. package/build/commands/uninstall.js +93 -211
  19. package/build/commands/uninstall.js.map +1 -1
  20. package/build/components/InitSuccess.d.ts +5 -0
  21. package/build/components/InitSuccess.d.ts.map +1 -0
  22. package/build/components/InitSuccess.js +20 -0
  23. package/build/components/InitSuccess.js.map +1 -0
  24. package/build/components/PromptField.d.ts +19 -0
  25. package/build/components/PromptField.d.ts.map +1 -0
  26. package/build/components/PromptField.js +7 -0
  27. package/build/components/PromptField.js.map +1 -0
  28. package/build/components/index.d.ts +2 -0
  29. package/build/components/index.d.ts.map +1 -1
  30. package/build/components/index.js +2 -0
  31. package/build/components/index.js.map +1 -1
  32. package/build/hooks/useBrowseState.d.ts +23 -0
  33. package/build/hooks/useBrowseState.d.ts.map +1 -1
  34. package/build/hooks/useBrowseState.js +77 -1
  35. package/build/hooks/useBrowseState.js.map +1 -1
  36. package/build/hooks/useConfirmation.d.ts +18 -0
  37. package/build/hooks/useConfirmation.d.ts.map +1 -0
  38. package/build/hooks/useConfirmation.js +56 -0
  39. package/build/hooks/useConfirmation.js.map +1 -0
  40. package/build/hooks/useInitState.d.ts +72 -0
  41. package/build/hooks/useInitState.d.ts.map +1 -0
  42. package/build/hooks/useInitState.js +371 -0
  43. package/build/hooks/useInitState.js.map +1 -0
  44. package/build/hooks/usePublishState.d.ts +115 -0
  45. package/build/hooks/usePublishState.d.ts.map +1 -0
  46. package/build/hooks/usePublishState.js +667 -0
  47. package/build/hooks/usePublishState.js.map +1 -0
  48. package/build/hooks/useSetupState.d.ts +57 -0
  49. package/build/hooks/useSetupState.d.ts.map +1 -0
  50. package/build/hooks/useSetupState.js +283 -0
  51. package/build/hooks/useSetupState.js.map +1 -0
  52. package/build/hooks/useUninstallState.d.ts +91 -0
  53. package/build/hooks/useUninstallState.d.ts.map +1 -0
  54. package/build/hooks/useUninstallState.js +322 -0
  55. package/build/hooks/useUninstallState.js.map +1 -0
  56. package/build/lib/checksum.d.ts +5 -0
  57. package/build/lib/checksum.d.ts.map +1 -1
  58. package/build/lib/checksum.js +18 -18
  59. package/build/lib/checksum.js.map +1 -1
  60. package/build/lib/publisher.d.ts +35 -0
  61. package/build/lib/publisher.d.ts.map +1 -1
  62. package/build/lib/publisher.js +212 -16
  63. package/build/lib/publisher.js.map +1 -1
  64. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"browse.d.ts","sourceRoot":"","sources":["../../src/commands/browse.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwBxB,eAAO,MAAM,WAAW,4CAA4C,CAAC;AASrE,eAAO,MAAM,OAAO;;;;;iBAqClB,CAAC;AAEH,eAAO,MAAM,IAAI,gDAAwE,CAAC;AAE1F,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,IAAI,EAAE,CAAC,SAAS,CAAC,EACjB,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAC9D,EAAE,KAAK,2CA2SP"}
1
+ {"version":3,"file":"browse.d.ts","sourceRoot":"","sources":["../../src/commands/browse.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyBxB,eAAO,MAAM,WAAW,4CAA4C,CAAC;AASrE,eAAO,MAAM,OAAO;;;;;iBAqClB,CAAC;AAEH,eAAO,MAAM,IAAI,gDAAwE,CAAC;AAE1F,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,IAAI,EAAE,CAAC,SAAS,CAAC,EACjB,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAC9D,EAAE,KAAK,2CAyNP"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box, Text, useApp, useInput, useStdout } from 'ink';
2
+ import { Box, Text, useApp, useStdout } from 'ink';
3
3
  import { option } from 'pastel';
4
4
  import { useEffect, useRef } from 'react';
5
5
  import { z } from 'zod';
@@ -8,7 +8,7 @@ import FilterBar from '../components/FilterBar.js';
8
8
  import HelpBar from '../components/HelpBar.js';
9
9
  import { Spinner } from '../components/index.js';
10
10
  import InstallConfirmBar from '../components/InstallConfirmBar.js';
11
- import { TYPE_TABS, useBrowseState, } from '../hooks/useBrowseState.js';
11
+ import { TYPE_TABS, useBrowseInput, useBrowseState, } from '../hooks/useBrowseState.js';
12
12
  import { loadMergedConfig } from '../lib/config.js';
13
13
  import { executeInstallPlan } from '../lib/installer.js';
14
14
  import { LockfileLockedError, readLockfile, withLockfileLock } from '../lib/lockfile.js';
@@ -199,84 +199,7 @@ export default function Browse({ args: [filterArg], options: { org: cliOrg, proj
199
199
  };
200
200
  }, [isInstalling, dispatch]);
201
201
  // Keyboard input
202
- useInput((input, key) => {
203
- if (state.status !== 'ready')
204
- return;
205
- const { mode } = state;
206
- // Install result: any key dismisses
207
- if (mode.kind === 'install-result') {
208
- dispatch({ type: 'DISMISS_RESULT' });
209
- return;
210
- }
211
- // Installing: block all input
212
- if (mode.kind === 'installing')
213
- return;
214
- // Confirming install
215
- if (mode.kind === 'confirming-install') {
216
- if (input === 'y' || input === 'Y' || key.return) {
217
- dispatch({ type: 'CONFIRM_INSTALL' });
218
- }
219
- else if (input === 'n' || input === 'N' || key.escape) {
220
- dispatch({ type: 'CANCEL_INSTALL' });
221
- }
222
- return;
223
- }
224
- // Browsing mode
225
- const { inputMode } = mode;
226
- // Arrow keys and Tab work in both navigate and filter modes
227
- if (key.upArrow) {
228
- dispatch({ type: 'CURSOR_UP' });
229
- return;
230
- }
231
- if (key.downArrow) {
232
- dispatch({ type: 'CURSOR_DOWN' });
233
- return;
234
- }
235
- if (key.tab) {
236
- dispatch({ type: 'CYCLE_TYPE' });
237
- return;
238
- }
239
- if (inputMode === 'filter') {
240
- if (key.escape) {
241
- dispatch({ type: 'EXIT_FILTER_MODE' });
242
- return;
243
- }
244
- if (key.backspace || key.delete) {
245
- dispatch({ type: 'DELETE_FILTER_CHAR' });
246
- return;
247
- }
248
- // Printable characters
249
- if (input && !key.ctrl && !key.meta && !key.return) {
250
- dispatch({ char: input, type: 'APPEND_FILTER_CHAR' });
251
- }
252
- return;
253
- }
254
- // Navigate mode
255
- if (input === '/') {
256
- dispatch({ type: 'ENTER_FILTER_MODE' });
257
- return;
258
- }
259
- if (key.return) {
260
- dispatch({ type: 'EXPAND_TOGGLE' });
261
- return;
262
- }
263
- if (key.escape) {
264
- dispatch({ type: 'COLLAPSE' });
265
- return;
266
- }
267
- if (input === 'i') {
268
- dispatch({ type: 'BEGIN_INSTALL' });
269
- return;
270
- }
271
- if (input === 'o' && state.org) {
272
- dispatch({ type: 'TOGGLE_ORG_FILTER' });
273
- return;
274
- }
275
- if (input === 'q') {
276
- exit();
277
- return;
278
- }
279
- });
202
+ useBrowseInput(state, dispatch, () => exit());
280
203
  // Render
281
204
  if (state.status === 'loading') {
282
205
  return _jsx(Spinner, { message: state.message });
@@ -1 +1 @@
1
- {"version":3,"file":"browse.js","sourceRoot":"","sources":["../../src/commands/browse.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browse.js","sourceRoot":"","sources":["../../src/commands/browse.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsBxB,eAAO,MAAM,WAAW,mCAAmC,CAAC;AAE5D,eAAO,MAAM,OAAO;;;;;;;iBAuDlB,CAAC;AAEH,eAAO,MAAM,IAAI,iCAEf,CAAC;AAeH,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,IAAI,EAAE,CAAC,OAAO,CAAC,EACf,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAC1G,EAAE,KAAK,kDAikBP"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,WAAW,mCAAmC,CAAC;AAE5D,eAAO,MAAM,OAAO;;;;;;;iBAuDlB,CAAC;AAEH,eAAO,MAAM,IAAI,iCAEf,CAAC;AAEH,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,IAAI,EAAE,CAAC,OAAO,CAAC,EACf,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAC1G,EAAE,KAAK,kDA0JP"}
@@ -1,18 +1,10 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Box, Text, useApp } from 'ink';
3
- import TextInput from 'ink-text-input';
4
- import { relative } from 'node:path';
5
3
  import { option } from 'pastel';
6
- import { useCallback, useEffect, useState } from 'react';
4
+ import { useCallback, useEffect } from 'react';
7
5
  import { z } from 'zod';
8
- import { Spinner } from '../components/index.js';
9
- import { loadConfig } from '../lib/config.js';
10
- import { checkNameAvailability, detectCompatibleTools, forkFromInstalled, getEntrypointName, getGitUserName, INIT_TYPES, scaffoldAsset, validateAssetName, } from '../lib/init.js';
11
- import { readLockfile } from '../lib/lockfile.js';
12
- import { parseOrgFromName } from '../lib/org.js';
13
- import { findProjectRoot } from '../lib/paths.js';
14
- import { fetchRegistry } from '../lib/registry.js';
15
- import { resolveTool } from '../lib/tool-resolver.js';
6
+ import { InitSuccess, PromptField, Spinner } from '../components/index.js';
7
+ import { useInitState } from '../hooks/useInitState.js';
16
8
  export const description = 'Scaffold a new asset or bundle';
17
9
  export const options = z.object({
18
10
  author: z
@@ -63,349 +55,20 @@ export const args = z.tuple([
63
55
  ]);
64
56
  export default function Init({ args: [rawType], options: { author: authorFlag, description: descriptionFlag, from, name: nameFlag, offline, org: cliOrg }, }) {
65
57
  const { exit } = useApp();
66
- // Phase state machine
67
- const [phase, setPhase] = useState('validate-type');
68
- // Field values
69
- const [assetType, setAssetType] = useState('skill');
70
- const [orgValue, setOrgValue] = useState('');
71
- const [nameValue, setNameValue] = useState(nameFlag ?? '');
72
- const [descriptionValue, setDescriptionValue] = useState(descriptionFlag ?? '');
73
- const [authorValue, setAuthorValue] = useState(authorFlag ?? '');
74
- const [tagsValue, setTagsValue] = useState('');
75
- const [bundleAssetsValue, setBundleAssetsValue] = useState('');
76
- const [tools, setTools] = useState([]);
77
- // Validation and status
78
- const [nameError, setNameError] = useState();
79
- const [registryWarning, setRegistryWarning] = useState();
80
- const [errorMessage, setErrorMessage] = useState('');
81
- const [result, setResult] = useState();
82
- // Fork data
83
- const [forkFiles, setForkFiles] = useState();
84
- // Track whether git author has been resolved for pre-fill
85
- const [gitAuthorResolved, setGitAuthorResolved] = useState(false);
86
- // ---------------------------------------------------------------------------
87
- // Phase 1: Validate type
88
- // ---------------------------------------------------------------------------
89
- useEffect(() => {
90
- if (phase !== 'validate-type')
91
- return;
92
- const typeLower = rawType.toLowerCase();
93
- if (!INIT_TYPES.includes(typeLower)) {
94
- setErrorMessage(`Invalid type "${rawType}". Must be one of: ${INIT_TYPES.join(', ')}`);
95
- setPhase('error');
96
- return;
97
- }
98
- setAssetType(typeLower);
99
- setPhase('pre-fill');
100
- }, [phase, rawType]);
101
- // ---------------------------------------------------------------------------
102
- // Phase 2: Pre-fill from --from flag or git author
103
- // ---------------------------------------------------------------------------
104
- useEffect(() => {
105
- if (phase !== 'pre-fill')
106
- return;
107
- let cancelled = false;
108
- const preFill = async () => {
109
- // Resolve org from CLI flag or @org/name in name flag
110
- let prefillOrg = cliOrg;
111
- // Parse @org/name from the name flag if provided
112
- if (nameFlag) {
113
- const parsed = parseOrgFromName(nameFlag);
114
- if (parsed.org) {
115
- prefillOrg = prefillOrg ?? parsed.org;
116
- setNameValue(parsed.name);
117
- }
118
- }
119
- // Fall back to lockfile org, then config org
120
- if (!prefillOrg) {
121
- try {
122
- const projectDir = findProjectRoot();
123
- const [lockfile, config] = await Promise.all([readLockfile(projectDir), loadConfig()]);
124
- prefillOrg = lockfile.org ?? config.org;
125
- }
126
- catch {
127
- // No lockfile or project root — ignore
128
- }
129
- }
130
- if (prefillOrg) {
131
- setOrgValue(prefillOrg);
132
- }
133
- // If --from flag is provided, load fork data
134
- if (from) {
135
- try {
136
- const projectDir = findProjectRoot();
137
- const lockfile = await readLockfile(projectDir);
138
- const { adapter } = await resolveTool(undefined, projectDir);
139
- const forkData = await forkFromInstalled(from, lockfile, adapter, projectDir);
140
- if (cancelled)
141
- return;
142
- if (!forkData) {
143
- setErrorMessage(`Asset "${from}" is not installed. Install it first with: atk install ${from}`);
144
- setPhase('error');
145
- return;
146
- }
147
- // Pre-fill from fork data
148
- if (forkData.manifest.description && !descriptionFlag) {
149
- setDescriptionValue(forkData.manifest.description);
150
- }
151
- setForkFiles(forkData.files);
152
- }
153
- catch (err) {
154
- if (cancelled)
155
- return;
156
- setErrorMessage(`Failed to load asset for forking: ${err instanceof Error ? err.message : String(err)}`);
157
- setPhase('error');
158
- return;
159
- }
160
- }
161
- // Pre-fill author from git if not provided
162
- if (!authorFlag) {
163
- try {
164
- const gitName = await getGitUserName();
165
- if (cancelled)
166
- return;
167
- if (gitName) {
168
- setAuthorValue(gitName);
169
- }
170
- }
171
- catch {
172
- // Ignore git author detection failure
173
- }
174
- }
175
- // Detect compatible tools during pre-fill (avoids raw mode timing issues later)
176
- try {
177
- const detected = await detectCompatibleTools(assetType);
178
- if (cancelled)
179
- return;
180
- setTools(detected);
181
- }
182
- catch {
183
- if (cancelled)
184
- return;
185
- setTools([]);
186
- }
187
- if (cancelled)
188
- return;
189
- setGitAuthorResolved(true);
190
- // If all required flags are provided, skip prompts
191
- if (nameFlag && descriptionFlag && authorFlag) {
192
- // Validate name first
193
- const parsedName = parseOrgFromName(nameFlag);
194
- const validation = validateAssetName(parsedName.name);
195
- if (!validation.valid) {
196
- setErrorMessage(`Invalid name: ${validation.error}`);
197
- setPhase('error');
198
- return;
199
- }
200
- // Skip straight to tags prompt (tools already detected above)
201
- setPhase('tags-prompt');
202
- }
203
- else {
204
- // Start interactive prompts — org prompt first, then missing fields
205
- setPhase('org-prompt');
206
- }
207
- };
208
- preFill().catch((err) => {
209
- if (!cancelled) {
210
- setErrorMessage(err instanceof Error ? err.message : String(err));
211
- setPhase('error');
212
- }
213
- });
214
- return () => {
215
- cancelled = true;
216
- };
217
- }, [phase, from, nameFlag, descriptionFlag, authorFlag, offline, cliOrg, assetType]);
218
- // ---------------------------------------------------------------------------
219
- // Background registry name check (fire-and-forget, updates warning only)
220
- // ---------------------------------------------------------------------------
221
- useEffect(() => {
222
- if (!nameValue || offline || !assetType)
223
- return;
224
- // Only run once we've moved past name entry
225
- if (phase === 'validate-type' || phase === 'pre-fill' || phase === 'org-prompt' || phase === 'name-prompt')
226
- return;
227
- let cancelled = false;
228
- const check = async () => {
229
- try {
230
- const registry = await fetchRegistry();
231
- if (cancelled)
232
- return;
233
- const { available, existingVersion } = checkNameAvailability(nameValue, assetType, registry, orgValue || undefined);
234
- if (!available) {
235
- setRegistryWarning(`Name "${nameValue}" already exists in the registry (v${existingVersion}). You can still use it for local development.`);
236
- }
237
- }
238
- catch {
239
- // Non-blocking
240
- }
241
- };
242
- check().catch(() => { });
243
- return () => {
244
- cancelled = true;
245
- };
246
- }, [nameValue, assetType, offline, orgValue, phase]);
247
- // ---------------------------------------------------------------------------
248
- // Phase: Executing scaffolding
249
- // ---------------------------------------------------------------------------
250
- useEffect(() => {
251
- if (phase !== 'executing')
252
- return;
253
- let cancelled = false;
254
- const execute = async () => {
255
- const tags = tagsValue
256
- .split(',')
257
- .map((t) => t.trim())
258
- .filter((t) => t.length > 0);
259
- const bundleAssets = assetType === 'bundle' && bundleAssetsValue
260
- ? bundleAssetsValue
261
- .split(',')
262
- .map((a) => a.trim())
263
- .filter((a) => a.length > 0)
264
- : undefined;
265
- const initOptions = {
266
- author: authorValue,
267
- bundleAssets,
268
- description: descriptionValue,
269
- from,
270
- name: nameValue,
271
- offline,
272
- org: orgValue || undefined,
273
- tags,
274
- tools,
275
- type: assetType,
276
- };
277
- const scaffoldResult = await scaffoldAsset(initOptions, process.cwd());
278
- if (cancelled)
279
- return;
280
- // If forking, write fork files into the output directory
281
- if (forkFiles && forkFiles.size > 0) {
282
- const { writeFile } = await import('node:fs/promises');
283
- const { join } = await import('node:path');
284
- for (const [sourcePath, content] of forkFiles) {
285
- const targetPath = join(scaffoldResult.outputDir, sourcePath);
286
- try {
287
- await writeFile(targetPath, content, 'utf-8');
288
- }
289
- catch {
290
- // Skip files that cannot be written
291
- }
292
- }
293
- }
294
- setResult(scaffoldResult);
295
- setPhase('done');
296
- };
297
- execute().catch((err) => {
298
- if (!cancelled) {
299
- setErrorMessage(`Scaffolding failed: ${err instanceof Error ? err.message : String(err)}`);
300
- setPhase('error');
301
- }
302
- });
303
- return () => {
304
- cancelled = true;
305
- };
306
- }, [
307
- phase,
308
- assetType,
309
- authorValue,
310
- bundleAssetsValue,
311
- descriptionValue,
312
- forkFiles,
58
+ const flags = {
59
+ authorFlag,
60
+ cliOrg,
61
+ descriptionFlag,
313
62
  from,
314
- nameValue,
63
+ nameFlag,
315
64
  offline,
316
- orgValue,
317
- tagsValue,
318
- tools,
319
- ]);
320
- // ---------------------------------------------------------------------------
321
- // Prompt submission handlers
322
- // ---------------------------------------------------------------------------
323
- const handleOrgSubmit = useCallback((value) => {
324
- const trimmed = value.trim();
325
- setOrgValue(trimmed);
326
- // Route to the next needed prompt
327
- if (!nameFlag) {
328
- setPhase('name-prompt');
329
- }
330
- else {
331
- // Name was provided via flag — validate it
332
- const parsedName = parseOrgFromName(nameFlag);
333
- const validation = validateAssetName(parsedName.name);
334
- if (!validation.valid) {
335
- setErrorMessage(`Invalid name: ${validation.error}`);
336
- setPhase('error');
337
- return;
338
- }
339
- setNameValue(parsedName.name);
340
- if (!descriptionFlag) {
341
- setPhase('description-prompt');
342
- }
343
- else if (!authorFlag) {
344
- setPhase('author-prompt');
345
- }
346
- else {
347
- setPhase('tags-prompt');
348
- }
349
- }
350
- }, [nameFlag, descriptionFlag, authorFlag]);
351
- const handleNameSubmit = useCallback((value) => {
352
- const trimmed = value.trim();
353
- const validation = validateAssetName(trimmed);
354
- if (!validation.valid) {
355
- setNameError(validation.error);
356
- return;
357
- }
358
- setNameError(undefined);
359
- setNameValue(trimmed);
360
- if (!descriptionFlag) {
361
- setPhase('description-prompt');
362
- }
363
- else if (!authorFlag) {
364
- setPhase('author-prompt');
365
- }
366
- else {
367
- setPhase('tags-prompt');
368
- }
369
- }, [descriptionFlag, authorFlag]);
370
- const handleDescriptionSubmit = useCallback((value) => {
371
- const trimmed = value.trim();
372
- if (trimmed.length === 0) {
373
- return; // Description is required
374
- }
375
- setDescriptionValue(trimmed);
376
- if (!authorFlag) {
377
- setPhase('author-prompt');
378
- }
379
- else {
380
- setPhase('tags-prompt');
381
- }
382
- }, [authorFlag]);
383
- const handleAuthorSubmit = useCallback((value) => {
384
- const trimmed = value.trim();
385
- if (trimmed.length === 0) {
386
- return; // Author is required
387
- }
388
- setAuthorValue(trimmed);
389
- setPhase('tags-prompt');
390
- }, []);
391
- const handleTagsSubmit = useCallback((_value) => {
392
- // Tags are already stored via onChange; just advance phase
393
- if (assetType === 'bundle') {
394
- setPhase('bundle-assets-prompt');
395
- }
396
- else {
397
- setPhase('executing');
398
- }
399
- }, [assetType]);
400
- const handleBundleAssetsSubmit = useCallback((_value) => {
401
- // Bundle assets already stored via onChange; advance to execution
402
- setPhase('executing');
403
- }, []);
65
+ };
66
+ const [state, dispatch] = useInitState(rawType, flags);
404
67
  // ---------------------------------------------------------------------------
405
- // Exit on error
68
+ // Exit effects
406
69
  // ---------------------------------------------------------------------------
407
70
  useEffect(() => {
408
- if (phase === 'error') {
71
+ if (state.phase === 'error') {
409
72
  const timer = setTimeout(() => {
410
73
  process.exitCode = 1;
411
74
  exit();
@@ -414,12 +77,9 @@ export default function Init({ args: [rawType], options: { author: authorFlag, d
414
77
  clearTimeout(timer);
415
78
  };
416
79
  }
417
- }, [phase, exit]);
418
- // ---------------------------------------------------------------------------
419
- // Exit on done
420
- // ---------------------------------------------------------------------------
80
+ }, [state.phase, exit]);
421
81
  useEffect(() => {
422
- if (phase === 'done') {
82
+ if (state.phase === 'done') {
423
83
  const timer = setTimeout(() => {
424
84
  exit();
425
85
  }, 100);
@@ -427,71 +87,45 @@ export default function Init({ args: [rawType], options: { author: authorFlag, d
427
87
  clearTimeout(timer);
428
88
  };
429
89
  }
430
- }, [phase, exit]);
90
+ }, [state.phase, exit]);
91
+ // ---------------------------------------------------------------------------
92
+ // Field change handler
93
+ // ---------------------------------------------------------------------------
94
+ const setField = useCallback((field) => (value) => {
95
+ dispatch({ field, type: 'SET_FIELD', value });
96
+ }, [dispatch]);
431
97
  // ---------------------------------------------------------------------------
432
98
  // Render
433
99
  // ---------------------------------------------------------------------------
434
- // Error state
435
- if (phase === 'error') {
436
- return _jsxs(Text, { color: 'red', children: ["Error: ", errorMessage] });
100
+ if (state.phase === 'error') {
101
+ return _jsxs(Text, { color: 'red', children: ["Error: ", state.errorMessage] });
437
102
  }
438
- // Loading/spinner states
439
- if (phase === 'validate-type') {
440
- return null;
441
- }
442
- if (phase === 'pre-fill' && !gitAuthorResolved) {
103
+ if (state.phase === 'pre-fill') {
443
104
  return _jsx(Spinner, { message: from ? `Loading asset "${from}" for forking...` : 'Preparing...' });
444
105
  }
445
- if (phase === 'executing') {
106
+ if (state.phase === 'executing') {
446
107
  return _jsx(Spinner, { message: 'Scaffolding files...' });
447
108
  }
448
- // Interactive prompt: Org
449
- if (phase === 'org-prompt') {
450
- return (_jsx(Box, { flexDirection: 'column', children: _jsxs(Box, { children: [_jsx(Text, { color: 'cyan', children: '> ' }), _jsx(Text, { children: "Org (optional, leave empty for none): " }), _jsx(TextInput, { focus: true, onChange: setOrgValue, onSubmit: handleOrgSubmit, value: orgValue })] }) }));
109
+ if (state.phase === 'org-prompt') {
110
+ return (_jsx(PromptField, { label: 'Org (optional, leave empty for none): ', onChange: setField('org'), onSubmit: (v) => dispatch({ type: 'SUBMIT_ORG', value: v }), value: state.fields.org }));
451
111
  }
452
- // Interactive prompt: Name
453
- if (phase === 'name-prompt') {
454
- return (_jsxs(Box, { flexDirection: 'column', children: [registryWarning && _jsxs(Text, { color: 'yellow', children: ["Warning: ", registryWarning] }), _jsxs(Box, { children: [_jsx(Text, { color: 'cyan', children: '> ' }), orgValue && _jsxs(Text, { children: ["Name (kebab-case): @", orgValue, "/"] }), !orgValue && _jsx(Text, { children: "Name (kebab-case): " }), _jsx(TextInput, { focus: true, onChange: (value) => {
455
- setNameValue(value);
456
- if (nameError) {
457
- const validation = validateAssetName(value.trim());
458
- if (validation.valid) {
459
- setNameError(undefined);
460
- }
461
- }
462
- }, onSubmit: handleNameSubmit, value: nameValue })] }), nameError && _jsxs(Text, { color: 'red', children: [" ", nameError] })] }));
112
+ if (state.phase === 'name-prompt') {
113
+ return (_jsx(PromptField, { error: state.nameError, label: 'Name (kebab-case): ', onChange: setField('name'), onSubmit: (v) => dispatch({ type: 'SUBMIT_NAME', value: v }), prefix: state.fields.org ? `@${state.fields.org}/` : undefined, value: state.fields.name, warning: state.registryWarning }));
463
114
  }
464
- // Interactive prompt: Description
465
- if (phase === 'description-prompt') {
466
- return (_jsxs(Box, { flexDirection: 'column', children: [registryWarning && _jsxs(Text, { color: 'yellow', children: ["Warning: ", registryWarning] }), _jsxs(Box, { children: [_jsx(Text, { color: 'cyan', children: '> ' }), _jsx(Text, { children: "Description: " }), _jsx(TextInput, { focus: true, onChange: setDescriptionValue, onSubmit: handleDescriptionSubmit, value: descriptionValue })] })] }));
115
+ if (state.phase === 'description-prompt') {
116
+ return (_jsx(PromptField, { label: 'Description: ', onChange: setField('description'), onSubmit: (v) => dispatch({ type: 'SUBMIT_DESCRIPTION', value: v }), value: state.fields.description, warning: state.registryWarning }));
467
117
  }
468
- // Interactive prompt: Author
469
- if (phase === 'author-prompt') {
470
- return (_jsx(Box, { flexDirection: 'column', children: _jsxs(Box, { children: [_jsx(Text, { color: 'cyan', children: '> ' }), _jsx(Text, { children: "Author: " }), _jsx(TextInput, { focus: true, onChange: setAuthorValue, onSubmit: handleAuthorSubmit, value: authorValue })] }) }));
118
+ if (state.phase === 'author-prompt') {
119
+ return (_jsx(PromptField, { label: 'Author: ', onChange: setField('author'), onSubmit: (v) => dispatch({ type: 'SUBMIT_AUTHOR', value: v }), value: state.fields.author }));
471
120
  }
472
- // Interactive prompt: Tags
473
- if (phase === 'tags-prompt') {
474
- return (_jsxs(Box, { flexDirection: 'column', children: [tools.length > 0 && (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { dimColor: true, children: ["Compatible tools: ", tools.join(', ')] }) })), _jsxs(Box, { children: [_jsx(Text, { color: 'cyan', children: '> ' }), _jsx(Text, { children: "Tags (comma-separated, optional): " }), _jsx(TextInput, { focus: true, onChange: setTagsValue, onSubmit: handleTagsSubmit, value: tagsValue })] })] }));
121
+ if (state.phase === 'tags-prompt') {
122
+ return (_jsx(PromptField, { label: 'Tags (comma-separated, optional): ', onChange: setField('tags'), onSubmit: () => dispatch({ type: 'SUBMIT_TAGS' }), value: state.fields.tags, children: state.tools.length > 0 && (_jsx(Box, { marginBottom: 1, children: _jsxs(Text, { dimColor: true, children: ["Compatible tools: ", state.tools.join(', ')] }) })) }));
475
123
  }
476
- // Interactive prompt: Bundle assets
477
- if (phase === 'bundle-assets-prompt') {
478
- return (_jsxs(Box, { flexDirection: 'column', children: [_jsx(Box, { marginBottom: 1, children: _jsx(Text, { dimColor: true, children: "Enter assets as comma-separated type:name pairs (e.g., skill:my-skill, rule:my-rule)" }) }), _jsxs(Box, { children: [_jsx(Text, { color: 'cyan', children: '> ' }), _jsx(Text, { children: "Bundle assets: " }), _jsx(TextInput, { focus: true, onChange: setBundleAssetsValue, onSubmit: handleBundleAssetsSubmit, value: bundleAssetsValue })] })] }));
124
+ if (state.phase === 'bundle-assets-prompt') {
125
+ return (_jsx(PromptField, { label: 'Bundle assets: ', onChange: setField('bundleAssets'), onSubmit: () => dispatch({ type: 'SUBMIT_BUNDLE_ASSETS' }), value: state.fields.bundleAssets, children: _jsx(Box, { marginBottom: 1, children: _jsx(Text, { dimColor: true, children: "Enter assets as comma-separated type:name pairs (e.g., skill:my-skill, rule:my-rule)" }) }) }));
479
126
  }
480
- // Done state
481
- if (phase === 'done' && result) {
482
- const relativePath = `./${relative(process.cwd(), result.outputDir).replace(/\\/g, '/')}`;
483
- const entrypoint = getEntrypointName(result.type, result.name);
484
- let step1;
485
- if (result.type === 'bundle') {
486
- step1 = 'Edit bundle.json to add your assets';
487
- }
488
- else if (result.type === 'mcp-config') {
489
- step1 = 'Edit manifest.json with your MCP config';
490
- }
491
- else {
492
- step1 = `Edit ${entrypoint} with your content`;
493
- }
494
- return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { color: 'green', children: ["Created ", result.type, " \"", _jsx(Text, { bold: true, children: result.name }), "\" at ", relativePath, "/"] }), _jsx(Text, { children: " " }), _jsx(Text, { bold: true, children: "Next steps:" }), _jsxs(Text, { children: [" 1. ", step1] }), result.type !== 'bundle' && _jsx(Text, { children: " 2. Update manifest.json as needed" }), result.type === 'bundle' && _jsx(Text, { children: " 2. Update bundle.json as needed" }), _jsxs(Text, { children: [" 3. Run: atk publish ", relativePath] })] }));
127
+ if (state.phase === 'done' && state.result) {
128
+ return _jsx(InitSuccess, { result: state.result });
495
129
  }
496
130
  return null;
497
131
  }