outfitter 0.2.6 → 0.2.7

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 (147) hide show
  1. package/README.md +52 -26
  2. package/dist/actions.d.ts +1 -1
  3. package/dist/actions.js +20 -19
  4. package/dist/cli.js +3 -2
  5. package/dist/commands/add.d.ts +4 -4
  6. package/dist/commands/check-tsdoc.d.ts +22 -0
  7. package/dist/commands/check-tsdoc.js +8 -0
  8. package/dist/commands/check.d.ts +12 -12
  9. package/dist/commands/check.js +1 -1
  10. package/dist/commands/demo.d.ts +3 -3
  11. package/dist/commands/docs-module-loader.d.ts +1 -1
  12. package/dist/commands/doctor.d.ts +2 -2
  13. package/dist/commands/doctor.js +13 -1
  14. package/dist/commands/init.d.ts +6 -6
  15. package/dist/commands/init.js +12 -11
  16. package/dist/commands/repo.d.ts +2 -2
  17. package/dist/commands/scaffold.d.ts +3 -3
  18. package/dist/commands/scaffold.js +12 -11
  19. package/dist/commands/shared-deps.d.ts +1 -16
  20. package/dist/commands/shared-deps.js +2 -1
  21. package/dist/commands/upgrade-codemods.d.ts +4 -4
  22. package/dist/commands/upgrade-codemods.js +2 -2
  23. package/dist/commands/upgrade-planner.d.ts +6 -6
  24. package/dist/commands/upgrade-workspace.d.ts +1 -75
  25. package/dist/commands/upgrade.d.ts +66 -59
  26. package/dist/commands/upgrade.js +2 -2
  27. package/dist/create/index.d.ts +4 -4
  28. package/dist/create/index.js +13 -12
  29. package/dist/create/planner.d.ts +2 -2
  30. package/dist/create/planner.js +9 -8
  31. package/dist/create/presets.d.ts +2 -2
  32. package/dist/create/types.d.ts +1 -1
  33. package/dist/engine/blocks.d.ts +2 -2
  34. package/dist/engine/blocks.js +1 -1
  35. package/dist/engine/collector.d.ts +1 -1
  36. package/dist/engine/config.d.ts +2 -2
  37. package/dist/engine/config.js +5 -2
  38. package/dist/engine/dependency-versions.d.ts +12 -0
  39. package/dist/engine/dependency-versions.js +12 -0
  40. package/dist/engine/executor.d.ts +2 -2
  41. package/dist/engine/executor.js +7 -4
  42. package/dist/engine/index.d.ts +8 -8
  43. package/dist/engine/index.js +28 -19
  44. package/dist/engine/names.d.ts +2 -2
  45. package/dist/engine/names.js +10 -2
  46. package/dist/engine/post-scaffold.d.ts +2 -2
  47. package/dist/engine/render-plan.d.ts +1 -1
  48. package/dist/engine/template.d.ts +2 -2
  49. package/dist/engine/types.d.ts +1 -1
  50. package/dist/engine/workspace.d.ts +3 -3
  51. package/dist/engine/workspace.js +8 -1
  52. package/dist/index.d.ts +93 -132
  53. package/dist/index.js +1 -9
  54. package/dist/manifest.d.ts +4 -4
  55. package/dist/output-mode.d.ts +1 -1
  56. package/dist/shared/{chunk-k59f60cp.js → chunk-x6644tk8.js} +3017 -2520
  57. package/dist/shared/outfitter-109s75x0.d.ts +76 -0
  58. package/dist/shared/{outfitter-2np85etz.js → outfitter-1fy7byz5.js} +76 -1
  59. package/dist/shared/outfitter-20f6a2n4.js +35 -0
  60. package/dist/shared/outfitter-4q1zfmvc.js +154 -0
  61. package/dist/shared/{outfitter-66b25bj8.js → outfitter-5akzvppx.js} +4 -4
  62. package/dist/shared/outfitter-5y646xzk.js +301 -0
  63. package/dist/shared/{outfitter-j8yc7294.d.ts → outfitter-5yjr404v.d.ts} +4 -4
  64. package/dist/shared/outfitter-63gse8fv.js +316 -0
  65. package/dist/shared/{outfitter-rdc5v5ms.js → outfitter-7ch26yq8.js} +210 -71
  66. package/dist/shared/{outfitter-ksa1pp4t.d.ts → outfitter-dpj9erew.d.ts} +1 -1
  67. package/dist/shared/{outfitter-sgtq57qr.d.ts → outfitter-f9znfhkn.d.ts} +1 -1
  68. package/dist/shared/outfitter-fhnjpjwc.d.ts +18 -0
  69. package/dist/shared/{outfitter-193jvzg4.d.ts → outfitter-fn20r49x.d.ts} +1 -1
  70. package/dist/shared/{outfitter-cwq39bv4.d.ts → outfitter-h3q6ae6d.d.ts} +17 -17
  71. package/dist/shared/outfitter-ha89qf8q.js +132 -0
  72. package/dist/shared/{outfitter-pyy1zkfh.d.ts → outfitter-hsp8vy5m.d.ts} +25 -12
  73. package/dist/shared/outfitter-m3ehh37q.d.ts +22 -0
  74. package/dist/shared/outfitter-m44n0qzw.js +161 -0
  75. package/dist/shared/{outfitter-qn864k6h.js → outfitter-mt7d1ek2.js} +152 -35
  76. package/dist/shared/{outfitter-avhm5z6w.js → outfitter-p71qb0f0.js} +4 -4
  77. package/dist/shared/{outfitter-9zqc2njf.js → outfitter-pcj9gg2g.js} +90 -40
  78. package/dist/shared/{outfitter-hws10ze7.js → outfitter-pj9vp00r.js} +87 -18
  79. package/dist/shared/{outfitter-gdvm5c0b.d.ts → outfitter-qakwgrrh.d.ts} +1 -1
  80. package/dist/shared/{outfitter-k56rmt24.d.ts → outfitter-r419zfgs.d.ts} +6 -6
  81. package/dist/shared/{outfitter-33w361tc.d.ts → outfitter-s7jetkge.d.ts} +1 -1
  82. package/dist/shared/{outfitter-1dvma85c.js → outfitter-w1j80j1r.js} +4 -0
  83. package/dist/shared/{outfitter-1dd0k853.js → outfitter-xe5mzgdc.js} +21 -7
  84. package/dist/shared/{outfitter-h1mnzzd1.d.ts → outfitter-ybbazsxq.d.ts} +1 -1
  85. package/dist/shared/{outfitter-2ngep1h2.d.ts → outfitter-yraebrmw.d.ts} +1 -1
  86. package/dist/shared/{outfitter-bkwpbkr9.d.ts → outfitter-z0we32cp.d.ts} +21 -21
  87. package/dist/shared/{outfitter-3weh61w7.d.ts → outfitter-z5sx06qe.d.ts} +12 -12
  88. package/dist/targets/index.d.ts +3 -3
  89. package/dist/targets/index.js +1 -1
  90. package/dist/targets/registry.d.ts +2 -2
  91. package/dist/targets/registry.js +1 -1
  92. package/dist/targets/types.d.ts +1 -1
  93. package/package.json +29 -19
  94. package/template-versions.json +22 -0
  95. package/templates/basic/package.json.template +6 -6
  96. package/templates/cli/biome.json.template +1 -1
  97. package/templates/cli/package.json.template +17 -9
  98. package/templates/daemon/biome.json.template +1 -1
  99. package/templates/daemon/package.json.template +18 -10
  100. package/templates/full-stack/.gitignore.template +30 -0
  101. package/templates/full-stack/README.md.template +30 -0
  102. package/templates/full-stack/apps/cli/package.json.template +39 -0
  103. package/templates/full-stack/apps/cli/src/cli.ts.template +24 -0
  104. package/templates/full-stack/apps/cli/src/index.test.ts.template +18 -0
  105. package/templates/full-stack/apps/cli/src/index.ts.template +5 -0
  106. package/templates/full-stack/apps/cli/tsconfig.json.template +37 -0
  107. package/templates/full-stack/apps/mcp/package.json.template +40 -0
  108. package/templates/full-stack/apps/mcp/src/index.test.ts.template +18 -0
  109. package/templates/full-stack/apps/mcp/src/index.ts.template +6 -0
  110. package/templates/full-stack/apps/mcp/src/mcp.ts.template +22 -0
  111. package/templates/full-stack/apps/mcp/src/server.ts.template +10 -0
  112. package/templates/full-stack/apps/mcp/tsconfig.json.template +37 -0
  113. package/templates/full-stack/package.json.template +16 -0
  114. package/templates/full-stack/packages/core/package.json.template +36 -0
  115. package/templates/full-stack/packages/core/src/handlers.ts.template +31 -0
  116. package/templates/full-stack/packages/core/src/index.test.ts.template +30 -0
  117. package/templates/full-stack/packages/core/src/index.ts.template +8 -0
  118. package/templates/full-stack/packages/core/src/types.ts.template +13 -0
  119. package/templates/full-stack/packages/core/tsconfig.json.template +34 -0
  120. package/templates/library/.gitignore.template +30 -0
  121. package/templates/library/README.md.template +29 -0
  122. package/templates/library/bunup.config.ts.template +20 -0
  123. package/templates/library/package.json.template +55 -0
  124. package/templates/library/src/handlers.ts.template +31 -0
  125. package/templates/library/src/index.test.ts.template +35 -0
  126. package/templates/library/src/index.ts.template +8 -0
  127. package/templates/library/src/types.ts.template +13 -0
  128. package/templates/library/tsconfig.json.template +34 -0
  129. package/templates/mcp/biome.json.template +1 -1
  130. package/templates/mcp/package.json.template +17 -9
  131. package/templates/mcp/src/index.ts.template +1 -1
  132. package/templates/mcp/src/mcp.ts.template +28 -74
  133. package/templates/mcp/src/server.ts.template +2 -9
  134. package/templates/minimal/package.json.template +13 -6
  135. package/dist/commands/migrate-kit.d.ts +0 -2
  136. package/dist/commands/migrate-kit.js +0 -15
  137. package/dist/shared/outfitter-7ha7p61k.d.ts +0 -6
  138. package/dist/shared/outfitter-ara3djt0.js +0 -73
  139. package/dist/shared/outfitter-d7pq7d0k.js +0 -196
  140. package/dist/shared/outfitter-k112c427.js +0 -21
  141. package/dist/shared/outfitter-mxz69pgy.js +0 -713
  142. package/dist/shared/outfitter-npemy7ta.d.ts +0 -53
  143. package/dist/shared/outfitter-npyfbdmc.d.ts +0 -6
  144. package/dist/shared/outfitter-q9agarmb.js +0 -42
  145. package/dist/shared/{outfitter-dd0btgec.d.ts → outfitter-6fgk6adm.d.ts} +5 -5
  146. package/dist/shared/{outfitter-e2zz5wv7.d.ts → outfitter-e9rrfekb.d.ts} +8 -8
  147. package/dist/shared/{outfitter-qfh36ddg.d.ts → outfitter-n9g1zk4x.d.ts} +7 -7
