@a-company/paradigm 3.12.0 → 3.13.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 (96) hide show
  1. package/dist/{accept-orchestration-YKMKMWGA.js → accept-orchestration-ORQRKKGR.js} +4 -4
  2. package/dist/{agents-suggest-35LIQKDH.js → agents-suggest-65SER5IS.js} +1 -1
  3. package/dist/{aggregate-V4KPR3RW.js → aggregate-M5WMUI6B.js} +1 -1
  4. package/dist/{auto-6MOGYQ4G.js → auto-B22FVSQI.js} +1 -1
  5. package/dist/{beacon-XRXL5KZB.js → beacon-XL2ALH5O.js} +1 -1
  6. package/dist/{check-UZY647TB.js → check-5RKOAN7S.js} +1 -1
  7. package/dist/{chunk-RDPXBMHK.js → chunk-3BAMPB6I.js} +6 -6
  8. package/dist/{chunk-5TUAVVIG.js → chunk-6GWRQWQB.js} +1 -1
  9. package/dist/{chunk-F6EJKLF4.js → chunk-O5ZO5LSW.js} +1 -1
  10. package/dist/{chunk-UVI3OH3G.js → chunk-R2SGQ22F.js} +11 -58
  11. package/dist/{chunk-4PEQHWD7.js → chunk-XKAFTZOZ.js} +1 -1
  12. package/dist/{chunk-5N5LR2KS.js → chunk-XNUWLW73.js} +6 -6
  13. package/dist/{chunk-JQYGPVLQ.js → chunk-YOFP72IB.js} +1 -1
  14. package/dist/{chunk-CQFNTBFJ.js → chunk-Z42FOOVT.js} +3 -3
  15. package/dist/{chunk-CYGHL7PQ.js → chunk-ZMN3RAIT.js} +5 -5
  16. package/dist/{chunk-4ZO3ZOPM.js → chunk-ZRPEI35Q.js} +14 -59
  17. package/dist/chunk-ZXMDA7VB.js +16 -0
  18. package/dist/{claude-SUYNN72C.js → claude-63ISJAZK.js} +1 -1
  19. package/dist/{claude-cli-OF43XAO3.js → claude-cli-ABML5RHX.js} +1 -1
  20. package/dist/{claude-code-PW6SKD2M.js → claude-code-JRLMRPTO.js} +1 -1
  21. package/dist/{claude-code-teams-JLZ5IXB6.js → claude-code-teams-CAJBEFIZ.js} +1 -1
  22. package/dist/commands-VTFOZPUA.js +5387 -0
  23. package/dist/{constellation-GNK5DIMH.js → constellation-NXU6Q2HM.js} +1 -1
  24. package/dist/{cost-AGO5N7DD.js → cost-CTGSLSOC.js} +1 -1
  25. package/dist/{cost-KYXIQ62X.js → cost-XEBADYFT.js} +1 -1
  26. package/dist/{cursor-cli-IHJMPRCW.js → cursor-cli-QUOOF2N4.js} +1 -1
  27. package/dist/{cursorrules-LQFA7M62.js → cursorrules-XBWFX66V.js} +1 -1
  28. package/dist/{delete-3YXAJ5AA.js → delete-OINCSDQH.js} +2 -2
  29. package/dist/{diff-4FV7T35U.js → diff-4XJZN4OB.js} +4 -4
  30. package/dist/{dist-ZEMSQV74.js → dist-3RVKEJRT.js} +1 -1
  31. package/dist/{dist-Q6SAZI7X.js → dist-7U64HDSC.js} +1 -1
  32. package/dist/{dist-AG5JNIZU-XSEZ2LLK.js → dist-AG5JNIZU-HW2FWNTZ.js} +1 -1
  33. package/dist/dist-KY5HGDDL.js +1304 -0
  34. package/dist/{dist-JOHRYQUA.js → dist-PSF5CP4I.js} +1 -1
  35. package/dist/{dist-6SX5ZKKF.js → dist-RMAIFRTW.js} +3 -3
  36. package/dist/{dist-YB7T54QE.js → dist-YHDSIZQD.js} +1 -1
  37. package/dist/{doctor-2KM5HOK6.js → doctor-FINKMI66.js} +2 -2
  38. package/dist/{drift-FH2UY64B.js → drift-YGT4LJ7Q.js} +1 -1
  39. package/dist/{echo-VYZW3OTT.js → echo-A6HD5UP7.js} +1 -1
  40. package/dist/{edit-EOMPXOG5.js → edit-7FSQNAPE.js} +2 -2
  41. package/dist/{export-R4FJ5NOH.js → export-T7CMMJIB.js} +1 -1
  42. package/dist/{flow-MCKPJGRJ.js → flow-UFMPVOEM.js} +1 -1
  43. package/dist/{global-AXILUM5X.js → global-HHUJSBG5.js} +1 -1
  44. package/dist/{habits-NC2TRMRV.js → habits-KD4RLIN2.js} +3 -3
  45. package/dist/{history-EVO3L6SC.js → history-CETCSUCP.js} +1 -1
  46. package/dist/{hooks-JXYHVGIN.js → hooks-TCUHQMPF.js} +1 -1
  47. package/dist/index.js +138 -137
  48. package/dist/{lint-N4LMMEXH.js → lint-53GPXKKI.js} +1 -1
  49. package/dist/{list-JKBJ7ESH.js → list-Q4R7L7WJ.js} +2 -2
  50. package/dist/{lore-server-RQH5REZV.js → lore-server-GKZ6ESNJ.js} +1 -1
  51. package/dist/{manual-Y3QOXWYA.js → manual-AFJ2J2V3.js} +1 -1
  52. package/dist/mcp.js +4 -4
  53. package/dist/{orchestrate-IV54FMHD.js → orchestrate-6XGEA655.js} +4 -4
  54. package/dist/{portal-check-2HI4FFD6.js → portal-check-FF5EKZE5.js} +1 -1
  55. package/dist/{portal-compliance-KQCTAQTJ.js → portal-compliance-VU4NIFEN.js} +1 -1
  56. package/dist/{probe-X3J2JX62.js → probe-T77FFIAG.js} +1 -1
  57. package/dist/{promote-HZH5E5CO.js → promote-XO63XMAN.js} +2 -2
  58. package/dist/{providers-IONB4YRJ.js → providers-VIBWDN5D.js} +2 -2
  59. package/dist/{record-EECZ3E4I.js → record-YJ3D3462.js} +2 -2
  60. package/dist/{reindex-ZM6J53UP.js → reindex-4OOME3TT.js} +1 -1
  61. package/dist/{remember-3KJZGDUG.js → remember-IEBQHXHZ.js} +1 -1
  62. package/dist/{review-BF26ILZB.js → review-3OW3KVW7.js} +2 -2
  63. package/dist/{ripple-JIUAMBLA.js → ripple-DFMXLFWI.js} +1 -1
  64. package/dist/{sentinel-BGCISNIK.js → sentinel-RERNMWSE.js} +2 -2
  65. package/dist/sentinel-mcp.js +4181 -0
  66. package/dist/sentinel.js +35 -0
  67. package/dist/{serve-H7ZBMODT.js → serve-XLKEMQEH.js} +2 -2
  68. package/dist/server-CAXNYVV7.js +1616 -0
  69. package/dist/{server-E2CNZC4K.js → server-V3ANAXDP.js} +1 -1
  70. package/dist/{setup-UKJ3VGHI.js → setup-HOI52TN3.js} +2 -2
  71. package/dist/{setup-363IB6MO.js → setup-YNZJQLW7.js} +1 -1
  72. package/dist/{shift-G2ZCIR5Q.js → shift-SW3GSODO.js} +7 -7
  73. package/dist/{show-SAMTXEHG.js → show-CJGHREFS.js} +2 -2
  74. package/dist/{snapshot-KCMONZAO.js → snapshot-XHINQBZS.js} +1 -1
  75. package/dist/{spawn-7SDONTJN.js → spawn-JSV2HST3.js} +3 -3
  76. package/dist/{summary-F46FRO3Y.js → summary-NV7SBV5O.js} +1 -1
  77. package/dist/{switch-CC2KACXO.js → switch-WYUMVNA5.js} +1 -1
  78. package/dist/{sync-4CNRHUWX.js → sync-ZM4Q3R4U.js} +1 -1
  79. package/dist/{sync-llms-MCWB37HN.js → sync-llms-JIPP3XX4.js} +1 -1
  80. package/dist/{team-XUZBPIFZ.js → team-YIYA4ZLX.js} +5 -5
  81. package/dist/{test-DK2RWLTK.js → test-WTR5Q33E.js} +1 -1
  82. package/dist/{thread-RNSLADXN.js → thread-3WM7KKID.js} +1 -1
  83. package/dist/{timeline-TJDVVVA3.js → timeline-ELO5JTQO.js} +2 -2
  84. package/dist/{triage-MKKIWBSW.js → triage-GJ6GK647.js} +3 -3
  85. package/dist/{tutorial-L5Q3ZDHK.js → tutorial-GC6QL4US.js} +1 -1
  86. package/dist/{university-65YJZ2LW.js → university-KVYNACJZ.js} +2 -2
  87. package/dist/{upgrade-HGF4MBGV.js → upgrade-65QOQXRC.js} +1 -1
  88. package/dist/{validate-F3YHBCRZ.js → validate-ITC5D6QG.js} +1 -1
  89. package/dist/{validate-2LTHHORX.js → validate-TKKRGJKC.js} +1 -1
  90. package/dist/{watch-CL2PPS2K.js → watch-ERBEJUJW.js} +1 -1
  91. package/dist/{watch-NBPOMOEX.js → watch-X64UK7K4.js} +2 -2
  92. package/dist/{wisdom-LRM4FFCH.js → wisdom-L2WC7J62.js} +1 -1
  93. package/dist/{workspace-7CWY4IWV.js → workspace-S5Q5LVA6.js} +1 -1
  94. package/package.json +7 -2
  95. package/dist/chunk-MO4EEYFW.js +0 -38
  96. package/dist/server-3K3TTJH3.js +0 -10539
