@agntk/agent-harness 0.1.3 → 0.1.5

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 (123) hide show
  1. package/dist/{agent-framework-K4GUIICH.js → agent-framework-CMFC3VJM.js} +8 -8
  2. package/dist/{auto-processor-OLE45UI3.js → auto-processor-SDAJF67T.js} +3 -3
  3. package/dist/{chunk-XTBKL5BI.js → chunk-2ENYRENZ.js} +2 -2
  4. package/dist/{chunk-UPLBF4RZ.js → chunk-2UVWCTAY.js} +2 -2
  5. package/dist/{chunk-4CWAGBNS.js → chunk-4TQQZILG.js} +73 -3
  6. package/dist/chunk-4TQQZILG.js.map +1 -0
  7. package/dist/{chunk-A7BJPQQ6.js → chunk-5O5OGOOQ.js} +2 -2
  8. package/dist/{chunk-UWQTZMNI.js → chunk-7GZ4D6V6.js} +2 -2
  9. package/dist/{chunk-FLZU44SV.js → chunk-AN6Y4MDD.js} +6 -6
  10. package/dist/{chunk-4FDUOGSZ.js → chunk-D7AWV24Z.js} +3 -3
  11. package/dist/{chunk-CHJ5GNZC.js → chunk-EC42HQQH.js} +2 -2
  12. package/dist/{chunk-274RV3YO.js → chunk-GX2RCSFJ.js} +3 -3
  13. package/dist/{chunk-GJNNR2RA.js → chunk-M6PDMK2O.js} +3 -3
  14. package/dist/{chunk-GUJTBGVS.js → chunk-MSO7DKBK.js} +99 -188
  15. package/dist/chunk-MSO7DKBK.js.map +1 -0
  16. package/dist/{chunk-CSL3ERUI.js → chunk-NBEAK63K.js} +3 -3
  17. package/dist/{chunk-DA7IKHC4.js → chunk-NOJW5KG2.js} +2 -2
  18. package/dist/{chunk-M7NXUK55.js → chunk-NVC2WY4K.js} +2 -2
  19. package/dist/{chunk-YIJY5DBV.js → chunk-P74KXHA4.js} +4 -4
  20. package/dist/{chunk-YUFNYN2H.js → chunk-PTQ37NRI.js} +4 -4
  21. package/dist/{chunk-KFX54TQM.js → chunk-RPBC2QOA.js} +73 -3
  22. package/dist/chunk-RPBC2QOA.js.map +1 -0
  23. package/dist/{chunk-RY3ZFII7.js → chunk-SEHAQTBO.js} +6 -6
  24. package/dist/{chunk-MPZ3BPUI.js → chunk-UMXPOYZR.js} +4 -4
  25. package/dist/{chunk-W4T7PGI2.js → chunk-UXCHAS3Z.js} +4 -4
  26. package/dist/chunk-XVFVTDE6.js +98 -0
  27. package/dist/chunk-XVFVTDE6.js.map +1 -0
  28. package/dist/cli/index.js +105 -104
  29. package/dist/cli/index.js.map +1 -1
  30. package/dist/{config-WVMRUOCA.js → config-2O6S2YJO.js} +3 -3
  31. package/dist/config-LLQZYN2Q.js +11 -0
  32. package/dist/{context-loader-3ORBPMHJ.js → context-loader-XCZ5EXNG.js} +4 -4
  33. package/dist/{conversation-QDEIDQPH.js → conversation-OPLE23IM.js} +6 -6
  34. package/dist/{delegate-VJCJLYEK.js → delegate-ZJCIADNN.js} +7 -7
  35. package/dist/{export-6GCYHEHQ.js → export-2HEAAOUF.js} +3 -3
  36. package/dist/{graph-YUIPOSOO.js → graph-5MKRTC3J.js} +4 -4
  37. package/dist/harness-ABKZWP47.js +11 -0
  38. package/dist/{harness-WE4SLCML.js → harness-XSBQBY7T.js} +8 -8
  39. package/dist/index.d.ts +22 -0
  40. package/dist/index.js +226 -6
  41. package/dist/index.js.map +1 -1
  42. package/dist/{indexer-LONANRRM.js → indexer-YKSGUVYT.js} +4 -4
  43. package/dist/{instinct-learner-SRM72DHF.js → instinct-learner-CWVMLUWX.js} +5 -5
  44. package/dist/{intake-4M3HNU43.js → intake-M5NRR6QR.js} +5 -5
  45. package/dist/{intelligence-HJOCA4SJ.js → intelligence-UW4TCOC7.js} +10 -10
  46. package/dist/{journal-WANJL3MI.js → journal-KN265YLU.js} +5 -5
  47. package/dist/{loader-C3TKIKZR.js → loader-BOCVXVCH.js} +3 -3
  48. package/dist/{mcp-installer-6O2XXD3V.js → mcp-installer-KV3XZRRF.js} +3 -3
  49. package/dist/{primitive-registry-I6VTIR4W.js → primitive-registry-HOJMUFBT.js} +3 -3
  50. package/dist/{rule-engine-YGQ3RYZM.js → rule-engine-I4AFQSSR.js} +3 -3
  51. package/dist/{scaffold-A3VRRCBV.js → scaffold-ZY4XWINP.js} +4 -4
  52. package/dist/{scheduler-XHHIVHRI.js → scheduler-TYOQKO4C.js} +11 -11
  53. package/dist/{search-V3W5JMJG.js → search-4IYM525O.js} +3 -3
  54. package/dist/{semantic-search-2DTOO5UX.js → semantic-search-G624D6CI.js} +3 -3
  55. package/dist/{serve-DTQ3HENY.js → serve-QFUZWOU3.js} +9 -9
  56. package/dist/{telemetry-UC6PBXC7.js → telemetry-MVDNGJEC.js} +4 -4
  57. package/dist/{tool-executor-MJ7IG7PQ.js → tool-executor-KEYQLO4M.js} +5 -5
  58. package/dist/{tools-DZ4KETET.js → tools-EB3BHRRF.js} +4 -4
  59. package/dist/{types-EW7AIB3R.js → types-NYKB2DN3.js} +2 -2
  60. package/dist/{types-WGDLSPO6.js → types-VRSXU4AM.js} +2 -2
  61. package/dist/{universal-installer-EVBDGOWM.js → universal-installer-7MFCJUW7.js} +228 -6
  62. package/dist/universal-installer-7MFCJUW7.js.map +1 -0
  63. package/dist/{validator-7WXMDIHH.js → validator-LZXBFEPV.js} +8 -8
  64. package/dist/{verification-gate-FYXUX6LH.js → verification-gate-ALSJVKSW.js} +3 -3
  65. package/dist/{watcher-ISJC7YKL.js → watcher-CSHVDOCM.js} +5 -5
  66. package/dist/{web-server-DD7ZOP46.js → web-server-7NGOTK7J.js} +8 -8
  67. package/dist/web-server-7NGOTK7J.js.map +1 -0
  68. package/package.json +1 -1
  69. package/dist/chunk-4CWAGBNS.js.map +0 -1
  70. package/dist/chunk-GUJTBGVS.js.map +0 -1
  71. package/dist/chunk-KFX54TQM.js.map +0 -1
  72. package/dist/harness-LCHA3DWP.js +0 -10
  73. package/dist/universal-installer-EVBDGOWM.js.map +0 -1
  74. /package/dist/{agent-framework-K4GUIICH.js.map → agent-framework-CMFC3VJM.js.map} +0 -0
  75. /package/dist/{auto-processor-OLE45UI3.js.map → auto-processor-SDAJF67T.js.map} +0 -0
  76. /package/dist/{chunk-XTBKL5BI.js.map → chunk-2ENYRENZ.js.map} +0 -0
  77. /package/dist/{chunk-UPLBF4RZ.js.map → chunk-2UVWCTAY.js.map} +0 -0
  78. /package/dist/{chunk-A7BJPQQ6.js.map → chunk-5O5OGOOQ.js.map} +0 -0
  79. /package/dist/{chunk-UWQTZMNI.js.map → chunk-7GZ4D6V6.js.map} +0 -0
  80. /package/dist/{chunk-FLZU44SV.js.map → chunk-AN6Y4MDD.js.map} +0 -0
  81. /package/dist/{chunk-4FDUOGSZ.js.map → chunk-D7AWV24Z.js.map} +0 -0
  82. /package/dist/{chunk-CHJ5GNZC.js.map → chunk-EC42HQQH.js.map} +0 -0
  83. /package/dist/{chunk-274RV3YO.js.map → chunk-GX2RCSFJ.js.map} +0 -0
  84. /package/dist/{chunk-GJNNR2RA.js.map → chunk-M6PDMK2O.js.map} +0 -0
  85. /package/dist/{chunk-CSL3ERUI.js.map → chunk-NBEAK63K.js.map} +0 -0
  86. /package/dist/{chunk-DA7IKHC4.js.map → chunk-NOJW5KG2.js.map} +0 -0
  87. /package/dist/{chunk-M7NXUK55.js.map → chunk-NVC2WY4K.js.map} +0 -0
  88. /package/dist/{chunk-YIJY5DBV.js.map → chunk-P74KXHA4.js.map} +0 -0
  89. /package/dist/{chunk-YUFNYN2H.js.map → chunk-PTQ37NRI.js.map} +0 -0
  90. /package/dist/{chunk-RY3ZFII7.js.map → chunk-SEHAQTBO.js.map} +0 -0
  91. /package/dist/{chunk-MPZ3BPUI.js.map → chunk-UMXPOYZR.js.map} +0 -0
  92. /package/dist/{chunk-W4T7PGI2.js.map → chunk-UXCHAS3Z.js.map} +0 -0
  93. /package/dist/{config-WVMRUOCA.js.map → config-2O6S2YJO.js.map} +0 -0
  94. /package/dist/{context-loader-3ORBPMHJ.js.map → config-LLQZYN2Q.js.map} +0 -0
  95. /package/dist/{conversation-QDEIDQPH.js.map → context-loader-XCZ5EXNG.js.map} +0 -0
  96. /package/dist/{delegate-VJCJLYEK.js.map → conversation-OPLE23IM.js.map} +0 -0
  97. /package/dist/{graph-YUIPOSOO.js.map → delegate-ZJCIADNN.js.map} +0 -0
  98. /package/dist/{export-6GCYHEHQ.js.map → export-2HEAAOUF.js.map} +0 -0
  99. /package/dist/{harness-LCHA3DWP.js.map → graph-5MKRTC3J.js.map} +0 -0
  100. /package/dist/{harness-WE4SLCML.js.map → harness-ABKZWP47.js.map} +0 -0
  101. /package/dist/{indexer-LONANRRM.js.map → harness-XSBQBY7T.js.map} +0 -0
  102. /package/dist/{instinct-learner-SRM72DHF.js.map → indexer-YKSGUVYT.js.map} +0 -0
  103. /package/dist/{intake-4M3HNU43.js.map → instinct-learner-CWVMLUWX.js.map} +0 -0
  104. /package/dist/{journal-WANJL3MI.js.map → intake-M5NRR6QR.js.map} +0 -0
  105. /package/dist/{intelligence-HJOCA4SJ.js.map → intelligence-UW4TCOC7.js.map} +0 -0
  106. /package/dist/{loader-C3TKIKZR.js.map → journal-KN265YLU.js.map} +0 -0
  107. /package/dist/{telemetry-UC6PBXC7.js.map → loader-BOCVXVCH.js.map} +0 -0
  108. /package/dist/{mcp-installer-6O2XXD3V.js.map → mcp-installer-KV3XZRRF.js.map} +0 -0
  109. /package/dist/{primitive-registry-I6VTIR4W.js.map → primitive-registry-HOJMUFBT.js.map} +0 -0
  110. /package/dist/{rule-engine-YGQ3RYZM.js.map → rule-engine-I4AFQSSR.js.map} +0 -0
  111. /package/dist/{scaffold-A3VRRCBV.js.map → scaffold-ZY4XWINP.js.map} +0 -0
  112. /package/dist/{scheduler-XHHIVHRI.js.map → scheduler-TYOQKO4C.js.map} +0 -0
  113. /package/dist/{search-V3W5JMJG.js.map → search-4IYM525O.js.map} +0 -0
  114. /package/dist/{semantic-search-2DTOO5UX.js.map → semantic-search-G624D6CI.js.map} +0 -0
  115. /package/dist/{serve-DTQ3HENY.js.map → serve-QFUZWOU3.js.map} +0 -0
  116. /package/dist/{tool-executor-MJ7IG7PQ.js.map → telemetry-MVDNGJEC.js.map} +0 -0
  117. /package/dist/{tools-DZ4KETET.js.map → tool-executor-KEYQLO4M.js.map} +0 -0
  118. /package/dist/{types-EW7AIB3R.js.map → tools-EB3BHRRF.js.map} +0 -0
  119. /package/dist/{types-WGDLSPO6.js.map → types-NYKB2DN3.js.map} +0 -0
  120. /package/dist/{validator-7WXMDIHH.js.map → types-VRSXU4AM.js.map} +0 -0
  121. /package/dist/{web-server-DD7ZOP46.js.map → validator-LZXBFEPV.js.map} +0 -0
  122. /package/dist/{verification-gate-FYXUX6LH.js.map → verification-gate-ALSJVKSW.js.map} +0 -0
  123. /package/dist/{watcher-ISJC7YKL.js.map → watcher-CSHVDOCM.js.map} +0 -0