package/README.md CHANGED
@@ -40,8 +40,7 @@ Top-level commands:
40
40
  - `scaffold <target> [name]` - Add a new capability to an existing project
41
41
  - `add <block>` - Add a tooling block (`claude`, `biome`, `lefthook`, `bootstrap`, `scaffolding`)
42
42
  - `repo <action> <subject>` - Repository maintenance namespace (`check|sync|export`)
43
- - `migrate kit [directory]` - Migrate foundation imports and dependencies to `@outfitter/kit`
44
- - `update` - Check installed `@outfitter/*` versions and optionally show migration guidance
43
+ - `upgrade` - Check installed `@outfitter/*` versions and optionally show migration guidance
45
44
  - `doctor` - Validate local environment and project dependencies
46
45
  - `demo [section]` - Forward to the dedicated demo CLI (`outfitter-demo`)
47
46
 
@@ -165,25 +164,6 @@ outfitter repo check exports --json
165
164
  outfitter repo check readme
166
165
  ```
167
166
 
168
- ### `migrate kit`
169
-
170
- Codemod for kit-first foundation adoption.
171
-
172
- ```bash
173
- outfitter migrate kit [directory] [options]
174
- ```
175
-
176
- Options:
177
-
178
- - `--dry-run` - Preview changes without writing files
179
-
180
- Examples:
181
-
182
- ```bash
183
- outfitter migrate kit --dry-run
184
- outfitter migrate kit .
185
- ```
186
-
187
167
  ### `upgrade`
188
168
 
189
169
  Check installed `@outfitter/*` packages against npm versions.
@@ -231,10 +211,58 @@ Options:
231
211
 
232
212
  Use `outfitter-demo` (or `cli-demo`) directly for the dedicated demo app.
233
213
 
214
+ ### `schema`
215
+
216
+ Machine-readable introspection of registered actions. Agents can discover CLI capabilities without scraping `--help`.
217
+
218
+ ```bash
219
+ outfitter schema # Human-readable summary
220
+ outfitter schema <action-id> # Detail view for a single action
221
+ outfitter schema --output json # Machine-readable JSON manifest
222
+ outfitter schema --output json --pretty # Pretty-printed JSON
223
+ outfitter schema --surface cli # Filter by surface
224
+ ```
225
+
226
+ Subcommands for surface map management:
227
+
228
+ ```bash
229
+ outfitter schema generate # Write .outfitter/surface.json
230
+ outfitter schema generate --dry-run # Print without writing
231
+ outfitter schema diff # Compare runtime vs committed
232
+ outfitter schema diff --output json # Structured diff as JSON
233
+ ```
234
+
235
+ ### `check`
236
+
237
+ Compare local config blocks against the registry for drift detection.
238
+
239
+ ```bash
240
+ outfitter check [options]
241
+ outfitter check tsdoc [options]
242
+ ```
243
+
244
+ Options:
245
+
246
+ - `-v, --verbose` - Show diffs for drifted files
247
+ - `-b, --block <name>` - Check a specific block only
248
+ - `-o, --output <mode>` - Output mode (`human`, `json`, `jsonl`)
249
+ - `--cwd <path>` - Working directory
250
+
251
+ `check tsdoc` checks TSDoc coverage on exported declarations:
252
+
253
+ ```bash
254
+ outfitter check tsdoc # Human-readable coverage report
255
+ outfitter check tsdoc --strict # Fail if coverage is below threshold
256
+ outfitter check tsdoc --output json # Machine-readable JSON output
257
+ outfitter check tsdoc --summary # Compact output
258
+ outfitter check tsdoc --level undocumented # Filter by coverage level
259
+ outfitter check tsdoc --package @outfitter/cli # Filter to specific package
260
+ ```
261
+
234
262
  ## Command Conventions
235
263
 
236
264
  Canonical boundary and command conventions are documented in
237
- [`docs/BOUNDARY-CONVENTIONS.md`](../../docs/BOUNDARY-CONVENTIONS.md).
265
+ [Architecture: Boundary Conventions](../../docs/ARCHITECTURE.md#boundary-conventions).
238
266
 
239
267
  Quick model status:
240
268
 
@@ -250,10 +278,8 @@ Root exports:
250
278
  import {
251
279
  runDoctor,
252
280
  runInit,
253
- runMigrateKit,
254
281
  runScaffold,
255
282
  type InitOptions,
256
- type MigrateKitOptions,
257
283
  type ScaffoldOptions,
258
284
  } from "outfitter";
259
285
  ```
@@ -262,7 +288,7 @@ Command subpath exports:
262
288
 
263
289
  ```typescript
264
290
  import { runAdd } from "outfitter/commands/add";
265
- import { runUpdate } from "outfitter/commands/update";
291
+ import { runUpgrade } from "outfitter/commands/upgrade";
266
292
  ```
267
293
 
268
294
  Example:
@@ -284,7 +310,7 @@ if (result.isErr()) {
284
310
 
285
311
  ## Requirements
286
312
 
287
- - Bun >= 1.3.7
313
+ - Bun >= 1.3.9
288
314
 
289
315
  ## Related Packages
290
316
 
package/dist/actions.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { outfitterActions } from "./shared/outfitter-6bkqjk86";
1
+ import { outfitterActions } from "./shared/outfitter-6bkqjk86.js";
2
2
  export { outfitterActions };
package/dist/actions.js CHANGED
@@ -1,33 +1,34 @@
1
1
  // @bun
2
2
  import {
3
3
  outfitterActions
4
- } from "./shared/outfitter-rdc5v5ms.js";
5
- import"./shared/outfitter-mxz69pgy.js";
6
- import"./shared/outfitter-hws10ze7.js";
7
- import"./shared/outfitter-qn864k6h.js";
8
- import"./shared/outfitter-ehp18x1n.js";
9
- import"./shared/outfitter-1dd0k853.js";
10
- import"./shared/outfitter-9zqc2njf.js";
11
- import"./shared/outfitter-yvksv5qb.js";
12
- import"./shared/outfitter-d7pq7d0k.js";
13
- import"./shared/outfitter-bpr28y54.js";
4
+ } from "./shared/outfitter-7ch26yq8.js";
5
+ import"./shared/outfitter-pj9vp00r.js";
6
+ import"./shared/outfitter-mt7d1ek2.js";
14
7
  import"./shared/outfitter-ksyvwmb5.js";
15
- import"./shared/outfitter-1dvma85c.js";
8
+ import"./shared/outfitter-w1j80j1r.js";
9
+ import"./shared/outfitter-5y646xzk.js";
10
+ import"./shared/outfitter-63gse8fv.js";
11
+ import"./shared/outfitter-pcj9gg2g.js";
12
+ import"./shared/outfitter-bpr28y54.js";
13
+ import"./shared/outfitter-yvksv5qb.js";
16
14
  import"./shared/outfitter-4s9meh3j.js";
15
+ import"./shared/outfitter-ehp18x1n.js";
16
+ import"./shared/outfitter-xe5mzgdc.js";
17
+ import"./shared/outfitter-1h7k8xxt.js";
18
+ import"./shared/outfitter-ttjr95y9.js";
17
19
  import"./shared/outfitter-344t1r38.js";
18
- import"./shared/outfitter-2np85etz.js";
19
- import"./shared/outfitter-q9agarmb.js";
20
- import"./shared/outfitter-66b25bj8.js";
20
+ import"./shared/outfitter-5akzvppx.js";
21
+ import"./shared/outfitter-ha89qf8q.js";
22
+ import"./shared/outfitter-20f6a2n4.js";
23
+ import"./shared/outfitter-m44n0qzw.js";
21
24
  import"./shared/outfitter-9x1brcmq.js";
22
25
  import"./shared/outfitter-j833sxws.js";
23
26
  import"./shared/outfitter-79vfxt6y.js";
27
+ import"./shared/outfitter-1fy7byz5.js";
28
+ import"./shared/outfitter-4q1zfmvc.js";
29
+ import"./shared/outfitter-8y2dfx6n.js";
24
30
  import"./shared/outfitter-mtbpabf3.js";
25
- import"./shared/outfitter-ttjr95y9.js";
26
31
  import"./shared/outfitter-7r12fj7f.js";
27
- import"./shared/outfitter-ara3djt0.js";
28
- import"./shared/outfitter-k112c427.js";
29
- import"./shared/outfitter-8y2dfx6n.js";
30
- import"./shared/outfitter-1h7k8xxt.js";
31
32
  import"./shared/outfitter-mdt37hqm.js";
32
33
  export {
33
34
  outfitterActions
package/dist/cli.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  createRepoCommand,
4
4
  outfitterActions
5
- } from "./shared/chunk-k59f60cp.js";
5
+ } from "./shared/chunk-x6644tk8.js";
6
6
 
7
7
  // src/cli.ts
8
8
  import { readFileSync } from "node:fs";
@@ -43,7 +43,8 @@ function createProgram() {
43
43
  requestId,
44
44
  logger: logger.child({ action: action.id, requestId })
45
45
  });
46
- }
46
+ },
47
+ schema: { programName: "outfitter", surface: {} }
47
48
  })) {
48
49
  cli.register(command);
49
50
  }
@@ -7,12 +7,12 @@ import { AddBlockResult } from "@outfitter/tooling";
7
7
  interface AddInput {
8
8
  /** Block name to add */