package/dist/index.js CHANGED
@@ -21,7 +21,7 @@ import "./chunk-YO6DVTL7.js";
21
21
  import {
22
22
  log
23
23
  } from "./chunk-4NCFWYGG.js";
24
- import "./chunk-MO4EEYFW.js";
24
+ import "./chunk-ZXMDA7VB.js";
25
25
 
26
26
  // src/index.ts
27
27
  import { Command } from "commander";
@@ -110,94 +110,94 @@ ${chalk2.magenta("\u2569 ")}${chalk2.cyan("\u2534 \u2534\u2534\u2514\u2500\u253
110
110
  program.name("paradigm").description("Unified developer tools ecosystem").version(VERSION).addHelpText("before", banner);
111
111
  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("--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);
112
112
  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("--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) => {
113
- const { shiftCommand } = await import("./shift-G2ZCIR5Q.js");
113
+ const { shiftCommand } = await import("./shift-SW3GSODO.js");
114
114
  await shiftCommand(options);
115
115
  });
116
116
  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) => {
117
- const { setupCommand } = await import("./setup-UKJ3VGHI.js");
117
+ const { setupCommand } = await import("./setup-HOI52TN3.js");
118
118
  await setupCommand(path2, options);
119
119
  });
120
120
  program.command("status").alias("st").description("Show project status and symbol counts").action(statusCommand);
121
121
  var purposeCmd = program.command("purpose").description("Purpose-related commands");
122
122
  purposeCmd.command("remember [path]").description("Aggregate and display purpose context").action(async (path2 = ".") => {
123
- const { purposeRememberCommand } = await import("./remember-3KJZGDUG.js");
123
+ const { purposeRememberCommand } = await import("./remember-IEBQHXHZ.js");
124
124
  await purposeRememberCommand(path2);
125
125
  });
126
126
  purposeCmd.command("validate [path]").description("Validate purpose files").action(async (path2 = ".") => {
127
- const { purposeValidateCommand } = await import("./validate-2LTHHORX.js");
127
+ const { purposeValidateCommand } = await import("./validate-TKKRGJKC.js");
128
128
  await purposeValidateCommand(path2);
129
129
  });
130
130
  var portalCmd = program.command("portal").description("Portal-related commands");
131
131
  portalCmd.command("validate [path]").description("Validate portal.yaml configuration").action(async (path2 = "./portal.yaml") => {
132
- const { gateValidateCommand } = await import("./validate-F3YHBCRZ.js");
132
+ const { gateValidateCommand } = await import("./validate-ITC5D6QG.js");
133
133
  await gateValidateCommand(path2);
134
134
  });
135
135
  portalCmd.command("check").description("Check portal gate implementation compliance (declared vs used)").option("--json", "Output as JSON").action(async (options) => {
136
- const { portalCheckCommand } = await import("./portal-check-2HI4FFD6.js");
136
+ const { portalCheckCommand } = await import("./portal-check-FF5EKZE5.js");
137
137
  await portalCheckCommand(options);
138
138
  });
139
139
  portalCmd.command("test [path]").description("Test portals and generate test files").option("--generate", "Generate test files from portal.yaml").option("--portal <portalId>", "Test specific portal").option("--component", "Validate component access").option("--framework <framework>", "Test framework (jest, vitest, mocha)", "jest").option("--output <dir>", "Output directory for generated tests", "tests/portals").action(async (path2, options) => {
140
- const { gateTestCommand } = await import("./test-DK2RWLTK.js");
140
+ const { gateTestCommand } = await import("./test-WTR5Q33E.js");
141
141
  await gateTestCommand(path2, options);
142
142
  });
143
143
  portalCmd.command("watch [path]").alias("w").description("Launch the Portal Viewer - real-time visualization dashboard").option("-p, --port <port>", "WebSocket port for SDK connections", "42196").option("-u, --ui-port <port>", "HTTP port for UI", "42195").option("-c, --config <path>", "Path to portal.yaml config").option("--no-open", "Do not auto-open browser").action(async (path2, options) => {
144
- const { portalWatchCommand } = await import("./watch-NBPOMOEX.js");
144
+ const { portalWatchCommand } = await import("./watch-X64UK7K4.js");
145
145
  await portalWatchCommand(path2, options);
146
146
  });
147
147
  portalCmd.command("report <session>").description("Generate a report from a session file").option("-f, --format <format>", "Output format: json, markdown, slack, discord", "markdown").option("-o, --output <path>", "Output file path").action(async (session, options) => {
148
- const { portalReportCommand } = await import("./watch-NBPOMOEX.js");
148
+ const { portalReportCommand } = await import("./watch-X64UK7K4.js");
149
149
  await portalReportCommand(session, options);
150
150
  });
151
151
  portalCmd.command("export [path]").description("Export portal configuration in json, csv, or markdown format").option("-f, --format <format>", "Output format: json, csv, markdown", "json").option("-o, --output <path>", "Output file path").option("-c, --config <path>", "Path to portal.yaml").action(async (path2, options) => {
152
- const { portalExportCommand } = await import("./watch-NBPOMOEX.js");
152
+ const { portalExportCommand } = await import("./watch-X64UK7K4.js");
153
153
  await portalExportCommand(path2, options);
154
154
  });
155
155
  var premiseCmd = program.command("premise").description("Premise-related commands");
156
156
  premiseCmd.command("aggregate [path]").description("Aggregate all sources into symbol index").action(async (path2 = ".") => {
157
- const { premiseAggregateCommand } = await import("./aggregate-V4KPR3RW.js");
157
+ const { premiseAggregateCommand } = await import("./aggregate-M5WMUI6B.js");
158
158
  await premiseAggregateCommand(path2);
159
159
  });