package/dist/cli/index.js CHANGED
@@ -101,7 +101,7 @@ function askQuestion(rl, question, defaultValue) {
101
101
  });
102
102
  }
103
103
  program.command("init [name]").description("Scaffold a new agent harness directory (interactive if no name given)").option("-d, --dir <path>", "Parent directory", ".").option("-t, --template <name>", "Config template (base, claude-opus, gpt4, local)", "base").option("-p, --purpose <description>", "Agent purpose description").option("-i, --interactive", "Force interactive mode", false).option("--generate", "Generate CORE.md using LLM (requires API key)", false).option("--no-discover-mcp", "Skip MCP server auto-discovery").option("--no-discover-env", "Skip environment variable scanning").option("--no-discover-project", "Skip project context detection").option("-y, --yes", "Accept defaults for all prompts (skip MCP confirmation)", false).action(async (name, opts) => {
104
- const { scaffoldHarness, generateCoreMd, listTemplates } = await import("../scaffold-A3VRRCBV.js");
104
+ const { scaffoldHarness, generateCoreMd, listTemplates } = await import("../scaffold-ZY4XWINP.js");
105
105
  const isInteractive = !name || opts.interactive;
106
106
  let agentName = name ?? "";
107
107
  let purpose = opts.purpose ?? "";
@@ -250,7 +250,7 @@ The agent gets better the more you use it. See README.md inside`);
250
250
  }
251
251
  });
252
252
  program.command("run <prompt>").description("Run a prompt through the agent").option("-d, --dir <path>", "Harness directory", ".").option("-s, --stream", "Stream output", false).option("-m, --model <model>", "Model override (or alias: gemma, qwen, glm, claude)").option("-p, --provider <provider>", "Provider override (openrouter, anthropic, openai)").option("-k, --api-key <key>", "API key override (default: from environment)").action(async (prompt, opts) => {
253
- const { createHarness } = await import("../harness-WE4SLCML.js");
253
+ const { createHarness } = await import("../harness-XSBQBY7T.js");
254
254
  const dir = resolve(opts.dir);
255
255
  loadEnvFromDir(dir);
256
256
  requireHarness(dir);
@@ -291,9 +291,9 @@ program.command("run <prompt>").description("Run a prompt through the agent").op
291
291
  }
292
292
  });
293
293
  program.command("chat").description("Start an interactive chat session with conversation memory").option("-d, --dir <path>", "Harness directory", ".").option("-m, --model <model>", "Model override").option("-p, --provider <provider>", "Provider override (openrouter, anthropic, openai)").option("-k, --api-key <key>", "API key override (default: from environment)").option("--fresh", "Start fresh (clear conversation history)", false).action(async (opts) => {
294
- const { Conversation } = await import("../conversation-QDEIDQPH.js");
295
- const { loadConfig } = await import("../config-WVMRUOCA.js");
296
- const { buildToolSet } = await import("../tool-executor-MJ7IG7PQ.js");
294
+ const { Conversation } = await import("../conversation-OPLE23IM.js");
295
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
296
+ const { buildToolSet } = await import("../tool-executor-KEYQLO4M.js");
297
297
  const { createMcpManager } = await import("../mcp-WTQJJZAO.js");
298
298
  const readline = await import("readline");
299
299
  const dir = resolve(opts.dir);
@@ -392,8 +392,8 @@ ${config.agent.name} is ready. ${history.length > 0 ? `(${history.length} messag
392
392
  ask();
393
393
  });
394
394
  program.command("info").description("Show harness info and loaded context").option("-d, --dir <path>", "Harness directory", ".").option("--json", "Output as JSON").action(async (opts) => {
395
- const { loadConfig } = await import("../config-WVMRUOCA.js");
396
- const { buildSystemPrompt } = await import("../context-loader-3ORBPMHJ.js");
395
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
396
+ const { buildSystemPrompt } = await import("../context-loader-XCZ5EXNG.js");
397
397
  const { loadState } = await import("../state-GMXILIHW.js");
398
398
  const dir = resolve(opts.dir);
399
399
  requireHarness(dir);
@@ -452,8 +452,8 @@ MCP servers: ${mcpEntries.length} configured (${enabledCount} enabled)`);
452
452
  }
453
453
  });
454
454
  program.command("prompt").description("Show the full assembled system prompt").option("-d, --dir <path>", "Harness directory", ".").option("--json", "Output metadata as JSON (includes prompt, budget, warnings)").action(async (opts) => {
455
- const { loadConfig } = await import("../config-WVMRUOCA.js");
456
- const { buildSystemPrompt } = await import("../context-loader-3ORBPMHJ.js");
455
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
456
+ const { buildSystemPrompt } = await import("../context-loader-XCZ5EXNG.js");
457
457
  const dir = resolve(opts.dir);
458
458
  requireHarness(dir);
459
459
  try {
@@ -475,12 +475,12 @@ program.command("prompt").description("Show the full assembled system prompt").o
475
475
  }
476
476
  });
477
477
  program.command("dev").description("Start dev mode \u2014 watches for file changes, rebuilds indexes, runs scheduled workflows, serves dashboard").option("-d, --dir <path>", "Harness directory", ".").option("-k, --api-key <key>", "API key override (default: from environment)").option("--no-schedule", "Disable workflow scheduler").option("--no-auto-process", "Disable auto-processing of primitives on save").option("--no-web", "Disable web dashboard server").option("-p, --port <number>", "Web dashboard port", "3000").action(async (opts) => {
478
- const { loadConfig } = await import("../config-WVMRUOCA.js");
479
- const { rebuildAllIndexes } = await import("../indexer-LONANRRM.js");
480
- const { createWatcher } = await import("../watcher-ISJC7YKL.js");
481
- const { Scheduler } = await import("../scheduler-XHHIVHRI.js");
482
- const { autoProcessAll } = await import("../auto-processor-OLE45UI3.js");
483
- const { generateSystemMd } = await import("../scaffold-A3VRRCBV.js");
478
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
479
+ const { rebuildAllIndexes } = await import("../indexer-YKSGUVYT.js");
480
+ const { createWatcher } = await import("../watcher-CSHVDOCM.js");
481
+ const { Scheduler } = await import("../scheduler-TYOQKO4C.js");
482
+ const { autoProcessAll } = await import("../auto-processor-SDAJF67T.js");
483
+ const { generateSystemMd } = await import("../scaffold-ZY4XWINP.js");
484
484
  const { writeFileSync } = await import("fs");
485
485
  const dir = resolve(opts.dir);
486
486
  loadEnvFromDir(dir);
@@ -548,7 +548,7 @@ program.command("dev").description("Start dev mode \u2014 watches for file chang
548
548
  }
549
549
  let webServer = null;
550
550
  if (opts.web) {
551
- const { startWebServer } = await import("../web-server-DD7ZOP46.js");
551
+ const { startWebServer } = await import("../web-server-7NGOTK7J.js");
552
552
  const port = parseInt(opts.port, 10) || 3e3;
553
553
  webServer = await startWebServer({
554
554
  harnessDir: dir,
@@ -609,8 +609,8 @@ program.command("dev").description("Start dev mode \u2014 watches for file chang
609
609
  process.on("SIGTERM", cleanup);
610
610
  });
611
611
  program.command("index").description("Rebuild all index files").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
612
- const { rebuildAllIndexes } = await import("../indexer-LONANRRM.js");
613
- const { loadConfig } = await import("../config-WVMRUOCA.js");
612
+ const { rebuildAllIndexes } = await import("../indexer-YKSGUVYT.js");
613
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
614
614
  const dir = resolve(opts.dir);
615
615
  let extDirs = [];
616
616
  try {
@@ -623,7 +623,7 @@ program.command("index").description("Rebuild all index files").option("-d, --di
623
623
  console.log(`\u2713 All indexes rebuilt in ${dir}`);
624
624
  });
625
625
  program.command("process").description("Auto-process all primitives: fill missing frontmatter and generate L0/L1 summaries").option("-d, --dir <path>", "Harness directory", ".").option("--no-frontmatter", "Skip frontmatter generation").option("--no-summaries", "Skip L0/L1 summary generation").action(async (opts) => {
626
- const { autoProcessAll } = await import("../auto-processor-OLE45UI3.js");
626
+ const { autoProcessAll } = await import("../auto-processor-SDAJF67T.js");
627
627
  const dir = resolve(opts.dir);
628
628
  requireHarness(dir);
629
629
  const results = autoProcessAll(dir, {
@@ -649,8 +649,8 @@ Processed ${modified} file(s)${errors > 0 ? `, ${errors} error(s)` : ""}`);
649
649
  }
650
650
  });
