@tayo-dev/rtl 1.0.0 → 1.3.0-alpha.0

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 (116) hide show
  1. package/README.md +110 -112
  2. package/assets/claude/commands/@tayo-dev/rtl/generate.md +15 -0
  3. package/assets/claude/commands/@tayo-dev/rtl/help.md +16 -0
  4. package/assets/codex/@tayo-dev/rtl-conventions/SKILL.md +19 -0
  5. package/assets/codex/@tayo-dev/rtl-generate/SKILL.md +27 -0
  6. package/assets/codex/@tayo-dev/rtl-help/SKILL.md +25 -0
  7. package/assets/codex/@tayo-dev/rtl-mocks/SKILL.md +22 -0
  8. package/assets/gemini/commands/@tayo-dev/rtl/generate.toml +10 -0
  9. package/assets/gemini/commands/@tayo-dev/rtl/help.toml +11 -0
  10. package/assets/opencode/commands/@tayo-dev/rtl-generate.md +11 -0
  11. package/assets/opencode/commands/@tayo-dev/rtl-help.md +12 -0
  12. package/dist/cli/commands/generate.d.ts +1 -1
  13. package/dist/cli/commands/generate.d.ts.map +1 -1
  14. package/dist/cli/commands/generate.js +88 -149
  15. package/dist/cli/commands/generate.js.map +1 -1
  16. package/dist/cli/commands/install.d.ts +22 -0
  17. package/dist/cli/commands/install.d.ts.map +1 -0
  18. package/dist/cli/commands/install.js +69 -0
  19. package/dist/cli/commands/install.js.map +1 -0
  20. package/dist/core/baseline-normalizer.d.ts +3 -0
  21. package/dist/core/baseline-normalizer.d.ts.map +1 -0
  22. package/dist/core/baseline-normalizer.js +65 -0
  23. package/dist/core/baseline-normalizer.js.map +1 -0
  24. package/dist/core/generator.d.ts.map +1 -1
  25. package/dist/core/generator.js +15 -0
  26. package/dist/core/generator.js.map +1 -1
  27. package/dist/core/input-loader.d.ts +4 -0
  28. package/dist/core/input-loader.d.ts.map +1 -0
  29. package/dist/core/input-loader.js +78 -0
  30. package/dist/core/input-loader.js.map +1 -0
  31. package/dist/core/js-parser.d.ts +6 -2
  32. package/dist/core/js-parser.d.ts.map +1 -1
  33. package/dist/core/js-parser.js +329 -72
  34. package/dist/core/js-parser.js.map +1 -1
  35. package/dist/core/parser.d.ts.map +1 -1
  36. package/dist/core/parser.js +11 -1
  37. package/dist/core/parser.js.map +1 -1
  38. package/dist/core/recording-intelligence.d.ts.map +1 -1
  39. package/dist/core/recording-intelligence.js +31 -5
  40. package/dist/core/recording-intelligence.js.map +1 -1
  41. package/dist/index.d.ts +1 -1
  42. package/dist/index.js +11 -5
  43. package/dist/index.js.map +1 -1
  44. package/dist/install/assets.d.ts +5 -0
  45. package/dist/install/assets.d.ts.map +1 -0
  46. package/dist/install/assets.js +23 -0
  47. package/dist/install/assets.js.map +1 -0
  48. package/dist/install/executor.d.ts +4 -0
  49. package/dist/install/executor.d.ts.map +1 -0
  50. package/dist/install/executor.js +26 -0
  51. package/dist/install/executor.js.map +1 -0
  52. package/dist/install/manifest.d.ts +21 -0
  53. package/dist/install/manifest.d.ts.map +1 -0
  54. package/dist/install/manifest.js +45 -0
  55. package/dist/install/manifest.js.map +1 -0
  56. package/dist/install/options.d.ts +13 -0
  57. package/dist/install/options.d.ts.map +1 -0
  58. package/dist/install/options.js +87 -0
  59. package/dist/install/options.js.map +1 -0
  60. package/dist/install/planner.d.ts +8 -0
  61. package/dist/install/planner.d.ts.map +1 -0
  62. package/dist/install/planner.js +31 -0
  63. package/dist/install/planner.js.map +1 -0
  64. package/dist/install/prompts.d.ts +9 -0
  65. package/dist/install/prompts.d.ts.map +1 -0
  66. package/dist/install/prompts.js +98 -0
  67. package/dist/install/prompts.js.map +1 -0
  68. package/dist/install/registry.d.ts +3 -0
  69. package/dist/install/registry.d.ts.map +1 -0
  70. package/dist/install/registry.js +47 -0
  71. package/dist/install/registry.js.map +1 -0
  72. package/dist/install/resolver.d.ts +8 -0
  73. package/dist/install/resolver.d.ts.map +1 -0
  74. package/dist/install/resolver.js +20 -0
  75. package/dist/install/resolver.js.map +1 -0
  76. package/dist/install/runtimes/claude.d.ts +3 -0
  77. package/dist/install/runtimes/claude.d.ts.map +1 -0
  78. package/dist/install/runtimes/claude.js +8 -0
  79. package/dist/install/runtimes/claude.js.map +1 -0
  80. package/dist/install/runtimes/codex.d.ts +3 -0
  81. package/dist/install/runtimes/codex.d.ts.map +1 -0
  82. package/dist/install/runtimes/codex.js +51 -0
  83. package/dist/install/runtimes/codex.js.map +1 -0
  84. package/dist/install/runtimes/gemini.d.ts +3 -0
  85. package/dist/install/runtimes/gemini.d.ts.map +1 -0
  86. package/dist/install/runtimes/gemini.js +8 -0
  87. package/dist/install/runtimes/gemini.js.map +1 -0
  88. package/dist/install/runtimes/opencode.d.ts +3 -0
  89. package/dist/install/runtimes/opencode.d.ts.map +1 -0
  90. package/dist/install/runtimes/opencode.js +8 -0
  91. package/dist/install/runtimes/opencode.js.map +1 -0
  92. package/dist/install/runtimes/prompt-runtimes.d.ts +3 -0
  93. package/dist/install/runtimes/prompt-runtimes.d.ts.map +1 -0
  94. package/dist/install/runtimes/prompt-runtimes.js +74 -0
  95. package/dist/install/runtimes/prompt-runtimes.js.map +1 -0
  96. package/dist/install/summary.d.ts +12 -0
  97. package/dist/install/summary.d.ts.map +1 -0
  98. package/dist/install/summary.js +112 -0
  99. package/dist/install/summary.js.map +1 -0
  100. package/dist/install/types.d.ts +119 -0
  101. package/dist/install/types.d.ts.map +1 -0
  102. package/dist/install/types.js +5 -0
  103. package/dist/install/types.js.map +1 -0
  104. package/dist/install/verification.d.ts +3 -0
  105. package/dist/install/verification.d.ts.map +1 -0
  106. package/dist/install/verification.js +34 -0
  107. package/dist/install/verification.js.map +1 -0
  108. package/dist/install/writer.d.ts +11 -0
  109. package/dist/install/writer.d.ts.map +1 -0
  110. package/dist/install/writer.js +99 -0
  111. package/dist/install/writer.js.map +1 -0
  112. package/dist/types/recording.d.ts +50 -2
  113. package/dist/types/recording.d.ts.map +1 -1
  114. package/dist/types/recording.js +3 -1
  115. package/dist/types/recording.js.map +1 -1
  116. package/package.json +14 -2