160
160
  premiseCmd.command("snapshot <name>").description("Create a timeline snapshot").option("-d, --description <desc>", "Snapshot description").action(async (name, options) => {
161
- const { premiseSnapshotCommand } = await import("./snapshot-KCMONZAO.js");
161
+ const { premiseSnapshotCommand } = await import("./snapshot-XHINQBZS.js");
162
162
  await premiseSnapshotCommand(name, options.description);
163
163
  });
164
164
  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) => {
165
- const { syncCommand } = await import("./sync-4CNRHUWX.js");
165
+ const { syncCommand } = await import("./sync-ZM4Q3R4U.js");
166
166
  await syncCommand(ide, options);
167
167
  });
168
168
  program.command("sync-llms").description("Generate llms.txt \u2014 LLM-readable project summary").option("-o, --output <path>", "Output path (default: ./llms.txt)").action(async (options) => {
169
- const { syncLlmsCommand } = await import("./sync-llms-MCWB37HN.js");
169
+ const { syncLlmsCommand } = await import("./sync-llms-JIPP3XX4.js");
170
170
  await syncLlmsCommand(options);
171
171
  });
172
172
  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) => {
173
173
  console.log("\x1B[33m\u26A0\uFE0F `paradigm cursorrules` is deprecated. Use `paradigm sync cursor` instead.\x1B[0m\n");
174
- const { cursorrrulesCommand } = await import("./cursorrules-LQFA7M62.js");
174
+ const { cursorrrulesCommand } = await import("./cursorrules-XBWFX66V.js");
175
175
  await cursorrrulesCommand(path2, options);
176
176
  });
177
177
  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) => {
178
- const { indexCommand } = await import("./probe-X3J2JX62.js");
178
+ const { indexCommand } = await import("./probe-T77FFIAG.js");
179
179
  await indexCommand(path2, options);
180
180
  });
181
181
  var probeCmd = program.command("probe").description("Probe-related commands");
182
182
  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) => {
183
- const { indexCommand } = await import("./probe-X3J2JX62.js");
183
+ const { indexCommand } = await import("./probe-T77FFIAG.js");
184
184
  await indexCommand(path2, options);
185
185
  });
186
186
  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) => {
187
- const { upgradeCommand } = await import("./upgrade-HGF4MBGV.js");
187
+ const { upgradeCommand } = await import("./upgrade-65QOQXRC.js");
188
188
  await upgradeCommand(path2, options);
189
189
  });
190
190
  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) => {
191
- const { lintCommand } = await import("./lint-N4LMMEXH.js");
191
+ const { lintCommand } = await import("./lint-53GPXKKI.js");
192
192
  await lintCommand(path2, options);
193
193
  });
194
194
  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) => {
195
- const { costCommand } = await import("./cost-AGO5N7DD.js");
195
+ const { costCommand } = await import("./cost-CTGSLSOC.js");
196
196
  await costCommand(path2, options);
197
197
  });
198
198
  var scanCmd = program.command("scan").description("Visual discovery and auto-generation commands");
199
199
  scanCmd.command("auto [path]").description("Auto-generate .purpose files from code analysis").option("-n, --dry-run", "Show what would be generated without writing").option("-f, --force", "Overwrite existing .purpose files").option("--json", "Output as JSON").option("--init", "Full project initialization: generate .purpose files + portal.yaml").action(async (path2, options) => {
200
- const { autoScanCommand } = await import("./auto-6MOGYQ4G.js");
200
+ const { autoScanCommand } = await import("./auto-B22FVSQI.js");
201
201
  await autoScanCommand(path2, options);
202
202
  });
203
203
  scanCmd.action(() => {
@@ -208,7 +208,7 @@ scanCmd.action(() => {
208
208
  });
209
209
  var flowCmd = program.command("flow").description("Flow management commands");
210
210
  flowCmd.command("diagram <flowId>").description("Generate Mermaid diagram for a flow").option("-o, --output <path>", "Output file path").action(async (flowId, options) => {
211
- const { flowDiagramCommand } = await import("./flow-MCKPJGRJ.js");
211
+ const { flowDiagramCommand } = await import("./flow-UFMPVOEM.js");
212
212
  await flowDiagramCommand(flowId, options);
213
213
  });
214
214
  flowCmd.action(() => {
@@ -216,7 +216,7 @@ flowCmd.action(() => {
216
216
  });
217
217
  var teamCmd = program.command("team").description("Multi-agent orchestration commands");
218
218
  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) => {
219
- const { teamInitCommand } = await import("./team-XUZBPIFZ.js");
219
+ const { teamInitCommand } = await import("./team-YIYA4ZLX.js");
220
220
  await teamInitCommand(path2, {
221
221
  ...options,
222
222
  configureModels: options.configureModels,
@@ -224,68 +224,68 @@ teamCmd.command("init [path]").description("Initialize team configuration with d
224
224
  });
225
225
  });
226
226
  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) => {
227
- const { teamStatusCommand } = await import("./team-XUZBPIFZ.js");
227
+ const { teamStatusCommand } = await import("./team-YIYA4ZLX.js");
228
228
  await teamStatusCommand(path2, options);
229
229
  });
230
230
  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) => {
231
- const { teamHandoffCommand } = await import("./team-XUZBPIFZ.js");
231
+ const { teamHandoffCommand } = await import("./team-YIYA4ZLX.js");
232
232
  await teamHandoffCommand(path2, options);
233
233
  });
234
234
  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) => {
235
- const { teamAcceptCommand } = await import("./team-XUZBPIFZ.js");
235
+ const { teamAcceptCommand } = await import("./team-YIYA4ZLX.js");
236
236
  await teamAcceptCommand(handoffId, path2, options);
237
237
  });
238
238
  teamCmd.command("check [path]").description("Check for conflicts and team health issues").option("--json", "Output as JSON").action(async (path2, options) => {
239
- const { teamCheckCommand } = await import("./team-XUZBPIFZ.js");
239
+ const { teamCheckCommand } = await import("./team-YIYA4ZLX.js");
240
240
  await teamCheckCommand(path2, options);
241
241
  });
242
242
  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) => {
243
- const { teamHistoryCommand } = await import("./team-XUZBPIFZ.js");
243
+ const { teamHistoryCommand } = await import("./team-YIYA4ZLX.js");
244
244
  await teamHistoryCommand(path2, { ...options, limit: parseInt(options.limit) });
245
245
  });
246
246
  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) => {
247
- const { teamResetCommand } = await import("./team-XUZBPIFZ.js");
247
+ const { teamResetCommand } = await import("./team-YIYA4ZLX.js");
248
248
  await teamResetCommand(path2, options);
249
249
  });
250
250
  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) => {
251
- const { teamSpawnCommand } = await import("./spawn-7SDONTJN.js");
251
+ const { teamSpawnCommand } = await import("./spawn-JSV2HST3.js");
252
252
  await teamSpawnCommand(agent, path2, options);
253
253
  });
254
254
  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) => {
255
- const { teamOrchestrateCommand } = await import("./orchestrate-IV54FMHD.js");
255
+ const { teamOrchestrateCommand } = await import("./orchestrate-6XGEA655.js");
256
256
  await teamOrchestrateCommand(task, path2, options);
257
257
  });
258
258
  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) => {
259
- const { teamDiffCommand } = await import("./diff-4FV7T35U.js");
259
+ const { teamDiffCommand } = await import("./diff-4XJZN4OB.js");
260
260
  await teamDiffCommand(orchestrationId, path2, options);
261
261
  });
262
262
  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) => {
263
- const { teamAcceptOrchestrationCommand } = await import("./accept-orchestration-YKMKMWGA.js");
263
+ const { teamAcceptOrchestrationCommand } = await import("./accept-orchestration-ORQRKKGR.js");
264
264
  await teamAcceptOrchestrationCommand(orchestrationId, path2, options);
265
265
  });
