codebase-snapshot 0.9.0 → 0.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -292,7 +292,17 @@ interface PresetDefinition {
292
292
  readonly name: string;
293
293
  /** Higher wins. Framework presets outrank repository shapes. */
294
294
  readonly priority: number;
295
- detect(context: PresetContext): boolean;
295
+ /**
296
+ * Why this preset matches, or null. Absent on the fallback preset only.
297
+ *
298
+ * Returning the reason rather than `true` is what lets the wizard print
299
+ * `Because next.config.ts` instead of asking the developer to trust a verdict they
300
+ * cannot check — and it is what makes an `--autopilot` decision auditable after
301
+ * the fact. See `evidence.ts` for the helpers the detectors are built from.
302
+ */
303
+ detect?(context: PresetContext): string | null;
304
+ /** Matches everything, and is only reached when no detector reported evidence. */
305
+ readonly fallback?: boolean;
296
306
  readonly layers: LayerRule[];
297
307
  readonly kinds: KindRule[];
298
308
  /** Ecosystem-specific ignores, merged with the user's `excludePatterns`. */
@@ -307,12 +317,26 @@ interface DetectedPreset {
307
317
  /** Ecosystem ignores the scanner should apply in addition to the user's. */
308
318
  exclude: string[];
309
319
  recommendedBudget: ByteSize | null;
320
+ /**
321
+ * The signal that matched, e.g. `next.config.ts`.
322
+ *
323
+ * Null when the preset was forced by name — nothing was detected, so there is
324
+ * nothing to report — and null for the fallback preset.
325
+ */
326
+ reason: string | null;
327
+ /**
328
+ * True only when nothing matched and the fallback preset was used.
329
+ *
330
+ * A forced preset is never a fallback: the developer asked for it. The first-run
331
+ * wizard keys its "could not tell what this is, please choose" prompt off this.
332
+ */
333
+ fallback: boolean;
310
334
  }
311
335
  /**
312
336
  * Every preset, ordered by priority.
313
337
  *
314
- * Ordering is the whole detection model: the first definition whose `detect`
315
- * returns true wins, so the list is sorted once at module load rather than being
338
+ * Ordering is the whole detection model: the first definition whose detector reports
339
+ * evidence wins, so the list is sorted once at module load rather than being
316
340
  * hand-maintained in the right order.
317
341
  */
318
342
  declare const PRESETS: readonly PresetDefinition[];
@@ -398,7 +422,7 @@ declare function validateSnapshot(configInput: ResolvedSnapshotConfig | Snapshot
398
422
  * `package.json` carries the same version; `npm run verify` compares the two.
399
423
  */
400
424
  declare const GENERATOR_NAME = "codebase-snapshot";
401
- declare const GENERATOR_VERSION = "0.9.0";
425
+ declare const GENERATOR_VERSION = "0.9.4";
402
426
 
403
427
  declare const DEFAULT_SECRET_PATTERNS: SecretRule[];
404
428
 
@@ -584,6 +608,10 @@ interface InitResult {
584
608
  /** True when an existing config was kept instead of being written. */
585
609
  reused: boolean;
586
610
  preset: string;
611
+ /** The signal the detector matched, e.g. `next.config.ts`; null when nothing detected it. */
612
+ reason: string | null;
613
+ /** True when no preset matched and the fallback was used. */
614
+ fallback: boolean;
587
615
  scripts: string[];
588
616
  gitignoreEntries: string[];
589
617
  dependency: InitDependency;
@@ -596,9 +624,87 @@ interface InitResult {
596
624
  * Interactive only when both ends are a TTY and `--yes` was not passed; every
597
625
  * other path uses the flag values and the detected preset, and prints what it
598
626
  * decided rather than prompting.
627
+ *
628
+ * Every question starts on its answer, so pressing enter through the whole wizard
629
+ * produces the recommended configuration — and the first question is a single
630
+ * "use the recommended setup" for a project that was recognised, which is what makes
631
+ * `snapshot` alone a complete command.
599
632
  */
600
633
  declare function runInit(options: InitOptions): Promise<InitResult>;
601
634
 
635
+ /**
636
+ * What "just type `snapshot`" does.
637
+ *
638
+ * The decision lives here, away from the CLI's input and output, so it can be tested as
639
+ * a table rather than by driving a terminal. The rule it encodes is the repository's own:
640
+ * a first run either asks, or refuses out loud — it never silently falls back to the
641
+ * built-in defaults, because a snapshot shaped by settings the developer never saw is
642
+ * indistinguishable from a broken one.
643
+ */
644
+ interface FirstRunFacts {
645
+ /** A config file, or a `"snapshot"` key in package.json, exists. */
646
+ hasConfig: boolean;
647
+ /** A snapshot this tool wrote is already on disk. */
648
+ hasPriorSnapshot: boolean;
649
+ /** stdin and stdout are both TTYs, and the output format is text. */
650
+ interactive: boolean;
651
+ /** `--autopilot`: never ask, set everything up. */
652
+ autopilot: boolean;
653
+ /** The target directory holds no files at all. */
654
+ emptyTarget: boolean;
655
+ }
656
+ type FirstRunRefusal = "empty" | "undecided";
657
+ type FirstRunPlan =
658
+ /** Nothing to set up: run the generate that was asked for. */
659
+ {
660
+ action: "generate";
661
+ }
662
+ /** Set the repository up first, asking the developer about the detected choices. */
663
+ | {
664
+ action: "setup";
665
+ interactive: true;
666
+ }
667
+ /** Set the repository up first, deciding everything — `--autopilot`. */
668
+ | {
669
+ action: "setup";
670
+ interactive: false;
671
+ }
672
+ /** Stop, with a message that says what to run instead. */
673
+ | {
674
+ action: "refuse";
675
+ exitCode: number;
676
+ reason: FirstRunRefusal;
677
+ };
678
+ /** The message a non-interactive first run gets. It has to name the way out. */
679
+ declare function firstRunMessage(reason: FirstRunRefusal, cwd: string): string;
680
+ /**
681
+ * The first-run decision table.
682
+ *
683
+ * `--autopilot` is checked first because it is an explicit instruction: with an existing
684
+ * config, setup still adds the npm script, the devDependency and the install the
685
+ * repository may be missing. Everything else defers to an existing config or an existing
686
+ * snapshot, so a repository that has been generated before never sees a wizard twice.
687
+ *
688
+ * An empty directory is refused before anything else: setting it up would install a
689
+ * devDependency for a repository nobody has started yet.
690
+ */
691
+ declare function planFirstRun(facts: FirstRunFacts): FirstRunPlan;
692
+ /**
693
+ * True when there is nothing in `cwd` but version-control or operating-system metadata.
694
+ *
695
+ * Setting up a project that has no files produces an empty snapshot and a devDependency
696
+ * for a repository nobody has started yet, so the answer is "not yet", not "done".
697
+ */
698
+ declare function isEffectivelyEmpty(cwd: string): boolean;
699
+ /**
700
+ * True when `outDir` holds a snapshot this tool wrote.
701
+ *
702
+ * The ownership marker is the same evidence the output-directory guard uses, so a
703
+ * directory that merely happens to be named `snapshot` does not count as "we have been
704
+ * here before" and cannot silence the first-run question.
705
+ */
706
+ declare function hasPriorSnapshot(cwd: string, outDir: string): boolean;
707
+
602
708
  /** What the wizard decided, after prompts or flags. */
603
709
  interface WizardAnswers {
604
710
  preset: string;
@@ -707,4 +813,4 @@ declare function generateSnapshot(configInput?: SnapshotConfig | ResolvedSnapsho
707
813
  /** Promise-returning wrapper for consumers that prefer an async call site. */
708
814
  declare function generateSnapshotAsync(configInput?: SnapshotConfig | ResolvedSnapshotConfig | null, options?: GenerateOptions): Promise<Manifest>;
709
815
 
710
- export { ARTIFACT_NAMES, ArtifactSelection, ByteSize, CliOptions, DEFAULT_ANSWERS, DEFAULT_SECRET_PATTERNS, DiscoveryMode, type ExplainResult, FileEntry, GENERATOR_NAME, GENERATOR_VERSION, type GenerateOptions, type HeuristicResult, type InitDependency, type InitOptions, type InitResult, JsonSummary, KindRule, LANGUAGE_PROFILES, type LanguageProfile, LayerRule, MIN_MAX_PART_BYTES, Manifest, type ManifestDiff, MarkdownSummary, PRESETS, PartMetadata, PromptCancelled, ResolvedSnapshotConfig, SCHEMA_VERSION, SecretFinding, SecretRule, SkipRecord, SnapshotConfig, SourceSummary, TextEncoding, ValidationResult, type WizardAnswers, anchorForPath, assertReplaceable, assertUsableConfigInput, collectFiles, compareManifests, countInvalidUtf8Bytes, countLines, decodeText, defineConfig, detectLanguage, detectPreset, explainPath, fenceForContent, fenceForText, generateProjectTree, generateSnapshot, generateSnapshotAsync, getPreset, globToRegExp, isBinaryBuffer, isBinaryExtension, isBinaryFile, isInteractive, isResolvedConfig, isSensitivePath, listPresetNames, loadConfigFile, loadConfigFileDetailed, loadManifest, markResolvedConfig, matchRule, matchesExclude, normalizeResolvedConfig, parseByteSize, partitionFiles, profileForPath, renderConfig, renderDiffText, renderExplainText, renumberParts, resolveConfig, resolveSafeOutputDirs, runInit, scanAndRedactSecrets, stripJsonComments, summarizeJson, summarizeMarkdown, summarizeTypeScriptSource, summarizeWithProfile, supportsTypeScriptImports, truncatePreview, truncateToBytes, validateSnapshot };
816
+ export { ARTIFACT_NAMES, ArtifactSelection, ByteSize, CliOptions, DEFAULT_ANSWERS, DEFAULT_SECRET_PATTERNS, DiscoveryMode, type ExplainResult, FileEntry, type FirstRunFacts, type FirstRunPlan, type FirstRunRefusal, GENERATOR_NAME, GENERATOR_VERSION, type GenerateOptions, type HeuristicResult, type InitDependency, type InitOptions, type InitResult, JsonSummary, KindRule, LANGUAGE_PROFILES, type LanguageProfile, LayerRule, MIN_MAX_PART_BYTES, Manifest, type ManifestDiff, MarkdownSummary, PRESETS, PartMetadata, PromptCancelled, ResolvedSnapshotConfig, SCHEMA_VERSION, SecretFinding, SecretRule, SkipRecord, SnapshotConfig, SourceSummary, TextEncoding, ValidationResult, type WizardAnswers, anchorForPath, assertReplaceable, assertUsableConfigInput, collectFiles, compareManifests, countInvalidUtf8Bytes, countLines, decodeText, defineConfig, detectLanguage, detectPreset, explainPath, fenceForContent, fenceForText, firstRunMessage, generateProjectTree, generateSnapshot, generateSnapshotAsync, getPreset, globToRegExp, hasPriorSnapshot, isBinaryBuffer, isBinaryExtension, isBinaryFile, isEffectivelyEmpty, isInteractive, isResolvedConfig, isSensitivePath, listPresetNames, loadConfigFile, loadConfigFileDetailed, loadManifest, markResolvedConfig, matchRule, matchesExclude, normalizeResolvedConfig, parseByteSize, partitionFiles, planFirstRun, profileForPath, renderConfig, renderDiffText, renderExplainText, renumberParts, resolveConfig, resolveSafeOutputDirs, runInit, scanAndRedactSecrets, stripJsonComments, summarizeJson, summarizeMarkdown, summarizeTypeScriptSource, summarizeWithProfile, supportsTypeScriptImports, truncatePreview, truncateToBytes, validateSnapshot };
package/dist/index.d.ts CHANGED
@@ -292,7 +292,17 @@ interface PresetDefinition {
292
292
  readonly name: string;
293
293
  /** Higher wins. Framework presets outrank repository shapes. */
294
294
  readonly priority: number;
295
- detect(context: PresetContext): boolean;
295
+ /**
296
+ * Why this preset matches, or null. Absent on the fallback preset only.
297
+ *
298
+ * Returning the reason rather than `true` is what lets the wizard print
299
+ * `Because next.config.ts` instead of asking the developer to trust a verdict they
300
+ * cannot check — and it is what makes an `--autopilot` decision auditable after
301
+ * the fact. See `evidence.ts` for the helpers the detectors are built from.
302
+ */
303
+ detect?(context: PresetContext): string | null;
304
+ /** Matches everything, and is only reached when no detector reported evidence. */
305
+ readonly fallback?: boolean;
296
306
  readonly layers: LayerRule[];
297
307
  readonly kinds: KindRule[];
298
308
  /** Ecosystem-specific ignores, merged with the user's `excludePatterns`. */
@@ -307,12 +317,26 @@ interface DetectedPreset {
307
317
  /** Ecosystem ignores the scanner should apply in addition to the user's. */
308
318
  exclude: string[];
309
319
  recommendedBudget: ByteSize | null;
320
+ /**
321
+ * The signal that matched, e.g. `next.config.ts`.
322
+ *
323
+ * Null when the preset was forced by name — nothing was detected, so there is
324
+ * nothing to report — and null for the fallback preset.
325
+ */
326
+ reason: string | null;
327
+ /**
328
+ * True only when nothing matched and the fallback preset was used.
329
+ *
330
+ * A forced preset is never a fallback: the developer asked for it. The first-run
331
+ * wizard keys its "could not tell what this is, please choose" prompt off this.
332
+ */
333
+ fallback: boolean;
310
334
  }
311
335
  /**
312
336
  * Every preset, ordered by priority.
313
337
  *
314
- * Ordering is the whole detection model: the first definition whose `detect`
315
- * returns true wins, so the list is sorted once at module load rather than being
338
+ * Ordering is the whole detection model: the first definition whose detector reports
339
+ * evidence wins, so the list is sorted once at module load rather than being
316
340
  * hand-maintained in the right order.
317
341
  */
318
342
  declare const PRESETS: readonly PresetDefinition[];
@@ -398,7 +422,7 @@ declare function validateSnapshot(configInput: ResolvedSnapshotConfig | Snapshot
398
422
  * `package.json` carries the same version; `npm run verify` compares the two.
399
423
  */
400
424
  declare const GENERATOR_NAME = "codebase-snapshot";
401
- declare const GENERATOR_VERSION = "0.9.0";
425
+ declare const GENERATOR_VERSION = "0.9.4";
402
426
 
403
427
  declare const DEFAULT_SECRET_PATTERNS: SecretRule[];
404
428
 
@@ -584,6 +608,10 @@ interface InitResult {
584
608
  /** True when an existing config was kept instead of being written. */
585
609
  reused: boolean;
586
610
  preset: string;
611
+ /** The signal the detector matched, e.g. `next.config.ts`; null when nothing detected it. */
612
+ reason: string | null;
613
+ /** True when no preset matched and the fallback was used. */
614
+ fallback: boolean;
587
615
  scripts: string[];
588
616
  gitignoreEntries: string[];
589
617
  dependency: InitDependency;
@@ -596,9 +624,87 @@ interface InitResult {
596
624
  * Interactive only when both ends are a TTY and `--yes` was not passed; every
597
625
  * other path uses the flag values and the detected preset, and prints what it
598
626
  * decided rather than prompting.
627
+ *
628
+ * Every question starts on its answer, so pressing enter through the whole wizard
629
+ * produces the recommended configuration — and the first question is a single
630
+ * "use the recommended setup" for a project that was recognised, which is what makes
631
+ * `snapshot` alone a complete command.
599
632
  */
600
633
  declare function runInit(options: InitOptions): Promise<InitResult>;
601
634
 
635
+ /**
636
+ * What "just type `snapshot`" does.
637
+ *
638
+ * The decision lives here, away from the CLI's input and output, so it can be tested as
639
+ * a table rather than by driving a terminal. The rule it encodes is the repository's own:
640
+ * a first run either asks, or refuses out loud — it never silently falls back to the
641
+ * built-in defaults, because a snapshot shaped by settings the developer never saw is
642
+ * indistinguishable from a broken one.
643
+ */
644
+ interface FirstRunFacts {
645
+ /** A config file, or a `"snapshot"` key in package.json, exists. */
646
+ hasConfig: boolean;
647
+ /** A snapshot this tool wrote is already on disk. */
648
+ hasPriorSnapshot: boolean;
649
+ /** stdin and stdout are both TTYs, and the output format is text. */
650
+ interactive: boolean;
651
+ /** `--autopilot`: never ask, set everything up. */
652
+ autopilot: boolean;
653
+ /** The target directory holds no files at all. */
654
+ emptyTarget: boolean;
655
+ }
656
+ type FirstRunRefusal = "empty" | "undecided";
657
+ type FirstRunPlan =
658
+ /** Nothing to set up: run the generate that was asked for. */
659
+ {
660
+ action: "generate";
661
+ }
662
+ /** Set the repository up first, asking the developer about the detected choices. */
663
+ | {
664
+ action: "setup";
665
+ interactive: true;
666
+ }
667
+ /** Set the repository up first, deciding everything — `--autopilot`. */
668
+ | {
669
+ action: "setup";
670
+ interactive: false;
671
+ }
672
+ /** Stop, with a message that says what to run instead. */
673
+ | {
674
+ action: "refuse";
675
+ exitCode: number;
676
+ reason: FirstRunRefusal;
677
+ };
678
+ /** The message a non-interactive first run gets. It has to name the way out. */
679
+ declare function firstRunMessage(reason: FirstRunRefusal, cwd: string): string;
680
+ /**
681
+ * The first-run decision table.
682
+ *
683
+ * `--autopilot` is checked first because it is an explicit instruction: with an existing
684
+ * config, setup still adds the npm script, the devDependency and the install the
685
+ * repository may be missing. Everything else defers to an existing config or an existing
686
+ * snapshot, so a repository that has been generated before never sees a wizard twice.
687
+ *
688
+ * An empty directory is refused before anything else: setting it up would install a
689
+ * devDependency for a repository nobody has started yet.
690
+ */
691
+ declare function planFirstRun(facts: FirstRunFacts): FirstRunPlan;
692
+ /**
693
+ * True when there is nothing in `cwd` but version-control or operating-system metadata.
694
+ *
695
+ * Setting up a project that has no files produces an empty snapshot and a devDependency
696
+ * for a repository nobody has started yet, so the answer is "not yet", not "done".
697
+ */
698
+ declare function isEffectivelyEmpty(cwd: string): boolean;
699
+ /**
700
+ * True when `outDir` holds a snapshot this tool wrote.
701
+ *
702
+ * The ownership marker is the same evidence the output-directory guard uses, so a
703
+ * directory that merely happens to be named `snapshot` does not count as "we have been
704
+ * here before" and cannot silence the first-run question.
705
+ */
706
+ declare function hasPriorSnapshot(cwd: string, outDir: string): boolean;
707
+
602
708
  /** What the wizard decided, after prompts or flags. */
603
709
  interface WizardAnswers {
604
710
  preset: string;
@@ -707,4 +813,4 @@ declare function generateSnapshot(configInput?: SnapshotConfig | ResolvedSnapsho
707
813
  /** Promise-returning wrapper for consumers that prefer an async call site. */
708
814
  declare function generateSnapshotAsync(configInput?: SnapshotConfig | ResolvedSnapshotConfig | null, options?: GenerateOptions): Promise<Manifest>;
709
815
 
710
- export { ARTIFACT_NAMES, ArtifactSelection, ByteSize, CliOptions, DEFAULT_ANSWERS, DEFAULT_SECRET_PATTERNS, DiscoveryMode, type ExplainResult, FileEntry, GENERATOR_NAME, GENERATOR_VERSION, type GenerateOptions, type HeuristicResult, type InitDependency, type InitOptions, type InitResult, JsonSummary, KindRule, LANGUAGE_PROFILES, type LanguageProfile, LayerRule, MIN_MAX_PART_BYTES, Manifest, type ManifestDiff, MarkdownSummary, PRESETS, PartMetadata, PromptCancelled, ResolvedSnapshotConfig, SCHEMA_VERSION, SecretFinding, SecretRule, SkipRecord, SnapshotConfig, SourceSummary, TextEncoding, ValidationResult, type WizardAnswers, anchorForPath, assertReplaceable, assertUsableConfigInput, collectFiles, compareManifests, countInvalidUtf8Bytes, countLines, decodeText, defineConfig, detectLanguage, detectPreset, explainPath, fenceForContent, fenceForText, generateProjectTree, generateSnapshot, generateSnapshotAsync, getPreset, globToRegExp, isBinaryBuffer, isBinaryExtension, isBinaryFile, isInteractive, isResolvedConfig, isSensitivePath, listPresetNames, loadConfigFile, loadConfigFileDetailed, loadManifest, markResolvedConfig, matchRule, matchesExclude, normalizeResolvedConfig, parseByteSize, partitionFiles, profileForPath, renderConfig, renderDiffText, renderExplainText, renumberParts, resolveConfig, resolveSafeOutputDirs, runInit, scanAndRedactSecrets, stripJsonComments, summarizeJson, summarizeMarkdown, summarizeTypeScriptSource, summarizeWithProfile, supportsTypeScriptImports, truncatePreview, truncateToBytes, validateSnapshot };
816
+ export { ARTIFACT_NAMES, ArtifactSelection, ByteSize, CliOptions, DEFAULT_ANSWERS, DEFAULT_SECRET_PATTERNS, DiscoveryMode, type ExplainResult, FileEntry, type FirstRunFacts, type FirstRunPlan, type FirstRunRefusal, GENERATOR_NAME, GENERATOR_VERSION, type GenerateOptions, type HeuristicResult, type InitDependency, type InitOptions, type InitResult, JsonSummary, KindRule, LANGUAGE_PROFILES, type LanguageProfile, LayerRule, MIN_MAX_PART_BYTES, Manifest, type ManifestDiff, MarkdownSummary, PRESETS, PartMetadata, PromptCancelled, ResolvedSnapshotConfig, SCHEMA_VERSION, SecretFinding, SecretRule, SkipRecord, SnapshotConfig, SourceSummary, TextEncoding, ValidationResult, type WizardAnswers, anchorForPath, assertReplaceable, assertUsableConfigInput, collectFiles, compareManifests, countInvalidUtf8Bytes, countLines, decodeText, defineConfig, detectLanguage, detectPreset, explainPath, fenceForContent, fenceForText, firstRunMessage, generateProjectTree, generateSnapshot, generateSnapshotAsync, getPreset, globToRegExp, hasPriorSnapshot, isBinaryBuffer, isBinaryExtension, isBinaryFile, isEffectivelyEmpty, isInteractive, isResolvedConfig, isSensitivePath, listPresetNames, loadConfigFile, loadConfigFileDetailed, loadManifest, markResolvedConfig, matchRule, matchesExclude, normalizeResolvedConfig, parseByteSize, partitionFiles, planFirstRun, profileForPath, renderConfig, renderDiffText, renderExplainText, renumberParts, resolveConfig, resolveSafeOutputDirs, runInit, scanAndRedactSecrets, stripJsonComments, summarizeJson, summarizeMarkdown, summarizeTypeScriptSource, summarizeWithProfile, supportsTypeScriptImports, truncatePreview, truncateToBytes, validateSnapshot };
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export { ARTIFACT_NAMES, DEFAULT_ANSWERS, DEFAULT_SECRET_PATTERNS, GENERATOR_NAME, GENERATOR_VERSION, LANGUAGE_PROFILES, MIN_MAX_PART_BYTES, PRESETS, PromptCancelled, SCHEMA_VERSION, anchorForPath, assertReplaceable, assertUsableConfigInput, collectFiles, compareManifests, countInvalidUtf8Bytes, countLines, decodeText, defineConfig, detectLanguage, detectPreset, explainPath, fenceForContent, fenceForText, generateProjectTree, generateSnapshot, generateSnapshotAsync, getPreset, globToRegExp, isBinaryBuffer, isBinaryExtension, isBinaryFile, isInteractive, isResolvedConfig, isSensitivePath, listPresetNames, loadConfigFile, loadConfigFileDetailed, loadManifest, markResolvedConfig, matchRule, matchesExclude, normalizeResolvedConfig, parseByteSize, partitionFiles, profileForPath, renderConfig, renderDiffText, renderExplainText, renumberParts, resolveConfig, resolveSafeOutputDirs, runInit, scanAndRedactSecrets, stripJsonComments, summarizeJson, summarizeMarkdown, summarizeTypeScriptSource, summarizeWithProfile, supportsTypeScriptImports, truncatePreview, truncateToBytes, validateSnapshot } from './chunk-FJ4RQYY2.js';
1
+ export { ARTIFACT_NAMES, DEFAULT_ANSWERS, DEFAULT_SECRET_PATTERNS, GENERATOR_NAME, GENERATOR_VERSION, LANGUAGE_PROFILES, MIN_MAX_PART_BYTES, PRESETS, PromptCancelled, SCHEMA_VERSION, anchorForPath, assertReplaceable, assertUsableConfigInput, collectFiles, compareManifests, countInvalidUtf8Bytes, countLines, decodeText, defineConfig, detectLanguage, detectPreset, explainPath, fenceForContent, fenceForText, firstRunMessage, generateProjectTree, generateSnapshot, generateSnapshotAsync, getPreset, globToRegExp, hasPriorSnapshot, isBinaryBuffer, isBinaryExtension, isBinaryFile, isEffectivelyEmpty, isInteractive, isResolvedConfig, isSensitivePath, listPresetNames, loadConfigFile, loadConfigFileDetailed, loadManifest, markResolvedConfig, matchRule, matchesExclude, normalizeResolvedConfig, parseByteSize, partitionFiles, planFirstRun, profileForPath, renderConfig, renderDiffText, renderExplainText, renumberParts, resolveConfig, resolveSafeOutputDirs, runInit, scanAndRedactSecrets, stripJsonComments, summarizeJson, summarizeMarkdown, summarizeTypeScriptSource, summarizeWithProfile, supportsTypeScriptImports, truncatePreview, truncateToBytes, validateSnapshot } from './chunk-FCWD4LY7.js';
2
2
  //# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map