@savvy-web/silk-effects 4.2.6 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +73 -192
  2. package/changesets/api/changelog.js +1 -2
  3. package/changesets/changelog/index.js +8 -10
  4. package/changesets/errors.js +0 -1
  5. package/changesets/index.js +1 -4
  6. package/changesets/services/changelog.js +1 -1
  7. package/changesets/services/github.js +1 -1
  8. package/changesets/utils/dependency-table.js +1 -1
  9. package/index.d.ts +95 -1398
  10. package/index.js +1 -20
  11. package/lint/cli/sections.js +9 -8
  12. package/package.json +7 -5
  13. package/schemas/SavvySections.js +26 -9
  14. package/schemas/VersioningSchemas.js +1 -32
  15. package/schemas/WorkspaceAnalysisSchemas.js +4 -5
  16. package/services/SilkPublishability.js +1 -1
  17. package/services/SilkWorkspaceAnalyzer.js +13 -16
  18. package/turbo/services/TurboInspector.js +11 -11
  19. package/changesets/services/markdown.js +0 -93
  20. package/errors/SectionParseError.js +0 -17
  21. package/errors/SectionValidationError.js +0 -17
  22. package/errors/SectionWriteError.js +0 -17
  23. package/errors/TagFormatError.js +0 -21
  24. package/errors/ToolNotFoundError.js +0 -12
  25. package/errors/ToolResolutionError.js +0 -12
  26. package/errors/ToolVersionMismatchError.js +0 -12
  27. package/errors/VersioningDetectionError.js +0 -21
  28. package/schemas/CommentStyle.js +0 -17
  29. package/schemas/ResolvedTool.js +0 -99
  30. package/schemas/SectionBlock.js +0 -71
  31. package/schemas/SectionDefinition.js +0 -123
  32. package/schemas/SectionResults.js +0 -21
  33. package/schemas/TagStrategySchemas.js +0 -19
  34. package/schemas/ToolDefinition.js +0 -40
  35. package/schemas/ToolResults.js +0 -28
  36. package/services/ManagedSection.js +0 -289
  37. package/services/TagStrategy.js +0 -56
  38. package/services/ToolDiscovery.js +0 -232
  39. package/services/VersioningStrategy.js +0 -69
  40. package/utils/ToolCommand.js +0 -67
package/index.d.ts CHANGED
@@ -1,9 +1,11 @@
1
- import { Context, Data, Effect, Equal, FileSystem, Hash, Layer, Option, Path, PlatformError, Schema, Stream } from "effect";
1
+ import { Context, Effect, Equal, FileSystem, Hash, Layer, Option, Path, Schema } from "effect";
2
2
  import { Plugin } from "unified";
3
- import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
4
- import { PackageManagerDetector, PublishConfig, PublishTarget, PublishabilityDetector, WorkspaceDiscovery, WorkspaceDiscoveryFailure, WorkspacePackage, WorkspaceRoot, WorkspaceSnapshotAtFailure, WorkspaceSnapshotWorktreeFailure, WorkspaceSnapshots, WorkspaceStateSnapshot, WorkspacesOptions } from "@effected/workspaces";
3
+ import { ChildProcessSpawner } from "effect/unstable/process";
4
+ import { PackageManagerDetector, PublishConfig, PublishTarget, PublishabilityDetector, VersioningStrategy, WorkspaceDiscovery, WorkspaceDiscoveryFailure, WorkspacePackage, WorkspaceSnapshotAtFailure, WorkspaceSnapshotWorktreeFailure, WorkspaceSnapshots, WorkspaceStateSnapshot, WorkspacesOptions } from "@effected/workspaces";
5
5
  import { Git } from "@effected/git";
6
6
  import { GlobExpansionError } from "@effected/walker";
7
+ import { Section, SectionId } from "@effected/templates";
8
+ import { ToolDiscovery } from "@effected/commands";
7
9
  //#endregion
8
10
  //#region src/changesets/categories/types.d.ts
9
11
  /**
@@ -404,8 +406,7 @@ type PreState = {
404
406
  * Delegates to the Changesets-compatible `getReleaseLine` and
405
407
  * `getDependencyReleaseLine` functions. Internally, these use the
406
408
  * {@link ChangelogService} Effect service layer, which coordinates
407
- * the {@link GitHubService} (for commit/PR metadata) and
408
- * {@link MarkdownService} (for AST manipulation) to produce
409
+ * the {@link GitHubService} (for commit/PR metadata) to produce
409
410
  * structured changelog entries.
410
411
  *
411
412
  * @remarks
@@ -535,7 +536,7 @@ declare class Changelog {
535
536
  * }
536
537
  * ```
537
538
  */
538
- interface Data$2 {}
539
+ interface Data$1 {}
539
540
  /**
540
541
  * One place in a source file.
541
542
  */
@@ -586,7 +587,7 @@ interface Node$1 {
586
587
  /**
587
588
  * Info from the ecosystem.
588
589
  */
589
- data?: Data$2 | undefined;
590
+ data?: Data$1 | undefined;
590
591
  /**
591
592
  * Position of a node in a source document.
592
593
  *
@@ -714,7 +715,7 @@ interface Resource {
714
715
  * }
715
716
  * ```
716
717
  */
717
- interface Data$1 extends Data$2 {}
718
+ interface Data extends Data$1 {}
718
719
  // ## Content maps
719
720
  /**
720
721
  * Union of registered mdast nodes that can occur where block content is
@@ -983,7 +984,7 @@ interface Node extends Node$1 {
983
984
  /**
984
985
  * Info from the ecosystem.
985
986
  */
986
- data?: Data$1 | undefined;
987
+ data?: Data | undefined;
987
988
  }
988
989
  /**
989
990
  * Abstract mdast node that contains other mdast nodes (*children*).
@@ -1019,7 +1020,7 @@ interface Blockquote extends Parent {
1019
1020
  /**
1020
1021
  * Info associated with mdast block quote nodes by the ecosystem.
1021
1022
  */
1022
- interface BlockquoteData extends Data$1 {}
1023
+ interface BlockquoteData extends Data {}
1023
1024
  /**
1024
1025
  * Markdown break.
1025
1026
  */