266
266
  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) => {
267
- const { teamRejectOrchestrationCommand } = await import("./accept-orchestration-YKMKMWGA.js");
267
+ const { teamRejectOrchestrationCommand } = await import("./accept-orchestration-ORQRKKGR.js");
268
268
  await teamRejectOrchestrationCommand(orchestrationId, path2, options);
269
269
  });
270
270
  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) => {
271
- const { teamCostCommand } = await import("./cost-KYXIQ62X.js");
271
+ const { teamCostCommand } = await import("./cost-XEBADYFT.js");
272
272
  await teamCostCommand(path2, options);
273
273
  });
274
274
  teamCmd.command("export [path]").description("Export orchestration data").option("-f, --format <format>", "Output format: json, csv", "json").option("--from <date>", "From date (ISO format)").option("--to <date>", "To date (ISO format)").option("-o, --output <file>", "Output file path").action(async (path2, options) => {
275
- const { teamExportCommand } = await import("./export-R4FJ5NOH.js");
275
+ const { teamExportCommand } = await import("./export-T7CMMJIB.js");
276
276
  await teamExportCommand(path2, options);
277
277
  });
278
278
  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) => {
279
- const { teamProvidersCommand } = await import("./providers-IONB4YRJ.js");
279
+ const { teamProvidersCommand } = await import("./providers-VIBWDN5D.js");
280
280
  await teamProvidersCommand(path2, options);
281
281
  });
282
282
  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) => {
283
- const { teamModelsCommand } = await import("./team-XUZBPIFZ.js");
283
+ const { teamModelsCommand } = await import("./team-YIYA4ZLX.js");
284
284
  await teamModelsCommand(path2, options);
285
285
  });
286
286
  var agentsCmd = teamCmd.command("agents").description("Agent management commands");
287
287
  agentsCmd.command("suggest <task>").description("Suggest agents for a task based on triggers").option("--json", "Output as JSON").action(async (task, options) => {
288
- const { agentsSuggestCommand } = await import("./agents-suggest-35LIQKDH.js");
288
+ const { agentsSuggestCommand } = await import("./agents-suggest-65SER5IS.js");
289
289
  await agentsSuggestCommand(task, options);
290
290
  });
291
291
  agentsCmd.action(() => {
@@ -295,229 +295,229 @@ agentsCmd.action(() => {
295
295
  console.log("\nRun `paradigm team agents suggest --help` for options.\n");
296
296
  });
297
297
  teamCmd.action(async () => {
298
- const { teamStatusCommand } = await import("./team-XUZBPIFZ.js");
298
+ const { teamStatusCommand } = await import("./team-YIYA4ZLX.js");
299
299
  await teamStatusCommand(void 0, {});
300
300
  });
301
301
  var pluginCmd = program.command("plugin").description("Plugin management commands");
302
302
  pluginCmd.command("check").description("Check for updates to installed Claude Code plugins").option("-u, --update", "Pull latest changes for all stale marketplace clones").action(async (options) => {
303
- const { pluginCheckCommand } = await import("./check-UZY647TB.js");
303
+ const { pluginCheckCommand } = await import("./check-5RKOAN7S.js");
304
304
  await pluginCheckCommand(options);
305
305
  });
306
306
  pluginCmd.action(async () => {
307
- const { pluginCheckCommand } = await import("./check-UZY647TB.js");
307
+ const { pluginCheckCommand } = await import("./check-5RKOAN7S.js");
308
308
  await pluginCheckCommand({});
309
309
  });
310
310
  var workspaceCmd = program.command("workspace").description("Multi-project workspace commands");
311
311
  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) => {
312
- const { workspaceInitCommand } = await import("./workspace-7CWY4IWV.js");
312
+ const { workspaceInitCommand } = await import("./workspace-S5Q5LVA6.js");
313
313
  await workspaceInitCommand(options);
314
314
  });
315
315
  workspaceCmd.command("status").description("Show workspace member status and symbol counts").option("--json", "Output as JSON").action(async (options) => {
316
- const { workspaceStatusCommand } = await import("./workspace-7CWY4IWV.js");
316
+ const { workspaceStatusCommand } = await import("./workspace-S5Q5LVA6.js");
317
317
  await workspaceStatusCommand(options);
318
318
  });
319
319
  workspaceCmd.command("reindex").description("Rebuild scan-index.json for all workspace members").option("-q, --quiet", "Suppress progress output").action(async (options) => {
320
- const { workspaceReindexCommand } = await import("./workspace-7CWY4IWV.js");
320
+ const { workspaceReindexCommand } = await import("./workspace-S5Q5LVA6.js");
321
321
  await workspaceReindexCommand(options);
322
322
  });
323
323
  workspaceCmd.action(async () => {
324
- const { workspaceStatusCommand } = await import("./workspace-7CWY4IWV.js");
324
+ const { workspaceStatusCommand } = await import("./workspace-S5Q5LVA6.js");
325
325
  await workspaceStatusCommand({});
326
326
  });
327
327
  program.command("doctor").description("Health check - validate Paradigm setup").action(async () => {
328
- const { doctorCommand } = await import("./doctor-2KM5HOK6.js");
328
+ const { doctorCommand } = await import("./doctor-FINKMI66.js");
329
329
  await doctorCommand();
330
330
  });
331
331
  var driftCmd = program.command("drift").description("Aspect anchor drift detection");
332
332
  driftCmd.command("check").description("Check aspect anchors for drift and auto-heal shifted anchors").option("--json", "Output as JSON").option("--auto-heal", "Auto-heal shifted anchors (default: true)").option("--no-auto-heal", "Disable auto-healing").action(async (options) => {
333
- const { driftCheckCommand } = await import("./drift-FH2UY64B.js");
333
+ const { driftCheckCommand } = await import("./drift-YGT4LJ7Q.js");
334
334
  await driftCheckCommand(options);
335
335
  });
336
336
  var globalCmd = program.command("global").description("Manage Global Brain (~/.paradigm/)");
337
337
  globalCmd.command("clean").description("Remove old files from ~/.paradigm/ (Global Brain rotation)").option("--older-than <duration>", "Remove files older than duration (e.g., 90d, 30d, 7d)", "90d").option("-n, --dry-run", "Show what would be deleted without deleting").action(async (options) => {
338
- const { globalCleanCommand } = await import("./global-AXILUM5X.js");
338
+ const { globalCleanCommand } = await import("./global-HHUJSBG5.js");
339
339
  await globalCleanCommand(options);
340
340
  });
341
341
  globalCmd.action(() => {
342
342
  globalCmd.outputHelp();
343
343
  });
344
344
  program.command("watch").description("Watch for changes and auto-sync IDE files").action(async () => {
345
- const { watchCommand } = await import("./watch-CL2PPS2K.js");
345
+ const { watchCommand } = await import("./watch-ERBEJUJW.js");
346
346
  await watchCommand();
347
347
  });
348
348
  program.command("summary").description("Generate .paradigm/project.md with project stats").action(async () => {
349
- const { summaryCommand } = await import("./summary-F46FRO3Y.js");
349
+ const { summaryCommand } = await import("./summary-NV7SBV5O.js");
350
350
  await summaryCommand();
351
351
  });
352
352
  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) => {
353
- const { constellationCommand } = await import("./constellation-GNK5DIMH.js");
353
+ const { constellationCommand } = await import("./constellation-NXU6Q2HM.js");
354
354
  await constellationCommand(path2, options);
355
355
  });
356
356
  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) => {
357
- const { beaconCommand } = await import("./beacon-XRXL5KZB.js");
357
+ const { beaconCommand } = await import("./beacon-XL2ALH5O.js");
358
358
  await beaconCommand(path2, options);
359
359
  });