@@ -4,6 +4,7 @@
4
4
  * into a consistent internal representation.
5
5
  */
6
6
  import { readFile } from 'node:fs/promises';
7
+ import { createStepId } from '../types/recording.js';
7
8
  function getFirstSelector(selectors) {
8
9
  if (!selectors || selectors.length === 0)
9
10
  return undefined;
@@ -88,6 +89,13 @@ export function normalizeStep(chromeStep) {
88
89
  originalType: chromeStep.type,
89
90
  });
90
91
  }
92
+ function attachJsonStepIds(steps) {
93
+ return steps.map((step, index) => ({
94
+ ...step,
95
+ id: (step.id ?? createStepId('json', index)),
96
+ source: 'json',
97
+ }));
98
+ }
91
99
  export async function parseRecording(filePath) {
92
100
  let raw;
93
101
  try {
@@ -110,11 +118,13 @@ export async function parseRecording(filePath) {
110
118
  if (!Array.isArray(recording.steps)) {
111
119
  throw new Error('Invalid Chrome Recorder export: "steps" must be an array');
112
120
  }
113
- const steps = recording.steps.map((step) => normalizeStep(step));
121
+ const steps = attachJsonStepIds(recording.steps.map((step) => normalizeStep(step)));
114
122
  return {
115
123
  title: recording.title ?? 'Untitled Recording',
116
124
  steps,
117
125
  rawStepCount: recording.steps.length,
126
+ url: recording.settings?.url,
127
+ settings: recording.settings,
118
128
  };
119
129
  }
120
130
  //# sourceMappingURL=parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/core/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/core/parser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"recording-intelligence.d.ts","sourceRoot":"","sources":["../../src/core/recording-intelligence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACrB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,cAAc,GAAG,cAAc,CAAA;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,WAAW,EAAE,IAAI,CACf,oBAAoB,EACpB,qBAAqB,GAAG,yBAAyB,GAAG,wBAAwB,CAC7E,CAAA;CACF;AAwFD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CAwCxE;AAED,wBAAgB,2BAA2B,CACzC,iBAAiB,EAAE,iBAAiB,GACnC,sBAAsB,EAAE,CA2B1B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,iBAAiB,CA2D3E;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,GAAG,iBAAiB,CAelF"}
1
+ {"version":3,"file":"recording-intelligence.d.ts","sourceRoot":"","sources":["../../src/core/recording-intelligence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACrB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,cAAc,GAAG,cAAc,CAAA;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,WAAW,EAAE,IAAI,CACf,oBAAoB,EACpB,qBAAqB,GAAG,yBAAyB,GAAG,wBAAwB,CAC7E,CAAA;CACF;AAuHD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE,CA4CxE;AAED,wBAAgB,2BAA2B,CACzC,iBAAiB,EAAE,iBAAiB,GACnC,sBAAsB,EAAE,CA2B1B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,iBAAiB,CA2D3E;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,GAAG,iBAAiB,CAelF"}
@@ -1,3 +1,25 @@
1
+ function getAssertionKind(step) {
2
+ const assertion = step.metadata?.assertion;
3
+ if (assertion &&
4
+ typeof assertion === 'object' &&
5
+ 'kind' in assertion &&
6
+ typeof assertion.kind === 'string') {
7
+ return assertion.kind;
8
+ }
9
+ if (step.target === 'location.href') {
10
+ return 'location';
11
+ }
12
+ if (step.target === 'document.title') {
13
+ return 'document-title';
14
+ }
15
+ return undefined;
16
+ }
17
+ function isSyncAssertionStep(step) {
18
+ if (step.action !== 'assert') {
19
+ return false;
20
+ }
21
+ return ['location', 'document-title'].includes(getAssertionKind(step) ?? '');
22
+ }
1
23
  function hasPointerMetadata(step) {
2
24
  return [step.x, step.y, step.offsetX, step.offsetY].some((value) => typeof value === 'number');
3
25
  }
@@ -30,21 +52,22 @@ function pickRepresentativeClick(cluster) {
30
52
  return cluster.find((step) => !isDoubleClickVariant(step)) ?? cluster[0];
31
53
  }
32
54
  function deriveIntentLabel(steps) {
33
- const navigateStep = steps.find((step) => step.action === 'navigate');
55
+ const meaningfulSteps = steps.filter((step) => !isSyncAssertionStep(step));
56
+ const navigateStep = meaningfulSteps.find((step) => step.action === 'navigate');
34
57
  if (navigateStep) {
35
58
  return navigateStep.target ? `navigate to ${navigateStep.target}` : 'navigation flow';
36
59
  }
37
- const submitStep = steps.find((step) => step.action === 'click' &&
60
+ const submitStep = meaningfulSteps.find((step) => step.action === 'click' &&
38
61
  /save|submit|confirm|continue|done|create|update/i.test(step.target ?? ''));
39
62
  if (submitStep?.target) {
40
63
  return `submit ${submitStep.target}`;
41
64
  }
42
- const fillStep = steps.find((step) => step.action === 'fill' || step.action === 'select');
65
+ const fillStep = meaningfulSteps.find((step) => step.action === 'fill' || step.action === 'select');
43
66
  if (fillStep?.target) {
44
67
  return `edit ${fillStep.target}`;
45
68
  }
46
- const clickStep = steps.find((step) => step.action === 'click');
47
- if (clickStep?.target && steps.some((step) => step.action === 'assert')) {
69
+ const clickStep = meaningfulSteps.find((step) => step.action === 'click');
70
+ if (clickStep?.target && meaningfulSteps.some((step) => step.action === 'assert')) {
48
71
  return `confirm ${clickStep.target}`;
49
72
  }
50
73
  if (clickStep?.target) {
@@ -75,6 +98,9 @@ export function inferIntentGroups(steps) {
75
98
  currentGroup = [];
76
99
  };
77
100
  for (const step of steps) {
101
+ if (isSyncAssertionStep(step)) {
102
+ continue;
103
+ }
78
104
  if (step.action === 'navigate') {
79
105
  flushGroup();
80
106
  currentGroup = [step];
@@ -1 +1 @@
1
- {"version":3,"file":"recording-intelligence.js","sourceRoot":"","sources":["../../src/core/recording-intelligence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recording-intelligence.js","sourceRoot":"","sources":["../../src/core/recording-intelligence.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
3
  * Taro CLI entry point
4
- * Generates React Testing Library tests from Chrome Recorder exports.
4
+ * Installer-first package surface with generator access preserved under `generate`.
5
5
  */
6
6
  export {};
7
7
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,18 +1,24 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
3
  * Taro CLI entry point
4
- * Generates React Testing Library tests from Chrome Recorder exports.
4
+ * Installer-first package surface with generator access preserved under `generate`.
5
5
  */
6
6
  import { Command } from 'commander';
7
7
  import pc from 'picocolors';
8
8
  import { createGenerateCommand } from './cli/commands/generate.js';
9
+ import { applyInstallOptions, createInstallCommand, runInstallCommand, } from './cli/commands/install.js';
9
10
  const program = new Command();
11
+ applyInstallOptions(program);
10
12
  program
11
13
  .name('taro')
12
- .description(pc.bold('Taro') +
13
- ' Generate React Testing Library tests from Chrome Recorder exports')
14
- .version('1.0.0', '-v, --version', 'Output the current version')
15
- .helpOption('-h, --help', 'Display help for command');
14
+ .description(`${pc.bold('@tayo-dev/rtl')} — Install Taro into Claude Code, OpenCode, Gemini CLI, or Codex`)
15
+ .version('1.3.0-alpha.0', '-v, --version', 'Output the current version')
16
+ .helpOption('-h, --help', 'Display help for command')
17
+ .addHelpText('after', `\nExisting capability:\n ${pc.bold('taro generate <file>')} Generate RTL tests from Recorder exports`)
18
+ .action(async () => {
19
+ await runInstallCommand(program.optsWithGlobals());
20
+ });
21
+ program.addCommand(createInstallCommand());
16
22
  program.addCommand(createGenerateCommand());
17
23
  program.parse(process.argv);
18
24
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CACV,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC;IACb,sEAAsE,CACzE;KACA,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,4BAA4B,CAAC;KAC/D,UAAU,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAA;AAEvD,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAA;AAE3C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,2BAA2B,CAAA;AAGlC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAE5B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CACV,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,kEAAkE,CAC9F;KACA,OAAO,CAAC,eAAe,EAAE,eAAe,EAAE,4BAA4B,CAAC;KACvE,UAAU,CAAC,YAAY,EAAE,0BAA0B,CAAC;KACpD,WAAW,CACV,OAAO,EACP,6BAA6B,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,4CAA4C,CACzG;KACA,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,iBAAiB,CAAC,OAAO,CAAC,eAAe,EAA2B,CAAC,CAAA;AAC7E,CAAC,CAAC,CAAA;AAEJ,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAA;AAC1C,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAA;AAE3C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { RuntimeTarget } from './types.js';
2
+ export declare function resolvePackageRoot(fromModuleUrl?: string): string;
3
+ export declare function resolveAssetsRoot(fromModuleUrl?: string): string;
4
+ export declare function resolveAssetSource(runtime: RuntimeTarget, sourceSegments?: string[], fromModuleUrl?: string): string;
5
+ //# sourceMappingURL=assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/install/assets.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,wBAAgB,kBAAkB,CAAC,aAAa,GAAE,MAAwB,GAAG,MAAM,CAelF;AAED,wBAAgB,iBAAiB,CAAC,aAAa,GAAE,MAAwB,GAAG,MAAM,CAEjF;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,aAAa,EACtB,cAAc,GAAE,MAAM,EAAO,EAC7B,aAAa,GAAE,MAAwB,GACtC,MAAM,CAER"}
@@ -0,0 +1,23 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { dirname, join } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ export function resolvePackageRoot(fromModuleUrl = import.meta.url) {
5
+ let current = dirname(fileURLToPath(fromModuleUrl));
6
+ while (true) {
7
+ if (existsSync(join(current, 'package.json'))) {
8
+ return current;
9
+ }
10
+ const parent = dirname(current);
11
+ if (parent === current) {
12
+ throw new Error(`Unable to locate package root from ${fromModuleUrl}.`);
13
+ }
14
+ current = parent;
15
+ }
16
+ }
17
+ export function resolveAssetsRoot(fromModuleUrl = import.meta.url) {
18
+ return join(resolvePackageRoot(fromModuleUrl), 'assets');
19
+ }
20
+ export function resolveAssetSource(runtime, sourceSegments = [], fromModuleUrl = import.meta.url) {
21
+ return join(resolveAssetsRoot(fromModuleUrl), runtime, ...sourceSegments);
22
+ }
23
+ //# sourceMappingURL=assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/install/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAW,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAGxC,MAAM,UAAU,kBAAkB,CAAC,gBAAwB,MAAM,CAAC,IAAI,CAAC,GAAG;IACxE,IAAI,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAA;IAEnD,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YAC9C,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/B,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,sCAAsC,aAAa,GAAG,CAAC,CAAA;QACzE,CAAC;QAED,OAAO,GAAG,MAAM,CAAA;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,gBAAwB,MAAM,CAAC,IAAI,CAAC,GAAG;IACvE,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,CAAA;AAC1D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAsB,EACtB,iBAA2B,EAAE,EAC7B,gBAAwB,MAAM,CAAC,IAAI,CAAC,GAAG;IAEvC,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,CAAA;AAC3E,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { InstallExecutionResult, InstallPlan } from './types.js';
2
+ import type { WriteInstallPlanOptions } from './writer.js';
3
+ export declare function executeInstallPlan(plan: InstallPlan, options?: WriteInstallPlanOptions): Promise<InstallExecutionResult>;
4
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/install/executor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAE1D,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,CAAC,CA+BjC"}
@@ -0,0 +1,26 @@
1
+ import { verifyInstalledRuntime } from './verification.js';
2
+ import { writeInstallPlan } from './writer.js';
3
+ export async function executeInstallPlan(plan, options = {}) {
4
+ const targets = await Promise.all(plan.targets.map(async (target) => {
5
+ const result = await writeInstallPlan(target, {
6
+ confirmReplace: options.confirmReplace,
7
+ generatedAt: options.generatedAt,
8
+ });
9
+ if (result.status === 'blocked') {
10
+ return result;
11
+ }
12
+ const verification = await verifyInstalledRuntime(target);
13
+ return {
14
+ ...result,
15
+ verification,
16
+ };
17
+ }));
18
+ const hasSuccessfulWrites = targets.some((target) => target.status !== 'blocked');
19
+ const hasFailures = targets.some((target) => target.status === 'blocked' || target.verification?.status === 'missing-installed-assets');
20
+ return {
21
+ packageName: plan.packageName,
22
+ status: hasFailures ? (hasSuccessfulWrites ? 'partial' : 'blocked') : 'installed',
23
+ targets,
24
+ };
25
+ }
26
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/install/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAI9C,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAiB,EACjB,UAAmC,EAAE;IAErC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE;YAC5C,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAA;QAEF,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,MAAM,CAAA;QACf,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAA;QACzD,OAAO;YACL,GAAG,MAAM;YACT,YAAY;SACb,CAAA;IACH,CAAC,CAAC,CACH,CAAA;IAED,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAA;IACjF,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAC9B,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,YAAY,EAAE,MAAM,KAAK,0BAA0B,CAC5F,CAAA;IAED,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW;QACjF,OAAO;KACR,CAAA;AACH,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { InstallAssetConflict, InstallAssetKind, InstallLocation, InstallOwnershipManifest, InstallOwnedFile, RuntimeTarget } from './types.js';
2
+ export interface CreateOwnershipManifestParams {
3
+ runtime: RuntimeTarget;
4
+ location: InstallLocation;
5
+ files: InstallOwnedFile[];
6
+ generatedAt?: string;
7
+ }
8
+ export interface ClassifyAssetConflictParams {
9
+ targetPath: string;
10
+ existingContent?: string | null;
11
+ manifest?: InstallOwnershipManifest | null;
12
+ relativePath: string;
13
+ }
14
+ export declare function createOwnedFile(params: {
15
+ relativePath: string;
16
+ kind: InstallAssetKind;
17
+ content?: string;
18
+ }): InstallOwnedFile;
19
+ export declare function createOwnershipManifest(params: CreateOwnershipManifestParams): InstallOwnershipManifest;
20
+ export declare function classifyAssetConflict(params: ClassifyAssetConflictParams): InstallAssetConflict;
21
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/install/manifest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EAEpB,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,aAAa,EACd,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,aAAa,CAAA;IACtB,QAAQ,EAAE,eAAe,CAAA;IACzB,KAAK,EAAE,gBAAgB,EAAE,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,EAAE,wBAAwB,GAAG,IAAI,CAAA;IAC1C,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE;IACtC,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,gBAAgB,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,GAAG,gBAAgB,CAUnB;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,6BAA6B,GACpC,wBAAwB,CAS1B;AA2BD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,2BAA2B,GAClC,oBAAoB,CAKtB"}
@@ -0,0 +1,45 @@
1
+ import { createHash } from 'node:crypto';
2
+ export function createOwnedFile(params) {
3
+ const checksum = params.content
4
+ ? createHash('sha256').update(params.content).digest('hex')
5
+ : undefined;
6
+ return {
7
+ relativePath: params.relativePath,
8
+ kind: params.kind,
9
+ checksum,
10
+ };
11
+ }
12
+ export function createOwnershipManifest(params) {
13
+ return {
14
+ packageName: '@tayo-dev/rtl',
15
+ runtime: params.runtime,
16
+ location: params.location,
17
+ manifestVersion: 1,
18
+ generatedAt: params.generatedAt ?? new Date().toISOString(),
19
+ files: params.files,
20
+ };
21
+ }
22
+ function resolveConflictKind(params) {
23
+ const { existingContent, manifest, relativePath } = params;
24
+ if (existingContent == null) {
25
+ return 'missing';
26
+ }
27
+ const manifestFile = manifest?.files.find((file) => file.relativePath === relativePath);
28
+ if (!manifestFile) {
29
+ return 'external-collision';
30
+ }
31
+ if (!manifestFile.checksum) {
32
+ return 'installer-owned';
33
+ }
34
+ const existingChecksum = createHash('sha256').update(existingContent).digest('hex');
35
+ return existingChecksum === manifestFile.checksum
36
+ ? 'installer-owned'
37
+ : 'installer-owned-modified';
38
+ }
39
+ export function classifyAssetConflict(params) {
40
+ return {
41
+ kind: resolveConflictKind(params),
42
+ targetPath: params.targetPath,
43
+ };
44
+ }
45
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/install/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAyBxC,MAAM,UAAU,eAAe,CAAC,MAI/B;IACC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO;QAC7B,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3D,CAAC,CAAC,SAAS,CAAA;IAEb,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ;KACT,CAAA;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,MAAqC;IAErC,OAAO;QACL,WAAW,EAAE,eAAe;QAC5B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,eAAe,EAAE,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC3D,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAmC;IAEnC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;IAE1D,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,YAAY,CAAC,CAAA;IAEvF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,oBAAoB,CAAA;IAC7B,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC3B,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAED,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACnF,OAAO,gBAAgB,KAAK,YAAY,CAAC,QAAQ;QAC/C,CAAC,CAAC,iBAAiB;QACnB,CAAC,CAAC,0BAA0B,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,MAAmC;IAEnC,OAAO;QACL,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC;QACjC,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAA;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { stdin, stdout } from 'node:process';
2
+ import type { InstallCommandOptions, InstallSelection, NormalizedInstallOptions } from './types.js';
3
+ export declare class InstallValidationError extends Error {
4
+ constructor(message: string);
5
+ }
6
+ interface PromptCapability {
7
+ input?: Pick<typeof stdin, 'isTTY'>;
8
+ output?: Pick<typeof stdout, 'isTTY'>;
9
+ }
10
+ export declare function normalizeInstallOptions(options: InstallCommandOptions, io?: PromptCapability): NormalizedInstallOptions;
11
+ export declare function toInstallSelection(normalized: NormalizedInstallOptions): InstallSelection;
12
+ export {};
13
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/install/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,EACV,qBAAqB,EAErB,gBAAgB,EAEhB,wBAAwB,EAGzB,MAAM,YAAY,CAAA;AAGnB,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAI5B;AAED,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,KAAK,EAAE,OAAO,CAAC,CAAA;IACnC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,MAAM,EAAE,OAAO,CAAC,CAAA;CACtC;AA8DD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,qBAAqB,EAC9B,EAAE,GAAE,gBAAmD,GACtD,wBAAwB,CA2B1B;AAED,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,wBAAwB,GACnC,gBAAgB,CA2BlB"}
@@ -0,0 +1,87 @@
1
+ import { stdin, stdout } from 'node:process';
2
+ import { SUPPORTED_RUNTIMES } from './types.js';
3
+ export class InstallValidationError extends Error {
4
+ constructor(message) {
5
+ super(message);
6
+ this.name = 'InstallValidationError';
7
+ }
8
+ }
9
+ function hasPromptCapability(io) {
10
+ return Boolean(io.input?.isTTY && io.output?.isTTY);
11
+ }
12
+ function resolveRuntimeSelection(options) {
13
+ if (options.all) {
14
+ return [...SUPPORTED_RUNTIMES];
15
+ }
16
+ return SUPPORTED_RUNTIMES.filter((runtime) => Boolean(options[runtime]));
17
+ }
18
+ function resolveLocationOption(options) {
19
+ if (options.global && options.local) {
20
+ throw new InstallValidationError('Choose either `--global` or `--local`, not both.');
21
+ }
22
+ if (options.global) {
23
+ return 'global';
24
+ }
25
+ if (options.local) {
26
+ return 'local';
27
+ }
28
+ return undefined;
29
+ }
30
+ function resolveSelectionSource(params) {
31
+ const { runtimesSelected, locationSelected } = params;
32
+ if (runtimesSelected && locationSelected) {
33
+ return 'flags';
34
+ }
35
+ if (runtimesSelected || locationSelected) {
36
+ return 'mixed';
37
+ }
38
+ return 'prompt';
39
+ }
40
+ function fillRuntimeLocations(runtimes, location) {
41
+ if (!location) {
42
+ return {};
43
+ }
44
+ return Object.fromEntries(runtimes.map((runtime) => [runtime, location]));
45
+ }
46
+ export function normalizeInstallOptions(options, io = { input: stdin, output: stdout }) {
47
+ const runtimes = resolveRuntimeSelection(options);
48
+ const location = resolveLocationOption(options);
49
+ const needsRuntimePrompt = runtimes.length === 0;
50
+ const runtimesNeedingLocation = location ? [] : [...runtimes];
51
+ const mode = needsRuntimePrompt || runtimesNeedingLocation.length > 0
52
+ ? 'interactive'
53
+ : 'non-interactive';
54
+ if (mode === 'interactive' && !hasPromptCapability(io)) {
55
+ throw new InstallValidationError('Non-interactive install requires runtime flags (`--claude`, `--opencode`, `--gemini`, `--codex`, or `--all`) and exactly one location flag (`--global` or `--local`).');
56
+ }
57
+ return {
58
+ mode,
59
+ runtimes,
60
+ locations: fillRuntimeLocations(runtimes, location),
61
+ needsRuntimePrompt,
62
+ runtimesNeedingLocation,
63
+ source: resolveSelectionSource({
64
+ runtimesSelected: runtimes.length > 0,
65
+ locationSelected: Boolean(location),
66
+ }),
67
+ };
68
+ }
69
+ export function toInstallSelection(normalized) {
70
+ if (normalized.mode !== 'non-interactive') {
71
+ throw new InstallValidationError('Cannot materialize install selection before interactive prompts complete.');
72
+ }
73
+ const locations = Object.fromEntries(normalized.runtimes.map((runtime) => {
74
+ const location = normalized.locations[runtime];
75
+ if (!location) {
76
+ throw new InstallValidationError(`Missing install location for ${runtime}.`);
77
+ }
78
+ return [runtime, location];
79
+ }));
80
+ return {
81
+ mode: normalized.mode,
82
+ runtimes: normalized.runtimes,
83
+ locations,
84
+ source: normalized.source,
85
+ };
86
+ }
87
+ //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/install/options.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { InstallPlan, InstallSelection } from './types.js';
2
+ interface BuildInstallPlanContext {
3
+ cwd?: string;
4
+ home?: string;
5
+ }
6
+ export declare function buildInstallPlan(selection: InstallSelection, context?: BuildInstallPlanContext): InstallPlan;
7
+ export {};
8
+ //# sourceMappingURL=planner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../src/install/planner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAyB,MAAM,YAAY,CAAA;AAEtF,UAAU,uBAAuB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAeD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,gBAAgB,EAC3B,OAAO,GAAE,uBAA4B,GACpC,WAAW,CAYb"}
@@ -0,0 +1,31 @@
1
+ import { buildClaudeRuntimeOperations } from './runtimes/claude.js';
2
+ import { buildCodexOperations } from './runtimes/codex.js';
3
+ import { buildGeminiRuntimeOperations } from './runtimes/gemini.js';
4
+ import { buildOpenCodeRuntimeOperations } from './runtimes/opencode.js';
5
+ import { resolveInstallTargets } from './resolver.js';
6
+ function buildRuntimeOperations(target) {
7
+ switch (target.id) {
8
+ case 'claude':
9
+ return buildClaudeRuntimeOperations(target);
10
+ case 'opencode':
11
+ return buildOpenCodeRuntimeOperations(target);
12
+ case 'gemini':
13
+ return buildGeminiRuntimeOperations(target);
14
+ case 'codex':
15
+ return buildCodexOperations(target);
16
+ }
17
+ }
18
+ export function buildInstallPlan(selection, context = {}) {
19
+ return {
20
+ packageName: '@tayo-dev/rtl',
21
+ commandName: 'taro',
22
+ stage: 'ready-to-write',
23
+ source: selection.source,
24
+ mode: selection.mode,
25
+ targets: resolveInstallTargets(selection, context).map((target) => ({
26
+ ...target,
27
+ operations: buildRuntimeOperations(target),
28
+ })),
29
+ };
30
+ }
31
+ //# sourceMappingURL=planner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/install/planner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAQrD,SAAS,sBAAsB,CAAC,MAA6B;IAC3D,QAAQ,MAAM,CAAC,EAAE,EAAE,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,4BAA4B,CAAC,MAAM,CAAC,CAAA;QAC7C,KAAK,UAAU;YACb,OAAO,8BAA8B,CAAC,MAAM,CAAC,CAAA;QAC/C,KAAK,QAAQ;YACX,OAAO,4BAA4B,CAAC,MAAM,CAAC,CAAA;QAC7C,KAAK,OAAO;YACV,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAA;IACvC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,SAA2B,EAC3B,UAAmC,EAAE;IAErC,OAAO;QACL,WAAW,EAAE,eAAe;QAC5B,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,OAAO,EAAE,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAClE,GAAG,MAAM;YACT,UAAU,EAAE,sBAAsB,CAAC,MAAM,CAAC;SAC3C,CAAC,CAAC;KACJ,CAAA;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { stdin, stdout } from 'node:process';
2
+ import type { InstallSelection, NormalizedInstallOptions } from './types.js';
3
+ interface PromptIO {
4
+ input?: typeof stdin;
5
+ output?: typeof stdout;
6
+ }
7
+ export declare function promptForInstallChoices(normalized: NormalizedInstallOptions, io?: PromptIO): Promise<InstallSelection>;
8
+ export {};
9
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/install/prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAE5C,OAAO,KAAK,EAEV,gBAAgB,EAChB,wBAAwB,EAGzB,MAAM,YAAY,CAAA;AAInB,UAAU,QAAQ;IAChB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB,MAAM,CAAC,EAAE,OAAO,MAAM,CAAA;CACvB;AAmED,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,wBAAwB,EACpC,EAAE,GAAE,QAA2C,GAC9C,OAAO,CAAC,gBAAgB,CAAC,CA+D3B"}