@a-company/paradigm 3.28.0 → 3.43.0

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 (122) hide show
  1. package/dist/{accept-orchestration-6EM5EHXA.js → accept-orchestration-ZUWQUHSK.js} +6 -6
  2. package/dist/add-VSPZ6FM4.js +81 -0
  3. package/dist/{aggregate-M5WMUI6B.js → aggregate-SV3VGEIL.js} +2 -2
  4. package/dist/assess-UHBDYIK7.js +68 -0
  5. package/dist/{beacon-XL2ALH5O.js → beacon-3SJV4DAP.js} +2 -2
  6. package/dist/calibration-WWHK73WU.js +135 -0
  7. package/dist/{chunk-C5ZE6WEX.js → chunk-2SKXFXIT.js} +91 -1
  8. package/dist/{chunk-AK5M6KJB.js → chunk-36TKPM5Z.js} +20 -2
  9. package/dist/{chunk-W4VFKZVF.js → chunk-7COU5S2Z.js} +3 -3
  10. package/dist/{chunk-3BAMPB6I.js → chunk-7WEKMZ46.js} +2 -147
  11. package/dist/{chunk-SCC77UUP.js → chunk-AKIMFN6I.js} +3 -3
  12. package/dist/{chunk-3DYYXGDC.js → chunk-CDMAMDSG.js} +33 -0
  13. package/dist/{chunk-7IJ5JVKT.js → chunk-CZEIK3Y2.js} +913 -40
  14. package/dist/{chunk-MRENOFTR.js → chunk-EDOAWN7J.js} +6 -1
  15. package/dist/chunk-F3BCHPYT.js +143 -0
  16. package/dist/chunk-GT5QGC2H.js +253 -0
  17. package/dist/{chunk-N6RNYCZD.js → chunk-HIKKOCXY.js} +1 -1
  18. package/dist/{chunk-J26YQVAK.js → chunk-J4E6K5MG.js} +1 -1
  19. package/dist/chunk-L27I3CPZ.js +357 -0
  20. package/dist/{chunk-KWDTBXP2.js → chunk-LHLIAYQ3.js} +1 -1
  21. package/dist/{chunk-OXG5GVDJ.js → chunk-P7XSBJE3.js} +1 -1
  22. package/dist/{chunk-Z7W7HNRG.js → chunk-QDXI2DHR.js} +1 -1
  23. package/dist/{chunk-BRILIG7Z.js → chunk-QIOCFXDQ.js} +42 -0
  24. package/dist/{chunk-ZOH24ZPF.js → chunk-QWA26UNO.js} +7 -7
  25. package/dist/{lore-server-ILPHKWLK.js → chunk-RAB5IKPR.js} +77 -112
  26. package/dist/{chunk-BKMNLROM.js → chunk-RGFANZ4Q.js} +448 -147
  27. package/dist/{chunk-R2SGQ22F.js → chunk-YW5OCVKB.js} +448 -2
  28. package/dist/{chunk-6P4IFIK2.js → chunk-ZGUAAVMA.js} +53 -4
  29. package/dist/{commands-6ZVTD74M.js → commands-LEPFD7S5.js} +452 -1
  30. package/dist/config-schema-3YNIFJCJ.js +152 -0
  31. package/dist/{constellation-NXU6Q2HM.js → constellation-FAGT45TU.js} +2 -2
  32. package/dist/{context-audit-RI4R2WRH.js → context-audit-557EO6PK.js} +138 -8
  33. package/dist/{cost-CTGSLSOC.js → cost-UD3WPEKZ.js} +1 -1
  34. package/dist/{cursorrules-XBWFX66V.js → cursorrules-3TKZ4E4R.js} +2 -2
  35. package/dist/{delete-YTASL4SM.js → delete-RRK4RL6Y.js} +1 -1
  36. package/dist/{diff-AH7L4PRQ.js → diff-IP5CIARP.js} +6 -6
  37. package/dist/{dist-AG5JNIZU-HW2FWNTZ.js → dist-5QE2BB2B-X6DYVSUL.js} +59 -5
  38. package/dist/{dist-KY5HGDDL.js → dist-OGTSAZ55.js} +58 -4
  39. package/dist/{dist-IKBGY7FQ.js → dist-RVKYUCRU.js} +3 -1
  40. package/dist/{dist-7U64HDSC.js → dist-UXWV4OKX.js} +8 -2
  41. package/dist/{dist-RMAIFRTW.js → dist-Y7I3CFY5.js} +5 -3
  42. package/dist/{doctor-INBOLZC7.js → doctor-GKZJU7QG.js} +1 -1
  43. package/dist/{edit-S7NZD7H7.js → edit-4CLNN5JG.js} +1 -1
  44. package/dist/{graph-ERNQQQ7C.js → graph-YYUXI3F7.js} +1 -1
  45. package/dist/graph-server-ZPXRSGCW.js +116 -0
  46. package/dist/{habits-7BORPC2F.js → habits-O37HTUKE.js} +2 -2
  47. package/dist/index.js +207 -89
  48. package/dist/integrity-MK2OP5TA.js +194 -0
  49. package/dist/integrity-checker-J7YXRTBT.js +11 -0
  50. package/dist/{lint-53GPXKKI.js → lint-HYWGS3JJ.js} +1 -1
  51. package/dist/{list-QTFWN35D.js → list-BTLFHSRC.js} +1 -1
  52. package/dist/list-IUCYPGMK.js +57 -0
  53. package/dist/{lore-loader-S5BXMH27.js → lore-loader-VTEEZDX3.js} +3 -1
  54. package/dist/lore-server-NOOAHKJX.js +118 -0
  55. package/dist/mcp.js +2616 -112
  56. package/dist/migrate-FQVGQNXZ.js +889 -0
  57. package/dist/{migrate-assessments-FPR6C35Z.js → migrate-assessments-JP6Q5KME.js} +1 -1
  58. package/dist/{orchestrate-HMSQ2CED.js → orchestrate-A226N6FC.js} +6 -6
  59. package/dist/platform-server-KK4OCRTV.js +891 -0
  60. package/dist/{probe-SN4BNXOC.js → probe-7JK7IDNI.js} +5 -5
  61. package/dist/{providers-YW3FG6DA.js → providers-YNFSL6HK.js} +1 -1
  62. package/dist/quiz-I75NU2QQ.js +99 -0
  63. package/dist/{record-UGN75GTB.js → record-46CLR4OG.js} +11 -2
  64. package/dist/{reindex-YG3KIXAK.js → reindex-NZQRGKPN.js} +3 -2
  65. package/dist/{remember-IEBQHXHZ.js → remember-4EUZKIIB.js} +1 -1
  66. package/dist/{retag-URLJLMSK.js → retag-KC4JVRLE.js} +1 -1
  67. package/dist/{review-725ZKA7U.js → review-Q7M4CRB5.js} +1 -1
  68. package/dist/{ripple-DFMXLFWI.js → ripple-RI3LOT6R.js} +2 -2
  69. package/dist/{sentinel-FUR3QKCJ.js → sentinel-BKYTBT7M.js} +1 -1
  70. package/dist/sentinel-bridge-IZTXYS5M.js +109 -0
  71. package/dist/sentinel-ui/assets/{index-Zh1YM0C9.css → index-CJ1Wx083.css} +1 -1
  72. package/dist/sentinel-ui/assets/index-S1VJ67dT.js +62 -0
  73. package/dist/sentinel-ui/assets/index-S1VJ67dT.js.map +1 -0
  74. package/dist/sentinel-ui/index.html +2 -2
  75. package/dist/sentinel.js +6 -6
  76. package/dist/{serve-DIALBCTU.js → serve-22A4XOIG.js} +1 -1
  77. package/dist/{university-A66BMZ4Z.js → serve-2YJ6D2Y6.js} +9 -8
  78. package/dist/serve-3V2WXLGM.js +33 -0
  79. package/dist/{server-2VICPDUR.js → server-OFEJ2HJP.js} +25 -2
  80. package/dist/{server-OWBK2WFS.js → server-RDLQ3DK7.js} +49 -4
  81. package/dist/{setup-HOI52TN3.js → setup-M2ZKLKNN.js} +4 -4
  82. package/dist/{shift-DRF5M3G6.js → shift-LNMKFYLR.js} +73 -14
  83. package/dist/{show-GEVVQWWG.js → show-P7GYO43X.js} +1 -1
  84. package/dist/show-PKZMYKRN.js +82 -0
  85. package/dist/{snapshot-XHINQBZS.js → snapshot-Y3COXK4T.js} +2 -2
  86. package/dist/{spawn-DIY7T4QW.js → spawn-SSXZX45U.js} +2 -2
  87. package/dist/status-KLHALGW4.js +71 -0
  88. package/dist/{summary-NV7SBV5O.js → summary-5NQNOD3F.js} +2 -2
  89. package/dist/{sweep-5POCF2E4.js → sweep-EZU3GU6S.js} +1 -1
  90. package/dist/symphony-ROEKK7VD.js +999 -0
  91. package/dist/{team-YOGT2Q2X.js → team-HGLJXWQG.js} +7 -7
  92. package/dist/{timeline-RKXNRMKF.js → timeline-ANC7LVDL.js} +1 -1
  93. package/dist/{triage-GJ6GK647.js → triage-POXJ2TIX.js} +2 -2
  94. package/dist/university-content/courses/.purpose +7 -1
  95. package/dist/university-content/courses/para-101.json +53 -0
  96. package/dist/university-content/courses/para-501.json +166 -0
  97. package/dist/university-content/plsat/.purpose +6 -0
  98. package/dist/university-content/plsat/v3.0.json +400 -1
  99. package/dist/university-content/reference.json +48 -0
  100. package/dist/university-ui/assets/{index-TcsCEBMo.js → index-tfi5xN4Q.js} +2 -2
  101. package/dist/university-ui/assets/{index-TcsCEBMo.js.map → index-tfi5xN4Q.js.map} +1 -1
  102. package/dist/university-ui/index.html +1 -1
  103. package/dist/{upgrade-65QOQXRC.js → upgrade-ANX3LVSA.js} +1 -0
  104. package/dist/validate-GD5XWILV.js +134 -0
  105. package/dist/{validate-TKKRGJKC.js → validate-ZVPNN4FL.js} +1 -1
  106. package/dist/{workspace-L27RR5MF.js → workspace-UIUTHZTD.js} +6 -6
  107. package/package.json +4 -2
  108. package/platform-ui/dist/assets/GitSection-C-GQWHcu.css +1 -0
  109. package/platform-ui/dist/assets/GitSection-DvyJBF_-.js +4 -0
  110. package/platform-ui/dist/assets/GraphSection-BiQrXqfs.js +8 -0
  111. package/platform-ui/dist/assets/GraphSection-BlgXTl53.css +1 -0
  112. package/platform-ui/dist/assets/LoreSection-BaH1FaRb.js +1 -0
  113. package/platform-ui/dist/assets/LoreSection-C3EixkjW.css +1 -0
  114. package/platform-ui/dist/assets/SentinelSection-BI-aIYKL.css +1 -0
  115. package/platform-ui/dist/assets/SentinelSection-DemAznjI.js +1 -0
  116. package/platform-ui/dist/assets/index-CfpZFjea.css +1 -0
  117. package/platform-ui/dist/assets/index-DDKhCt-w.js +57 -0
  118. package/platform-ui/dist/index.html +14 -0
  119. package/dist/graph-server-BZ73HTAT.js +0 -251
  120. package/dist/sentinel-ui/assets/index-C_Wstm64.js +0 -62
  121. package/dist/sentinel-ui/assets/index-C_Wstm64.js.map +0 -1
  122. /package/dist/{chunk-5SXMV4SP.js → chunk-FS3WTUHY.js} +0 -0