@@ -1036,7 +1037,7 @@ interface Break extends Node {
1036
1037
  /**
1037
1038
  * Info associated with mdast break nodes by the ecosystem.
1038
1039
  */
1039
- interface BreakData extends Data$1 {}
1040
+ interface BreakData extends Data {}
1040
1041
  /**
1041
1042
  * Markdown code (flow) (block).
1042
1043
  */
@@ -1063,7 +1064,7 @@ interface Code extends Literal {
1063
1064
  /**
1064
1065
  * Info associated with mdast code (flow) (block) nodes by the ecosystem.
1065
1066
  */
1066
- interface CodeData extends Data$1 {}
1067
+ interface CodeData extends Data {}
1067
1068
  /**
1068
1069
  * Markdown definition.
1069
1070
  */
@@ -1080,7 +1081,7 @@ interface Definition extends Node, Association, Resource {
1080
1081
  /**
1081
1082
  * Info associated with mdast definition nodes by the ecosystem.
1082
1083
  */
1083
- interface DefinitionData extends Data$1 {}
1084
+ interface DefinitionData extends Data {}
1084
1085
  /**
1085
1086
  * Markdown GFM delete (strikethrough).
1086
1087
  */
@@ -1101,7 +1102,7 @@ interface Delete extends Parent {
1101
1102
  /**
1102
1103
  * Info associated with mdast GFM delete nodes by the ecosystem.
1103
1104
  */
1104
- interface DeleteData extends Data$1 {}
1105
+ interface DeleteData extends Data {}
1105
1106
  /**
1106
1107
  * Markdown emphasis.
1107
1108
  */
@@ -1122,7 +1123,7 @@ interface Emphasis extends Parent {
1122
1123
  /**
1123
1124
  * Info associated with mdast emphasis nodes by the ecosystem.
1124
1125
  */
1125
- interface EmphasisData extends Data$1 {}
1126
+ interface EmphasisData extends Data {}
1126
1127
  /**
1127
1128
  * Markdown GFM footnote definition.
1128
1129
  */
@@ -1143,7 +1144,7 @@ interface FootnoteDefinition extends Parent, Association {
1143
1144
  /**
1144
1145
  * Info associated with mdast GFM footnote definition nodes by the ecosystem.
1145
1146
  */
1146
- interface FootnoteDefinitionData extends Data$1 {}
1147
+ interface FootnoteDefinitionData extends Data {}
1147
1148
  /**
1148
1149
  * Markdown GFM footnote reference.
1149
1150
  */
@@ -1160,7 +1161,7 @@ interface FootnoteReference extends Association, Node {
1160
1161
  /**
1161
1162
  * Info associated with mdast GFM footnote reference nodes by the ecosystem.
1162
1163
  */
1163
- interface FootnoteReferenceData extends Data$1 {}
1164
+ interface FootnoteReferenceData extends Data {}
1164
1165
  /**
1165
1166
  * Markdown heading.
1166
1167
  */
@@ -1187,7 +1188,7 @@ interface Heading extends Parent {
1187
1188
  /**
1188
1189
  * Info associated with mdast heading nodes by the ecosystem.
1189
1190
  */
1190
- interface HeadingData extends Data$1 {}
1191
+ interface HeadingData extends Data {}
1191
1192
  /**
1192
1193
  * Markdown HTML.
1193
1194
  */
@@ -1204,7 +1205,7 @@ interface Html extends Literal {
1204
1205
  /**
1205
1206
  * Info associated with mdast HTML nodes by the ecosystem.
1206
1207
  */
1207
- interface HtmlData extends Data$1 {}
1208
+ interface HtmlData extends Data {}
1208
1209
  /**
1209
1210
  * Markdown image.
1210
1211
  */
@@ -1221,7 +1222,7 @@ interface Image extends Alternative, Node, Resource {
1221
1222
  /**
1222
1223
  * Info associated with mdast image nodes by the ecosystem.
1223
1224
  */
1224
- interface ImageData extends Data$1 {}
1225
+ interface ImageData extends Data {}
1225
1226
  /**
1226
1227
  * Markdown image reference.
1227
1228
  */
@@ -1238,7 +1239,7 @@ interface ImageReference extends Alternative, Node, Reference {
1238
1239
  /**
1239
1240
  * Info associated with mdast image reference nodes by the ecosystem.
1240
1241
  */
1241
- interface ImageReferenceData extends Data$1 {}
1242
+ interface ImageReferenceData extends Data {}
1242
1243
  /**
1243
1244
  * Markdown code (text) (inline).
1244
1245
  */
@@ -1255,7 +1256,7 @@ interface InlineCode extends Literal {
1255
1256
  /**
1256
1257
  * Info associated with mdast code (text) (inline) nodes by the ecosystem.
1257
1258
  */
1258
- interface InlineCodeData extends Data$1 {}
1259
+ interface InlineCodeData extends Data {}
1259
1260
  /**
1260
1261
  * Markdown link.
1261
1262
  */
@@ -1276,7 +1277,7 @@ interface Link extends Parent, Resource {
1276
1277
  /**
1277
1278
  * Info associated with mdast link nodes by the ecosystem.
1278
1279
  */
1279
- interface LinkData extends Data$1 {}
1280
+ interface LinkData extends Data {}
1280
1281
  /**
1281
1282
  * Markdown link reference.
1282
1283
  */
@@ -1297,7 +1298,7 @@ interface LinkReference extends Parent, Reference {
1297
1298
  /**
1298
1299
  * Info associated with mdast link reference nodes by the ecosystem.
1299
1300
  */
1300
- interface LinkReferenceData extends Data$1 {}
1301
+ interface LinkReferenceData extends Data {}
1301
1302
  /**
1302
1303
  * Markdown list.
1303
1304
  */
@@ -1332,7 +1333,7 @@ interface List extends Parent {
1332
1333
  /**
1333
1334
  * Info associated with mdast list nodes by the ecosystem.
1334
1335
  */
1335
- interface ListData extends Data$1 {}
1336
+ interface ListData extends Data {}
1336
1337
  /**
1337
1338
  * Markdown list item.
1338
1339
  */
@@ -1365,7 +1366,7 @@ interface ListItem extends Parent {
1365
1366
  /**
1366
1367
  * Info associated with mdast list item nodes by the ecosystem.
1367
1368
  */
1368
- interface ListItemData extends Data$1 {}
1369
+ interface ListItemData extends Data {}
1369
1370
  /**
1370
1371
  * Markdown paragraph.
1371
1372
  */
@@ -1386,7 +1387,7 @@ interface Paragraph extends Parent {
1386
1387
  /**
1387
1388
  * Info associated with mdast paragraph nodes by the ecosystem.
1388
1389
  */
1389
- interface ParagraphData extends Data$1 {}
1390
+ interface ParagraphData extends Data {}
1390
1391
  /**
1391
1392
  * Document fragment or a whole document.
1392
1393
  *
@@ -1405,7 +1406,7 @@ interface Root extends Parent {
1405
1406
  /**
1406
1407
  * Info associated with mdast root nodes by the ecosystem.
1407
1408
  */
1408
- interface RootData extends Data$1 {}
1409
+ interface RootData extends Data {}
1409
1410
  /**
1410
1411
  * Markdown strong.
1411
1412
  */
@@ -1426,7 +1427,7 @@ interface Strong extends Parent {
1426
1427
  /**
1427
1428
  * Info associated with mdast strong nodes by the ecosystem.
1428
1429
  */
1429
- interface StrongData extends Data$1 {}
1430
+ interface StrongData extends Data {}
1430
1431
  /**
1431
1432
  * Markdown GFM table.
1432
1433
  */
@@ -1451,7 +1452,7 @@ interface Table extends Parent {
1451
1452
  /**
1452
1453
  * Info associated with mdast GFM table nodes by the ecosystem.
1453
1454
  */
1454
- interface TableData extends Data$1 {}
1455
+ interface TableData extends Data {}
1455
1456
  /**
1456
1457
  * Markdown GFM table row.
1457
1458
  */
@@ -1472,7 +1473,7 @@ interface TableRow extends Parent {
1472
1473
  /**
1473
1474
  * Info associated with mdast GFM table row nodes by the ecosystem.
1474
1475
  */
1475
- interface TableRowData extends Data$1 {}
1476
+ interface TableRowData extends Data {}
1476
1477
  /**
1477
1478
  * Markdown GFM table cell.
1478
1479
  */
@@ -1493,7 +1494,7 @@ interface TableCell extends Parent {
1493
1494
  /**
1494
1495
  * Info associated with mdast GFM table cell nodes by the ecosystem.
1495
1496
  */
1496
- interface TableCellData extends Data$1 {}
1497
+ interface TableCellData extends Data {}
1497
1498
  /**
1498
1499
  * Markdown text.
1499
1500
  */
@@ -1510,7 +1511,7 @@ interface Text extends Literal {
1510
1511
  /**
1511
1512
  * Info associated with mdast text nodes by the ecosystem.
1512
1513
  */
1513
- interface TextData extends Data$1 {}
1514
+ interface TextData extends Data {}
1514
1515
  /**
1515
1516
  * Markdown thematic break (horizontal rule).
1516
1517
  */
@@ -1527,7 +1528,7 @@ interface ThematicBreak extends Node {
1527
1528
  /**
1528
1529
  * Info associated with mdast thematic break nodes by the ecosystem.
1529
1530
  */
1530
- interface ThematicBreakData extends Data$1 {}
1531
+ interface ThematicBreakData extends Data {}
1531
1532
  /**
1532
1533
  * Markdown YAML.
1533
1534
  */
@@ -1544,7 +1545,7 @@ interface Yaml$1 extends Literal {
1544
1545
  /**
1545
1546
  * Info associated with mdast YAML nodes by the ecosystem.
1546
1547
  */
1547
- interface YamlData extends Data$1 {}
1548
+ interface YamlData extends Data {}
1548
1549
  //#endregion
1549
1550
  //#region src/changesets/schemas/dependency-table.d.ts
1550
1551
  /**
@@ -2474,7 +2475,6 @@ declare const MarkdownParseErrorBase: new <A extends Record<string, any> = {}>(a
2474
2475
  * );
2475
2476
  * ```
2476
2477
  *
2477
- * @see {@link MarkdownService} for the Effect service that may produce this error
2478
2478
  *
2479
2479
  * @public
2480
2480
  */
@@ -2820,43 +2820,6 @@ declare const SilkChangesetConfigFile: Schema.Struct<{
2820
2820
  * @public
2821
2821
  */
2822
2822
  type SilkChangesetConfigFile = typeof SilkChangesetConfigFile.Type;
2823
- /**
2824
- * Versioning strategy classification for a workspace.
2825
- *
2826
- * @remarks
2827
- * - `"single"` — one publishable package; a single version tag is used.
2828
- * - `"fixed-group"` — all publishable packages are in the same changesets fixed group.
2829
- * - `"independent"` — multiple publishable packages with independent version bumps.
2830
- *
2831
- * @since 0.1.0
2832
- * @public
2833
- */
2834
- declare const VersioningStrategyType: Schema.Literals<readonly ["single", "fixed-group", "independent"]>;
2835
- /**
2836
- * @since 0.1.0
2837
- * @public
2838
- */
2839
- type VersioningStrategyType = typeof VersioningStrategyType.Type;
2840
- /**
2841
- * Output of the versioning strategy detection, combining the strategy type with group metadata.
2842
- *
2843
- * @remarks
2844
- * Produced by `VersioningStrategy.detect` and consumed by `TagStrategy.determine`
2845
- * to decide on the appropriate git-tag format.
2846
- *
2847
- * @since 0.1.0
2848
- * @public
2849
- */
2850
- declare const VersioningStrategyResult: Schema.Struct<{
2851
- readonly type: Schema.Literals<readonly ["single", "fixed-group", "independent"]>;
2852
- readonly fixedGroups: Schema.$Array<Schema.$Array<Schema.String>>;
2853
- readonly publishablePackages: Schema.$Array<Schema.String>;
2854
- }>;
2855
- /**
2856
- * @since 0.1.0
2857
- * @public
2858
- */
2859
- type VersioningStrategyResult = typeof VersioningStrategyResult.Type;
2860
2823
  //#endregion
2861
2824
  //#region src/services/ChangesetConfigReader.d.ts
2862
2825
  /**
@@ -3428,7 +3391,7 @@ declare class GitHubService extends GitHubService_base {}
3428
3391
  * @remarks
3429
3392
  * This layer is used by the `\@savvy-web/changesets/changelog` entry point
3430
3393
  * to resolve commit hashes into PR numbers and author attribution. It is
3431
- * composed with {@link MarkdownLive} in the changelog formatter's
3394
+ * used by the changelog formatter's
3432
3395
  * `MainLayer`.
3433
3396
  *
3434
3397
  * @example
@@ -3488,103 +3451,6 @@ declare const GitHubLive: Layer.Layer<GitHubService, never, never>;
3488
3451
  */
3489
3452
  declare function makeGitHubTest(responses: Map<string, GitHubCommitInfo>): Layer.Layer<GitHubService>;
3490
3453
  //#endregion
3491
- //#region src/changesets/services/markdown.d.ts
3492
- /**
3493
- * Service interface for markdown parsing and stringification.
3494
- *
3495
- * Describes the two operations a `MarkdownService` implementation must
3496
- * provide: parsing markdown text into an mdast AST and stringifying an
3497
- * mdast AST back to markdown text.
3498
- *
3499
- * @remarks
3500
- * Both operations are infallible (no error channel) because the underlying
3501
- * remark pipeline is configured to handle all valid markdown input. The
3502
- * `Root` type comes from the `mdast` package and represents the root node
3503
- * of a markdown abstract syntax tree.
3504
- *
3505
- * @public
3506
- */
3507
- interface MarkdownServiceShape {
3508
- /**
3509
- * Parse a markdown string into an mdast abstract syntax tree.
3510
- *
3511
- * @param content - Raw markdown text to parse
3512
- * @returns An `Effect` that resolves to an mdast `Root` node
3513
- */
3514
- readonly parse: (content: string) => Effect.Effect<Root>;
3515
- /**
3516
- * Stringify an mdast abstract syntax tree back to markdown text.
3517
- *
3518
- * @param tree - The mdast `Root` node to serialize
3519
- * @returns An `Effect` that resolves to a markdown string
3520
- */
3521
- readonly stringify: (tree: Root) => Effect.Effect<string>;
3522
- }
3523
- declare const MarkdownService_base: Context.ServiceClass<MarkdownService, "MarkdownService", MarkdownServiceShape>;
3524
- /**
3525
- * Effect service tag for markdown parsing and stringification.
3526
- *
3527
- * Provides dependency-injected access to markdown parse/stringify operations.
3528
- * Use `yield* MarkdownService` inside an `Effect.gen` block to obtain the
3529
- * service instance.
3530
- *
3531
- * @remarks
3532
- * This tag follows the standard Effect `Context.Service` pattern. The
3533
- * {@link MarkdownLive} layer provides the default implementation backed by
3534
- * the remark/unified pipeline. For testing, you can supply a custom layer
3535
- * via `Layer.succeed(MarkdownService, { parse: ..., stringify: ... })`.
3536
- *
3537
- * @example
3538
- * ```typescript
3539
- * import { Effect } from "effect";
3540
- * import { MarkdownService, MarkdownLive } from "\@savvy-web/changesets";
3541
- *
3542
- * const program = Effect.gen(function* () {
3543
- * const md = yield* MarkdownService;
3544
- * const tree = yield* md.parse("# Hello\n\nWorld");
3545
- * const output = yield* md.stringify(tree);
3546
- * console.log(output); // "# Hello\n\nWorld\n"
3547
- * });
3548
- *
3549
- * Effect.runPromise(program.pipe(Effect.provide(MarkdownLive)));
3550
- * ```
3551
- *
3552
- * @see {@link MarkdownServiceShape} for the service interface
3553
- * @see {@link MarkdownLive} for the production layer
3554
- *
3555
- * @public
3556
- */
3557
- declare class MarkdownService extends MarkdownService_base {}
3558
- /**
3559
- * Production layer for {@link MarkdownService}.
3560
- *
3561
- * Wraps the remark-pipeline utility functions (`parseMarkdown` and
3562
- * `stringifyMarkdown`) in `Effect.sync` for use in Effect programs.
3563
- * Both operations are synchronous and infallible.
3564
- *
3565
- * @remarks
3566
- * This layer is composed with {@link GitHubLive} in the
3567
- * `\@savvy-web/changesets/changelog` entry point to form the `MainLayer`
3568
- * that powers the Changesets API integration.
3569
- *
3570
- * @example
3571
- * ```typescript
3572
- * import { Effect, Layer } from "effect";
3573
- * import { MarkdownService, MarkdownLive } from "\@savvy-web/changesets";
3574
- *
3575
- * const program = Effect.gen(function* () {
3576
- * const md = yield* MarkdownService;
3577
- * const tree = yield* md.parse("**bold** text");
3578
- * return yield* md.stringify(tree);
3579
- * });
3580
- *
3581
- * Effect.runPromise(program.pipe(Effect.provide(MarkdownLive)));
3582
- * ```
3583
- *
3584
- * @public
3585
- */
3586
- declare const MarkdownLive: Layer.Layer<MarkdownService, never, never>;
3587
- //#endregion
3588
3454
  //#region src/changesets/services/changelog.d.ts
3589
3455
  /**
3590
3456
  * Service interface for changelog formatting.
@@ -3596,7 +3462,7 @@ declare const MarkdownLive: Layer.Layer<MarkdownService, never, never>;
3596
3462
  * @remarks
3597
3463
  * Both methods return `Effect.Effect` values that require additional
3598
3464
  * services in their environment (`R` channel). `formatReleaseLine` needs
3599
- * both {@link GitHubService} (for commit metadata) and {@link MarkdownService}
3465
+ * {@link GitHubService} (for commit metadata)
3600
3466
  * (for markdown parsing), while `formatDependencyReleaseLine` only needs
3601
3467
  * {@link GitHubService}.
3602
3468
  *
@@ -3611,7 +3477,7 @@ interface ChangelogServiceShape {
3611
3477
  * @param options - Validated changeset configuration options (must include `repo`)
3612
3478
  * @returns An `Effect` that resolves to a formatted markdown string
3613
3479
  */
3614
- readonly formatReleaseLine: (changeset: NewChangesetWithCommit, versionType: VersionType$1, options: ChangesetOptions) => Effect.Effect<string, never, GitHubService | MarkdownService>;
3480
+ readonly formatReleaseLine: (changeset: NewChangesetWithCommit, versionType: VersionType$1, options: ChangesetOptions) => Effect.Effect<string, never, GitHubService>;
3615
3481
  /**
3616
3482
  * Format dependency update release lines as a markdown table.
3617
3483
  *
@@ -3640,7 +3506,7 @@ declare const ChangelogService_base: Context.ServiceClass<ChangelogService, "Cha
3640
3506
  * ```typescript
3641
3507
  * import { Effect } from "effect";
3642
3508
  * import type { ChangesetOptions } from "\@savvy-web/changesets";
3643
- * import { ChangelogService, GitHubLive, MarkdownLive } from "\@savvy-web/changesets";
3509
+ * import { ChangelogService, GitHubLive } from "\@savvy-web/changesets";
3644
3510
  *
3645
3511
  * const program = Effect.gen(function* () {
3646
3512
  * const changelog = yield* ChangelogService;
@@ -5732,7 +5598,7 @@ declare const RequiredSectionsRule: import("unified-lint-rule").Plugin<Root, unk
5732
5598
  //#region src/changesets/remark/rules/uncategorized-content.d.ts
5733
5599
  declare const UncategorizedContentRule: import("unified-lint-rule").Plugin<Root, unknown>;
5734
5600
  declare namespace index_d_exports {
5735
- export { AggregateDependencyTablesPlugin, AppliedRelease, AppliedReleaseEntrySchema, AppliedReleaseSchema, BranchAnalysis, BranchAnalysisSchema, BranchAnalyzer, BranchAnalyzerLive, BranchAnalyzerShape, BranchFileEntry, BranchFileEntrySchema, BumpType, BumpTypeSchema, Categories, Changelog, ChangelogService, ChangelogServiceShape, ChangelogTransformer, Changeset, ChangesetIOError, ChangesetLinter, ChangesetOptions, ChangesetOptionsSchema, ChangesetPreview, ChangesetPreviewSchema, ChangesetSchema, ChangesetSummarySchema, ChangesetValidationError, Classification, ClassificationReason, ClassificationReasonSchema, ClassificationSchema, CommitHashSchema, ConfigInspector, ConfigInspectorLive, ConfigInspectorShape, ConfigurationError, ContentStructureRule, ContributorFootnotesPlugin, DeduplicateItemsPlugin, DependencyAction, DependencyActionSchema, DependencyTable, DependencyTableFormatRule, DependencyTableRow, DependencyTableRowSchema, DependencyTableSchema, DependencyTableType, DependencyTableTypeSchema, DependencyType, DependencyTypeSchema, DependencyUpdate, DependencyUpdateSchema, DepsRegen, DepsRegenDefault, DepsRegenLive, DepsRegenOptions, DepsRegenPlanError, DepsRegenShape, FileStatus, FileStatusSchema, GitError, GitHubApiError, GitHubCommitInfo, GitHubInfo, GitHubInfoSchema, GitHubLive, GitHubService, GitHubServiceShape, GlobSchema, HeadingHierarchyRule, InspectedConfig, InspectedConfigSchema, IssueLinkRefsPlugin, IssueNumberSchema, JsonPathSchema, LegacyVersionFileConfig, LegacyVersionFileConfigSchema, LegacyVersionFilesSchema, LintMessage, MaintenanceNoteOptions, MaintenanceNotePlugin, MaintenanceReason, MaintenanceReasonSchema, MaintenanceTrigger, MaintenanceTriggerSchema, MarkdownLive, MarkdownParseError, MarkdownService, MarkdownServiceShape, ContentStructureRule$1 as MarkdownlintContentStructureRule, DependencyTableFormatRule$1 as MarkdownlintDependencyTableFormatRule, HeadingHierarchyRule$1 as MarkdownlintHeadingHierarchyRule, RequiredSectionsRule$1 as MarkdownlintRequiredSectionsRule, UncategorizedContentRule$1 as MarkdownlintUncategorizedContentRule, MergeSectionsPlugin, NonEmptyString, NormalizeFormatPlugin, PackageScope, PackageScopeSchema, PackagesRecordSchema, PendingChangeset, PendingChangesetSchema, PositiveInteger, PreviewRelease, PreviewReleaseSchema, RegenPlan, RegenResult, ReleasePlanError, ReleasePlanner, ReleasePlannerLive, ReleasePlannerShape, ReorderSectionsPlugin, RepoSchema, RequiredSectionsRule, ResolvedPackageScope, ResolvedPackageScopeSchema, ResolvedVersionFile, ResolvedVersionFileSchema, SectionCategory, SectionCategorySchema, SilkChangesetPreset, SilkChangesetTransformPreset, SilkChangesetsRules, TransformOptions, UncategorizedContentRule, UrlOrMarkdownLinkSchema, UsernameSchema, VERSION_RE, VersionFileConfig, VersionFileConfigSchema, VersionFileError, VersionFileUpdate, VersionFileUpdateRecordSchema, VersionFiles, VersionFilesSchema, VersionOrEmptySchema, VersionType, VersionTypeSchema, WorkspaceDependencyDiff, WorkspaceVersion, changelogFunctions, computeWorkspaceDependencyDiffs, deriveMaintenanceReason, gitMergeBase, isPureDependencyChangeset, listPublishablePackageNames, makeBranchAnalyzerTest, makeConfigInspectorTest, makeDepsRegenDefault, makeGitHubTest, makeReleasePlannerTest, serializeDependencyTableToMarkdown };
5601
+ export { AggregateDependencyTablesPlugin, AppliedRelease, AppliedReleaseEntrySchema, AppliedReleaseSchema, BranchAnalysis, BranchAnalysisSchema, BranchAnalyzer, BranchAnalyzerLive, BranchAnalyzerShape, BranchFileEntry, BranchFileEntrySchema, BumpType, BumpTypeSchema, Categories, Changelog, ChangelogService, ChangelogServiceShape, ChangelogTransformer, Changeset, ChangesetIOError, ChangesetLinter, ChangesetOptions, ChangesetOptionsSchema, ChangesetPreview, ChangesetPreviewSchema, ChangesetSchema, ChangesetSummarySchema, ChangesetValidationError, Classification, ClassificationReason, ClassificationReasonSchema, ClassificationSchema, CommitHashSchema, ConfigInspector, ConfigInspectorLive, ConfigInspectorShape, ConfigurationError, ContentStructureRule, ContributorFootnotesPlugin, DeduplicateItemsPlugin, DependencyAction, DependencyActionSchema, DependencyTable, DependencyTableFormatRule, DependencyTableRow, DependencyTableRowSchema, DependencyTableSchema, DependencyTableType, DependencyTableTypeSchema, DependencyType, DependencyTypeSchema, DependencyUpdate, DependencyUpdateSchema, DepsRegen, DepsRegenDefault, DepsRegenLive, DepsRegenOptions, DepsRegenPlanError, DepsRegenShape, FileStatus, FileStatusSchema, GitError, GitHubApiError, GitHubCommitInfo, GitHubInfo, GitHubInfoSchema, GitHubLive, GitHubService, GitHubServiceShape, GlobSchema, HeadingHierarchyRule, InspectedConfig, InspectedConfigSchema, IssueLinkRefsPlugin, IssueNumberSchema, JsonPathSchema, LegacyVersionFileConfig, LegacyVersionFileConfigSchema, LegacyVersionFilesSchema, LintMessage, MaintenanceNoteOptions, MaintenanceNotePlugin, MaintenanceReason, MaintenanceReasonSchema, MaintenanceTrigger, MaintenanceTriggerSchema, MarkdownParseError, ContentStructureRule$1 as MarkdownlintContentStructureRule, DependencyTableFormatRule$1 as MarkdownlintDependencyTableFormatRule, HeadingHierarchyRule$1 as MarkdownlintHeadingHierarchyRule, RequiredSectionsRule$1 as MarkdownlintRequiredSectionsRule, UncategorizedContentRule$1 as MarkdownlintUncategorizedContentRule, MergeSectionsPlugin, NonEmptyString, NormalizeFormatPlugin, PackageScope, PackageScopeSchema, PackagesRecordSchema, PendingChangeset, PendingChangesetSchema, PositiveInteger, PreviewRelease, PreviewReleaseSchema, RegenPlan, RegenResult, ReleasePlanError, ReleasePlanner, ReleasePlannerLive, ReleasePlannerShape, ReorderSectionsPlugin, RepoSchema, RequiredSectionsRule, ResolvedPackageScope, ResolvedPackageScopeSchema, ResolvedVersionFile, ResolvedVersionFileSchema, SectionCategory, SectionCategorySchema, SilkChangesetPreset, SilkChangesetTransformPreset, SilkChangesetsRules, TransformOptions, UncategorizedContentRule, UrlOrMarkdownLinkSchema, UsernameSchema, VERSION_RE, VersionFileConfig, VersionFileConfigSchema, VersionFileError, VersionFileUpdate, VersionFileUpdateRecordSchema, VersionFiles, VersionFilesSchema, VersionOrEmptySchema, VersionType, VersionTypeSchema, WorkspaceDependencyDiff, WorkspaceVersion, changelogFunctions, computeWorkspaceDependencyDiffs, deriveMaintenanceReason, gitMergeBase, isPureDependencyChangeset, listPublishablePackageNames, makeBranchAnalyzerTest, makeConfigInspectorTest, makeDepsRegenDefault, makeGitHubTest, makeReleasePlannerTest, serializeDependencyTableToMarkdown };
5736
5602
  }
5737
5603
  //#endregion
5738
5604
  //#region src/commitlint/config/schema.d.ts
@@ -6717,136 +6583,6 @@ declare class PublishTargetBindingError extends PublishTargetBindingError_base<{
6717
6583
  get message(): string;
6718
6584
  }
6719
6585
  //#endregion
6720
- //#region src/errors/SectionParseError.d.ts
6721
- declare const SectionParseError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
6722
- readonly _tag: "SectionParseError";
6723
- } & Readonly<A>;
6724
- /**
6725
- * Raised when a managed section cannot be parsed from a file.
6726
- *
6727
- * @since 0.2.0
6728
- * @public
6729
- */
6730
- declare class SectionParseError extends SectionParseError_base<{
6731
- readonly path: string;
6732
- readonly reason: string;
6733
- }> {
6734
- get message(): string;
6735
- }
6736
- //#endregion
6737
- //#region src/errors/SectionValidationError.d.ts
6738
- declare const SectionValidationError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
6739
- readonly _tag: "SectionValidationError";
6740
- } & Readonly<A>;
6741
- /**
6742
- * Raised when a {@link SectionBlock} fails validation at creation time.
6743
- *
6744
- * @since 0.2.0
6745
- * @public
6746
- */
6747
- declare class SectionValidationError extends SectionValidationError_base<{
6748
- readonly toolName: string;
6749
- readonly reason: string;
6750
- }> {
6751
- get message(): string;
6752
- }
6753
- //#endregion
6754
- //#region src/errors/SectionWriteError.d.ts
6755
- declare const SectionWriteError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
6756
- readonly _tag: "SectionWriteError";
6757
- } & Readonly<A>;
6758
- /**
6759
- * Raised when a managed section cannot be written to a file.
6760
- *
6761
- * @since 0.2.0
6762
- * @public
6763
- */
6764
- declare class SectionWriteError extends SectionWriteError_base<{
6765
- readonly path: string;
6766
- readonly reason: string;
6767
- }> {
6768
- get message(): string;
6769
- }
6770
- //#endregion
6771
- //#region src/errors/TagFormatError.d.ts
6772
- declare const TagFormatError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
6773
- readonly _tag: "TagFormatError";
6774
- } & Readonly<A>;
6775
- /**
6776
- * Raised when a git tag string cannot be formatted for the given package name and version.
6777
- *
6778
- * @remarks
6779
- * Returned by `TagStrategy.formatTag` when the `version` argument is an empty string
6780
- * or another invariant prevents tag construction.
6781
- *
6782
- * @since 0.1.0
6783
- * @public
6784
- */
6785
- declare class TagFormatError extends TagFormatError_base<{
6786
- readonly name: string;
6787
- readonly version: string;
6788
- readonly reason: string;
6789
- }> {
6790
- get message(): string;
6791
- }
6792
- //#endregion
6793
- //#region src/errors/ToolNotFoundError.d.ts
6794
- declare const ToolNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
6795
- readonly _tag: "ToolNotFoundError";
6796
- } & Readonly<A>;
6797
- /** @public */
6798
- declare class ToolNotFoundError extends ToolNotFoundError_base<{
6799
- readonly name: string;
6800
- readonly reason: string;
6801
- }> {
6802
- get message(): string;
6803
- }
6804
- //#endregion
6805
- //#region src/errors/ToolResolutionError.d.ts
6806
- declare const ToolResolutionError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
6807
- readonly _tag: "ToolResolutionError";
6808
- } & Readonly<A>;
6809
- /** @public */
6810
- declare class ToolResolutionError extends ToolResolutionError_base<{
6811
- readonly name: string;
6812
- readonly reason: string;
6813
- }> {
6814
- get message(): string;
6815
- }
6816
- //#endregion
6817
- //#region src/errors/ToolVersionMismatchError.d.ts
6818
- declare const ToolVersionMismatchError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
6819
- readonly _tag: "ToolVersionMismatchError";
6820
- } & Readonly<A>;
6821
- /** @public */
6822
- declare class ToolVersionMismatchError extends ToolVersionMismatchError_base<{
6823
- readonly name: string;
6824
- readonly globalVersion: string;
6825
- readonly localVersion: string;
6826
- }> {
6827
- get message(): string;
6828
- }
6829
- //#endregion
6830
- //#region src/errors/VersioningDetectionError.d.ts
6831
- declare const VersioningDetectionError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
6832
- readonly _tag: "VersioningDetectionError";
6833
- } & Readonly<A>;
6834
- /**
6835
- * Raised when the versioning strategy cannot be determined from the workspace state.
6836
- *
6837
- * @remarks
6838
- * Returned by `VersioningStrategy.detect` when an unexpected condition
6839
- * prevents strategy classification.
6840
- *
6841
- * @since 0.1.0
6842
- * @public
6843
- */
6844
- declare class VersioningDetectionError extends VersioningDetectionError_base<{
6845
- readonly reason: string;
6846
- }> {
6847
- get message(): string;
6848
- }
6849
- //#endregion
6850
6586
  //#region src/errors/WorkspaceAnalysisError.d.ts
6851
6587
  declare const WorkspaceAnalysisError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
6852
6588
  readonly _tag: "WorkspaceAnalysisError";
@@ -8193,410 +7929,48 @@ declare function isWorkspacePackagePath(filePath: string): boolean;
8193
7929
  */
8194
7930
  declare function resetWorkspaceCache(): void;
8195
7931
  //#endregion
8196
- //#region src/schemas/SectionResults.d.ts
8197
- /**
8198
- * Result of comparing two section contents.
8199
- *
8200
- * @since 0.2.0
8201
- * @public
8202
- */
8203
- type SectionDiffDefinition = {
8204
- readonly Unchanged: {};
8205
- readonly Changed: {
8206
- readonly added: ReadonlyArray<string>;
8207
- readonly removed: ReadonlyArray<string>;
8208
- };
8209
- };
8210
- /**
8211
- * @since 0.2.0
8212
- * @public
8213
- */
8214
- type SectionDiff = Data.TaggedEnum<SectionDiffDefinition>;
8215
- /**
8216
- * @since 0.2.0
8217
- * @public
8218
- */
8219
- declare const SectionDiff: {
8220
- readonly $is: <Tag extends "Changed" | "Unchanged">(tag: Tag) => (u: unknown) => u is Extract<{
8221
- readonly _tag: "Changed";
8222
- readonly added: ReadonlyArray<string>;
8223
- readonly removed: ReadonlyArray<string>;
8224
- }, {
8225
- readonly _tag: Tag;
8226
- }> | Extract<{
8227
- readonly _tag: "Unchanged";
8228
- }, {
8229
- readonly _tag: Tag;
8230
- }>;
8231
- readonly $match: {
8232
- <Cases extends {
8233
- readonly Changed: (args: {
8234
- readonly _tag: "Changed";
8235
- readonly added: ReadonlyArray<string>;
8236
- readonly removed: ReadonlyArray<string>;
8237
- }) => any;
8238
- readonly Unchanged: (args: {
8239
- readonly _tag: "Unchanged";
8240
- }) => any;
8241
- }>(cases: Cases): (value: {
8242
- readonly _tag: "Changed";
8243
- readonly added: ReadonlyArray<string>;
8244
- readonly removed: ReadonlyArray<string>;
8245
- } | {
8246
- readonly _tag: "Unchanged";
8247
- }) => import("effect/Unify").Unify<ReturnType<Cases["Changed" | "Unchanged"]>>;
8248
- <Cases extends {
8249
- readonly Changed: (args: {
8250
- readonly _tag: "Changed";
8251
- readonly added: ReadonlyArray<string>;
8252
- readonly removed: ReadonlyArray<string>;
8253
- }) => any;
8254
- readonly Unchanged: (args: {
8255
- readonly _tag: "Unchanged";
8256
- }) => any;
8257
- }>(value: {
8258
- readonly _tag: "Changed";
8259
- readonly added: ReadonlyArray<string>;
8260
- readonly removed: ReadonlyArray<string>;
8261
- } | {
8262
- readonly _tag: "Unchanged";
8263
- }, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Changed" | "Unchanged"]>>;
8264
- };
8265
- readonly Changed: Data.TaggedEnum.ConstructorFrom<{
8266
- readonly _tag: "Changed";
8267
- readonly added: ReadonlyArray<string>;
8268
- readonly removed: ReadonlyArray<string>;
8269
- }, "_tag">;
8270
- readonly Unchanged: Data.TaggedEnum.ConstructorFrom<{
8271
- readonly _tag: "Unchanged";
8272
- }, "_tag">;
8273
- };
8274
- /**
8275
- * Result of a sync operation.
8276
- *
8277
- * @since 0.2.0
8278
- * @public
8279
- */
8280
- type SyncResultDefinition = {
8281
- readonly Created: {};
8282
- readonly Updated: {
8283
- readonly diff: SectionDiff;
8284
- };
8285
- readonly Unchanged: {};
8286
- };
8287
- /**
8288
- * @since 0.2.0
8289
- * @public
8290
- */
8291
- type SyncResult = Data.TaggedEnum<SyncResultDefinition>;
8292
- /**
8293
- * @since 0.2.0
8294
- * @public
8295
- */
8296
- declare const SyncResult: {
8297
- readonly $is: <Tag extends "Created" | "Unchanged" | "Updated">(tag: Tag) => (u: unknown) => u is Extract<{
8298
- readonly _tag: "Created";
8299
- }, {
8300
- readonly _tag: Tag;
8301
- }> | Extract<{
8302
- readonly _tag: "Unchanged";
8303
- }, {
8304
- readonly _tag: Tag;
8305
- }> | Extract<{
8306
- readonly _tag: "Updated";
8307
- readonly diff: SectionDiff;
8308
- }, {
8309
- readonly _tag: Tag;
8310
- }>;
8311
- readonly $match: {
8312
- <Cases extends {
8313
- readonly Created: (args: {
8314
- readonly _tag: "Created";
8315
- }) => any;
8316
- readonly Unchanged: (args: {
8317
- readonly _tag: "Unchanged";
8318
- }) => any;
8319
- readonly Updated: (args: {
8320
- readonly _tag: "Updated";
8321
- readonly diff: SectionDiff;
8322
- }) => any;
8323
- }>(cases: Cases): (value: {
8324
- readonly _tag: "Created";
8325
- } | {
8326
- readonly _tag: "Unchanged";
8327
- } | {
8328
- readonly _tag: "Updated";
8329
- readonly diff: SectionDiff;
8330
- }) => import("effect/Unify").Unify<ReturnType<Cases["Created" | "Unchanged" | "Updated"]>>;
8331
- <Cases extends {
8332
- readonly Created: (args: {
8333
- readonly _tag: "Created";
8334
- }) => any;
8335
- readonly Unchanged: (args: {
8336
- readonly _tag: "Unchanged";
8337
- }) => any;
8338
- readonly Updated: (args: {
8339
- readonly _tag: "Updated";
8340
- readonly diff: SectionDiff;
8341
- }) => any;
8342
- }>(value: {
8343
- readonly _tag: "Created";
8344
- } | {
8345
- readonly _tag: "Unchanged";
8346
- } | {
8347
- readonly _tag: "Updated";
8348
- readonly diff: SectionDiff;
8349
- }, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Created" | "Unchanged" | "Updated"]>>;
8350
- };
8351
- readonly Created: Data.TaggedEnum.ConstructorFrom<{
8352
- readonly _tag: "Created";
8353
- }, "_tag">;
8354
- readonly Unchanged: Data.TaggedEnum.ConstructorFrom<{
8355
- readonly _tag: "Unchanged";
8356
- }, "_tag">;
8357
- readonly Updated: Data.TaggedEnum.ConstructorFrom<{
8358
- readonly _tag: "Updated";
8359
- readonly diff: SectionDiff;
8360
- }, "_tag">;
8361
- };
7932
+ //#region src/lint/cli/sections.d.ts
7933
+ /** Path for the husky pre-commit hook. */
7934
+ declare const HUSKY_HOOK_PATH = ".husky/pre-commit";
7935
+ /** Path for the husky post-checkout hook. */
7936
+ declare const POST_CHECKOUT_HOOK_PATH = ".husky/post-checkout";
7937
+ /** Path for the husky post-merge hook. */
7938
+ declare const POST_MERGE_HOOK_PATH = ".husky/post-merge";
7939
+ /** Path for the husky post-commit hook. */
7940
+ declare const POST_COMMIT_HOOK_PATH = ".husky/post-commit";
7941
+ /** Default path for the lint-staged config file. */
7942
+ declare const DEFAULT_CONFIG_PATH = "lib/configs/lint-staged.config.ts";
7943
+ /** Path for the markdownlint-cli2 config file. */
7944
+ declare const MARKDOWNLINT_CONFIG_PATH = "lib/configs/.markdownlint-cli2.jsonc";
7945
+ /** Identity definition for the savvy-lint tool section (read / check / remove). */
7946
+ declare const SavvyLintSectionDef: SectionId;
8362
7947
  /**
8363
- * Result of a check operation.
7948
+ * Identity definition for the legacy `SAVVY-LINT` hygiene section that previously
7949
+ * lived in `.husky/post-checkout` and `.husky/post-merge`.
8364
7950
  *
8365
- * @since 0.2.0
8366
- * @public
8367
- */
8368
- type CheckResultDefinition = {
8369
- readonly Found: {
8370
- readonly isUpToDate: boolean;
8371
- readonly diff: SectionDiff;
8372
- };
8373
- readonly NotFound: {};
8374
- };
8375
- /**
8376
- * @since 0.2.0
8377
- * @public
8378
- */
8379
- type CheckResult = Data.TaggedEnum<CheckResultDefinition>;
8380
- /**
8381
- * @since 0.2.0
8382
- * @public
7951
+ * @remarks
7952
+ * The hygiene block has been replaced by a co-owned `savvy-hooks` section emitted from
7953
+ * silk-effects. Use this definition with `ManagedSection.remove` during migration to
7954
+ * delete the leftover block from those hooks. The marker matched is identical to
7955
+ * `SavvyLintSectionDef`'s; the two definitions are split only by intent (live tool
7956
+ * section vs. legacy hygiene block that lives in a different hook).
8383
7957
  */
8384
- declare const CheckResult: {
8385
- readonly $is: <Tag extends "Found" | "NotFound">(tag: Tag) => (u: unknown) => u is Extract<{
8386
- readonly _tag: "Found";
8387
- readonly isUpToDate: boolean;
8388
- readonly diff: SectionDiff;
8389
- }, {
8390
- readonly _tag: Tag;
8391
- }> | Extract<{
8392
- readonly _tag: "NotFound";
8393
- }, {
8394
- readonly _tag: Tag;
8395
- }>;
8396
- readonly $match: {
8397
- <Cases extends {
8398
- readonly Found: (args: {
8399
- readonly _tag: "Found";
8400
- readonly isUpToDate: boolean;
8401
- readonly diff: SectionDiff;
8402
- }) => any;
8403
- readonly NotFound: (args: {
8404
- readonly _tag: "NotFound";
8405
- }) => any;
8406
- }>(cases: Cases): (value: {
8407
- readonly _tag: "Found";
8408
- readonly isUpToDate: boolean;
8409
- readonly diff: SectionDiff;
8410
- } | {
8411
- readonly _tag: "NotFound";
8412
- }) => import("effect/Unify").Unify<ReturnType<Cases["Found" | "NotFound"]>>;
8413
- <Cases extends {
8414
- readonly Found: (args: {
8415
- readonly _tag: "Found";
8416
- readonly isUpToDate: boolean;
8417
- readonly diff: SectionDiff;
8418
- }) => any;
8419
- readonly NotFound: (args: {
8420
- readonly _tag: "NotFound";
8421
- }) => any;
8422
- }>(value: {
8423
- readonly _tag: "Found";
8424
- readonly isUpToDate: boolean;
8425
- readonly diff: SectionDiff;
8426
- } | {
8427
- readonly _tag: "NotFound";
8428
- }, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Found" | "NotFound"]>>;
8429
- };
8430
- readonly Found: Data.TaggedEnum.ConstructorFrom<{
8431
- readonly _tag: "Found";
8432
- readonly isUpToDate: boolean;
8433
- readonly diff: SectionDiff;
8434
- }, "_tag">;
8435
- readonly NotFound: Data.TaggedEnum.ConstructorFrom<{
8436
- readonly _tag: "NotFound";
8437
- }, "_tag">;
8438
- };
8439
- //#endregion
8440
- //#region src/schemas/SectionBlock.d.ts
8441
- declare const SectionBlock_base: Schema.Class<SectionBlock, Schema.TaggedStruct<"SectionBlock", {
8442
- readonly toolName: Schema.String;
8443
- readonly commentStyle: Schema.Literals<readonly ["#", "//"]>;
8444
- readonly content: Schema.String;
8445
- }>, {}>;
7958
+ declare const LegacySavvyLintHygieneDef: SectionId;
8446
7959
  /**
8447
- * The content between managed section markers.
8448
- *
8449
- * `Equal` compares normalized content only (trimmed, whitespace-collapsed).
8450
- * Use `diff` to compute line-level differences.
7960
+ * Build the savvy-lint tool section block for the given config path.
8451
7961
  *
8452
- * @since 0.2.0
8453
- * @public
7962
+ * @remarks
7963
+ * Depends on the savvy-base preamble (`in_ci`, `pm_exec`) preceding it in the hook.
8454
7964
  */
8455
- declare class SectionBlock extends SectionBlock_base {
8456
- static diff: {
8457
- (that: SectionBlock): (self: SectionBlock) => SectionDiff;
8458
- (self: SectionBlock, that: SectionBlock): SectionDiff;
8459
- };
8460
- static prepend: {
8461
- (lines: string): (self: SectionBlock) => SectionBlock;
8462
- (self: SectionBlock, lines: string): SectionBlock;
8463
- };
8464
- static append: {
8465
- (lines: string): (self: SectionBlock) => SectionBlock;
8466
- (self: SectionBlock, lines: string): SectionBlock;
8467
- };
8468
- get text(): string;
8469
- get normalized(): string;
8470
- get rendered(): string;
8471
- prepend(lines: string): SectionBlock;
8472
- append(lines: string): SectionBlock;
8473
- diff(that: SectionBlock): SectionDiff;
8474
- [Equal.symbol](that: Equal.Equal): boolean;
8475
- [Hash.symbol](): number;
8476
- }
8477
- //#endregion
8478
- //#region src/schemas/CommentStyle.d.ts
7965
+ declare function savvyLintBlock(configPath: string): Section;
8479
7966
  /**
8480
- * Comment syntax used to write managed section markers.
7967
+ * Rendered content of the savvy-lint tool section.
8481
7968
  *
8482
7969
  * @remarks
8483
- * - `"#"` shell/YAML style, suitable for hook scripts and `.env` files.
8484
- * - `"//"` — C-style, suitable for JavaScript/TypeScript files.
7970
+ * Equivalent to `savvyLintBlock(configPath).content`. Retained for the check command
7971
+ * and tests.
8485
7972
  *
8486
- * @since 0.1.0
8487
- * @public
8488
- */
8489
- declare const CommentStyle: Schema.Literals<readonly ["#", "//"]>;
8490
- /**
8491
- * @since 0.1.0
8492
- * @public
8493
- */
8494
- type CommentStyle = typeof CommentStyle.Type;
8495
- //#endregion
8496
- //#region src/schemas/SectionDefinition.d.ts
8497
- declare const SectionDefinition_base: Schema.Class<SectionDefinition, Schema.TaggedStruct<"SectionDefinition", {
8498
- readonly toolName: Schema.String;
8499
- readonly commentStyle: Schema.withConstructorDefault<Schema.withDecodingDefaultType<Schema.Literals<readonly ["#", "//"]>, never>>;
8500
- }>, {}>;
8501
- /**
8502
- * Identity envelope for a managed section type.
8503
- *
8504
- * `Equal` compares on `toolName` + `commentStyle`.
8505
- * Use {@link SectionDefinition.block | block()} to create a {@link SectionBlock},
8506
- * or `generate()` for a typed factory.
8507
- *
8508
- * @since 0.2.0
8509
- * @public
8510
- */
8511
- declare class SectionDefinition extends SectionDefinition_base {
8512
- private _validate?;
8513
- static generate: {
8514
- <C>(fn: (config: C) => string): (self: SectionDefinition) => (config: C) => SectionBlock;
8515
- <C>(self: SectionDefinition, fn: (config: C) => string): (config: C) => SectionBlock;
8516
- };
8517
- static generateEffect: {
8518
- <C, E, R>(fn: (config: C) => Effect.Effect<string, E, R>): (self: SectionDefinition) => (config: C) => Effect.Effect<SectionBlock, E | SectionValidationError, R>;
8519
- <C, E, R>(self: SectionDefinition, fn: (config: C) => Effect.Effect<string, E, R>): (config: C) => Effect.Effect<SectionBlock, E | SectionValidationError, R>;
8520
- };
8521
- static withValidation: {
8522
- (fn: (block: SectionBlock) => boolean): (self: SectionDefinition) => SectionDefinition;
8523
- (self: SectionDefinition, fn: (block: SectionBlock) => boolean): SectionDefinition;
8524
- };
8525
- static diff: {
8526
- (that: SectionDefinition): (self: SectionDefinition) => SectionDiff;
8527
- (self: SectionDefinition, that: SectionDefinition): SectionDiff;
8528
- };
8529
- block(content: string): SectionBlock;
8530
- generate<C>(fn: (config: C) => string): (config: C) => SectionBlock;
8531
- generateEffect<C, E, R>(fn: (config: C) => Effect.Effect<string, E, R>): (config: C) => Effect.Effect<SectionBlock, E | SectionValidationError, R>;
8532
- diff(that: SectionDefinition): SectionDiff;
8533
- get beginMarker(): string;
8534
- get endMarker(): string;
8535
- [Equal.symbol](that: Equal.Equal): boolean;
8536
- [Hash.symbol](): number;
8537
- }
8538
- declare const ShellSectionDefinition_base: Schema.Class<ShellSectionDefinition, Schema.TaggedStruct<"ShellSectionDefinition", {
8539
- readonly toolName: Schema.String;
8540
- }>, {}>;
8541
- /**
8542
- * Convenience section definition for shell hooks.
8543
- *
8544
- * `commentStyle` is always `"#"` — only `toolName` is required.
8545
- *
8546
- * @since 0.2.0
8547
- * @public
8548
- */
8549
- declare class ShellSectionDefinition extends ShellSectionDefinition_base {
8550
- get commentStyle(): CommentStyle;
8551
- block(content: string): SectionBlock;
8552
- generate<C>(fn: (config: C) => string): (config: C) => SectionBlock;
8553
- generateEffect<C, E, R>(fn: (config: C) => Effect.Effect<string, E, R>): (config: C) => Effect.Effect<SectionBlock, E, R>;
8554
- get beginMarker(): string;
8555
- get endMarker(): string;
8556
- }
8557
- //#endregion
8558
- //#region src/lint/cli/sections.d.ts
8559
- /** Path for the husky pre-commit hook. */
8560
- declare const HUSKY_HOOK_PATH = ".husky/pre-commit";
8561
- /** Path for the husky post-checkout hook. */
8562
- declare const POST_CHECKOUT_HOOK_PATH = ".husky/post-checkout";
8563
- /** Path for the husky post-merge hook. */
8564
- declare const POST_MERGE_HOOK_PATH = ".husky/post-merge";
8565
- /** Path for the husky post-commit hook. */
8566
- declare const POST_COMMIT_HOOK_PATH = ".husky/post-commit";
8567
- /** Default path for the lint-staged config file. */
8568
- declare const DEFAULT_CONFIG_PATH = "lib/configs/lint-staged.config.ts";
8569
- /** Path for the markdownlint-cli2 config file. */
8570
- declare const MARKDOWNLINT_CONFIG_PATH = "lib/configs/.markdownlint-cli2.jsonc";
8571
- /** Identity definition for the savvy-lint tool section (read / check / remove). */
8572
- declare const SavvyLintSectionDef: SectionDefinition;
8573
- /**
8574
- * Identity definition for the legacy `SAVVY-LINT` hygiene section that previously
8575
- * lived in `.husky/post-checkout` and `.husky/post-merge`.
8576
- *
8577
- * @remarks
8578
- * The hygiene block has been replaced by a co-owned `savvy-hooks` section emitted from
8579
- * silk-effects. Use this definition with `ManagedSection.remove` during migration to
8580
- * delete the leftover block from those hooks. The marker matched is identical to
8581
- * `SavvyLintSectionDef`'s; the two definitions are split only by intent (live tool
8582
- * section vs. legacy hygiene block that lives in a different hook).
8583
- */
8584
- declare const LegacySavvyLintHygieneDef: SectionDefinition;
8585
- /**
8586
- * Build the savvy-lint tool section block for the given config path.
8587
- *
8588
- * @remarks
8589
- * Depends on the savvy-base preamble (`in_ci`, `pm_exec`) preceding it in the hook.
8590
- */
8591
- declare function savvyLintBlock(configPath: string): SectionBlock;
8592
- /**
8593
- * Rendered content of the savvy-lint tool section.
8594
- *
8595
- * @remarks
8596
- * Equivalent to `savvyLintBlock(configPath).content`. Retained for the check command
8597
- * and tests.
8598
- *
8599
- * @param configPath - Path to the lint-staged config file
7973
+ * @param configPath - Path to the lint-staged config file
8600
7974
  */
8601
7975
  declare function generateManagedContent(configPath: string): string;
8602
7976
  //#endregion
@@ -9207,55 +8581,6 @@ declare const ConfigDiscoveryOptions: Schema.Struct<{
9207
8581
  */
9208
8582
  type ConfigDiscoveryOptions = typeof ConfigDiscoveryOptions.Type;
9209
8583
  //#endregion
9210
- //#region src/utils/ToolCommand.d.ts
9211
- /**
9212
- * Wraps `effect/unstable/process` `ChildProcess.Command` with instance method ergonomics.
9213
- *
9214
- * Use `yield* cmd.string()` instead of resolving the `ChildProcessSpawner` service by hand.
9215
- *
9216
- * @since 0.2.0
9217
- * @public
9218
- */
9219
- declare class ToolCommand {
9220
- readonly command: ChildProcess.Command;
9221
- constructor(command: ChildProcess.Command);
9222
- string(): Effect.Effect<string, PlatformError.PlatformError, ChildProcessSpawner.ChildProcessSpawner>;
9223
- exitCode(): Effect.Effect<number, PlatformError.PlatformError, ChildProcessSpawner.ChildProcessSpawner>;
9224
- lines(): Effect.Effect<Array<string>, PlatformError.PlatformError, ChildProcessSpawner.ChildProcessSpawner>;
9225
- stream(): Stream.Stream<string, PlatformError.PlatformError, ChildProcessSpawner.ChildProcessSpawner>;
9226
- env(environment: Record<string, string | undefined>): ToolCommand;
9227
- workingDirectory(cwd: string): ToolCommand;
9228
- stdin(input: string): ToolCommand;
9229
- }
9230
- //#endregion
9231
- //#region src/schemas/ResolvedTool.d.ts
9232
- declare const ResolvedTool_base: Schema.Class<ResolvedTool, Schema.TaggedStruct<"ResolvedTool", {
9233
- readonly name: Schema.String;
9234
- readonly source: Schema.Literals<readonly ["global", "local"]>;
9235
- readonly version: Schema.Option<Schema.String>;
9236
- readonly globalVersion: Schema.Option<Schema.String>;
9237
- readonly localVersion: Schema.Option<Schema.String>;
9238
- readonly packageManager: Schema.Literals<readonly ["npm", "pnpm", "yarn", "bun"]>;
9239
- readonly mismatch: Schema.Boolean;
9240
- }>, {}>;
9241
- /**
9242
- * Result of resolving a {@link ToolDefinition}.
9243
- *
9244
- * Provides `exec` and `dlx` to build commands for the resolved tool.
9245
- *
9246
- * @since 0.2.0
9247
- * @public
9248
- */
9249
- declare class ResolvedTool extends ResolvedTool_base {
9250
- get isGlobal(): boolean;
9251
- get isLocal(): boolean;
9252
- get hasVersionMismatch(): boolean;
9253
- exec(...args: string[]): ToolCommand;
9254
- dlx(...args: string[]): ToolCommand;
9255
- [Equal.symbol](that: Equal.Equal): boolean;
9256
- [Hash.symbol](): number;
9257
- }
9258
- //#endregion
9259
8584
  //#region src/schemas/SavvySections.d.ts
9260
8585
  /**
9261
8586
  * Section identity for the shared package-manager preamble.
@@ -9264,13 +8589,13 @@ declare class ResolvedTool extends ResolvedTool_base {
9264
8589
  *
9265
8590
  * @example
9266
8591
  * ```ts
9267
- * const block = SavvyBaseSection.block(savvyBasePreamble());
8592
+ * const section = SavvyBaseSection.section(savvyBasePreamble());
9268
8593
  * ```
9269
8594
  *
9270
8595
  * @since 0.5.0
9271
8596
  * @public
9272
8597
  */
9273
- declare const SavvyBaseSection: ShellSectionDefinition;
8598
+ declare const SavvyBaseSection: SectionId;
9274
8599
  /**
9275
8600
  * Section identity for the shared repo-hygiene block.
9276
8601
  *
@@ -9279,7 +8604,7 @@ declare const SavvyBaseSection: ShellSectionDefinition;
9279
8604
  * @since 0.5.0
9280
8605
  * @public
9281
8606
  */
9282
- declare const SavvyHooksSection: ShellSectionDefinition;
8607
+ declare const SavvyHooksSection: SectionId;
9283
8608
  /**
9284
8609
  * Package-manager detection preamble shared across Silk Suite hook files.
9285
8610
  *
@@ -9319,390 +8644,24 @@ declare function savvyHooksHygiene(): string;
9319
8644
  *
9320
8645
  * **Precondition:** a {@link SavvyBaseSection} block must precede this section in the same
9321
8646
  * hook file so `in_ci` and `pm_exec` are defined. Consumers guarantee this by passing both
9322
- * to `ManagedSection.syncMany` in order:
8647
+ * to `ManagedSection.syncAll` in order:
9323
8648
  *
9324
8649
  * @example
9325
8650
  * ```ts
9326
- * yield* ManagedSection.syncMany(".husky/commit-msg", [
9327
- * SavvyBaseSection.block(savvyBasePreamble()),
8651
+ * yield* sections.syncAll(".husky/commit-msg", [
8652
+ * SavvyBaseSection.section(savvyBasePreamble()),
9328
8653
  * savvyToolSection("savvy-commit", 'commitlint --config "$ROOT/lib/configs/commitlint.config.ts" --edit "$1"'),
9329
8654
  * ]);
9330
8655
  * ```
9331
8656
  *
9332
8657
  * @param toolName - Section identity; also drives the marker names (uppercased).
9333
8658
  * @param command - The command passed verbatim to `pm_exec`, run only outside CI.
9334
- * @returns A shell {@link SectionBlock} (`commentStyle: "#"`) for `toolName`.
8659
+ * @returns A shell `Section` (`commentStyle: hash`) for `toolName`.
9335
8660
  *
9336
8661
  * @since 0.5.0
9337
8662
  * @public
9338
8663
  */
9339
- declare function savvyToolSection(toolName: string, command: string): SectionBlock;
9340
- //#endregion
9341
- //#region src/schemas/TagStrategySchemas.d.ts
9342
- /**
9343
- * Git tag naming strategy for a workspace.
9344
- *
9345
- * @remarks
9346
- * - `"single"` — one shared tag for the entire release (e.g. `1.2.3`).
9347
- * - `"scoped"` — a per-package tag that includes the package name (e.g. `@my-org/pkg@1.2.3`).
9348
- *
9349
- * Determined by `TagStrategy.determine` based on the {@link (VersioningStrategyResult:type)}.
9350
- *
9351
- * @since 0.1.0
9352
- * @public
9353
- */
9354
- declare const TagStrategyType: Schema.Literals<readonly ["single", "scoped"]>;
9355
- /**
9356
- * @since 0.1.0
9357
- * @public
9358
- */
9359
- type TagStrategyType = typeof TagStrategyType.Type;
9360
- //#endregion
9361
- //#region src/schemas/ToolResults.d.ts
9362
- /**
9363
- * Where a tool was resolved from.
9364
- *
9365
- * @since 0.2.0
9366
- * @public
9367
- */
9368
- declare const ToolSource: Schema.Literals<readonly ["global", "local"]>;
9369
- /**
9370
- * @since 0.2.0
9371
- * @public
9372
- */
9373
- type ToolSource = typeof ToolSource.Type;
9374
- /**
9375
- * How to extract a version string from a CLI tool.
9376
- *
9377
- * @since 0.2.0
9378
- * @public
9379
- */
9380
- type VersionExtractorDefinition = {
9381
- readonly Flag: {
9382
- readonly flag: string;
9383
- readonly parse?: ((output: string) => string) | undefined;
9384
- };
9385
- readonly Json: {
9386
- readonly flag: string;
9387
- readonly path: string;
9388
- };
9389
- readonly None: {};
9390
- };
9391
- /**
9392
- * @since 0.2.0
9393
- * @public
9394
- */
9395
- type VersionExtractor = Data.TaggedEnum<VersionExtractorDefinition>;
9396
- /**
9397
- * @since 0.2.0
9398
- * @public
9399
- */
9400
- declare const VersionExtractor: {
9401
- readonly $is: <Tag extends "Flag" | "Json" | "None">(tag: Tag) => (u: unknown) => u is Extract<{
9402
- readonly _tag: "Flag";
9403
- readonly flag: string;
9404
- readonly parse?: ((output: string) => string) | undefined | undefined;
9405
- }, {
9406
- readonly _tag: Tag;
9407
- }> | Extract<{
9408
- readonly _tag: "Json";
9409
- readonly flag: string;
9410
- readonly path: string;
9411
- }, {
9412
- readonly _tag: Tag;
9413
- }> | Extract<{
9414
- readonly _tag: "None";
9415
- }, {
9416
- readonly _tag: Tag;
9417
- }>;
9418
- readonly $match: {
9419
- <Cases extends {
9420
- readonly Flag: (args: {
9421
- readonly _tag: "Flag";
9422
- readonly flag: string;
9423
- readonly parse?: ((output: string) => string) | undefined | undefined;
9424
- }) => any;
9425
- readonly Json: (args: {
9426
- readonly _tag: "Json";
9427
- readonly flag: string;
9428
- readonly path: string;
9429
- }) => any;
9430
- readonly None: (args: {
9431
- readonly _tag: "None";
9432
- }) => any;
9433
- }>(cases: Cases): (value: {
9434
- readonly _tag: "Flag";
9435
- readonly flag: string;
9436
- readonly parse?: ((output: string) => string) | undefined | undefined;
9437
- } | {
9438
- readonly _tag: "Json";
9439
- readonly flag: string;
9440
- readonly path: string;
9441
- } | {
9442
- readonly _tag: "None";
9443
- }) => import("effect/Unify").Unify<ReturnType<Cases["Flag" | "Json" | "None"]>>;
9444
- <Cases extends {
9445
- readonly Flag: (args: {
9446
- readonly _tag: "Flag";
9447
- readonly flag: string;
9448
- readonly parse?: ((output: string) => string) | undefined | undefined;
9449
- }) => any;
9450
- readonly Json: (args: {
9451
- readonly _tag: "Json";
9452
- readonly flag: string;
9453
- readonly path: string;
9454
- }) => any;
9455
- readonly None: (args: {
9456
- readonly _tag: "None";
9457
- }) => any;
9458
- }>(value: {
9459
- readonly _tag: "Flag";
9460
- readonly flag: string;
9461
- readonly parse?: ((output: string) => string) | undefined | undefined;
9462
- } | {
9463
- readonly _tag: "Json";
9464
- readonly flag: string;
9465
- readonly path: string;
9466
- } | {
9467
- readonly _tag: "None";
9468
- }, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Flag" | "Json" | "None"]>>;
9469
- };
9470
- readonly Flag: Data.TaggedEnum.ConstructorFrom<{
9471
- readonly _tag: "Flag";
9472
- readonly flag: string;
9473
- readonly parse?: ((output: string) => string) | undefined | undefined;
9474
- }, "_tag">;
9475
- readonly Json: Data.TaggedEnum.ConstructorFrom<{
9476
- readonly _tag: "Json";
9477
- readonly flag: string;
9478
- readonly path: string;
9479
- }, "_tag">;
9480
- readonly None: Data.TaggedEnum.ConstructorFrom<{
9481
- readonly _tag: "None";
9482
- }, "_tag">;
9483
- };
9484
- /**
9485
- * What to do when both global and local versions differ.
9486
- *
9487
- * @since 0.2.0
9488
- * @public
9489
- */
9490
- type ResolutionPolicyDefinition = {
9491
- readonly Report: {};
9492
- readonly PreferLocal: {};
9493
- readonly PreferGlobal: {};
9494
- readonly RequireMatch: {};
9495
- };
9496
- /**
9497
- * @since 0.2.0
9498
- * @public
9499
- */
9500
- type ResolutionPolicy = Data.TaggedEnum<ResolutionPolicyDefinition>;
9501
- /**
9502
- * @since 0.2.0
9503
- * @public
9504
- */
9505
- declare const ResolutionPolicy: {
9506
- readonly $is: <Tag extends "PreferGlobal" | "PreferLocal" | "Report" | "RequireMatch">(tag: Tag) => (u: unknown) => u is Extract<{
9507
- readonly _tag: "PreferGlobal";
9508
- }, {
9509
- readonly _tag: Tag;
9510
- }> | Extract<{
9511
- readonly _tag: "PreferLocal";
9512
- }, {
9513
- readonly _tag: Tag;
9514
- }> | Extract<{
9515
- readonly _tag: "Report";
9516
- }, {
9517
- readonly _tag: Tag;
9518
- }> | Extract<{
9519
- readonly _tag: "RequireMatch";
9520
- }, {
9521
- readonly _tag: Tag;
9522
- }>;
9523
- readonly $match: {
9524
- <Cases extends {
9525
- readonly PreferGlobal: (args: {
9526
- readonly _tag: "PreferGlobal";
9527
- }) => any;
9528
- readonly PreferLocal: (args: {
9529
- readonly _tag: "PreferLocal";
9530
- }) => any;
9531
- readonly Report: (args: {
9532
- readonly _tag: "Report";
9533
- }) => any;
9534
- readonly RequireMatch: (args: {
9535
- readonly _tag: "RequireMatch";
9536
- }) => any;
9537
- }>(cases: Cases): (value: {
9538
- readonly _tag: "PreferGlobal";
9539
- } | {
9540
- readonly _tag: "PreferLocal";
9541
- } | {
9542
- readonly _tag: "Report";
9543
- } | {
9544
- readonly _tag: "RequireMatch";
9545
- }) => import("effect/Unify").Unify<ReturnType<Cases["PreferGlobal" | "PreferLocal" | "Report" | "RequireMatch"]>>;
9546
- <Cases extends {
9547
- readonly PreferGlobal: (args: {
9548
- readonly _tag: "PreferGlobal";
9549
- }) => any;
9550
- readonly PreferLocal: (args: {
9551
- readonly _tag: "PreferLocal";
9552
- }) => any;
9553
- readonly Report: (args: {
9554
- readonly _tag: "Report";
9555
- }) => any;
9556
- readonly RequireMatch: (args: {
9557
- readonly _tag: "RequireMatch";
9558
- }) => any;
9559
- }>(value: {
9560
- readonly _tag: "PreferGlobal";
9561
- } | {
9562
- readonly _tag: "PreferLocal";
9563
- } | {
9564
- readonly _tag: "Report";
9565
- } | {
9566
- readonly _tag: "RequireMatch";
9567
- }, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["PreferGlobal" | "PreferLocal" | "Report" | "RequireMatch"]>>;
9568
- };
9569
- readonly PreferGlobal: Data.TaggedEnum.ConstructorFrom<{
9570
- readonly _tag: "PreferGlobal";
9571
- }, "_tag">;
9572
- readonly PreferLocal: Data.TaggedEnum.ConstructorFrom<{
9573
- readonly _tag: "PreferLocal";
9574
- }, "_tag">;
9575
- readonly Report: Data.TaggedEnum.ConstructorFrom<{
9576
- readonly _tag: "Report";
9577
- }, "_tag">;
9578
- readonly RequireMatch: Data.TaggedEnum.ConstructorFrom<{
9579
- readonly _tag: "RequireMatch";
9580
- }, "_tag">;
9581
- };
9582
- /**
9583
- * Where the tool must be found.
9584
- *
9585
- * @since 0.2.0
9586
- * @public
9587
- */
9588
- type SourceRequirementDefinition = {
9589
- readonly Any: {};
9590
- readonly OnlyLocal: {};
9591
- readonly OnlyGlobal: {};
9592
- readonly Both: {};
9593
- };
9594
- /**
9595
- * @since 0.2.0
9596
- * @public
9597
- */
9598
- type SourceRequirement = Data.TaggedEnum<SourceRequirementDefinition>;
9599
- /**
9600
- * @since 0.2.0
9601
- * @public
9602
- */
9603
- declare const SourceRequirement: {
9604
- readonly $is: <Tag extends "Any" | "Both" | "OnlyGlobal" | "OnlyLocal">(tag: Tag) => (u: unknown) => u is Extract<{
9605
- readonly _tag: "Any";
9606
- }, {
9607
- readonly _tag: Tag;
9608
- }> | Extract<{
9609
- readonly _tag: "Both";
9610
- }, {
9611
- readonly _tag: Tag;
9612
- }> | Extract<{
9613
- readonly _tag: "OnlyGlobal";
9614
- }, {
9615
- readonly _tag: Tag;
9616
- }> | Extract<{
9617
- readonly _tag: "OnlyLocal";
9618
- }, {
9619
- readonly _tag: Tag;
9620
- }>;
9621
- readonly $match: {
9622
- <Cases extends {
9623
- readonly Any: (args: {
9624
- readonly _tag: "Any";
9625
- }) => any;
9626
- readonly Both: (args: {
9627
- readonly _tag: "Both";
9628
- }) => any;
9629
- readonly OnlyGlobal: (args: {
9630
- readonly _tag: "OnlyGlobal";
9631
- }) => any;
9632
- readonly OnlyLocal: (args: {
9633
- readonly _tag: "OnlyLocal";
9634
- }) => any;
9635
- }>(cases: Cases): (value: {
9636
- readonly _tag: "Any";
9637
- } | {
9638
- readonly _tag: "Both";
9639
- } | {
9640
- readonly _tag: "OnlyGlobal";
9641
- } | {
9642
- readonly _tag: "OnlyLocal";
9643
- }) => import("effect/Unify").Unify<ReturnType<Cases["Any" | "Both" | "OnlyGlobal" | "OnlyLocal"]>>;
9644
- <Cases extends {
9645
- readonly Any: (args: {
9646
- readonly _tag: "Any";
9647
- }) => any;
9648
- readonly Both: (args: {
9649
- readonly _tag: "Both";
9650
- }) => any;
9651
- readonly OnlyGlobal: (args: {
9652
- readonly _tag: "OnlyGlobal";
9653
- }) => any;
9654
- readonly OnlyLocal: (args: {
9655
- readonly _tag: "OnlyLocal";
9656
- }) => any;
9657
- }>(value: {
9658
- readonly _tag: "Any";
9659
- } | {
9660
- readonly _tag: "Both";
9661
- } | {
9662
- readonly _tag: "OnlyGlobal";
9663
- } | {
9664
- readonly _tag: "OnlyLocal";
9665
- }, cases: Cases): import("effect/Unify").Unify<ReturnType<Cases["Any" | "Both" | "OnlyGlobal" | "OnlyLocal"]>>;
9666
- };
9667
- readonly Any: Data.TaggedEnum.ConstructorFrom<{
9668
- readonly _tag: "Any";
9669
- }, "_tag">;
9670
- readonly Both: Data.TaggedEnum.ConstructorFrom<{
9671
- readonly _tag: "Both";
9672
- }, "_tag">;
9673
- readonly OnlyGlobal: Data.TaggedEnum.ConstructorFrom<{
9674
- readonly _tag: "OnlyGlobal";
9675
- }, "_tag">;
9676
- readonly OnlyLocal: Data.TaggedEnum.ConstructorFrom<{
9677
- readonly _tag: "OnlyLocal";
9678
- }, "_tag">;
9679
- };
9680
- //#endregion
9681
- //#region src/schemas/ToolDefinition.d.ts
9682
- /**
9683
- * Declares a CLI tool's identity and resolution constraints.
9684
- *
9685
- * `Equal` compares on `name` only (identity).
9686
- *
9687
- * @since 0.2.0
9688
- * @public
9689
- */
9690
- declare class ToolDefinition implements Equal.Equal {
9691
- readonly _tag: "ToolDefinition";
9692
- readonly name: string;
9693
- readonly versionExtractor: VersionExtractor;
9694
- readonly policy: ResolutionPolicy;
9695
- readonly source: SourceRequirement;
9696
- private constructor();
9697
- static make(options: {
9698
- readonly name: string;
9699
- readonly versionExtractor?: VersionExtractor;
9700
- readonly policy?: ResolutionPolicy;
9701
- readonly source?: SourceRequirement;
9702
- }): ToolDefinition;
9703
- [Equal.symbol](that: Equal.Equal): boolean;
9704
- [Hash.symbol](): number;
9705
- }
8664
+ declare function savvyToolSection(toolName: string, command: string): Section;
9706
8665
  //#endregion
9707
8666
  //#region src/schemas/WorkspaceAnalysisSchemas.d.ts
9708
8667
  declare const SilkPublishConfig_base: Schema.Class<SilkPublishConfig, Schema.Struct<{
@@ -9828,11 +8787,7 @@ declare const WorkspaceAnalysis_base: Schema.Class<WorkspaceAnalysis, Schema.Tag
9828
8787
  readonly prereleaseTemplate: Schema.optional<Schema.String>;
9829
8788
  }>>;
9830
8789
  }>]>>;
9831
- readonly versioning: Schema.NullOr<Schema.Struct<{
9832
- readonly type: Schema.Literals<readonly ["single", "fixed-group", "independent"]>;
9833
- readonly fixedGroups: Schema.$Array<Schema.$Array<Schema.String>>;
9834
- readonly publishablePackages: Schema.$Array<Schema.String>;
9835
- }>>;
8790
+ readonly versioning: Schema.NullOr<typeof VersioningStrategy>;
9836
8791
  readonly tagStrategy: Schema.NullOr<Schema.Literals<readonly ["single", "scoped"]>>;
9837
8792
  }>, {}>;
9838
8793
  /**
@@ -10027,63 +8982,6 @@ declare class ConfigDiscovery extends ConfigDiscovery_base {}
10027
8982
  */
10028
8983
  declare const ConfigDiscoveryLive: Layer.Layer<ConfigDiscovery, never, FileSystem.FileSystem>;
10029
8984
  //#endregion
10030
- //#region src/services/ManagedSection.d.ts
10031
- /**
10032
- * The {@link ManagedSection} service shape.
10033
- *
10034
- * @since 3.2.0
10035
- * @public
10036
- */
10037
- interface ManagedSectionShape {
10038
- readonly read: {
10039
- (definition: SectionDefinition): (path: string) => Effect.Effect<SectionBlock | null, SectionParseError>;
10040
- (path: string, definition: SectionDefinition): Effect.Effect<SectionBlock | null, SectionParseError>;
10041
- };
10042
- readonly isManaged: {
10043
- (definition: SectionDefinition): (path: string) => Effect.Effect<boolean>;
10044
- (path: string, definition: SectionDefinition): Effect.Effect<boolean>;
10045
- };
10046
- readonly write: {
10047
- (block: SectionBlock): (path: string) => Effect.Effect<void, SectionWriteError>;
10048
- (path: string, block: SectionBlock): Effect.Effect<void, SectionWriteError>;
10049
- };
10050
- readonly sync: {
10051
- (block: SectionBlock): (path: string) => Effect.Effect<SyncResult, SectionWriteError>;
10052
- (path: string, block: SectionBlock): Effect.Effect<SyncResult, SectionWriteError>;
10053
- };
10054
- readonly syncMany: {
10055
- (blocks: ReadonlyArray<SectionBlock>): (path: string) => Effect.Effect<ReadonlyArray<SyncResult>, SectionWriteError>;
10056
- (path: string, blocks: ReadonlyArray<SectionBlock>): Effect.Effect<ReadonlyArray<SyncResult>, SectionWriteError>;
10057
- };
10058
- readonly check: {
10059
- (block: SectionBlock): (path: string) => Effect.Effect<CheckResult, SectionParseError>;
10060
- (path: string, block: SectionBlock): Effect.Effect<CheckResult, SectionParseError>;
10061
- };
10062
- readonly remove: {
10063
- (definition: SectionDefinition): (path: string) => Effect.Effect<boolean, SectionWriteError>;
10064
- (path: string, definition: SectionDefinition): Effect.Effect<boolean, SectionWriteError>;
10065
- };
10066
- }
10067
- declare const ManagedSection_base: Context.ServiceClass<ManagedSection, "@savvy-web/silk-effects/ManagedSection", ManagedSectionShape>;
10068
- /**
10069
- * Service for managing delimited sections in user-editable files.
10070
- *
10071
- * All methods use dual API (data-first and data-last).
10072
- * Identity-only operations (`read`, `isManaged`) take a {@link SectionDefinition}.
10073
- * Content operations (`write`, `sync`, `check`) take a {@link SectionBlock}.
10074
- *
10075
- * @since 0.2.0
10076
- * @public
10077
- */
10078
- declare class ManagedSection extends ManagedSection_base {}
10079
- /**
10080
- * Live implementation of {@link ManagedSection} backed by the core `FileSystem` service.
10081
- *
10082
- * @since 0.2.0
10083
- * @public
10084
- */
10085
- declare const ManagedSectionLive: Layer.Layer<ManagedSection, never, FileSystem.FileSystem>;
10086
- //#endregion
10087
8985
  //#region src/services/SilkPublishability.d.ts
10088
8986
  /**
10089
8987
  * A single object-form publish target in the `publishConfig.targets` map (mirrors the bundler's `PublishTargetObject`).
@@ -10278,131 +9176,6 @@ declare const SilkPublishabilityDetectorLive: Layer.Layer<PublishabilityDetector
10278
9176
  */
10279
9177
  declare const PublishabilityDetectorAdaptiveLive: Layer.Layer<PublishabilityDetector, never, FileSystem.FileSystem | ChangesetConfig>;
10280
9178
  //#endregion
10281
- //#region src/services/TagStrategy.d.ts
10282
- /**
10283
- * The {@link TagStrategy} service shape.
10284
- *
10285
- * @since 3.2.0
10286
- * @public
10287
- */
10288
- interface TagStrategyShape {
10289
- /**
10290
- * Determine the appropriate tag strategy type from a versioning strategy result.
10291
- *
10292
- * @param versioningResult - The result of `VersioningStrategy.detect`.
10293
- * @returns An `Effect` that always succeeds with a {@link (TagStrategyType:type)}.
10294
- *
10295
- * @since 0.1.0
10296
- */
10297
- readonly determine: (versioningResult: VersioningStrategyResult) => Effect.Effect<TagStrategyType>;
10298
- /**
10299
- * Format a git tag string for a given package name, version, and strategy.
10300
- *
10301
- * @param name - The package name (e.g. `"@my-org/pkg"` or `"my-pkg"`).
10302
- * @param version - The semver version string (e.g. `"1.2.3"`). Must not be empty.
10303
- * @param strategy - The {@link (TagStrategyType:type)} to apply.
10304
- * @returns An `Effect` that resolves to the formatted tag string, or fails with
10305
- * {@link TagFormatError} when `version` is empty.
10306
- *
10307
- * @since 0.1.0
10308
- */
10309
- readonly formatTag: (name: string, version: string, strategy: TagStrategyType) => Effect.Effect<string, TagFormatError>;
10310
- }
10311
- declare const TagStrategy_base: Context.ServiceClass<TagStrategy, "@savvy-web/silk-effects/TagStrategy", TagStrategyShape>;
10312
- /**
10313
- * Service that determines and applies the git-tag naming strategy for a release.
10314
- *
10315
- * @remarks
10316
- * Consumes a {@link (VersioningStrategyResult:type)} to pick between `"single"` and `"scoped"`
10317
- * tag formats, then formats tag strings accordingly. Independent versioning always
10318
- * produces scoped tags; single and fixed-group versioning produces a single shared tag.
10319
- *
10320
- * @example
10321
- * ```typescript
10322
- * const result = await Effect.runPromise(
10323
- * Effect.gen(function* () {
10324
- * const tags = yield* TagStrategy;
10325
- * const strategyType = yield* tags.determine({ type: "independent", fixedGroups: [], publishablePackages: [] });
10326
- * return yield* tags.formatTag("@my-org/pkg", "1.2.3", strategyType);
10327
- * }).pipe(Effect.provide(TagStrategyLive))
10328
- * );
10329
- * // => "@my-org/pkg@1.2.3"
10330
- * ```
10331
- *
10332
- * @since 0.1.0
10333
- * @public
10334
- */
10335
- declare class TagStrategy extends TagStrategy_base {}
10336
- /**
10337
- * Live implementation of {@link TagStrategy} with no external dependencies.
10338
- *
10339
- * @remarks
10340
- * All logic is pure: strategy determination and tag formatting involve no I/O.
10341
- *
10342
- * @since 0.1.0
10343
- * @public
10344
- */
10345
- declare const TagStrategyLive: Layer.Layer<TagStrategy>;
10346
- //#endregion
10347
- //#region src/services/VersioningStrategy.d.ts
10348
- /**
10349
- * The {@link VersioningStrategy} service shape.
10350
- *
10351
- * @since 3.2.0
10352
- * @public
10353
- */
10354
- interface VersioningStrategyShape {
10355
- /**
10356
- * Classify the versioning strategy for a list of publishable package names.
10357
- *
10358
- * @param publishablePackages - Package names (e.g. `"@my-org/pkg"`) that will be published.
10359
- * @param root - Workspace root directory to read changeset config from.
10360
- * @returns An `Effect` resolving to a {@link (VersioningStrategyResult:type)}, or failing with
10361
- * {@link VersioningDetectionError} on unexpected errors.
10362
- *
10363
- * @since 0.1.0
10364
- */
10365
- readonly detect: (publishablePackages: ReadonlyArray<string>, root: string) => Effect.Effect<VersioningStrategyResult, VersioningDetectionError>;
10366
- }
10367
- declare const VersioningStrategy_base: Context.ServiceClass<VersioningStrategy, "@savvy-web/silk-effects/VersioningStrategy", VersioningStrategyShape>;
10368
- /**
10369
- * Service that classifies the versioning strategy used by a workspace.
10370
- *
10371
- * @remarks
10372
- * Reads the changesets config to inspect `fixed` groups, then determines whether
10373
- * the workspace uses a single-package, fixed-group, or independent versioning strategy.
10374
- * Falls back to safe defaults when the changeset config is unavailable.
10375
- *
10376
- * @example
10377
- * ```typescript
10378
- * const result = await Effect.runPromise(
10379
- * Effect.gen(function* () {
10380
- * const strategy = yield* VersioningStrategy;
10381
- * return yield* strategy.detect(["@my-org/pkg-a", "@my-org/pkg-b"]);
10382
- * }).pipe(
10383
- * Effect.provide(VersioningStrategyLive),
10384
- * Effect.provide(ChangesetConfigReaderLive),
10385
- * Effect.provide(NodeServices.layer),
10386
- * )
10387
- * );
10388
- * ```
10389
- *
10390
- * @since 0.1.0
10391
- * @public
10392
- */
10393
- declare class VersioningStrategy extends VersioningStrategy_base {}
10394
- /**
10395
- * Live implementation of {@link VersioningStrategy}.
10396
- *
10397
- * @remarks
10398
- * Requires {@link ChangesetConfigReader} to read the workspace changeset configuration.
10399
- * If the config file is absent, an empty `fixed` groups array is assumed.
10400
- *
10401
- * @since 0.1.0
10402
- * @public
10403
- */
10404
- declare const VersioningStrategyLive: Layer.Layer<VersioningStrategy, never, ChangesetConfigReader>;
10405
- //#endregion
10406
9179
  //#region src/services/SilkWorkspaceAnalyzer.d.ts
10407
9180
  /**
10408
9181
  * The {@link SilkWorkspaceAnalyzer} service shape.
@@ -10431,10 +9204,10 @@ declare const SilkWorkspaceAnalyzer_base: Context.ServiceClass<SilkWorkspaceAnal
10431
9204
  * wiring up fixed/linked release groups.
10432
9205
  *
10433
9206
  * @remarks
10434
- * Orchestrates `WorkspaceDiscovery`, `PackageManagerDetector`,
10435
- * {@link ChangesetConfigReader}, {@link VersioningStrategy}, and
10436
- * {@link TagStrategy} to produce a complete {@link WorkspaceAnalysis} for a
10437
- * given workspace root.
9207
+ * Orchestrates `WorkspaceDiscovery`, `PackageManagerDetector` and
9208
+ * {@link ChangesetConfigReader}, then classifies the result with
9209
+ * `@effected/workspaces`' pure `VersioningStrategy` value class, to produce a
9210
+ * complete {@link WorkspaceAnalysis} for a given workspace root.
10438
9211
  *
10439
9212
  * @example
10440
9213
  * ```typescript
@@ -10457,90 +9230,14 @@ declare class SilkWorkspaceAnalyzer extends SilkWorkspaceAnalyzer_base {}
10457
9230
  * Live implementation of {@link SilkWorkspaceAnalyzer}.
10458
9231
  *
10459
9232
  * @remarks
10460
- * Requires `WorkspaceDiscovery`, `PackageManagerDetector`,
10461
- * {@link ChangesetConfigReader}, {@link VersioningStrategy}, and {@link TagStrategy}.
10462
- *
10463
- * @since 0.2.0
10464
- * @public
10465
- */
10466
- declare const SilkWorkspaceAnalyzerLive: Layer.Layer<SilkWorkspaceAnalyzer, never, FileSystem.FileSystem | WorkspaceDiscovery | PackageManagerDetector | ChangesetConfigReader | VersioningStrategy | TagStrategy>;
10467
- //#endregion
10468
- //#region src/services/ToolDiscovery.d.ts
10469
- /**
10470
- * The {@link ToolDiscovery} service shape.
10471
- *
10472
- * @since 3.2.0
10473
- * @public
10474
- */
10475
- interface ToolDiscoveryShape {
10476
- /**
10477
- * Resolve a tool definition to a {@link ResolvedTool}, enforcing source
10478
- * requirements and resolution policies. Results are cached by tool name.
10479
- *
10480
- * @since 0.2.0
10481
- */
10482
- readonly resolve: (definition: ToolDefinition) => Effect.Effect<ResolvedTool, ToolResolutionError>;
10483
- /**
10484
- * Like {@link ToolDiscoveryShape.resolve} but maps failures to {@link ToolNotFoundError}.
10485
- * Accepts an optional custom error message.
10486
- *
10487
- * @since 0.2.0
10488
- */
10489
- readonly require: {
10490
- (definition: ToolDefinition): Effect.Effect<ResolvedTool, ToolNotFoundError>;
10491
- (definition: ToolDefinition, message: string): Effect.Effect<ResolvedTool, ToolNotFoundError>;
10492
- };
10493
- /**
10494
- * Quick availability check — returns `true` if the tool can be found
10495
- * either globally or locally. Does not cache.
10496
- *
10497
- * @since 0.2.0
10498
- */
10499
- readonly isAvailable: (definition: ToolDefinition) => Effect.Effect<boolean>;
10500
- /**
10501
- * Clear the internal resolution cache so subsequent calls re-run discovery.
10502
- *
10503
- * @since 0.2.0
10504
- */
10505
- readonly clearCache: Effect.Effect<void>;
10506
- }
10507
- declare const ToolDiscovery_base: Context.ServiceClass<ToolDiscovery, "@savvy-web/silk-effects/ToolDiscovery", ToolDiscoveryShape>;
10508
- /**
10509
- * Service that resolves CLI tools — locating them globally (PATH) or locally
10510
- * (via package manager), extracting versions, enforcing source and version
10511
- * constraints, and caching results.
10512
- *
10513
- * @example
10514
- * ```typescript
10515
- * const result = await Effect.runPromise(
10516
- * Effect.gen(function* () {
10517
- * const td = yield* ToolDiscovery;
10518
- * return yield* td.resolve(
10519
- * ToolDefinition.make({ name: "biome" })
10520
- * );
10521
- * }).pipe(
10522
- * Effect.provide(ToolDiscoveryLive),
10523
- * Effect.provide(NodeServices.layer),
10524
- * )
10525
- * );
10526
- * ```
10527
- *
10528
- * @since 0.2.0
10529
- * @public
10530
- */
10531
- declare class ToolDiscovery extends ToolDiscovery_base {}
10532
- /**
10533
- * Live implementation of {@link ToolDiscovery}.
10534
- *
10535
- * @remarks
10536
- * Requires `ChildProcessSpawner` from `effect/unstable/process` (provide
10537
- * `NodeServices.layer` at the app edge), plus `PackageManagerDetector`
10538
- * and `WorkspaceRoot` from `@effected/workspaces`.
9233
+ * Requires `WorkspaceDiscovery`, `PackageManagerDetector` and
9234
+ * {@link ChangesetConfigReader}. Versioning and tag classification are pure
9235
+ * `@effected/workspaces` value operations, so neither adds a requirement.
10539
9236
  *
10540
9237
  * @since 0.2.0
10541
9238
  * @public
10542
9239
  */
10543
- declare const ToolDiscoveryLive: Layer.Layer<ToolDiscovery, never, ChildProcessSpawner.ChildProcessSpawner | PackageManagerDetector | WorkspaceRoot>;
9240
+ declare const SilkWorkspaceAnalyzerLive: Layer.Layer<SilkWorkspaceAnalyzer, never, FileSystem.FileSystem | WorkspaceDiscovery | PackageManagerDetector | ChangesetConfigReader>;
10544
9241
  //#endregion
10545
9242
  //#region src/turbo/schemas/DryRun.d.ts
10546
9243
  /** turbo's per-target cache descriptor in `--dry=json`. */
@@ -10882,10 +9579,10 @@ declare class TurboInspector extends TurboInspector_base {}
10882
9579
  * Live implementation of {@link TurboInspector}.
10883
9580
  *
10884
9581
  * @remarks
10885
- * Requires {@link ToolDiscovery} to resolve the `turbo` binary, plus
10886
- * `ChildProcessSpawner` and `FileSystem` from core (provide `NodeServices.layer`
10887
- * at the app edge) and `Git` from `@effected/git`. Mirrors `ToolDiscoveryLive`:
10888
- * the spawner is captured at layer construction and discharged onto each command
9582
+ * Requires `ToolDiscovery` from `@effected/commands` to resolve the `turbo`
9583
+ * binary, plus `ChildProcessSpawner` and `FileSystem` from core (provide
9584
+ * `NodeServices.layer` at the app edge) and `Git` from `@effected/git`. The
9585
+ * spawner is captured at layer construction and discharged onto each `Run`
10889
9586
  * effect with `Effect.provideService`, keeping the public method effects at
10890
9587
  * `R = never`.
10891
9588
  *
@@ -10896,5 +9593,5 @@ declare namespace index_d_exports$4 {
10896
9593
  export { AffectedResult, AffectedResultType, CacheDiagnosis, CacheDiagnosisType, DryRunParseError, GlobalHashSummary, GraphNode, MissExplanation, NotATurboRepoError, PackageCacheStatus, TaskGraphResult, TaskGraphResultType, TurboCache, TurboDigest, TurboDryRun, TurboDryRunType, TurboDryTask, TurboDryTaskType, TurboEnvVars, TurboError, TurboExecError, TurboGlobalCacheInputs, TurboInspector, TurboInspectorLive, TurboInspectorShape, TurboNotInstalledError };
10897
9594
  }
10898
9595
  //#endregion
10899
- export { AnalyzedWorkspace, BiomeSchemaSync, BiomeSchemaSyncLive, type BiomeSchemaSyncShape, BiomeSyncError, type BiomeSyncOptions, type BiomeSyncResult, ChangesetConfig, ChangesetConfigError, type ChangesetConfigFile, ChangesetConfigLive, ChangesetConfigReader, ChangesetConfigReaderLive, type ChangesetConfigReaderShape, type ChangesetConfigShape, type ChangesetMode, index_d_exports as Changesets, CheckResult, type CheckResultDefinition, type CommentStyle, index_d_exports$1 as Commitlint, type CommitlintPlugin, type CommitlintUserConfig, ConfigDiscovery, ConfigDiscoveryLive, type ConfigDiscoveryOptions, type ConfigDiscoveryShape, type ConfigLocation, ConfigNotFoundError, type ConfigSource, index_d_exports$2 as Lint, ManagedSection, ManagedSectionLive, type ManagedSectionShape, type PromptConfig, type PromptSettings, PublishTargetBindingError, PublishabilityDetectorAdaptiveLive, type PublishablePackage, type RawPackageJson, type RawPublishConfig, type RawPublishTargets, type RawTargetObject, type RawTargetValue, index_d_exports$3 as Repos, ResolutionPolicy, type ResolutionPolicyDefinition, ResolvedTool, type RuleApplicability, type RuleConfigTuple, type RuleSeverity, type RulesConfig, SavvyBaseSection, SavvyHooksSection, SectionBlock, SectionDefinition, SectionDiff, type SectionDiffDefinition, SectionParseError, SectionValidationError, SectionWriteError, ShellSectionDefinition, type SilkChangesetConfigFile, SilkPublishConfig, SilkPublishability, SilkPublishabilityDetectorLive, SilkWorkspaceAnalyzer, SilkWorkspaceAnalyzerLive, type SilkWorkspaceAnalyzerShape, SourceRequirement, type SourceRequirementDefinition, SyncResult, type SyncResultDefinition, TagFormatError, TagStrategy, TagStrategyLive, type TagStrategyShape, type TagStrategyType, type TargetBinding, type TargetGroupBinding, type TargetsBinding, ToolCommand, ToolDefinition, ToolDiscovery, ToolDiscoveryLive, type ToolDiscoveryShape, ToolNotFoundError, ToolResolutionError, ToolSource, ToolVersionMismatchError, index_d_exports$4 as Turbo, VersionExtractor, type VersionExtractorDefinition, VersioningDetectionError, VersioningStrategy, VersioningStrategyLive, type VersioningStrategyResult, type VersioningStrategyShape, type VersioningStrategyType, WorkspaceAnalysis, WorkspaceAnalysisError, buildSchemaUrl, extractSemver, readTargetsBinding, savvyBasePreamble, savvyHooksHygiene, savvyToolSection };
9596
+ export { AnalyzedWorkspace, BiomeSchemaSync, BiomeSchemaSyncLive, type BiomeSchemaSyncShape, BiomeSyncError, type BiomeSyncOptions, type BiomeSyncResult, ChangesetConfig, ChangesetConfigError, type ChangesetConfigFile, ChangesetConfigLive, ChangesetConfigReader, ChangesetConfigReaderLive, type ChangesetConfigReaderShape, type ChangesetConfigShape, type ChangesetMode, index_d_exports as Changesets, index_d_exports$1 as Commitlint, type CommitlintPlugin, type CommitlintUserConfig, ConfigDiscovery, ConfigDiscoveryLive, type ConfigDiscoveryOptions, type ConfigDiscoveryShape, type ConfigLocation, ConfigNotFoundError, type ConfigSource, index_d_exports$2 as Lint, type PromptConfig, type PromptSettings, PublishTargetBindingError, PublishabilityDetectorAdaptiveLive, type PublishablePackage, type RawPackageJson, type RawPublishConfig, type RawPublishTargets, type RawTargetObject, type RawTargetValue, index_d_exports$3 as Repos, type RuleApplicability, type RuleConfigTuple, type RuleSeverity, type RulesConfig, SavvyBaseSection, SavvyHooksSection, type SilkChangesetConfigFile, SilkPublishConfig, SilkPublishability, SilkPublishabilityDetectorLive, SilkWorkspaceAnalyzer, SilkWorkspaceAnalyzerLive, type SilkWorkspaceAnalyzerShape, type TargetBinding, type TargetGroupBinding, type TargetsBinding, index_d_exports$4 as Turbo, WorkspaceAnalysis, WorkspaceAnalysisError, buildSchemaUrl, extractSemver, readTargetsBinding, savvyBasePreamble, savvyHooksHygiene, savvyToolSection };
10900
9597
  //# sourceMappingURL=index.d.ts.map