9
9
  readonly block: string;
10
- /** Overwrite existing files */
11
- readonly force: boolean;
12
- /** Show what would be done without making changes */
13
- readonly dryRun: boolean;
14
10
  /** Working directory (defaults to cwd) */
15
11
  readonly cwd?: string;
12
+ /** Show what would be done without making changes */
13
+ readonly dryRun: boolean;
14
+ /** Overwrite existing files */
15
+ readonly force: boolean;
16
16
  }
17
17
  /**
18
18
  * Error returned when adding a block fails.
@@ -0,0 +1,22 @@
1
+ import { CliOutputMode } from "../shared/outfitter-a79xrm12.js";
2
+ import { Result } from "@outfitter/contracts";
3
+ import { CoverageLevel, TsDocCheckResult } from "@outfitter/tooling";
4
+ /** Validated input for the check-tsdoc action handler. */
5
+ interface CheckTsDocInput {
6
+ readonly cwd: string;
7
+ readonly jq: string | undefined;
8
+ readonly level: CoverageLevel | undefined;
9
+ readonly minCoverage: number;
10
+ readonly outputMode: CliOutputMode;
11
+ readonly packages: readonly string[];
12
+ readonly strict: boolean;
13
+ readonly summary: boolean;
14
+ }
15
+ /**
16
+ * Run TSDoc coverage analysis and format output.
17
+ *
18
+ * @param input - Validated action input
19
+ * @returns Result containing the coverage analysis
20
+ */
21
+ declare function runCheckTsdoc(input: CheckTsDocInput): Promise<Result<TsDocCheckResult, Error>>;
22
+ export { runCheckTsdoc, CheckTsDocInput };
@@ -0,0 +1,8 @@
1
+ // @bun
2
+ import {
3
+ runCheckTsdoc
4
+ } from "../shared/outfitter-63gse8fv.js";
5
+ import"../shared/outfitter-mdt37hqm.js";
6
+ export {
7
+ runCheckTsdoc
8
+ };
@@ -4,16 +4,16 @@ import { Result } from "@outfitter/contracts";
4
4
  * Options for the check command.