package/dist/index.js CHANGED
@@ -1,21 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  initCommand
4
- } from "./chunk-SCC77UUP.js";
5
- import "./chunk-W4VFKZVF.js";
6
- import "./chunk-AK5M6KJB.js";
4
+ } from "./chunk-AKIMFN6I.js";
5
+ import "./chunk-7COU5S2Z.js";
6
+ import "./chunk-36TKPM5Z.js";
7
7
  import {
8
8
  aggregateFromDirectory,
9
9
  buildSymbolIndex,
10
10
  getSymbolCounts
11
- } from "./chunk-6P4IFIK2.js";
11
+ } from "./chunk-ZGUAAVMA.js";
12
12
  import {
13
13
  findPurposeFiles
14
- } from "./chunk-MRENOFTR.js";
14
+ } from "./chunk-EDOAWN7J.js";
15
15
  import {
16
16
  findGateFiles
17
17
  } from "./chunk-IRKUEJVW.js";
18
- import "./chunk-Z7W7HNRG.js";
18
+ import "./chunk-QDXI2DHR.js";
19
19
  import "./chunk-UPLDI7CN.js";
20
20
  import "./chunk-KB4XJWE3.js";
21
21
  import "./chunk-YO6DVTL7.js";
@@ -111,7 +111,7 @@ ${chalk2.magenta("\u2569 ")}${chalk2.cyan("\u2534 \u2534\u2534\u2514\u2500\u253
111
111
  program.name("paradigm").description("Unified developer tools ecosystem").version(VERSION).addHelpText("before", banner);
112
112
  program.command("init").description("Initialize Paradigm in the current project").option("-f, --force", "Overwrite existing files").option("--name <name>", "Project name").option("--ide <ide>", "Target IDE: cursor, copilot, windsurf, claude").option("--stack <stack>", "Stack preset (e.g., nextjs, fastapi, swift-ios). Auto-detected if omitted.").option("--migrate", "Output migration prompt for existing IDE files").option("--quick", "Non-interactive mode with smart defaults").option("--dry-run", "Show what would be created without creating").action(initCommand);
113
113
  program.command("shift").description("Full project setup in one command (init + team init + scan + sync all IDEs + doctor)").option("-f, --force", "Reinitialize even if already setup").option("-q, --quick", "Skip slow operations (scan)").option("--verify", "Run health checks after setup").option("--ide <ide>", "Target specific IDE instead of all").option("--configure-models", "Force model configuration prompts for team agents").option("--stack <stack>", "Stack preset (e.g., nextjs, fastapi, swift-ios). Auto-detected if omitted.").option("--workspace <name>", "Create or join a multi-project workspace with this name (creates ../.paradigm-workspace)").option("--workspace-path <path>", "Custom workspace file location (default: ../.paradigm-workspace)").action(async (options) => {
114
- const { shiftCommand } = await import("./shift-DRF5M3G6.js");
114
+ const { shiftCommand } = await import("./shift-LNMKFYLR.js");
115
115
  await shiftCommand(options);
116
116
  });
117
117
  program.command("presets").description("List available stack presets for paradigm init/shift").option("-d, --discipline <discipline>", "Filter by discipline (e.g., fullstack, api, mobile)").action(async (options) => {
@@ -143,17 +143,17 @@ program.command("presets").description("List available stack presets for paradig
143
143
  `));
144
144
  });
145
145
  program.command("setup [path]").description("Interactive setup wizard for Paradigm").option("-y, --yes", "Accept all defaults (non-interactive)").option("-f, --force", "Overwrite existing .paradigm config").action(async (path2, options) => {
146
- const { setupCommand } = await import("./setup-HOI52TN3.js");
146
+ const { setupCommand } = await import("./setup-M2ZKLKNN.js");
147
147
  await setupCommand(path2, options);
148
148
  });
149
149
  program.command("status").alias("st").description("Show project status and symbol counts").action(statusCommand);
150
150
  var purposeCmd = program.command("purpose").description("Purpose-related commands");
151
151
  purposeCmd.command("remember [path]").description("Aggregate and display purpose context").action(async (path2 = ".") => {
152
- const { purposeRememberCommand } = await import("./remember-IEBQHXHZ.js");
152
+ const { purposeRememberCommand } = await import("./remember-4EUZKIIB.js");
153
153
  await purposeRememberCommand(path2);
154
154
  });
155
155
  purposeCmd.command("validate [path]").description("Validate purpose files").action(async (path2 = ".") => {
156
- const { purposeValidateCommand } = await import("./validate-TKKRGJKC.js");
156
+ const { purposeValidateCommand } = await import("./validate-ZVPNN4FL.js");
157
157
  await purposeValidateCommand(path2);
158
158
  });
159
159
  var portalCmd = program.command("portal").description("Portal-related commands");
@@ -183,11 +183,11 @@ portalCmd.command("export [path]").description("Export portal configuration in j
183
183
  });
184
184
  var premiseCmd = program.command("premise").description("Premise-related commands");
185
185
  premiseCmd.command("aggregate [path]").description("Aggregate all sources into symbol index").action(async (path2 = ".") => {
186
- const { premiseAggregateCommand } = await import("./aggregate-M5WMUI6B.js");
186
+ const { premiseAggregateCommand } = await import("./aggregate-SV3VGEIL.js");
187
187
  await premiseAggregateCommand(path2);
188
188
  });
189
189
  premiseCmd.command("snapshot <name>").description("Create a timeline snapshot").option("-d, --description <desc>", "Snapshot description").action(async (name, options) => {
190
- const { premiseSnapshotCommand } = await import("./snapshot-XHINQBZS.js");
190
+ const { premiseSnapshotCommand } = await import("./snapshot-Y3COXK4T.js");
191
191
  await premiseSnapshotCommand(name, options.description);
192
192
  });
193
193
  program.command("sync [ide]").description("Generate IDE instruction files from .paradigm/ config").option("--all", "Sync all supported IDEs").option("-f, --force", "Overwrite existing files").option("--mcp", "Generate MCP configuration (default: true)").option("--no-mcp", "Skip MCP configuration generation").option("--nested", "Generate nested CLAUDE.md files for directories with .purpose").action(async (ide, options) => {
@@ -200,28 +200,32 @@ program.command("sync-llms").description("Generate llms.txt \u2014 LLM-readable
200
200
  });
201
201
  program.command("cursorrules [path]").description("[DEPRECATED] Use `paradigm sync cursor` instead").option("-a, --append", "Append to existing .cursorrules").option("-f, --force", "Overwrite existing .cursorrules").option("-p, --preview", "Preview output without writing").option("--init", "Create default .paradigm config if missing").option("--with-scan", "Include probe protocol section").action(async (path2, options) => {
202
202
  console.log("\x1B[33m\u26A0\uFE0F `paradigm cursorrules` is deprecated. Use `paradigm sync cursor` instead.\x1B[0m\n");
203
- const { cursorrrulesCommand } = await import("./cursorrules-XBWFX66V.js");
203
+ const { cursorrrulesCommand } = await import("./cursorrules-3TKZ4E4R.js");
204
204
  await cursorrrulesCommand(path2, options);
205
205
  });
206
206
  program.command("index [path]").description("Generate probe index for visual discovery").option("-o, --output <path>", "Output path for probe-index.json").option("-q, --quiet", "Suppress output").action(async (path2, options) => {
207
- const { indexCommand } = await import("./probe-SN4BNXOC.js");
207
+ const { indexCommand } = await import("./probe-7JK7IDNI.js");
208
208
  await indexCommand(path2, options);
209
209
  });
210
210
  var probeCmd = program.command("probe").description("Probe-related commands");
211
211
  probeCmd.command("index [path]").description("Generate probe index (alias for `paradigm index`)").option("-o, --output <path>", "Output path for probe-index.json").option("-q, --quiet", "Suppress output").action(async (path2, options) => {
212
- const { indexCommand } = await import("./probe-SN4BNXOC.js");
212
+ const { indexCommand } = await import("./probe-7JK7IDNI.js");
213
213
  await indexCommand(path2, options);
214
214
  });
215
- program.command("upgrade [path]").description("Upgrade project with new Paradigm features").option("--features <features...>", "Features to upgrade (probe, logger)").option("--all", "Apply all available upgrades").option("--from-horizon", "Migrate from Horizon to Paradigm").option("--dry-run", "Show what would be upgraded without making changes").option("-f, --force", "Force re-upgrade even if already configured").action(async (path2, options) => {
216
- const { upgradeCommand } = await import("./upgrade-65QOQXRC.js");
215
+ program.command("migrate").description("Detect and apply migrations to bring project up to date").option("--dry-run", "Preview changes without applying").option("--apply", "Apply all auto migrations without prompting").option("-f, --force", "Re-run previously applied migrations").option("--only <ids...>", "Run specific migrations by ID").option("--category <cat>", "Run migrations in a category (directory, config, template, hook)").option("--no-sync", "Skip template sync").option("--list", "List all migrations and their status").option("-v, --verbose", "Show detailed output").action(async (options) => {
216
+ const { migrateCommand } = await import("./migrate-FQVGQNXZ.js");
217
+ await migrateCommand(options);
218
+ });
219
+ program.command("upgrade [path]").description("(Deprecated) Upgrade project with new Paradigm features \u2014 use `paradigm migrate`").option("--features <features...>", "Features to upgrade (probe, logger)").option("--all", "Apply all available upgrades").option("--from-horizon", "Migrate from Horizon to Paradigm").option("--dry-run", "Show what would be upgraded without making changes").option("-f, --force", "Force re-upgrade even if already configured").action(async (path2, options) => {
220
+ const { upgradeCommand } = await import("./upgrade-ANX3LVSA.js");
217
221
  await upgradeCommand(path2, options);
218
222
  });
219
223
  program.command("lint [path]").description("Validate .purpose files for schema errors").option("-f, --fix", "Auto-fix issues where possible").option("-s, --strict", "Fail on warnings (not just errors)").option("-q, --quiet", "Suppress output except errors").option("--json", "Output as JSON").option("--auto-populate", "Scan for undocumented source dirs and suggest .purpose entries (use with --fix to write)").action(async (path2, options) => {
220
- const { lintCommand } = await import("./lint-53GPXKKI.js");
224
+ const { lintCommand } = await import("./lint-HYWGS3JJ.js");
221
225
  await lintCommand(path2, options);
222
226
  });
223
227
  program.command("cost [path]").description("Analyze token costs for AI context").option("-d, --detailed", "Show detailed breakdown by file").option("--json", "Output as JSON").action(async (path2, options) => {
224
- const { costCommand } = await import("./cost-CTGSLSOC.js");
228
+ const { costCommand } = await import("./cost-UD3WPEKZ.js");
225
229
  await costCommand(path2, options);
226
230
  });
227
231
  var scanCmd = program.command("scan").description("Visual discovery and auto-generation commands");
@@ -245,7 +249,7 @@ flowCmd.action(() => {
245
249
  });
246
250
  var teamCmd = program.command("team").description("Multi-agent orchestration commands");
247
251
  teamCmd.command("init [path]").description("Initialize team configuration with default agents").option("-f, --force", "Overwrite existing configuration").option("--configure-models", "Force model configuration prompts").option("--no-configure-models", "Skip model configuration").option("--json", "Output as JSON").action(async (path2, options) => {
248
- const { teamInitCommand } = await import("./team-YOGT2Q2X.js");
252
+ const { teamInitCommand } = await import("./team-HGLJXWQG.js");
249
253
  await teamInitCommand(path2, {
250
254
  ...options,
251
255
  configureModels: options.configureModels,
@@ -253,47 +257,47 @@ teamCmd.command("init [path]").description("Initialize team configuration with d
253
257
  });
254
258
  });
255
259
  teamCmd.command("status [path]").description("Show current team status").option("--running", "Show only running orchestrations").option("--id <id>", "Show specific orchestration").option("--json", "Output as JSON").action(async (path2, options) => {
256
- const { teamStatusCommand } = await import("./team-YOGT2Q2X.js");
260
+ const { teamStatusCommand } = await import("./team-HGLJXWQG.js");
257
261
  await teamStatusCommand(path2, options);
258
262
  });
259
263
  teamCmd.command("handoff [path]").description("Hand off current task to another agent").requiredOption("-t, --to <agent>", "Target agent name").option("-s, --summary <text>", "Summary of what was done").option("--json", "Output as JSON").action(async (path2, options) => {
260
- const { teamHandoffCommand } = await import("./team-YOGT2Q2X.js");
264
+ const { teamHandoffCommand } = await import("./team-HGLJXWQG.js");
261
265
  await teamHandoffCommand(path2, options);
262
266
  });
263
267
  teamCmd.command("accept [handoff-id] [path]").description("Accept a pending handoff").option("-n, --note <text>", "Acceptance note").option("--json", "Output as JSON").action(async (handoffId, path2, options) => {
264
- const { teamAcceptCommand } = await import("./team-YOGT2Q2X.js");
268
+ const { teamAcceptCommand } = await import("./team-HGLJXWQG.js");
265
269
  await teamAcceptCommand(handoffId, path2, options);
266
270
  });
267
271
  teamCmd.command("check [path]").description("Check for conflicts and team health issues").option("--json", "Output as JSON").action(async (path2, options) => {
268
- const { teamCheckCommand } = await import("./team-YOGT2Q2X.js");
272
+ const { teamCheckCommand } = await import("./team-HGLJXWQG.js");
269
273
  await teamCheckCommand(path2, options);
270
274
  });
271
275
  teamCmd.command("history [path]").description("Show full activity log").option("-l, --limit <number>", "Number of entries to show", "50").option("--json", "Output as JSON").action(async (path2, options) => {
272
- const { teamHistoryCommand } = await import("./team-YOGT2Q2X.js");
276
+ const { teamHistoryCommand } = await import("./team-HGLJXWQG.js");
273
277
  await teamHistoryCommand(path2, { ...options, limit: parseInt(options.limit) });
274
278
  });
275
279
  teamCmd.command("reset [path]").description("Reset team state for fresh start").option("-f, --force", "Force reset even with pending work").option("--json", "Output as JSON").action(async (path2, options) => {
276
- const { teamResetCommand } = await import("./team-YOGT2Q2X.js");
280
+ const { teamResetCommand } = await import("./team-HGLJXWQG.js");
277
281
  await teamResetCommand(path2, options);
278
282
  });
279
283
  teamCmd.command("spawn <agent> [path]").description("Spawn an AI agent to work on a task").requiredOption("-t, --task <task>", "Task for the agent to perform").option("-m, --model <model>", "Model to use: opus, sonnet, haiku").option("-p, --provider <provider>", "Provider: auto, claude, claude-code, claude-cli, manual").option("--budget <budget>", 'Budget limits (e.g., "tokens=100000,cost=2")').option("--timeout <ms>", "Timeout in milliseconds").option("--checkpoint", "Pause for approval before writes/deletes").option("-q, --quiet", "Suppress output").option("--json", "Output as JSON").action(async (agent, path2, options) => {
280
- const { teamSpawnCommand } = await import("./spawn-DIY7T4QW.js");
284
+ const { teamSpawnCommand } = await import("./spawn-SSXZX45U.js");
281
285
  await teamSpawnCommand(agent, path2, options);
282
286
  });
283
287
  teamCmd.command("orchestrate <task> [path]").description("Orchestrate a multi-agent task").option("--solo", "Run in solo mode (single Claude)").option("--faceted", "Run in faceted mode (multi-agent, default)").option("--compare", "Run both modes and compare results").option("--background", "Run in background mode (returns immediately)").option("--notify <methods>", "Notification methods: bell,desktop,file,webhook (default: bell)").option("-m, --model <model>", "Orchestrator model: opus, sonnet, haiku").option("-p, --provider <provider>", "Provider: auto, claude, claude-code, claude-cli, manual").option("--budget <budget>", 'Budget limits (e.g., "tokens=500000,cost=5")').option("--checkpoint", "Pause for approval between agents").option("--live", "Stream agent output live").option("--pm", "Enable PM governance (compliance checks before/after)").option("-q, --quiet", "Suppress output").option("--json", "Output as JSON").action(async (task, path2, options) => {
284
- const { teamOrchestrateCommand } = await import("./orchestrate-HMSQ2CED.js");
288
+ const { teamOrchestrateCommand } = await import("./orchestrate-A226N6FC.js");
285
289
  await teamOrchestrateCommand(task, path2, options);
286
290
  });
287
291
  teamCmd.command("diff <orchestration-id> [path]").description("Show diff of changes from a completed orchestration").option("--full", "Show full file contents").option("--json", "Output as JSON").action(async (orchestrationId, path2, options) => {
288
- const { teamDiffCommand } = await import("./diff-AH7L4PRQ.js");
292
+ const { teamDiffCommand } = await import("./diff-IP5CIARP.js");
289
293
  await teamDiffCommand(orchestrationId, path2, options);
290
294
  });
291
295
  teamCmd.command("accept-orch <orchestration-id> [path]").description("Accept orchestration changes").option("-n, --note <text>", "Acceptance note").option("--json", "Output as JSON").action(async (orchestrationId, path2, options) => {
292
- const { teamAcceptOrchestrationCommand } = await import("./accept-orchestration-6EM5EHXA.js");
296
+ const { teamAcceptOrchestrationCommand } = await import("./accept-orchestration-ZUWQUHSK.js");
293
297
  await teamAcceptOrchestrationCommand(orchestrationId, path2, options);
294
298
  });
295
299
  teamCmd.command("reject-orch <orchestration-id> [path]").description("Reject orchestration changes").option("-r, --reason <text>", "Rejection reason").option("--cleanup", "Delete created files").option("--json", "Output as JSON").action(async (orchestrationId, path2, options) => {
296
- const { teamRejectOrchestrationCommand } = await import("./accept-orchestration-6EM5EHXA.js");
300
+ const { teamRejectOrchestrationCommand } = await import("./accept-orchestration-ZUWQUHSK.js");
297
301
  await teamRejectOrchestrationCommand(orchestrationId, path2, options);
298
302
  });
299
303
  teamCmd.command("cost [path]").description("Show cost summary for orchestrations").option("--from <date>", "From date (ISO format)").option("--to <date>", "To date (ISO format)").option("--days <n>", "Last N days").option("-d, --detailed", "Show detailed breakdown").option("--json", "Output as JSON").action(async (path2, options) => {
@@ -305,11 +309,11 @@ teamCmd.command("export [path]").description("Export orchestration data").option
305
309
  await teamExportCommand(path2, options);
306
310
  });
307
311
  teamCmd.command("providers [path]").description("Show available agent providers and their status").option("--set <provider>", "Set preferred provider: auto, claude, claude-code, claude-cli, manual").option("--json", "Output as JSON").action(async (path2, options) => {
308
- const { teamProvidersCommand } = await import("./providers-YW3FG6DA.js");
312
+ const { teamProvidersCommand } = await import("./providers-YNFSL6HK.js");
309
313
  await teamProvidersCommand(path2, options);
310
314
  });
311
315
  teamCmd.command("models [path]").description("Configure or view agent model assignments").option("--refresh", "Refresh model cache from environment").option("--json", "Output as JSON").action(async (path2, options) => {
312
- const { teamModelsCommand } = await import("./team-YOGT2Q2X.js");
316
+ const { teamModelsCommand } = await import("./team-HGLJXWQG.js");
313
317
  await teamModelsCommand(path2, options);
314
318
  });
315
319
  var agentsCmd = teamCmd.command("agents").description("Agent management commands");
@@ -324,7 +328,7 @@ agentsCmd.action(() => {
324
328
  console.log("\nRun `paradigm team agents suggest --help` for options.\n");
325
329
  });
326
330
  teamCmd.action(async () => {
327
- const { teamStatusCommand } = await import("./team-YOGT2Q2X.js");
331
+ const { teamStatusCommand } = await import("./team-HGLJXWQG.js");
328
332
  await teamStatusCommand(void 0, {});
329
333
  });
330
334
  var pluginCmd = program.command("plugin").description("Plugin management commands");
@@ -338,27 +342,31 @@ pluginCmd.action(async () => {
338
342
  });
339
343
  var workspaceCmd = program.command("workspace").description("Multi-project workspace commands");
340
344
  workspaceCmd.command("init").description("Create a .paradigm-workspace file from sibling projects").option("-n, --name <name>", "Workspace name (default: directory name)").option("-f, --force", "Overwrite existing workspace file").action(async (options) => {
341
- const { workspaceInitCommand } = await import("./workspace-L27RR5MF.js");
345
+ const { workspaceInitCommand } = await import("./workspace-UIUTHZTD.js");
342
346
  await workspaceInitCommand(options);
343
347
  });
344
348
  workspaceCmd.command("status").description("Show workspace member status and symbol counts").option("--json", "Output as JSON").action(async (options) => {
345
- const { workspaceStatusCommand } = await import("./workspace-L27RR5MF.js");
349
+ const { workspaceStatusCommand } = await import("./workspace-UIUTHZTD.js");
346
350
  await workspaceStatusCommand(options);
347
351
  });
348
352
  workspaceCmd.command("reindex").description("Rebuild scan-index.json for all workspace members").option("-q, --quiet", "Suppress progress output").action(async (options) => {
349
- const { workspaceReindexCommand } = await import("./workspace-L27RR5MF.js");
353
+ const { workspaceReindexCommand } = await import("./workspace-UIUTHZTD.js");
350
354
  await workspaceReindexCommand(options);
351
355
  });
352
356
  workspaceCmd.action(async () => {
353
- const { workspaceStatusCommand } = await import("./workspace-L27RR5MF.js");
357
+ const { workspaceStatusCommand } = await import("./workspace-UIUTHZTD.js");
354
358
  await workspaceStatusCommand({});
355
359
  });
356
360
  program.command("doctor").description("Health check - validate Paradigm setup").option("--context", "Run only context audit checks (CLAUDE.md quality)").action(async (options) => {
357
- const { doctorCommand } = await import("./doctor-INBOLZC7.js");
361
+ const { doctorCommand } = await import("./doctor-GKZJU7QG.js");
358
362
  await doctorCommand(options);
359
363
  });
364
+ program.command("integrity").description("Symbol integrity check \u2014 broken refs, duplicates, orphans, missing anchors").option("--json", "Output machine-readable JSON").action(async (options) => {
365
+ const { integrityCommand } = await import("./integrity-MK2OP5TA.js");
366
+ await integrityCommand(options);
367
+ });
360
368
  program.command("sweep").description("Entropy detection and cleanup \u2014 find orphaned symbols, stale purpose files, phantom gates").option("--dry", "Report only, no fixes applied").option("--skip-fix", "Same as --dry").option("-q, --quiet", "Minimal output").action(async (options) => {
361
- const { sweepCommand } = await import("./sweep-5POCF2E4.js");
369
+ const { sweepCommand } = await import("./sweep-EZU3GU6S.js");
362
370
  await sweepCommand(options);
363
371
  });
364
372
  var driftCmd = program.command("drift").description("Aspect anchor drift detection");
@@ -379,19 +387,19 @@ program.command("watch").description("Watch for changes and auto-sync IDE files"
379
387
  await watchCommand();
380
388
  });
381
389
  program.command("summary").description("Generate .paradigm/project.md with project stats").action(async () => {
382
- const { summaryCommand } = await import("./summary-NV7SBV5O.js");
390
+ const { summaryCommand } = await import("./summary-5NQNOD3F.js");
383
391
  await summaryCommand();
384
392
  });
385
393
  program.command("constellation [path]").alias("const").description("Generate .paradigm/constellation.json - symbol relationship graph for AI agents").option("-f, --format <format>", "Output format: json or yaml", "json").option("-o, --output <path>", "Custom output path").option("-q, --quiet", "Suppress output").action(async (path2, options) => {
386
- const { constellationCommand } = await import("./constellation-NXU6Q2HM.js");
394
+ const { constellationCommand } = await import("./constellation-FAGT45TU.js");
387
395
  await constellationCommand(path2, options);
388
396
  });
389
397
  program.command("beacon [path]").description("Generate .paradigm/beacon.md - quick-start orientation for AI agents").option("-r, --refresh", "Regenerate even if beacon exists").option("-o, --output <path>", "Custom output path").option("--json", "Output as JSON (for AI agent queries)").option("-q, --quiet", "Suppress output").action(async (path2, options) => {
390
- const { beaconCommand } = await import("./beacon-XL2ALH5O.js");
398
+ const { beaconCommand } = await import("./beacon-3SJV4DAP.js");
391
399
  await beaconCommand(path2, options);
392
400
  });
393
401
  program.command("ripple <symbol> [path]").description("Show change impact analysis for a symbol").option("-d, --depth <depth>", "Analysis depth (default: 1)", "1").option("--json", "Output as JSON").option("-q, --quiet", "Suppress output").action(async (symbol, path2, options) => {
394
- const { rippleCommand } = await import("./ripple-DFMXLFWI.js");
402
+ const { rippleCommand } = await import("./ripple-RI3LOT6R.js");
395
403
  await rippleCommand(symbol, path2, options);
396
404
  });
397
405
  var threadCmd = program.command("thread").description("Session continuity - pass context between AI agent sessions");
@@ -580,180 +588,221 @@ hooksCmd.action(async () => {
580
588
  });
581
589
  var triageCmd = program.command("triage").description("Semantic error triage - incident management and pattern matching");
582
590
  triageCmd.command("list").alias("ls").description("List recent incidents with matched patterns").option("-l, --limit <number>", "Maximum incidents to show", "10").option("-s, --status <status>", "Filter by status: open, investigating, resolved, wont-fix, all").option("--symbol <symbol>", "Filter by symbol (e.g., @checkout, ^auth)").option("-e, --env <environment>", "Filter by environment").option("--search <text>", "Search in error messages").option("--from <date>", "Filter from date (ISO format)").option("--to <date>", "Filter to date (ISO format)").option("--json", "Output as JSON").action(async (options) => {
583
- const { triageListCommand } = await import("./triage-GJ6GK647.js");
591
+ const { triageListCommand } = await import("./triage-POXJ2TIX.js");
584
592
  await triageListCommand(options);
585
593
  });
586
594
  triageCmd.command("show <id>").description("Show full incident details").option("--timeline", "Include flow timeline").option("--json", "Output as JSON").action(async (id, options) => {
587
- const { triageShowCommand } = await import("./triage-GJ6GK647.js");
595
+ const { triageShowCommand } = await import("./triage-POXJ2TIX.js");
588
596
  await triageShowCommand(id, options);
589
597
  });
590
598
  triageCmd.command("resolve <id>").description("Mark incident as resolved").option("-p, --pattern <patternId>", "Pattern that led to resolution").option("-c, --commit <hash>", "Git commit hash of fix").option("--pr <url>", "Pull request URL").option("-n, --notes <text>", "Resolution notes").option("--wont-fix", "Mark as will not fix").action(async (id, options) => {
591
- const { triageResolveCommand } = await import("./triage-GJ6GK647.js");
599
+ const { triageResolveCommand } = await import("./triage-POXJ2TIX.js");
592
600
  await triageResolveCommand(id, options);
593
601
  });
594
602
  triageCmd.command("note <id> <note>").description("Add a note to an incident").action(async (id, note) => {
595
- const { triageNoteCommand } = await import("./triage-GJ6GK647.js");
603
+ const { triageNoteCommand } = await import("./triage-POXJ2TIX.js");
596
604
  await triageNoteCommand(id, note);
597
605
  });
598
606
  triageCmd.command("link <id1> <id2>").description("Link two related incidents").action(async (id1, id2) => {
599
- const { triageLinkCommand } = await import("./triage-GJ6GK647.js");
607
+ const { triageLinkCommand } = await import("./triage-POXJ2TIX.js");
600
608
  await triageLinkCommand(id1, id2);
601
609
  });
602
610
  var triagePatternsCmd = triageCmd.command("patterns").description("Manage failure patterns");
603
611
  triagePatternsCmd.command("list").alias("ls").description("List all patterns").option("--source <source>", "Filter by source: manual, suggested, imported, community").option("--min-confidence <score>", "Minimum confidence score").option("--json", "Output as JSON").action(async (options) => {
604
- const { triagePatternsListCommand } = await import("./triage-GJ6GK647.js");
612
+ const { triagePatternsListCommand } = await import("./triage-POXJ2TIX.js");
605
613
  await triagePatternsListCommand(options);
606
614
  });
607
615
  triagePatternsCmd.command("show <id>").description("Show pattern details").option("--json", "Output as JSON").action(async (id, options) => {
608
- const { triagePatternsShowCommand } = await import("./triage-GJ6GK647.js");
616
+ const { triagePatternsShowCommand } = await import("./triage-POXJ2TIX.js");
609
617
  await triagePatternsShowCommand(id, options);
610
618
  });
611
619
  triagePatternsCmd.command("add").description("Create a new pattern").requiredOption("--id <id>", "Pattern ID (kebab-case)").requiredOption("--name <name>", "Human-readable name").option("--description <text>", "Pattern description").option("--symbols <pairs>", 'Symbol criteria (e.g., "feature:@checkout,gate:^auth")').option("--error-contains <keywords>", "Error keywords (comma-separated)").option("--missing-signals <signals>", "Expected missing signals (comma-separated)").option("--strategy <strategy>", "Resolution strategy: retry, fallback, fix-data, fix-code, ignore, escalate", "fix-code").option("--priority <priority>", "Priority: low, medium, high, critical", "medium").option("--code-hint <text>", "Code hint for resolution").option("--tags <tags>", "Tags (comma-separated)").option("--from-incident <id>", "Generate suggestion from incident").action(async (options) => {
612
- const { triagePatternsAddCommand } = await import("./triage-GJ6GK647.js");
620
+ const { triagePatternsAddCommand } = await import("./triage-POXJ2TIX.js");
613
621
  await triagePatternsAddCommand(options);
614
622
  });
615
623
  triagePatternsCmd.command("delete <id>").alias("rm").description("Delete a pattern").action(async (id) => {
616
- const { triagePatternsDeleteCommand } = await import("./triage-GJ6GK647.js");
624
+ const { triagePatternsDeleteCommand } = await import("./triage-POXJ2TIX.js");
617
625
  await triagePatternsDeleteCommand(id);
618
626
  });
619
627
  triagePatternsCmd.command("test <id>").description("Test pattern against historical incidents").option("-l, --limit <number>", "Max incidents to test against", "100").option("--json", "Output as JSON").action(async (id, options) => {
620
- const { triagePatternsTestCommand } = await import("./triage-GJ6GK647.js");
628
+ const { triagePatternsTestCommand } = await import("./triage-POXJ2TIX.js");
621
629
  await triagePatternsTestCommand(id, options);
622
630
  });
623
631
  triagePatternsCmd.command("seed").description("Load built-in seed patterns").action(async () => {
624
- const { triagePatternsSeedCommand } = await import("./triage-GJ6GK647.js");
632
+ const { triagePatternsSeedCommand } = await import("./triage-POXJ2TIX.js");
625
633
  await triagePatternsSeedCommand();
626
634
  });
627
635
  triagePatternsCmd.action(async () => {
628
- const { triagePatternsListCommand } = await import("./triage-GJ6GK647.js");
636
+ const { triagePatternsListCommand } = await import("./triage-POXJ2TIX.js");
629
637
  await triagePatternsListCommand({});
630
638
  });
631
639
  triageCmd.command("export <type>").description("Export patterns or full backup (type: patterns, backup)").option("-o, --output <path>", "Output file path").option("--include-private", "Include private patterns").action(async (type, options) => {
632
- const { triageExportCommand } = await import("./triage-GJ6GK647.js");
640
+ const { triageExportCommand } = await import("./triage-POXJ2TIX.js");
633
641
  await triageExportCommand(type, options);
634
642
  });
635
643
  triageCmd.command("import <file>").description("Import patterns from JSON file").option("--overwrite", "Overwrite existing patterns").action(async (file, options) => {
636
- const { triageImportCommand } = await import("./triage-GJ6GK647.js");
644
+ const { triageImportCommand } = await import("./triage-POXJ2TIX.js");
637
645
  await triageImportCommand(file, options);
638
646
  });
639
647
  triageCmd.command("restore <file>").description("Restore from full backup").action(async (file) => {
640
- const { triageRestoreCommand } = await import("./triage-GJ6GK647.js");
648
+ const { triageRestoreCommand } = await import("./triage-POXJ2TIX.js");
641
649
  await triageRestoreCommand(file);
642
650
  });
643
651
  triageCmd.command("stats").description("Show statistics dashboard").option("-p, --period <period>", "Time period: 1d, 7d, 30d, 90d", "7d").option("--symbol <symbol>", "Show health for specific symbol").option("--json", "Output as JSON").action(async (options) => {
644
- const { triageStatsCommand } = await import("./triage-GJ6GK647.js");
652
+ const { triageStatsCommand } = await import("./triage-POXJ2TIX.js");
645
653
  await triageStatsCommand(options);
646
654
  });
647
655
  triageCmd.command("record").description("Manually record an incident").requiredOption("--error <message>", "Error message").requiredOption("-e, --env <environment>", "Environment").option("--feature <symbol>", "Feature symbol (@...)").option("--component <symbol>", "Component symbol (#...)").option("--flow <symbol>", "Flow symbol ($...)").option("--gate <symbol>", "Gate symbol (^...)").option("--signal <symbol>", "Signal symbol (!...)").option("--state <symbol>", "State symbol (%...)").option("--integration <symbol>", "Integration symbol (&...)").option("--service <name>", "Service name").option("--version <version>", "App version").option("--stack <trace>", "Stack trace").option("--json", "Output as JSON").action(async (options) => {
648
- const { triageRecordCommand } = await import("./triage-GJ6GK647.js");
656
+ const { triageRecordCommand } = await import("./triage-POXJ2TIX.js");
649
657
  await triageRecordCommand(options);
650
658
  });
651
659
  triageCmd.option("-l, --limit <number>", "Maximum incidents to show", "10").option("-s, --status <status>", "Filter by status").option("--json", "Output as JSON").action(async (options) => {
652
- const { triageListCommand } = await import("./triage-GJ6GK647.js");
660
+ const { triageListCommand } = await import("./triage-POXJ2TIX.js");
653
661
  await triageListCommand(options);
654
662
  });
655
663
  var loreCmd = program.command("lore").description("Project lore - timeline of everything that happened to this project");
656
664
  loreCmd.command("list").alias("ls").description("List recent lore entries").option("--author <author>", "Filter by author").option("--type <type>", "Filter by type: agent-session, human-note, decision, review, incident, milestone, retro, insight").option("--symbol <symbol>", "Filter by symbol").option("--tags <tags>", "Filter by tags (comma-separated)").option("--from <date>", "Filter from date (ISO format, e.g., 2026-02-20)").option("--to <date>", "Filter to date (ISO format)").option("-l, --limit <number>", "Number of entries", "20").option("--json", "Output as JSON").action(async (options) => {
657
- const { loreListCommand } = await import("./list-QTFWN35D.js");
665
+ const { loreListCommand } = await import("./list-BTLFHSRC.js");
658
666
  await loreListCommand(options);
659
667
  });
660
668
  loreCmd.command("show <id>").description("Show full detail for a lore entry").option("--json", "Output as JSON").action(async (id, options) => {
661
- const { loreShowCommand } = await import("./show-GEVVQWWG.js");
669
+ const { loreShowCommand } = await import("./show-P7GYO43X.js");
662
670
  await loreShowCommand(id, options);
663
671
  });
664
- loreCmd.command("record").description("Record a new lore entry (human note, milestone, etc.)").option("--type <type>", "Entry type: human-note, decision, milestone, retro, insight", "human-note").option("--author <author>", "Author name").option("--title <title>", "Entry title").option("--summary <summary>", "Entry summary").option("--symbols <symbols>", "Comma-separated symbols").option("--tags <tags>", "Comma-separated tags").option("--files-modified <files>", "Comma-separated files modified").option("--files-created <files>", "Comma-separated files created").option("--commit <hash>", "Git commit hash").option("--learnings <items>", "Comma-separated learnings").option("--duration <minutes>", "Duration in minutes").option("--meta <json>", `Project-defined metadata as JSON (e.g., '{"sprint": 12}')`).option("--body <text>", "Long-form content (detailed notes, rationale, etc.)").option("--link-lore <ids>", "Comma-separated lore entry IDs to link").option("--link-commits <shas>", "Comma-separated git commit SHAs to link").action(async (options) => {
665
- const { loreRecordCommand } = await import("./record-UGN75GTB.js");
672
+ loreCmd.command("record").description("Record a new lore entry (human note, milestone, etc.)").option("--type <type>", "Entry type: human-note, decision, milestone, retro, insight", "human-note").option("--author <author>", "Author name").option("--title <title>", "Entry title").option("--summary <summary>", "Entry summary").option("--symbols <symbols>", "Comma-separated symbols").option("--tags <tags>", "Comma-separated tags").option("--files-modified <files>", "Comma-separated files modified").option("--files-created <files>", "Comma-separated files created").option("--commit <hash>", "Git commit hash").option("--learnings <items>", "Comma-separated learnings").option("--duration <minutes>", "Duration in minutes").option("--meta <json>", `Project-defined metadata as JSON (e.g., '{"sprint": 12}')`).option("--body <text>", "Long-form content (detailed notes, rationale, etc.)").option("--link-lore <ids>", "Comma-separated lore entry IDs to link").option("--link-commits <shas>", "Comma-separated git commit SHAs to link").option("--confidence <number>", "Confidence in correctness (0.0 to 1.0)").action(async (options) => {
673
+ const { loreRecordCommand } = await import("./record-46CLR4OG.js");
666
674
  await loreRecordCommand(options);
667
675
  });
668
676
  loreCmd.command("review <id>").description("Add a review to a lore entry").option("--reviewer <name>", "Reviewer name").option("--completeness <n>", "Completeness score (1-5)", "3").option("--quality <n>", "Quality score (1-5)", "3").option("--notes <text>", "Review notes").action(async (id, options) => {
669
- const { loreReviewCommand } = await import("./review-725ZKA7U.js");
677
+ const { loreReviewCommand } = await import("./review-Q7M4CRB5.js");
670
678
  await loreReviewCommand(id, options);
671
679
  });
680
+ loreCmd.command("assess <id> <verdict>").description("Record an assessment verdict on a lore entry (correct/partial/incorrect)").option("--assessor <name>", "Assessor name").option("--notes <text>", "Assessment notes").action(async (id, verdict, options) => {
681
+ const { loreAssessCommand } = await import("./assess-UHBDYIK7.js");
682
+ await loreAssessCommand(id, verdict, options);
683
+ });
684
+ loreCmd.command("calibration").description("Show calibration statistics across assessed lore entries").option("--symbol <symbol>", "Filter by symbol").option("--tag <tag>", "Filter by tag").option("--author <author>", "Filter by author").option("--group-by <dimension>", "Group by: symbol, tag, type").option("--json", "Output as JSON").action(async (options) => {
685
+ const { loreCalibrationCommand } = await import("./calibration-WWHK73WU.js");
686
+ await loreCalibrationCommand(options);
687
+ });
672
688
  loreCmd.command("edit <id>").description("Edit an existing lore entry").option("--title <title>", "New title").option("--summary <summary>", "New summary").option("--type <type>", "New type: agent-session, human-note, decision, review, incident, milestone").option("--symbols <symbols>", "Comma-separated symbols").option("--tags <tags>", "Comma-separated tags").option("--learnings <items>", "Comma-separated learnings").action(async (id, options) => {
673
- const { loreEditCommand } = await import("./edit-S7NZD7H7.js");
689
+ const { loreEditCommand } = await import("./edit-4CLNN5JG.js");
674
690
  await loreEditCommand(id, options);
675
691
  });
676
692
  loreCmd.command("delete <id>").description("Delete a lore entry").option("-y, --yes", "Skip confirmation").option("--dry-run", "Show what would be deleted without making changes").action(async (id, options) => {
677
- const { loreDeleteCommand } = await import("./delete-YTASL4SM.js");
693
+ const { loreDeleteCommand } = await import("./delete-RRK4RL6Y.js");
678
694
  await loreDeleteCommand(id, options);
679
695
  });
680
696
  loreCmd.command("migrate-assessments").description("Migrate assessment entries to lore with arc: tags").option("--dry-run", "Show what would be migrated without making changes").action(async (options) => {
681
- const { loreMigrateAssessmentsCommand } = await import("./migrate-assessments-FPR6C35Z.js");
697
+ const { loreMigrateAssessmentsCommand } = await import("./migrate-assessments-JP6Q5KME.js");
682
698
  await loreMigrateAssessmentsCommand(options);
683
699
  });
684
700
  loreCmd.command("retag").description("Add or remove tags from matching lore entries").option("--add <tag>", "Tag to add").option("--remove <tag>", "Tag to remove").option("--type <type>", "Filter by entry type").option("--symbol <symbol>", "Filter by symbol").option("--author <author>", "Filter by author").option("--from <date>", "Filter from date").option("--to <date>", "Filter to date").option("--tags <tags>", "Filter by existing tags (comma-separated)").option("--dry-run", "Show what would change without making changes").action(async (options) => {
685
- const { loreRetagCommand } = await import("./retag-URLJLMSK.js");
701
+ const { loreRetagCommand } = await import("./retag-KC4JVRLE.js");
686
702
  await loreRetagCommand(options);
687
703
  });
688
704
  loreCmd.command("timeline").description("Show lore timeline grouped by date with hot symbols and authors").option("-l, --limit <number>", "Number of entries", "20").option("--json", "Output as JSON").action(async (options) => {
689
- const { loreTimelineCommand } = await import("./timeline-RKXNRMKF.js");
705
+ const { loreTimelineCommand } = await import("./timeline-ANC7LVDL.js");
690
706
  await loreTimelineCommand(options);
691
707
  });
692
708
  loreCmd.option("-p, --port <port>", "Port to run on", "3840").option("--no-open", "Don't open browser automatically").action(async (options) => {
693
- const { loreServeCommand } = await import("./serve-DIALBCTU.js");
709
+ const { loreServeCommand } = await import("./serve-22A4XOIG.js");
694
710
  await loreServeCommand(void 0, options);
695
711
  });
712
+ program.command("serve").description("Launch Paradigm Platform \u2014 unified development management UI").option("-p, --port <port>", "Port to run on", "3850").option("--no-open", "Don't open browser automatically").option("--sections <list>", "Comma-separated sections to enable (e.g., lore,graph,git)").action(async (options) => {
713
+ const { serveCommand } = await import("./serve-3V2WXLGM.js");
714
+ await serveCommand(options);
715
+ });
696
716
  var graphCmd = program.command("graph").description("Interactive symbol relationship graph").argument("[path]", "Project directory", void 0).option("-p, --port <port>", "Port to run on", "3841").option("--no-open", "Don't open browser automatically").action(async (path2, options) => {
697
- const { graphCommand } = await import("./graph-ERNQQQ7C.js");
717
+ const { graphCommand } = await import("./graph-YYUXI3F7.js");
698
718
  await graphCommand(path2, options);
699
719
  });
700
720
  graphCmd.command("generate").description("Generate a named graph file in .paradigm/graphs/").argument("<name>", "Graph name (used as filename: {name}.graph.json)").argument("[path]", "Project directory", void 0).option("-s, --symbols <list>", "Comma-separated symbol names to include").option("-g, --group <spec...>", 'Group spec: "Label:#sym1,#sym2" (repeatable)').option("-l, --link <spec...>", 'Link spec: "Source>Target:label" (repeatable)').action(async (name, path2, options) => {
701
- const { graphGenerateCommand } = await import("./graph-ERNQQQ7C.js");
721
+ const { graphGenerateCommand } = await import("./graph-YYUXI3F7.js");
702
722
  await graphGenerateCommand(name, path2, options);
703
723
  });
704
724
  var habitsCmd = program.command("habits").description("Behavioral habits - practice tracking and compliance");
705
725
  habitsCmd.command("list").alias("ls").description("List all configured habits").option("--trigger <trigger>", "Filter by trigger: preflight, postflight, on-stop, on-commit").option("--category <category>", "Filter by category: discovery, verification, testing, documentation, collaboration, security").option("--json", "Output as JSON").action(async (options) => {
706
- const { habitsListCommand } = await import("./habits-7BORPC2F.js");
726
+ const { habitsListCommand } = await import("./habits-O37HTUKE.js");
707
727
  await habitsListCommand(options);
708
728
  });
709
729
  habitsCmd.command("status").description("Show practice profile with compliance rates").option("-p, --period <period>", "Time period: 7d, 30d, 90d, all", "30d").option("--json", "Output as JSON").action(async (options) => {
710
- const { habitsStatusCommand } = await import("./habits-7BORPC2F.js");
730
+ const { habitsStatusCommand } = await import("./habits-O37HTUKE.js");
711
731
  await habitsStatusCommand(options);
712
732
  });
713
733
  habitsCmd.command("init").description("Initialize habits.yaml with seed habits").option("-f, --force", "Overwrite existing file").action(async (options) => {
714
- const { habitsInitCommand } = await import("./habits-7BORPC2F.js");
734
+ const { habitsInitCommand } = await import("./habits-O37HTUKE.js");
715
735
  await habitsInitCommand(options);
716
736
  });
717
737
  habitsCmd.command("check").description("Evaluate habit compliance for a trigger point").requiredOption("-t, --trigger <trigger>", "Trigger: preflight, postflight, on-stop, on-commit").option("--record", "Record practice events to Sentinel").option("--json", "Output as JSON").option("--files <files>", "Comma-separated files modified (default: git diff)").option("--symbols <symbols>", "Comma-separated symbols touched").action(async (options) => {
718
- const { habitsCheckCommand } = await import("./habits-7BORPC2F.js");
738
+ const { habitsCheckCommand } = await import("./habits-O37HTUKE.js");
719
739
  await habitsCheckCommand(options);
720
740
  });
721
741
  habitsCmd.command("add").description("Add a custom habit").requiredOption("--id <id>", "Habit ID (kebab-case)").requiredOption("--name <name>", "Human-readable name").requiredOption("--description <desc>", "What this habit enforces").requiredOption("--category <category>", "Category: discovery, verification, testing, documentation, collaboration, security").requiredOption("--trigger <trigger>", "Trigger: preflight, postflight, on-stop, on-commit").option("--severity <severity>", "Severity: advisory, warn, block", "advisory").option("--tools <tools>", "Comma-separated tools to check (for tool-called check type)").option("--check-type <type>", "Check type: tool-called, file-exists, file-modified, lore-recorded, symbols-registered, gates-declared, tests-exist, git-clean", "tool-called").option("--patterns <patterns>", "Comma-separated patterns (for file-exists, file-modified, tests-exist check types)").action(async (options) => {
722
- const { habitsAddCommand } = await import("./habits-7BORPC2F.js");
742
+ const { habitsAddCommand } = await import("./habits-O37HTUKE.js");
723
743
  await habitsAddCommand({ ...options, checkType: options.checkType });
724
744
  });
725
745
  habitsCmd.command("edit <id>").description("Edit a habit (seed habits: only severity/enabled; custom: all fields)").option("--name <name>", "New name").option("--description <desc>", "New description").option("--category <category>", "New category").option("--trigger <trigger>", "New trigger").option("--severity <severity>", "New severity: advisory, warn, block").option("--enabled <bool>", "Enable or disable: true, false").option("--check-type <type>", "New check type").option("--patterns <patterns>", "Comma-separated patterns").option("--tools <tools>", "Comma-separated tools").action(async (id, options) => {
726
- const { habitsEditCommand } = await import("./habits-7BORPC2F.js");
746
+ const { habitsEditCommand } = await import("./habits-O37HTUKE.js");
727
747
  await habitsEditCommand(id, { ...options, checkType: options.checkType });
728
748
  });
729
749
  habitsCmd.command("remove <id>").description("Remove a custom habit (seed habits cannot be removed, only disabled)").option("-y, --yes", "Skip confirmation").action(async (id, options) => {
730
- const { habitsRemoveCommand } = await import("./habits-7BORPC2F.js");
750
+ const { habitsRemoveCommand } = await import("./habits-O37HTUKE.js");
731
751
  await habitsRemoveCommand(id, options);
732
752
  });
733
753
  habitsCmd.command("enable <id>").description("Enable a habit").action(async (id) => {
734
- const { habitsToggleCommand } = await import("./habits-7BORPC2F.js");
754
+ const { habitsToggleCommand } = await import("./habits-O37HTUKE.js");
735
755
  await habitsToggleCommand(id, "enable");
736
756
  });
737
757
  habitsCmd.command("disable <id>").description("Disable a habit").action(async (id) => {
738
- const { habitsToggleCommand } = await import("./habits-7BORPC2F.js");
758
+ const { habitsToggleCommand } = await import("./habits-O37HTUKE.js");
739
759
  await habitsToggleCommand(id, "disable");
740
760
  });
741
761
  habitsCmd.action(async () => {
742
- const { habitsListCommand } = await import("./habits-7BORPC2F.js");
762
+ const { habitsListCommand } = await import("./habits-O37HTUKE.js");
743
763
  await habitsListCommand({});
744
764
  });
745
765
  var sentinelCmd = program.command("sentinel").description("Sentinel \u2014 semantic error monitoring");
746
766
  sentinelCmd.command("defend [path]", { isDefault: true }).description("Launch the Sentinel UI - unified codebase intelligence visualizer").option("-p, --port <port>", "Port to run on", "3838").option("--no-open", "Don't open browser automatically").action(async (path2, options) => {
747
- const { sentinelCommand } = await import("./sentinel-FUR3QKCJ.js");
767
+ const { sentinelCommand } = await import("./sentinel-BKYTBT7M.js");
748
768
  await sentinelCommand(path2, options);
749
769
  });
750
770
  program.command("conductor").description("Launch Paradigm Conductor \u2014 multimodal mission control for Claude Code sessions").option("--build", "Force rebuild the native binary").option("-v, --verbose", "Show build output").action(async (options) => {
751
771
  const { conductorCommand } = await import("./conductor-HLWYWUVH.js");
752
772
  await conductorCommand(options);
753
773
  });
754
- program.command("university").description("Launch Paradigm University - interactive learning platform & PLSAT certification").option("-p, --port <port>", "Port to run on", "3839").option("--no-open", "Don't open browser automatically").action(async (options) => {
755
- const { universityCommand } = await import("./university-A66BMZ4Z.js");
756
- await universityCommand(void 0, options);
774
+ var universityCmd = program.command("university").description("Per-project university - knowledge base, quizzes, learning paths & PLSAT certification");
775
+ universityCmd.command("serve").description("Launch Paradigm University learning platform").option("-p, --port <port>", "Port to run on", "3839").option("--no-open", "Don't open browser automatically").action(async (options) => {
776
+ const { universityServeCommand } = await import("./serve-2YJ6D2Y6.js");
777
+ await universityServeCommand(void 0, options);
778
+ });
779
+ universityCmd.command("list").alias("ls").description("List university content").option("--type <type>", "Filter by type: note, policy, guide, runbook, quiz, path").option("--tag <tag>", "Filter by tag").option("--difficulty <level>", "Filter by difficulty: beginner, intermediate, advanced").option("--symbol <symbol>", "Filter by Paradigm symbol").option("-l, --limit <number>", "Number of entries", "20").option("--json", "Output as JSON").action(async (options) => {
780
+ const { universityListCommand } = await import("./list-IUCYPGMK.js");
781
+ await universityListCommand(options);
782
+ });
783
+ universityCmd.command("add <type>").description("Create university content (note, policy, guide, runbook, quiz)").option("--title <title>", "Content title (required)").option("--body <text>", "Content body (markdown)").option("--tags <tags>", "Comma-separated tags").option("--symbols <symbols>", "Comma-separated Paradigm symbols").option("--difficulty <level>", "Difficulty: beginner, intermediate, advanced").option("--minutes <n>", "Estimated reading time in minutes").action(async (type, options) => {
784
+ const { universityAddCommand } = await import("./add-VSPZ6FM4.js");
785
+ await universityAddCommand(type, options);
786
+ });
787
+ universityCmd.command("show <id>").description("Show a content item in full").option("--json", "Output as JSON").action(async (id, options) => {
788
+ const { universityShowCommand } = await import("./show-PKZMYKRN.js");
789
+ await universityShowCommand(id, options);
790
+ });
791
+ universityCmd.command("quiz <id>").description("Take an interactive quiz in the terminal").action(async (id) => {
792
+ const { universityQuizCommand } = await import("./quiz-I75NU2QQ.js");
793
+ await universityQuizCommand(id);
794
+ });
795
+ universityCmd.command("status").description("Show university content overview and completion stats").option("--json", "Output as JSON").action(async (options) => {
796
+ const { universityStatusCommand } = await import("./status-KLHALGW4.js");
797
+ await universityStatusCommand(options);
798
+ });
799
+ universityCmd.command("validate").description("Validate university content integrity").option("--deep", "Enable deep cross-reference checks against scan-index").option("--id <id>", "Validate a specific content item").option("--json", "Output as JSON").action(async (options) => {
800
+ const { universityValidateCommand } = await import("./validate-GD5XWILV.js");
801
+ await universityValidateCommand(options);
802
+ });
803
+ universityCmd.option("-p, --port <port>", "Port to run on", "3839").option("--no-open", "Don't open browser automatically").action(async (options) => {
804
+ const { universityServeCommand } = await import("./serve-2YJ6D2Y6.js");
805
+ await universityServeCommand(void 0, options);
757
806
  });
758
807
  var pipelineCmd = program.command("pipeline").description("Spec pipeline \u2014 structured feature workflow with configurable gates");
759
808
  pipelineCmd.command("start <description>").description("Create a new pipeline for a feature").option("--template <template>", "Pipeline template (add-feature, bug-fix, security-change, refactor)", "add-feature").option("--gates <gates>", "Custom gate modes: specify,plan,task,implement,validate").action(async (description, options) => {
@@ -784,4 +833,73 @@ pipelineCmd.action(async () => {
784
833
  const { pipelineListCommand } = await import("./pipeline-3G2FRAKM.js");
785
834
  await pipelineListCommand();
786
835
  });
836
+ var symphonyCmd = program.command("symphony").description("Symphony \u2014 agent-to-agent messaging for multi-session collaboration");
837
+ symphonyCmd.command("join").description("Join this session to the Symphony network").option("--remote <ip>", "Connect to remote Symphony server").action(async (options) => {
838
+ const { symphonyJoinCommand } = await import("./symphony-ROEKK7VD.js");
839
+ await symphonyJoinCommand(options);
840
+ });
841
+ symphonyCmd.command("leave").description("Remove this session from the Symphony network").action(async () => {
842
+ const { symphonyLeaveCommand } = await import("./symphony-ROEKK7VD.js");
843
+ await symphonyLeaveCommand();
844
+ });
845
+ symphonyCmd.command("whoami").description("Show this agent's identity and linked peers").action(async () => {
846
+ const { symphonyWhoamiCommand } = await import("./symphony-ROEKK7VD.js");
847
+ await symphonyWhoamiCommand();
848
+ });
849
+ symphonyCmd.command("list").alias("ls").description("List all joined agents").option("--json", "Output as JSON").action(async (options) => {
850
+ const { symphonyListCommand } = await import("./symphony-ROEKK7VD.js");
851
+ await symphonyListCommand(options);
852
+ });
853
+ symphonyCmd.command("send <message>").description("Send a note to agents").option("--to <agent>", "Send to specific agent (omit for broadcast)").option("--thread <id>", "Reply to existing thread").action(async (message, options) => {
854
+ const { symphonySendCommand } = await import("./symphony-ROEKK7VD.js");
855
+ await symphonySendCommand(message, options);
856
+ });
857
+ symphonyCmd.command("read").description("Show unread notes").action(async () => {
858
+ const { symphonyReadCommand } = await import("./symphony-ROEKK7VD.js");
859
+ await symphonyReadCommand();
860
+ });
861
+ symphonyCmd.command("inbox").description("Show unread notes (alias for read)").action(async () => {
862
+ const { symphonyReadCommand } = await import("./symphony-ROEKK7VD.js");
863
+ await symphonyReadCommand();
864
+ });
865
+ symphonyCmd.command("threads").description("List all threads").option("--json", "Output as JSON").action(async (options) => {
866
+ const { symphonyThreadsCommand } = await import("./symphony-ROEKK7VD.js");
867
+ await symphonyThreadsCommand(options);
868
+ });
869
+ symphonyCmd.command("thread <id>").description("Show full thread conversation").action(async (id) => {
870
+ const { symphonyThreadCommand } = await import("./symphony-ROEKK7VD.js");
871
+ await symphonyThreadCommand(id);
872
+ });
873
+ symphonyCmd.command("resolve <id>").description("Mark a thread as resolved").option("--decision <text>", "Decision text to record").action(async (id, options) => {
874
+ const { symphonyResolveCommand } = await import("./symphony-ROEKK7VD.js");
875
+ await symphonyResolveCommand(id, options);
876
+ });
877
+ symphonyCmd.command("status").description("Show Symphony network status").option("--json", "Output as JSON").action(async (options) => {
878
+ const { symphonyStatusCommand } = await import("./symphony-ROEKK7VD.js");
879
+ await symphonyStatusCommand(options);
880
+ });
881
+ symphonyCmd.command("serve").description("Start TCP server for remote Symphony linking").option("--port <port>", "Port to listen on", "3939").action(async (options) => {
882
+ const { symphonyServeCommand } = await import("./symphony-ROEKK7VD.js");
883
+ await symphonyServeCommand(options);
884
+ });
885
+ symphonyCmd.command("request <file>").description("Request a file from another agent").option("--from <agent>", "Agent to request from").option("--reason <text>", "Why this file is needed").action(async (file, options) => {
886
+ const { symphonyRequestCommand } = await import("./symphony-ROEKK7VD.js");
887
+ await symphonyRequestCommand(file, options);
888
+ });
889
+ symphonyCmd.command("requests").description("List pending file requests").action(async () => {
890
+ const { symphonyRequestsCommand } = await import("./symphony-ROEKK7VD.js");
891
+ await symphonyRequestsCommand();
892
+ });
893
+ symphonyCmd.command("approve <id>").description("Approve a file request").option("--redact", "Strip sensitive lines before sending").action(async (id, options) => {
894
+ const { symphonyApproveCommand } = await import("./symphony-ROEKK7VD.js");
895
+ await symphonyApproveCommand(id, options);
896
+ });
897
+ symphonyCmd.command("deny <id>").description("Deny a file request").option("--reason <text>", "Reason for denial").action(async (id, options) => {
898
+ const { symphonyDenyCommand } = await import("./symphony-ROEKK7VD.js");
899
+ await symphonyDenyCommand(id, options);
900
+ });
901
+ symphonyCmd.action(async () => {
902
+ const { symphonyStatusCommand } = await import("./symphony-ROEKK7VD.js");
903
+ await symphonyStatusCommand({});
904
+ });
787
905
  program.parse();