@savvy-web/silk 3.2.11 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3711,7 +3711,7 @@ declare class Git extends Git_base {
3711
3711
  static readonly layerTest: (overrides?: Partial<GitShape>) => Layer.Layer<Git>;
3712
3712
  }
3713
3713
  //#endregion
3714
- //#region ../../node_modules/.pnpm/@effected+semver@0.2.1_effect@4.0.0-beta.101/node_modules/@effected/semver/index.d.ts
3714
+ //#region ../../node_modules/.pnpm/@effected+semver@0.3.0_effect@4.0.0-beta.101/node_modules/@effected/semver/index.d.ts
3715
3715
  //#region src/SemVer.d.ts
3716
3716
  declare const InvalidVersionError_base: Schema.Class<InvalidVersionError, Schema.TaggedStruct<"InvalidVersionError", {
3717
3717
  /** The raw input string that failed to parse. */
@@ -3779,6 +3779,35 @@ declare class SemVer extends SemVer_base {
3779
3779
  * prints `major.minor.patch[-prerelease][+build]`.
3780
3780
  */
3781
3781
  static readonly FromString: Schema.Codec<SemVer, string>;
3782
+ /**
3783
+ * `Schema.String` refined by {@link SemVer.isValid}: an exact SemVer 2.0.0
3784
+ * version string whose type stays `string`.
3785
+ *
3786
+ * @remarks
3787
+ * For consumer structs whose field must remain a plain string — a manifest
3788
+ * model, an action input — while still refusing everything that is not
3789
+ * exactly one version: ranges, partial versions, dist-tags, and padded
3790
+ * input (see {@link SemVer.isValid} for the whitespace posture). Build
3791
+ * metadata is valid grammar and passes; reach for
3792
+ * {@link SemVer.PinnableVersionString} when the `+` position is spoken for.
3793
+ * Decode to a {@link SemVer} instance with {@link SemVer.FromString}
3794
+ * instead when the parsed components are wanted.
3795
+ */
3796
+ static readonly ExactVersionString: Schema.String;
3797
+ /**
3798
+ * `Schema.String` refined by {@link SemVer.isPinnable}: an exact,
3799
+ * build-metadata-free SemVer 2.0.0 version string whose type stays
3800
+ * `string`.
3801
+ *
3802
+ * @remarks
3803
+ * The corepack-pinnable notion: what the `<name>@<version>[+<integrity>]`
3804
+ * pin grammar can express in its version position, where the first `+`
3805
+ * always begins the integrity component. `@effected/package-json`'s
3806
+ * `PackageManager` field model consumes this schema directly; suites that
3807
+ * must prove they share it rather than carrying a copy can assert object
3808
+ * identity against this export.
3809
+ */
3810
+ static readonly PinnableVersionString: Schema.String;
3782
3811
  /**
3783
3812
  * Parse a strict SemVer 2.0.0 version string, synchronously, returning a
3784
3813
  * `Result` instead of an `Effect`.
@@ -3787,6 +3816,12 @@ declare class SemVer extends SemVer_base {
3787
3816
  * identifiers and partially consumed input.
3788
3817
  *
3789
3818
  * @remarks
3819
+ * **Surrounding whitespace is TRIMMED before parsing**, matching
3820
+ * node-semver's constructor: `" 1.2.3"` parses successfully. When padded
3821
+ * input should be the caller's error rather than silently canonicalized,
3822
+ * reach for {@link SemVer.isValid} / {@link SemVer.ExactVersionString}
3823
+ * (or their pinnable twins), which deliberately reject it.
3824
+ *
3790
3825
  * {@link SemVer.parse} is defined in terms of this function; the two never
3791
3826
  * diverge. Reach for the `Effect` variant inside Effect code — it carries
3792
3827
  * the `SemVer.parse` tracing span — and for this one at synchronous
@@ -3824,6 +3859,43 @@ declare class SemVer extends SemVer_base {
3824
3859
  * when `input` is not a valid version string.
3825
3860
  */
3826
3861
  static readonly parse: (input: string) => Effect.Effect<SemVer, InvalidVersionError, never>;
3862
+ /**
3863
+ * Whether `input` is a valid SemVer 2.0.0 version string, exactly as
3864
+ * given.
3865
+ *
3866
+ * @remarks
3867
+ * Strict grammar validity — the same grammar as {@link SemVer.parseResult}
3868
+ * — with one deliberate divergence: surrounding whitespace is **rejected**.
3869
+ * `parseResult` trims its input (matching node-semver, whose `SemVer`
3870
+ * constructor trims), so `" 1.2.3"` parses; this predicate answers a
3871
+ * different question — "is this string, byte for byte, a version?" — and a
3872
+ * padded input is the caller's bug to surface, not this package's to hide.
3873
+ * Build metadata is valid grammar (`isValid("1.2.3+build")` is `true`);
3874
+ * reach for {@link SemVer.isPinnable} when the `+` position must stay
3875
+ * free.
3876
+ *
3877
+ * @param input - the candidate version string
3878
+ * @returns `true` when `input` is a valid version string with no
3879
+ * surrounding whitespace.
3880
+ */
3881
+ static isValid(input: string): boolean;
3882
+ /**
3883
+ * Whether `input` is a corepack-pinnable version string: valid by
3884
+ * {@link SemVer.isValid} **and** carrying no build metadata.
3885
+ *
3886
+ * @remarks
3887
+ * The notion the `<name>@<version>[+<integrity>]` pin grammar needs: there
3888
+ * the first `+` after the version always begins the integrity component,
3889
+ * so a version carrying build identifiers would encode to a string that
3890
+ * re-parses differently. Prerelease versions are pinnable; the whitespace
3891
+ * posture is {@link SemVer.isValid}'s.
3892
+ *
3893
+ * @param input - the candidate version string
3894
+ * @returns `true` when `input` is a valid version string with no
3895
+ * surrounding whitespace (the string equals its own trim) and whose
3896
+ * build metadata is empty.
3897
+ */
3898
+ static isPinnable(input: string): boolean;
3827
3899
  /**
3828
3900
  * Positional convenience constructor: `SemVer.of(1, 2, 3)`.
3829
3901
  *
@@ -4286,7 +4358,7 @@ declare class UnsatisfiableConstraintError extends UnsatisfiableConstraintError_
4286
4358
  get message(): string;
4287
4359
  }
4288
4360
  //#endregion
4289
- //#region ../../node_modules/.pnpm/@effected+npm@0.6.0_@effected+semver@0.2.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/npm/index.d.ts
4361
+ //#region ../../node_modules/.pnpm/@effected+npm@0.8.0_@effected+semver@0.3.0_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/npm/index.d.ts
4290
4362
  //#region src/CatalogAssemblyError.d.ts
4291
4363
  declare const CatalogAssemblyError_base: Schema.Class<CatalogAssemblyError, Schema.TaggedStruct<"CatalogAssemblyError", {
4292
4364
  /**
@@ -4532,9 +4604,15 @@ type ClassifiedSpecifier = CatalogSpecifier | WorkspaceSpecifier | RangeSpecifie
4532
4604
  /**
4533
4605
  * A supported integrity hash algorithm.
4534
4606
  *
4607
+ * @remarks
4608
+ * `sha224` appears only in the corepack form — corepack's own transparent
4609
+ * default pins emit it (e.g. `yarn@4.x+sha224.<hex>`) — and never in SRI,
4610
+ * whose specification names only `sha256`/`sha384`/`sha512` (plus legacy
4611
+ * `sha1`).
4612
+ *
4535
4613
  * @public
4536
4614
  */
4537
- type IntegrityAlgorithm = "sha1" | "sha256" | "sha384" | "sha512";
4615
+ type IntegrityAlgorithm = "sha1" | "sha224" | "sha256" | "sha384" | "sha512";
4538
4616
  declare const InvalidIntegrityHashError_base: Schema.Class<InvalidIntegrityHashError, Schema.TaggedStruct<"InvalidIntegrityHashError", {
4539
4617
  /** The raw input string that failed validation. */
4540
4618
  readonly input: Schema.String;
@@ -4854,7 +4932,7 @@ declare class GlobPattern extends GlobPattern_base {
4854
4932
  static readonly FromString: Schema.Codec<GlobPattern, string>;
4855
4933
  }
4856
4934
  //#endregion
4857
- //#region ../../node_modules/.pnpm/@effected+lockfiles@0.2.2_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._96898a3d00962223825b2ef21022f405/node_modules/@effected/lockfiles/index.d.ts
4935
+ //#region ../../node_modules/.pnpm/@effected+lockfiles@0.3.0_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__@effected+npm@0._6d3ff0eb8f85b9388aafe615e49a1bcb/node_modules/@effected/lockfiles/index.d.ts
4858
4936
  //#region src/BunExtension.d.ts
4859
4937
  declare const BunExtension_base: Schema.Class<BunExtension, Schema.Struct<{
4860
4938
  readonly _tag: Schema.tag<"bun">;
@@ -5284,7 +5362,7 @@ declare class LockfileIntegrity extends LockfileIntegrity_base {
5284
5362
  static compare(lockfile: Lockfile, manifests: ReadonlyArray<WorkspaceManifest>): LockfileIntegrity;
5285
5363
  }
5286
5364
  //#endregion
5287
- //#region ../../node_modules/.pnpm/@effected+package-json@0.6.1_effect@4.0.0-beta.101/node_modules/@effected/package-json/index.d.ts
5365
+ //#region ../../node_modules/.pnpm/@effected+package-json@0.7.1_effect@4.0.0-beta.101/node_modules/@effected/package-json/index.d.ts
5288
5366
  //#region src/Dependency.d.ts
5289
5367
  declare const Dependency_base: Schema.Class<Dependency, Schema.Struct<{
5290
5368
  /** The package name. */
@@ -5369,23 +5447,78 @@ declare class InvalidSpdxLicenseError extends InvalidSpdxLicenseError_base {
5369
5447
  //#endregion
5370
5448
  //#region src/PackageManager.d.ts
5371
5449
  declare const PackageManager_base: Schema.Class<PackageManager, Schema.Struct<{
5372
- /** The package-manager name (e.g. `pnpm`). */
5450
+ /** The package-manager name (e.g. `pnpm`). Any lowercase name — see the class remarks. */
5373
5451
  readonly name: Schema.String;
5374
- /** The version (e.g. `10.33.0`). */
5452
+ /**
5453
+ * The version (e.g. `10.33.0`): `@effected/semver`'s
5454
+ * `SemVer.PinnableVersionString` — an exact SemVer 2.0.0 version with no
5455
+ * build metadata and no surrounding whitespace. Prerelease versions are
5456
+ * allowed (`10.0.0-rc.1`); ranges, partial versions, dist-tags,
5457
+ * leading-zero components and padded values are not, and a version
5458
+ * carrying build metadata is rejected at construction because the grammar
5459
+ * cannot express it. The shared schema is consumed by identity, not
5460
+ * copied — the suite asserts `fields.version === SemVer.PinnableVersionString`.
5461
+ */
5375
5462
  readonly version: Schema.String;
5376
- /** The optional integrity hash (e.g. `sha512.abc`), an `@effected/npm` `IntegrityHash` restricted to the corepack `<algo>.<hex>` form. */
5463
+ /**
5464
+ * The optional integrity hash (e.g. `sha512.abc`): `@effected/npm`'s
5465
+ * `CorepackIntegrityHash`, the shared restriction of the `IntegrityHash`
5466
+ * brand to the corepack `<algo>.<hex>` form.
5467
+ */
5377
5468
  readonly integrity: Schema.Option<Schema.brand<Schema.String, "IntegrityHash">>;
5378
5469
  }>, {}>;
5379
5470
  /**
5380
5471
  * A structured `packageManager` value with `name`, `version` and an optional
5381
5472
  * `integrity` hash.
5382
5473
  *
5474
+ * @remarks
5475
+ * The same `<name>@<version>[+<integrity>]` triple `@effected/npm`'s
5476
+ * `PackageManagerPin` models, in its `package.json` field form. Both share the
5477
+ * strict pieces — the version is `@effected/semver`'s
5478
+ * `SemVer.PinnableVersionString` (decode rules through `SemVer.isPinnable`),
5479
+ * the integrity is npm's `CorepackIntegrityHash` — and
5480
+ * both apply the first-`+`-is-integrity rule. Reach for the pin when
5481
+ * provisioning a package manager; reach for this class when reading or writing
5482
+ * the manifest field.
5483
+ *
5484
+ * **The one deliberate divergence is the name grammar**, and it points this
5485
+ * way: the pin closes the set to the four managers the kit can provision
5486
+ * (`npm | pnpm | yarn | bun`), while this field model accepts any lowercase
5487
+ * name. The evidence:
5488
+ *
5489
+ * - Corepack 0.34.0 (`specUtils.ts`, `parseSpec`) recognises **three** names —
5490
+ * `npm`, `pnpm`, `yarn` — and throws an "unsupported package manager
5491
+ * specification" usage error for any other. Adopting that set here would reject
5492
+ * `bun@1.2.20`, which is real: six published packages in this repo's own
5493
+ * `node_modules` carry exactly that value, and a manifest model that cannot
5494
+ * read them is useless for the job it has.
5495
+ * - Corepack does not treat the set as closed either. `parseSpec` skips the
5496
+ * name check entirely when the spec is a URL, so a custom name is reachable
5497
+ * in corepack's own grammar (behind `COREPACK_ENABLE_UNSAFE_CUSTOM_URLS`).
5498
+ * - npm documents no constraint on this field at all. Its `package.json`
5499
+ * reference constrains only `devEngines.packageManager.name` — a different
5500
+ * field, modeled here by `DevEngine` and out of scope for this class.
5501
+ *
5502
+ * So: field model = manifests as they exist in the wild; pin = the kit's
5503
+ * provisioning vocabulary. A name outside the pin's four is representable here
5504
+ * and simply will not be installable through the pin — which is the honest
5505
+ * relationship between a document model and a provisioning contract.
5506
+ *
5383
5507
  * @public
5384
5508
  */
5385
5509
  declare class PackageManager extends PackageManager_base {
5386
5510
  /**
5387
5511
  * Schema transformation between the `"name@version+integrity"` string and a
5388
5512
  * {@link PackageManager}.
5513
+ *
5514
+ * @remarks
5515
+ * Decoding splits on the first `@`, then on the first `+` — which always
5516
+ * begins the integrity, never semver build metadata — and validates each
5517
+ * component: the name against the lowercase grammar, the version through
5518
+ * `@effected/semver`'s strict parse, the integrity through
5519
+ * `CorepackIntegrityHash`. Every failure is a typed decode failure naming
5520
+ * the component that failed. Encoding prints the canonical string, which is
5521
+ * byte-identical to any input this codec accepts.
5389
5522
  */
5390
5523
  static readonly FromString: Schema.Codec<PackageManager, string>;
5391
5524
  /** Whether an integrity hash is present. */
@@ -5811,7 +5944,7 @@ declare class Package extends Package_base {
5811
5944
  toJsonString(options?: PackageFormatOptions): string;
5812
5945
  }
5813
5946
  //#endregion
5814
- //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.1_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/index.d.ts
5947
+ //#region ../../node_modules/.pnpm/@effected+workspaces@0.9.3_@effected+jsonc@0.5.1_effect@4.0.0-beta.101__effect@4.0.0-beta.101/node_modules/@effected/workspaces/index.d.ts
5815
5948
  //#region src/WorkspacePackage.d.ts
5816
5949
  declare const PublishConfig_base: Schema.Class<PublishConfig, Schema.Struct<{
5817
5950
  /** Scoped-package visibility. Its presence overrides `private`. */
@@ -10653,7 +10786,7 @@ declare const ChangesetConfigReader_base: Context.ServiceClass<ChangesetConfigRe
10653
10786
  * const reader = yield* ChangesetConfigReader;
10654
10787
  * return yield* reader.read(process.cwd());
10655
10788
  * }).pipe(
10656
- * Effect.provide(ChangesetConfigReaderLive),
10789
+ * Effect.provide(ChangesetConfigReader.layer),
10657
10790
  * Effect.provide(NodeServices.layer),
10658
10791
  * )
10659
10792
  * );
@@ -10662,7 +10795,19 @@ declare const ChangesetConfigReader_base: Context.ServiceClass<ChangesetConfigRe
10662
10795
  * @since 0.1.0
10663
10796
  * @public
10664
10797
  */
10665
- declare class ChangesetConfigReader extends ChangesetConfigReader_base {}
10798
+ declare class ChangesetConfigReader extends ChangesetConfigReader_base {
10799
+ /**
10800
+ * Production implementation of {@link ChangesetConfigReader}.
10801
+ *
10802
+ * @remarks
10803
+ * Requires the core `FileSystem` service. Provide `NodeServices.layer` (or
10804
+ * `NodeFileSystem.layer`) from `@effect/platform-node` to satisfy this dependency.
10805
+ *
10806
+ * @since 0.1.0
10807
+ * @public
10808
+ */
10809
+ static readonly layer: Layer.Layer<ChangesetConfigReader, never, FileSystem.FileSystem>;
10810
+ }
10666
10811
  //#endregion
10667
10812
  //#region src/changesets/services/config-inspector.d.ts
10668
10813
  /** A `versionFiles` entry expanded to its absolute target paths. @public */
@@ -10779,7 +10924,7 @@ declare const ConfigInspector_base: Context.ServiceClass<ConfigInspector, "Confi
10779
10924
  * @example
10780
10925
  * ```typescript
10781
10926
  * import { Effect } from "effect";
10782
- * import { ConfigInspector, ConfigInspectorLive } from "@savvy-web/changesets";
10927
+ * import { ConfigInspector } from "@savvy-web/changesets";
10783
10928
  *
10784
10929
  * const program = Effect.gen(function* () {
10785
10930
  * const inspector = yield* ConfigInspector;
@@ -10787,27 +10932,28 @@ declare const ConfigInspector_base: Context.ServiceClass<ConfigInspector, "Confi
10787
10932
  * return config.packages.map((p) => p.name);
10788
10933
  * });
10789
10934
  *
10790
- * Effect.runPromise(program.pipe(Effect.provide(ConfigInspectorLive)));
10935
+ * Effect.runPromise(program.pipe(Effect.provide(ConfigInspector.layer)));
10791
10936
  * ```
10792
10937
  *
10793
10938
  * @public
10794
10939
  */
10795
- declare class ConfigInspector extends ConfigInspector_base {}
10796
- /**
10797
- * Live layer for {@link ConfigInspector}.
10798
- *
10799
- * Requires {@link ChangesetConfigReader} and `WorkspaceDiscovery`
10800
- * in the environment.
10801
- *
10802
- * @public
10803
- */
10804
- declare const ConfigInspectorLive: Layer.Layer<ConfigInspector, never, ChangesetConfigReader | WorkspaceDiscovery | FileSystem.FileSystem>;
10940
+ declare class ConfigInspector extends ConfigInspector_base {
10941
+ /**
10942
+ * Production layer for {@link ConfigInspector}.
10943
+ *
10944
+ * Requires {@link ChangesetConfigReader} and `WorkspaceDiscovery`
10945
+ * in the environment.
10946
+ *
10947
+ * @public
10948
+ */
10949
+ static readonly layer: Layer.Layer<ConfigInspector, never, ChangesetConfigReader | WorkspaceDiscovery | FileSystem.FileSystem>;
10950
+ }
10805
10951
  /**
10806
10952
  * Test factory — build a {@link ConfigInspector} that returns a fixed
10807
10953
  * {@link InspectedConfig} without touching the filesystem.
10808
10954
  *
10809
10955
  * Tests that need to exercise the inspect/classify logic against real files
10810
- * should compose `ConfigInspectorLive` with test layers for
10956
+ * should compose `ConfigInspector.layer` with test layers for
10811
10957
  * `ChangesetConfigReader` and `WorkspaceDiscovery` instead.
10812
10958
  *
10813
10959
  * @public
@@ -10881,7 +11027,7 @@ declare const BranchAnalyzer_base: Context.ServiceClass<BranchAnalyzer, "BranchA
10881
11027
  * @example
10882
11028
  * ```typescript
10883
11029
  * import { Effect } from "effect";
10884
- * import { BranchAnalyzer, BranchAnalyzerLive, ConfigInspectorLive } from "@savvy-web/changesets";
11030
+ * import { BranchAnalyzer, ConfigInspector } from "@savvy-web/changesets";
10885
11031
  *
10886
11032
  * const program = Effect.gen(function* () {
10887
11033
  * const analyzer = yield* BranchAnalyzer;
@@ -10891,27 +11037,28 @@ declare const BranchAnalyzer_base: Context.ServiceClass<BranchAnalyzer, "BranchA
10891
11037
  *
10892
11038
  * Effect.runPromise(
10893
11039
  * program.pipe(
10894
- * Effect.provide(BranchAnalyzerLive),
10895
- * Effect.provide(ConfigInspectorLive),
10896
- * // ... + ChangesetConfigReaderLive + kit workspace layers + NodeServices.layer
11040
+ * Effect.provide(BranchAnalyzer.layer),
11041
+ * Effect.provide(ConfigInspector.layer),
11042
+ * // ... + ChangesetConfigReader.layer + kit workspace layers + NodeServices.layer
10897
11043
  * ),
10898
11044
  * );
10899
11045
  * ```
10900
11046
  *
10901
11047
  * @public
10902
11048
  */
10903
- declare class BranchAnalyzer extends BranchAnalyzer_base {}
10904
- /**
10905
- * Live layer for {@link BranchAnalyzer}.
10906
- *
10907
- * Requires {@link ConfigInspector} (which in turn requires
10908
- * `ChangesetConfigReader` and `WorkspaceDiscovery`) and a
10909
- * `ChildProcessSpawner` (satisfied by `NodeServices.layer`) for the
10910
- * internally-composed `@effected/git` layer.
10911
- *
10912
- * @public
10913
- */
10914
- declare const BranchAnalyzerLive: Layer.Layer<BranchAnalyzer, never, ConfigInspector | ChildProcessSpawner.ChildProcessSpawner>;
11049
+ declare class BranchAnalyzer extends BranchAnalyzer_base {
11050
+ /**
11051
+ * Production layer for {@link BranchAnalyzer}.
11052
+ *
11053
+ * Requires {@link ConfigInspector} (which in turn requires
11054
+ * `ChangesetConfigReader` and `WorkspaceDiscovery`) and a
11055
+ * `ChildProcessSpawner` (satisfied by `NodeServices.layer`) for the
11056
+ * internally-composed `@effected/git` layer.
11057
+ *
11058
+ * @public
11059
+ */
11060
+ static readonly layer: Layer.Layer<BranchAnalyzer, never, ConfigInspector | ChildProcessSpawner.ChildProcessSpawner>;
11061
+ }
10915
11062
  /**
10916
11063
  * Test factory — build a {@link BranchAnalyzer} that returns a fixed
10917
11064
  * {@link BranchAnalysis} for any input.
@@ -11120,13 +11267,13 @@ declare const GitHubService_base: Context.ServiceClass<GitHubService, "GitHubSer
11120
11267
  * This tag follows the standard Effect `Context.Service` pattern. Two layers
11121
11268
  * are provided out of the box:
11122
11269
  *
11123
- * - {@link GitHubLive} — production layer backed by the GitHub REST API
11270
+ * - `GitHubService.layer` — production layer backed by the GitHub REST API
11124
11271
  * - {@link makeGitHubTest} — factory for deterministic test layers
11125
11272
  *
11126
11273
  * @example
11127
11274
  * ```typescript
11128
- * import { Effect, Layer } from "effect";
11129
- * import { GitHubService, GitHubLive } from "\@savvy-web/changesets";
11275
+ * import { Effect } from "effect";
11276
+ * import { GitHubService } from "\@savvy-web/changesets";
11130
11277
  *
11131
11278
  * const program = Effect.gen(function* () {
11132
11279
  * const github = yield* GitHubService;
@@ -11138,7 +11285,7 @@ declare const GitHubService_base: Context.ServiceClass<GitHubService, "GitHubSer
11138
11285
  * });
11139
11286
  *
11140
11287
  * // Provide the live layer and run
11141
- * Effect.runPromise(program.pipe(Effect.provide(GitHubLive)));
11288
+ * Effect.runPromise(program.pipe(Effect.provide(GitHubService.layer)));
11142
11289
  * ```
11143
11290
  *
11144
11291
  * @example Creating a test layer with canned responses
@@ -11162,41 +11309,41 @@ declare const GitHubService_base: Context.ServiceClass<GitHubService, "GitHubSer
11162
11309
  * ```
11163
11310
  *
11164
11311
  * @see {@link GitHubServiceShape} for the service interface
11165
- * @see {@link GitHubLive} for the production layer
11166
11312
  * @see {@link makeGitHubTest} for creating test layers
11167
11313
  *
11168
11314
  * @public
11169
11315
  */
11170
- declare class GitHubService extends GitHubService_base {}
11171
- /**
11172
- * Production layer for {@link GitHubService}.
11173
- *
11174
- * Delegates to `\@changesets/get-github-info` to fetch commit metadata
11175
- * from the GitHub REST API. Requires a `GITHUB_TOKEN` environment variable
11176
- * to be set for authenticated requests.
11177
- *
11178
- * @remarks
11179
- * This layer is used by the `\@savvy-web/changesets/changelog` entry point
11180
- * to resolve commit hashes into PR numbers and author attribution. It is
11181
- * used by the changelog formatter's
11182
- * `MainLayer`.
11183
- *
11184
- * @example
11185
- * ```typescript
11186
- * import { Effect } from "effect";
11187
- * import { GitHubService, GitHubLive } from "\@savvy-web/changesets";
11188
- *
11189
- * const program = Effect.gen(function* () {
11190
- * const github = yield* GitHubService;
11191
- * return yield* github.getInfo({ commit: "abc1234", repo: "owner/repo" });
11192
- * });
11193
- *
11194
- * Effect.runPromise(program.pipe(Effect.provide(GitHubLive)));
11195
- * ```
11196
- *
11197
- * @public
11198
- */
11199
- declare const GitHubLive: Layer.Layer<GitHubService, never, never>;
11316
+ declare class GitHubService extends GitHubService_base {
11317
+ /**
11318
+ * Production layer for {@link GitHubService}.
11319
+ *
11320
+ * Delegates to `\@changesets/get-github-info` to fetch commit metadata
11321
+ * from the GitHub REST API. Requires a `GITHUB_TOKEN` environment variable
11322
+ * to be set for authenticated requests.
11323
+ *
11324
+ * @remarks
11325
+ * This layer is used by the `\@savvy-web/changesets/changelog` entry point
11326
+ * to resolve commit hashes into PR numbers and author attribution. It is
11327
+ * used by the changelog formatter's
11328
+ * `MainLayer`.
11329
+ *
11330
+ * @example
11331
+ * ```typescript
11332
+ * import { Effect } from "effect";
11333
+ * import { GitHubService } from "\@savvy-web/changesets";
11334
+ *
11335
+ * const program = Effect.gen(function* () {
11336
+ * const github = yield* GitHubService;
11337
+ * return yield* github.getInfo({ commit: "abc1234", repo: "owner/repo" });
11338
+ * });
11339
+ *
11340
+ * Effect.runPromise(program.pipe(Effect.provide(GitHubService.layer)));
11341
+ * ```
11342
+ *
11343
+ * @public
11344
+ */
11345
+ static readonly layer: Layer.Layer<GitHubService>;
11346
+ }
11200
11347
  /**
11201
11348
  * Create a test layer for {@link GitHubService} with pre-configured responses.
11202
11349
  *
@@ -11293,7 +11440,7 @@ declare const ChangelogService_base: Context.ServiceClass<ChangelogService, "Cha
11293
11440
  * ```typescript
11294
11441
  * import { Effect } from "effect";
11295
11442
  * import type { ChangesetOptions } from "\@savvy-web/changesets";
11296
- * import { ChangelogService, GitHubLive } from "\@savvy-web/changesets";
11443
+ * import { ChangelogService } from "\@savvy-web/changesets";
11297
11444
  *
11298
11445
  * const program = Effect.gen(function* () {
11299
11446
  * const changelog = yield* ChangelogService;
@@ -11355,6 +11502,17 @@ declare class ChangesetConfig extends ChangesetConfig_base {
11355
11502
  * but not the bare scope `"@scope"`.
11356
11503
  */
11357
11504
  static matches(name: string, pattern: string): boolean;
11505
+ /**
11506
+ * Production layer for {@link ChangesetConfig}, reading via {@link ChangesetConfigReader}, cached per root.
11507
+ *
11508
+ * @remarks
11509
+ * Requires `ChangesetConfigReader` (which requires `FileSystem`). Provide
11510
+ * `ChangesetConfigReader.layer` + a platform layer (`NodeServices.layer`).
11511
+ *
11512
+ * @since 0.4.0
11513
+ * @public
11514
+ */
11515
+ static readonly layer: Layer.Layer<ChangesetConfig, never, ChangesetConfigReader>;
11358
11516
  }
11359
11517
  //#endregion
11360
11518
  //#region src/changesets/utils/dep-diff.d.ts
@@ -11528,20 +11686,21 @@ declare const DepsRegen_base: Context.ServiceClass<DepsRegen, "Changesets/DepsRe
11528
11686
  *
11529
11687
  * @public
11530
11688
  */
11531
- declare class DepsRegen extends DepsRegen_base {}
11532
- /**
11533
- * Live layer for {@link DepsRegen}.
11534
- *
11535
- * Requires `WorkspaceSnapshots`, `WorkspaceDiscovery`,
11536
- * `PublishabilityDetector` (all from `@effected/workspaces`),
11537
- * `Git` (from `@effected/git`, backing merge-base resolution),
11538
- * {@link ConfigInspector}, {@link ChangesetConfig}, and
11539
- * `FileSystem.FileSystem` (resolved once at construction and closed over by
11540
- * the shape, keeping `plan`/`execute` themselves requirement-free).
11541
- *
11542
- * @public
11543
- */
11544
- declare const DepsRegenLive: Layer.Layer<DepsRegen, never, WorkspaceSnapshots | ConfigInspector | WorkspaceDiscovery | PublishabilityDetector | ChangesetConfig | Git | FileSystem.FileSystem>;
11689
+ declare class DepsRegen extends DepsRegen_base {
11690
+ /**
11691
+ * Production layer for {@link DepsRegen}.
11692
+ *
11693
+ * Requires `WorkspaceSnapshots`, `WorkspaceDiscovery`,
11694
+ * `PublishabilityDetector` (all from `@effected/workspaces`),
11695
+ * `Git` (from `@effected/git`, backing merge-base resolution),
11696
+ * {@link ConfigInspector}, {@link ChangesetConfig}, and
11697
+ * `FileSystem.FileSystem` (resolved once at construction and closed over by
11698
+ * the shape, keeping `plan`/`execute` themselves requirement-free).
11699
+ *
11700
+ * @public
11701
+ */
11702
+ static readonly layer: Layer.Layer<DepsRegen, never, WorkspaceSnapshots | ConfigInspector | WorkspaceDiscovery | PublishabilityDetector | ChangesetConfig | Git | FileSystem.FileSystem>;
11703
+ }
11545
11704
  /**
11546
11705
  * Build the batteries-included {@link DepsRegen} layer over a
11547
11706
  * `@effected/workspaces` kit graph bound to `options.cwd`.
@@ -11572,10 +11731,10 @@ declare function makeDepsRegenDefault(options?: WorkspacesOptions): Layer.Layer<
11572
11731
  * (`NodeServices.layer`), not a bare filesystem-only layer.
11573
11732
  *
11574
11733
  * Gating uses silk's adaptive publishability detector
11575
- * ({@link PublishabilityDetectorAdaptiveLive}), so the default semantics
11734
+ * (`SilkPublishability.layerAdaptive`), so the default semantics
11576
11735
  * are "versionable minus ignored" — identical to the savvy CLI and MCP
11577
11736
  * runtimes. Consumers who need to swap any dependency (test detectors,
11578
- * alternate config sources) should keep composing {@link DepsRegenLive}
11737
+ * alternate config sources) should keep composing {@link DepsRegen.layer}
11579
11738
  * directly; this layer is purely additive.
11580
11739
  *
11581
11740
  * @example
@@ -11705,9 +11864,10 @@ interface ReleasePlannerShape {
11705
11864
  }
11706
11865
  declare const ReleasePlanner_base: Context.ServiceClass<ReleasePlanner, "ReleasePlanner", ReleasePlannerShape>;
11707
11866
  /** Effect service tag for the release planner. @public */
11708
- declare class ReleasePlanner extends ReleasePlanner_base {}
11709
- /** Production layer. Requires {@link ConfigInspector} (used by `apply`) and `FileSystem`. @public */
11710
- declare const ReleasePlannerLive: Layer.Layer<ReleasePlanner, never, ConfigInspector | FileSystem.FileSystem>;
11867
+ declare class ReleasePlanner extends ReleasePlanner_base {
11868
+ /** Production layer. Requires {@link ConfigInspector} (used by `apply`) and `FileSystem`. @public */
11869
+ static readonly layer: Layer.Layer<ReleasePlanner, never, ConfigInspector | FileSystem.FileSystem>;
11870
+ }
11711
11871
  /**
11712
11872
  * Test factory — supply fixed results for any subset of methods. Unsupplied
11713
11873
  * methods fail with a `ReleasePlanError`.
@@ -12431,10 +12591,10 @@ declare function gitMergeBase(cwd: string, base: string): Effect.Effect<string,
12431
12591
  *
12432
12592
  * @remarks
12433
12593
  * Uses the currently-active {@link SilkPublishability} — wire the
12434
- * {@link SilkPublishabilityDetectorLive} layer to get silk semantics.
12594
+ * `SilkPublishability.layer` layer to get silk semantics.
12435
12595
  *
12436
12596
  * The kit's `PublishabilityDetector.detect` contract no longer receives the
12437
- * workspace root — the ignore/mode-aware `PublishabilityDetectorAdaptiveLive`
12597
+ * workspace root — the ignore/mode-aware `SilkPublishability.layerAdaptive`
12438
12598
  * derives the `.changeset/config.json` root per package from the package's
12439
12599
  * own discovery coordinates (`pkg.path` ascended by `pkg.relativePath`).
12440
12600
  * The `root` parameter is retained for signature stability
@@ -13388,7 +13548,7 @@ declare const RequiredSectionsRule$2: Plugin<Root, unknown>;
13388
13548
  //#region src/changesets/remark/rules/uncategorized-content.d.ts
13389
13549
  declare const UncategorizedContentRule$2: Plugin<Root, unknown>;
13390
13550
  declare namespace index_d_exports {
13391
- 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$2 as ContentStructureRule, ContributorFootnotesPlugin, DeduplicateItemsPlugin, DependencyAction, DependencyActionSchema, DependencyTable, DependencyTableFormatRule$2 as 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$2 as 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$2 as RequiredSectionsRule, ResolvedPackageScope, ResolvedPackageScopeSchema, ResolvedVersionFile, ResolvedVersionFileSchema, SectionCategory, SectionCategorySchema, SilkChangesetPreset, SilkChangesetTransformPreset, SilkChangesetsRules$1 as SilkChangesetsRules, TransformOptions, UncategorizedContentRule$2 as 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 };
13551
+ export { AggregateDependencyTablesPlugin, AppliedRelease, AppliedReleaseEntrySchema, AppliedReleaseSchema, BranchAnalysis, BranchAnalysisSchema, BranchAnalyzer, 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, ConfigInspectorShape, ConfigurationError, ContentStructureRule$2 as ContentStructureRule, ContributorFootnotesPlugin, DeduplicateItemsPlugin, DependencyAction, DependencyActionSchema, DependencyTable, DependencyTableFormatRule$2 as DependencyTableFormatRule, DependencyTableRow, DependencyTableRowSchema, DependencyTableSchema, DependencyTableType, DependencyTableTypeSchema, DependencyType, DependencyTypeSchema, DependencyUpdate, DependencyUpdateSchema, DepsRegen, DepsRegenDefault, DepsRegenOptions, DepsRegenPlanError, DepsRegenShape, FileStatus, FileStatusSchema, GitError, GitHubApiError, GitHubCommitInfo, GitHubInfo, GitHubInfoSchema, GitHubService, GitHubServiceShape, GlobSchema, HeadingHierarchyRule$2 as 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, ReleasePlannerShape, ReorderSectionsPlugin, RepoSchema, RequiredSectionsRule$2 as RequiredSectionsRule, ResolvedPackageScope, ResolvedPackageScopeSchema, ResolvedVersionFile, ResolvedVersionFileSchema, SectionCategory, SectionCategorySchema, SilkChangesetPreset, SilkChangesetTransformPreset, SilkChangesetsRules$1 as SilkChangesetsRules, TransformOptions, UncategorizedContentRule$2 as 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 };
13392
13552
  }
13393
13553
  //#endregion
13394
13554
  //#region src/changesets/markdownlint.d.ts