5
5
  */
6
6
  interface CheckOptions {
7
- /** Working directory to check. */
8
- readonly cwd: string;
9
- /** Show diff information for drifted files. */
10
- readonly verbose?: boolean;
11
7
  /** Check a specific block only. */
12
8
  readonly block?: string;
13
9
  /** Machine-oriented output for CI. */
14
10
  readonly ci?: boolean;
11
+ /** Working directory to check. */
12
+ readonly cwd: string;
15
13
  /** Output mode override. */
16
14
  readonly outputMode?: OutputMode;
15
+ /** Show diff information for drifted files. */
16
+ readonly verbose?: boolean;
17
17
  }
18
18
  /**
19
19
  * Information about a drifted file (included in verbose mode).
@@ -28,16 +28,16 @@ interface DriftedFileInfo {
28
28
  * Status of a single block after comparison.
29
29
  */
30
30
  interface BlockCheckStatus {
31
- /** Block name. */
32
- readonly name: string;
33
- /** Comparison result. */
34
- readonly status: "current" | "drifted" | "missing";
35
- /** Tooling version the block was installed from. */
36
- readonly installedFrom?: string;
37
31
  /** Current tooling version providing the registry. */
38
32
  readonly currentToolingVersion?: string;
39
33
  /** Drifted file details (populated when verbose is true). */
40
34
  readonly driftedFiles?: DriftedFileInfo[];
35
+ /** Tooling version the block was installed from. */
36
+ readonly installedFrom?: string;
37
+ /** Block name. */
38
+ readonly name: string;
39
+ /** Comparison result. */
40
+ readonly status: "current" | "drifted" | "missing";
41
41
  }