651
651
  program.command("system").description("Regenerate SYSTEM.md from current directory structure").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
652
- const { loadConfig } = await import("../config-WVMRUOCA.js");
653
- const { generateSystemMd } = await import("../scaffold-A3VRRCBV.js");
652
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
653
+ const { generateSystemMd } = await import("../scaffold-ZY4XWINP.js");
654
654
  const { writeFileSync } = await import("fs");
655
655
  const dir = resolve(opts.dir);
656
656
  requireHarness(dir);
@@ -665,7 +665,7 @@ program.command("journal").description("Synthesize sessions into journal entries
665
665
  loadEnvFromDir(dir);
666
666
  requireHarness(dir);
667
667
  if (opts.pending) {
668
- const { listUnjournaled } = await import("../journal-WANJL3MI.js");
668
+ const { listUnjournaled } = await import("../journal-KN265YLU.js");
669
669
  const dates = listUnjournaled(dir);
670
670
  if (dates.length === 0) {
671
671
  console.log("All sessions have been journaled.");
@@ -681,7 +681,7 @@ Run "harness journal --all" to synthesize them.
681
681
  return;
682
682
  }
683
683
  if (opts.from || opts.all) {
684
- const { synthesizeJournalRange } = await import("../journal-WANJL3MI.js");
684
+ const { synthesizeJournalRange } = await import("../journal-KN265YLU.js");
685
685
  try {
686
686
  const label = opts.all ? "all dates" : `${opts.from}${opts.to ? ` to ${opts.to}` : " to today"}`;
687
687
  console.log(`Synthesizing journals for ${label}${opts.force ? " (force)" : ""}...`);
@@ -705,7 +705,7 @@ Run "harness journal --all" to synthesize them.
705
705
  }
706
706
  console.log();
707
707
  if (opts.autoHarvest) {
708
- const { harvestInstincts } = await import("../instinct-learner-SRM72DHF.js");
708
+ const { harvestInstincts } = await import("../instinct-learner-CWVMLUWX.js");
709
709
  const dates = entries.map((e) => e.date).sort();
710
710
  const harvest = harvestInstincts(dir, {
711
711
  from: dates[0],
@@ -724,7 +724,7 @@ Run "harness journal --all" to synthesize them.
724
724
  }
725
725
  return;
726
726
  }
727
- const { synthesizeJournal } = await import("../journal-WANJL3MI.js");
727
+ const { synthesizeJournal } = await import("../journal-KN265YLU.js");
728
728
  try {
729
729
  console.log(`Synthesizing journal...`);
730
730
  const entry = await synthesizeJournal(dir, opts.date);
@@ -736,7 +736,7 @@ Run "harness journal --all" to synthesize them.
736
736
  console.log(` Instinct candidates:`);
737
737
  entry.instinct_candidates.forEach((c) => console.log(` - ${c}`));
738
738
  if (opts.autoHarvest) {
739
- const { harvestInstincts } = await import("../instinct-learner-SRM72DHF.js");
739
+ const { harvestInstincts } = await import("../instinct-learner-CWVMLUWX.js");
740
740
  const harvest = harvestInstincts(dir, {
741
741
  from: entry.date,
742
742
  to: entry.date,
@@ -756,7 +756,7 @@ ${entry.synthesis}`);
756
756
  }
757
757
  });
758
758
  program.command("compress").description("Compress daily journals into weekly roll-up summaries").option("-d, --dir <path>", "Harness directory", ".").option("--force", "Overwrite existing weekly summaries", false).action(async (opts) => {
759
- const { compressJournals } = await import("../journal-WANJL3MI.js");
759
+ const { compressJournals } = await import("../journal-KN265YLU.js");
760
760
  const dir = resolve(opts.dir);
761
761
  requireHarness(dir);
762
762
  const results = compressJournals(dir, { force: opts.force });
@@ -776,7 +776,7 @@ program.command("compress").description("Compress daily journals into weekly rol
776
776
  console.log();
777
777
  });
778
778
  program.command("learn").description("Analyze sessions and propose new instincts").option("-d, --dir <path>", "Harness directory", ".").option("--install", "Auto-install proposed instincts", false).action(async (opts) => {
779
- const { learnFromSessions } = await import("../instinct-learner-SRM72DHF.js");
779
+ const { learnFromSessions } = await import("../instinct-learner-CWVMLUWX.js");
780
780
  const dir = resolve(opts.dir);
781
781
  requireHarness(dir);
782
782
  try {
@@ -802,7 +802,7 @@ ${result.candidates.length} instinct candidate(s):
802
802
  }
803
803
  });
804
804
  program.command("harvest").description("Extract instinct candidates from journal entries and optionally install them").option("-d, --dir <path>", "Harness directory", ".").option("--from <date>", "Start date (YYYY-MM-DD)").option("--to <date>", "End date (YYYY-MM-DD)").option("--install", "Auto-install candidates as draft instincts", false).action(async (opts) => {
805
- const { harvestInstincts } = await import("../instinct-learner-SRM72DHF.js");
805
+ const { harvestInstincts } = await import("../instinct-learner-CWVMLUWX.js");
806
806
  const dir = resolve(opts.dir);
807
807
  requireHarness(dir);
808
808
  const result = harvestInstincts(dir, {
@@ -832,7 +832,7 @@ Scanned ${result.journalsScanned} journal(s)`);
832
832
  }
833
833
  });
834
834
  program.command("intake").description("Process all pending files in the intake/ directory").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
835
- const { processIntake } = await import("../intake-4M3HNU43.js");
835
+ const { processIntake } = await import("../intake-M5NRR6QR.js");
836
836
  const dir = resolve(opts.dir);
837
837
  const results = processIntake(dir);
838
838
  if (results.length === 0) {
@@ -848,7 +848,7 @@ program.command("intake").description("Process all pending files in the intake/
848
848
  }
849
849
  });
850
850
  program.command("validate").description("Validate harness structure and configuration").option("-d, --dir <path>", "Harness directory", ".").option("--json", "Output as JSON").action(async (opts) => {
851
- const { validateHarness } = await import("../validator-7WXMDIHH.js");
851
+ const { validateHarness } = await import("../validator-LZXBFEPV.js");
852
852
  const dir = resolve(opts.dir);
853
853
  const result = validateHarness(dir);
854
854
  if (opts.json) {
@@ -885,7 +885,7 @@ Summary: ${result.ok.length} passed, ${result.warnings.length} warnings, ${resul
885
885
  }
886
886
  });
887
887
  program.command("doctor").description("Validate harness and auto-fix all fixable issues in one pass").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
888
- const { doctorHarness } = await import("../validator-7WXMDIHH.js");
888
+ const { doctorHarness } = await import("../validator-LZXBFEPV.js");
889
889
  const dir = resolve(opts.dir);
890
890
  console.log(`
891
891
  Running doctor on: ${dir}
@@ -925,7 +925,7 @@ Summary: ${result.ok.length} ok, ${result.warnings.length} warnings, ${result.er
925
925
  }
926
926
  });
927
927
  program.command("fix <file>").description("Auto-fix common issues in a capability markdown file (missing id, status, L0/L1)").action(async (file) => {
928
- const { fixCapability } = await import("../intake-4M3HNU43.js");
928
+ const { fixCapability } = await import("../intake-M5NRR6QR.js");
929
929
  const filePath = resolve(file);
930
930
  const result = fixCapability(filePath);
931
931
  if (result.fixes_applied.length > 0) {
@@ -951,7 +951,7 @@ Remaining errors (manual fix required):`);
951
951
  }
952
952
  });
953
953
  program.command("cleanup").description("Archive sessions and journals older than retention period").option("-d, --dir <path>", "Harness directory", ".").option("--dry-run", "Show what would be archived without acting", false).option("--delete", "Permanently delete instead of archiving", false).action(async (opts) => {
954
- const { loadConfig } = await import("../config-WVMRUOCA.js");
954
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
955
955
  const dir = resolve(opts.dir);
956
956
  requireHarness(dir);
957
957
  const config = loadConfig(dir);
@@ -999,8 +999,8 @@ Archived ${result.sessionsArchived} session(s), ${result.journalsArchived} journ
999
999
  });
1000
1000
  program.command("status").description("Show harness status: primitives, sessions, config, state").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
1001
1001
  const { existsSync: existsSync2, readdirSync } = await import("fs");
1002
- const { validateHarness } = await import("../validator-7WXMDIHH.js");
1003
- const { loadConfig } = await import("../config-WVMRUOCA.js");
1002
+ const { validateHarness } = await import("../validator-LZXBFEPV.js");
1003
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
1004
1004
  const { loadState } = await import("../state-GMXILIHW.js");
1005
1005
  const { listSessions } = await import("../sessions-CZGVXKQE.js");
1006
1006
  const dir = resolve(opts.dir);
@@ -1118,7 +1118,7 @@ program.command("scratch").description("Write a note to scratch.md (working memo
1118
1118
  });