360
360
  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) => {
361
- const { rippleCommand } = await import("./ripple-JIUAMBLA.js");
361
+ const { rippleCommand } = await import("./ripple-DFMXLFWI.js");
362
362
  await rippleCommand(symbol, path2, options);
363
363
  });
364
364
  var threadCmd = program.command("thread").description("Session continuity - pass context between AI agent sessions");
365
365
  threadCmd.command("show [path]").alias("s").description("Show current thread").option("--json", "Output as JSON (for AI agent queries)").action(async (path2, options) => {
366
- const { threadShowCommand } = await import("./thread-RNSLADXN.js");
366
+ const { threadShowCommand } = await import("./thread-3WM7KKID.js");
367
367
  await threadShowCommand(path2, options);
368
368
  });
369
369
  threadCmd.command("save <message> [path]").description("Save activity to the thread trail").option("-q, --quiet", "Suppress output").action(async (message, path2, options) => {
370
- const { threadSaveCommand } = await import("./thread-RNSLADXN.js");
370
+ const { threadSaveCommand } = await import("./thread-3WM7KKID.js");
371
371
  await threadSaveCommand(message, path2, options);
372
372
  });
373
373
  threadCmd.command("todo <task> [path]").description("Add a loose end (unfinished task)").option("-q, --quiet", "Suppress output").action(async (task, path2, options) => {
374
- const { threadTodoCommand } = await import("./thread-RNSLADXN.js");
374
+ const { threadTodoCommand } = await import("./thread-3WM7KKID.js");
375
375
  await threadTodoCommand(task, path2, options);
376
376
  });
377
377
  threadCmd.command("note <note> [path]").description("Add a breadcrumb (note for next agent)").option("-q, --quiet", "Suppress output").action(async (note, path2, options) => {
378
- const { threadNoteCommand } = await import("./thread-RNSLADXN.js");
378
+ const { threadNoteCommand } = await import("./thread-3WM7KKID.js");
379
379
  await threadNoteCommand(note, path2, options);
380
380
  });
381
381
  threadCmd.command("clear [path]").description("Clear the thread").option("-q, --quiet", "Suppress output").action(async (path2, options) => {
382
- const { threadClearCommand } = await import("./thread-RNSLADXN.js");
382
+ const { threadClearCommand } = await import("./thread-3WM7KKID.js");
383
383
  await threadClearCommand(path2, options);
384
384
  });
385
385
  threadCmd.option("--json", "Output as JSON (for AI agent queries)").action(async (options) => {
386
- const { threadShowCommand } = await import("./thread-RNSLADXN.js");
386
+ const { threadShowCommand } = await import("./thread-3WM7KKID.js");
387
387
  await threadShowCommand(void 0, options);
388
388
  });
389
389
  var echoCmd = program.command("echo").description("Error-to-symbol mapping - find related symbols for error codes");
390
390
  echoCmd.command("lookup <errorCode> [path]").alias("l").description("Look up an error code").option("--json", "Output as JSON (for AI agent queries)").action(async (errorCode, path2, options) => {
391
- const { echoCommand } = await import("./echo-VYZW3OTT.js");
391
+ const { echoCommand } = await import("./echo-A6HD5UP7.js");
392
392
  await echoCommand(errorCode, path2, options);
393
393
  });
394
394
  echoCmd.command("init [path]").description("Create .paradigm/echoes.yaml template").option("-q, --quiet", "Suppress output").action(async (path2, options) => {
395
- const { echoInitCommand } = await import("./echo-VYZW3OTT.js");
395
+ const { echoInitCommand } = await import("./echo-A6HD5UP7.js");
396
396
  await echoInitCommand(path2, options);
397
397
  });
398
398
  echoCmd.command("list [path]").alias("ls").description("List all error mappings").action(async (path2) => {
399
- const { echoListCommand } = await import("./echo-VYZW3OTT.js");
399
+ const { echoListCommand } = await import("./echo-A6HD5UP7.js");
400
400
  await echoListCommand(path2);
401
401
  });
402
402
  echoCmd.argument("[errorCode]", "Error code to look up").option("--json", "Output as JSON (for AI agent queries)").action(async (errorCode, options) => {
403
403
  if (errorCode) {
404
- const { echoCommand } = await import("./echo-VYZW3OTT.js");
404
+ const { echoCommand } = await import("./echo-A6HD5UP7.js");
405
405
  await echoCommand(errorCode, void 0, options);
406
406
  } else {
407
- const { echoListCommand } = await import("./echo-VYZW3OTT.js");
407
+ const { echoListCommand } = await import("./echo-A6HD5UP7.js");
408
408
  await echoListCommand();
409
409
  }
410
410
  });
411
411
  var tutorialCmd = program.command("tutorial").description("Interactive tutorial system");
412
412
  tutorialCmd.command("start [path]").description("Start the tutorial").action(async (path2) => {
413
- const { tutorialStartCommand } = await import("./tutorial-L5Q3ZDHK.js");
413
+ const { tutorialStartCommand } = await import("./tutorial-GC6QL4US.js");
414
414
  await tutorialStartCommand(path2);
415
415
  });
416
416
  tutorialCmd.command("step [n] [path]").description("Show tutorial step").action(async (n, path2) => {
417
- const { tutorialStepCommand } = await import("./tutorial-L5Q3ZDHK.js");
417
+ const { tutorialStepCommand } = await import("./tutorial-GC6QL4US.js");
418
418
  await tutorialStepCommand(path2, n);
419
419
  });
420
420
  tutorialCmd.command("checkpoint [path]").description("Validate current checkpoint").action(async (path2) => {
421
- const { tutorialCheckpointCommand } = await import("./tutorial-L5Q3ZDHK.js");
421
+ const { tutorialCheckpointCommand } = await import("./tutorial-GC6QL4US.js");
422
422
  await tutorialCheckpointCommand(path2);
423
423
  });
424
424
  tutorialCmd.command("next [path]").description("Move to next step").action(async (path2) => {
425
- const { tutorialNextCommand } = await import("./tutorial-L5Q3ZDHK.js");
425
+ const { tutorialNextCommand } = await import("./tutorial-GC6QL4US.js");
426
426
  await tutorialNextCommand(path2);
427
427
  });
428
428
  tutorialCmd.command("status [path]").description("Show tutorial progress").action(async (path2) => {
429
- const { tutorialStatusCommand } = await import("./tutorial-L5Q3ZDHK.js");
429
+ const { tutorialStatusCommand } = await import("./tutorial-GC6QL4US.js");
430
430
  await tutorialStatusCommand(path2);
431
431
  });
432
432
  tutorialCmd.command("reset [path]").description("Reset tutorial to beginning").action(async (path2) => {
433
- const { tutorialResetCommand } = await import("./tutorial-L5Q3ZDHK.js");
433
+ const { tutorialResetCommand } = await import("./tutorial-GC6QL4US.js");
434
434
  await tutorialResetCommand(path2);
435
435
  });
436
436
  tutorialCmd.command("bugs [path]").description("List intentional bugs").action(async (path2) => {
437
- const { tutorialBugsCommand } = await import("./tutorial-L5Q3ZDHK.js");
437
+ const { tutorialBugsCommand } = await import("./tutorial-GC6QL4US.js");
438
438
  await tutorialBugsCommand(path2);
439
439
  });
440
440
  var mcpCmd = program.command("mcp").description("MCP server configuration for AI clients");
441
441
  mcpCmd.command("setup").description("Configure MCP server for detected AI clients").option("-c, --client <client>", "Target client: cursor, claude-desktop, continue, cline, all").option("-f, --force", "Overwrite existing config").option("--json", "Output as JSON").option("--no-gitignore", "Do not add config to .gitignore").action(async (options) => {
442
- const { mcpSetupCommand } = await import("./setup-363IB6MO.js");
442
+ const { mcpSetupCommand } = await import("./setup-YNZJQLW7.js");
443
443
  await mcpSetupCommand(options);
444
444
  });
