@orkestrel/scaffold 0.0.82 → 0.0.84

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.
@@ -4,7 +4,7 @@ let _orkestrel_template = require("@orkestrel/template");
4
4
  let _orkestrel_emitter = require("@orkestrel/emitter");
5
5
  var package_default = {
6
6
  name: "@orkestrel/scaffold",
7
- version: "0.0.82",
7
+ version: "0.0.84",
8
8
  description: "Scaffold workspaces with commands: new, audit, repair, catalog, and overwrite.",
9
9
  keywords: [
10
10
  "audit",
@@ -95,25 +95,26 @@ var package_default = {
95
95
  },
96
96
  dependencies: {
97
97
  "@orkestrel/console": "^0.0.15",
98
- "@orkestrel/contract": "^0.0.18",
98
+ "@orkestrel/contract": "^0.0.19",
99
99
  "@orkestrel/emitter": "^0.0.11",
100
- "@orkestrel/markdown": "^0.0.16",
100
+ "@orkestrel/markdown": "^0.0.17",
101
101
  "@orkestrel/process": "^0.0.14",
102
102
  "@orkestrel/template": "^0.0.9"
103
103
  },
104
104
  devDependencies: {
105
105
  "@microsoft/api-extractor": "^7.59.3",
106
- "@orkestrel/guide": "^0.0.21",
107
- "@orkestrel/html": "^0.0.11",
106
+ "@orkestrel/browser": "^0.0.20",
107
+ "@orkestrel/guide": "^0.0.22",
108
+ "@orkestrel/html": "^0.0.12",
108
109
  "@orkestrel/probe": "^0.0.19",
109
110
  "@orkestrel/test": "^0.0.24",
110
- "@types/node": "^26.6.3",
111
+ "@types/node": "^26.6.4",
111
112
  "@vitest/browser-playwright": "^4.1.11",
112
113
  "oxfmt": "^0.71.0",
113
114
  "oxlint": "^1.86.0",
114
115
  "playwright": "^1.63.0",
115
116
  "typescript": "^6.0.3",
116
- "vite": "^8.3.1",
117
+ "vite": "^8.3.2",
117
118
  "vitest": "^4.1.11"
118
119
  },
119
120
  engines: { "node": ">=22.18.0" }
@@ -662,6 +663,41 @@ var SOURCE_BROWSER_DEV_DEPENDENCIES = Object.freeze({
662
663
  "@vitest/browser-playwright": package_default.devDependencies["@vitest/browser-playwright"],
663
664
  playwright: package_default.devDependencies.playwright
664
665
  });
666
+ /**
667
+ * Names the development dependency a browser or styles surface adds.
668
+ *
669
+ * @remarks
670
+ * The package ships the `browse` binary, an MCP server that drives a rendered page and records
671
+ * journeys, and `.claude/rules/quality.md` § Instruments names its registration.
672
+ * `blueprintToDevDependencies` names the blueprints that receive it, and it withholds the
673
+ * dependency from the workspaces {@link BROWSE_UPSTREAM} lists.
674
+ */
675
+ var BROWSE_DEV_DEPENDENCIES = Object.freeze({ "@orkestrel/browser": package_default.devDependencies["@orkestrel/browser"] });
676
+ /**
677
+ * Lists the packages `@orkestrel/browser` depends on at runtime, directly or transitively, frozen.
678
+ *
679
+ * @remarks
680
+ * A workspace this list names cannot declare `@orkestrel/browser`, because the declaration closes
681
+ * a dependency cycle through the browser package's runtime dependencies. The list is the closure
682
+ * of `dependencies` and `peerDependencies` over the installed manifests, sorted by name, and moves
683
+ * with the `@orkestrel/browser` pin.
684
+ */
685
+ var BROWSE_UPSTREAM = Object.freeze([
686
+ "@orkestrel/abort",
687
+ "@orkestrel/codec",
688
+ "@orkestrel/contract",
689
+ "@orkestrel/emitter",
690
+ "@orkestrel/html",
691
+ "@orkestrel/markdown",
692
+ "@orkestrel/mcp",
693
+ "@orkestrel/process",
694
+ "@orkestrel/router",
695
+ "@orkestrel/server",
696
+ "@orkestrel/sse",
697
+ "@orkestrel/timeout",
698
+ "@orkestrel/tool",
699
+ "@orkestrel/websocket"
700
+ ]);
665
701
  /** Names the development dependency every private `app` environment adds. */
666
702
  var APP_DEV_DEPENDENCIES = Object.freeze({ "@orkestrel/contract": package_default.dependencies["@orkestrel/contract"] });
667
703
  /** Lists the development dependencies a private browser application adds. */
@@ -2302,7 +2338,7 @@ declare module 'vitest' {
2302
2338
  }
2303
2339
  }
2304
2340
  `,
2305
- sheet: `import sheet from '/dist/src/{{name}}/index.css?raw'
2341
+ sheet: `import sheet from '{{root}}dist/src/{{name}}/index.css?raw'
2306
2342
  import { describe, expect, it } from 'vitest'
2307
2343
  import { adoptSheet, readLayerNames } from '{{setup}}'
2308
2344
 
@@ -5635,6 +5671,13 @@ function srcToExports(src) {
5635
5671
  * the peer's floor states what consumers may supply rather than what this workspace
5636
5672
  * develops against.
5637
5673
  *
5674
+ * A workspace that renders a surface receives {@link BROWSE_DEV_DEPENDENCIES}: a browser
5675
+ * environment on either axis, a sheet, or themes. A framework face counts without a clause of
5676
+ * its own, because a face is selected only on an axis that carries a browser environment.
5677
+ * A browser setup runtime alone receives nothing, because it renders no surface for `browse`
5678
+ * to drive. A workspace {@link BROWSE_UPSTREAM} names receives nothing either, because
5679
+ * `@orkestrel/browser` depends on it at runtime and the declaration would close a cycle.
5680
+ *
5638
5681
  * A peer is declared here as well as under `peerDependencies`, because a peer is
5639
5682
  * not installed by the workspace that declares it and developing against one
5640
5683
  * requires it present. A runtime dependency is the opposite case and is removed:
@@ -5657,8 +5700,11 @@ function srcToExports(src) {
5657
5700
  */
5658
5701
  function blueprintToDevDependencies(blueprint) {
5659
5702
  const sheets = blueprintToSheets(blueprint).length > 0 || blueprint.themes;
5703
+ const rendered = blueprint.src.includes("browser") || blueprint.app.includes("browser") || sheets;
5704
+ const own = blueprint.src.length > 0 || sheets ? `@orkestrel/${blueprint.name}` : blueprint.name;
5660
5705
  const merged = {
5661
5706
  ...BASE_DEV_DEPENDENCIES,
5707
+ ...rendered && !BROWSE_UPSTREAM.includes(own) ? BROWSE_DEV_DEPENDENCIES : {},
5662
5708
  ...sheets ? STYLES_DEV_DEPENDENCIES : {},
5663
5709
  ...blueprint.src.length > 0 || blueprint.bin ? DECLARATION_DEV_DEPENDENCIES : {},
5664
5710
  ...blueprint.src.includes("browser") || blueprint.setup.includes("browser") || sheets ? SOURCE_BROWSER_DEV_DEPENDENCIES : {},
@@ -5670,7 +5716,6 @@ function blueprintToDevDependencies(blueprint) {
5670
5716
  for (const framework of blueprintToMachinery(blueprint).frameworks) Object.assign(merged, FRAMEWORK_MATRIX[framework].dependencies);
5671
5717
  for (const extra of blueprint.extras) merged[extra.name] = extra.range;
5672
5718
  for (const peer of blueprint.peers) if (!Object.hasOwn(merged, peer.name)) merged[peer.name] = peer.range;
5673
- const own = blueprint.src.length > 0 || sheets ? `@orkestrel/${blueprint.name}` : blueprint.name;
5674
5719
  const runtime = new Set(blueprint.dependencies.map((dependency) => dependency.name));
5675
5720
  return Object.fromEntries(Object.entries(merged).filter(([name]) => name !== own && !runtime.has(name)).sort(([left], [right]) => (0, _orkestrel_contract.compareValues)(left, right)));
5676
5721
  }
@@ -6719,16 +6764,20 @@ function blueprintToTestArtifacts(blueprint) {
6719
6764
  origin: "template",
6720
6765
  content: ARTIFACT_TEMPLATES.tests.styles.proof
6721
6766
  });
6722
- for (const name of sheets) artifacts.push({
6723
- path: `tests/src/${name}/index.test.ts`,
6724
- group: "tests",
6725
- ownership: "birth",
6726
- origin: "template",
6727
- content: (0, _orkestrel_template.fillTemplate)(ARTIFACT_TEMPLATES.tests.sheet, {
6728
- name,
6729
- setup: name === "styles/themes" ? "../../../setupStyles.js" : "../../setupStyles.js"
6730
- })
6731
- });
6767
+ for (const name of sheets) {
6768
+ const tests = "../".repeat(name.split("/").length + 1);
6769
+ artifacts.push({
6770
+ path: `tests/src/${name}/index.test.ts`,
6771
+ group: "tests",
6772
+ ownership: "birth",
6773
+ origin: "template",
6774
+ content: (0, _orkestrel_template.fillTemplate)(ARTIFACT_TEMPLATES.tests.sheet, {
6775
+ name,
6776
+ root: `${tests}../`,
6777
+ setup: `${tests}setupStyles.js`
6778
+ })
6779
+ });
6780
+ }
6732
6781
  if (blueprintToMachinery(blueprint).browser) artifacts.push({
6733
6782
  path: "tests/setupBrowser.ts",
6734
6783
  group: "tests",
@@ -8407,6 +8456,8 @@ exports.AXES = AXES;
8407
8456
  exports.BASE_DEV_DEPENDENCIES = BASE_DEV_DEPENDENCIES;
8408
8457
  exports.BIN_CONFIGS = BIN_CONFIGS;
8409
8458
  exports.BIN_ENTRY_PATH = BIN_ENTRY_PATH;
8459
+ exports.BROWSE_DEV_DEPENDENCIES = BROWSE_DEV_DEPENDENCIES;
8460
+ exports.BROWSE_UPSTREAM = BROWSE_UPSTREAM;
8410
8461
  exports.CANON_PATHS = CANON_PATHS;
8411
8462
  exports.CATALOG_AGENT_PATH = CATALOG_AGENT_PATH;
8412
8463
  exports.CATALOG_CLOSING_MARKER = CATALOG_CLOSING_MARKER;