42
42
  /**
43
43
  * Complete result of the check command.
@@ -45,14 +45,14 @@ interface BlockCheckStatus {
45
45
  interface CheckResult {
46
46
  /** Per-block comparison results. */
47
47
  readonly blocks: BlockCheckStatus[];
48
- /** Number of blocks checked. */
49
- readonly totalChecked: number;
50
48
  /** Number of blocks matching the registry. */
51
49
  readonly currentCount: number;
52
50
  /** Number of blocks with local modifications. */
53
51
  readonly driftedCount: number;
54
52
  /** Number of blocks with missing files. */
55
53
  readonly missingCount: number;
54
+ /** Number of blocks checked. */
55
+ readonly totalChecked: number;
56
56
  }
57
57
  /**
58
58
  * Error returned when the check command fails.
@@ -3,7 +3,7 @@ import {
3
3
  CheckError,
4
4
  printCheckResults,
5
5
  runCheck
6
- } from "../shared/outfitter-1dvma85c.js";
6
+ } from "../shared/outfitter-w1j80j1r.js";
7
7
  import"../shared/outfitter-mtbpabf3.js";
8
8
  import"../shared/outfitter-7r12fj7f.js";
9
9
  import"../shared/outfitter-mdt37hqm.js";
@@ -1,12 +1,12 @@
1
- import { CliOutputMode } from "../shared/outfitter-a79xrm12";
1
+ import { CliOutputMode } from "../shared/outfitter-a79xrm12.js";
2
2
  /**
3
3
  * Options for forwarding to the demo CLI.
4
4
  */