445
445
  mcpCmd.command("status").description("Show MCP configuration status across clients").option("--json", "Output as JSON").action(async (options) => {
446
- const { mcpStatusCommand } = await import("./setup-363IB6MO.js");
446
+ const { mcpStatusCommand } = await import("./setup-YNZJQLW7.js");
447
447
  await mcpStatusCommand(options);
448
448
  });
449
449
  mcpCmd.command("list").alias("ls").description("List all configured MCP servers across all clients").option("--json", "Output as JSON").action(async (options) => {
450
- const { mcpListCommand } = await import("./setup-363IB6MO.js");
450
+ const { mcpListCommand } = await import("./setup-YNZJQLW7.js");
451
451
  await mcpListCommand(options);
452
452
  });
453
453
  mcpCmd.command("remove [server]").alias("rm").description("Remove MCP server from client configs").option("-c, --client <client>", "Target client: cursor, claude-desktop, continue, cline, all").option("-f, --force", "Skip confirmation").option("--json", "Output as JSON").action(async (server, options) => {
454
- const { mcpRemoveCommand } = await import("./setup-363IB6MO.js");
454
+ const { mcpRemoveCommand } = await import("./setup-YNZJQLW7.js");
455
455
  await mcpRemoveCommand(server, options);
456
456
  });
457
457
  mcpCmd.command("use-dev").description("Switch MCP configs to use local dev build").option("-c, --client <client>", "Target client: cursor, claude-desktop, claude-code, continue, cline").option("--json", "Output as JSON").action(async (options) => {
458
- const { mcpUseDevCommand } = await import("./switch-CC2KACXO.js");
458
+ const { mcpUseDevCommand } = await import("./switch-WYUMVNA5.js");
459
459
  await mcpUseDevCommand(options);
460
460
  });
461
461
  mcpCmd.command("use-prod").description("Switch MCP configs back to global production binary").option("-c, --client <client>", "Target client: cursor, claude-desktop, claude-code, continue, cline").option("--json", "Output as JSON").action(async (options) => {
462
- const { mcpUseProdCommand } = await import("./switch-CC2KACXO.js");
462
+ const { mcpUseProdCommand } = await import("./switch-WYUMVNA5.js");
463
463
  await mcpUseProdCommand(options);
464
464
  });
465
465
  mcpCmd.action(async () => {
466
- const { mcpSwitchStatusCommand } = await import("./switch-CC2KACXO.js");
466
+ const { mcpSwitchStatusCommand } = await import("./switch-WYUMVNA5.js");
467
467
  await mcpSwitchStatusCommand({});
468
468
  });
469
469
  program.command("promote").description("Copy local build to production (~/.paradigm-cli/)").option("-f, --force", "Create production directory if missing").option("--skip-build", "Skip npm run build step").option("--json", "Output as JSON").action(async (options) => {
470
- const { promoteCommand } = await import("./promote-HZH5E5CO.js");
470
+ const { promoteCommand } = await import("./promote-XO63XMAN.js");
471
471
  await promoteCommand(options);
472
472
  });
473
473
  var wisdomCmd = program.command("wisdom").description("Team wisdom - preferences, antipatterns, decisions, expertise");
474
474
  wisdomCmd.command("show [symbol]").description("Display wisdom for symbols or overview").option("--json", "Output as JSON").action(async (symbol, options) => {
475
- const { wisdomShowCommand } = await import("./wisdom-LRM4FFCH.js");
475
+ const { wisdomShowCommand } = await import("./wisdom-L2WC7J62.js");
476
476
  await wisdomShowCommand(symbol, options);
477
477
  });
478
478
  wisdomCmd.command("init").description("Initialize wisdom directory with templates").option("-f, --force", "Overwrite existing files").action(async (options) => {
479
- const { wisdomInitCommand } = await import("./wisdom-LRM4FFCH.js");
479
+ const { wisdomInitCommand } = await import("./wisdom-L2WC7J62.js");
480
480
  await wisdomInitCommand(options);
481
481
  });
482
482
  wisdomCmd.command("add-antipattern").description("Add a new antipattern").requiredOption("--id <id>", "Antipattern ID (e.g., api-001)").requiredOption("--symbols <symbols>", "Comma-separated symbols").requiredOption("--description <desc>", "What NOT to do").requiredOption("--reason <reason>", "Why this is bad").requiredOption("--alternative <alt>", "What to do instead").action(async (options) => {
483
- const { wisdomAddAntipatternCommand } = await import("./wisdom-LRM4FFCH.js");
483
+ const { wisdomAddAntipatternCommand } = await import("./wisdom-L2WC7J62.js");
484
484
  await wisdomAddAntipatternCommand(options);
485
485
  });
486
486
  wisdomCmd.command("decide").description("Create a new decision record (ADR)").requiredOption("--id <id>", "Decision ID (e.g., 001)").requiredOption("--title <title>", "Decision title").requiredOption("--symbols <symbols>", "Comma-separated symbols").requiredOption("--context <context>", "Context/problem").requiredOption("--decision <decision>", "The decision made").option("--status <status>", "Status: proposed, accepted", "proposed").action(async (options) => {
487
- const { wisdomDecideCommand } = await import("./wisdom-LRM4FFCH.js");
487
+ const { wisdomDecideCommand } = await import("./wisdom-L2WC7J62.js");
488
488
  await wisdomDecideCommand(options);
489
489
  });
490
490
  wisdomCmd.command("expert [query]").description("Find experts for symbols or areas").option("--json", "Output as JSON").action(async (query, options) => {
491
- const { wisdomExpertCommand } = await import("./wisdom-LRM4FFCH.js");
491
+ const { wisdomExpertCommand } = await import("./wisdom-L2WC7J62.js");
492
492
  await wisdomExpertCommand(query, options);
493
493
  });
494
494
  wisdomCmd.option("--json", "Output as JSON").action(async (options) => {
495
- const { wisdomShowCommand } = await import("./wisdom-LRM4FFCH.js");
495
+ const { wisdomShowCommand } = await import("./wisdom-L2WC7J62.js");
496
496
  await wisdomShowCommand(void 0, options);
497
497
  });
498
498
  var historyCmd = program.command("history").description("Implementation history - tracking changes, validation, fragility");
499
499
  historyCmd.command("show [symbol]").description("Display history for symbols or overview").option("--json", "Output as JSON").option("-l, --limit <number>", "Number of entries", "10").action(async (symbol, options) => {
500
- const { historyShowCommand } = await import("./history-EVO3L6SC.js");
500
+ const { historyShowCommand } = await import("./history-CETCSUCP.js");
501
501
  await historyShowCommand(symbol, { ...options, limit: parseInt(options.limit) });
502
502
  });
503
503
  historyCmd.command("init").description("Initialize history directory").option("-f, --force", "Overwrite existing files").action(async (options) => {
504
- const { historyInitCommand } = await import("./history-EVO3L6SC.js");
504
+ const { historyInitCommand } = await import("./history-CETCSUCP.js");
505
505
  await historyInitCommand(options);
506
506
  });
507
507
  historyCmd.command("fragile").description("Show fragile symbols that need extra care").option("--json", "Output as JSON").action(async (options) => {
508
- const { historyFragileCommand } = await import("./history-EVO3L6SC.js");
508
+ const { historyFragileCommand } = await import("./history-CETCSUCP.js");
509
509
  await historyFragileCommand(options);
510
510
  });
511
511
  historyCmd.command("reindex").description("Regenerate index from log").action(async () => {
512
- const { historyReindexCommand } = await import("./history-EVO3L6SC.js");
512
+ const { historyReindexCommand } = await import("./history-CETCSUCP.js");
513
513
  await historyReindexCommand();
514
514
  });
