@nathapp/nax 0.72.1 → 0.72.2

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 (2) hide show
  1. package/dist/nax.js +344 -342
  2. package/package.json +1 -1
package/dist/nax.js CHANGED
@@ -60813,6 +60813,7 @@ var init_template = __esm(() => {
60813
60813
  });
60814
60814
 
60815
60815
  // src/plugins/builtin/auto-pr/index.ts
60816
+ import * as path16 from "path";
60816
60817
  async function defaultRun(cmd, opts) {
60817
60818
  const proc = Bun.spawn(cmd, { cwd: opts.cwd, stdout: "pipe", stderr: "pipe" });
60818
60819
  const [exitCode, stdout, stderr] = await Promise.all([
@@ -60822,8 +60823,8 @@ async function defaultRun(cmd, opts) {
60822
60823
  ]);
60823
60824
  return { exitCode, stdout, stderr };
60824
60825
  }
60825
- async function defaultReadText(path16) {
60826
- const file3 = Bun.file(path16);
60826
+ async function defaultReadText(path17) {
60827
+ const file3 = Bun.file(path17);
60827
60828
  if (!await file3.exists())
60828
60829
  return null;
60829
60830
  return file3.text();
@@ -60850,13 +60851,19 @@ function getAutoPrConfig(context) {
60850
60851
  function getStorySummary(context) {
60851
60852
  return context.storySummary;
60852
60853
  }
60854
+ function relativePrdPath(workdir, prdPath) {
60855
+ if (!prdPath)
60856
+ return prdPath;
60857
+ const rel = path16.relative(workdir, prdPath);
60858
+ return rel && !rel.startsWith("..") && !path16.isAbsolute(rel) ? rel : prdPath;
60859
+ }
60853
60860
  function toPrBodyContext(context) {
60854
60861
  const summary = getStorySummary(context);
60855
60862
  return {
60856
60863
  feature: context.feature,
60857
60864
  totalCost: context.totalCost,
60858
60865
  totalDurationMs: context.totalDurationMs,
60859
- prdPath: context.prdPath,
60866
+ prdPath: relativePrdPath(context.workdir, context.prdPath),
60860
60867
  storySummary: {
60861
60868
  completed: summary.completed,
60862
60869
  failed: summary.failed,
@@ -61079,7 +61086,7 @@ var init_auto_route = __esm(() => {
61079
61086
  });
61080
61087
 
61081
61088
  // src/plugins/builtin/curator/collect.ts
61082
- import * as path16 from "path";
61089
+ import * as path17 from "path";
61083
61090
  function now() {
61084
61091
  return new Date().toISOString();
61085
61092
  }
@@ -61129,7 +61136,7 @@ function tokenCount(story) {
61129
61136
  }
61130
61137
  async function collectFromMetrics(context) {
61131
61138
  const observations = [];
61132
- const metricsPath = path16.join(context.outputDir, "metrics.json");
61139
+ const metricsPath = path17.join(context.outputDir, "metrics.json");
61133
61140
  try {
61134
61141
  const data = await readJsonFile(metricsPath);
61135
61142
  const runs = Array.isArray(data) ? data : [data];
@@ -61179,11 +61186,11 @@ function findingMessage(finding) {
61179
61186
  }
61180
61187
  async function collectFromReviewAudit(context) {
61181
61188
  const observations = [];
61182
- const auditDir = path16.join(context.outputDir, "review-audit");
61189
+ const auditDir = path17.join(context.outputDir, "review-audit");
61183
61190
  try {
61184
61191
  const glob = new Bun.Glob("**/*.json");
61185
61192
  for await (const file3 of glob.scan({ cwd: auditDir, absolute: false })) {
61186
- const fullPath = path16.join(auditDir, file3);
61193
+ const fullPath = path17.join(auditDir, file3);
61187
61194
  try {
61188
61195
  const audit = asRecord3(await readJsonFile(fullPath));
61189
61196
  if (!audit)
@@ -61223,11 +61230,11 @@ async function collectFromReviewAudit(context) {
61223
61230
  }
61224
61231
  async function collectFromContextManifests(context) {
61225
61232
  const observations = [];
61226
- const featuresDir = path16.join(context.workdir, ".nax", "features");
61233
+ const featuresDir = path17.join(context.workdir, ".nax", "features");
61227
61234
  try {
61228
61235
  const glob = new Bun.Glob("*/stories/*/context-manifest-*.json");
61229
61236
  for await (const file3 of glob.scan({ cwd: featuresDir, absolute: false })) {
61230
- const fullPath = path16.join(featuresDir, file3);
61237
+ const fullPath = path17.join(featuresDir, file3);
61231
61238
  try {
61232
61239
  const parts = file3.split("/");
61233
61240
  const featureId = parts[0] ?? context.feature;
@@ -61780,10 +61787,10 @@ function renderProposals(proposals, runId, observationCount) {
61780
61787
 
61781
61788
  // src/plugins/builtin/curator/rollup.ts
61782
61789
  import { appendFile as appendFile3, mkdir as mkdir9, writeFile } from "fs/promises";
61783
- import * as path17 from "path";
61790
+ import * as path18 from "path";
61784
61791
  async function appendToRollup(observations, rollupPath) {
61785
61792
  try {
61786
- const dir = path17.dirname(rollupPath);
61793
+ const dir = path18.dirname(rollupPath);
61787
61794
  await mkdir9(dir, { recursive: true });
61788
61795
  if (observations.length === 0) {
61789
61796
  const f = Bun.file(rollupPath);
@@ -61802,7 +61809,7 @@ var init_rollup = () => {};
61802
61809
 
61803
61810
  // src/plugins/builtin/curator/index.ts
61804
61811
  import { mkdir as mkdir10 } from "fs/promises";
61805
- import * as path18 from "path";
61812
+ import * as path19 from "path";
61806
61813
  function getCuratorEnabled(context) {
61807
61814
  const cfg = context.config;
61808
61815
  if (!cfg)
@@ -61875,7 +61882,7 @@ var init_curator = __esm(() => {
61875
61882
  const observations = await collectObservations(curatorContext);
61876
61883
  if (context.outputDir) {
61877
61884
  const { observationsPath, rollupPath } = resolveCuratorOutputs(curatorContext);
61878
- const runDir = path18.dirname(observationsPath);
61885
+ const runDir = path19.dirname(observationsPath);
61879
61886
  await mkdir10(runDir, { recursive: true });
61880
61887
  await Bun.write(observationsPath, observations.map((o) => JSON.stringify(o)).join(`
61881
61888
  `) + (observations.length > 0 ? `
@@ -61883,7 +61890,7 @@ var init_curator = __esm(() => {
61883
61890
  const thresholds = getCuratorThresholds(context);
61884
61891
  const proposals = runHeuristics(observations, thresholds);
61885
61892
  const markdown = renderProposals(proposals, context.runId, observations.length);
61886
- const proposalsMdPath = path18.join(runDir, "curator-proposals.md");
61893
+ const proposalsMdPath = path19.join(runDir, "curator-proposals.md");
61887
61894
  await Bun.write(proposalsMdPath, markdown);
61888
61895
  await appendToRollup(observations, rollupPath);
61889
61896
  }
@@ -62256,14 +62263,14 @@ var init_validator = __esm(() => {
62256
62263
 
62257
62264
  // src/plugins/loader.ts
62258
62265
  import * as fs from "fs/promises";
62259
- import * as path19 from "path";
62266
+ import * as path20 from "path";
62260
62267
  function getSafeLogger6() {
62261
62268
  return getSafeLogger();
62262
62269
  }
62263
62270
  function extractPluginName(pluginPath) {
62264
- const basename12 = path19.basename(pluginPath);
62271
+ const basename12 = path20.basename(pluginPath);
62265
62272
  if (basename12 === "index.ts" || basename12 === "index.js" || basename12 === "index.mjs") {
62266
- return path19.basename(path19.dirname(pluginPath));
62273
+ return path20.basename(path20.dirname(pluginPath));
62267
62274
  }
62268
62275
  return basename12.replace(/\.(ts|js|mjs)$/, "");
62269
62276
  }
@@ -62292,11 +62299,6 @@ async function loadPlugins(globalDir, projectDir, configPlugins, projectRoot, di
62292
62299
  const pluginLogger = createPluginLogger(autoPrPlugin.name);
62293
62300
  await autoPrPlugin.setup({}, pluginLogger);
62294
62301
  }
62295
- loadedPlugins.push({
62296
- plugin: autoPrPlugin,
62297
- source: { type: "builtin", path: autoPrPlugin.name }
62298
- });
62299
- pluginNames.add(autoPrPlugin.name);
62300
62302
  const autoPrAction2 = autoPrPlugin.extensions.postRunAction;
62301
62303
  if (autoPrAction2) {
62302
62304
  builtinPostRunActions.push(autoPrAction2);
@@ -62379,7 +62381,7 @@ async function discoverPlugins(dir, isTestFileFn) {
62379
62381
  try {
62380
62382
  const entries = await fs.readdir(dir, { withFileTypes: true });
62381
62383
  for (const entry of entries) {
62382
- const fullPath = path19.join(dir, entry.name);
62384
+ const fullPath = path20.join(dir, entry.name);
62383
62385
  if (entry.isFile()) {
62384
62386
  if (isPluginFile(entry.name, isTestFileFn)) {
62385
62387
  discovered.push({ path: fullPath });
@@ -62387,7 +62389,7 @@ async function discoverPlugins(dir, isTestFileFn) {
62387
62389
  } else if (entry.isDirectory()) {
62388
62390
  const indexPaths = ["index.ts", "index.js", "index.mjs"];
62389
62391
  for (const indexFile of indexPaths) {
62390
- const indexPath = path19.join(fullPath, indexFile);
62392
+ const indexPath = path20.join(fullPath, indexFile);
62391
62393
  try {
62392
62394
  await fs.access(indexPath);
62393
62395
  discovered.push({ path: indexPath });
@@ -62412,13 +62414,13 @@ function isPluginFile(filename, isTestFileFn) {
62412
62414
  return !FALLBACK_TEST_FILE_RE.test(filename);
62413
62415
  }
62414
62416
  function resolveModulePath(modulePath, projectRoot) {
62415
- if (path19.isAbsolute(modulePath) || !modulePath.startsWith("./") && !modulePath.startsWith("../")) {
62417
+ if (path20.isAbsolute(modulePath) || !modulePath.startsWith("./") && !modulePath.startsWith("../")) {
62416
62418
  return modulePath;
62417
62419
  }
62418
62420
  if (projectRoot) {
62419
- return path19.resolve(projectRoot, modulePath);
62421
+ return path20.resolve(projectRoot, modulePath);
62420
62422
  }
62421
- return path19.resolve(modulePath);
62423
+ return path20.resolve(modulePath);
62422
62424
  }
62423
62425
  async function loadAndValidatePlugin(initialModulePath, config2, allowedRoots = [], originalPath) {
62424
62426
  let attemptedPath = initialModulePath;
@@ -62683,7 +62685,7 @@ var package_default;
62683
62685
  var init_package = __esm(() => {
62684
62686
  package_default = {
62685
62687
  name: "@nathapp/nax",
62686
- version: "0.72.1",
62688
+ version: "0.72.2",
62687
62689
  description: "AI Coding Agent Orchestrator \u2014 loops until done",
62688
62690
  type: "module",
62689
62691
  bin: {
@@ -62784,8 +62786,8 @@ var init_version = __esm(() => {
62784
62786
  NAX_VERSION = package_default.version;
62785
62787
  NAX_COMMIT = (() => {
62786
62788
  try {
62787
- if (/^[0-9a-f]{6,10}$/.test("93bff9ab"))
62788
- return "93bff9ab";
62789
+ if (/^[0-9a-f]{6,10}$/.test("8e33dec3"))
62790
+ return "8e33dec3";
62789
62791
  } catch {}
62790
62792
  try {
62791
62793
  const result = Bun.spawnSync(["git", "rev-parse", "--short", "HEAD"], {
@@ -63172,7 +63174,7 @@ async function readSourceFileContent(filePath, workdir) {
63172
63174
  var MAX_SOURCE_FILES = 5, MAX_FILE_LINES2 = 500;
63173
63175
 
63174
63176
  // src/execution/lifecycle/acceptance-helpers.ts
63175
- import path21 from "path";
63177
+ import path22 from "path";
63176
63178
  function isStubTestFile(content) {
63177
63179
  return isStubTestContent(content);
63178
63180
  }
@@ -63191,7 +63193,7 @@ function isTestLevelFailure(failedACs, totalACs, semanticVerdicts) {
63191
63193
  async function loadSpecContent(featureDir) {
63192
63194
  if (!featureDir)
63193
63195
  return "";
63194
- const specPath = path21.join(featureDir, "spec.md");
63196
+ const specPath = path22.join(featureDir, "spec.md");
63195
63197
  const specFile = Bun.file(specPath);
63196
63198
  return await specFile.exists() ? await specFile.text() : "";
63197
63199
  }
@@ -63211,7 +63213,7 @@ async function loadAcceptanceTestContent2(featureDir, testPaths, configuredTestP
63211
63213
  }
63212
63214
  if (!configuredTestPath)
63213
63215
  return [];
63214
- const resolvedPath = path21.join(featureDir, configuredTestPath);
63216
+ const resolvedPath = path22.join(featureDir, configuredTestPath);
63215
63217
  const testFile = Bun.file(resolvedPath);
63216
63218
  const content = await testFile.exists() ? await testFile.text() : "";
63217
63219
  return [{ content, path: resolvedPath }];
@@ -63228,7 +63230,7 @@ async function regenerateAcceptanceTest(testPath, acceptanceContext) {
63228
63230
  const { unlink: unlink3 } = await import("fs/promises");
63229
63231
  await unlink3(testPath);
63230
63232
  if (acceptanceContext.featureDir) {
63231
- const metaPath = path21.join(acceptanceContext.featureDir, "acceptance-meta.json");
63233
+ const metaPath = path22.join(acceptanceContext.featureDir, "acceptance-meta.json");
63232
63234
  try {
63233
63235
  await unlink3(metaPath);
63234
63236
  } catch {}
@@ -63242,7 +63244,7 @@ async function regenerateAcceptanceTest(testPath, acceptanceContext) {
63242
63244
  const changedFilesRaw = diffOutput.split(`
63243
63245
  `).map((f) => f.trim()).filter((f) => f.length > 0);
63244
63246
  const repoRoot = acceptanceContext.projectDir ?? workdir;
63245
- const packageDir = acceptanceContext.story.workdir && acceptanceContext.projectDir ? path21.join(acceptanceContext.projectDir, acceptanceContext.story.workdir) : undefined;
63247
+ const packageDir = acceptanceContext.story.workdir && acceptanceContext.projectDir ? path22.join(acceptanceContext.projectDir, acceptanceContext.story.workdir) : undefined;
63246
63248
  const ignoreMatchers = acceptanceContext.naxIgnoreIndex?.getMatchers(packageDir) ?? await resolveNaxIgnorePatterns(repoRoot, packageDir);
63247
63249
  const changedFiles = filterNaxInternalPaths(changedFilesRaw, ignoreMatchers);
63248
63250
  const MAX_BYTES = 51200;
@@ -63251,7 +63253,7 @@ async function regenerateAcceptanceTest(testPath, acceptanceContext) {
63251
63253
  for (const file3 of changedFiles) {
63252
63254
  if (totalBytes >= MAX_BYTES)
63253
63255
  break;
63254
- const filePath = path21.join(workdir, file3);
63256
+ const filePath = path22.join(workdir, file3);
63255
63257
  try {
63256
63258
  const fileContent = await _regenerateDeps.readFile(filePath);
63257
63259
  const remaining = MAX_BYTES - totalBytes;
@@ -63731,9 +63733,9 @@ var init_scratch_purge = __esm(() => {
63731
63733
  return [];
63732
63734
  }
63733
63735
  },
63734
- fileExists: (path22) => Bun.file(path22).exists(),
63735
- readFile: (path22) => Bun.file(path22).text(),
63736
- remove: (path22) => rm(path22, { recursive: true, force: true }),
63736
+ fileExists: (path23) => Bun.file(path23).exists(),
63737
+ readFile: (path23) => Bun.file(path23).text(),
63738
+ remove: (path23) => rm(path23, { recursive: true, force: true }),
63737
63739
  move: async (src, dest) => {
63738
63740
  await mkdir12(dirname13(dest), { recursive: true });
63739
63741
  await rename(src, dest);
@@ -65733,9 +65735,9 @@ var _quoteIntegrityDeps, CONTEXT_LINES = 3;
65733
65735
  var init_quote_integrity = __esm(() => {
65734
65736
  init_logger2();
65735
65737
  _quoteIntegrityDeps = {
65736
- readFile: async (path24) => {
65738
+ readFile: async (path25) => {
65737
65739
  try {
65738
- return await Bun.file(path24).text();
65740
+ return await Bun.file(path25).text();
65739
65741
  } catch {
65740
65742
  return null;
65741
65743
  }
@@ -66024,7 +66026,7 @@ var exports_merge_conflict_rectify = {};
66024
66026
  __export(exports_merge_conflict_rectify, {
66025
66027
  rectifyConflictedStory: () => rectifyConflictedStory
66026
66028
  });
66027
- import path24 from "path";
66029
+ import path25 from "path";
66028
66030
  async function closeStaleAcpSession(worktreePath, sessionName) {
66029
66031
  const logger = getSafeLogger();
66030
66032
  try {
@@ -66051,7 +66053,7 @@ async function rectifyConflictedStory(options) {
66051
66053
  await worktreeManager.remove(workdir, storyId);
66052
66054
  } catch {}
66053
66055
  await worktreeManager.create(workdir, storyId);
66054
- const worktreePath = path24.join(workdir, ".nax-wt", storyId);
66056
+ const worktreePath = path25.join(workdir, ".nax-wt", storyId);
66055
66057
  const { formatSessionName: formatSessionName2 } = await Promise.resolve().then(() => (init_naming(), exports_naming));
66056
66058
  const staleSessionName = formatSessionName2({
66057
66059
  workdir: worktreePath,
@@ -66735,7 +66737,7 @@ __export(exports_parallel_batch, {
66735
66737
  runParallelBatch: () => runParallelBatch,
66736
66738
  _parallelBatchDeps: () => _parallelBatchDeps
66737
66739
  });
66738
- import path25 from "path";
66740
+ import path26 from "path";
66739
66741
  async function runParallelBatch(options) {
66740
66742
  const { stories, ctx, prd } = options;
66741
66743
  const { workdir, config: config2, maxConcurrency, pipelineContext, eventEmitter, agentGetFn, hooks, pluginRegistry } = ctx;
@@ -66754,9 +66756,9 @@ async function runParallelBatch(options) {
66754
66756
  });
66755
66757
  throw error48;
66756
66758
  }
66757
- worktreePaths.set(story.id, path25.join(workdir, ".nax-wt", story.id));
66759
+ worktreePaths.set(story.id, path26.join(workdir, ".nax-wt", story.id));
66758
66760
  }
66759
- const rootConfigPath = path25.join(workdir, ".nax", "config.json");
66761
+ const rootConfigPath = path26.join(workdir, ".nax", "config.json");
66760
66762
  const profileOverride = profileOverrideFromConfig(config2);
66761
66763
  const storyEffectiveConfigs = new Map;
66762
66764
  const configResults = await Promise.allSettled(stories.filter((story) => story.workdir).map(async (story) => {
@@ -67686,7 +67688,7 @@ __export(exports_migrate, {
67686
67688
  });
67687
67689
  import { existsSync as existsSync36 } from "fs";
67688
67690
  import { mkdir as mkdir16, readdir as readdir6, rename as rename3 } from "fs/promises";
67689
- import path26 from "path";
67691
+ import path27 from "path";
67690
67692
  async function detectGeneratedContent(naxDir) {
67691
67693
  if (!existsSync36(naxDir))
67692
67694
  return [];
@@ -67699,17 +67701,17 @@ async function detectGeneratedContent(naxDir) {
67699
67701
  }
67700
67702
  for (const entry of entries) {
67701
67703
  if (GENERATED_NAMES.has(entry)) {
67702
- candidates.push({ name: entry, srcPath: path26.join(naxDir, entry) });
67704
+ candidates.push({ name: entry, srcPath: path27.join(naxDir, entry) });
67703
67705
  }
67704
67706
  }
67705
- const featuresDir = path26.join(naxDir, "features");
67707
+ const featuresDir = path27.join(naxDir, "features");
67706
67708
  if (existsSync36(featuresDir)) {
67707
67709
  let featureDirs = [];
67708
67710
  try {
67709
67711
  featureDirs = await readdir6(featuresDir);
67710
67712
  } catch {}
67711
67713
  for (const fid of featureDirs) {
67712
- const featureDir = path26.join(featuresDir, fid);
67714
+ const featureDir = path27.join(featuresDir, fid);
67713
67715
  let subEntries = [];
67714
67716
  try {
67715
67717
  subEntries = await readdir6(featureDir);
@@ -67719,12 +67721,12 @@ async function detectGeneratedContent(naxDir) {
67719
67721
  for (const sub of subEntries) {
67720
67722
  if (GENERATED_FEATURE_SUBNAMES.has(sub)) {
67721
67723
  candidates.push({
67722
- name: path26.join("features", fid, sub),
67723
- srcPath: path26.join(featureDir, sub)
67724
+ name: path27.join("features", fid, sub),
67725
+ srcPath: path27.join(featureDir, sub)
67724
67726
  });
67725
67727
  }
67726
67728
  if (sub === "stories") {
67727
- const storiesDir = path26.join(featureDir, "stories");
67729
+ const storiesDir = path27.join(featureDir, "stories");
67728
67730
  let storyDirs = [];
67729
67731
  try {
67730
67732
  storyDirs = await readdir6(storiesDir);
@@ -67732,7 +67734,7 @@ async function detectGeneratedContent(naxDir) {
67732
67734
  continue;
67733
67735
  }
67734
67736
  for (const sid of storyDirs) {
67735
- const storyDir = path26.join(storiesDir, sid);
67737
+ const storyDir = path27.join(storiesDir, sid);
67736
67738
  let storyEntries = [];
67737
67739
  try {
67738
67740
  storyEntries = await readdir6(storyDir);
@@ -67742,8 +67744,8 @@ async function detectGeneratedContent(naxDir) {
67742
67744
  for (const se of storyEntries) {
67743
67745
  if (se.startsWith("context-manifest-") && se.endsWith(".json")) {
67744
67746
  candidates.push({
67745
- name: path26.join("features", fid, "stories", sid, se),
67746
- srcPath: path26.join(storyDir, se)
67747
+ name: path27.join("features", fid, "stories", sid, se),
67748
+ srcPath: path27.join(storyDir, se)
67747
67749
  });
67748
67750
  }
67749
67751
  }
@@ -67764,15 +67766,15 @@ async function migrateCommand(options) {
67764
67766
  name: options.reclaim
67765
67767
  });
67766
67768
  }
67767
- const src = path26.join(globalConfigDir(), options.reclaim);
67769
+ const src = path27.join(globalConfigDir(), options.reclaim);
67768
67770
  if (!existsSync36(src)) {
67769
67771
  throw new NaxError(`Nothing to reclaim: ~/.nax/${options.reclaim} does not exist`, "MIGRATE_RECLAIM_NOT_FOUND", {
67770
67772
  stage: "migrate",
67771
67773
  name: options.reclaim
67772
67774
  });
67773
67775
  }
67774
- const archiveBase = path26.join(globalConfigDir(), "_archive");
67775
- const archiveDest = path26.join(archiveBase, `${options.reclaim}-${Date.now()}`);
67776
+ const archiveBase = path27.join(globalConfigDir(), "_archive");
67777
+ const archiveDest = path27.join(archiveBase, `${options.reclaim}-${Date.now()}`);
67776
67778
  await mkdir16(archiveBase, { recursive: true });
67777
67779
  await rename3(src, archiveDest);
67778
67780
  logger.info("migrate", `Reclaimed: archived to ${archiveDest}`, { storyId: "_migrate" });
@@ -67809,8 +67811,8 @@ async function migrateCommand(options) {
67809
67811
  logger.info("migrate", `Merged: identity for "${options.merge}" updated`, { storyId: "_migrate" });
67810
67812
  return;
67811
67813
  }
67812
- const naxDir = path26.join(options.workdir, ".nax");
67813
- const configPath = path26.join(naxDir, "config.json");
67814
+ const naxDir = path27.join(options.workdir, ".nax");
67815
+ const configPath = path27.join(naxDir, "config.json");
67814
67816
  if (!existsSync36(configPath)) {
67815
67817
  throw new NaxError("No .nax/config.json found \u2014 run nax init first", "MIGRATE_NO_CONFIG", {
67816
67818
  stage: "migrate",
@@ -67826,7 +67828,7 @@ async function migrateCommand(options) {
67826
67828
  cause: e
67827
67829
  });
67828
67830
  }
67829
- const projectKey = config2.name?.trim() || path26.basename(options.workdir);
67831
+ const projectKey = config2.name?.trim() || path27.basename(options.workdir);
67830
67832
  const destBase = projectOutputDir(projectKey, config2.outputDir);
67831
67833
  const candidates = await detectGeneratedContent(naxDir);
67832
67834
  if (candidates.length === 0) {
@@ -67835,7 +67837,7 @@ async function migrateCommand(options) {
67835
67837
  }
67836
67838
  if (options.dryRun) {
67837
67839
  for (const c of candidates) {
67838
- logger.info("migrate", `[dry-run] Would move: ${c.srcPath} -> ${path26.join(destBase, c.name)}`, {
67840
+ logger.info("migrate", `[dry-run] Would move: ${c.srcPath} -> ${path27.join(destBase, c.name)}`, {
67839
67841
  storyId: "_migrate"
67840
67842
  });
67841
67843
  }
@@ -67844,8 +67846,8 @@ async function migrateCommand(options) {
67844
67846
  await mkdir16(destBase, { recursive: true });
67845
67847
  let moved = 0;
67846
67848
  for (const candidate of candidates) {
67847
- const dest = path26.join(destBase, candidate.name);
67848
- await mkdir16(path26.dirname(dest), { recursive: true });
67849
+ const dest = path27.join(destBase, candidate.name);
67850
+ await mkdir16(path27.dirname(dest), { recursive: true });
67849
67851
  if (existsSync36(dest)) {
67850
67852
  throw new NaxError(`Migration conflict: destination already exists.
67851
67853
  Source: ${candidate.srcPath}
@@ -67875,7 +67877,7 @@ async function migrateCommand(options) {
67875
67877
  moved++;
67876
67878
  logger.info("migrate", `Moved: ${candidate.name}`, { storyId: "_migrate" });
67877
67879
  }
67878
- await Bun.write(path26.join(destBase, ".migrated-from"), JSON.stringify({ from: options.workdir, migratedAt: new Date().toISOString() }, null, 2));
67880
+ await Bun.write(path27.join(destBase, ".migrated-from"), JSON.stringify({ from: options.workdir, migratedAt: new Date().toISOString() }, null, 2));
67879
67881
  logger.info("migrate", `Migration complete: ${moved} entries moved`, {
67880
67882
  storyId: "_migrate",
67881
67883
  destBase
@@ -67992,7 +67994,7 @@ __export(exports_precheck_runner, {
67992
67994
  runPrecheckValidation: () => runPrecheckValidation
67993
67995
  });
67994
67996
  import { mkdirSync as mkdirSync7 } from "fs";
67995
- import path27 from "path";
67997
+ import path28 from "path";
67996
67998
  async function runPrecheckValidation(ctx) {
67997
67999
  const logger = getSafeLogger();
67998
68000
  if (process.env.NAX_PRECHECK !== "1") {
@@ -68007,7 +68009,7 @@ async function runPrecheckValidation(ctx) {
68007
68009
  silent: true
68008
68010
  });
68009
68011
  if (ctx.logFilePath) {
68010
- mkdirSync7(path27.dirname(ctx.logFilePath), { recursive: true });
68012
+ mkdirSync7(path28.dirname(ctx.logFilePath), { recursive: true });
68011
68013
  const precheckLog = {
68012
68014
  type: "precheck",
68013
68015
  timestamp: new Date().toISOString(),
@@ -68320,7 +68322,7 @@ __export(exports_run_setup, {
68320
68322
  setupRun: () => setupRun,
68321
68323
  _runSetupDeps: () => _runSetupDeps
68322
68324
  });
68323
- import path28 from "path";
68325
+ import path29 from "path";
68324
68326
  function warnProfileMismatch(prd, config2, logger) {
68325
68327
  const profiles = config2.routing?.agents?.profiles ?? [];
68326
68328
  const profileIds = new Set(profiles.map((p) => p.id));
@@ -68441,7 +68443,7 @@ async function setupRun(options) {
68441
68443
  statusWriter.setPrd(prd);
68442
68444
  {
68443
68445
  const { detectGeneratedContent: detectGeneratedContent2, migrateCommand: migrateCommand2 } = await Promise.resolve().then(() => (init_migrate(), exports_migrate));
68444
- const naxDir = path28.join(workdir, ".nax");
68446
+ const naxDir = path29.join(workdir, ".nax");
68445
68447
  const candidates = await detectGeneratedContent2(naxDir).catch(() => []);
68446
68448
  if (candidates.length > 0) {
68447
68449
  logger?.info("setup", "Found generated content under .nax/ \u2014 migrating to output dir", {
@@ -68468,7 +68470,7 @@ async function setupRun(options) {
68468
68470
  remoteUrl = new TextDecoder().decode(gitResult.stdout).trim() || null;
68469
68471
  }
68470
68472
  } catch {}
68471
- const projectKey = config2.name?.trim() || path28.basename(workdir);
68473
+ const projectKey = config2.name?.trim() || path29.basename(workdir);
68472
68474
  await claimProjectIdentity2(projectKey, workdir, remoteUrl).catch((err) => {
68473
68475
  if (err instanceof NaxError && err.code === "RUN_NAME_COLLISION") {
68474
68476
  throw err;
@@ -68523,8 +68525,8 @@ async function setupRun(options) {
68523
68525
  explicit: Object.fromEntries(explicitFields.map((f) => [f, existingProjectConfig[f]])),
68524
68526
  detected: Object.fromEntries(autodetectedFields.map((f) => [f, detectedProfile[f]]))
68525
68527
  });
68526
- const globalPluginsDir = path28.join(globalConfigDir(), "plugins");
68527
- const projectPluginsDir = path28.join(workdir, ".nax", "plugins");
68528
+ const globalPluginsDir = path29.join(globalConfigDir(), "plugins");
68529
+ const projectPluginsDir = path29.join(workdir, ".nax", "plugins");
68528
68530
  const configPlugins = config2.plugins || [];
68529
68531
  const resolvedPatterns = await resolveTestFilePatterns(config2, workdir);
68530
68532
  const isTestFileFn = (filename) => resolvedPatterns.regex.some((re) => re.test(filename));
@@ -70018,11 +70020,11 @@ var require_react_reconciler_development = __commonJS((exports, module) => {
70018
70020
  fiber = fiber.next, id--;
70019
70021
  return fiber;
70020
70022
  }
70021
- function copyWithSetImpl(obj, path29, index, value) {
70022
- if (index >= path29.length)
70023
+ function copyWithSetImpl(obj, path30, index, value) {
70024
+ if (index >= path30.length)
70023
70025
  return value;
70024
- var key = path29[index], updated = isArrayImpl(obj) ? obj.slice() : assign2({}, obj);
70025
- updated[key] = copyWithSetImpl(obj[key], path29, index + 1, value);
70026
+ var key = path30[index], updated = isArrayImpl(obj) ? obj.slice() : assign2({}, obj);
70027
+ updated[key] = copyWithSetImpl(obj[key], path30, index + 1, value);
70026
70028
  return updated;
70027
70029
  }
70028
70030
  function copyWithRename(obj, oldPath, newPath) {
@@ -70042,11 +70044,11 @@ var require_react_reconciler_development = __commonJS((exports, module) => {
70042
70044
  index + 1 === oldPath.length ? (updated[newPath[index]] = updated[oldKey], isArrayImpl(updated) ? updated.splice(oldKey, 1) : delete updated[oldKey]) : updated[oldKey] = copyWithRenameImpl(obj[oldKey], oldPath, newPath, index + 1);
70043
70045
  return updated;
70044
70046
  }
70045
- function copyWithDeleteImpl(obj, path29, index) {
70046
- var key = path29[index], updated = isArrayImpl(obj) ? obj.slice() : assign2({}, obj);
70047
- if (index + 1 === path29.length)
70047
+ function copyWithDeleteImpl(obj, path30, index) {
70048
+ var key = path30[index], updated = isArrayImpl(obj) ? obj.slice() : assign2({}, obj);
70049
+ if (index + 1 === path30.length)
70048
70050
  return isArrayImpl(updated) ? updated.splice(key, 1) : delete updated[key], updated;
70049
- updated[key] = copyWithDeleteImpl(obj[key], path29, index + 1);
70051
+ updated[key] = copyWithDeleteImpl(obj[key], path30, index + 1);
70050
70052
  return updated;
70051
70053
  }
70052
70054
  function shouldSuspendImpl() {
@@ -80069,29 +80071,29 @@ Check the top-level render call using <` + componentName2 + ">.");
80069
80071
  var didWarnAboutNestedUpdates = false;
80070
80072
  var didWarnAboutFindNodeInStrictMode = {};
80071
80073
  var overrideHookState = null, overrideHookStateDeletePath = null, overrideHookStateRenamePath = null, overrideProps = null, overridePropsDeletePath = null, overridePropsRenamePath = null, scheduleUpdate = null, scheduleRetry = null, setErrorHandler = null, setSuspenseHandler = null;
80072
- overrideHookState = function(fiber, id, path29, value) {
80074
+ overrideHookState = function(fiber, id, path30, value) {
80073
80075
  id = findHook(fiber, id);
80074
- id !== null && (path29 = copyWithSetImpl(id.memoizedState, path29, 0, value), id.memoizedState = path29, id.baseState = path29, fiber.memoizedProps = assign2({}, fiber.memoizedProps), path29 = enqueueConcurrentRenderForLane(fiber, 2), path29 !== null && scheduleUpdateOnFiber(path29, fiber, 2));
80076
+ id !== null && (path30 = copyWithSetImpl(id.memoizedState, path30, 0, value), id.memoizedState = path30, id.baseState = path30, fiber.memoizedProps = assign2({}, fiber.memoizedProps), path30 = enqueueConcurrentRenderForLane(fiber, 2), path30 !== null && scheduleUpdateOnFiber(path30, fiber, 2));
80075
80077
  };
80076
- overrideHookStateDeletePath = function(fiber, id, path29) {
80078
+ overrideHookStateDeletePath = function(fiber, id, path30) {
80077
80079
  id = findHook(fiber, id);
80078
- id !== null && (path29 = copyWithDeleteImpl(id.memoizedState, path29, 0), id.memoizedState = path29, id.baseState = path29, fiber.memoizedProps = assign2({}, fiber.memoizedProps), path29 = enqueueConcurrentRenderForLane(fiber, 2), path29 !== null && scheduleUpdateOnFiber(path29, fiber, 2));
80080
+ id !== null && (path30 = copyWithDeleteImpl(id.memoizedState, path30, 0), id.memoizedState = path30, id.baseState = path30, fiber.memoizedProps = assign2({}, fiber.memoizedProps), path30 = enqueueConcurrentRenderForLane(fiber, 2), path30 !== null && scheduleUpdateOnFiber(path30, fiber, 2));
80079
80081
  };
80080
80082
  overrideHookStateRenamePath = function(fiber, id, oldPath, newPath) {
80081
80083
  id = findHook(fiber, id);
80082
80084
  id !== null && (oldPath = copyWithRename(id.memoizedState, oldPath, newPath), id.memoizedState = oldPath, id.baseState = oldPath, fiber.memoizedProps = assign2({}, fiber.memoizedProps), oldPath = enqueueConcurrentRenderForLane(fiber, 2), oldPath !== null && scheduleUpdateOnFiber(oldPath, fiber, 2));
80083
80085
  };
80084
- overrideProps = function(fiber, path29, value) {
80085
- fiber.pendingProps = copyWithSetImpl(fiber.memoizedProps, path29, 0, value);
80086
+ overrideProps = function(fiber, path30, value) {
80087
+ fiber.pendingProps = copyWithSetImpl(fiber.memoizedProps, path30, 0, value);
80086
80088
  fiber.alternate && (fiber.alternate.pendingProps = fiber.pendingProps);
80087
- path29 = enqueueConcurrentRenderForLane(fiber, 2);
80088
- path29 !== null && scheduleUpdateOnFiber(path29, fiber, 2);
80089
+ path30 = enqueueConcurrentRenderForLane(fiber, 2);
80090
+ path30 !== null && scheduleUpdateOnFiber(path30, fiber, 2);
80089
80091
  };
80090
- overridePropsDeletePath = function(fiber, path29) {
80091
- fiber.pendingProps = copyWithDeleteImpl(fiber.memoizedProps, path29, 0);
80092
+ overridePropsDeletePath = function(fiber, path30) {
80093
+ fiber.pendingProps = copyWithDeleteImpl(fiber.memoizedProps, path30, 0);
80092
80094
  fiber.alternate && (fiber.alternate.pendingProps = fiber.pendingProps);
80093
- path29 = enqueueConcurrentRenderForLane(fiber, 2);
80094
- path29 !== null && scheduleUpdateOnFiber(path29, fiber, 2);
80095
+ path30 = enqueueConcurrentRenderForLane(fiber, 2);
80096
+ path30 !== null && scheduleUpdateOnFiber(path30, fiber, 2);
80095
80097
  };
80096
80098
  overridePropsRenamePath = function(fiber, oldPath, newPath) {
80097
80099
  fiber.pendingProps = copyWithRename(fiber.memoizedProps, oldPath, newPath);
@@ -84146,8 +84148,8 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84146
84148
  }
84147
84149
  return false;
84148
84150
  }
84149
- function utils_getInObject(object2, path29) {
84150
- return path29.reduce(function(reduced, attr) {
84151
+ function utils_getInObject(object2, path30) {
84152
+ return path30.reduce(function(reduced, attr) {
84151
84153
  if (reduced) {
84152
84154
  if (utils_hasOwnProperty.call(reduced, attr)) {
84153
84155
  return reduced[attr];
@@ -84159,11 +84161,11 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84159
84161
  return null;
84160
84162
  }, object2);
84161
84163
  }
84162
- function deletePathInObject(object2, path29) {
84163
- var length = path29.length;
84164
- var last2 = path29[length - 1];
84164
+ function deletePathInObject(object2, path30) {
84165
+ var length = path30.length;
84166
+ var last2 = path30[length - 1];
84165
84167
  if (object2 != null) {
84166
- var parent = utils_getInObject(object2, path29.slice(0, length - 1));
84168
+ var parent = utils_getInObject(object2, path30.slice(0, length - 1));
84167
84169
  if (parent) {
84168
84170
  if (src_isArray(parent)) {
84169
84171
  parent.splice(last2, 1);
@@ -84189,11 +84191,11 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84189
84191
  }
84190
84192
  }
84191
84193
  }
84192
- function utils_setInObject(object2, path29, value) {
84193
- var length = path29.length;
84194
- var last2 = path29[length - 1];
84194
+ function utils_setInObject(object2, path30, value) {
84195
+ var length = path30.length;
84196
+ var last2 = path30[length - 1];
84195
84197
  if (object2 != null) {
84196
- var parent = utils_getInObject(object2, path29.slice(0, length - 1));
84198
+ var parent = utils_getInObject(object2, path30.slice(0, length - 1));
84197
84199
  if (parent) {
84198
84200
  parent[last2] = value;
84199
84201
  }
@@ -84724,8 +84726,8 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84724
84726
  unserializable: Symbol("unserializable")
84725
84727
  };
84726
84728
  var LEVEL_THRESHOLD = 2;
84727
- function createDehydrated(type, inspectable, data, cleaned, path29) {
84728
- cleaned.push(path29);
84729
+ function createDehydrated(type, inspectable, data, cleaned, path30) {
84730
+ cleaned.push(path30);
84729
84731
  var dehydrated = {
84730
84732
  inspectable,
84731
84733
  type,
@@ -84743,13 +84745,13 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84743
84745
  }
84744
84746
  return dehydrated;
84745
84747
  }
84746
- function dehydrate(data, cleaned, unserializable, path29, isPathAllowed) {
84748
+ function dehydrate(data, cleaned, unserializable, path30, isPathAllowed) {
84747
84749
  var level = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
84748
84750
  var type = getDataType(data);
84749
84751
  var isPathAllowedCheck;
84750
84752
  switch (type) {
84751
84753
  case "html_element":
84752
- cleaned.push(path29);
84754
+ cleaned.push(path30);
84753
84755
  return {
84754
84756
  inspectable: false,
84755
84757
  preview_short: formatDataForPreview(data, false),
@@ -84758,7 +84760,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84758
84760
  type
84759
84761
  };
84760
84762
  case "function":
84761
- cleaned.push(path29);
84763
+ cleaned.push(path30);
84762
84764
  return {
84763
84765
  inspectable: false,
84764
84766
  preview_short: formatDataForPreview(data, false),
@@ -84767,14 +84769,14 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84767
84769
  type
84768
84770
  };
84769
84771
  case "string":
84770
- isPathAllowedCheck = isPathAllowed(path29);
84772
+ isPathAllowedCheck = isPathAllowed(path30);
84771
84773
  if (isPathAllowedCheck) {
84772
84774
  return data;
84773
84775
  } else {
84774
84776
  return data.length <= 500 ? data : data.slice(0, 500) + "...";
84775
84777
  }
84776
84778
  case "bigint":
84777
- cleaned.push(path29);
84779
+ cleaned.push(path30);
84778
84780
  return {
84779
84781
  inspectable: false,
84780
84782
  preview_short: formatDataForPreview(data, false),
@@ -84783,7 +84785,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84783
84785
  type
84784
84786
  };
84785
84787
  case "symbol":
84786
- cleaned.push(path29);
84788
+ cleaned.push(path30);
84787
84789
  return {
84788
84790
  inspectable: false,
84789
84791
  preview_short: formatDataForPreview(data, false),
@@ -84792,9 +84794,9 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84792
84794
  type
84793
84795
  };
84794
84796
  case "react_element": {
84795
- isPathAllowedCheck = isPathAllowed(path29);
84797
+ isPathAllowedCheck = isPathAllowed(path30);
84796
84798
  if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {
84797
- cleaned.push(path29);
84799
+ cleaned.push(path30);
84798
84800
  return {
84799
84801
  inspectable: true,
84800
84802
  preview_short: formatDataForPreview(data, false),
@@ -84811,19 +84813,19 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84811
84813
  preview_long: formatDataForPreview(data, true),
84812
84814
  name: getDisplayNameForReactElement(data) || "Unknown"
84813
84815
  };
84814
- unserializableValue.key = dehydrate(data.key, cleaned, unserializable, path29.concat(["key"]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84816
+ unserializableValue.key = dehydrate(data.key, cleaned, unserializable, path30.concat(["key"]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84815
84817
  if (data.$$typeof === REACT_LEGACY_ELEMENT_TYPE) {
84816
- unserializableValue.ref = dehydrate(data.ref, cleaned, unserializable, path29.concat(["ref"]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84818
+ unserializableValue.ref = dehydrate(data.ref, cleaned, unserializable, path30.concat(["ref"]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84817
84819
  }
84818
- unserializableValue.props = dehydrate(data.props, cleaned, unserializable, path29.concat(["props"]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84819
- unserializable.push(path29);
84820
+ unserializableValue.props = dehydrate(data.props, cleaned, unserializable, path30.concat(["props"]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84821
+ unserializable.push(path30);
84820
84822
  return unserializableValue;
84821
84823
  }
84822
84824
  case "react_lazy": {
84823
- isPathAllowedCheck = isPathAllowed(path29);
84825
+ isPathAllowedCheck = isPathAllowed(path30);
84824
84826
  var payload = data._payload;
84825
84827
  if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {
84826
- cleaned.push(path29);
84828
+ cleaned.push(path30);
84827
84829
  var inspectable = payload !== null && hydration_typeof(payload) === "object" && (payload._status === 1 || payload._status === 2 || payload.status === "fulfilled" || payload.status === "rejected");
84828
84830
  return {
84829
84831
  inspectable,
@@ -84840,13 +84842,13 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84840
84842
  preview_long: formatDataForPreview(data, true),
84841
84843
  name: "lazy()"
84842
84844
  };
84843
- _unserializableValue._payload = dehydrate(payload, cleaned, unserializable, path29.concat(["_payload"]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84844
- unserializable.push(path29);
84845
+ _unserializableValue._payload = dehydrate(payload, cleaned, unserializable, path30.concat(["_payload"]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84846
+ unserializable.push(path30);
84845
84847
  return _unserializableValue;
84846
84848
  }
84847
84849
  case "array_buffer":
84848
84850
  case "data_view":
84849
- cleaned.push(path29);
84851
+ cleaned.push(path30);
84850
84852
  return {
84851
84853
  inspectable: false,
84852
84854
  preview_short: formatDataForPreview(data, false),
@@ -84856,21 +84858,21 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84856
84858
  type
84857
84859
  };
84858
84860
  case "array":
84859
- isPathAllowedCheck = isPathAllowed(path29);
84861
+ isPathAllowedCheck = isPathAllowed(path30);
84860
84862
  if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {
84861
- return createDehydrated(type, true, data, cleaned, path29);
84863
+ return createDehydrated(type, true, data, cleaned, path30);
84862
84864
  }
84863
84865
  var arr = [];
84864
84866
  for (var i = 0;i < data.length; i++) {
84865
- arr[i] = dehydrateKey(data, i, cleaned, unserializable, path29.concat([i]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84867
+ arr[i] = dehydrateKey(data, i, cleaned, unserializable, path30.concat([i]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84866
84868
  }
84867
84869
  return arr;
84868
84870
  case "html_all_collection":
84869
84871
  case "typed_array":
84870
84872
  case "iterator":
84871
- isPathAllowedCheck = isPathAllowed(path29);
84873
+ isPathAllowedCheck = isPathAllowed(path30);
84872
84874
  if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {
84873
- return createDehydrated(type, true, data, cleaned, path29);
84875
+ return createDehydrated(type, true, data, cleaned, path30);
84874
84876
  } else {
84875
84877
  var _unserializableValue2 = {
84876
84878
  unserializable: true,
@@ -84882,13 +84884,13 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84882
84884
  name: typeof data.constructor !== "function" || typeof data.constructor.name !== "string" || data.constructor.name === "Object" ? "" : data.constructor.name
84883
84885
  };
84884
84886
  Array.from(data).forEach(function(item, i2) {
84885
- return _unserializableValue2[i2] = dehydrate(item, cleaned, unserializable, path29.concat([i2]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84887
+ return _unserializableValue2[i2] = dehydrate(item, cleaned, unserializable, path30.concat([i2]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84886
84888
  });
84887
- unserializable.push(path29);
84889
+ unserializable.push(path30);
84888
84890
  return _unserializableValue2;
84889
84891
  }
84890
84892
  case "opaque_iterator":
84891
- cleaned.push(path29);
84893
+ cleaned.push(path30);
84892
84894
  return {
84893
84895
  inspectable: false,
84894
84896
  preview_short: formatDataForPreview(data, false),
@@ -84897,7 +84899,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84897
84899
  type
84898
84900
  };
84899
84901
  case "date":
84900
- cleaned.push(path29);
84902
+ cleaned.push(path30);
84901
84903
  return {
84902
84904
  inspectable: false,
84903
84905
  preview_short: formatDataForPreview(data, false),
@@ -84906,7 +84908,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84906
84908
  type
84907
84909
  };
84908
84910
  case "regexp":
84909
- cleaned.push(path29);
84911
+ cleaned.push(path30);
84910
84912
  return {
84911
84913
  inspectable: false,
84912
84914
  preview_short: formatDataForPreview(data, false),
@@ -84915,9 +84917,9 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84915
84917
  type
84916
84918
  };
84917
84919
  case "thenable":
84918
- isPathAllowedCheck = isPathAllowed(path29);
84920
+ isPathAllowedCheck = isPathAllowed(path30);
84919
84921
  if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {
84920
- cleaned.push(path29);
84922
+ cleaned.push(path30);
84921
84923
  return {
84922
84924
  inspectable: data.status === "fulfilled" || data.status === "rejected",
84923
84925
  preview_short: formatDataForPreview(data, false),
@@ -84938,8 +84940,8 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84938
84940
  preview_long: formatDataForPreview(data, true),
84939
84941
  name: "fulfilled Thenable"
84940
84942
  };
84941
- _unserializableValue3.value = dehydrate(data.value, cleaned, unserializable, path29.concat(["value"]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84942
- unserializable.push(path29);
84943
+ _unserializableValue3.value = dehydrate(data.value, cleaned, unserializable, path30.concat(["value"]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84944
+ unserializable.push(path30);
84943
84945
  return _unserializableValue3;
84944
84946
  }
84945
84947
  case "rejected": {
@@ -84950,12 +84952,12 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84950
84952
  preview_long: formatDataForPreview(data, true),
84951
84953
  name: "rejected Thenable"
84952
84954
  };
84953
- _unserializableValue4.reason = dehydrate(data.reason, cleaned, unserializable, path29.concat(["reason"]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84954
- unserializable.push(path29);
84955
+ _unserializableValue4.reason = dehydrate(data.reason, cleaned, unserializable, path30.concat(["reason"]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84956
+ unserializable.push(path30);
84955
84957
  return _unserializableValue4;
84956
84958
  }
84957
84959
  default:
84958
- cleaned.push(path29);
84960
+ cleaned.push(path30);
84959
84961
  return {
84960
84962
  inspectable: false,
84961
84963
  preview_short: formatDataForPreview(data, false),
@@ -84965,21 +84967,21 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84965
84967
  };
84966
84968
  }
84967
84969
  case "object":
84968
- isPathAllowedCheck = isPathAllowed(path29);
84970
+ isPathAllowedCheck = isPathAllowed(path30);
84969
84971
  if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {
84970
- return createDehydrated(type, true, data, cleaned, path29);
84972
+ return createDehydrated(type, true, data, cleaned, path30);
84971
84973
  } else {
84972
84974
  var object2 = {};
84973
84975
  getAllEnumerableKeys(data).forEach(function(key) {
84974
84976
  var name = key.toString();
84975
- object2[name] = dehydrateKey(data, key, cleaned, unserializable, path29.concat([name]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84977
+ object2[name] = dehydrateKey(data, key, cleaned, unserializable, path30.concat([name]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84976
84978
  });
84977
84979
  return object2;
84978
84980
  }
84979
84981
  case "class_instance": {
84980
- isPathAllowedCheck = isPathAllowed(path29);
84982
+ isPathAllowedCheck = isPathAllowed(path30);
84981
84983
  if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {
84982
- return createDehydrated(type, true, data, cleaned, path29);
84984
+ return createDehydrated(type, true, data, cleaned, path30);
84983
84985
  }
84984
84986
  var value = {
84985
84987
  unserializable: true,
@@ -84991,15 +84993,15 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
84991
84993
  };
84992
84994
  getAllEnumerableKeys(data).forEach(function(key) {
84993
84995
  var keyAsString = key.toString();
84994
- value[keyAsString] = dehydrate(data[key], cleaned, unserializable, path29.concat([keyAsString]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84996
+ value[keyAsString] = dehydrate(data[key], cleaned, unserializable, path30.concat([keyAsString]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
84995
84997
  });
84996
- unserializable.push(path29);
84998
+ unserializable.push(path30);
84997
84999
  return value;
84998
85000
  }
84999
85001
  case "error": {
85000
- isPathAllowedCheck = isPathAllowed(path29);
85002
+ isPathAllowedCheck = isPathAllowed(path30);
85001
85003
  if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {
85002
- return createDehydrated(type, true, data, cleaned, path29);
85004
+ return createDehydrated(type, true, data, cleaned, path30);
85003
85005
  }
85004
85006
  var _value = {
85005
85007
  unserializable: true,
@@ -85009,22 +85011,22 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
85009
85011
  preview_long: formatDataForPreview(data, true),
85010
85012
  name: data.name
85011
85013
  };
85012
- _value.message = dehydrate(data.message, cleaned, unserializable, path29.concat(["message"]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
85013
- _value.stack = dehydrate(data.stack, cleaned, unserializable, path29.concat(["stack"]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
85014
+ _value.message = dehydrate(data.message, cleaned, unserializable, path30.concat(["message"]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
85015
+ _value.stack = dehydrate(data.stack, cleaned, unserializable, path30.concat(["stack"]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
85014
85016
  if ("cause" in data) {
85015
- _value.cause = dehydrate(data.cause, cleaned, unserializable, path29.concat(["cause"]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
85017
+ _value.cause = dehydrate(data.cause, cleaned, unserializable, path30.concat(["cause"]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
85016
85018
  }
85017
85019
  getAllEnumerableKeys(data).forEach(function(key) {
85018
85020
  var keyAsString = key.toString();
85019
- _value[keyAsString] = dehydrate(data[key], cleaned, unserializable, path29.concat([keyAsString]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
85021
+ _value[keyAsString] = dehydrate(data[key], cleaned, unserializable, path30.concat([keyAsString]), isPathAllowed, isPathAllowedCheck ? 1 : level + 1);
85020
85022
  });
85021
- unserializable.push(path29);
85023
+ unserializable.push(path30);
85022
85024
  return _value;
85023
85025
  }
85024
85026
  case "infinity":
85025
85027
  case "nan":
85026
85028
  case "undefined":
85027
- cleaned.push(path29);
85029
+ cleaned.push(path30);
85028
85030
  return {
85029
85031
  type
85030
85032
  };
@@ -85032,10 +85034,10 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
85032
85034
  return data;
85033
85035
  }
85034
85036
  }
85035
- function dehydrateKey(parent, key, cleaned, unserializable, path29, isPathAllowed) {
85037
+ function dehydrateKey(parent, key, cleaned, unserializable, path30, isPathAllowed) {
85036
85038
  var level = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 0;
85037
85039
  try {
85038
- return dehydrate(parent[key], cleaned, unserializable, path29, isPathAllowed, level);
85040
+ return dehydrate(parent[key], cleaned, unserializable, path30, isPathAllowed, level);
85039
85041
  } catch (error48) {
85040
85042
  var preview = "";
85041
85043
  if (hydration_typeof(error48) === "object" && error48 !== null && typeof error48.stack === "string") {
@@ -85043,7 +85045,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
85043
85045
  } else if (typeof error48 === "string") {
85044
85046
  preview = error48;
85045
85047
  }
85046
- cleaned.push(path29);
85048
+ cleaned.push(path30);
85047
85049
  return {
85048
85050
  inspectable: false,
85049
85051
  preview_short: "[Exception]",
@@ -85053,8 +85055,8 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
85053
85055
  };
85054
85056
  }
85055
85057
  }
85056
- function fillInPath(object2, data, path29, value) {
85057
- var target = getInObject(object2, path29);
85058
+ function fillInPath(object2, data, path30, value) {
85059
+ var target = getInObject(object2, path30);
85058
85060
  if (target != null) {
85059
85061
  if (!target[meta3.unserializable]) {
85060
85062
  delete target[meta3.inspectable];
@@ -85069,9 +85071,9 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
85069
85071
  }
85070
85072
  if (value !== null && data.unserializable.length > 0) {
85071
85073
  var unserializablePath = data.unserializable[0];
85072
- var isMatch2 = unserializablePath.length === path29.length;
85073
- for (var i = 0;i < path29.length; i++) {
85074
- if (path29[i] !== unserializablePath[i]) {
85074
+ var isMatch2 = unserializablePath.length === path30.length;
85075
+ for (var i = 0;i < path30.length; i++) {
85076
+ if (path30[i] !== unserializablePath[i]) {
85075
85077
  isMatch2 = false;
85076
85078
  break;
85077
85079
  }
@@ -85080,13 +85082,13 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
85080
85082
  upgradeUnserializable(value, value);
85081
85083
  }
85082
85084
  }
85083
- setInObject(object2, path29, value);
85085
+ setInObject(object2, path30, value);
85084
85086
  }
85085
85087
  function hydrate(object2, cleaned, unserializable) {
85086
- cleaned.forEach(function(path29) {
85087
- var length = path29.length;
85088
- var last2 = path29[length - 1];
85089
- var parent = getInObject(object2, path29.slice(0, length - 1));
85088
+ cleaned.forEach(function(path30) {
85089
+ var length = path30.length;
85090
+ var last2 = path30[length - 1];
85091
+ var parent = getInObject(object2, path30.slice(0, length - 1));
85090
85092
  if (!parent || !parent.hasOwnProperty(last2)) {
85091
85093
  return;
85092
85094
  }
@@ -85112,10 +85114,10 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
85112
85114
  parent[last2] = replaced;
85113
85115
  }
85114
85116
  });
85115
- unserializable.forEach(function(path29) {
85116
- var length = path29.length;
85117
- var last2 = path29[length - 1];
85118
- var parent = getInObject(object2, path29.slice(0, length - 1));
85117
+ unserializable.forEach(function(path30) {
85118
+ var length = path30.length;
85119
+ var last2 = path30[length - 1];
85120
+ var parent = getInObject(object2, path30.slice(0, length - 1));
85119
85121
  if (!parent || !parent.hasOwnProperty(last2)) {
85120
85122
  return;
85121
85123
  }
@@ -85236,11 +85238,11 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
85236
85238
  return gte2(version2, FIRST_DEVTOOLS_BACKEND_LOCKSTEP_VER);
85237
85239
  }
85238
85240
  function cleanForBridge(data, isPathAllowed) {
85239
- var path29 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
85241
+ var path30 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
85240
85242
  if (data !== null) {
85241
85243
  var cleanedPaths = [];
85242
85244
  var unserializablePaths = [];
85243
- var cleanedData = dehydrate(data, cleanedPaths, unserializablePaths, path29, isPathAllowed);
85245
+ var cleanedData = dehydrate(data, cleanedPaths, unserializablePaths, path30, isPathAllowed);
85244
85246
  return {
85245
85247
  data: cleanedData,
85246
85248
  cleaned: cleanedPaths,
@@ -85250,18 +85252,18 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
85250
85252
  return null;
85251
85253
  }
85252
85254
  }
85253
- function copyWithDelete(obj, path29) {
85255
+ function copyWithDelete(obj, path30) {
85254
85256
  var index = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
85255
- var key = path29[index];
85257
+ var key = path30[index];
85256
85258
  var updated = shared_isArray(obj) ? obj.slice() : utils_objectSpread({}, obj);
85257
- if (index + 1 === path29.length) {
85259
+ if (index + 1 === path30.length) {
85258
85260
  if (shared_isArray(updated)) {
85259
85261
  updated.splice(key, 1);
85260
85262
  } else {
85261
85263
  delete updated[key];
85262
85264
  }
85263
85265
  } else {
85264
- updated[key] = copyWithDelete(obj[key], path29, index + 1);
85266
+ updated[key] = copyWithDelete(obj[key], path30, index + 1);
85265
85267
  }
85266
85268
  return updated;
85267
85269
  }
@@ -85282,14 +85284,14 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
85282
85284
  }
85283
85285
  return updated;
85284
85286
  }
85285
- function copyWithSet(obj, path29, value) {
85287
+ function copyWithSet(obj, path30, value) {
85286
85288
  var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
85287
- if (index >= path29.length) {
85289
+ if (index >= path30.length) {
85288
85290
  return value;
85289
85291
  }
85290
- var key = path29[index];
85292
+ var key = path30[index];
85291
85293
  var updated = shared_isArray(obj) ? obj.slice() : utils_objectSpread({}, obj);
85292
- updated[key] = copyWithSet(obj[key], path29, value, index + 1);
85294
+ updated[key] = copyWithSet(obj[key], path30, value, index + 1);
85293
85295
  return updated;
85294
85296
  }
85295
85297
  function getEffectDurations(root) {
@@ -86617,12 +86619,12 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
86617
86619
  }
86618
86620
  });
86619
86621
  bridge_defineProperty(_this, "overrideValueAtPath", function(_ref) {
86620
- var { id, path: path29, rendererID, type, value } = _ref;
86622
+ var { id, path: path30, rendererID, type, value } = _ref;
86621
86623
  switch (type) {
86622
86624
  case "context":
86623
86625
  _this.send("overrideContext", {
86624
86626
  id,
86625
- path: path29,
86627
+ path: path30,
86626
86628
  rendererID,
86627
86629
  wasForwarded: true,
86628
86630
  value
@@ -86631,7 +86633,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
86631
86633
  case "hooks":
86632
86634
  _this.send("overrideHookState", {
86633
86635
  id,
86634
- path: path29,
86636
+ path: path30,
86635
86637
  rendererID,
86636
86638
  wasForwarded: true,
86637
86639
  value
@@ -86640,7 +86642,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
86640
86642
  case "props":
86641
86643
  _this.send("overrideProps", {
86642
86644
  id,
86643
- path: path29,
86645
+ path: path30,
86644
86646
  rendererID,
86645
86647
  wasForwarded: true,
86646
86648
  value
@@ -86649,7 +86651,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
86649
86651
  case "state":
86650
86652
  _this.send("overrideState", {
86651
86653
  id,
86652
- path: path29,
86654
+ path: path30,
86653
86655
  rendererID,
86654
86656
  wasForwarded: true,
86655
86657
  value
@@ -86983,12 +86985,12 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
86983
86985
  }
86984
86986
  });
86985
86987
  agent_defineProperty(_this, "copyElementPath", function(_ref5) {
86986
- var { id, path: path29, rendererID } = _ref5;
86988
+ var { id, path: path30, rendererID } = _ref5;
86987
86989
  var renderer = _this._rendererInterfaces[rendererID];
86988
86990
  if (renderer == null) {
86989
86991
  console.warn('Invalid renderer id "'.concat(rendererID, '" for element "').concat(id, '"'));
86990
86992
  } else {
86991
- var value = renderer.getSerializedElementValueByPath(id, path29);
86993
+ var value = renderer.getSerializedElementValueByPath(id, path30);
86992
86994
  if (value != null) {
86993
86995
  _this._bridge.send("saveToClipboard", value);
86994
86996
  } else {
@@ -86997,12 +86999,12 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
86997
86999
  }
86998
87000
  });
86999
87001
  agent_defineProperty(_this, "deletePath", function(_ref6) {
87000
- var { hookID, id, path: path29, rendererID, type } = _ref6;
87002
+ var { hookID, id, path: path30, rendererID, type } = _ref6;
87001
87003
  var renderer = _this._rendererInterfaces[rendererID];
87002
87004
  if (renderer == null) {
87003
87005
  console.warn('Invalid renderer id "'.concat(rendererID, '" for element "').concat(id, '"'));
87004
87006
  } else {
87005
- renderer.deletePath(type, id, hookID, path29);
87007
+ renderer.deletePath(type, id, hookID, path30);
87006
87008
  }
87007
87009
  });
87008
87010
  agent_defineProperty(_this, "getBackendVersion", function() {
@@ -87039,12 +87041,12 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
87039
87041
  }
87040
87042
  });
87041
87043
  agent_defineProperty(_this, "inspectElement", function(_ref9) {
87042
- var { forceFullData, id, path: path29, rendererID, requestID } = _ref9;
87044
+ var { forceFullData, id, path: path30, rendererID, requestID } = _ref9;
87043
87045
  var renderer = _this._rendererInterfaces[rendererID];
87044
87046
  if (renderer == null) {
87045
87047
  console.warn('Invalid renderer id "'.concat(rendererID, '" for element "').concat(id, '"'));
87046
87048
  } else {
87047
- _this._bridge.send("inspectedElement", renderer.inspectElement(requestID, id, path29, forceFullData));
87049
+ _this._bridge.send("inspectedElement", renderer.inspectElement(requestID, id, path30, forceFullData));
87048
87050
  if (_this._persistedSelectionMatch === null || _this._persistedSelectionMatch.id !== id) {
87049
87051
  _this._persistedSelection = null;
87050
87052
  _this._persistedSelectionMatch = null;
@@ -87078,15 +87080,15 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
87078
87080
  }
87079
87081
  for (var rendererID in _this._rendererInterfaces) {
87080
87082
  var renderer = _this._rendererInterfaces[rendererID];
87081
- var path29 = null;
87083
+ var path30 = null;
87082
87084
  if (suspendedByPathIndex !== null && rendererPath !== null) {
87083
87085
  var suspendedByPathRendererIndex = suspendedByPathIndex - suspendedByOffset;
87084
87086
  var rendererHasRequestedSuspendedByPath = renderer.getElementAttributeByPath(id, ["suspendedBy", suspendedByPathRendererIndex]) !== undefined;
87085
87087
  if (rendererHasRequestedSuspendedByPath) {
87086
- path29 = ["suspendedBy", suspendedByPathRendererIndex].concat(rendererPath);
87088
+ path30 = ["suspendedBy", suspendedByPathRendererIndex].concat(rendererPath);
87087
87089
  }
87088
87090
  }
87089
- var inspectedRootsPayload = renderer.inspectElement(requestID, id, path29, forceFullData);
87091
+ var inspectedRootsPayload = renderer.inspectElement(requestID, id, path30, forceFullData);
87090
87092
  switch (inspectedRootsPayload.type) {
87091
87093
  case "hydrated-path":
87092
87094
  inspectedRootsPayload.path[1] += suspendedByOffset;
@@ -87180,20 +87182,20 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
87180
87182
  }
87181
87183
  });
87182
87184
  agent_defineProperty(_this, "overrideValueAtPath", function(_ref15) {
87183
- var { hookID, id, path: path29, rendererID, type, value } = _ref15;
87185
+ var { hookID, id, path: path30, rendererID, type, value } = _ref15;
87184
87186
  var renderer = _this._rendererInterfaces[rendererID];
87185
87187
  if (renderer == null) {
87186
87188
  console.warn('Invalid renderer id "'.concat(rendererID, '" for element "').concat(id, '"'));
87187
87189
  } else {
87188
- renderer.overrideValueAtPath(type, id, hookID, path29, value);
87190
+ renderer.overrideValueAtPath(type, id, hookID, path30, value);
87189
87191
  }
87190
87192
  });
87191
87193
  agent_defineProperty(_this, "overrideContext", function(_ref16) {
87192
- var { id, path: path29, rendererID, wasForwarded, value } = _ref16;
87194
+ var { id, path: path30, rendererID, wasForwarded, value } = _ref16;
87193
87195
  if (!wasForwarded) {
87194
87196
  _this.overrideValueAtPath({
87195
87197
  id,
87196
- path: path29,
87198
+ path: path30,
87197
87199
  rendererID,
87198
87200
  type: "context",
87199
87201
  value
@@ -87201,11 +87203,11 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
87201
87203
  }
87202
87204
  });
87203
87205
  agent_defineProperty(_this, "overrideHookState", function(_ref17) {
87204
- var { id, hookID, path: path29, rendererID, wasForwarded, value } = _ref17;
87206
+ var { id, hookID, path: path30, rendererID, wasForwarded, value } = _ref17;
87205
87207
  if (!wasForwarded) {
87206
87208
  _this.overrideValueAtPath({
87207
87209
  id,
87208
- path: path29,
87210
+ path: path30,
87209
87211
  rendererID,
87210
87212
  type: "hooks",
87211
87213
  value
@@ -87213,11 +87215,11 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
87213
87215
  }
87214
87216
  });
87215
87217
  agent_defineProperty(_this, "overrideProps", function(_ref18) {
87216
- var { id, path: path29, rendererID, wasForwarded, value } = _ref18;
87218
+ var { id, path: path30, rendererID, wasForwarded, value } = _ref18;
87217
87219
  if (!wasForwarded) {
87218
87220
  _this.overrideValueAtPath({
87219
87221
  id,
87220
- path: path29,
87222
+ path: path30,
87221
87223
  rendererID,
87222
87224
  type: "props",
87223
87225
  value
@@ -87225,11 +87227,11 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
87225
87227
  }
87226
87228
  });
87227
87229
  agent_defineProperty(_this, "overrideState", function(_ref19) {
87228
- var { id, path: path29, rendererID, wasForwarded, value } = _ref19;
87230
+ var { id, path: path30, rendererID, wasForwarded, value } = _ref19;
87229
87231
  if (!wasForwarded) {
87230
87232
  _this.overrideValueAtPath({
87231
87233
  id,
87232
- path: path29,
87234
+ path: path30,
87233
87235
  rendererID,
87234
87236
  type: "state",
87235
87237
  value
@@ -87296,12 +87298,12 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
87296
87298
  _this._bridge.send("stopInspectingHost", selected);
87297
87299
  });
87298
87300
  agent_defineProperty(_this, "storeAsGlobal", function(_ref23) {
87299
- var { count, id, path: path29, rendererID } = _ref23;
87301
+ var { count, id, path: path30, rendererID } = _ref23;
87300
87302
  var renderer = _this._rendererInterfaces[rendererID];
87301
87303
  if (renderer == null) {
87302
87304
  console.warn('Invalid renderer id "'.concat(rendererID, '" for element "').concat(id, '"'));
87303
87305
  } else {
87304
- renderer.storeAsGlobal(id, path29, count);
87306
+ renderer.storeAsGlobal(id, path30, count);
87305
87307
  }
87306
87308
  });
87307
87309
  agent_defineProperty(_this, "updateHookSettings", function(settings) {
@@ -87318,12 +87320,12 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
87318
87320
  var rendererID = +rendererIDString;
87319
87321
  var renderer = _this._rendererInterfaces[rendererID];
87320
87322
  if (_this._lastSelectedRendererID === rendererID) {
87321
- var path29 = renderer.getPathForElement(_this._lastSelectedElementID);
87322
- if (path29 !== null) {
87323
- renderer.setTrackedPath(path29);
87323
+ var path30 = renderer.getPathForElement(_this._lastSelectedElementID);
87324
+ if (path30 !== null) {
87325
+ renderer.setTrackedPath(path30);
87324
87326
  _this._persistedSelection = {
87325
87327
  rendererID,
87326
- path: path29
87328
+ path: path30
87327
87329
  };
87328
87330
  }
87329
87331
  }
@@ -87398,11 +87400,11 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
87398
87400
  var rendererID = _this._lastSelectedRendererID;
87399
87401
  var id = _this._lastSelectedElementID;
87400
87402
  var renderer = _this._rendererInterfaces[rendererID];
87401
- var path29 = renderer != null ? renderer.getPathForElement(id) : null;
87402
- if (path29 !== null) {
87403
+ var path30 = renderer != null ? renderer.getPathForElement(id) : null;
87404
+ if (path30 !== null) {
87403
87405
  storage_sessionStorageSetItem(SESSION_STORAGE_LAST_SELECTION_KEY, JSON.stringify({
87404
87406
  rendererID,
87405
- path: path29
87407
+ path: path30
87406
87408
  }));
87407
87409
  } else {
87408
87410
  storage_sessionStorageRemoveItem(SESSION_STORAGE_LAST_SELECTION_KEY);
@@ -88125,7 +88127,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
88125
88127
  hasElementWithId: function hasElementWithId() {
88126
88128
  return false;
88127
88129
  },
88128
- inspectElement: function inspectElement(requestID, id, path29) {
88130
+ inspectElement: function inspectElement(requestID, id, path30) {
88129
88131
  return {
88130
88132
  id,
88131
88133
  responseID: requestID,
@@ -93395,9 +93397,9 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
93395
93397
  }
93396
93398
  return null;
93397
93399
  }
93398
- function getElementAttributeByPath(id, path29) {
93400
+ function getElementAttributeByPath(id, path30) {
93399
93401
  if (isMostRecentlyInspectedElement(id)) {
93400
- return utils_getInObject(mostRecentlyInspectedElement, path29);
93402
+ return utils_getInObject(mostRecentlyInspectedElement, path30);
93401
93403
  }
93402
93404
  return;
93403
93405
  }
@@ -94100,9 +94102,9 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
94100
94102
  function isMostRecentlyInspectedElementCurrent(id) {
94101
94103
  return isMostRecentlyInspectedElement(id) && !hasElementUpdatedSinceLastInspected;
94102
94104
  }
94103
- function mergeInspectedPaths(path29) {
94105
+ function mergeInspectedPaths(path30) {
94104
94106
  var current = currentlyInspectedPaths;
94105
- path29.forEach(function(key) {
94107
+ path30.forEach(function(key) {
94106
94108
  if (!current[key]) {
94107
94109
  current[key] = {};
94108
94110
  }
@@ -94110,21 +94112,21 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
94110
94112
  });
94111
94113
  }
94112
94114
  function createIsPathAllowed(key, secondaryCategory) {
94113
- return function isPathAllowed(path29) {
94115
+ return function isPathAllowed(path30) {
94114
94116
  switch (secondaryCategory) {
94115
94117
  case "hooks":
94116
- if (path29.length === 1) {
94118
+ if (path30.length === 1) {
94117
94119
  return true;
94118
94120
  }
94119
- if (path29[path29.length - 2] === "hookSource" && path29[path29.length - 1] === "fileName") {
94121
+ if (path30[path30.length - 2] === "hookSource" && path30[path30.length - 1] === "fileName") {
94120
94122
  return true;
94121
94123
  }
94122
- if (path29[path29.length - 1] === "subHooks" || path29[path29.length - 2] === "subHooks") {
94124
+ if (path30[path30.length - 1] === "subHooks" || path30[path30.length - 2] === "subHooks") {
94123
94125
  return true;
94124
94126
  }
94125
94127
  break;
94126
94128
  case "suspendedBy":
94127
- if (path29.length < 5) {
94129
+ if (path30.length < 5) {
94128
94130
  return true;
94129
94131
  }
94130
94132
  break;
@@ -94135,8 +94137,8 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
94135
94137
  if (!current) {
94136
94138
  return false;
94137
94139
  }
94138
- for (var i = 0;i < path29.length; i++) {
94139
- current = current[path29[i]];
94140
+ for (var i = 0;i < path30.length; i++) {
94141
+ current = current[path30[i]];
94140
94142
  if (!current) {
94141
94143
  return false;
94142
94144
  }
@@ -94190,38 +94192,38 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
94190
94192
  break;
94191
94193
  }
94192
94194
  }
94193
- function storeAsGlobal(id, path29, count) {
94195
+ function storeAsGlobal(id, path30, count) {
94194
94196
  if (isMostRecentlyInspectedElement(id)) {
94195
- var value = utils_getInObject(mostRecentlyInspectedElement, path29);
94197
+ var value = utils_getInObject(mostRecentlyInspectedElement, path30);
94196
94198
  var key = "$reactTemp".concat(count);
94197
94199
  window[key] = value;
94198
94200
  console.log(key);
94199
94201
  console.log(value);
94200
94202
  }
94201
94203
  }
94202
- function getSerializedElementValueByPath(id, path29) {
94204
+ function getSerializedElementValueByPath(id, path30) {
94203
94205
  if (isMostRecentlyInspectedElement(id)) {
94204
- var valueToCopy = utils_getInObject(mostRecentlyInspectedElement, path29);
94206
+ var valueToCopy = utils_getInObject(mostRecentlyInspectedElement, path30);
94205
94207
  return serializeToString(valueToCopy);
94206
94208
  }
94207
94209
  }
94208
- function inspectElement(requestID, id, path29, forceFullData) {
94209
- if (path29 !== null) {
94210
- mergeInspectedPaths(path29);
94210
+ function inspectElement(requestID, id, path30, forceFullData) {
94211
+ if (path30 !== null) {
94212
+ mergeInspectedPaths(path30);
94211
94213
  }
94212
94214
  if (isMostRecentlyInspectedElement(id) && !forceFullData) {
94213
94215
  if (!hasElementUpdatedSinceLastInspected) {
94214
- if (path29 !== null) {
94216
+ if (path30 !== null) {
94215
94217
  var secondaryCategory = null;
94216
- if (path29[0] === "hooks" || path29[0] === "suspendedBy") {
94217
- secondaryCategory = path29[0];
94218
+ if (path30[0] === "hooks" || path30[0] === "suspendedBy") {
94219
+ secondaryCategory = path30[0];
94218
94220
  }
94219
94221
  return {
94220
94222
  id,
94221
94223
  responseID: requestID,
94222
94224
  type: "hydrated-path",
94223
- path: path29,
94224
- value: cleanForBridge(utils_getInObject(mostRecentlyInspectedElement, path29), createIsPathAllowed(null, secondaryCategory), path29)
94225
+ path: path30,
94226
+ value: cleanForBridge(utils_getInObject(mostRecentlyInspectedElement, path30), createIsPathAllowed(null, secondaryCategory), path30)
94225
94227
  };
94226
94228
  } else {
94227
94229
  return {
@@ -94417,7 +94419,7 @@ The error thrown in the component is:
94417
94419
  console.groupEnd();
94418
94420
  }
94419
94421
  }
94420
- function deletePath(type, id, hookID, path29) {
94422
+ function deletePath(type, id, hookID, path30) {
94421
94423
  var devtoolsInstance = idToDevToolsInstanceMap.get(id);
94422
94424
  if (devtoolsInstance === undefined) {
94423
94425
  console.warn('Could not find DevToolsInstance with id "'.concat(id, '"'));
@@ -94431,11 +94433,11 @@ The error thrown in the component is:
94431
94433
  var instance2 = fiber.stateNode;
94432
94434
  switch (type) {
94433
94435
  case "context":
94434
- path29 = path29.slice(1);
94436
+ path30 = path30.slice(1);
94435
94437
  switch (fiber.tag) {
94436
94438
  case ClassComponent:
94437
- if (path29.length === 0) {} else {
94438
- deletePathInObject(instance2.context, path29);
94439
+ if (path30.length === 0) {} else {
94440
+ deletePathInObject(instance2.context, path30);
94439
94441
  }
94440
94442
  instance2.forceUpdate();
94441
94443
  break;
@@ -94445,21 +94447,21 @@ The error thrown in the component is:
94445
94447
  break;
94446
94448
  case "hooks":
94447
94449
  if (typeof overrideHookStateDeletePath === "function") {
94448
- overrideHookStateDeletePath(fiber, hookID, path29);
94450
+ overrideHookStateDeletePath(fiber, hookID, path30);
94449
94451
  }
94450
94452
  break;
94451
94453
  case "props":
94452
94454
  if (instance2 === null) {
94453
94455
  if (typeof overridePropsDeletePath === "function") {
94454
- overridePropsDeletePath(fiber, path29);
94456
+ overridePropsDeletePath(fiber, path30);
94455
94457
  }
94456
94458
  } else {
94457
- fiber.pendingProps = copyWithDelete(instance2.props, path29);
94459
+ fiber.pendingProps = copyWithDelete(instance2.props, path30);
94458
94460
  instance2.forceUpdate();
94459
94461
  }
94460
94462
  break;
94461
94463
  case "state":
94462
- deletePathInObject(instance2.state, path29);
94464
+ deletePathInObject(instance2.state, path30);
94463
94465
  instance2.forceUpdate();
94464
94466
  break;
94465
94467
  }
@@ -94514,7 +94516,7 @@ The error thrown in the component is:
94514
94516
  }
94515
94517
  }
94516
94518
  }
94517
- function overrideValueAtPath(type, id, hookID, path29, value) {
94519
+ function overrideValueAtPath(type, id, hookID, path30, value) {
94518
94520
  var devtoolsInstance = idToDevToolsInstanceMap.get(id);
94519
94521
  if (devtoolsInstance === undefined) {
94520
94522
  console.warn('Could not find DevToolsInstance with id "'.concat(id, '"'));
@@ -94528,13 +94530,13 @@ The error thrown in the component is:
94528
94530
  var instance2 = fiber.stateNode;
94529
94531
  switch (type) {
94530
94532
  case "context":
94531
- path29 = path29.slice(1);
94533
+ path30 = path30.slice(1);
94532
94534
  switch (fiber.tag) {
94533
94535
  case ClassComponent:
94534
- if (path29.length === 0) {
94536
+ if (path30.length === 0) {
94535
94537
  instance2.context = value;
94536
94538
  } else {
94537
- utils_setInObject(instance2.context, path29, value);
94539
+ utils_setInObject(instance2.context, path30, value);
94538
94540
  }
94539
94541
  instance2.forceUpdate();
94540
94542
  break;
@@ -94544,18 +94546,18 @@ The error thrown in the component is:
94544
94546
  break;
94545
94547
  case "hooks":
94546
94548
  if (typeof overrideHookState === "function") {
94547
- overrideHookState(fiber, hookID, path29, value);
94549
+ overrideHookState(fiber, hookID, path30, value);
94548
94550
  }
94549
94551
  break;
94550
94552
  case "props":
94551
94553
  switch (fiber.tag) {
94552
94554
  case ClassComponent:
94553
- fiber.pendingProps = copyWithSet(instance2.props, path29, value);
94555
+ fiber.pendingProps = copyWithSet(instance2.props, path30, value);
94554
94556
  instance2.forceUpdate();
94555
94557
  break;
94556
94558
  default:
94557
94559
  if (typeof overrideProps === "function") {
94558
- overrideProps(fiber, path29, value);
94560
+ overrideProps(fiber, path30, value);
94559
94561
  }
94560
94562
  break;
94561
94563
  }
@@ -94563,7 +94565,7 @@ The error thrown in the component is:
94563
94565
  case "state":
94564
94566
  switch (fiber.tag) {
94565
94567
  case ClassComponent:
94566
- utils_setInObject(instance2.state, path29, value);
94568
+ utils_setInObject(instance2.state, path30, value);
94567
94569
  instance2.forceUpdate();
94568
94570
  break;
94569
94571
  }
@@ -94849,14 +94851,14 @@ The error thrown in the component is:
94849
94851
  var trackedPathMatchInstance = null;
94850
94852
  var trackedPathMatchDepth = -1;
94851
94853
  var mightBeOnTrackedPath = false;
94852
- function setTrackedPath(path29) {
94853
- if (path29 === null) {
94854
+ function setTrackedPath(path30) {
94855
+ if (path30 === null) {
94854
94856
  trackedPathMatchFiber = null;
94855
94857
  trackedPathMatchInstance = null;
94856
94858
  trackedPathMatchDepth = -1;
94857
94859
  mightBeOnTrackedPath = false;
94858
94860
  }
94859
- trackedPath = path29;
94861
+ trackedPath = path30;
94860
94862
  }
94861
94863
  function updateTrackedPathStateBeforeMount(fiber, fiberInstance) {
94862
94864
  if (trackedPath === null || !mightBeOnTrackedPath) {
@@ -95620,9 +95622,9 @@ The error thrown in the component is:
95620
95622
  }
95621
95623
  var currentlyInspectedElementID = null;
95622
95624
  var currentlyInspectedPaths = {};
95623
- function mergeInspectedPaths(path29) {
95625
+ function mergeInspectedPaths(path30) {
95624
95626
  var current = currentlyInspectedPaths;
95625
- path29.forEach(function(key) {
95627
+ path30.forEach(function(key) {
95626
95628
  if (!current[key]) {
95627
95629
  current[key] = {};
95628
95630
  }
@@ -95630,13 +95632,13 @@ The error thrown in the component is:
95630
95632
  });
95631
95633
  }
95632
95634
  function createIsPathAllowed(key) {
95633
- return function isPathAllowed(path29) {
95635
+ return function isPathAllowed(path30) {
95634
95636
  var current = currentlyInspectedPaths[key];
95635
95637
  if (!current) {
95636
95638
  return false;
95637
95639
  }
95638
- for (var i = 0;i < path29.length; i++) {
95639
- current = current[path29[i]];
95640
+ for (var i = 0;i < path30.length; i++) {
95641
+ current = current[path30[i]];
95640
95642
  if (!current) {
95641
95643
  return false;
95642
95644
  }
@@ -95686,24 +95688,24 @@ The error thrown in the component is:
95686
95688
  break;
95687
95689
  }
95688
95690
  }
95689
- function storeAsGlobal(id, path29, count) {
95691
+ function storeAsGlobal(id, path30, count) {
95690
95692
  var inspectedElement = inspectElementRaw(id);
95691
95693
  if (inspectedElement !== null) {
95692
- var value = utils_getInObject(inspectedElement, path29);
95694
+ var value = utils_getInObject(inspectedElement, path30);
95693
95695
  var key = "$reactTemp".concat(count);
95694
95696
  window[key] = value;
95695
95697
  console.log(key);
95696
95698
  console.log(value);
95697
95699
  }
95698
95700
  }
95699
- function getSerializedElementValueByPath(id, path29) {
95701
+ function getSerializedElementValueByPath(id, path30) {
95700
95702
  var inspectedElement = inspectElementRaw(id);
95701
95703
  if (inspectedElement !== null) {
95702
- var valueToCopy = utils_getInObject(inspectedElement, path29);
95704
+ var valueToCopy = utils_getInObject(inspectedElement, path30);
95703
95705
  return serializeToString(valueToCopy);
95704
95706
  }
95705
95707
  }
95706
- function inspectElement(requestID, id, path29, forceFullData) {
95708
+ function inspectElement(requestID, id, path30, forceFullData) {
95707
95709
  if (forceFullData || currentlyInspectedElementID !== id) {
95708
95710
  currentlyInspectedElementID = id;
95709
95711
  currentlyInspectedPaths = {};
@@ -95716,8 +95718,8 @@ The error thrown in the component is:
95716
95718
  type: "not-found"
95717
95719
  };
95718
95720
  }
95719
- if (path29 !== null) {
95720
- mergeInspectedPaths(path29);
95721
+ if (path30 !== null) {
95722
+ mergeInspectedPaths(path30);
95721
95723
  }
95722
95724
  updateSelectedElement(id);
95723
95725
  inspectedElement.context = cleanForBridge(inspectedElement.context, createIsPathAllowed("context"));
@@ -95920,10 +95922,10 @@ The error thrown in the component is:
95920
95922
  console.groupEnd();
95921
95923
  }
95922
95924
  }
95923
- function getElementAttributeByPath(id, path29) {
95925
+ function getElementAttributeByPath(id, path30) {
95924
95926
  var inspectedElement = inspectElementRaw(id);
95925
95927
  if (inspectedElement !== null) {
95926
- return utils_getInObject(inspectedElement, path29);
95928
+ return utils_getInObject(inspectedElement, path30);
95927
95929
  }
95928
95930
  return;
95929
95931
  }
@@ -95940,14 +95942,14 @@ The error thrown in the component is:
95940
95942
  }
95941
95943
  return element.type;
95942
95944
  }
95943
- function deletePath(type, id, hookID, path29) {
95945
+ function deletePath(type, id, hookID, path30) {
95944
95946
  var internalInstance = idToInternalInstanceMap.get(id);
95945
95947
  if (internalInstance != null) {
95946
95948
  var publicInstance = internalInstance._instance;
95947
95949
  if (publicInstance != null) {
95948
95950
  switch (type) {
95949
95951
  case "context":
95950
- deletePathInObject(publicInstance.context, path29);
95952
+ deletePathInObject(publicInstance.context, path30);
95951
95953
  forceUpdate(publicInstance);
95952
95954
  break;
95953
95955
  case "hooks":
@@ -95955,12 +95957,12 @@ The error thrown in the component is:
95955
95957
  case "props":
95956
95958
  var element = internalInstance._currentElement;
95957
95959
  internalInstance._currentElement = legacy_renderer_objectSpread(legacy_renderer_objectSpread({}, element), {}, {
95958
- props: copyWithDelete(element.props, path29)
95960
+ props: copyWithDelete(element.props, path30)
95959
95961
  });
95960
95962
  forceUpdate(publicInstance);
95961
95963
  break;
95962
95964
  case "state":
95963
- deletePathInObject(publicInstance.state, path29);
95965
+ deletePathInObject(publicInstance.state, path30);
95964
95966
  forceUpdate(publicInstance);
95965
95967
  break;
95966
95968
  }
@@ -95994,14 +95996,14 @@ The error thrown in the component is:
95994
95996
  }
95995
95997
  }
95996
95998
  }
95997
- function overrideValueAtPath(type, id, hookID, path29, value) {
95999
+ function overrideValueAtPath(type, id, hookID, path30, value) {
95998
96000
  var internalInstance = idToInternalInstanceMap.get(id);
95999
96001
  if (internalInstance != null) {
96000
96002
  var publicInstance = internalInstance._instance;
96001
96003
  if (publicInstance != null) {
96002
96004
  switch (type) {
96003
96005
  case "context":
96004
- utils_setInObject(publicInstance.context, path29, value);
96006
+ utils_setInObject(publicInstance.context, path30, value);
96005
96007
  forceUpdate(publicInstance);
96006
96008
  break;
96007
96009
  case "hooks":
@@ -96009,12 +96011,12 @@ The error thrown in the component is:
96009
96011
  case "props":
96010
96012
  var element = internalInstance._currentElement;
96011
96013
  internalInstance._currentElement = legacy_renderer_objectSpread(legacy_renderer_objectSpread({}, element), {}, {
96012
- props: copyWithSet(element.props, path29, value)
96014
+ props: copyWithSet(element.props, path30, value)
96013
96015
  });
96014
96016
  forceUpdate(publicInstance);
96015
96017
  break;
96016
96018
  case "state":
96017
- utils_setInObject(publicInstance.state, path29, value);
96019
+ utils_setInObject(publicInstance.state, path30, value);
96018
96020
  forceUpdate(publicInstance);
96019
96021
  break;
96020
96022
  }
@@ -96055,7 +96057,7 @@ The error thrown in the component is:
96055
96057
  return [];
96056
96058
  }
96057
96059
  function setTraceUpdatesEnabled(enabled) {}
96058
- function setTrackedPath(path29) {}
96060
+ function setTrackedPath(path30) {}
96059
96061
  function getOwnersList(id) {
96060
96062
  return null;
96061
96063
  }
@@ -99740,10 +99742,10 @@ init_setup_write();
99740
99742
  // src/cli/plugins.ts
99741
99743
  init_paths();
99742
99744
  init_loader4();
99743
- import * as path20 from "path";
99745
+ import * as path21 from "path";
99744
99746
  async function pluginsListCommand(config2, workdir, overrideGlobalPluginsDir) {
99745
- const globalPluginsDir = overrideGlobalPluginsDir ?? path20.join(globalConfigDir(), "plugins");
99746
- const projectPluginsDir = path20.join(workdir, ".nax", "plugins");
99747
+ const globalPluginsDir = overrideGlobalPluginsDir ?? path21.join(globalConfigDir(), "plugins");
99748
+ const projectPluginsDir = path21.join(workdir, ".nax", "plugins");
99747
99749
  const configPlugins = config2.plugins || [];
99748
99750
  const registry3 = await loadPlugins(globalPluginsDir, projectPluginsDir, configPlugins, workdir, config2.disabledPlugins);
99749
99751
  const plugins = registry3.plugins;
@@ -99793,10 +99795,10 @@ function formatSource(type, sourcePath) {
99793
99795
  return `built-in (${sourcePath})`;
99794
99796
  }
99795
99797
  if (type === "global") {
99796
- return `global (${path20.basename(sourcePath)})`;
99798
+ return `global (${path21.basename(sourcePath)})`;
99797
99799
  }
99798
99800
  if (type === "project") {
99799
- return `project (${path20.basename(sourcePath)})`;
99801
+ return `project (${path21.basename(sourcePath)})`;
99800
99802
  }
99801
99803
  return `config (${sourcePath})`;
99802
99804
  }
@@ -100189,10 +100191,10 @@ function deepDiffConfigs(global2, project, currentPath = []) {
100189
100191
  for (const key of Object.keys(project)) {
100190
100192
  const projectValue = project[key];
100191
100193
  const globalValue = global2[key];
100192
- const path21 = [...currentPath, key];
100193
- const pathStr = path21.join(".");
100194
+ const path22 = [...currentPath, key];
100195
+ const pathStr = path22.join(".");
100194
100196
  if (projectValue !== null && typeof projectValue === "object" && !Array.isArray(projectValue) && globalValue !== null && typeof globalValue === "object" && !Array.isArray(globalValue)) {
100195
- const nestedDiffs = deepDiffConfigs(globalValue, projectValue, path21);
100197
+ const nestedDiffs = deepDiffConfigs(globalValue, projectValue, path22);
100196
100198
  diffs.push(...nestedDiffs);
100197
100199
  } else {
100198
100200
  if (!deepEqual(projectValue, globalValue)) {
@@ -100235,11 +100237,11 @@ init_defaults();
100235
100237
  init_loader();
100236
100238
  import { existsSync as existsSync25 } from "fs";
100237
100239
  import { join as join68 } from "path";
100238
- async function loadConfigFile(path21) {
100239
- if (!existsSync25(path21))
100240
+ async function loadConfigFile(path22) {
100241
+ if (!existsSync25(path22))
100240
100242
  return null;
100241
100243
  try {
100242
- return await Bun.file(path21).json();
100244
+ return await Bun.file(path22).json();
100243
100245
  } catch {
100244
100246
  return null;
100245
100247
  }
@@ -100286,10 +100288,10 @@ async function configCommand(config2, options = {}) {
100286
100288
  console.log(`${"Field".padEnd(40)}${"Project Value".padEnd(20)}Global Value`);
100287
100289
  console.log("\u2500".repeat(80));
100288
100290
  for (const diff2 of diffs) {
100289
- const path21 = diff2.path.padEnd(40);
100291
+ const path22 = diff2.path.padEnd(40);
100290
100292
  const projectVal = formatValueForTable(diff2.projectValue);
100291
100293
  const globalVal = formatValueForTable(diff2.globalValue);
100292
- console.log(`${path21}${projectVal.padEnd(20)}${globalVal}`);
100294
+ console.log(`${path22}${projectVal.padEnd(20)}${globalVal}`);
100293
100295
  const description = FIELD_DESCRIPTIONS[diff2.path];
100294
100296
  if (description) {
100295
100297
  console.log(`${"".padEnd(40)}\u21B3 ${description}`);
@@ -100322,26 +100324,26 @@ function determineConfigSources() {
100322
100324
  project: projectPath && fileExists(projectPath) ? projectPath : null
100323
100325
  };
100324
100326
  }
100325
- function fileExists(path21) {
100326
- return existsSync26(path21);
100327
+ function fileExists(path22) {
100328
+ return existsSync26(path22);
100327
100329
  }
100328
- function displayConfigWithDescriptions(obj, path21, sources, indent = 0) {
100330
+ function displayConfigWithDescriptions(obj, path22, sources, indent = 0) {
100329
100331
  const indentStr = " ".repeat(indent);
100330
- const pathStr = path21.join(".");
100332
+ const pathStr = path22.join(".");
100331
100333
  if (obj === null || obj === undefined || typeof obj !== "object" || Array.isArray(obj)) {
100332
100334
  const description = FIELD_DESCRIPTIONS[pathStr];
100333
100335
  const value = formatValue(obj);
100334
100336
  if (description) {
100335
100337
  console.log(`${indentStr}# ${description}`);
100336
100338
  }
100337
- const key = path21[path21.length - 1] || "";
100339
+ const key = path22[path22.length - 1] || "";
100338
100340
  console.log(`${indentStr}${key}: ${value}`);
100339
100341
  console.log();
100340
100342
  return;
100341
100343
  }
100342
100344
  const entries = Object.entries(obj);
100343
100345
  const objAsRecord = obj;
100344
- const isPromptsSection = path21.join(".") === "prompts";
100346
+ const isPromptsSection = path22.join(".") === "prompts";
100345
100347
  if (isPromptsSection && !objAsRecord.overrides) {
100346
100348
  const description = FIELD_DESCRIPTIONS["prompts.overrides"];
100347
100349
  if (description) {
@@ -100364,7 +100366,7 @@ function displayConfigWithDescriptions(obj, path21, sources, indent = 0) {
100364
100366
  }
100365
100367
  for (let i = 0;i < entries.length; i++) {
100366
100368
  const [key, value] = entries[i];
100367
- const currentPath = [...path21, key];
100369
+ const currentPath = [...path22, key];
100368
100370
  const currentPathStr = currentPath.join(".");
100369
100371
  const description = FIELD_DESCRIPTIONS[currentPathStr];
100370
100372
  if (description) {
@@ -100676,11 +100678,11 @@ init_errors();
100676
100678
  import { mkdir as mkdir11 } from "fs/promises";
100677
100679
  import { basename as basename13, join as join71 } from "path";
100678
100680
  var _rulesCLIDeps = {
100679
- readFile: async (path21) => Bun.file(path21).text(),
100680
- writeFile: async (path21, content) => {
100681
- await Bun.write(path21, content);
100681
+ readFile: async (path22) => Bun.file(path22).text(),
100682
+ writeFile: async (path22, content) => {
100683
+ await Bun.write(path22, content);
100682
100684
  },
100683
- fileExists: async (path21) => Bun.file(path21).exists(),
100685
+ fileExists: async (path22) => Bun.file(path22).exists(),
100684
100686
  globInDir: (dir) => {
100685
100687
  try {
100686
100688
  return [...new Bun.Glob("*.md").scanSync({ cwd: dir })].sort().map((f) => join71(dir, f));
@@ -100688,8 +100690,8 @@ var _rulesCLIDeps = {
100688
100690
  return [];
100689
100691
  }
100690
100692
  },
100691
- mkdir: async (path21) => {
100692
- await mkdir11(path21, { recursive: true });
100693
+ mkdir: async (path22) => {
100694
+ await mkdir11(path22, { recursive: true });
100693
100695
  },
100694
100696
  globCanonicalRuleFiles: (workdir) => {
100695
100697
  try {
@@ -100862,8 +100864,8 @@ async function resolveRunProfileOverride(opts) {
100862
100864
  return cliChain;
100863
100865
  if (opts.envProfile)
100864
100866
  return;
100865
- const readJson = opts._readJson ?? (async (path21) => {
100866
- const file3 = Bun.file(path21);
100867
+ const readJson = opts._readJson ?? (async (path22) => {
100868
+ const file3 = Bun.file(path22);
100867
100869
  if (!await file3.exists())
100868
100870
  return;
100869
100871
  return file3.json();
@@ -100886,7 +100888,7 @@ async function resolveRunProfileOverride(opts) {
100886
100888
  // src/cli/features-resolve.ts
100887
100889
  init_config();
100888
100890
  import { existsSync as existsSync28, readdirSync as readdirSync6 } from "fs";
100889
- import { join as join73, relative as relative15 } from "path";
100891
+ import { join as join73, relative as relative16 } from "path";
100890
100892
 
100891
100893
  // src/cli/features-acceptance.ts
100892
100894
  init_acceptance2();
@@ -100894,7 +100896,7 @@ init_config();
100894
100896
  init_logger2();
100895
100897
  init_prd();
100896
100898
  import { existsSync as existsSync27 } from "fs";
100897
- import { join as join72, relative as relative14 } from "path";
100899
+ import { join as join72, relative as relative15 } from "path";
100898
100900
  async function resolveFeatureAcceptance(featureName, workdir) {
100899
100901
  let enabled = true;
100900
100902
  try {
@@ -100915,11 +100917,11 @@ async function resolveFeatureAcceptance(featureName, workdir) {
100915
100917
  const prd = await loadPRD(prdPath);
100916
100918
  const testGroups = await groupStoriesByPackage(prd, repoRoot, featureName, config2.acceptance?.testPath, config2.project?.language);
100917
100919
  const groups = await Promise.all(testGroups.map(async (g) => {
100918
- const packageDir = relative14(repoRoot, g.packageDir);
100920
+ const packageDir = relative15(repoRoot, g.packageDir);
100919
100921
  const command = await resolveGroupCommand(repoRoot, packageDir, config2.acceptance?.command);
100920
100922
  return {
100921
100923
  packageDir,
100922
- testPath: relative14(repoRoot, g.testPath),
100924
+ testPath: relative15(repoRoot, g.testPath),
100923
100925
  exists: await Bun.file(g.testPath).exists(),
100924
100926
  command,
100925
100927
  language: g.language
@@ -100955,17 +100957,17 @@ async function searchSpecSource(naxDir, repoRoot, name) {
100955
100957
  ];
100956
100958
  const docsSpecExact = join73(repoRoot, "docs", "specs", `SPEC-${name}.md`);
100957
100959
  candidates.push({ abs: docsSpecExact, kind: "markdown" });
100958
- const checked = candidates.map((c) => relative15(repoRoot, c.abs));
100960
+ const checked = candidates.map((c) => relative16(repoRoot, c.abs));
100959
100961
  for (const { abs, kind } of candidates.slice(0, 2)) {
100960
100962
  if (kind === "markdown") {
100961
100963
  const nonEmpty = await isNonEmptyFile(abs);
100962
100964
  if (nonEmpty) {
100963
- return { source: { kind, path: relative15(repoRoot, abs) }, checked };
100965
+ return { source: { kind, path: relative16(repoRoot, abs) }, checked };
100964
100966
  }
100965
100967
  }
100966
100968
  }
100967
100969
  if (await isNonEmptyFile(docsSpecExact)) {
100968
- return { source: { kind: "markdown", path: relative15(repoRoot, docsSpecExact) }, checked };
100970
+ return { source: { kind: "markdown", path: relative16(repoRoot, docsSpecExact) }, checked };
100969
100971
  }
100970
100972
  const docsSpecsDir = join73(repoRoot, "docs", "specs");
100971
100973
  if (existsSync28(docsSpecsDir)) {
@@ -100973,7 +100975,7 @@ async function searchSpecSource(naxDir, repoRoot, name) {
100973
100975
  for (const match of glob.scanSync({ cwd: docsSpecsDir, absolute: false })) {
100974
100976
  const abs = join73(docsSpecsDir, match);
100975
100977
  if (await isNonEmptyFile(abs)) {
100976
- const relPath = relative15(repoRoot, abs);
100978
+ const relPath = relative16(repoRoot, abs);
100977
100979
  if (!checked.includes(relPath))
100978
100980
  checked.push(relPath);
100979
100981
  return { source: { kind: "markdown", path: relPath }, checked };
@@ -100981,7 +100983,7 @@ async function searchSpecSource(naxDir, repoRoot, name) {
100981
100983
  }
100982
100984
  }
100983
100985
  const prdAbs = join73(naxDir, "features", name, "prd.json");
100984
- const prdRel = relative15(repoRoot, prdAbs);
100986
+ const prdRel = relative16(repoRoot, prdAbs);
100985
100987
  if (!checked.includes(prdRel))
100986
100988
  checked.push(prdRel);
100987
100989
  if (existsSync28(prdAbs)) {
@@ -101033,8 +101035,8 @@ async function resolveFeatureSpec(name, workdir) {
101033
101035
  return {
101034
101036
  status: "ok",
101035
101037
  featureName: null,
101036
- specSource: { kind: "markdown", path: relative15(repoRoot, abs) },
101037
- message: `resolved spec: ${relative15(repoRoot, abs)}`
101038
+ specSource: { kind: "markdown", path: relative16(repoRoot, abs) },
101039
+ message: `resolved spec: ${relative16(repoRoot, abs)}`
101038
101040
  };
101039
101041
  }
101040
101042
  if (name !== undefined && name.trim() !== "") {
@@ -101253,14 +101255,14 @@ function resolveEffective(detected, configPatterns) {
101253
101255
  return "detected";
101254
101256
  return "none";
101255
101257
  }
101256
- async function loadRawConfig(path21) {
101257
- const f = Bun.file(path21);
101258
+ async function loadRawConfig(path22) {
101259
+ const f = Bun.file(path22);
101258
101260
  if (!await f.exists())
101259
101261
  return {};
101260
101262
  return JSON.parse(await f.text());
101261
101263
  }
101262
- async function writeRawConfig(path21, data) {
101263
- await Bun.write(path21, `${JSON.stringify(data, null, 2)}
101264
+ async function writeRawConfig(path22, data) {
101265
+ await Bun.write(path22, `${JSON.stringify(data, null, 2)}
101264
101266
  `);
101265
101267
  }
101266
101268
  function deepSet(obj, keyPath, value) {
@@ -102048,10 +102050,10 @@ function renderReport(timeline, options = {}) {
102048
102050
  }
102049
102051
 
102050
102052
  // src/commands/replay.ts
102051
- async function readJsonlLenient(path21) {
102052
- if (!existsSync32(path21))
102053
+ async function readJsonlLenient(path22) {
102054
+ if (!existsSync32(path22))
102053
102055
  return [];
102054
- const content = await Bun.file(path21).text();
102056
+ const content = await Bun.file(path22).text();
102055
102057
  const lines = content.split(`
102056
102058
  `);
102057
102059
  const entries = [];
@@ -102065,11 +102067,11 @@ async function readJsonlLenient(path21) {
102065
102067
  }
102066
102068
  return entries;
102067
102069
  }
102068
- async function readJsonOrUndefined(path21) {
102069
- if (!existsSync32(path21))
102070
+ async function readJsonOrUndefined(path22) {
102071
+ if (!existsSync32(path22))
102070
102072
  return;
102071
102073
  try {
102072
- return await Bun.file(path21).json();
102074
+ return await Bun.file(path22).json();
102073
102075
  } catch {
102074
102076
  return;
102075
102077
  }
@@ -102359,7 +102361,7 @@ init_prd();
102359
102361
  init_git();
102360
102362
  init_crash_recovery();
102361
102363
  init_story_context();
102362
- import path22 from "path";
102364
+ import path23 from "path";
102363
102365
  var _runnerCompletionDeps = {
102364
102366
  async runAcceptanceLoop(ctx) {
102365
102367
  const { runAcceptanceLoop: runAcceptanceLoop2 } = await Promise.resolve().then(() => (init_acceptance_loop(), exports_acceptance_loop));
@@ -102390,11 +102392,11 @@ async function runCompletionPhase(options) {
102390
102392
  options.statusWriter.setPostRunPhase("acceptance", { status: "running" });
102391
102393
  pipelineEventBus.emit({ type: "postrun:phase:started", phase: "acceptance" });
102392
102394
  const acceptanceTestPaths = options.featureDir ? await Promise.all((await groupStoriesByPackage(options.prd, options.workdir, options.feature, options.config.acceptance.testPath, options.config.project?.language)).map(async (g) => {
102393
- const relativeWorkdir = path22.relative(options.workdir, g.packageDir);
102395
+ const relativeWorkdir = path23.relative(options.workdir, g.packageDir);
102394
102396
  let groupConfig = options.config;
102395
102397
  if (relativeWorkdir && relativeWorkdir !== ".") {
102396
102398
  try {
102397
- groupConfig = await _runnerCompletionDeps.loadConfigForWorkdir(path22.join(options.workdir, ".nax", "config.json"), relativeWorkdir);
102399
+ groupConfig = await _runnerCompletionDeps.loadConfigForWorkdir(path23.join(options.workdir, ".nax", "config.json"), relativeWorkdir);
102398
102400
  } catch (error48) {
102399
102401
  logger?.warn("execution", "Falling back to root config for package acceptance settings", {
102400
102402
  packageDir: g.packageDir,
@@ -102533,7 +102535,7 @@ init_session();
102533
102535
 
102534
102536
  // src/execution/ensure-package-dirs.ts
102535
102537
  init_logger2();
102536
- import path23 from "path";
102538
+ import path24 from "path";
102537
102539
  var _ensurePackageDirsDeps = {
102538
102540
  exists: async (p) => {
102539
102541
  const { stat } = await import("fs/promises");
@@ -102560,8 +102562,8 @@ async function ensureStoryPackageDirs(prd, workdir, deps = _ensurePackageDirsDep
102560
102562
  }
102561
102563
  const created = [];
102562
102564
  for (const [rel, storyId] of relToStoryId) {
102563
- const abs = path23.resolve(workdir, rel);
102564
- const rootWithSep = workdir.endsWith(path23.sep) ? workdir : workdir + path23.sep;
102565
+ const abs = path24.resolve(workdir, rel);
102566
+ const rootWithSep = workdir.endsWith(path24.sep) ? workdir : workdir + path24.sep;
102565
102567
  if (abs !== workdir && !abs.startsWith(rootWithSep)) {
102566
102568
  logger?.warn("execution", "Skipping story workdir outside repo root", {
102567
102569
  storyId,
@@ -103015,9 +103017,9 @@ function parseSchedule(input, now2) {
103015
103017
  const trimmed = input.trim();
103016
103018
  if (trimmed === "")
103017
103019
  return { ok: false, error: `Empty schedule value. ${ACCEPTED}` };
103018
- const relative16 = parseRelative(trimmed, now2);
103019
- if (relative16)
103020
- return relative16;
103020
+ const relative17 = parseRelative(trimmed, now2);
103021
+ if (relative17)
103022
+ return relative17;
103021
103023
  const timeOfDay = parseTimeOfDay(trimmed, now2);
103022
103024
  if (timeOfDay)
103023
103025
  return timeOfDay;
@@ -107848,8 +107850,8 @@ function Text({ color, backgroundColor, dimColor = false, bold = false, italic =
107848
107850
  }
107849
107851
 
107850
107852
  // node_modules/ink/build/components/ErrorOverview.js
107851
- var cleanupPath = (path29) => {
107852
- return path29?.replace(`file://${cwd()}/`, "");
107853
+ var cleanupPath = (path30) => {
107854
+ return path30?.replace(`file://${cwd()}/`, "");
107853
107855
  };
107854
107856
  var stackUtils = new import_stack_utils.default({
107855
107857
  cwd: cwd(),
@@ -111635,8 +111637,8 @@ configProfileCmd.command("current").description("Show the currently active profi
111635
111637
  });
111636
111638
  configProfileCmd.command("create <name>").description("Create a new empty profile").option("-d, --dir <path>", "Project directory", process.cwd()).action(async (name, options) => {
111637
111639
  try {
111638
- const path29 = await profileCreateCommand(name, options.dir);
111639
- console.log(`Created profile at: ${path29}`);
111640
+ const path30 = await profileCreateCommand(name, options.dir);
111641
+ console.log(`Created profile at: ${path30}`);
111640
111642
  } catch (err) {
111641
111643
  console.error(source_default.red(`Error: ${err.message}`));
111642
111644
  process.exit(1);