5
5
  interface DemoOptions {
6
- readonly section?: string | undefined;
7
- readonly list?: boolean | undefined;
8
6
  readonly animate?: boolean | undefined;
7
+ readonly list?: boolean | undefined;
9
8
  readonly outputMode: CliOutputMode;
9
+ readonly section?: string | undefined;
10
10
  }
11
11
  /**
12
12
  * Result of forwarding the demo command.
@@ -1,2 +1,2 @@
1
- import { CreateDocsCommandOptions, DocsCommandIo, DocsExportTarget, ExecuteCheckCommandOptions, ExecuteExportCommandOptions, ExecuteSyncCommandOptions, loadDocsModule } from "../shared/outfitter-dd0btgec";
1
+ import { CreateDocsCommandOptions, DocsCommandIo, DocsExportTarget, ExecuteCheckCommandOptions, ExecuteExportCommandOptions, ExecuteSyncCommandOptions, loadDocsModule } from "../shared/outfitter-6fgk6adm.js";
2
2
  export { loadDocsModule, ExecuteSyncCommandOptions, ExecuteExportCommandOptions, ExecuteCheckCommandOptions, DocsExportTarget, DocsCommandIo, CreateDocsCommandOptions };
@@ -1,2 +1,2 @@
1
- import { BunVersionCheck, CheckResult, ConfigFilesCheck, DependenciesCheck, DirectoriesCheck, DoctorOptions, DoctorResult, DoctorSummary, PackageJsonCheck, doctorCommand, printDoctorResults, runDoctor } from "../shared/outfitter-pyy1zkfh";
2
- export { runDoctor, printDoctorResults, doctorCommand, PackageJsonCheck, DoctorSummary, DoctorResult, DoctorOptions, DirectoriesCheck, DependenciesCheck, ConfigFilesCheck, CheckResult, BunVersionCheck };
1
+ import { BunVersionCheck, CheckResult, ConfigFilesCheck, DependenciesCheck, DirectoriesCheck, DoctorOptions, DoctorResult, DoctorSummary, PackageJsonCheck, WorkspaceMemberHealth, doctorCommand, printDoctorResults, runDoctor } from "../shared/outfitter-hsp8vy5m.js";
2
+ export { runDoctor, printDoctorResults, doctorCommand, WorkspaceMemberHealth, PackageJsonCheck, DoctorSummary, DoctorResult, DoctorOptions, DirectoriesCheck, DependenciesCheck, ConfigFilesCheck, CheckResult, BunVersionCheck };
@@ -3,7 +3,19 @@ import {
3
3
  doctorCommand,
4
4
  printDoctorResults,
5
5
  runDoctor
6
- } from "../shared/outfitter-d7pq7d0k.js";
6
+ } from "../shared/outfitter-5y646xzk.js";
7
+ import"../shared/outfitter-344t1r38.js";
8
+ import"../shared/outfitter-5akzvppx.js";
9
+ import"../shared/outfitter-ha89qf8q.js";
10
+ import"../shared/outfitter-20f6a2n4.js";
11
+ import"../shared/outfitter-m44n0qzw.js";
12
+ import"../shared/outfitter-9x1brcmq.js";
13
+ import"../shared/outfitter-j833sxws.js";
14
+ import"../shared/outfitter-79vfxt6y.js";
15
+ import"../shared/outfitter-1fy7byz5.js";
16
+ import"../shared/outfitter-4q1zfmvc.js";
17
+ import"../shared/outfitter-8y2dfx6n.js";
18
+ import"../shared/outfitter-mtbpabf3.js";
7
19
  import"../shared/outfitter-7r12fj7f.js";
8
20
  import"../shared/outfitter-mdt37hqm.js";
9
21
  export {
@@ -1,7 +1,7 @@
1
- import { InitError, InitOptions, InitPresetId, InitResult, InitStructure, initCommand, printInitResults, runInit } from "../shared/outfitter-bkwpbkr9";
2
- import "../shared/outfitter-y784nh31";
3
- import "../shared/outfitter-33w361tc";
4
- import "../shared/outfitter-k56rmt24";
5
- import "../shared/outfitter-3weh61w7";
6
- import "../shared/outfitter-amc4jbs1";
1
+ import { InitError, InitOptions, InitPresetId, InitResult, InitStructure, initCommand, printInitResults, runInit } from "../shared/outfitter-z0we32cp.js";
2
+ import "../shared/outfitter-z5sx06qe.js";
3
+ import "../shared/outfitter-y784nh31.js";
4
+ import "../shared/outfitter-s7jetkge.js";
5
+ import "../shared/outfitter-r419zfgs.js";
6
+ import "../shared/outfitter-amc4jbs1.js";
7
7
  export { runInit, printInitResults, initCommand, InitStructure, InitResult, InitPresetId, InitOptions, InitError };
@@ -4,24 +4,25 @@ import {
4
4
  initCommand,
5
5
  printInitResults,
6
6
  runInit
7
- } from "../shared/outfitter-qn864k6h.js";
8
- import"../shared/outfitter-ehp18x1n.js";
9
- import"../shared/outfitter-1dd0k853.js";
7
+ } from "../shared/outfitter-mt7d1ek2.js";
10
8
  import"../shared/outfitter-4s9meh3j.js";
9
+ import"../shared/outfitter-ehp18x1n.js";
10
+ import"../shared/outfitter-xe5mzgdc.js";
11
+ import"../shared/outfitter-1h7k8xxt.js";
12
+ import"../shared/outfitter-ttjr95y9.js";
11
13
  import"../shared/outfitter-344t1r38.js";
12
- import"../shared/outfitter-2np85etz.js";
13
- import"../shared/outfitter-q9agarmb.js";
14
- import"../shared/outfitter-66b25bj8.js";
14
+ import"../shared/outfitter-5akzvppx.js";
15
+ import"../shared/outfitter-ha89qf8q.js";
16
+ import"../shared/outfitter-20f6a2n4.js";
17
+ import"../shared/outfitter-m44n0qzw.js";
15
18
  import"../shared/outfitter-9x1brcmq.js";
16
19
  import"../shared/outfitter-j833sxws.js";
17
20
  import"../shared/outfitter-79vfxt6y.js";
21
+ import"../shared/outfitter-1fy7byz5.js";
22
+ import"../shared/outfitter-4q1zfmvc.js";
23
+ import"../shared/outfitter-8y2dfx6n.js";
18
24
  import"../shared/outfitter-mtbpabf3.js";
19
- import"../shared/outfitter-ttjr95y9.js";
20
25
  import"../shared/outfitter-7r12fj7f.js";
21
- import"../shared/outfitter-ara3djt0.js";
22
- import"../shared/outfitter-k112c427.js";
23
- import"../shared/outfitter-8y2dfx6n.js";
24
- import"../shared/outfitter-1h7k8xxt.js";
25
26
  import"../shared/outfitter-mdt37hqm.js";
26
27
  export {
27
28
  runInit,
@@ -1,3 +1,3 @@
1
- import { CreateRepoCommandOptions, RepoCheckSubject, RepoCommandIo, RepoToolingInvocation, createRepoCommand } from "../shared/outfitter-j8yc7294";
2
- import "../shared/outfitter-dd0btgec";
1
+ import { CreateRepoCommandOptions, RepoCheckSubject, RepoCommandIo, RepoToolingInvocation, createRepoCommand } from "../shared/outfitter-5yjr404v.js";
2
+ import "../shared/outfitter-6fgk6adm.js";
3
3
  export { createRepoCommand, RepoToolingInvocation, RepoCommandIo, RepoCheckSubject, CreateRepoCommandOptions };
@@ -1,4 +1,4 @@
1
- import { ScaffoldCommandError, ScaffoldCommandResult, ScaffoldOptions, printScaffoldResults, runScaffold, scaffoldCommand } from "../shared/outfitter-cwq39bv4";
2
- import "../shared/outfitter-3weh61w7";
3
- import "../shared/outfitter-amc4jbs1";
1
+ import { ScaffoldCommandError, ScaffoldCommandResult, ScaffoldOptions, printScaffoldResults, runScaffold, scaffoldCommand } from "../shared/outfitter-h3q6ae6d.js";
2
+ import "../shared/outfitter-z5sx06qe.js";
3
+ import "../shared/outfitter-amc4jbs1.js";
4
4
  export { scaffoldCommand, runScaffold, printScaffoldResults, ScaffoldOptions, ScaffoldCommandResult, ScaffoldCommandError };
@@ -4,24 +4,25 @@ import {
4
4
  printScaffoldResults,
5
5
  runScaffold,
6
6
  scaffoldCommand
7
- } from "../shared/outfitter-hws10ze7.js";
8
- import"../shared/outfitter-ehp18x1n.js";
9
- import"../shared/outfitter-1dd0k853.js";
7
+ } from "../shared/outfitter-pj9vp00r.js";
10
8
  import"../shared/outfitter-4s9meh3j.js";
9
+ import"../shared/outfitter-ehp18x1n.js";
10
+ import"../shared/outfitter-xe5mzgdc.js";
11
+ import"../shared/outfitter-1h7k8xxt.js";
12
+ import"../shared/outfitter-ttjr95y9.js";
11
13
  import"../shared/outfitter-344t1r38.js";
12
- import"../shared/outfitter-2np85etz.js";
13
- import"../shared/outfitter-q9agarmb.js";
14
- import"../shared/outfitter-66b25bj8.js";
14
+ import"../shared/outfitter-5akzvppx.js";
15
+ import"../shared/outfitter-ha89qf8q.js";
16
+ import"../shared/outfitter-20f6a2n4.js";
17
+ import"../shared/outfitter-m44n0qzw.js";
15
18
  import"../shared/outfitter-9x1brcmq.js";
16
19
  import"../shared/outfitter-j833sxws.js";
17
20
  import"../shared/outfitter-79vfxt6y.js";
21
+ import"../shared/outfitter-1fy7byz5.js";
22
+ import"../shared/outfitter-4q1zfmvc.js";
23
+ import"../shared/outfitter-8y2dfx6n.js";
18
24
  import"../shared/outfitter-mtbpabf3.js";
19
- import"../shared/outfitter-ttjr95y9.js";
20
25
  import"../shared/outfitter-7r12fj7f.js";
21
- import"../shared/outfitter-ara3djt0.js";
22
- import"../shared/outfitter-k112c427.js";
23
- import"../shared/outfitter-8y2dfx6n.js";
24
- import"../shared/outfitter-1h7k8xxt.js";
25
26
  import"../shared/outfitter-mdt37hqm.js";
26
27
  export {
27
28
  scaffoldCommand,
@@ -1,25 +1,10 @@
1
1
  /**
2
- * Shared dependencies and scripts injected into all scaffolded projects.
3
- *
4
- * Edit this file to update versions across all templates. These are merged
5
- * with template-specific values, with template values taking precedence.
6
- *
7
- * @packageDocumentation
8
- */
9
- /**
10
2
  * Shared devDependencies injected into all scaffolded projects.
11
3
  * Template-specific devDependencies take precedence over these defaults.
12
4
  *
13
5
  * Keep these in sync with the root package.json versions.
14
6
  */