515
515
  historyCmd.command("record").description("Record an implementation event").requiredOption("--type <type>", "Type: implement, refactor, rollback").requiredOption("--symbols <symbols>", "Comma-separated symbols").requiredOption("--description <desc>", "What was done").option("--intent <intent>", "Intent: feature, fix, refactor").option("--commit <hash>", "Git commit hash").option("--reason <reason>", "Reason for rollback").action(async (options) => {
516
- const { historyRecordCommand } = await import("./history-EVO3L6SC.js");
516
+ const { historyRecordCommand } = await import("./history-CETCSUCP.js");
517
517
  await historyRecordCommand(options);
518
518
  });
519
519
  historyCmd.command("validate").description("Record a validation result").requiredOption("--result <result>", "Result: pass, fail, partial").option("--ref <id>", "Implementation ID being validated").option("--passed <n>", "Tests passed").option("--failed <n>", "Tests failed").action(async (options) => {
520
- const { historyValidateCommand } = await import("./history-EVO3L6SC.js");
520
+ const { historyValidateCommand } = await import("./history-CETCSUCP.js");
521
521
  await historyValidateCommand({
522
522
  ...options,
523
523
  passed: options.passed ? parseInt(options.passed) : void 0,
@@ -525,180 +525,181 @@ historyCmd.command("validate").description("Record a validation result").require
525
525
  });
526
526
  });
527
527
  historyCmd.option("--json", "Output as JSON").action(async (options) => {
528
- const { historyShowCommand } = await import("./history-EVO3L6SC.js");
528
+ const { historyShowCommand } = await import("./history-CETCSUCP.js");
529
529
  await historyShowCommand(void 0, options);
530
530
  });
531
531
  var hooksCmd = program.command("hooks").description("Git hooks for automatic history capture");
532
532
  hooksCmd.command("install").description("Install git hooks, Claude Code hooks, and Cursor hooks").option("-f, --force", "Overwrite existing hooks").option("--post-commit", "Only install post-commit hook").option("--pre-push", "Only install pre-push hook").option("--claude-code", "Only install Claude Code hooks (stop + pre-commit)").option("--cursor", "Only install Cursor hooks (.cursor/hooks.json)").option("--dry-run", "Show what would be installed without making changes").action(async (options) => {
533
- const { hooksInstallCommand } = await import("./hooks-JXYHVGIN.js");
533
+ const { hooksInstallCommand } = await import("./hooks-TCUHQMPF.js");
534
534
  await hooksInstallCommand(options);
535
535
  });
536
536
  hooksCmd.command("uninstall").description("Remove paradigm hooks (git hooks, or --cursor for Cursor hooks)").option("--cursor", "Remove Cursor hooks instead of git hooks").option("--dry-run", "Show what would be removed without making changes").action(async (options) => {
537
- const { hooksUninstallCommand } = await import("./hooks-JXYHVGIN.js");
537
+ const { hooksUninstallCommand } = await import("./hooks-TCUHQMPF.js");
538
538
  await hooksUninstallCommand(options);
539
539
  });
540
540
  hooksCmd.command("status").description("Check git hooks status").action(async () => {
541
- const { hooksStatusCommand } = await import("./hooks-JXYHVGIN.js");
541
+ const { hooksStatusCommand } = await import("./hooks-TCUHQMPF.js");
542
542
  await hooksStatusCommand();
543
543
  });
544
544
  hooksCmd.action(async () => {
545
- const { hooksStatusCommand } = await import("./hooks-JXYHVGIN.js");
545
+ const { hooksStatusCommand } = await import("./hooks-TCUHQMPF.js");
546
546
  await hooksStatusCommand();
547
547
  });
548
548
  var triageCmd = program.command("triage").description("Semantic error triage - incident management and pattern matching");
549
549
  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) => {
550
- const { triageListCommand } = await import("./triage-MKKIWBSW.js");
550
+ const { triageListCommand } = await import("./triage-GJ6GK647.js");
551
551
  await triageListCommand(options);
552
552
  });
553
553
  triageCmd.command("show <id>").description("Show full incident details").option("--timeline", "Include flow timeline").option("--json", "Output as JSON").action(async (id, options) => {
554
- const { triageShowCommand } = await import("./triage-MKKIWBSW.js");
554
+ const { triageShowCommand } = await import("./triage-GJ6GK647.js");
555
555
  await triageShowCommand(id, options);
556
556
  });
557
557
  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) => {
558
- const { triageResolveCommand } = await import("./triage-MKKIWBSW.js");
558
+ const { triageResolveCommand } = await import("./triage-GJ6GK647.js");
559
559
  await triageResolveCommand(id, options);
560
560
  });
561
561
  triageCmd.command("note <id> <note>").description("Add a note to an incident").action(async (id, note) => {
562
- const { triageNoteCommand } = await import("./triage-MKKIWBSW.js");
562
+ const { triageNoteCommand } = await import("./triage-GJ6GK647.js");
563
563
  await triageNoteCommand(id, note);
564
564
  });
565
565
  triageCmd.command("link <id1> <id2>").description("Link two related incidents").action(async (id1, id2) => {
566
- const { triageLinkCommand } = await import("./triage-MKKIWBSW.js");
566
+ const { triageLinkCommand } = await import("./triage-GJ6GK647.js");
567
567
  await triageLinkCommand(id1, id2);
568
568
  });
569
569
  var triagePatternsCmd = triageCmd.command("patterns").description("Manage failure patterns");
570
570
  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) => {
571
- const { triagePatternsListCommand } = await import("./triage-MKKIWBSW.js");
571
+ const { triagePatternsListCommand } = await import("./triage-GJ6GK647.js");
572
572
  await triagePatternsListCommand(options);
573
573
  });
574
574
  triagePatternsCmd.command("show <id>").description("Show pattern details").option("--json", "Output as JSON").action(async (id, options) => {
575
- const { triagePatternsShowCommand } = await import("./triage-MKKIWBSW.js");
575
+ const { triagePatternsShowCommand } = await import("./triage-GJ6GK647.js");
576
576
  await triagePatternsShowCommand(id, options);
577
577
  });
578
578
  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) => {
579
- const { triagePatternsAddCommand } = await import("./triage-MKKIWBSW.js");
579
+ const { triagePatternsAddCommand } = await import("./triage-GJ6GK647.js");
580
580
  await triagePatternsAddCommand(options);
581
581
  });
582
582
  triagePatternsCmd.command("delete <id>").alias("rm").description("Delete a pattern").action(async (id) => {
583
- const { triagePatternsDeleteCommand } = await import("./triage-MKKIWBSW.js");
583
+ const { triagePatternsDeleteCommand } = await import("./triage-GJ6GK647.js");
584
584
  await triagePatternsDeleteCommand(id);
585
585
  });
586
586
  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) => {
587
- const { triagePatternsTestCommand } = await import("./triage-MKKIWBSW.js");
587
+ const { triagePatternsTestCommand } = await import("./triage-GJ6GK647.js");
588
588
  await triagePatternsTestCommand(id, options);
589
589
  });
590
590
  triagePatternsCmd.command("seed").description("Load built-in seed patterns").action(async () => {
591
- const { triagePatternsSeedCommand } = await import("./triage-MKKIWBSW.js");
591
+ const { triagePatternsSeedCommand } = await import("./triage-GJ6GK647.js");
592
592
  await triagePatternsSeedCommand();
593
593
  });
594
594
  triagePatternsCmd.action(async () => {
595
- const { triagePatternsListCommand } = await import("./triage-MKKIWBSW.js");
595
+ const { triagePatternsListCommand } = await import("./triage-GJ6GK647.js");
596
596
  await triagePatternsListCommand({});
597
597
  });
598
598
  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) => {
599
- const { triageExportCommand } = await import("./triage-MKKIWBSW.js");
599
+ const { triageExportCommand } = await import("./triage-GJ6GK647.js");
600
600
  await triageExportCommand(type, options);
601
601
  });
