@unbrained/pm-cli 2026.8.13 → 2026.8.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +141 -112
  3. package/dist/cli/main.js +39 -3
  4. package/dist/cli-bundle/bundle-manifest.json +144 -176
  5. package/dist/cli-bundle/chunks/{chunk-DEDU3DG7.js → chunk-BBOFSVAK.js} +66 -65
  6. package/dist/cli-bundle/chunks/chunk-BFALV3YP.js +5 -0
  7. package/dist/cli-bundle/chunks/{chunk-Q47C67TQ.js → chunk-FIW4P64F.js} +2 -2
  8. package/dist/cli-bundle/chunks/{chunk-QGTUPEU5.js → chunk-G5JUB66K.js} +41 -41
  9. package/dist/cli-bundle/chunks/{chunk-3ZMOWAFM.js → chunk-SBRKH6OR.js} +2 -2
  10. package/dist/cli-bundle/chunks/chunk-TMJ7URWS.js +13 -0
  11. package/dist/cli-bundle/chunks/{chunk-F7FJYGK3.js → chunk-TXMEUUUY.js} +2 -2
  12. package/dist/cli-bundle/chunks/{chunk-YLBAPY22.js → chunk-XAVMOK6B.js} +2 -2
  13. package/dist/cli-bundle/chunks/{chunk-TF3TPKPR.js → chunk-YAMTJL6Y.js} +33 -33
  14. package/dist/cli-bundle/chunks/{chunk-IMGIN7R6.js → chunk-YSVSMJ2B.js} +2 -2
  15. package/dist/cli-bundle/chunks/{register-list-query-4HIZ7EA3.js → register-list-query-T3EHHNNV.js} +2 -2
  16. package/dist/cli-bundle/chunks/{register-mutation-W64FZ5HN.js → register-mutation-E27WCLSZ.js} +2 -2
  17. package/dist/cli-bundle/chunks/{register-operations-C44ET7R5.js → register-operations-4R6I7CPY.js} +2 -2
  18. package/dist/cli-bundle/chunks/{register-setup-634MFRXU.js → register-setup-3YXZ444E.js} +2 -2
  19. package/dist/cli-bundle/focused-chunks/{chunk-OOYYKQWX.js → chunk-4DQ2YERC.js} +2 -2
  20. package/dist/cli-bundle/focused-chunks/chunk-F43TT2QQ.js +8 -0
  21. package/dist/cli-bundle/focused-chunks/{chunk-2RI2FESN.js → chunk-K7RWWOAG.js} +2 -2
  22. package/dist/cli-bundle/focused-chunks/chunk-KFSZ3BP6.js +16 -0
  23. package/dist/cli-bundle/focused-chunks/{chunk-3DJSGWVB.js → chunk-KSEDUWVZ.js} +2 -2
  24. package/dist/cli-bundle/focused-chunks/{chunk-NFHFZH2Z.js → chunk-KYUQGTSB.js} +2 -2
  25. package/dist/cli-bundle/focused-chunks/{chunk-IIS2FRKL.js → chunk-LZ4MV3RH.js} +2 -2
  26. package/dist/cli-bundle/focused-chunks/chunk-PGXJQLCT.js +155 -0
  27. package/dist/cli-bundle/focused-chunks/{chunk-E3AVJ655.js → chunk-PPFGQDSI.js} +2 -2
  28. package/dist/cli-bundle/focused-chunks/chunk-Q4YY3XNF.js +2 -0
  29. package/dist/cli-bundle/focused-chunks/chunk-QK753U3U.js +46 -0
  30. package/dist/cli-bundle/focused-chunks/{chunk-QDZUABWL.js → chunk-QUMB2J27.js} +2 -2
  31. package/dist/cli-bundle/focused-chunks/chunk-SM7MTG27.js +2 -0
  32. package/dist/cli-bundle/focused-chunks/{chunk-I75MANL7.js → chunk-WCVE2NIG.js} +2 -2
  33. package/dist/cli-bundle/focused-chunks/chunk-XDNAW5OI.js +18 -0
  34. package/dist/cli-bundle/focused-chunks/{chunk-2JP7W7GO.js → chunk-YOOI3UZX.js} +2 -2
  35. package/dist/cli-bundle/focused-chunks/chunk-ZM6TZVHC.js +2 -0
  36. package/dist/cli-bundle/main.js +13 -13
  37. package/dist/cli-bundle/sdk-authoring.js +1 -1
  38. package/dist/cli-bundle/sdk-contracts.js +1 -1
  39. package/dist/cli-bundle/sdk-core.js +44 -41
  40. package/dist/cli-bundle/sdk-governance.js +1 -1
  41. package/dist/cli-bundle/sdk-graph.js +1 -1
  42. package/dist/cli-bundle/sdk-merge.js +109 -1
  43. package/dist/cli-bundle/sdk-query.js +1 -1
  44. package/dist/cli-bundle/sdk-runtime.js +1 -1
  45. package/dist/cli-bundle/sdk-testing.js +1 -1
  46. package/dist/cli-bundle/sdk.js +2 -2
  47. package/dist/core/history/drift-scan.d.ts +6 -0
  48. package/dist/core/history/drift-scan.js +74 -50
  49. package/dist/core/history/workspace-history.d.ts +59 -0
  50. package/dist/core/history/workspace-history.js +197 -10
  51. package/dist/core/output/output.js +12 -4
  52. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +6 -1
  53. package/dist/sdk/cli-contracts/runtime-contracts.js +155 -60
  54. package/dist/sdk/cli-program.js +3 -3
  55. package/dist/sdk/context-relevance.js +12 -4
  56. package/dist/sdk/governance/assurance.js +4 -4
  57. package/dist/sdk/governance/health.js +15 -3
  58. package/dist/sdk/governance/validate-history-drift.d.ts +7 -0
  59. package/dist/sdk/governance/validate-history-drift.js +68 -0
  60. package/dist/sdk/governance/validate.js +4 -46
  61. package/dist/sdk/graph/assembly.d.ts +23 -0
  62. package/dist/sdk/graph/assembly.js +54 -2
  63. package/dist/sdk/graph/durable-cache.js +50 -20
  64. package/dist/sdk/graph/governance-contracts.d.ts +1 -1
  65. package/dist/sdk/graph/governance-contracts.js +4 -2
  66. package/dist/sdk/graph/governance.d.ts +21 -1
  67. package/dist/sdk/graph/governance.js +94 -32
  68. package/dist/sdk/graph/index.d.ts +2 -2
  69. package/dist/sdk/graph/index.js +4 -4
  70. package/dist/sdk/graph/mutation-advisory.js +15 -7
  71. package/dist/sdk/graph/remediation.js +12 -2
  72. package/dist/sdk/history-read.d.ts +8 -0
  73. package/dist/sdk/history-read.js +2 -2
  74. package/dist/sdk/index.d.ts +1 -1
  75. package/dist/sdk/index.js +3 -3
  76. package/dist/sdk/query/history.js +20 -3
  77. package/dist/sdk/read-output-budget.d.ts +2 -0
  78. package/dist/sdk/read-output-budget.js +12 -5
  79. package/dist/sdk/read-output-contracts.d.ts +61 -5
  80. package/dist/sdk/read-output-contracts.js +210 -28
  81. package/dist/sdk/read-output-rows.d.ts +11 -0
  82. package/dist/sdk/read-output-rows.js +47 -2
  83. package/dist/sdk/runtime-primitives.d.ts +1 -1
  84. package/dist/sdk/runtime-primitives.js +3 -3
  85. package/dist/sdk/runtime.js +5 -3
  86. package/docs/ASSURANCE.md +10 -1
  87. package/docs/COMMANDS.md +31 -2
  88. package/docs/READ_OUTPUT_CONTRACTS.md +44 -8
  89. package/docs/RELATIONSHIP_GRAPH.md +20 -5
  90. package/docs/SDK.md +12 -5
  91. package/docs/SDK_CONTEXT_INTEGRITY.md +32 -1
  92. package/docs/TESTING.md +23 -1
  93. package/docs/performance/sdk-entrypoint-import-costs.md +20 -13
  94. package/marketplace.json +2 -2
  95. package/package.json +6 -6
  96. package/packages/pm-beads/extensions/beads/index.ts +1 -0
  97. package/packages/pm-beads/package.json +1 -1
  98. package/packages/pm-calendar/extensions/calendar/index.ts +1 -0
  99. package/packages/pm-calendar/package.json +1 -1
  100. package/packages/pm-command-kit/package.json +1 -1
  101. package/packages/pm-digital-twin/extensions/digital-twin/index.ts +7 -0
  102. package/packages/pm-digital-twin/package.json +1 -1
  103. package/packages/pm-governance-audit/extensions/governance-audit/index.ts +4 -0
  104. package/packages/pm-governance-audit/package.json +1 -1
  105. package/packages/pm-guide-shell/extensions/guide-shell/index.ts +5 -0
  106. package/packages/pm-guide-shell/package.json +1 -1
  107. package/packages/pm-kanban/package.json +1 -1
  108. package/packages/pm-lifecycle-hooks/package.json +1 -1
  109. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.ts +6 -0
  110. package/packages/pm-linked-test-adapters/package.json +1 -1
  111. package/packages/pm-search-advanced/extensions/search-advanced/index.ts +2 -0
  112. package/packages/pm-search-advanced/package.json +1 -1
  113. package/packages/pm-templates/extensions/templates/index.ts +4 -0
  114. package/packages/pm-templates/package.json +1 -1
  115. package/packages/pm-todos/extensions/todos/index.ts +2 -0
  116. package/packages/pm-todos/package.json +1 -1
  117. package/packages/pm-vcs/extensions/vcs/index.ts +7 -0
  118. package/packages/pm-vcs/package.json +1 -1
  119. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  120. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  121. package/scripts/bundle-cli.mjs +17 -4
  122. package/sdk/public-surface.json +209 -29
  123. package/dist/cli-bundle/chunks/chunk-DL5M5J3V.js +0 -13
  124. package/dist/cli-bundle/chunks/chunk-HIUZVCMN.js +0 -5
  125. package/dist/cli-bundle/focused-chunks/chunk-27N23W6M.js +0 -31
  126. package/dist/cli-bundle/focused-chunks/chunk-3BNVU6LC.js +0 -8
  127. package/dist/cli-bundle/focused-chunks/chunk-6MLIRBLV.js +0 -5
  128. package/dist/cli-bundle/focused-chunks/chunk-6XYLENDV.js +0 -155
  129. package/dist/cli-bundle/focused-chunks/chunk-CP4K4WFS.js +0 -2
  130. package/dist/cli-bundle/focused-chunks/chunk-EBTNSFYE.js +0 -2
  131. package/dist/cli-bundle/focused-chunks/chunk-HC2OL2H2.js +0 -2
  132. package/dist/cli-bundle/focused-chunks/chunk-OGC4XSBC.js +0 -17
  133. package/dist/cli-bundle/focused-chunks/chunk-PKPOZXLL.js +0 -2
  134. package/dist/cli-bundle/focused-chunks/chunk-QQX5TDFT.js +0 -16
  135. package/dist/cli-bundle/focused-chunks/chunk-TEZIXMTH.js +0 -2
  136. package/dist/cli-bundle/focused-chunks/chunk-WEH6NSL6.js +0 -18