1119
1119
  var workflowCmd = program.command("workflow").description("Manage workflows");
1120
1120
  workflowCmd.command("list").description("List all workflows and their schedules").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
1121
- const { loadDirectory } = await import("../loader-C3TKIKZR.js");
1121
+ const { loadDirectory } = await import("../loader-BOCVXVCH.js");
1122
1122
  const dir = resolve(opts.dir);
1123
1123
  requireHarness(dir);
1124
1124
  const workflowDir = join(dir, "workflows");
@@ -1145,7 +1145,7 @@ ${docs.length} workflow(s):
1145
1145
  console.log();
1146
1146
  });
1147
1147
  workflowCmd.command("run <id>").description("Execute a workflow by ID (bypasses quiet hours)").option("-d, --dir <path>", "Harness directory", ".").action(async (workflowId, opts) => {
1148
- const { Scheduler } = await import("../scheduler-XHHIVHRI.js");
1148
+ const { Scheduler } = await import("../scheduler-TYOQKO4C.js");
1149
1149
  const dir = resolve(opts.dir);
1150
1150
  loadEnvFromDir(dir);
1151
1151
  requireHarness(dir);
@@ -1174,8 +1174,8 @@ Executing workflow: ${workflowId}...`);
1174
1174
  }
1175
1175
  });
1176
1176
  program.command("search [query]").description("Search primitives by text query and/or filters").option("-d, --dir <path>", "Harness directory", ".").option("-t, --tag <tag>", "Filter by tag").option("--type <type>", "Filter by primitive type (e.g., rules, skills)").option("--status <status>", "Filter by status (active, draft, archived, deprecated)").option("--author <author>", "Filter by author (human, agent, infrastructure)").option("--json", "Output as JSON").action(async (query, opts) => {
1177
- const { searchPrimitives } = await import("../search-V3W5JMJG.js");
1178
- const { loadConfig } = await import("../config-WVMRUOCA.js");
1177
+ const { searchPrimitives } = await import("../search-4IYM525O.js");
1178
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
1179
1179
  const dir = resolve(opts.dir);
1180
1180
  requireHarness(dir);
1181
1181
  let config;
@@ -1222,7 +1222,7 @@ ${results.length} result(s):
1222
1222
  });
1223
1223
  var configCmd = program.command("config").description("Show or inspect configuration");
1224
1224
  configCmd.command("show").description("Show full resolved configuration (merged defaults + file + env)").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
1225
- const { loadConfig } = await import("../config-WVMRUOCA.js");
1225
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
1226
1226
  const YAML = await import("yaml");
1227
1227
  const dir = resolve(opts.dir);
1228
1228
  requireHarness(dir);
@@ -1239,7 +1239,7 @@ configCmd.command("show").description("Show full resolved configuration (merged
1239
1239
  }
1240
1240
  });
1241
1241
  configCmd.command("get <key>").description("Get a specific config value (dot-notation, e.g. model.id)").option("-d, --dir <path>", "Harness directory", ".").action(async (key, opts) => {
1242
- const { loadConfig } = await import("../config-WVMRUOCA.js");
1242
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
1243
1243
  const dir = resolve(opts.dir);
1244
1244
  requireHarness(dir);
1245
1245
  try {
@@ -1289,7 +1289,7 @@ configCmd.command("set <key> <value>").description("Set a config value (writes t
1289
1289
  const parts = key.split(".");
1290
1290
  doc.setIn(parts, parsed);
1291
1291
  writeFileSync(configPath, doc.toString(), "utf-8");
1292
- const { loadConfig } = await import("../config-WVMRUOCA.js");
1292
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
1293
1293
  try {
1294
1294
  loadConfig(dir);
1295
1295
  console.log(`\u2713 ${key} = ${String(parsed)}`);
@@ -1396,7 +1396,7 @@ function formatDuration(ms) {
1396
1396
  }
1397
1397
  var toolsCmd = program.command("tools").description("List and inspect tool definitions");
1398
1398
  toolsCmd.command("list").description("List all defined tools with auth status").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
1399
- const { listToolSummaries } = await import("../tools-DZ4KETET.js");
1399
+ const { listToolSummaries } = await import("../tools-EB3BHRRF.js");
1400
1400
  const dir = resolve(opts.dir);
1401
1401
  requireHarness(dir);
1402
1402
  const tools = listToolSummaries(dir);
@@ -1417,7 +1417,7 @@ ${tools.length} tool(s):
1417
1417
  console.log();
1418
1418
  });
1419
1419
  toolsCmd.command("show <id>").description("Show detailed info for a specific tool").option("-d, --dir <path>", "Harness directory", ".").action(async (toolId, opts) => {
1420
- const { getToolById } = await import("../tools-DZ4KETET.js");
1420
+ const { getToolById } = await import("../tools-EB3BHRRF.js");
1421
1421
  const dir = resolve(opts.dir);
1422
1422
  requireHarness(dir);
1423
1423
  const tool = getToolById(dir, toolId);
@@ -1461,7 +1461,7 @@ Tool: ${tool.id}`);
1461
1461
  console.log();
1462
1462
  });
1463
1463
  toolsCmd.command("auth").description("Check auth status for all tools").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
1464
- const { checkToolAuth } = await import("../tools-DZ4KETET.js");
1464
+ const { checkToolAuth } = await import("../tools-EB3BHRRF.js");
1465
1465
  const dir = resolve(opts.dir);
1466
1466
  requireHarness(dir);
1467
1467
  const results = checkToolAuth(dir);
@@ -1485,7 +1485,7 @@ toolsCmd.command("auth").description("Check auth status for all tools").option("
1485
1485
  console.log();
1486
1486
  });