15
- declare const SHARED_DEV_DEPS: {
16
- readonly "@biomejs/biome": "^2.3.12";
17
- readonly "@outfitter/tooling": "^0.2.1";
18
- readonly "@types/bun": "^1.3.7";
19
- readonly lefthook: "^2.0.16";
20
- readonly typescript: "^5.9.3";
21
- readonly ultracite: "^7.1.1";
22
- };
7
+ declare const SHARED_DEV_DEPS: Readonly<Record<string, string>>;
23
8
  /**
24
9
  * Shared scripts injected into all scaffolded projects.
25
10
  * Template-specific scripts take precedence over these defaults.
@@ -2,7 +2,8 @@
2
2
  import {
3
3
  SHARED_DEV_DEPS,
4
4
  SHARED_SCRIPTS
5
- } from "../shared/outfitter-k112c427.js";
5
+ } from "../shared/outfitter-20f6a2n4.js";
6
+ import"../shared/outfitter-m44n0qzw.js";
6
7
  import"../shared/outfitter-mdt37hqm.js";
7
8
  export {
8
9
  SHARED_SCRIPTS,
@@ -2,21 +2,21 @@ import { OutfitterError } from "@outfitter/contracts";
2
2
  import { Result } from "@outfitter/contracts";
3
3
  /** Options passed to a codemod's transform function. */