@@ -43,6 +43,7 @@ function testRunsCommand(): CommandDefinition {
43
43
  name: "test-runs",
44
44
  action: "test-runs-list",
45
45
  description: "List background linked-test runs.",
46
+ intent: "List recent background linked-test executions.",
46
47
  flags: [
47
48
  {
48
49
  long: "--status",
@@ -69,6 +70,7 @@ function testRunsListCommand(): CommandDefinition {
69
70
  name: "test-runs list",
70
71
  action: "test-runs-list",
71
72
  description: "List background linked-test runs.",
73
+ intent: "List recent background linked-test executions.",
72
74
  flags: [
73
75
  {
74
76
  long: "--status",
@@ -96,6 +98,7 @@ function testRunsStatusCommand(): CommandDefinition {
96
98
  action: "test-runs-status",
97
99
  description:
98
100
  "Show status and health snapshot for a background linked-test run.",
101
+ intent: "Inspect one background linked-test run's status and health.",
99
102
  arguments: [
100
103
  { name: "runId", required: true, description: "Background run id." },
101
104
  ],
@@ -112,6 +115,7 @@ function testRunsLogsCommand(): CommandDefinition {
112
115
  name: "test-runs logs",
113
116
  action: "test-runs-logs",
114
117
  description: "Show tailed logs for a background linked-test run.",
118
+ intent: "Read bounded stdout or stderr from one background test run.",
115
119
  arguments: [
116
120
  { name: "runId", required: true, description: "Background run id." },
117
121
  ],
@@ -143,6 +147,7 @@ function testRunsStopCommand(): CommandDefinition {
143
147
  name: "test-runs stop",
144
148
  action: "test-runs-stop",
145
149
  description: "Stop a running background linked-test run.",
150
+ intent: "Stop one active background linked-test run.",
146
151
  arguments: [
147
152
  { name: "runId", required: true, description: "Background run id." },
148
153
  ],
@@ -168,6 +173,7 @@ function testRunsResumeCommand(): CommandDefinition {
168
173
  action: "test-runs-resume",
169
174
  description:
170
175
  "Resume a terminal background linked-test run by starting a new attempt.",
176
+ intent: "Start a new attempt from one terminal background test run.",
171
177
  arguments: [
172
178
  { name: "runId", required: true, description: "Background run id." },
173
179
  ],
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-linked-test-adapters",
3
- "version": "2026.8.13",
3
+ "version": "2026.8.14",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for optional linked-test run management adapters and reporters.",
@@ -161,6 +161,7 @@ function searchAdvancedCommand(): CommandDefinition {
161
161
  action: "search-advanced",
162
162
  description:
163
163
  "Enable optional semantic and hybrid search modes via package runtime.",
164
+ intent: "Search work with package-provided semantic or hybrid retrieval.",
164
165
  arguments: [
165
166
  {
166
167
  name: "keywords",
@@ -180,6 +181,7 @@ function reindexCommand(): CommandDefinition {
180
181
  action: "reindex",
181
182
  description:
182
183
  "Rebuild search artifacts for keyword, semantic, and hybrid modes.",
184
+ intent: "Refresh search indexes and optionally evaluate retrieval quality.",
183
185
  flags: [...reindexFlags],
184
186
  run: async (context) =>
185
187
  runAdvancedReindexPackage(context.options, context.global),
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-search-advanced",
3
- "version": "2026.8.13",
3
+ "version": "2026.8.14",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for semantic, hybrid, and reindex search workflows.",
@@ -293,6 +293,7 @@ export function activate(api: ExtensionApi): void {
293
293
  name: "templates",
294
294
  action: "templates-list",
295
295
  description: "List saved create templates.",
296
+ intent: "List reusable item-creation templates.",
296
297
  run: async (context) => {
297
298
  assertListInvocation(context.args, context.options, "templates");
298
299
  return runTemplatesListFromRuntime(context.global);
@@ -302,6 +303,7 @@ export function activate(api: ExtensionApi): void {
302
303
  name: "templates list",
303
304
  action: "templates-list",
304
305
  description: "List saved create templates.",
306
+ intent: "List reusable item-creation templates.",
305
307
  run: async (context) => {
306
308
  assertListInvocation(context.args, context.options, "templates list");
307
309
  return runTemplatesListFromRuntime(context.global);
@@ -311,6 +313,7 @@ export function activate(api: ExtensionApi): void {
311
313
  name: "templates save",
312
314
  action: "templates-save",
313
315
  description: "Save reusable create template defaults.",
316
+ intent: "Persist reusable defaults for later item creation.",
314
317
  arguments: [
315
318
  { name: "name", required: true, description: "Template name." },
316
319
  ],
@@ -326,6 +329,7 @@ export function activate(api: ExtensionApi): void {
326
329
  name: "templates show",
327
330
  action: "templates-show",
328
331
  description: "Show a saved create template.",
332
+ intent: "Inspect the defaults stored in one creation template.",
329
333
  arguments: [
330
334
  { name: "name", required: true, description: "Template name." },
331
335
  ],
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-templates",
3
- "version": "2026.8.13",
3
+ "version": "2026.8.14",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for reusable create templates.",
@@ -61,6 +61,7 @@ export function activate(api: ExtensionApi): void {
61
61
  {
62
62
  action: "todos-import",
63
63
  description: "Import Todo markdown files into pm items.",
64
+ intent: "Import Todo markdown into audited pm items.",
64
65
  failure_hints: [
65
66
  "This command reads a directory, not a file. Use --folder <path> to point at the Todo markdown directory.",
66
67
  "Use the host-global --author <id> flag when an explicit mutation identity override is required.",
@@ -91,6 +92,7 @@ export function activate(api: ExtensionApi): void {
91
92
  {
92
93
  action: "todos-export",
93
94
  description: "Export pm items into Todo markdown files.",
95
+ intent: "Export pm items as portable Todo markdown files.",
94
96
  failure_hints: [
95
97
  "This command writes a directory of markdown files. Use --folder <path> to choose the destination directory.",
96
98
  ],
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-todos",
3
- "version": "2026.8.13",
3
+ "version": "2026.8.14",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for Todo markdown import and export.",
@@ -647,6 +647,7 @@ export function buildVcsCommands(): CommandDefinition[] {
647
647
  name: `${VCS_COMMAND_NAMESPACE} ref-create`,
648
648
  action: "vcs-ref-create",
649
649
  description: "Create a VCS ref through the public pm lifecycle SDK.",
650
+ intent: "Create a version-control ref through SDK lifecycle primitives.",
650
651
  arguments: [{ name: "name", required: true, description: "Ref name." }],
651
652
  run: runRefCreate,
652
653
  },
@@ -654,6 +655,7 @@ export function buildVcsCommands(): CommandDefinition[] {
654
655
  name: `${VCS_COMMAND_NAMESPACE} create`,
655
656
  action: "vcs-create",
656
657
  description: "Create a draft changeset.",
658
+ intent: "Create a draft changeset against a version-control ref.",
657
659
  arguments: [
658
660
  { name: "title", required: true, description: "Changeset title." },
659
661
  ],
@@ -678,6 +680,7 @@ export function buildVcsCommands(): CommandDefinition[] {
678
680
  name: `${VCS_COMMAND_NAMESPACE} propose`,
679
681
  action: "vcs-propose",
680
682
  description: "Move a draft changeset into review.",
683
+ intent: "Move a draft changeset into the review lifecycle.",
681
684
  arguments: ID_ARGUMENT,
682
685
  run: (context) => transitionChangeset(context, "proposed"),
683
686
  },
@@ -685,6 +688,7 @@ export function buildVcsCommands(): CommandDefinition[] {
685
688
  name: `${VCS_COMMAND_NAMESPACE} merge`,
686
689
  action: "vcs-merge",
687
690
  description: "Merge a reviewed changeset into a ref.",
691
+ intent: "Merge one reviewed changeset into its target ref.",
688
692
  arguments: ID_ARGUMENT,
689
693
  flags: [
690
694
  {
@@ -706,6 +710,7 @@ export function buildVcsCommands(): CommandDefinition[] {
706
710
  name: `${VCS_COMMAND_NAMESPACE} abandon`,
707
711
  action: "vcs-abandon",
708
712
  description: "Retire a draft or proposed changeset.",
713
+ intent: "Retire one unmerged changeset with an audited transition.",
709
714
  arguments: ID_ARGUMENT,
710
715
  run: (context) => transitionChangeset(context, "abandoned"),
711
716
  },
@@ -713,6 +718,7 @@ export function buildVcsCommands(): CommandDefinition[] {
713
718
  name: `${VCS_COMMAND_NAMESPACE} show`,
714
719
  action: "vcs-show",
715
720
  description: "Read current or point-in-time changeset state.",
721
+ intent: "Inspect current or historical state for one changeset.",
716
722
  arguments: ID_ARGUMENT,
717
723
  flags: [
718
724
  { long: "--at", value_name: "version-or-time", value_type: "string" },
@@ -723,6 +729,7 @@ export function buildVcsCommands(): CommandDefinition[] {
723
729
  name: `${VCS_COMMAND_NAMESPACE} log`,
724
730
  action: "vcs-log",
725
731
  description: "Project the immutable merge relationship stream.",
732
+ intent: "Read the immutable changeset-to-ref merge projection.",
726
733
  run: runVcsLog,
727
734
  },
728
735
  ];
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-vcs-sdk-exemplar",
3
- "version": "2026.8.13",
3
+ "version": "2026.8.14",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "Beyond-PM exemplar: a VCS-style changeset workflow built entirely on public pm SDK and extension primitives.",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pm-claude",
3
3
  "description": "Native pm CLI integration for Claude Code — 28 MCP tools, 5 workflow skills, 14 slash commands, 4 subagents (coordinator, delivery-chain, triage, verification), hybrid TUI task tracking (pm as persistent store + Claude Code task panel as live view), session context injection, and full git-based project management without leaving Claude Code.",
4
- "version": "2026.8.13",
4
+ "version": "2026.8.14",
5
5
  "author": {
6
6
  "name": "unbrained",
7
7
  "url": "https://github.com/unbraind/pm-cli"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-codex",
3
- "version": "2026.8.13",
3
+ "version": "2026.8.14",
4
4
  "description": "Native Codex integration for pm-cli with bundled MCP tools, skills, commands, and agent workflows.",
5
5
  "author": {
6
6
  "name": "unbrained",
@@ -36,9 +36,14 @@ const focusedEntryPoints = {
36
36
  "sdk-core": path.join(repoRoot, "dist", "sdk", "core.js"),
37
37
  "sdk-governance": path.join(repoRoot, "dist", "sdk", "governance.js"),
38
38
  "sdk-graph": path.join(repoRoot, "dist", "sdk", "graph.js"),
39
- "sdk-merge": path.join(repoRoot, "dist", "sdk", "merge.js"),
40
39
  "sdk-query": path.join(repoRoot, "dist", "sdk", "query.js"),
41
40
  };
41
+ // The merge surface is intentionally standalone. Its dependencies overlap with
42
+ // several broader focused entrypoints, so sharing their chunk graph makes a
43
+ // merge-only consumer traverse unrelated focused chunks during module loading.
44
+ const isolatedEntryPoints = {
45
+ "sdk-merge": path.join(repoRoot, "dist", "sdk", "merge.js"),
46
+ };
42
47
  const outputDir = path.join(repoRoot, "dist", "cli-bundle");
43
48
  const lockDir = path.join(repoRoot, "dist", ".cli-bundle-build.lock");
44
49
  const binPath = path.join(repoRoot, "dist", "cli.js");
@@ -188,12 +193,12 @@ export async function writeBundleManifest(outputs) {
188
193
  }
189
194
 
190
195
  /** Build the shared esbuild settings for one isolated entrypoint graph. */
191
- function bundleOptions(selectedEntryPoints, chunkNames) {
196
+ function bundleOptions(selectedEntryPoints, chunkNames, splitting = true) {
192
197
  return {
193
198
  entryPoints: selectedEntryPoints,
194
199
  outdir: outputDir,
195
200
  bundle: true,
196
- splitting: true,
201
+ splitting,
197
202
  format: "esm",
198
203
  platform: "node",
199
204
  target: ["node22"],
@@ -212,7 +217,7 @@ function bundleOptions(selectedEntryPoints, chunkNames) {
212
217
  export async function main() {
213
218
  // Do not delete the live bundle before rebuilding. Agents often run docs,
214
219
  // dogfood, and build gates concurrently in one checkout; removing this folder
215
- // creates a transient broken `dist/cli.js` runtime. Once both new graphs are
220
+ // creates a transient broken `dist/cli.js` runtime. Once all new graphs are
216
221
  // complete under the build lock, obsolete hashed chunks are safe to prune and
217
222
  // must not leak into repeated-build package artifacts.
218
223
  const releaseBundleBuildLock = await acquireBundleBuildLock();
@@ -223,9 +228,17 @@ export async function main() {
223
228
  const focusedBuildResult = await build(
224
229
  bundleOptions(focusedEntryPoints, "focused-chunks/[name]-[hash]"),
225
230
  );
231
+ const isolatedBuildResult = await build(
232
+ bundleOptions(
233
+ isolatedEntryPoints,
234
+ "isolated-chunks/[name]-[hash]",
235
+ false,
236
+ ),
237
+ );
226
238
  const outputs = {
227
239
  ...primaryBuildResult.metafile.outputs,
228
240
  ...focusedBuildResult.metafile.outputs,
241
+ ...isolatedBuildResult.metafile.outputs,
229
242
  };
230
243
  await removeStaleBundleFiles(outputs);
231
244
  await writeBundleManifest(outputs);