1487
1487
  program.command("export [output]").description("Export harness to a portable JSON bundle").option("-d, --dir <path>", "Harness directory", ".").option("--no-sessions", "Exclude session files").option("--no-journals", "Exclude journal files").option("--no-metrics", "Exclude metrics").option("--no-state", "Exclude state and scratch").action(async (output, opts) => {
1488
- const { exportHarness, writeBundle } = await import("../export-6GCYHEHQ.js");
1488
+ const { exportHarness, writeBundle } = await import("../export-2HEAAOUF.js");
1489
1489
  const dir = resolve(opts.dir);
1490
1490
  requireHarness(dir);
1491
1491
  const bundle = exportHarness(dir, {
@@ -1503,7 +1503,7 @@ Exported "${bundle.agent_name}" to ${outputPath}`);
1503
1503
  `);
1504
1504
  });
1505
1505
  program.command("import <bundle>").description("Import a harness bundle into current directory").option("-d, --dir <path>", "Harness directory", ".").option("--overwrite", "Overwrite existing files", false).action(async (bundlePath, opts) => {
1506
- const { readBundle, importBundle } = await import("../export-6GCYHEHQ.js");
1506
+ const { readBundle, importBundle } = await import("../export-2HEAAOUF.js");
1507
1507
  const dir = resolve(opts.dir);
1508
1508
  try {
1509
1509
  const bundle = readBundle(resolve(bundlePath));
@@ -1527,7 +1527,7 @@ Importing bundle: "${bundle.agent_name}" (exported ${bundle.exported_at})`);
1527
1527
  }
1528
1528
  });
1529
1529
  program.command("bundle <output>").description("Pack primitives into a shareable bundle with manifest.yaml").option("-d, --dir <path>", "Harness directory", ".").option("-n, --name <name>", "Bundle name").option("--description <text>", "Bundle description", "").option("--author <name>", "Author name").option("--version <ver>", "Bundle version", "1.0.0").option("-t, --types <types...>", "Primitive types to include (e.g., rules instincts)").option("-f, --files <files...>", "Specific files to include (relative paths)").option("--tags <tags...>", "Tags for search/discovery").option("--license <id>", "License identifier (e.g., MIT)").option("--json", "Output as JSON", false).action(async (output, opts) => {
1530
- const { packBundle, writeBundleDir } = await import("../primitive-registry-I6VTIR4W.js");
1530
+ const { packBundle, writeBundleDir } = await import("../primitive-registry-HOJMUFBT.js");
1531
1531
  const dir = resolve(opts.dir);
1532
1532
  requireHarness(dir);
1533
1533
  const bundleName = opts.name ?? basename(dir);
@@ -1555,8 +1555,8 @@ Bundled "${bundleName}" v${opts.version}`);
1555
1555
  }
1556
1556
  });
1557
1557
  program.command("bundle-install <source>").description("Install primitives from a bundle directory, JSON file, or URL").option("-d, --dir <path>", "Harness directory", ".").option("--overwrite", "Overwrite existing files", false).option("--force", "Skip dependency checks", false).option("--json", "Output as JSON", false).action(async (source, opts) => {
1558
- const { readBundleDir, installBundle, fetchRemoteBundle } = await import("../primitive-registry-I6VTIR4W.js");
1559
- const { readBundle } = await import("../export-6GCYHEHQ.js");
1558
+ const { readBundleDir, installBundle, fetchRemoteBundle } = await import("../primitive-registry-HOJMUFBT.js");
1559
+ const { readBundle } = await import("../export-2HEAAOUF.js");
1560
1560
  const dir = resolve(opts.dir);
1561
1561
  try {
1562
1562
  let bundle;
@@ -1569,7 +1569,7 @@ program.command("bundle-install <source>").description("Install primitives from
1569
1569
  bundle = readBundleDir(sourcePath);
1570
1570
  } else if (source.endsWith(".json")) {
1571
1571
  const jsonBundle = readBundle(sourcePath);
1572
- const { CORE_PRIMITIVE_DIRS } = await import("../types-EW7AIB3R.js");
1572
+ const { CORE_PRIMITIVE_DIRS } = await import("../types-NYKB2DN3.js");
1573
1573
  const files = jsonBundle.entries;
1574
1574
  const types = /* @__PURE__ */ new Set();
1575
1575
  for (const entry of files) {
@@ -1622,7 +1622,7 @@ Installation failed:`);
1622
1622
  }
1623
1623
  });
1624
1624
  program.command("uninstall <bundle-name>").description("Uninstall a previously installed bundle (moves files to archive/)").option("-d, --dir <path>", "Harness directory", ".").option("--hard", "Permanently delete files instead of archiving", false).option("--json", "Output as JSON", false).action(async (bundleName, opts) => {
1625
- const { uninstallBundle } = await import("../primitive-registry-I6VTIR4W.js");
1625
+ const { uninstallBundle } = await import("../primitive-registry-HOJMUFBT.js");
1626
1626
  const dir = resolve(opts.dir);
1627
1627
  requireHarness(dir);
1628
1628
  const result = uninstallBundle(dir, bundleName, { hard: opts.hard });
@@ -1646,7 +1646,7 @@ Uninstall failed:`);
1646
1646
  }
1647
1647
  });
1648
1648
  program.command("update <source>").description("Update an installed bundle from a new version").option("-d, --dir <path>", "Harness directory", ".").option("--remove-deleted", "Archive files removed in new version", false).option("--json", "Output as JSON", false).action(async (source, opts) => {
1649
- const { readBundleDir, diffBundle, updateBundle, fetchRemoteBundle } = await import("../primitive-registry-I6VTIR4W.js");
1649
+ const { readBundleDir, diffBundle, updateBundle, fetchRemoteBundle } = await import("../primitive-registry-HOJMUFBT.js");
1650
1650
  const dir = resolve(opts.dir);
1651
1651
  requireHarness(dir);
1652
1652
  try {
@@ -1705,7 +1705,7 @@ Update "${bundle.manifest.name}" to v${bundle.manifest.bundle_version}:`);
1705
1705
  }
1706
1706
  });
1707
1707
  program.command("installed").description("List installed bundles").option("-d, --dir <path>", "Harness directory", ".").option("--json", "Output as JSON", false).action(async (opts) => {
1708
- const { listInstalledBundles } = await import("../primitive-registry-I6VTIR4W.js");
1708
+ const { listInstalledBundles } = await import("../primitive-registry-HOJMUFBT.js");
1709
1709
  const dir = resolve(opts.dir);
1710
1710
  requireHarness(dir);
1711
1711
  const bundles = listInstalledBundles(dir);
@@ -1728,8 +1728,8 @@ ${bundles.length} bundle(s) installed:
1728
1728
  });
1729
1729
  var registryCmd = program.command("registry").description("Search and install bundles from configured registries");
1730
1730
  registryCmd.command("search <query>").description("Search all configured registries for bundles").option("-d, --dir <path>", "Harness directory", ".").option("--limit <n>", "Max results", "20").option("--json", "Output as JSON", false).action(async (query, opts) => {
1731
- const { searchConfiguredRegistries } = await import("../primitive-registry-I6VTIR4W.js");
1732
- const { loadConfig } = await import("../config-WVMRUOCA.js");
1731
+ const { searchConfiguredRegistries } = await import("../primitive-registry-HOJMUFBT.js");
1732
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
1733
1733
  const dir = resolve(opts.dir);
1734
1734
  requireHarness(dir);
1735
1735
  const config = loadConfig(dir);
@@ -1770,8 +1770,8 @@ Searched ${result.registriesSearched} registry(ies) for "${query}"
1770
1770
  }
1771
1771
  });
1772
1772
  registryCmd.command("install <bundle-name>").description("Install a bundle from configured registries").option("-d, --dir <path>", "Harness directory", ".").option("--version <ver>", "Specific version to install").option("--overwrite", "Overwrite existing files", false).option("--force", "Skip dependency checks", false).option("--json", "Output as JSON", false).action(async (bundleName, opts) => {
1773
- const { installFromRegistry } = await import("../primitive-registry-I6VTIR4W.js");
1774
- const { loadConfig } = await import("../config-WVMRUOCA.js");
1773
+ const { installFromRegistry } = await import("../primitive-registry-HOJMUFBT.js");
1774
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
1775
1775
  const dir = resolve(opts.dir);
1776
1776
  requireHarness(dir);
1777
1777
  const config = loadConfig(dir);
@@ -1813,7 +1813,7 @@ Installation failed:`);
1813
1813
  }
1814
1814
  });
1815
1815
  registryCmd.command("list").description("List configured registries").option("-d, --dir <path>", "Harness directory", ".").option("--json", "Output as JSON", false).action(async (opts) => {
1816
- const { loadConfig } = await import("../config-WVMRUOCA.js");
1816
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
1817
1817
  const dir = resolve(opts.dir);
1818
1818
  requireHarness(dir);
1819
1819
  const config = loadConfig(dir);
@@ -1842,8 +1842,8 @@ ${registries.length} registry(ies) configured:
1842
1842
  console.log();
1843
1843
  });
1844
1844
  program.command("graph").description("Analyze primitive dependency graph (related:/with: fields)").option("-d, --dir <path>", "Harness directory", ".").option("--json", "Output as JSON").action(async (opts) => {
1845
- const { buildDependencyGraph, getGraphStats } = await import("../graph-YUIPOSOO.js");
1846
- const { loadConfig } = await import("../config-WVMRUOCA.js");
1845
+ const { buildDependencyGraph, getGraphStats } = await import("../graph-5MKRTC3J.js");
1846
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
1847
1847
  const dir = resolve(opts.dir);
1848
1848
  requireHarness(dir);
1849
1849
  let config;
@@ -1970,7 +1970,7 @@ Session Analytics
1970
1970
  console.log();
1971
1971
  });
