@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.
- package/dist/{accept-orchestration-YKMKMWGA.js → accept-orchestration-ORQRKKGR.js} +4 -4
- package/dist/{agents-suggest-35LIQKDH.js → agents-suggest-65SER5IS.js} +1 -1
- package/dist/{aggregate-V4KPR3RW.js → aggregate-M5WMUI6B.js} +1 -1
- package/dist/{auto-6MOGYQ4G.js → auto-B22FVSQI.js} +1 -1
- package/dist/{beacon-XRXL5KZB.js → beacon-XL2ALH5O.js} +1 -1
- package/dist/{check-UZY647TB.js → check-5RKOAN7S.js} +1 -1
- package/dist/{chunk-RDPXBMHK.js → chunk-3BAMPB6I.js} +6 -6
- package/dist/{chunk-5TUAVVIG.js → chunk-6GWRQWQB.js} +1 -1
- package/dist/{chunk-F6EJKLF4.js → chunk-O5ZO5LSW.js} +1 -1
- package/dist/{chunk-UVI3OH3G.js → chunk-R2SGQ22F.js} +11 -58
- package/dist/{chunk-4PEQHWD7.js → chunk-XKAFTZOZ.js} +1 -1
- package/dist/{chunk-5N5LR2KS.js → chunk-XNUWLW73.js} +6 -6
- package/dist/{chunk-JQYGPVLQ.js → chunk-YOFP72IB.js} +1 -1
- package/dist/{chunk-CQFNTBFJ.js → chunk-Z42FOOVT.js} +3 -3
- package/dist/{chunk-CYGHL7PQ.js → chunk-ZMN3RAIT.js} +5 -5
- package/dist/{chunk-4ZO3ZOPM.js → chunk-ZRPEI35Q.js} +14 -59
- package/dist/chunk-ZXMDA7VB.js +16 -0
- package/dist/{claude-SUYNN72C.js → claude-63ISJAZK.js} +1 -1
- package/dist/{claude-cli-OF43XAO3.js → claude-cli-ABML5RHX.js} +1 -1
- package/dist/{claude-code-PW6SKD2M.js → claude-code-JRLMRPTO.js} +1 -1
- package/dist/{claude-code-teams-JLZ5IXB6.js → claude-code-teams-CAJBEFIZ.js} +1 -1
- package/dist/commands-VTFOZPUA.js +5387 -0
- package/dist/{constellation-GNK5DIMH.js → constellation-NXU6Q2HM.js} +1 -1
- package/dist/{cost-AGO5N7DD.js → cost-CTGSLSOC.js} +1 -1
- package/dist/{cost-KYXIQ62X.js → cost-XEBADYFT.js} +1 -1
- package/dist/{cursor-cli-IHJMPRCW.js → cursor-cli-QUOOF2N4.js} +1 -1
- package/dist/{cursorrules-LQFA7M62.js → cursorrules-XBWFX66V.js} +1 -1
- package/dist/{delete-3YXAJ5AA.js → delete-OINCSDQH.js} +2 -2
- package/dist/{diff-4FV7T35U.js → diff-4XJZN4OB.js} +4 -4
- package/dist/{dist-ZEMSQV74.js → dist-3RVKEJRT.js} +1 -1
- package/dist/{dist-Q6SAZI7X.js → dist-7U64HDSC.js} +1 -1
- package/dist/{dist-AG5JNIZU-XSEZ2LLK.js → dist-AG5JNIZU-HW2FWNTZ.js} +1 -1
- package/dist/dist-KY5HGDDL.js +1304 -0
- package/dist/{dist-JOHRYQUA.js → dist-PSF5CP4I.js} +1 -1
- package/dist/{dist-6SX5ZKKF.js → dist-RMAIFRTW.js} +3 -3
- package/dist/{dist-YB7T54QE.js → dist-YHDSIZQD.js} +1 -1
- package/dist/{doctor-2KM5HOK6.js → doctor-FINKMI66.js} +2 -2
- package/dist/{drift-FH2UY64B.js → drift-YGT4LJ7Q.js} +1 -1
- package/dist/{echo-VYZW3OTT.js → echo-A6HD5UP7.js} +1 -1
- package/dist/{edit-EOMPXOG5.js → edit-7FSQNAPE.js} +2 -2
- package/dist/{export-R4FJ5NOH.js → export-T7CMMJIB.js} +1 -1
- package/dist/{flow-MCKPJGRJ.js → flow-UFMPVOEM.js} +1 -1
- package/dist/{global-AXILUM5X.js → global-HHUJSBG5.js} +1 -1
- package/dist/{habits-NC2TRMRV.js → habits-KD4RLIN2.js} +3 -3
- package/dist/{history-EVO3L6SC.js → history-CETCSUCP.js} +1 -1
- package/dist/{hooks-JXYHVGIN.js → hooks-TCUHQMPF.js} +1 -1
- package/dist/index.js +138 -137
- package/dist/{lint-N4LMMEXH.js → lint-53GPXKKI.js} +1 -1
- package/dist/{list-JKBJ7ESH.js → list-Q4R7L7WJ.js} +2 -2
- package/dist/{lore-server-RQH5REZV.js → lore-server-GKZ6ESNJ.js} +1 -1
- package/dist/{manual-Y3QOXWYA.js → manual-AFJ2J2V3.js} +1 -1
- package/dist/mcp.js +4 -4
- package/dist/{orchestrate-IV54FMHD.js → orchestrate-6XGEA655.js} +4 -4
- package/dist/{portal-check-2HI4FFD6.js → portal-check-FF5EKZE5.js} +1 -1
- package/dist/{portal-compliance-KQCTAQTJ.js → portal-compliance-VU4NIFEN.js} +1 -1
- package/dist/{probe-X3J2JX62.js → probe-T77FFIAG.js} +1 -1
- package/dist/{promote-HZH5E5CO.js → promote-XO63XMAN.js} +2 -2
- package/dist/{providers-IONB4YRJ.js → providers-VIBWDN5D.js} +2 -2
- package/dist/{record-EECZ3E4I.js → record-YJ3D3462.js} +2 -2
- package/dist/{reindex-ZM6J53UP.js → reindex-4OOME3TT.js} +1 -1
- package/dist/{remember-3KJZGDUG.js → remember-IEBQHXHZ.js} +1 -1
- package/dist/{review-BF26ILZB.js → review-3OW3KVW7.js} +2 -2
- package/dist/{ripple-JIUAMBLA.js → ripple-DFMXLFWI.js} +1 -1
- package/dist/{sentinel-BGCISNIK.js → sentinel-RERNMWSE.js} +2 -2
- package/dist/sentinel-mcp.js +4181 -0
- package/dist/sentinel.js +35 -0
- package/dist/{serve-H7ZBMODT.js → serve-XLKEMQEH.js} +2 -2
- package/dist/server-CAXNYVV7.js +1616 -0
- package/dist/{server-E2CNZC4K.js → server-V3ANAXDP.js} +1 -1
- package/dist/{setup-UKJ3VGHI.js → setup-HOI52TN3.js} +2 -2
- package/dist/{setup-363IB6MO.js → setup-YNZJQLW7.js} +1 -1
- package/dist/{shift-G2ZCIR5Q.js → shift-SW3GSODO.js} +7 -7
- package/dist/{show-SAMTXEHG.js → show-CJGHREFS.js} +2 -2
- package/dist/{snapshot-KCMONZAO.js → snapshot-XHINQBZS.js} +1 -1
- package/dist/{spawn-7SDONTJN.js → spawn-JSV2HST3.js} +3 -3
- package/dist/{summary-F46FRO3Y.js → summary-NV7SBV5O.js} +1 -1
- package/dist/{switch-CC2KACXO.js → switch-WYUMVNA5.js} +1 -1
- package/dist/{sync-4CNRHUWX.js → sync-ZM4Q3R4U.js} +1 -1
- package/dist/{sync-llms-MCWB37HN.js → sync-llms-JIPP3XX4.js} +1 -1
- package/dist/{team-XUZBPIFZ.js → team-YIYA4ZLX.js} +5 -5
- package/dist/{test-DK2RWLTK.js → test-WTR5Q33E.js} +1 -1
- package/dist/{thread-RNSLADXN.js → thread-3WM7KKID.js} +1 -1
- package/dist/{timeline-TJDVVVA3.js → timeline-ELO5JTQO.js} +2 -2
- package/dist/{triage-MKKIWBSW.js → triage-GJ6GK647.js} +3 -3
- package/dist/{tutorial-L5Q3ZDHK.js → tutorial-GC6QL4US.js} +1 -1
- package/dist/{university-65YJZ2LW.js → university-KVYNACJZ.js} +2 -2
- package/dist/{upgrade-HGF4MBGV.js → upgrade-65QOQXRC.js} +1 -1
- package/dist/{validate-F3YHBCRZ.js → validate-ITC5D6QG.js} +1 -1
- package/dist/{validate-2LTHHORX.js → validate-TKKRGJKC.js} +1 -1
- package/dist/{watch-CL2PPS2K.js → watch-ERBEJUJW.js} +1 -1
- package/dist/{watch-NBPOMOEX.js → watch-X64UK7K4.js} +2 -2
- package/dist/{wisdom-LRM4FFCH.js → wisdom-L2WC7J62.js} +1 -1
- package/dist/{workspace-7CWY4IWV.js → workspace-S5Q5LVA6.js} +1 -1
- package/package.json +7 -2
- package/dist/chunk-MO4EEYFW.js +0 -38
- 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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
693
|
+
const { habitsListCommand } = await import("./habits-KD4RLIN2.js");
|
|
694
694
|
await habitsListCommand({});
|
|
695
695
|
});
|
|
696
|
-
program.command("sentinel
|
|
697
|
-
|
|
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-
|
|
702
|
+
const { universityCommand } = await import("./university-KVYNACJZ.js");
|
|
702
703
|
await universityCommand(void 0, options);
|
|
703
704
|
});
|
|
704
705
|
program.parse();
|