602
602
  triageCmd.command("import <file>").description("Import patterns from JSON file").option("--overwrite", "Overwrite existing patterns").action(async (file, options) => {
603
- const { triageImportCommand } = await import("./triage-MKKIWBSW.js");
603
+ const { triageImportCommand } = await import("./triage-GJ6GK647.js");
604
604
  await triageImportCommand(file, options);
605
605
  });
606
606
  triageCmd.command("restore <file>").description("Restore from full backup").action(async (file) => {
607
- const { triageRestoreCommand } = await import("./triage-MKKIWBSW.js");
607
+ const { triageRestoreCommand } = await import("./triage-GJ6GK647.js");
608
608
  await triageRestoreCommand(file);
609
609
  });
610
610
  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) => {
611
- const { triageStatsCommand } = await import("./triage-MKKIWBSW.js");
611
+ const { triageStatsCommand } = await import("./triage-GJ6GK647.js");
612
612
  await triageStatsCommand(options);
613
613
  });
614
614
  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) => {
615
- const { triageRecordCommand } = await import("./triage-MKKIWBSW.js");
615
+ const { triageRecordCommand } = await import("./triage-GJ6GK647.js");
616
616
  await triageRecordCommand(options);
617
617
  });
618
618
  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) => {
619
- const { triageListCommand } = await import("./triage-MKKIWBSW.js");
619
+ const { triageListCommand } = await import("./triage-GJ6GK647.js");
620
620
  await triageListCommand(options);
621
621
  });
622
622
  var loreCmd = program.command("lore").description("Project lore - timeline of everything that happened to this project");
623
623
  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").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) => {
624
- const { loreListCommand } = await import("./list-JKBJ7ESH.js");
624
+ const { loreListCommand } = await import("./list-Q4R7L7WJ.js");
625
625
  await loreListCommand(options);
626
626
  });
627
627
  loreCmd.command("show <id>").description("Show full detail for a lore entry").option("--json", "Output as JSON").action(async (id, options) => {
628
- const { loreShowCommand } = await import("./show-SAMTXEHG.js");
628
+ const { loreShowCommand } = await import("./show-CJGHREFS.js");
629
629
  await loreShowCommand(id, options);
630
630
  });
631
631
  loreCmd.command("record").description("Record a new lore entry (human note, milestone, etc.)").option("--type <type>", "Entry type: human-note, decision, milestone", "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").action(async (options) => {
632
- const { loreRecordCommand } = await import("./record-EECZ3E4I.js");
632
+ const { loreRecordCommand } = await import("./record-YJ3D3462.js");
633
633
  await loreRecordCommand(options);
634
634
  });
635
635
  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) => {
636
- const { loreReviewCommand } = await import("./review-BF26ILZB.js");
636
+ const { loreReviewCommand } = await import("./review-3OW3KVW7.js");
637
637
  await loreReviewCommand(id, options);
638
638
  });
639
639
  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) => {
640
- const { loreEditCommand } = await import("./edit-EOMPXOG5.js");
640
+ const { loreEditCommand } = await import("./edit-7FSQNAPE.js");
641
641
  await loreEditCommand(id, options);
642
642
  });
643
643
  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) => {
644
- const { loreDeleteCommand } = await import("./delete-3YXAJ5AA.js");
644
+ const { loreDeleteCommand } = await import("./delete-OINCSDQH.js");
645
645
  await loreDeleteCommand(id, options);
646
646
  });
647
647
  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) => {
648
- const { loreTimelineCommand } = await import("./timeline-TJDVVVA3.js");
648
+ const { loreTimelineCommand } = await import("./timeline-ELO5JTQO.js");
649
649
  await loreTimelineCommand(options);
650
650
  });
651
651
  loreCmd.option("-p, --port <port>", "Port to run on", "3840").option("--no-open", "Don't open browser automatically").action(async (options) => {
652
- const { loreServeCommand } = await import("./serve-H7ZBMODT.js");
652
+ const { loreServeCommand } = await import("./serve-XLKEMQEH.js");
653
653
  await loreServeCommand(void 0, options);
654
654
  });
655
655
  var habitsCmd = program.command("habits").description("Behavioral habits - practice tracking and compliance");
656
656
  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) => {
657
- const { habitsListCommand } = await import("./habits-NC2TRMRV.js");
657
+ const { habitsListCommand } = await import("./habits-KD4RLIN2.js");
658
658
  await habitsListCommand(options);
659
659
  });
660
660
  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) => {
661
- const { habitsStatusCommand } = await import("./habits-NC2TRMRV.js");
661
+ const { habitsStatusCommand } = await import("./habits-KD4RLIN2.js");
662
662
  await habitsStatusCommand(options);
663
663
  });
664
664
  habitsCmd.command("init").description("Initialize habits.yaml with seed habits").option("-f, --force", "Overwrite existing file").action(async (options) => {
665
- const { habitsInitCommand } = await import("./habits-NC2TRMRV.js");
665
+ const { habitsInitCommand } = await import("./habits-KD4RLIN2.js");
666
666
  await habitsInitCommand(options);
667
667
  });
668
668
  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) => {
669
- const { habitsCheckCommand } = await import("./habits-NC2TRMRV.js");
669
+ const { habitsCheckCommand } = await import("./habits-KD4RLIN2.js");
670
670
  await habitsCheckCommand(options);
671
671
  });
672
672
  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) => {
673
- const { habitsAddCommand } = await import("./habits-NC2TRMRV.js");
673
+ const { habitsAddCommand } = await import("./habits-KD4RLIN2.js");
674
674
  await habitsAddCommand({ ...options, checkType: options.checkType });
675
675
  });
676
676
  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) => {
677
- const { habitsEditCommand } = await import("./habits-NC2TRMRV.js");
677
+ const { habitsEditCommand } = await import("./habits-KD4RLIN2.js");
678
678
  await habitsEditCommand(id, { ...options, checkType: options.checkType });
679
679
  });
680
680
  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) => {
681
- const { habitsRemoveCommand } = await import("./habits-NC2TRMRV.js");
681
+ const { habitsRemoveCommand } = await import("./habits-KD4RLIN2.js");
682
682
  await habitsRemoveCommand(id, options);
683
683
  });
684
684
  habitsCmd.command("enable <id>").description("Enable a habit").action(async (id) => {
685
- const { habitsToggleCommand } = await import("./habits-NC2TRMRV.js");
685
+ const { habitsToggleCommand } = await import("./habits-KD4RLIN2.js");
686
686
  await habitsToggleCommand(id, "enable");
687
687
  });
688
688
  habitsCmd.command("disable <id>").description("Disable a habit").action(async (id) => {
689
- const { habitsToggleCommand } = await import("./habits-NC2TRMRV.js");
689
+ const { habitsToggleCommand } = await import("./habits-KD4RLIN2.js");
690
690
  await habitsToggleCommand(id, "disable");
691
691
  });
692
692
  habitsCmd.action(async () => {
693
- const { habitsListCommand } = await import("./habits-NC2TRMRV.js");
693
+ const { habitsListCommand } = await import("./habits-KD4RLIN2.js");
694
694
  await habitsListCommand({});
695
695
  });
696
- program.command("sentinel [path]").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) => {
697
- const { sentinelCommand } = await import("./sentinel-BGCISNIK.js");
696
+ var sentinelCmd = program.command("sentinel").description("Sentinel \u2014 semantic error monitoring");
697
+ 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) => {
698
+ const { sentinelCommand } = await import("./sentinel-RERNMWSE.js");
698
699
  await sentinelCommand(path2, options);
699
700
  });
700
701
  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) => {
701
- const { universityCommand } = await import("./university-65YJZ2LW.js");
702
+ const { universityCommand } = await import("./university-KVYNACJZ.js");
702
703
  await universityCommand(void 0, options);
703
704
  });
704
705
  program.parse();