@orkestrel/scaffold 0.0.84 → 0.0.86

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.
@@ -2042,6 +2042,41 @@ export declare class Compiler implements CompilerInterface {
2042
2042
  */
2043
2043
  export declare function inferGroup(path: string): Group;
2044
2044
 
2045
+ /**
2046
+ * Inserts dependencies a package manifest does not declare into the section each one names.
2047
+ *
2048
+ * @param manifest - The manifest text to compile.
2049
+ * @param additions - The runtime and development names and ranges to declare.
2050
+ * @returns The manifest declaring every addition, or `undefined` when the text is not a
2051
+ * manifest, an addition's section is not an object or holds a value that is not a range, a name
2052
+ * is repeated, or `dependencies` or `devDependencies` already declares a name.
2053
+ *
2054
+ * @remarks
2055
+ * Runtime additions enter `dependencies` and development additions enter `devDependencies`. The
2056
+ * compiler inserts text instead of serializing the manifest, so every declared byte survives.
2057
+ * Each addition lands before the first declared key that sorts after it, or after the last
2058
+ * declared key when none does, so a section kept in key order stays in key order. An addition
2059
+ * copies the indentation of the section's first entry; an empty section takes its entries one
2060
+ * level inside the indentation of its opening line. An absent section is created as one
2061
+ * top-level key holding its additions: `devDependencies` after `dependencies`, `dependencies`
2062
+ * before `devDependencies`, and either one last in the manifest object when its sibling is
2063
+ * absent. The created key copies the indentation of the manifest's first key, and its entries sit
2064
+ * one level further in. A name either writable section already declares is the caller's mistake
2065
+ * rather than an addition, so the compiler refuses it instead of declaring a package twice.
2066
+ *
2067
+ * @example
2068
+ * ```ts
2069
+ * import { insertManifestDependencies } from '@orkestrel/scaffold'
2070
+ *
2071
+ * insertManifestDependencies('{\n\t"devDependencies": {\n\t\t"vite": "^8.3.2"\n\t}\n}\n', {
2072
+ * runtime: [],
2073
+ * development: [{ name: 'typescript', range: '^6.0.3' }],
2074
+ * })
2075
+ * // '{\n\t"devDependencies": {\n\t\t"typescript": "^6.0.3",\n\t\t"vite": "^8.3.2"\n\t}\n}\n'
2076
+ * ```
2077
+ */
2078
+ export declare function insertManifestDependencies(manifest: string, additions: DependencyPinSet): string | undefined;
2079
+
2045
2080
  /**
2046
2081
  * Names the cross-environment composition proof whose presence makes a workspace
2047
2082
  * `integration`.
@@ -2602,10 +2637,14 @@ export declare class Compiler implements CompilerInterface {
2602
2637
  * Each region is written in place, so every byte outside the named ranges
2603
2638
  * survives. `pins` names the declared ranges and `scripts` the declared script
2604
2639
  * values; a region given nothing to write leaves its section untouched.
2640
+ * `additions` names dependencies the manifest does not declare, each inserted
2641
+ * into the section its list names: `runtime` into `dependencies` and
2642
+ * `development` into `devDependencies`. Absent, nothing is inserted.
2605
2643
  */
2606
2644
  export declare interface ManifestRegionSet {
2607
2645
  readonly pins: DependencyPinSet;
2608
2646
  readonly scripts: readonly ManifestScript[];
2647
+ readonly additions?: DependencyPinSet;
2609
2648
  }
2610
2649
 
2611
2650
  /**
@@ -2042,6 +2042,41 @@ export declare class Compiler implements CompilerInterface {
2042
2042
  */
2043
2043
  export declare function inferGroup(path: string): Group;
2044
2044
 
2045
+ /**
2046
+ * Inserts dependencies a package manifest does not declare into the section each one names.
2047
+ *
2048
+ * @param manifest - The manifest text to compile.
2049
+ * @param additions - The runtime and development names and ranges to declare.
2050
+ * @returns The manifest declaring every addition, or `undefined` when the text is not a
2051
+ * manifest, an addition's section is not an object or holds a value that is not a range, a name
2052
+ * is repeated, or `dependencies` or `devDependencies` already declares a name.
2053
+ *
2054
+ * @remarks
2055
+ * Runtime additions enter `dependencies` and development additions enter `devDependencies`. The
2056
+ * compiler inserts text instead of serializing the manifest, so every declared byte survives.
2057
+ * Each addition lands before the first declared key that sorts after it, or after the last
2058
+ * declared key when none does, so a section kept in key order stays in key order. An addition
2059
+ * copies the indentation of the section's first entry; an empty section takes its entries one
2060
+ * level inside the indentation of its opening line. An absent section is created as one
2061
+ * top-level key holding its additions: `devDependencies` after `dependencies`, `dependencies`
2062
+ * before `devDependencies`, and either one last in the manifest object when its sibling is
2063
+ * absent. The created key copies the indentation of the manifest's first key, and its entries sit
2064
+ * one level further in. A name either writable section already declares is the caller's mistake
2065
+ * rather than an addition, so the compiler refuses it instead of declaring a package twice.
2066
+ *
2067
+ * @example
2068
+ * ```ts
2069
+ * import { insertManifestDependencies } from '@orkestrel/scaffold'
2070
+ *
2071
+ * insertManifestDependencies('{\n\t"devDependencies": {\n\t\t"vite": "^8.3.2"\n\t}\n}\n', {
2072
+ * runtime: [],
2073
+ * development: [{ name: 'typescript', range: '^6.0.3' }],
2074
+ * })
2075
+ * // '{\n\t"devDependencies": {\n\t\t"typescript": "^6.0.3",\n\t\t"vite": "^8.3.2"\n\t}\n}\n'
2076
+ * ```
2077
+ */
2078
+ export declare function insertManifestDependencies(manifest: string, additions: DependencyPinSet): string | undefined;
2079
+
2045
2080
  /**
2046
2081
  * Names the cross-environment composition proof whose presence makes a workspace
2047
2082
  * `integration`.
@@ -2602,10 +2637,14 @@ export declare class Compiler implements CompilerInterface {
2602
2637
  * Each region is written in place, so every byte outside the named ranges
2603
2638
  * survives. `pins` names the declared ranges and `scripts` the declared script
2604
2639
  * values; a region given nothing to write leaves its section untouched.
2640
+ * `additions` names dependencies the manifest does not declare, each inserted
2641
+ * into the section its list names: `runtime` into `dependencies` and
2642
+ * `development` into `devDependencies`. Absent, nothing is inserted.
2605
2643
  */
2606
2644
  export declare interface ManifestRegionSet {
2607
2645
  readonly pins: DependencyPinSet;
2608
2646
  readonly scripts: readonly ManifestScript[];
2647
+ readonly additions?: DependencyPinSet;
2609
2648
  }
2610
2649
 
2611
2650
  /**
@@ -3,7 +3,7 @@ import { fillTemplate } from "@orkestrel/template";
3
3
  import { Emitter } from "@orkestrel/emitter";
4
4
  var package_default = {
5
5
  name: "@orkestrel/scaffold",
6
- version: "0.0.84",
6
+ version: "0.0.86",
7
7
  description: "Scaffold workspaces with commands: new, audit, repair, catalog, and overwrite.",
8
8
  keywords: [
9
9
  "audit",
@@ -7360,6 +7360,185 @@ function replaceManifestRanges(manifest, pins) {
7360
7360
  return declaredRuntime && declaredDevelopment ? compiled : void 0;
7361
7361
  }
7362
7362
  /**
7363
+ * Inserts dependencies a package manifest does not declare into the section each one names.
7364
+ *
7365
+ * @param manifest - The manifest text to compile.
7366
+ * @param additions - The runtime and development names and ranges to declare.
7367
+ * @returns The manifest declaring every addition, or `undefined` when the text is not a
7368
+ * manifest, an addition's section is not an object or holds a value that is not a range, a name
7369
+ * is repeated, or `dependencies` or `devDependencies` already declares a name.
7370
+ *
7371
+ * @remarks
7372
+ * Runtime additions enter `dependencies` and development additions enter `devDependencies`. The
7373
+ * compiler inserts text instead of serializing the manifest, so every declared byte survives.
7374
+ * Each addition lands before the first declared key that sorts after it, or after the last
7375
+ * declared key when none does, so a section kept in key order stays in key order. An addition
7376
+ * copies the indentation of the section's first entry; an empty section takes its entries one
7377
+ * level inside the indentation of its opening line. An absent section is created as one
7378
+ * top-level key holding its additions: `devDependencies` after `dependencies`, `dependencies`
7379
+ * before `devDependencies`, and either one last in the manifest object when its sibling is
7380
+ * absent. The created key copies the indentation of the manifest's first key, and its entries sit
7381
+ * one level further in. A name either writable section already declares is the caller's mistake
7382
+ * rather than an addition, so the compiler refuses it instead of declaring a package twice.
7383
+ *
7384
+ * @example
7385
+ * ```ts
7386
+ * import { insertManifestDependencies } from '@orkestrel/scaffold'
7387
+ *
7388
+ * insertManifestDependencies('{\n\t"devDependencies": {\n\t\t"vite": "^8.3.2"\n\t}\n}\n', {
7389
+ * runtime: [],
7390
+ * development: [{ name: 'typescript', range: '^6.0.3' }],
7391
+ * })
7392
+ * // '{\n\t"devDependencies": {\n\t\t"typescript": "^6.0.3",\n\t\t"vite": "^8.3.2"\n\t}\n}\n'
7393
+ * ```
7394
+ */
7395
+ function insertManifestDependencies(manifest, additions) {
7396
+ const requested = [...additions.runtime, ...additions.development];
7397
+ if (requested.length === 0) return manifest;
7398
+ const parsed = parseJSON(manifest);
7399
+ if (!isRecord(parsed)) return void 0;
7400
+ const declared = /* @__PURE__ */ new Set();
7401
+ for (const section of ["dependencies", "devDependencies"]) {
7402
+ const entries = parsed[section];
7403
+ if (isRecord(entries)) for (const name of Object.keys(entries)) declared.add(name);
7404
+ }
7405
+ const names = new Set(requested.map(({ name }) => name));
7406
+ if (names.size !== requested.length || [...names].some((name) => declared.has(name))) return;
7407
+ let compiled = manifest;
7408
+ const sections = [{
7409
+ name: "dependencies",
7410
+ dependencies: additions.runtime
7411
+ }, {
7412
+ name: "devDependencies",
7413
+ dependencies: additions.development
7414
+ }];
7415
+ for (const section of sections) {
7416
+ if (section.dependencies.length === 0) continue;
7417
+ const entries = parsed[section.name];
7418
+ if (entries !== void 0 && (!isRecord(entries) || !Object.values(entries).every(isString))) return;
7419
+ const ordered = [...section.dependencies].sort((left, right) => compareValues(left.name, right.name));
7420
+ const lines = ordered.map(({ name, range }) => `${JSON.stringify(name)}: ${JSON.stringify(range)}`);
7421
+ const sibling = section.name === "dependencies" ? "devDependencies" : "dependencies";
7422
+ const located = /* @__PURE__ */ new Map();
7423
+ let current;
7424
+ let head = -1;
7425
+ let root = -1;
7426
+ let depth = 0;
7427
+ let cursor = 0;
7428
+ while (cursor < compiled.length && root < 0) {
7429
+ const character = compiled.charAt(cursor);
7430
+ if (character === "\"") {
7431
+ const start = cursor;
7432
+ let quote = cursor + 1;
7433
+ while (quote < compiled.length && compiled.charAt(quote) !== "\"") quote += compiled.charAt(quote) === "\\" ? 2 : 1;
7434
+ if (quote >= compiled.length) return void 0;
7435
+ let colon = quote + 1;
7436
+ while (/\s/u.test(compiled.charAt(colon))) colon += 1;
7437
+ cursor = quote + 1;
7438
+ if (depth !== 1 || compiled.charAt(colon) !== ":") continue;
7439
+ if (head < 0) head = start;
7440
+ const name = parseJSON(compiled.slice(start, quote + 1));
7441
+ if (!isString(name) || name !== section.name && name !== sibling) continue;
7442
+ if (located.has(name)) continue;
7443
+ let brace = colon + 1;
7444
+ while (/\s/u.test(compiled.charAt(brace))) brace += 1;
7445
+ if (compiled.charAt(brace) !== "{") {
7446
+ if (name === section.name) return void 0;
7447
+ continue;
7448
+ }
7449
+ current = {
7450
+ name,
7451
+ start,
7452
+ open: brace
7453
+ };
7454
+ depth += 1;
7455
+ cursor = brace + 1;
7456
+ continue;
7457
+ }
7458
+ if (character === "{") depth += 1;
7459
+ else if (character === "}") {
7460
+ depth -= 1;
7461
+ if (depth === 1 && current !== void 0) {
7462
+ located.set(current.name, {
7463
+ ...current,
7464
+ close: cursor
7465
+ });
7466
+ current = void 0;
7467
+ }
7468
+ if (depth === 0) root = cursor;
7469
+ }
7470
+ cursor += 1;
7471
+ }
7472
+ const bounds = located.get(section.name);
7473
+ if (bounds === void 0) {
7474
+ if (entries !== void 0 || root < 0) return void 0;
7475
+ const breaking = head < 0 ? -1 : compiled.lastIndexOf("\n", head);
7476
+ const margin = breaking < 0 ? "" : compiled.slice(breaking + 1, head);
7477
+ const gap = breaking < 0 || /\S/u.test(margin) ? "" : `\n${margin}`;
7478
+ const block = `${JSON.stringify(section.name)}: {${lines.map((line) => `${gap === "" ? "" : `${gap}${margin}`}${line}`).join(",")}${gap}}`;
7479
+ const neighbor = located.get(sibling);
7480
+ let tail = root - 1;
7481
+ while (tail > 0 && /\s/u.test(compiled.charAt(tail))) tail -= 1;
7482
+ const [position, insertion] = neighbor === void 0 ? [tail + 1, compiled.charAt(tail) === "{" ? block : `,${gap}${block}`] : section.name === "devDependencies" ? [neighbor.close + 1, `,${gap}${block}`] : [neighbor.start, `${block},${gap}`];
7483
+ compiled = compiled.slice(0, position) + insertion + compiled.slice(position);
7484
+ continue;
7485
+ }
7486
+ const { open, close } = bounds;
7487
+ const declarations = [];
7488
+ let key;
7489
+ let scan = open + 1;
7490
+ while (scan < close) {
7491
+ if (compiled.charAt(scan) !== "\"") {
7492
+ scan += 1;
7493
+ continue;
7494
+ }
7495
+ let quote = scan + 1;
7496
+ while (quote < close && compiled.charAt(quote) !== "\"") quote += compiled.charAt(quote) === "\\" ? 2 : 1;
7497
+ if (quote >= close) return void 0;
7498
+ if (key === void 0) {
7499
+ const name = parseJSON(compiled.slice(scan, quote + 1));
7500
+ if (!isString(name)) return void 0;
7501
+ key = {
7502
+ name,
7503
+ start: scan
7504
+ };
7505
+ } else {
7506
+ declarations.push({
7507
+ ...key,
7508
+ end: quote + 1
7509
+ });
7510
+ key = void 0;
7511
+ }
7512
+ scan = quote + 1;
7513
+ }
7514
+ const first = declarations[0];
7515
+ const last = declarations.at(-1);
7516
+ const edits = /* @__PURE__ */ new Map();
7517
+ if (first === void 0 || last === void 0) {
7518
+ const opening = compiled.lastIndexOf("\n", open);
7519
+ let column = opening + 1;
7520
+ while (column < open && /\s/u.test(compiled.charAt(column))) column += 1;
7521
+ const level = opening < 0 ? "" : compiled.slice(opening + 1, column);
7522
+ const separator = opening < 0 ? "" : `\n${level}${level}`;
7523
+ const ending = opening < 0 ? "" : `\n${level}`;
7524
+ compiled = `${compiled.slice(0, open + 1)}${lines.map((line) => `${separator}${line}`).join(",")}${ending}${compiled.slice(close)}`;
7525
+ continue;
7526
+ }
7527
+ const newline = compiled.lastIndexOf("\n", first.start);
7528
+ const indent = newline < 0 ? "" : compiled.slice(newline + 1, first.start);
7529
+ const separator = newline < 0 || /\S/u.test(indent) ? "" : `\n${indent}`;
7530
+ for (const [index, dependency] of ordered.entries()) {
7531
+ const line = lines[index] ?? "";
7532
+ const anchor = declarations.find((declaration) => compareValues(declaration.name, dependency.name) > 0);
7533
+ const position = anchor?.start ?? last.end;
7534
+ const text = anchor === void 0 ? `,${separator}${line}` : `${line},${separator}`;
7535
+ edits.set(position, `${edits.get(position) ?? ""}${text}`);
7536
+ }
7537
+ for (const [position, text] of [...edits].sort(([left], [right]) => right - left)) compiled = compiled.slice(0, position) + text + compiled.slice(position);
7538
+ }
7539
+ return compiled;
7540
+ }
7541
+ /**
7363
7542
  * Replaces named script values in package manifest text.
7364
7543
  *
7365
7544
  * @param manifest - The manifest text to compile.
@@ -8446,6 +8625,6 @@ var Compiler = class {
8446
8625
  }
8447
8626
  };
8448
8627
  //#endregion
8449
- export { APP_BROWSER_DEV_DEPENDENCIES, APP_DEV_DEPENDENCIES, APP_MATRIX, APP_SERVER_DEV_DEPENDENCIES, ARTIFACT_TEMPLATES, AXES, BASE_DEV_DEPENDENCIES, BIN_CONFIGS, BIN_ENTRY_PATH, BROWSE_DEV_DEPENDENCIES, BROWSE_UPSTREAM, CANON_PATHS, CATALOG_AGENT_PATH, CATALOG_CLOSING_MARKER, CATALOG_OPENING_MARKER, CONFIG_TEMPLATES, CONFORMANCE_TEST_PATH, CONTROL_CHARACTER_PATTERN, Compiler, DECLARATION_DEV_DEPENDENCIES, DEFAULT_ENGINES, DEFAULT_VERSION, DEPENDENCY_NAME_PATTERN, DISTRIBUTION_TEST_PATH, ENGINES_PATTERN, ENVIRONMENTS, EXECUTABLE_PATHS, EXTRA_RANGE_PATTERN, FLOOR_RANGE_PATTERN, FOREIGN_NAME_PATTERN, FRAMEWORKS, FRAMEWORK_MATRIX, GLOBAL_SETUP_PATH, GROUPS, GUIDES_TEST_PATH, HEX_PATTERN, HOST_INVENTORY_PATH, HOST_PATHS, INTEGRATION_TEST_PATH, INVALID_PATH_CHARACTER_PATTERN, JOURNEY_CONFIG_PATH, MANIFEST_PATH, MAX_ARTIFACT_BYTES, MAX_ARTIFACT_HEX_LENGTH, MAX_AUDIT_FINDINGS, MAX_COLLECTION_ITEMS, MAX_DEPENDENCY_NAME_LENGTH, MAX_MANIFEST_BYTES, MAX_NAME_LENGTH, MAX_PATH_LENGTH, MAX_RANGE_LENGTH, MAX_REGISTRY_BYTES, MAX_SCRIPT_LENGTH, MAX_TOTAL_ARTIFACT_BYTES, MAX_TOTAL_REGISTRY_BYTES, MINIMUM_NODE_VERSION, MINIMUM_NPM_VERSION, NAME_PATTERN, ORCHESTRATION_PATH_NAMES, ORCHESTRATION_PATH_PREFIXES, ORKESTREL_RANGE_PATTERN, PRINT_WIDTH, REFERENCE_PATHS, RELEASE_PROOF_COMMAND, RESERVED_SHEET_NAMES, SEED_GUIDE_PATHS, SERVICE_SCRIPT_PATH, SERVICE_SETUP_PATH, SERVICE_TEST_INCLUDE, SHEET_ENTRY_NAME, SHOWCASE_CONFIG_PATH, SHOWCASE_DEV_DEPENDENCIES, SHOWCASE_PAGES_PATH, SKILLS_CONFIG_PATH, SOURCE_BROWSER_DEV_DEPENDENCIES, SRC_MATRIX, STYLES_DEV_DEPENDENCIES, STYLES_ENTRY_PATH, SURFACES, ScaffoldError, TAB_WIDTH, TARGET_SKILL_NAMES, THEMES_BARREL_PATH, THEMES_ENTRY_PATH, VERSION_PATTERN, WORKSPACE_DEV_ENGINES, WORKSPACE_OWNED_PATHS, applyOverrides, artifactToFinding, artifactToHex, artifactsToQuestions, blueprintToConfigArtifacts, blueprintToDevDependencies, blueprintToDocumentArtifacts, blueprintToExports, blueprintToFaces, blueprintToGuideArtifacts, blueprintToHostArtifacts, blueprintToMachinery, blueprintToManifest, blueprintToOrchestrationArtifacts, blueprintToProjects, blueprintToQuestions, blueprintToRootTsconfig, blueprintToRootVite, blueprintToScripts, blueprintToSheets, blueprintToSourceArtifacts, blueprintToTestArtifacts, blueprintToWritableScripts, bytesToHex, catalogToLayers, cloneValue, compareVersions, computeBytes, computeHash, contentToHex, createBlueprint, dependenciesToQuestions, extractRangeMajor, extractVersion, inferDrift, inferGroup, isArtifact, isAudit, isBlueprint, isBrowserExtension, isCanonPath, isCatalogEntry, isCollection, isCompilerHooks, isCompilerOptions, isContent, isDeferredPath, isDependency, isDependencyName, isEnvironment, isExtension, isFinding, isFloorPath, isGroup, isGroups, isHex, isManifestScript, isMirror, isOverride, isPath, isPlan, isQuestion, isRetainedPath, isScaffoldError, isSheetName, isSnapshot, isStylesExtension, isSurface, manifestToDependencies, manifestToName, matchesDriftReachability, matchesEngines, matchesOrchestrationPath, matchesPrintWidth, matchesRange, nameToGuide, overridesToQuestions, parseBlueprint, parseCompilerOptions, parseExtension, parseGroups, parseSnapshot, pathToCondition, planToFindings, planToHash, planToSummary, renderSkillPointer, replaceManifestRanges, replaceManifestScripts, replacePlanRanges, selectGroups, selectHostPaths, serializeTypeScriptString, srcToEntry, srcToExports, srcToRoot };
8628
+ export { APP_BROWSER_DEV_DEPENDENCIES, APP_DEV_DEPENDENCIES, APP_MATRIX, APP_SERVER_DEV_DEPENDENCIES, ARTIFACT_TEMPLATES, AXES, BASE_DEV_DEPENDENCIES, BIN_CONFIGS, BIN_ENTRY_PATH, BROWSE_DEV_DEPENDENCIES, BROWSE_UPSTREAM, CANON_PATHS, CATALOG_AGENT_PATH, CATALOG_CLOSING_MARKER, CATALOG_OPENING_MARKER, CONFIG_TEMPLATES, CONFORMANCE_TEST_PATH, CONTROL_CHARACTER_PATTERN, Compiler, DECLARATION_DEV_DEPENDENCIES, DEFAULT_ENGINES, DEFAULT_VERSION, DEPENDENCY_NAME_PATTERN, DISTRIBUTION_TEST_PATH, ENGINES_PATTERN, ENVIRONMENTS, EXECUTABLE_PATHS, EXTRA_RANGE_PATTERN, FLOOR_RANGE_PATTERN, FOREIGN_NAME_PATTERN, FRAMEWORKS, FRAMEWORK_MATRIX, GLOBAL_SETUP_PATH, GROUPS, GUIDES_TEST_PATH, HEX_PATTERN, HOST_INVENTORY_PATH, HOST_PATHS, INTEGRATION_TEST_PATH, INVALID_PATH_CHARACTER_PATTERN, JOURNEY_CONFIG_PATH, MANIFEST_PATH, MAX_ARTIFACT_BYTES, MAX_ARTIFACT_HEX_LENGTH, MAX_AUDIT_FINDINGS, MAX_COLLECTION_ITEMS, MAX_DEPENDENCY_NAME_LENGTH, MAX_MANIFEST_BYTES, MAX_NAME_LENGTH, MAX_PATH_LENGTH, MAX_RANGE_LENGTH, MAX_REGISTRY_BYTES, MAX_SCRIPT_LENGTH, MAX_TOTAL_ARTIFACT_BYTES, MAX_TOTAL_REGISTRY_BYTES, MINIMUM_NODE_VERSION, MINIMUM_NPM_VERSION, NAME_PATTERN, ORCHESTRATION_PATH_NAMES, ORCHESTRATION_PATH_PREFIXES, ORKESTREL_RANGE_PATTERN, PRINT_WIDTH, REFERENCE_PATHS, RELEASE_PROOF_COMMAND, RESERVED_SHEET_NAMES, SEED_GUIDE_PATHS, SERVICE_SCRIPT_PATH, SERVICE_SETUP_PATH, SERVICE_TEST_INCLUDE, SHEET_ENTRY_NAME, SHOWCASE_CONFIG_PATH, SHOWCASE_DEV_DEPENDENCIES, SHOWCASE_PAGES_PATH, SKILLS_CONFIG_PATH, SOURCE_BROWSER_DEV_DEPENDENCIES, SRC_MATRIX, STYLES_DEV_DEPENDENCIES, STYLES_ENTRY_PATH, SURFACES, ScaffoldError, TAB_WIDTH, TARGET_SKILL_NAMES, THEMES_BARREL_PATH, THEMES_ENTRY_PATH, VERSION_PATTERN, WORKSPACE_DEV_ENGINES, WORKSPACE_OWNED_PATHS, applyOverrides, artifactToFinding, artifactToHex, artifactsToQuestions, blueprintToConfigArtifacts, blueprintToDevDependencies, blueprintToDocumentArtifacts, blueprintToExports, blueprintToFaces, blueprintToGuideArtifacts, blueprintToHostArtifacts, blueprintToMachinery, blueprintToManifest, blueprintToOrchestrationArtifacts, blueprintToProjects, blueprintToQuestions, blueprintToRootTsconfig, blueprintToRootVite, blueprintToScripts, blueprintToSheets, blueprintToSourceArtifacts, blueprintToTestArtifacts, blueprintToWritableScripts, bytesToHex, catalogToLayers, cloneValue, compareVersions, computeBytes, computeHash, contentToHex, createBlueprint, dependenciesToQuestions, extractRangeMajor, extractVersion, inferDrift, inferGroup, insertManifestDependencies, isArtifact, isAudit, isBlueprint, isBrowserExtension, isCanonPath, isCatalogEntry, isCollection, isCompilerHooks, isCompilerOptions, isContent, isDeferredPath, isDependency, isDependencyName, isEnvironment, isExtension, isFinding, isFloorPath, isGroup, isGroups, isHex, isManifestScript, isMirror, isOverride, isPath, isPlan, isQuestion, isRetainedPath, isScaffoldError, isSheetName, isSnapshot, isStylesExtension, isSurface, manifestToDependencies, manifestToName, matchesDriftReachability, matchesEngines, matchesOrchestrationPath, matchesPrintWidth, matchesRange, nameToGuide, overridesToQuestions, parseBlueprint, parseCompilerOptions, parseExtension, parseGroups, parseSnapshot, pathToCondition, planToFindings, planToHash, planToSummary, renderSkillPointer, replaceManifestRanges, replaceManifestScripts, replacePlanRanges, selectGroups, selectHostPaths, serializeTypeScriptString, srcToEntry, srcToExports, srcToRoot };
8450
8629
 
8451
8630
  //# sourceMappingURL=index.js.map