4
4
  interface CodemodOptions {
5
- readonly targetDir: string;
6
5
  readonly dryRun: boolean;
6
+ readonly targetDir: string;
7
7
  }
8
8
  /** Result returned by a codemod's transform function. */
9
9
  interface CodemodResult {
10
10
  readonly changedFiles: readonly string[];
11
- readonly skippedFiles: readonly string[];
12
11
  readonly errors: readonly string[];
12
+ readonly skippedFiles: readonly string[];
13
13
  }
14
14
  /** A discovered codemod with resolved paths. */
15
15
  interface DiscoveredCodemod {
16
- /** Path relative to the codemods directory. */
17
- readonly relativePath: string;
18
16
  /** Absolute path to the codemod file. */
19
17
  readonly absolutePath: string;
18
+ /** Path relative to the codemods directory. */
19
+ readonly relativePath: string;
20
20
  }
21
21
  /**
22
22
  * Find the codemods directory, checking known locations.
@@ -3,9 +3,9 @@ import {
3
3
  discoverCodemods,
4
4
  findCodemodsDir,
5
5
  runCodemod
6
- } from "../shared/outfitter-9zqc2njf.js";
7
- import"../shared/outfitter-yvksv5qb.js";
6
+ } from "../shared/outfitter-pcj9gg2g.js";
8
7
  import"../shared/outfitter-bpr28y54.js";
8
+ import"../shared/outfitter-yvksv5qb.js";
9
9
  import"../shared/outfitter-7r12fj7f.js";
10
10
  import"../shared/outfitter-mdt37hqm.js";
11
11
  export {
@@ -14,18 +14,18 @@
14
14
  type BumpClassification = "upToDate" | "upgradableNonBreaking" | "upgradableBreaking" | "blocked";
15
15
  /** Describes the planned action for a single package. */
16
16
  interface PackageUpgradeAction {
17
- /** Full package name (e.g. "@outfitter/cli") */
18
- readonly name: string;
17
+ /** Whether this update contains breaking changes */
18
+ readonly breaking: boolean;
19
+ /** Bump classification */
20
+ readonly classification: BumpClassification;
19
21
  /** Currently installed version */
20
22
  readonly currentVersion: string;
21
23
  /** Latest available version */
22
24
  readonly latestVersion: string;
23
- /** Bump classification */
24
- readonly classification: BumpClassification;
25
- /** Whether this update contains breaking changes */
26
- readonly breaking: boolean;
27
25
  /** Migration doc path if available */
28
26
  readonly migrationDoc?: string;
27
+ /** Full package name (e.g. "@outfitter/cli") */
28
+ readonly name: string;
29
29
  }
30
30
  /** The complete update plan with per-package actions and aggregate summary. */
31
31
  interface UpgradePlan {