1972
1972
  program.command("auto-promote").description("Find instinct patterns appearing 3+ times across journals and optionally install them").option("-d, --dir <path>", "Harness directory", ".").option("--threshold <n>", "Minimum occurrences across different dates", "3").option("--install", "Auto-install promoted instincts", false).option("--json", "Output as JSON", false).action(async (opts) => {
1973
- const { autoPromoteInstincts } = await import("../intelligence-HJOCA4SJ.js");
1973
+ const { autoPromoteInstincts } = await import("../intelligence-UW4TCOC7.js");
1974
1974
  const dir = resolve(opts.dir);
1975
1975
  requireHarness(dir);
1976
1976
  const result = autoPromoteInstincts(dir, {
@@ -2004,8 +2004,8 @@ function behaviorToCliId(behavior) {
2004
2004
  return behavior.toLowerCase().replace(/[^a-z0-9\s-]/g, "").replace(/\s+/g, "-").slice(0, 50).replace(/-+$/, "");
2005
2005
  }
2006
2006
  program.command("dead-primitives").description("Detect orphaned primitives not modified in 30+ days").option("-d, --dir <path>", "Harness directory", ".").option("--days <n>", "Threshold days since last modification", "30").option("--json", "Output as JSON", false).action(async (opts) => {
2007
- const { detectDeadPrimitives } = await import("../intelligence-HJOCA4SJ.js");
2008
- const { loadConfig } = await import("../config-WVMRUOCA.js");
2007
+ const { detectDeadPrimitives } = await import("../intelligence-UW4TCOC7.js");
2008
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
2009
2009
  const dir = resolve(opts.dir);
2010
2010
  requireHarness(dir);
2011
2011
  let config;
@@ -2037,7 +2037,7 @@ Scanned ${result.totalScanned} primitive(s) (threshold: ${result.thresholdDays}
2037
2037
  }
2038
2038
  });
2039
2039
  program.command("contradictions").description("Detect contradictions between rules and instincts").option("-d, --dir <path>", "Harness directory", ".").option("--json", "Output as JSON", false).action(async (opts) => {
2040
- const { detectContradictions } = await import("../intelligence-HJOCA4SJ.js");
2040
+ const { detectContradictions } = await import("../intelligence-UW4TCOC7.js");
2041
2041
  const dir = resolve(opts.dir);
2042
2042
  requireHarness(dir);
2043
2043
  const result = detectContradictions(dir);
@@ -2062,8 +2062,8 @@ Checked ${result.rulesChecked} rule(s) and ${result.instinctsChecked} instinct(s
2062
2062
  }
2063
2063
  });
2064
2064
  program.command("enrich").description("Enrich sessions with extracted topics, tools, and primitive references").option("-d, --dir <path>", "Harness directory", ".").option("--from <date>", "Start date (YYYY-MM-DD)").option("--to <date>", "End date (YYYY-MM-DD)").option("--json", "Output as JSON", false).action(async (opts) => {
2065
- const { enrichSessions } = await import("../intelligence-HJOCA4SJ.js");
2066
- const { loadConfig } = await import("../config-WVMRUOCA.js");
2065
+ const { enrichSessions } = await import("../intelligence-UW4TCOC7.js");
2066
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
2067
2067
  const dir = resolve(opts.dir);
2068
2068
  requireHarness(dir);
2069
2069
  let config;
@@ -2094,8 +2094,8 @@ Enriched ${result.sessionsScanned} session(s)
2094
2094
  }
2095
2095
  });
2096
2096
  program.command("suggest").description("Suggest capabilities (skills/playbooks) for frequent uncovered session topics").option("-d, --dir <path>", "Harness directory", ".").option("--min-frequency <n>", "Minimum topic frequency", "3").option("--json", "Output as JSON", false).action(async (opts) => {
2097
- const { suggestCapabilities } = await import("../intelligence-HJOCA4SJ.js");
2098
- const { loadConfig } = await import("../config-WVMRUOCA.js");
2097
+ const { suggestCapabilities } = await import("../intelligence-UW4TCOC7.js");
2098
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
2099
2099
  const dir = resolve(opts.dir);
2100
2100
  requireHarness(dir);
2101
2101
  let config;
@@ -2127,7 +2127,7 @@ Analyzed ${result.topicsAnalyzed} topic(s) from ${result.sessionsScanned} sessio
2127
2127
  }
2128
2128
  });
2129
2129
  program.command("agents").description("List available sub-agents").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
2130
- const { listAgents } = await import("../delegate-VJCJLYEK.js");
2130
+ const { listAgents } = await import("../delegate-ZJCIADNN.js");
2131
2131
  const dir = resolve(opts.dir);
2132
2132
  const agents = listAgents(dir);
2133
2133
  if (agents.length === 0) {
@@ -2160,7 +2160,7 @@ program.command("delegate <agent-id> <prompt>").description("Delegate a prompt t
2160
2160
  try {
2161
2161
  console.error(`[delegate] Invoking agent "${agentId}"${opts.stream ? " (streaming)" : ""}...`);
2162
2162
  if (opts.stream) {
2163
- const { delegateStream } = await import("../delegate-VJCJLYEK.js");
2163
+ const { delegateStream } = await import("../delegate-ZJCIADNN.js");
2164
2164
  const result = delegateStream(delegateOpts);
2165
2165
  process.stdout.write("\n");
2166
2166
  for await (const chunk of result.textStream) {
@@ -2171,7 +2171,7 @@ program.command("delegate <agent-id> <prompt>").description("Delegate a prompt t
2171
2171
  `[delegate] Agent: ${result.agentId} | session: ${result.sessionId}`
2172
2172
  );
2173
2173
  } else {
2174
- const { delegateTo } = await import("../delegate-VJCJLYEK.js");
2174
+ const { delegateTo } = await import("../delegate-ZJCIADNN.js");
2175
2175
  const result = await delegateTo(delegateOpts);
2176
2176
  console.log("\n" + result.text + "\n");
2177
2177
  console.error(
@@ -2356,7 +2356,7 @@ rateLimitCmd.command("clear").description("Clear rate limit events").option("-d,
2356
2356
  });
2357
2357
  var mcpCmd = program.command("mcp").description("Manage MCP (Model Context Protocol) server connections");
2358
2358
  mcpCmd.command("list").description("List configured MCP servers and their status").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
2359
- const { loadConfig } = await import("../config-WVMRUOCA.js");
2359
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
2360
2360
  const { validateMcpConfig } = await import("../mcp-WTQJJZAO.js");
2361
2361
  const dir = resolve(opts.dir);
2362
2362
  requireHarness(dir);
@@ -2398,7 +2398,7 @@ ${entries.length} MCP server(s) configured:
2398
2398
  console.log();
2399
2399
  });
2400
2400
  mcpCmd.command("test").description("Test MCP server connections and list available tools").option("-d, --dir <path>", "Harness directory", ".").option("-s, --server <name>", "Test only a specific server").action(async (opts) => {
2401
- const { loadConfig } = await import("../config-WVMRUOCA.js");
2401
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
2402
2402
  const { createMcpManager } = await import("../mcp-WTQJJZAO.js");
2403
2403
  const dir = resolve(opts.dir);
2404
2404
  loadEnvFromDir(dir);
@@ -2492,7 +2492,7 @@ ${discovery.totalServers} unique server(s) after dedup:
2492
2492
  }
2493
2493
  });
2494
2494
  mcpCmd.command("search <query>").description("Search the MCP registry for available servers").option("-n, --limit <number>", "Max results", "10").option("--json", "Output raw JSON", false).action(async (query, opts) => {
2495
- const { searchRegistry, formatRegistryServer } = await import("../mcp-installer-6O2XXD3V.js");
2495
+ const { searchRegistry, formatRegistryServer } = await import("../mcp-installer-KV3XZRRF.js");
2496
2496
  try {
2497
2497
  const result = await searchRegistry(query, { limit: parseInt(opts.limit, 10) });
2498
2498
  if (opts.json) {
@@ -2518,7 +2518,7 @@ ${result.servers.length} server(s) found for "${query}":
2518
2518
  }
2519
2519
  });
2520
2520
  mcpCmd.command("install <query>").description("Install an MCP server from the registry into config.yaml").option("-d, --dir <path>", "Harness directory", ".").option("-n, --name <name>", "Custom name for the server in config").option("--force", "Overwrite if server already exists", false).option("--skip-test", "Skip connection testing", false).option("--skip-docs", "Skip tool doc generation", false).option("--json", "Output raw JSON", false).action(async (query, opts) => {
2521
- const { installMcpServer } = await import("../mcp-installer-6O2XXD3V.js");
2521
+ const { installMcpServer } = await import("../mcp-installer-KV3XZRRF.js");
2522
2522
  const dir = resolve(opts.dir);
2523
2523
  loadEnvFromDir(dir);
2524
2524
  requireHarness(dir);
@@ -2665,10 +2665,10 @@ Suggestions:
2665
2665
  });
2666
2666
  var generateCmd = program.command("generate").description("Auto-generate harness files");
2667
2667
  generateCmd.command("system").description("Regenerate SYSTEM.md from actual directory structure").option("-d, --dir <path>", "Harness directory", ".").action(async (opts) => {
2668
- const { generateSystemMd } = await import("../scaffold-A3VRRCBV.js");
2668
+ const { generateSystemMd } = await import("../scaffold-ZY4XWINP.js");
2669
2669
  const dir = resolve(opts.dir);
2670
2670
  requireHarness(dir);
2671
- const { loadConfig } = await import("../config-WVMRUOCA.js");
2671
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
2672
2672
  const config = loadConfig(dir);
2673
2673
  const content = generateSystemMd(dir, config.agent.name);
2674
2674
  const { writeFileSync } = await import("fs");
@@ -2678,7 +2678,7 @@ generateCmd.command("system").description("Regenerate SYSTEM.md from actual dire
2678
2678
  `);
2679
2679
  });
2680
2680
  program.command("dashboard").description("Show a unified dashboard of health, costs, sessions, workflows, and storage").option("-d, --dir <path>", "Harness directory", ".").option("--json", "Output raw JSON snapshot", false).option("--watch", "Refresh every N seconds", false).option("--interval <seconds>", "Watch refresh interval in seconds", "5").action(async (opts) => {
2681
- const { collectSnapshot, formatDashboard } = await import("../telemetry-UC6PBXC7.js");
2681
+ const { collectSnapshot, formatDashboard } = await import("../telemetry-MVDNGJEC.js");
2682
2682
  const dir = resolve(opts.dir);
2683
2683
  requireHarness(dir);
2684
2684
  if (opts.json) {
@@ -2719,7 +2719,7 @@ var intelligenceCmd = program.command("intelligence").description("Intelligence
2719
2719
  intelligenceCmd.command("promote").description("Auto-promote instinct candidates that appear 3+ times across journals").option("-d, --dir <dir>", "Harness directory", ".").option("--threshold <n>", "Minimum occurrences to promote", "3").option("--install", "Install promoted instincts as .md files").option("--json", "Output as JSON").action(async (opts) => {
2720
2720
  const dir = resolve(opts.dir);
2721
2721
  loadEnvFromDir(dir);
2722
- const { autoPromoteInstincts } = await import("../intelligence-HJOCA4SJ.js");
2722
+ const { autoPromoteInstincts } = await import("../intelligence-UW4TCOC7.js");
2723
2723
  const result = autoPromoteInstincts(dir, {
2724
2724
  threshold: parseInt(opts.threshold, 10),
2725
2725
  install: opts.install ?? false
@@ -2750,8 +2750,8 @@ Promoted: ${result.promoted.join(", ")}`);
2750
2750
  intelligenceCmd.command("dead").description("Detect dead primitives (unreferenced and old)").option("-d, --dir <dir>", "Harness directory", ".").option("--threshold <days>", "Days since modification to consider dead", "30").option("--json", "Output as JSON").action(async (opts) => {
2751
2751
  const dir = resolve(opts.dir);
2752
2752
  loadEnvFromDir(dir);
2753
- const { detectDeadPrimitives } = await import("../intelligence-HJOCA4SJ.js");
2754
- const { loadConfig } = await import("../config-WVMRUOCA.js");
2753
+ const { detectDeadPrimitives } = await import("../intelligence-UW4TCOC7.js");
2754
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
2755
2755
  let config;
2756
2756
  try {
2757
2757
  config = loadConfig(dir);
@@ -2780,7 +2780,7 @@ Dead primitives (${result.dead.length}):`);
2780
2780
  intelligenceCmd.command("contradictions").description("Detect contradictions between rules and instincts").option("-d, --dir <dir>", "Harness directory", ".").option("--json", "Output as JSON").action(async (opts) => {
2781
2781
  const dir = resolve(opts.dir);
2782
2782
  loadEnvFromDir(dir);
2783
- const { detectContradictions } = await import("../intelligence-HJOCA4SJ.js");
2783
+ const { detectContradictions } = await import("../intelligence-UW4TCOC7.js");
2784
2784
  const result = detectContradictions(dir);
2785
2785
  if (opts.json) {
2786
2786
  console.log(JSON.stringify(result, null, 2));
@@ -2801,8 +2801,8 @@ Contradictions (${result.contradictions.length}):`);
2801
2801
  intelligenceCmd.command("enrich").description("Enrich sessions with topics, token counts, and related primitives").option("-d, --dir <dir>", "Harness directory", ".").option("--from <date>", "Start date (YYYY-MM-DD)").option("--to <date>", "End date (YYYY-MM-DD)").option("--json", "Output as JSON").action(async (opts) => {
2802
2802
  const dir = resolve(opts.dir);
2803
2803
  loadEnvFromDir(dir);
2804
- const { enrichSessions } = await import("../intelligence-HJOCA4SJ.js");
2805
- const { loadConfig } = await import("../config-WVMRUOCA.js");
2804
+ const { enrichSessions } = await import("../intelligence-UW4TCOC7.js");
2805
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
2806
2806
  let config;
2807
2807
  try {
2808
2808
  config = loadConfig(dir);
@@ -2828,8 +2828,8 @@ intelligenceCmd.command("enrich").description("Enrich sessions with topics, toke
2828
2828
  intelligenceCmd.command("suggest").description("Suggest new skills/playbooks for frequent uncovered topics").option("-d, --dir <dir>", "Harness directory", ".").option("--min-frequency <n>", "Minimum topic frequency", "3").option("--json", "Output as JSON").action(async (opts) => {
2829
2829
  const dir = resolve(opts.dir);
2830
2830
  loadEnvFromDir(dir);
2831
- const { suggestCapabilities } = await import("../intelligence-HJOCA4SJ.js");
2832
- const { loadConfig } = await import("../config-WVMRUOCA.js");
2831
+ const { suggestCapabilities } = await import("../intelligence-UW4TCOC7.js");
2832
+ const { loadConfig } = await import("../config-2O6S2YJO.js");
2833
2833
  let config;
2834
2834
  try {
2835
2835
  config = loadConfig(dir);
@@ -2858,7 +2858,7 @@ Suggestions (${result.suggestions.length}):`);
2858
2858
  intelligenceCmd.command("failures").description("Analyze recent failure patterns and suggest recovery strategies").option("-d, --dir <dir>", "Harness directory", ".").option("--days <n>", "Days to look back", "7").option("--json", "Output as JSON").action(async (opts) => {
2859
2859
  const dir = resolve(opts.dir);
2860
2860
  loadEnvFromDir(dir);
2861
- const { analyzeFailures } = await import("../intelligence-HJOCA4SJ.js");
2861
+ const { analyzeFailures } = await import("../intelligence-UW4TCOC7.js");
2862
2862
  const result = analyzeFailures(dir, { days: parseInt(opts.days, 10) });
2863
2863
  if (opts.json) {
2864
2864
  console.log(JSON.stringify(result, null, 2));
@@ -2883,7 +2883,7 @@ intelligenceCmd.command("failures").description("Analyze recent failure patterns
2883
2883
  }
2884
2884
  });
2885
2885
  intelligenceCmd.command("classify <error>").description("Classify an error message into a failure mode").action(async (errorMsg) => {
2886
- const { classifyFailure, getRecoveryStrategies, FAILURE_TAXONOMY } = await import("../intelligence-HJOCA4SJ.js");
2886
+ const { classifyFailure, getRecoveryStrategies, FAILURE_TAXONOMY } = await import("../intelligence-UW4TCOC7.js");
2887
2887
  const mode = classifyFailure(errorMsg);
2888
2888
  const info = FAILURE_TAXONOMY.modes[mode];
2889
2889
  const strategies = getRecoveryStrategies(mode);
@@ -2900,7 +2900,7 @@ var gateCmd = program.command("gate").description("Run verification gates");
2900
2900
  gateCmd.command("run [name]").description("Run a verification gate (or all gates if no name)").option("-d, --dir <dir>", "Harness directory", ".").option("--json", "Output as JSON").action(async (name, opts) => {
2901
2901
  const dir = resolve(opts.dir);
2902
2902
  loadEnvFromDir(dir);
2903
- const { runGate, runAllGates } = await import("../intelligence-HJOCA4SJ.js");
2903
+ const { runGate, runAllGates } = await import("../intelligence-UW4TCOC7.js");
2904
2904
  if (name) {
2905
2905
  const result = runGate(name, dir);
2906
2906
  if (opts.json) {
@@ -2930,7 +2930,7 @@ gateCmd.command("run [name]").description("Run a verification gate (or all gates
2930
2930
  }
2931
2931
  });
2932
2932
  gateCmd.command("list").description("List available verification gates").action(async () => {
2933
- const { listGates } = await import("../intelligence-HJOCA4SJ.js");
2933
+ const { listGates } = await import("../intelligence-UW4TCOC7.js");
2934
2934
  const gates = listGates();
2935
2935
  for (const g of gates) {
2936
2936
  console.log(` ${g.name}: ${g.description}`);
@@ -2939,7 +2939,7 @@ gateCmd.command("list").description("List available verification gates").action(
2939
2939
  program.command("check-rules").description("Check an action against loaded rules").argument("<action>", 'Action to check (e.g., "deploy", "run", "tool_call")').option("-d, --dir <path>", "Harness directory", process.cwd()).option("--description <text>", "Description of the action").option("--tags <tags>", "Comma-separated tags").option("--tool <name>", "Tool name (for tool_call actions)").option("--json", "Output as JSON").action(async (action, opts) => {
2940
2940
  const dir = resolve(opts.dir);
2941
2941
  loadEnvFromDir(dir);
2942
- const { enforceRules } = await import("../rule-engine-YGQ3RYZM.js");
2942
+ const { enforceRules } = await import("../rule-engine-I4AFQSSR.js");
2943
2943
  const tags = opts.tags ? opts.tags.split(",").map((t) => t.trim()) : void 0;
2944
2944
  const result = enforceRules(dir, {
2945
2945
  action,
@@ -2962,7 +2962,7 @@ program.command("check-rules").description("Check an action against loaded rules
2962
2962
  program.command("list-rules").description("List all parsed rules from the harness").option("-d, --dir <path>", "Harness directory", process.cwd()).option("--json", "Output as JSON").action(async (opts) => {
2963
2963
  const dir = resolve(opts.dir);
2964
2964
  loadEnvFromDir(dir);
2965
- const { loadRules } = await import("../rule-engine-YGQ3RYZM.js");
2965
+ const { loadRules } = await import("../rule-engine-I4AFQSSR.js");
2966
2966
  const rules = loadRules(dir);
2967
2967
  if (opts.json) {
2968
2968
  console.log(JSON.stringify(rules, null, 2));
@@ -2982,7 +2982,7 @@ program.command("list-rules").description("List all parsed rules from the harnes
2982
2982
  program.command("playbook-gates").description("Extract and check verification gates from playbooks/workflows").argument("[playbook-id]", "Specific playbook/workflow ID").option("-d, --dir <path>", "Harness directory", process.cwd()).option("--json", "Output as JSON").action(async (playbookId, opts) => {
2983
2983
  const dir = resolve(opts.dir);
2984
2984
  loadEnvFromDir(dir);
2985
- const { loadGates, getGatesForPlaybook } = await import("../verification-gate-FYXUX6LH.js");
2985
+ const { loadGates, getGatesForPlaybook } = await import("../verification-gate-ALSJVKSW.js");
2986
2986
  if (playbookId) {
2987
2987
  const gates = getGatesForPlaybook(dir, playbookId);
2988
2988
  if (opts.json) {
@@ -3123,7 +3123,7 @@ emoCmd.command("reset").description("Reset emotional state to defaults").option(
3123
3123
  program.command("check-action").description("Check if an action is allowed by harness rules (agent-framework guardrails)").argument("<action>", "Action description to check").option("-d, --dir <dir>", "Harness directory", ".").option("--tags <tags>", "Filter by rule tags (comma-separated)").option("--json", "Output as JSON").action(async (action, opts) => {
3124
3124
  const dir = resolve(opts.dir);
3125
3125
  loadEnvFromDir(dir);
3126
- const { checkAction } = await import("../agent-framework-K4GUIICH.js");
3126
+ const { checkAction } = await import("../agent-framework-CMFC3VJM.js");
3127
3127
  const tags = opts.tags ? opts.tags.split(",").map((t) => t.trim()) : void 0;
3128
3128
  const result = checkAction(dir, action, { ruleTags: tags });
3129
3129
  if (opts.json) {
@@ -3137,7 +3137,7 @@ program.command("check-action").description("Check if an action is allowed by ha
3137
3137
  program.command("serve").description("Start the harness HTTP API server for webhooks and integrations").option("-d, --dir <dir>", "Harness directory", ".").option("-p, --port <port>", "Port to listen on", "8080").option("--api-key <key>", "API key for LLM provider").option("--webhook-secret <secret>", "Secret for authenticating webhook management API").option("--no-cors", "Disable CORS").action(async (opts) => {
3138
3138
  const dir = resolve(opts.dir);
3139
3139
  loadEnvFromDir(dir);
3140
- const { startServe } = await import("../serve-DTQ3HENY.js");
3140
+ const { startServe } = await import("../serve-QFUZWOU3.js");
3141
3141
  const port = parseInt(opts.port, 10);
3142
3142
  const result = startServe({
3143
3143
  harnessDir: dir,
@@ -3303,7 +3303,7 @@ program.command("browse").description("Browse available community content \u2014
3303
3303
  loadEnvFromDir(dir);
3304
3304
  const { listStarterPacks } = await import("../starter-packs-76YUVHEU.js");
3305
3305
  const { loadAllSources, getSourcesSummary } = await import("../sources-RW5DT56F.js");
3306
- const { listInstalledBundles } = await import("../primitive-registry-I6VTIR4W.js");
3306
+ const { listInstalledBundles } = await import("../primitive-registry-HOJMUFBT.js");
3307
3307
  const filter = opts.type;
3308
3308
  const sections = [];
3309
3309
  if (!filter || filter === "packs") {
@@ -3400,7 +3400,7 @@ var semanticCmd = program.command("semantic").description("Semantic search over
3400
3400
  semanticCmd.command("index").description("Index all primitives for semantic search (requires an embed function at runtime \u2014 shows stats only from CLI)").option("-d, --dir <dir>", "Harness directory", ".").option("--json", "Output as JSON").action(async (opts) => {
3401
3401
  const dir = resolve(opts.dir);
3402
3402
  loadEnvFromDir(dir);
3403
- const { getEmbeddingStats } = await import("../semantic-search-2DTOO5UX.js");
3403
+ const { getEmbeddingStats } = await import("../semantic-search-G624D6CI.js");
3404
3404
  const stats = getEmbeddingStats(dir);
3405
3405
  if (opts.json) {
3406
3406
  console.log(JSON.stringify(stats, null, 2));
@@ -3416,7 +3416,7 @@ semanticCmd.command("index").description("Index all primitives for semantic sear
3416
3416
  semanticCmd.command("stats").description("Show embedding store statistics").option("-d, --dir <dir>", "Harness directory", ".").option("--json", "Output as JSON").action(async (opts) => {
3417
3417
  const dir = resolve(opts.dir);
3418
3418
  loadEnvFromDir(dir);
3419
- const { getEmbeddingStats, detectStalePrimitives, loadEmbeddingStore } = await import("../semantic-search-2DTOO5UX.js");
3419
+ const { getEmbeddingStats, detectStalePrimitives, loadEmbeddingStore } = await import("../semantic-search-G624D6CI.js");
3420
3420
  const stats = getEmbeddingStats(dir);
3421
3421
  const store = loadEmbeddingStore(dir);
3422
3422
  const stale = detectStalePrimitives(dir, store, stats.modelId ?? "");
@@ -3432,7 +3432,7 @@ semanticCmd.command("stats").description("Show embedding store statistics").opti
3432
3432
  console.log(` Store size: ${(stats.storeSize / 1024).toFixed(1)} KB`);
3433
3433
  }
3434
3434
  });
3435
- program.command("install").description("Install a primitive from any source (file, URL, or name)").argument("<source>", "File path, HTTPS URL, or source name to install").option("-d, --dir <dir>", "Harness directory", ".").option("-t, --type <type>", "Override detected type (skill, rule, agent, playbook, workflow, tool)").option("--id <id>", "Override generated ID").option("--force", "Force install despite validation warnings").option("--skip-fix", "Skip auto-fix (no frontmatter/L0/L1 generation)").option("--tags <tags...>", "Additional tags to add").option("--json", "Output as JSON").action(async (source, opts) => {
3435
+ program.command("install").description("Install a primitive from any source (file, URL, or name)").argument("<source>", "File path, HTTPS URL, or source name to install").option("-d, --dir <dir>", "Harness directory", ".").option("-t, --type <type>", "Override detected type (skill, rule, agent, playbook, workflow, tool)").option("--id <id>", "Override generated ID").option("--force", "Force install despite validation warnings").option("--skip-fix", "Skip auto-fix (no frontmatter/L0/L1 generation)").option("--tags <tags...>", "Additional tags to add").option("--force-license <spdx>", 'Override license policy for this install (SPDX id, e.g. "MIT")').option("--json", "Output as JSON").action(async (source, opts) => {
3436
3436
  const dir = resolve(opts.dir);
3437
3437
  loadEnvFromDir(dir);
3438
3438
  const { isPackReference, parsePackName, getStarterPack, listStarterPacks } = await import("../starter-packs-76YUVHEU.js");
@@ -3458,7 +3458,7 @@ Available packs: ${available}`);
3458
3458
  process.exitCode = 1;
3459
3459
  return;
3460
3460
  }
3461
- const { installBundle } = await import("../primitive-registry-I6VTIR4W.js");
3461
+ const { installBundle } = await import("../primitive-registry-HOJMUFBT.js");
3462
3462
  const bundleResult = installBundle(dir, bundle, {
3463
3463
  overwrite: opts.force,
3464
3464
  force: opts.force
@@ -3490,13 +3490,14 @@ Customize the workflows in your workflows/ directory.`);
3490
3490
  }
3491
3491
  return;
3492
3492
  }
3493
- const { universalInstall } = await import("../universal-installer-EVBDGOWM.js");
3493
+ const { universalInstall } = await import("../universal-installer-7MFCJUW7.js");
3494
3494
  const result = await universalInstall(dir, source, {
3495
3495
  type: opts.type,
3496
3496
  id: opts.id,
3497
3497
  force: opts.force,
3498
3498
  skipFix: opts.skipFix,
3499
- tags: opts.tags
3499
+ tags: opts.tags,
3500
+ forceLicense: opts.forceLicense
3500
3501
  });
3501
3502
  if (opts.json) {
3502
3503
  console.log(JSON.stringify(result, null, 2));