@a-company/paradigm 3.1.5 → 3.5.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-CWZNCGZX.js → accept-orchestration-DIGPJVUR.js} +6 -5
- package/dist/{aggregate-W7Q6VIM2.js → aggregate-V4KPR3RW.js} +2 -2
- package/dist/{beacon-B47XSTL7.js → beacon-XRXL5KZB.js} +2 -2
- package/dist/{chunk-4LGLU2LO.js → chunk-2E2RTBSM.js} +533 -182
- package/dist/{chunk-YCLN7WXV.js → chunk-2QNZ6PVD.js} +219 -35
- package/dist/{chunk-UM54F7G5.js → chunk-4N6AYEEA.js} +1 -1
- package/dist/{chunk-MVXJVRFI.js → chunk-5TUAVVIG.js} +65 -1
- package/dist/{chunk-5C4SGQKH.js → chunk-6P4IFIK2.js} +4 -2
- package/dist/{chunk-WS5KM7OL.js → chunk-6RNYVBSG.js} +1 -1
- package/dist/{chunk-N6PJAPDE.js → chunk-AK5M6KJB.js} +18 -0
- package/dist/{chunk-VZ7CXFRZ.js → chunk-CRICL4FQ.js} +1004 -17
- package/dist/{chunk-MC7XC7XQ.js → chunk-GZDFVP2N.js} +20 -13
- package/dist/chunk-HPC3JAUP.js +42 -0
- package/dist/chunk-IRVA7NKV.js +657 -0
- package/dist/{chunk-ZPN7MXRA.js → chunk-KFHK6EBI.js} +184 -1
- package/dist/{chunk-UUZ2DMG5.js → chunk-KWDTBXP2.js} +1 -1
- package/dist/{chunk-DRUDZKIT.js → chunk-M2XMTJHQ.js} +693 -70
- package/dist/{chunk-PW2EXJQT.js → chunk-MRENOFTR.js} +24 -1
- package/dist/{chunk-QS36NGWV.js → chunk-QHJGB5TV.js} +1 -1
- package/dist/chunk-UI3XXVJ6.js +449 -0
- package/dist/{chunk-AD2LSCHB.js → chunk-Y4XZWCHK.js} +40 -74
- package/dist/{constellation-K3CIQCHI.js → constellation-GNK5DIMH.js} +2 -2
- package/dist/{cost-AEK6R7HK.js → cost-AGO5N7DD.js} +1 -1
- package/dist/{cursorrules-KI5QWHIX.js → cursorrules-LQFA7M62.js} +2 -2
- package/dist/{delete-W67IVTLJ.js → delete-3YXAJ5AA.js} +12 -1
- package/dist/{diff-AJJ5H6HV.js → diff-J6C5IHPV.js} +6 -5
- package/dist/{dist-2F7NO4H4-KSL6SJIO.js → dist-AG5JNIZU-XSEZ2LLK.js} +28 -3
- package/dist/dist-JOHRYQUA.js +7294 -0
- package/dist/{dist-NHJQVVUW.js → dist-Q6SAZI7X.js} +2 -2
- package/dist/{dist-GPQ4LAY3.js → dist-YP2CO4TG.js} +24 -6
- package/dist/{doctor-JBIV5PMN.js → doctor-TQYRF7KK.js} +2 -2
- package/dist/{edit-Y7XPYSMK.js → edit-EOMPXOG5.js} +1 -1
- package/dist/flow-7JUH6D4H.js +185 -0
- package/dist/global-AXILUM5X.js +136 -0
- package/dist/{habits-FA65W77Y.js → habits-CHP4EW5H.js} +234 -5
- package/dist/{hooks-JKWO44WH.js → hooks-DLZEYHI3.js} +1 -1
- package/dist/index.js +125 -100
- package/dist/{lint-HXKTWRNO.js → lint-N4LMMEXH.js} +141 -1
- package/dist/{list-R3QWW4SC.js → list-JKBJ7ESH.js} +1 -1
- package/dist/mcp.js +9273 -6515
- package/dist/{orchestrate-4ZH5GUQH.js → orchestrate-FAV64G2R.js} +6 -5
- package/dist/{probe-OYCP4JYG.js → probe-X3J2JX62.js} +18 -3
- package/dist/{promote-E6NBZ3BK.js → promote-HZH5E5CO.js} +1 -1
- package/dist/{providers-4PGPZEWP.js → providers-NQ67LO2Z.js} +1 -1
- package/dist/{record-OHQNWOUP.js → record-EECZ3E4I.js} +1 -1
- package/dist/{remember-6VZ74B7E.js → remember-3KJZGDUG.js} +1 -1
- package/dist/{review-RUHX25A5.js → review-BF26ILZB.js} +1 -1
- package/dist/{ripple-SBQOSTZD.js → ripple-JIUAMBLA.js} +2 -2
- package/dist/sentinel-ZTL224IG.js +63 -0
- package/dist/{server-MV4HNFVF.js → server-MZBYDXJY.js} +4193 -9
- package/dist/{setup-DF4F3ICN.js → setup-363IB6MO.js} +1 -1
- package/dist/{setup-JHBPZAG7.js → setup-UKJ3VGHI.js} +4 -4
- package/dist/{shift-2LQFQP4P.js → shift-KDVYB6CR.js} +16 -13
- package/dist/{show-WTOJXUTN.js → show-SAMTXEHG.js} +1 -1
- package/dist/{snapshot-GTVPRYZG.js → snapshot-KCMONZAO.js} +2 -2
- package/dist/{spawn-BJRQA2NR.js → spawn-EO7B2UM3.js} +2 -2
- package/dist/{summary-5SBFO7QK.js → summary-E2PU4UN2.js} +3 -3
- package/dist/{switch-6EANJ7O6.js → switch-CC2KACXO.js} +1 -1
- package/dist/{sync-5KSTPJ4B.js → sync-5VJPZQNX.js} +2 -2
- package/dist/sync-llms-7QDA3ZWC.js +166 -0
- package/dist/{team-NWP2KJAB.js → team-6CCNANKE.js} +7 -6
- package/dist/{test-MA5TWJQV.js → test-DK2RWLTK.js} +91 -8
- package/dist/{thread-JCJVRUQR.js → thread-RNSLADXN.js} +18 -2
- package/dist/{timeline-P7BARFLI.js → timeline-TJDVVVA3.js} +1 -1
- package/dist/{triage-TBIWJA6R.js → triage-PXMU3RWV.js} +2 -2
- package/dist/university-content/courses/para-101.json +2 -1
- package/dist/university-content/courses/para-201.json +102 -3
- package/dist/university-content/courses/para-301.json +14 -11
- package/dist/university-content/courses/para-401.json +57 -3
- package/dist/university-content/courses/para-501.json +204 -6
- package/dist/university-content/plsat/v3.0.json +808 -3
- package/dist/university-content/reference.json +270 -0
- package/dist/{upgrade-TIYFQYPO.js → upgrade-RBSE4M6I.js} +1 -1
- package/dist/{validate-QEEY6KFS.js → validate-2LTHHORX.js} +1 -1
- package/dist/{watch-4LT4O6K7.js → watch-NBPOMOEX.js} +76 -0
- package/dist/{watch-2XEYUH43.js → watch-PAEH6MOG.js} +1 -1
- package/package.json +1 -1
- package/dist/chunk-GWM2WRXL.js +0 -1095
- package/dist/sentinel-WB7GIK4V.js +0 -43
- /package/dist/{chunk-TAP5N3HH.js → chunk-CCG6KYBT.js} +0 -0
package/dist/index.js
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
initCommand
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-IRVA7NKV.js";
|
|
5
|
+
import "./chunk-UI3XXVJ6.js";
|
|
5
6
|
import "./chunk-CHSHON3O.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-AK5M6KJB.js";
|
|
7
8
|
import {
|
|
8
9
|
aggregateFromDirectory,
|
|
9
10
|
buildSymbolIndex,
|
|
10
11
|
getSymbolCounts
|
|
11
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-6P4IFIK2.js";
|
|
12
13
|
import {
|
|
13
14
|
findPurposeFiles
|
|
14
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-MRENOFTR.js";
|
|
15
16
|
import {
|
|
16
17
|
findGateFiles
|
|
17
18
|
} from "./chunk-IRKUEJVW.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-2QNZ6PVD.js";
|
|
19
20
|
import {
|
|
20
21
|
log
|
|
21
22
|
} from "./chunk-4NCFWYGG.js";
|
|
@@ -109,21 +110,21 @@ ${chalk2.magenta("\u2569 ")}${chalk2.cyan("\u2534 \u2534\u2534\u2514\u2500\u253
|
|
|
109
110
|
program.name("paradigm").description("Unified developer tools ecosystem").version(VERSION).addHelpText("before", banner);
|
|
110
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);
|
|
111
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").action(async (options) => {
|
|
112
|
-
const { shiftCommand } = await import("./shift-
|
|
113
|
+
const { shiftCommand } = await import("./shift-KDVYB6CR.js");
|
|
113
114
|
await shiftCommand(options);
|
|
114
115
|
});
|
|
115
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) => {
|
|
116
|
-
const { setupCommand } = await import("./setup-
|
|
117
|
+
const { setupCommand } = await import("./setup-UKJ3VGHI.js");
|
|
117
118
|
await setupCommand(path2, options);
|
|
118
119
|
});
|
|
119
120
|
program.command("status").alias("st").description("Show project status and symbol counts").action(statusCommand);
|
|
120
121
|
var purposeCmd = program.command("purpose").description("Purpose-related commands");
|
|
121
122
|
purposeCmd.command("remember [path]").description("Aggregate and display purpose context").action(async (path2 = ".") => {
|
|
122
|
-
const { purposeRememberCommand } = await import("./remember-
|
|
123
|
+
const { purposeRememberCommand } = await import("./remember-3KJZGDUG.js");
|
|
123
124
|
await purposeRememberCommand(path2);
|
|
124
125
|
});
|
|
125
126
|
purposeCmd.command("validate [path]").description("Validate purpose files").action(async (path2 = ".") => {
|
|
126
|
-
const { purposeValidateCommand } = await import("./validate-
|
|
127
|
+
const { purposeValidateCommand } = await import("./validate-2LTHHORX.js");
|
|
127
128
|
await purposeValidateCommand(path2);
|
|
128
129
|
});
|
|
129
130
|
var portalCmd = program.command("portal").description("Portal-related commands");
|
|
@@ -132,54 +133,62 @@ portalCmd.command("validate [path]").description("Validate portal.yaml configura
|
|
|
132
133
|
await gateValidateCommand(path2);
|
|
133
134
|
});
|
|
134
135
|
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) => {
|
|
135
|
-
const { gateTestCommand } = await import("./test-
|
|
136
|
+
const { gateTestCommand } = await import("./test-DK2RWLTK.js");
|
|
136
137
|
await gateTestCommand(path2, options);
|
|
137
138
|
});
|
|
138
139
|
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) => {
|
|
139
|
-
const { portalWatchCommand } = await import("./watch-
|
|
140
|
+
const { portalWatchCommand } = await import("./watch-NBPOMOEX.js");
|
|
140
141
|
await portalWatchCommand(path2, options);
|
|
141
142
|
});
|
|
142
143
|
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) => {
|
|
143
|
-
const { portalReportCommand } = await import("./watch-
|
|
144
|
+
const { portalReportCommand } = await import("./watch-NBPOMOEX.js");
|
|
144
145
|
await portalReportCommand(session, options);
|
|
145
146
|
});
|
|
147
|
+
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) => {
|
|
148
|
+
const { portalExportCommand } = await import("./watch-NBPOMOEX.js");
|
|
149
|
+
await portalExportCommand(path2, options);
|
|
150
|
+
});
|
|
146
151
|
var premiseCmd = program.command("premise").description("Premise-related commands");
|
|
147
152
|
premiseCmd.command("aggregate [path]").description("Aggregate all sources into symbol index").action(async (path2 = ".") => {
|
|
148
|
-
const { premiseAggregateCommand } = await import("./aggregate-
|
|
153
|
+
const { premiseAggregateCommand } = await import("./aggregate-V4KPR3RW.js");
|
|
149
154
|
await premiseAggregateCommand(path2);
|
|
150
155
|
});
|
|
151
156
|
premiseCmd.command("snapshot <name>").description("Create a timeline snapshot").option("-d, --description <desc>", "Snapshot description").action(async (name, options) => {
|
|
152
|
-
const { premiseSnapshotCommand } = await import("./snapshot-
|
|
157
|
+
const { premiseSnapshotCommand } = await import("./snapshot-KCMONZAO.js");
|
|
153
158
|
await premiseSnapshotCommand(name, options.description);
|
|
154
159
|
});
|
|
155
160
|
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) => {
|
|
156
|
-
const { syncCommand } = await import("./sync-
|
|
161
|
+
const { syncCommand } = await import("./sync-5VJPZQNX.js");
|
|
157
162
|
await syncCommand(ide, options);
|
|
158
163
|
});
|
|
164
|
+
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) => {
|
|
165
|
+
const { syncLlmsCommand } = await import("./sync-llms-7QDA3ZWC.js");
|
|
166
|
+
await syncLlmsCommand(options);
|
|
167
|
+
});
|
|
159
168
|
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) => {
|
|
160
169
|
console.log("\x1B[33m\u26A0\uFE0F `paradigm cursorrules` is deprecated. Use `paradigm sync cursor` instead.\x1B[0m\n");
|
|
161
|
-
const { cursorrrulesCommand } = await import("./cursorrules-
|
|
170
|
+
const { cursorrrulesCommand } = await import("./cursorrules-LQFA7M62.js");
|
|
162
171
|
await cursorrrulesCommand(path2, options);
|
|
163
172
|
});
|
|
164
173
|
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) => {
|
|
165
|
-
const { indexCommand } = await import("./probe-
|
|
174
|
+
const { indexCommand } = await import("./probe-X3J2JX62.js");
|
|
166
175
|
await indexCommand(path2, options);
|
|
167
176
|
});
|
|
168
177
|
var probeCmd = program.command("probe").description("Probe-related commands");
|
|
169
178
|
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) => {
|
|
170
|
-
const { indexCommand } = await import("./probe-
|
|
179
|
+
const { indexCommand } = await import("./probe-X3J2JX62.js");
|
|
171
180
|
await indexCommand(path2, options);
|
|
172
181
|
});
|
|
173
182
|
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) => {
|
|
174
|
-
const { upgradeCommand } = await import("./upgrade-
|
|
183
|
+
const { upgradeCommand } = await import("./upgrade-RBSE4M6I.js");
|
|
175
184
|
await upgradeCommand(path2, options);
|
|
176
185
|
});
|
|
177
|
-
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").action(async (path2, options) => {
|
|
178
|
-
const { lintCommand } = await import("./lint-
|
|
186
|
+
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) => {
|
|
187
|
+
const { lintCommand } = await import("./lint-N4LMMEXH.js");
|
|
179
188
|
await lintCommand(path2, options);
|
|
180
189
|
});
|
|
181
190
|
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) => {
|
|
182
|
-
const { costCommand } = await import("./cost-
|
|
191
|
+
const { costCommand } = await import("./cost-AGO5N7DD.js");
|
|
183
192
|
await costCommand(path2, options);
|
|
184
193
|
});
|
|
185
194
|
var scanCmd = program.command("scan").description("Visual discovery and auto-generation commands");
|
|
@@ -193,9 +202,17 @@ scanCmd.action(() => {
|
|
|
193
202
|
console.log(" auto [path] Auto-generate .purpose files from code analysis");
|
|
194
203
|
console.log("\nRun `paradigm scan auto --help` for options.\n");
|
|
195
204
|
});
|
|
205
|
+
var flowCmd = program.command("flow").description("Flow management commands");
|
|
206
|
+
flowCmd.command("diagram <flowId>").description("Generate Mermaid diagram for a flow").option("-o, --output <path>", "Output file path").action(async (flowId, options) => {
|
|
207
|
+
const { flowDiagramCommand } = await import("./flow-7JUH6D4H.js");
|
|
208
|
+
await flowDiagramCommand(flowId, options);
|
|
209
|
+
});
|
|
210
|
+
flowCmd.action(() => {
|
|
211
|
+
flowCmd.outputHelp();
|
|
212
|
+
});
|
|
196
213
|
var teamCmd = program.command("team").description("Multi-agent orchestration commands");
|
|
197
214
|
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) => {
|
|
198
|
-
const { teamInitCommand } = await import("./team-
|
|
215
|
+
const { teamInitCommand } = await import("./team-6CCNANKE.js");
|
|
199
216
|
await teamInitCommand(path2, {
|
|
200
217
|
...options,
|
|
201
218
|
configureModels: options.configureModels,
|
|
@@ -203,47 +220,47 @@ teamCmd.command("init [path]").description("Initialize team configuration with d
|
|
|
203
220
|
});
|
|
204
221
|
});
|
|
205
222
|
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) => {
|
|
206
|
-
const { teamStatusCommand } = await import("./team-
|
|
223
|
+
const { teamStatusCommand } = await import("./team-6CCNANKE.js");
|
|
207
224
|
await teamStatusCommand(path2, options);
|
|
208
225
|
});
|
|
209
226
|
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) => {
|
|
210
|
-
const { teamHandoffCommand } = await import("./team-
|
|
227
|
+
const { teamHandoffCommand } = await import("./team-6CCNANKE.js");
|
|
211
228
|
await teamHandoffCommand(path2, options);
|
|
212
229
|
});
|
|
213
230
|
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) => {
|
|
214
|
-
const { teamAcceptCommand } = await import("./team-
|
|
231
|
+
const { teamAcceptCommand } = await import("./team-6CCNANKE.js");
|
|
215
232
|
await teamAcceptCommand(handoffId, path2, options);
|
|
216
233
|
});
|
|
217
234
|
teamCmd.command("check [path]").description("Check for conflicts and team health issues").option("--json", "Output as JSON").action(async (path2, options) => {
|
|
218
|
-
const { teamCheckCommand } = await import("./team-
|
|
235
|
+
const { teamCheckCommand } = await import("./team-6CCNANKE.js");
|
|
219
236
|
await teamCheckCommand(path2, options);
|
|
220
237
|
});
|
|
221
238
|
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) => {
|
|
222
|
-
const { teamHistoryCommand } = await import("./team-
|
|
239
|
+
const { teamHistoryCommand } = await import("./team-6CCNANKE.js");
|
|
223
240
|
await teamHistoryCommand(path2, { ...options, limit: parseInt(options.limit) });
|
|
224
241
|
});
|
|
225
242
|
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) => {
|
|
226
|
-
const { teamResetCommand } = await import("./team-
|
|
243
|
+
const { teamResetCommand } = await import("./team-6CCNANKE.js");
|
|
227
244
|
await teamResetCommand(path2, options);
|
|
228
245
|
});
|
|
229
246
|
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) => {
|
|
230
|
-
const { teamSpawnCommand } = await import("./spawn-
|
|
247
|
+
const { teamSpawnCommand } = await import("./spawn-EO7B2UM3.js");
|
|
231
248
|
await teamSpawnCommand(agent, path2, options);
|
|
232
249
|
});
|
|
233
250
|
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) => {
|
|
234
|
-
const { teamOrchestrateCommand } = await import("./orchestrate-
|
|
251
|
+
const { teamOrchestrateCommand } = await import("./orchestrate-FAV64G2R.js");
|
|
235
252
|
await teamOrchestrateCommand(task, path2, options);
|
|
236
253
|
});
|
|
237
254
|
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) => {
|
|
238
|
-
const { teamDiffCommand } = await import("./diff-
|
|
255
|
+
const { teamDiffCommand } = await import("./diff-J6C5IHPV.js");
|
|
239
256
|
await teamDiffCommand(orchestrationId, path2, options);
|
|
240
257
|
});
|
|
241
258
|
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) => {
|
|
242
|
-
const { teamAcceptOrchestrationCommand } = await import("./accept-orchestration-
|
|
259
|
+
const { teamAcceptOrchestrationCommand } = await import("./accept-orchestration-DIGPJVUR.js");
|
|
243
260
|
await teamAcceptOrchestrationCommand(orchestrationId, path2, options);
|
|
244
261
|
});
|
|
245
262
|
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) => {
|
|
246
|
-
const { teamRejectOrchestrationCommand } = await import("./accept-orchestration-
|
|
263
|
+
const { teamRejectOrchestrationCommand } = await import("./accept-orchestration-DIGPJVUR.js");
|
|
247
264
|
await teamRejectOrchestrationCommand(orchestrationId, path2, options);
|
|
248
265
|
});
|
|
249
266
|
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) => {
|
|
@@ -255,11 +272,11 @@ teamCmd.command("export [path]").description("Export orchestration data").option
|
|
|
255
272
|
await teamExportCommand(path2, options);
|
|
256
273
|
});
|
|
257
274
|
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) => {
|
|
258
|
-
const { teamProvidersCommand } = await import("./providers-
|
|
275
|
+
const { teamProvidersCommand } = await import("./providers-NQ67LO2Z.js");
|
|
259
276
|
await teamProvidersCommand(path2, options);
|
|
260
277
|
});
|
|
261
278
|
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) => {
|
|
262
|
-
const { teamModelsCommand } = await import("./team-
|
|
279
|
+
const { teamModelsCommand } = await import("./team-6CCNANKE.js");
|
|
263
280
|
await teamModelsCommand(path2, options);
|
|
264
281
|
});
|
|
265
282
|
var agentsCmd = teamCmd.command("agents").description("Agent management commands");
|
|
@@ -274,7 +291,7 @@ agentsCmd.action(() => {
|
|
|
274
291
|
console.log("\nRun `paradigm team agents suggest --help` for options.\n");
|
|
275
292
|
});
|
|
276
293
|
teamCmd.action(async () => {
|
|
277
|
-
const { teamStatusCommand } = await import("./team-
|
|
294
|
+
const { teamStatusCommand } = await import("./team-6CCNANKE.js");
|
|
278
295
|
await teamStatusCommand(void 0, {});
|
|
279
296
|
});
|
|
280
297
|
var pluginCmd = program.command("plugin").description("Plugin management commands");
|
|
@@ -287,52 +304,60 @@ pluginCmd.action(async () => {
|
|
|
287
304
|
await pluginCheckCommand({});
|
|
288
305
|
});
|
|
289
306
|
program.command("doctor").description("Health check - validate Paradigm setup").action(async () => {
|
|
290
|
-
const { doctorCommand } = await import("./doctor-
|
|
307
|
+
const { doctorCommand } = await import("./doctor-TQYRF7KK.js");
|
|
291
308
|
await doctorCommand();
|
|
292
309
|
});
|
|
310
|
+
var globalCmd = program.command("global").description("Manage Global Brain (~/.paradigm/)");
|
|
311
|
+
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) => {
|
|
312
|
+
const { globalCleanCommand } = await import("./global-AXILUM5X.js");
|
|
313
|
+
await globalCleanCommand(options);
|
|
314
|
+
});
|
|
315
|
+
globalCmd.action(() => {
|
|
316
|
+
globalCmd.outputHelp();
|
|
317
|
+
});
|
|
293
318
|
program.command("watch").description("Watch for changes and auto-sync IDE files").action(async () => {
|
|
294
|
-
const { watchCommand } = await import("./watch-
|
|
319
|
+
const { watchCommand } = await import("./watch-PAEH6MOG.js");
|
|
295
320
|
await watchCommand();
|
|
296
321
|
});
|
|
297
322
|
program.command("summary").description("Generate .paradigm/project.md with project stats").action(async () => {
|
|
298
|
-
const { summaryCommand } = await import("./summary-
|
|
323
|
+
const { summaryCommand } = await import("./summary-E2PU4UN2.js");
|
|
299
324
|
await summaryCommand();
|
|
300
325
|
});
|
|
301
326
|
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) => {
|
|
302
|
-
const { constellationCommand } = await import("./constellation-
|
|
327
|
+
const { constellationCommand } = await import("./constellation-GNK5DIMH.js");
|
|
303
328
|
await constellationCommand(path2, options);
|
|
304
329
|
});
|
|
305
330
|
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) => {
|
|
306
|
-
const { beaconCommand } = await import("./beacon-
|
|
331
|
+
const { beaconCommand } = await import("./beacon-XRXL5KZB.js");
|
|
307
332
|
await beaconCommand(path2, options);
|
|
308
333
|
});
|
|
309
334
|
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) => {
|
|
310
|
-
const { rippleCommand } = await import("./ripple-
|
|
335
|
+
const { rippleCommand } = await import("./ripple-JIUAMBLA.js");
|
|
311
336
|
await rippleCommand(symbol, path2, options);
|
|
312
337
|
});
|
|
313
338
|
var threadCmd = program.command("thread").description("Session continuity - pass context between AI agent sessions");
|
|
314
339
|
threadCmd.command("show [path]").alias("s").description("Show current thread").option("--json", "Output as JSON (for AI agent queries)").action(async (path2, options) => {
|
|
315
|
-
const { threadShowCommand } = await import("./thread-
|
|
340
|
+
const { threadShowCommand } = await import("./thread-RNSLADXN.js");
|
|
316
341
|
await threadShowCommand(path2, options);
|
|
317
342
|
});
|
|
318
343
|
threadCmd.command("save <message> [path]").description("Save activity to the thread trail").option("-q, --quiet", "Suppress output").action(async (message, path2, options) => {
|
|
319
|
-
const { threadSaveCommand } = await import("./thread-
|
|
344
|
+
const { threadSaveCommand } = await import("./thread-RNSLADXN.js");
|
|
320
345
|
await threadSaveCommand(message, path2, options);
|
|
321
346
|
});
|
|
322
347
|
threadCmd.command("todo <task> [path]").description("Add a loose end (unfinished task)").option("-q, --quiet", "Suppress output").action(async (task, path2, options) => {
|
|
323
|
-
const { threadTodoCommand } = await import("./thread-
|
|
348
|
+
const { threadTodoCommand } = await import("./thread-RNSLADXN.js");
|
|
324
349
|
await threadTodoCommand(task, path2, options);
|
|
325
350
|
});
|
|
326
351
|
threadCmd.command("note <note> [path]").description("Add a breadcrumb (note for next agent)").option("-q, --quiet", "Suppress output").action(async (note, path2, options) => {
|
|
327
|
-
const { threadNoteCommand } = await import("./thread-
|
|
352
|
+
const { threadNoteCommand } = await import("./thread-RNSLADXN.js");
|
|
328
353
|
await threadNoteCommand(note, path2, options);
|
|
329
354
|
});
|
|
330
355
|
threadCmd.command("clear [path]").description("Clear the thread").option("-q, --quiet", "Suppress output").action(async (path2, options) => {
|
|
331
|
-
const { threadClearCommand } = await import("./thread-
|
|
356
|
+
const { threadClearCommand } = await import("./thread-RNSLADXN.js");
|
|
332
357
|
await threadClearCommand(path2, options);
|
|
333
358
|
});
|
|
334
359
|
threadCmd.option("--json", "Output as JSON (for AI agent queries)").action(async (options) => {
|
|
335
|
-
const { threadShowCommand } = await import("./thread-
|
|
360
|
+
const { threadShowCommand } = await import("./thread-RNSLADXN.js");
|
|
336
361
|
await threadShowCommand(void 0, options);
|
|
337
362
|
});
|
|
338
363
|
var echoCmd = program.command("echo").description("Error-to-symbol mapping - find related symbols for error codes");
|
|
@@ -388,35 +413,35 @@ tutorialCmd.command("bugs [path]").description("List intentional bugs").action(a
|
|
|
388
413
|
});
|
|
389
414
|
var mcpCmd = program.command("mcp").description("MCP server configuration for AI clients");
|
|
390
415
|
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) => {
|
|
391
|
-
const { mcpSetupCommand } = await import("./setup-
|
|
416
|
+
const { mcpSetupCommand } = await import("./setup-363IB6MO.js");
|
|
392
417
|
await mcpSetupCommand(options);
|
|
393
418
|
});
|
|
394
419
|
mcpCmd.command("status").description("Show MCP configuration status across clients").option("--json", "Output as JSON").action(async (options) => {
|
|
395
|
-
const { mcpStatusCommand } = await import("./setup-
|
|
420
|
+
const { mcpStatusCommand } = await import("./setup-363IB6MO.js");
|
|
396
421
|
await mcpStatusCommand(options);
|
|
397
422
|
});
|
|
398
423
|
mcpCmd.command("list").alias("ls").description("List all configured MCP servers across all clients").option("--json", "Output as JSON").action(async (options) => {
|
|
399
|
-
const { mcpListCommand } = await import("./setup-
|
|
424
|
+
const { mcpListCommand } = await import("./setup-363IB6MO.js");
|
|
400
425
|
await mcpListCommand(options);
|
|
401
426
|
});
|
|
402
427
|
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) => {
|
|
403
|
-
const { mcpRemoveCommand } = await import("./setup-
|
|
428
|
+
const { mcpRemoveCommand } = await import("./setup-363IB6MO.js");
|
|
404
429
|
await mcpRemoveCommand(server, options);
|
|
405
430
|
});
|
|
406
431
|
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) => {
|
|
407
|
-
const { mcpUseDevCommand } = await import("./switch-
|
|
432
|
+
const { mcpUseDevCommand } = await import("./switch-CC2KACXO.js");
|
|
408
433
|
await mcpUseDevCommand(options);
|
|
409
434
|
});
|
|
410
435
|
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) => {
|
|
411
|
-
const { mcpUseProdCommand } = await import("./switch-
|
|
436
|
+
const { mcpUseProdCommand } = await import("./switch-CC2KACXO.js");
|
|
412
437
|
await mcpUseProdCommand(options);
|
|
413
438
|
});
|
|
414
439
|
mcpCmd.action(async () => {
|
|
415
|
-
const { mcpSwitchStatusCommand } = await import("./switch-
|
|
440
|
+
const { mcpSwitchStatusCommand } = await import("./switch-CC2KACXO.js");
|
|
416
441
|
await mcpSwitchStatusCommand({});
|
|
417
442
|
});
|
|
418
443
|
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) => {
|
|
419
|
-
const { promoteCommand } = await import("./promote-
|
|
444
|
+
const { promoteCommand } = await import("./promote-HZH5E5CO.js");
|
|
420
445
|
await promoteCommand(options);
|
|
421
446
|
});
|
|
422
447
|
var wisdomCmd = program.command("wisdom").description("Team wisdom - preferences, antipatterns, decisions, expertise");
|
|
@@ -478,123 +503,123 @@ historyCmd.option("--json", "Output as JSON").action(async (options) => {
|
|
|
478
503
|
await historyShowCommand(void 0, options);
|
|
479
504
|
});
|
|
480
505
|
var hooksCmd = program.command("hooks").description("Git hooks for automatic history capture");
|
|
481
|
-
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)").action(async (options) => {
|
|
482
|
-
const { hooksInstallCommand } = await import("./hooks-
|
|
506
|
+
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) => {
|
|
507
|
+
const { hooksInstallCommand } = await import("./hooks-DLZEYHI3.js");
|
|
483
508
|
await hooksInstallCommand(options);
|
|
484
509
|
});
|
|
485
|
-
hooksCmd.command("uninstall").description("Remove paradigm hooks (git hooks, or --cursor for Cursor hooks)").option("--cursor", "Remove Cursor hooks instead of git hooks").action(async (options) => {
|
|
486
|
-
const { hooksUninstallCommand } = await import("./hooks-
|
|
510
|
+
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) => {
|
|
511
|
+
const { hooksUninstallCommand } = await import("./hooks-DLZEYHI3.js");
|
|
487
512
|
await hooksUninstallCommand(options);
|
|
488
513
|
});
|
|
489
514
|
hooksCmd.command("status").description("Check git hooks status").action(async () => {
|
|
490
|
-
const { hooksStatusCommand } = await import("./hooks-
|
|
515
|
+
const { hooksStatusCommand } = await import("./hooks-DLZEYHI3.js");
|
|
491
516
|
await hooksStatusCommand();
|
|
492
517
|
});
|
|
493
518
|
hooksCmd.action(async () => {
|
|
494
|
-
const { hooksStatusCommand } = await import("./hooks-
|
|
519
|
+
const { hooksStatusCommand } = await import("./hooks-DLZEYHI3.js");
|
|
495
520
|
await hooksStatusCommand();
|
|
496
521
|
});
|
|
497
522
|
var triageCmd = program.command("triage").description("Semantic error triage - incident management and pattern matching");
|
|
498
523
|
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) => {
|
|
499
|
-
const { triageListCommand } = await import("./triage-
|
|
524
|
+
const { triageListCommand } = await import("./triage-PXMU3RWV.js");
|
|
500
525
|
await triageListCommand(options);
|
|
501
526
|
});
|
|
502
527
|
triageCmd.command("show <id>").description("Show full incident details").option("--timeline", "Include flow timeline").option("--json", "Output as JSON").action(async (id, options) => {
|
|
503
|
-
const { triageShowCommand } = await import("./triage-
|
|
528
|
+
const { triageShowCommand } = await import("./triage-PXMU3RWV.js");
|
|
504
529
|
await triageShowCommand(id, options);
|
|
505
530
|
});
|
|
506
531
|
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) => {
|
|
507
|
-
const { triageResolveCommand } = await import("./triage-
|
|
532
|
+
const { triageResolveCommand } = await import("./triage-PXMU3RWV.js");
|
|
508
533
|
await triageResolveCommand(id, options);
|
|
509
534
|
});
|
|
510
535
|
triageCmd.command("note <id> <note>").description("Add a note to an incident").action(async (id, note) => {
|
|
511
|
-
const { triageNoteCommand } = await import("./triage-
|
|
536
|
+
const { triageNoteCommand } = await import("./triage-PXMU3RWV.js");
|
|
512
537
|
await triageNoteCommand(id, note);
|
|
513
538
|
});
|
|
514
539
|
triageCmd.command("link <id1> <id2>").description("Link two related incidents").action(async (id1, id2) => {
|
|
515
|
-
const { triageLinkCommand } = await import("./triage-
|
|
540
|
+
const { triageLinkCommand } = await import("./triage-PXMU3RWV.js");
|
|
516
541
|
await triageLinkCommand(id1, id2);
|
|
517
542
|
});
|
|
518
543
|
var triagePatternsCmd = triageCmd.command("patterns").description("Manage failure patterns");
|
|
519
544
|
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) => {
|
|
520
|
-
const { triagePatternsListCommand } = await import("./triage-
|
|
545
|
+
const { triagePatternsListCommand } = await import("./triage-PXMU3RWV.js");
|
|
521
546
|
await triagePatternsListCommand(options);
|
|
522
547
|
});
|
|
523
548
|
triagePatternsCmd.command("show <id>").description("Show pattern details").option("--json", "Output as JSON").action(async (id, options) => {
|
|
524
|
-
const { triagePatternsShowCommand } = await import("./triage-
|
|
549
|
+
const { triagePatternsShowCommand } = await import("./triage-PXMU3RWV.js");
|
|
525
550
|
await triagePatternsShowCommand(id, options);
|
|
526
551
|
});
|
|
527
552
|
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) => {
|
|
528
|
-
const { triagePatternsAddCommand } = await import("./triage-
|
|
553
|
+
const { triagePatternsAddCommand } = await import("./triage-PXMU3RWV.js");
|
|
529
554
|
await triagePatternsAddCommand(options);
|
|
530
555
|
});
|
|
531
556
|
triagePatternsCmd.command("delete <id>").alias("rm").description("Delete a pattern").action(async (id) => {
|
|
532
|
-
const { triagePatternsDeleteCommand } = await import("./triage-
|
|
557
|
+
const { triagePatternsDeleteCommand } = await import("./triage-PXMU3RWV.js");
|
|
533
558
|
await triagePatternsDeleteCommand(id);
|
|
534
559
|
});
|
|
535
560
|
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) => {
|
|
536
|
-
const { triagePatternsTestCommand } = await import("./triage-
|
|
561
|
+
const { triagePatternsTestCommand } = await import("./triage-PXMU3RWV.js");
|
|
537
562
|
await triagePatternsTestCommand(id, options);
|
|
538
563
|
});
|
|
539
564
|
triagePatternsCmd.command("seed").description("Load built-in seed patterns").action(async () => {
|
|
540
|
-
const { triagePatternsSeedCommand } = await import("./triage-
|
|
565
|
+
const { triagePatternsSeedCommand } = await import("./triage-PXMU3RWV.js");
|
|
541
566
|
await triagePatternsSeedCommand();
|
|
542
567
|
});
|
|
543
568
|
triagePatternsCmd.action(async () => {
|
|
544
|
-
const { triagePatternsListCommand } = await import("./triage-
|
|
569
|
+
const { triagePatternsListCommand } = await import("./triage-PXMU3RWV.js");
|
|
545
570
|
await triagePatternsListCommand({});
|
|
546
571
|
});
|
|
547
572
|
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) => {
|
|
548
|
-
const { triageExportCommand } = await import("./triage-
|
|
573
|
+
const { triageExportCommand } = await import("./triage-PXMU3RWV.js");
|
|
549
574
|
await triageExportCommand(type, options);
|
|
550
575
|
});
|
|
551
576
|
triageCmd.command("import <file>").description("Import patterns from JSON file").option("--overwrite", "Overwrite existing patterns").action(async (file, options) => {
|
|
552
|
-
const { triageImportCommand } = await import("./triage-
|
|
577
|
+
const { triageImportCommand } = await import("./triage-PXMU3RWV.js");
|
|
553
578
|
await triageImportCommand(file, options);
|
|
554
579
|
});
|
|
555
580
|
triageCmd.command("restore <file>").description("Restore from full backup").action(async (file) => {
|
|
556
|
-
const { triageRestoreCommand } = await import("./triage-
|
|
581
|
+
const { triageRestoreCommand } = await import("./triage-PXMU3RWV.js");
|
|
557
582
|
await triageRestoreCommand(file);
|
|
558
583
|
});
|
|
559
584
|
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) => {
|
|
560
|
-
const { triageStatsCommand } = await import("./triage-
|
|
585
|
+
const { triageStatsCommand } = await import("./triage-PXMU3RWV.js");
|
|
561
586
|
await triageStatsCommand(options);
|
|
562
587
|
});
|
|
563
588
|
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) => {
|
|
564
|
-
const { triageRecordCommand } = await import("./triage-
|
|
589
|
+
const { triageRecordCommand } = await import("./triage-PXMU3RWV.js");
|
|
565
590
|
await triageRecordCommand(options);
|
|
566
591
|
});
|
|
567
592
|
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) => {
|
|
568
|
-
const { triageListCommand } = await import("./triage-
|
|
593
|
+
const { triageListCommand } = await import("./triage-PXMU3RWV.js");
|
|
569
594
|
await triageListCommand(options);
|
|
570
595
|
});
|
|
571
596
|
var loreCmd = program.command("lore").description("Project lore - timeline of everything that happened to this project");
|
|
572
597
|
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) => {
|
|
573
|
-
const { loreListCommand } = await import("./list-
|
|
598
|
+
const { loreListCommand } = await import("./list-JKBJ7ESH.js");
|
|
574
599
|
await loreListCommand(options);
|
|
575
600
|
});
|
|
576
601
|
loreCmd.command("show <id>").description("Show full detail for a lore entry").option("--json", "Output as JSON").action(async (id, options) => {
|
|
577
|
-
const { loreShowCommand } = await import("./show-
|
|
602
|
+
const { loreShowCommand } = await import("./show-SAMTXEHG.js");
|
|
578
603
|
await loreShowCommand(id, options);
|
|
579
604
|
});
|
|
580
605
|
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) => {
|
|
581
|
-
const { loreRecordCommand } = await import("./record-
|
|
606
|
+
const { loreRecordCommand } = await import("./record-EECZ3E4I.js");
|
|
582
607
|
await loreRecordCommand(options);
|
|
583
608
|
});
|
|
584
609
|
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) => {
|
|
585
|
-
const { loreReviewCommand } = await import("./review-
|
|
610
|
+
const { loreReviewCommand } = await import("./review-BF26ILZB.js");
|
|
586
611
|
await loreReviewCommand(id, options);
|
|
587
612
|
});
|
|
588
613
|
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) => {
|
|
589
|
-
const { loreEditCommand } = await import("./edit-
|
|
614
|
+
const { loreEditCommand } = await import("./edit-EOMPXOG5.js");
|
|
590
615
|
await loreEditCommand(id, options);
|
|
591
616
|
});
|
|
592
|
-
loreCmd.command("delete <id>").description("Delete a lore entry").option("-y, --yes", "Skip confirmation").action(async (id, options) => {
|
|
593
|
-
const { loreDeleteCommand } = await import("./delete-
|
|
617
|
+
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) => {
|
|
618
|
+
const { loreDeleteCommand } = await import("./delete-3YXAJ5AA.js");
|
|
594
619
|
await loreDeleteCommand(id, options);
|
|
595
620
|
});
|
|
596
621
|
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) => {
|
|
597
|
-
const { loreTimelineCommand } = await import("./timeline-
|
|
622
|
+
const { loreTimelineCommand } = await import("./timeline-TJDVVVA3.js");
|
|
598
623
|
await loreTimelineCommand(options);
|
|
599
624
|
});
|
|
600
625
|
loreCmd.option("-p, --port <port>", "Port to run on", "3840").option("--no-open", "Don't open browser automatically").action(async (options) => {
|
|
@@ -603,47 +628,47 @@ loreCmd.option("-p, --port <port>", "Port to run on", "3840").option("--no-open"
|
|
|
603
628
|
});
|
|
604
629
|
var habitsCmd = program.command("habits").description("Behavioral habits - practice tracking and compliance");
|
|
605
630
|
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) => {
|
|
606
|
-
const { habitsListCommand } = await import("./habits-
|
|
631
|
+
const { habitsListCommand } = await import("./habits-CHP4EW5H.js");
|
|
607
632
|
await habitsListCommand(options);
|
|
608
633
|
});
|
|
609
634
|
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) => {
|
|
610
|
-
const { habitsStatusCommand } = await import("./habits-
|
|
635
|
+
const { habitsStatusCommand } = await import("./habits-CHP4EW5H.js");
|
|
611
636
|
await habitsStatusCommand(options);
|
|
612
637
|
});
|
|
613
638
|
habitsCmd.command("init").description("Initialize habits.yaml with seed habits").option("-f, --force", "Overwrite existing file").action(async (options) => {
|
|
614
|
-
const { habitsInitCommand } = await import("./habits-
|
|
639
|
+
const { habitsInitCommand } = await import("./habits-CHP4EW5H.js");
|
|
615
640
|
await habitsInitCommand(options);
|
|
616
641
|
});
|
|
617
642
|
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) => {
|
|
618
|
-
const { habitsCheckCommand } = await import("./habits-
|
|
643
|
+
const { habitsCheckCommand } = await import("./habits-CHP4EW5H.js");
|
|
619
644
|
await habitsCheckCommand(options);
|
|
620
645
|
});
|
|
621
646
|
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) => {
|
|
622
|
-
const { habitsAddCommand } = await import("./habits-
|
|
647
|
+
const { habitsAddCommand } = await import("./habits-CHP4EW5H.js");
|
|
623
648
|
await habitsAddCommand({ ...options, checkType: options.checkType });
|
|
624
649
|
});
|
|
625
650
|
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) => {
|
|
626
|
-
const { habitsEditCommand } = await import("./habits-
|
|
651
|
+
const { habitsEditCommand } = await import("./habits-CHP4EW5H.js");
|
|
627
652
|
await habitsEditCommand(id, { ...options, checkType: options.checkType });
|
|
628
653
|
});
|
|
629
654
|
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) => {
|
|
630
|
-
const { habitsRemoveCommand } = await import("./habits-
|
|
655
|
+
const { habitsRemoveCommand } = await import("./habits-CHP4EW5H.js");
|
|
631
656
|
await habitsRemoveCommand(id, options);
|
|
632
657
|
});
|
|
633
658
|
habitsCmd.command("enable <id>").description("Enable a habit").action(async (id) => {
|
|
634
|
-
const { habitsToggleCommand } = await import("./habits-
|
|
659
|
+
const { habitsToggleCommand } = await import("./habits-CHP4EW5H.js");
|
|
635
660
|
await habitsToggleCommand(id, "enable");
|
|
636
661
|
});
|
|
637
662
|
habitsCmd.command("disable <id>").description("Disable a habit").action(async (id) => {
|
|
638
|
-
const { habitsToggleCommand } = await import("./habits-
|
|
663
|
+
const { habitsToggleCommand } = await import("./habits-CHP4EW5H.js");
|
|
639
664
|
await habitsToggleCommand(id, "disable");
|
|
640
665
|
});
|
|
641
666
|
habitsCmd.action(async () => {
|
|
642
|
-
const { habitsListCommand } = await import("./habits-
|
|
667
|
+
const { habitsListCommand } = await import("./habits-CHP4EW5H.js");
|
|
643
668
|
await habitsListCommand({});
|
|
644
669
|
});
|
|
645
670
|
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) => {
|
|
646
|
-
const { sentinelCommand } = await import("./sentinel-
|
|
671
|
+
const { sentinelCommand } = await import("./sentinel-ZTL224IG.js");
|
|
647
672
|
await sentinelCommand(path2, options);
|
|
648
673
|
});
|
|
649
674
|
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) => {
|