@a-company/paradigm 3.46.0 → 5.4.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-ZUWQUHSK.js → accept-orchestration-GX2YRWM4.js} +5 -5
- package/dist/{add-VSPZ6FM4.js → add-FZRKEGH4.js} +1 -1
- package/dist/agent-WERIO2XV.js +523 -0
- package/dist/agent-loader-SJPJJS33.js +36 -0
- package/dist/{agents-suggest-65SER5IS.js → agents-suggest-DNSYJ6IA.js} +1 -1
- package/dist/{aggregate-SV3VGEIL.js → aggregate-H57K7PNV.js} +1 -1
- package/dist/{assess-UHBDYIK7.js → assess-4WVXZLZQ.js} +2 -2
- package/dist/{auto-24ICVUH4.js → auto-QFS5NHQU.js} +1 -1
- package/dist/{beacon-3SJV4DAP.js → beacon-KXZXYQHX.js} +1 -1
- package/dist/{calibration-WWHK73WU.js → calibration-V46G7JTY.js} +2 -2
- package/dist/{check-OLI6AUS6.js → check-OWAIWV23.js} +1 -1
- package/dist/{chunk-RP6TZYGE.js → chunk-2IO7JAG2.js} +1 -1
- package/dist/chunk-2T6BTYBN.js +712 -0
- package/dist/{chunk-CDMAMDSG.js → chunk-5VKJBNJL.js} +13 -5
- package/dist/{chunk-KB4XJWE3.js → chunk-6N3JTACN.js} +98 -437
- package/dist/{chunk-ZMQA6SCO.js → chunk-7HRBT23N.js} +631 -231
- package/dist/chunk-7N7GSU6K.js +34 -0
- package/dist/chunk-A2L4TSLZ.js +526 -0
- package/dist/{chunk-P7XSBJE3.js → chunk-ABVQGRF7.js} +1 -1
- package/dist/{chunk-HIKKOCXY.js → chunk-EI32ZBE6.js} +1 -1
- package/dist/{chunk-QIOCFXDQ.js → chunk-EKGMAM62.js} +1 -1
- package/dist/chunk-EZ3GOCYC.js +132 -0
- package/dist/{chunk-DS5QY37M.js → chunk-GTR2TBIJ.js} +247 -15
- package/dist/chunk-ICSLIPUS.js +1128 -0
- package/dist/{chunk-QDXI2DHR.js → chunk-J2JEQRT3.js} +1 -1
- package/dist/{chunk-AKIMFN6I.js → chunk-JASGXLK3.js} +2 -2
- package/dist/{chunk-J4E6K5MG.js → chunk-LSRABQIY.js} +25 -1
- package/dist/chunk-MCMOGQMU.js +145 -0
- package/dist/{chunk-ZXMDA7VB.js → chunk-PDX44BCA.js} +1 -6
- package/dist/{chunk-2SKXFXIT.js → chunk-S3ORKP3V.js} +10 -15
- package/dist/chunk-TAIJOFOE.js +124 -0
- package/dist/{chunk-FS3WTUHY.js → chunk-TXESEO7Y.js} +6 -6
- package/dist/{chunk-7COU5S2Z.js → chunk-VL67H5IC.js} +1 -1
- package/dist/{chunk-QWA26UNO.js → chunk-WQITYKHM.js} +7 -7
- package/dist/{chunk-MW5DMGBB.js → chunk-YMDLDELF.js} +114 -55
- package/dist/{claude-63ISJAZK.js → claude-FRRWJSTJ.js} +1 -1
- package/dist/{claude-cli-ABML5RHX.js → claude-cli-XJLK2X4L.js} +1 -1
- package/dist/{claude-code-JRLMRPTO.js → claude-code-HTBA4XRB.js} +1 -1
- package/dist/{claude-code-teams-CAJBEFIZ.js → claude-code-teams-T4SP24MD.js} +1 -1
- package/dist/{conductor-HLWYWUVH.js → conductor-PGPDVIVE.js} +1 -1
- package/dist/{config-schema-3YNIFJCJ.js → config-schema-EA4XALGG.js} +4 -2
- package/dist/{constellation-FAGT45TU.js → constellation-A26CCGQS.js} +1 -1
- package/dist/{context-audit-557EO6PK.js → context-audit-RLO3ETRP.js} +8 -5
- package/dist/{cost-XEBADYFT.js → cost-BGM32XJU.js} +1 -1
- package/dist/{cost-UD3WPEKZ.js → cost-VI46A4XL.js} +1 -1
- package/dist/{cursor-cli-QUOOF2N4.js → cursor-cli-JVEZGHWQ.js} +1 -1
- package/dist/{cursorrules-3TKZ4E4R.js → cursorrules-HLIKJJZT.js} +1 -1
- package/dist/decision-loader-WWCLIQPJ.js +20 -0
- package/dist/{delete-RRK4RL6Y.js → delete-KBRPQLPC.js} +2 -2
- package/dist/{diff-IP5CIARP.js → diff-RQLLNAFI.js} +5 -5
- package/dist/{discipline-5F5OVTXB.js → discipline-FA4OZXIS.js} +1 -1
- package/dist/{dist-UXWV4OKX.js → dist-34NA5RS5.js} +1 -1
- package/dist/{dist-5QE2BB2B-X6DYVSUL.js → dist-5QE2BB2B-5S3T6Y3T.js} +1 -1
- package/dist/{dist-CM3MVWWW.js → dist-77JDTVAY.js} +1 -0
- package/dist/{dist-POMVY6WP.js → dist-QK4SQAK7.js} +1 -1
- package/dist/{dist-3RVKEJRT.js → dist-TA6LSC2Q.js} +1 -1
- package/dist/docs-J2BTKRVU.js +155 -0
- package/dist/docs-PBZB7LYP.js +89 -0
- package/dist/{doctor-GKZJU7QG.js → doctor-ULBOHEIC.js} +3 -3
- package/dist/{drift-YGT4LJ7Q.js → drift-R5NRKFHI.js} +1 -1
- package/dist/{echo-A6HD5UP7.js → echo-O2LY7CC2.js} +1 -1
- package/dist/{edit-4CLNN5JG.js → edit-R2HNLMOG.js} +2 -2
- package/dist/event-25OJKDCE.js +31 -0
- package/dist/{export-T7CMMJIB.js → export-IWVL7XLF.js} +1 -1
- package/dist/{flow-UFMPVOEM.js → flow-CRRVV3O3.js} +2 -2
- package/dist/{global-HHUJSBG5.js → global-3NG5JXUB.js} +1 -1
- package/dist/graduate-USAWGBJM.js +160 -0
- package/dist/{graph-YYUXI3F7.js → graph-VHUMAAS6.js} +2 -2
- package/dist/{graph-server-ZPXRSGCW.js → graph-server-YL22VBBN.js} +1 -1
- package/dist/{habits-RG5SVKXP.js → habits-OL5NGPXO.js} +3 -3
- package/dist/{history-CETCSUCP.js → history-WOWC573W.js} +1 -1
- package/dist/{hooks-TCUHQMPF.js → hooks-HFWSCGPV.js} +2 -2
- package/dist/index.js +302 -188
- package/dist/{integrity-MK2OP5TA.js → integrity-IHO4FZTS.js} +1 -1
- package/dist/{integrity-checker-J7YXRTBT.js → integrity-checker-PSKJA5SB.js} +1 -0
- package/dist/journal-loader-5EYSBFFY.js +18 -0
- package/dist/{lint-HYWGS3JJ.js → lint-K6CJGGPH.js} +1 -1
- package/dist/{list-IUCYPGMK.js → list-4YK7QKFF.js} +1 -1
- package/dist/{list-BTLFHSRC.js → list-ENR7Q4CR.js} +2 -2
- package/dist/{lore-loader-VTEEZDX3.js → lore-loader-7NO6N6FT.js} +4 -1
- package/dist/{lore-server-NOOAHKJX.js → lore-server-UNJY5KC3.js} +1 -1
- package/dist/{manual-AFJ2J2V3.js → manual-G6FISID5.js} +1 -1
- package/dist/mcp.js +3917 -356
- package/dist/{migrate-FQVGQNXZ.js → migrate-LS45DNEV.js} +2 -2
- package/dist/{migrate-assessments-JP6Q5KME.js → migrate-assessments-RGH4O6IX.js} +2 -2
- package/dist/nomination-engine-HDWMN4IO.js +42 -0
- package/dist/notebook-YWIYGEHV.js +155 -0
- package/dist/{orchestrate-A226N6FC.js → orchestrate-XZA33TJC.js} +5 -5
- package/dist/{peers-RFQCWVLV.js → peers-DEOUIZM6.js} +1 -1
- package/dist/persona-UHAHIVST.js +390 -0
- package/dist/{pipeline-3G2FRAKM.js → pipeline-L4HCSBGN.js} +1 -1
- package/dist/{platform-server-H7Y6Q7O4.js → platform-server-2D6S6YTK.js} +412 -18
- package/dist/{plugin-update-checker-HMRPGY5Z.js → plugin-update-checker-ELOEEQYS.js} +1 -0
- package/dist/{portal-check-FF5EKZE5.js → portal-check-NPYGII2D.js} +2 -2
- package/dist/{portal-compliance-VU4NIFEN.js → portal-compliance-J7DGAPFX.js} +2 -2
- package/dist/{probe-7JK7IDNI.js → probe-MHL5HQZ2.js} +3 -3
- package/dist/{promote-XO63XMAN.js → promote-F6ZYZZAL.js} +2 -2
- package/dist/{providers-YNFSL6HK.js → providers-GK7PB2OL.js} +2 -2
- package/dist/{quiz-I75NU2QQ.js → quiz-M66SC7F7.js} +1 -1
- package/dist/{record-46CLR4OG.js → record-RA4WR2BO.js} +2 -2
- package/dist/{reindex-WIJMCJ4A.js → reindex-65H4WULU.js} +3 -2
- package/dist/{remember-4EUZKIIB.js → remember-HBWJ655S.js} +1 -1
- package/dist/{retag-KC4JVRLE.js → retag-3OLCVDEQ.js} +2 -2
- package/dist/{review-Q7M4CRB5.js → review-27ATYTD2.js} +2 -2
- package/dist/review-57QMURZV.js +334 -0
- package/dist/{ripple-RI3LOT6R.js → ripple-JPBXP5I3.js} +1 -1
- package/dist/{sentinel-UOIGJWHH.js → sentinel-4XIG4STA.js} +2 -2
- package/dist/{sentinel-bridge-APDXYAZS.js → sentinel-bridge-MDUXTQRL.js} +2 -2
- package/dist/{serve-KKEHE44G.js → serve-EFVRS4GA.js} +2 -2
- package/dist/{serve-22A4XOIG.js → serve-INL7SNBK.js} +2 -2
- package/dist/{serve-2YJ6D2Y6.js → serve-KBSE36PL.js} +4 -4
- package/dist/{server-JV6UFGWZ.js → server-54SKYFFY.js} +2 -2
- package/dist/{server-RDLQ3DK7.js → server-XUOIO7E6.js} +1 -1
- package/dist/{setup-YNZJQLW7.js → setup-EDS27WUR.js} +1 -1
- package/dist/{setup-M2ZKLKNN.js → setup-KO5AFC4K.js} +2 -2
- package/dist/{shift-LNMKFYLR.js → shift-VFG23DLA.js} +16 -16
- package/dist/{show-P7GYO43X.js → show-5PV5KFJE.js} +2 -2
- package/dist/{show-PKZMYKRN.js → show-NQKYX6WQ.js} +1 -1
- package/dist/{snapshot-Y3COXK4T.js → snapshot-BK4RBPCG.js} +1 -1
- package/dist/{spawn-SSXZX45U.js → spawn-AW6GDECS.js} +3 -3
- package/dist/{status-KLHALGW4.js → status-WGIAQODY.js} +1 -1
- package/dist/{summary-5NQNOD3F.js → summary-NIRABMF5.js} +2 -2
- package/dist/{sweep-EZU3GU6S.js → sweep-QMHNSIY5.js} +2 -2
- package/dist/{switch-WYUMVNA5.js → switch-6EJPZDIA.js} +1 -1
- package/dist/{symphony-6K3HD7AW.js → symphony-4OCY36AI.js} +5 -5
- package/dist/{symphony-YCHBYN3E.js → symphony-B75X2MME.js} +2 -2
- package/dist/{symphony-peers-HSY3RI3S.js → symphony-peers-2ZQYLRNI.js} +1 -1
- package/dist/{symphony-peers-APOGJPF4.js → symphony-peers-OL7F6M5S.js} +1 -0
- package/dist/{symphony-relay-GTAJRCVF.js → symphony-relay-UJYUXN65.js} +28 -1
- package/dist/{sync-ZM4Q3R4U.js → sync-VEHUH4OA.js} +3 -3
- package/dist/{sync-llms-JIPP3XX4.js → sync-llms-YHCFIE6X.js} +2 -2
- package/dist/{task-loader-7M2FCBX6.js → task-loader-LDYWQSLM.js} +1 -0
- package/dist/{team-HGLJXWQG.js → team-7HG7XK5C.js} +6 -6
- package/dist/{test-WTR5Q33E.js → test-566CP5KC.js} +1 -1
- package/dist/{thread-3WM7KKID.js → thread-N754I4D5.js} +1 -1
- package/dist/{timeline-ANC7LVDL.js → timeline-M3CICQFE.js} +2 -2
- package/dist/{triage-IZ4MDYNB.js → triage-HHYGT3HY.js} +1 -1
- package/dist/{tutorial-GC6QL4US.js → tutorial-KD22SUNO.js} +1 -1
- package/dist/university-content/courses/.purpose +66 -0
- package/dist/university-content/courses/para-401.json +146 -0
- package/dist/university-content/courses/para-501.json +67 -0
- package/dist/university-content/courses/para-601.json +690 -0
- package/dist/university-content/plsat/.purpose +6 -0
- package/dist/university-content/plsat/v2.0.json +2 -2
- package/dist/university-content/plsat/v3.0.json +563 -3
- package/dist/university-content/reference.json +91 -0
- package/dist/university-ui/assets/{index-tfi5xN4Q.js → index-C6bH_6xu.js} +2 -2
- package/dist/university-ui/assets/{index-tfi5xN4Q.js.map → index-C6bH_6xu.js.map} +1 -1
- package/dist/university-ui/index.html +1 -1
- package/dist/{upgrade-ANX3LVSA.js → upgrade-H5PF32BW.js} +2 -2
- package/dist/{validate-GD5XWILV.js → validate-CNKEKO6A.js} +1 -1
- package/dist/{validate-ITC5D6QG.js → validate-MB5ULIHS.js} +1 -1
- package/dist/{validate-ZVPNN4FL.js → validate-QH3LADM6.js} +1 -1
- package/dist/{watch-X64UK7K4.js → watch-2TKP5PVL.js} +3 -3
- package/dist/{watch-ERBEJUJW.js → watch-ZF4ML6CD.js} +2 -2
- package/dist/{wisdom-L2WC7J62.js → wisdom-AATMGNFA.js} +1 -1
- package/dist/work-log-loader-5L45XNYZ.js +14 -0
- package/dist/{workspace-UIUTHZTD.js → workspace-6E6OSRNU.js} +4 -4
- package/package.json +1 -1
- package/platform-ui/dist/assets/DocsSection-ByAgPzWV.js +1 -0
- package/platform-ui/dist/assets/DocsSection-CjdO6R-u.css +1 -0
- package/platform-ui/dist/assets/{GitSection-BD3Ze06e.js → GitSection-BLovj9yT.js} +1 -1
- package/platform-ui/dist/assets/{GraphSection-SglITfSs.js → GraphSection-C5PCPUFl.js} +1 -1
- package/platform-ui/dist/assets/{LoreSection-bR5Km4Fd.js → LoreSection-BftejTla.js} +1 -1
- package/platform-ui/dist/assets/{SentinelSection-QSpAZArG.js → SentinelSection-CnYcasN7.js} +1 -1
- package/platform-ui/dist/assets/{SymphonySection-CobYJgvg.js → SymphonySection-BpmqCHeK.js} +1 -1
- package/platform-ui/dist/assets/{index-DbxeSMkV.js → index-G9JnWEs_.js} +10 -10
- package/platform-ui/dist/index.html +1 -1
- package/dist/dist-PSF5CP4I.js +0 -7294
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
initCommand
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-JASGXLK3.js";
|
|
5
|
+
import "./chunk-VL67H5IC.js";
|
|
6
6
|
import "./chunk-36TKPM5Z.js";
|
|
7
7
|
import {
|
|
8
8
|
aggregateFromDirectory,
|
|
@@ -15,14 +15,14 @@ import {
|
|
|
15
15
|
import {
|
|
16
16
|
findGateFiles
|
|
17
17
|
} from "./chunk-IRKUEJVW.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-J2JEQRT3.js";
|
|
19
19
|
import "./chunk-UPLDI7CN.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-6N3JTACN.js";
|
|
21
21
|
import "./chunk-YO6DVTL7.js";
|
|
22
22
|
import {
|
|
23
23
|
log
|
|
24
24
|
} from "./chunk-4NCFWYGG.js";
|
|
25
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-PDX44BCA.js";
|
|
26
26
|
|
|
27
27
|
// src/index.ts
|
|
28
28
|
import { Command } from "commander";
|
|
@@ -111,11 +111,11 @@ ${chalk2.magenta("\u2569 ")}${chalk2.cyan("\u2534 \u2534\u2534\u2514\u2500\u253
|
|
|
111
111
|
program.name("paradigm").description("Unified developer tools ecosystem").version(VERSION).addHelpText("before", banner);
|
|
112
112
|
program.command("init").description("Initialize Paradigm in the current project").option("-f, --force", "Overwrite existing files").option("--name <name>", "Project name").option("--ide <ide>", "Target IDE: cursor, copilot, windsurf, claude").option("--stack <stack>", "Stack preset (e.g., nextjs, fastapi, swift-ios). Auto-detected if omitted.").option("--migrate", "Output migration prompt for existing IDE files").option("--quick", "Non-interactive mode with smart defaults").option("--dry-run", "Show what would be created without creating").action(initCommand);
|
|
113
113
|
program.command("shift").description("Full project setup in one command (init + team init + scan + sync all IDEs + doctor)").option("-f, --force", "Reinitialize even if already setup").option("-q, --quick", "Skip slow operations (scan)").option("--verify", "Run health checks after setup").option("--ide <ide>", "Target specific IDE instead of all").option("--configure-models", "Force model configuration prompts for team agents").option("--stack <stack>", "Stack preset (e.g., nextjs, fastapi, swift-ios). Auto-detected if omitted.").option("--workspace <name>", "Create or join a multi-project workspace with this name (creates ../.paradigm-workspace)").option("--workspace-path <path>", "Custom workspace file location (default: ../.paradigm-workspace)").action(async (options) => {
|
|
114
|
-
const { shiftCommand } = await import("./shift-
|
|
114
|
+
const { shiftCommand } = await import("./shift-VFG23DLA.js");
|
|
115
115
|
await shiftCommand(options);
|
|
116
116
|
});
|
|
117
117
|
program.command("presets").description("List available stack presets for paradigm init/shift").option("-d, --discipline <discipline>", "Filter by discipline (e.g., fullstack, api, mobile)").action(async (options) => {
|
|
118
|
-
const { listStackPresets } = await import("./discipline-
|
|
118
|
+
const { listStackPresets } = await import("./discipline-FA4OZXIS.js");
|
|
119
119
|
const chalk3 = (await import("chalk")).default;
|
|
120
120
|
const presets = listStackPresets(options.discipline);
|
|
121
121
|
if (presets.length === 0) {
|
|
@@ -142,95 +142,100 @@ program.command("presets").description("List available stack presets for paradig
|
|
|
142
142
|
console.log(chalk3.gray(` ${presets.length} presets available. Auto-detected when --stack is omitted.
|
|
143
143
|
`));
|
|
144
144
|
});
|
|
145
|
+
var eventCmd = program.command("event").description("Ambient event stream commands");
|
|
146
|
+
eventCmd.command("emit").description("Emit an event to the ambient event stream (fast, for hook integration)").requiredOption("--type <type>", "Event type (e.g., file-modified, compliance-violation)").requiredOption("--source <source>", "Event source (e.g., post-write-hook, stop-hook)").option("--path <path>", "File path (if applicable)").option("--symbols <symbols...>", "Paradigm symbols referenced").option("--context <context>", "Brief context snippet").option("--severity <severity>", "Severity: info, warning, error, critical").action(async (options) => {
|
|
147
|
+
const { eventEmitCommand } = await import("./event-25OJKDCE.js");
|
|
148
|
+
await eventEmitCommand(options);
|
|
149
|
+
});
|
|
145
150
|
program.command("setup [path]").description("Interactive setup wizard for Paradigm").option("-y, --yes", "Accept all defaults (non-interactive)").option("-f, --force", "Overwrite existing .paradigm config").action(async (path2, options) => {
|
|
146
|
-
const { setupCommand } = await import("./setup-
|
|
151
|
+
const { setupCommand } = await import("./setup-KO5AFC4K.js");
|
|
147
152
|
await setupCommand(path2, options);
|
|
148
153
|
});
|
|
149
154
|
program.command("status").alias("st").description("Show project status and symbol counts").action(statusCommand);
|
|
150
155
|
var purposeCmd = program.command("purpose").description("Purpose-related commands");
|
|
151
156
|
purposeCmd.command("remember [path]").description("Aggregate and display purpose context").action(async (path2 = ".") => {
|
|
152
|
-
const { purposeRememberCommand } = await import("./remember-
|
|
157
|
+
const { purposeRememberCommand } = await import("./remember-HBWJ655S.js");
|
|
153
158
|
await purposeRememberCommand(path2);
|
|
154
159
|
});
|
|
155
160
|
purposeCmd.command("validate [path]").description("Validate purpose files").action(async (path2 = ".") => {
|
|
156
|
-
const { purposeValidateCommand } = await import("./validate-
|
|
161
|
+
const { purposeValidateCommand } = await import("./validate-QH3LADM6.js");
|
|
157
162
|
await purposeValidateCommand(path2);
|
|
158
163
|
});
|
|
159
164
|
var portalCmd = program.command("portal").description("Portal-related commands");
|
|
160
165
|
portalCmd.command("validate [path]").description("Validate portal.yaml configuration").action(async (path2 = "./portal.yaml") => {
|
|
161
|
-
const { gateValidateCommand } = await import("./validate-
|
|
166
|
+
const { gateValidateCommand } = await import("./validate-MB5ULIHS.js");
|
|
162
167
|
await gateValidateCommand(path2);
|
|
163
168
|
});
|
|
164
169
|
portalCmd.command("check").description("Check portal gate implementation compliance (declared vs used)").option("--json", "Output as JSON").action(async (options) => {
|
|
165
|
-
const { portalCheckCommand } = await import("./portal-check-
|
|
170
|
+
const { portalCheckCommand } = await import("./portal-check-NPYGII2D.js");
|
|
166
171
|
await portalCheckCommand(options);
|
|
167
172
|
});
|
|
168
173
|
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) => {
|
|
169
|
-
const { gateTestCommand } = await import("./test-
|
|
174
|
+
const { gateTestCommand } = await import("./test-566CP5KC.js");
|
|
170
175
|
await gateTestCommand(path2, options);
|
|
171
176
|
});
|
|
172
177
|
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) => {
|
|
173
|
-
const { portalWatchCommand } = await import("./watch-
|
|
178
|
+
const { portalWatchCommand } = await import("./watch-2TKP5PVL.js");
|
|
174
179
|
await portalWatchCommand(path2, options);
|
|
175
180
|
});
|
|
176
181
|
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) => {
|
|
177
|
-
const { portalReportCommand } = await import("./watch-
|
|
182
|
+
const { portalReportCommand } = await import("./watch-2TKP5PVL.js");
|
|
178
183
|
await portalReportCommand(session, options);
|
|
179
184
|
});
|
|
180
185
|
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) => {
|
|
181
|
-
const { portalExportCommand } = await import("./watch-
|
|
186
|
+
const { portalExportCommand } = await import("./watch-2TKP5PVL.js");
|
|
182
187
|
await portalExportCommand(path2, options);
|
|
183
188
|
});
|
|
184
189
|
var premiseCmd = program.command("premise").description("Premise-related commands");
|
|
185
190
|
premiseCmd.command("aggregate [path]").description("Aggregate all sources into symbol index").action(async (path2 = ".") => {
|
|
186
|
-
const { premiseAggregateCommand } = await import("./aggregate-
|
|
191
|
+
const { premiseAggregateCommand } = await import("./aggregate-H57K7PNV.js");
|
|
187
192
|
await premiseAggregateCommand(path2);
|
|
188
193
|
});
|
|
189
194
|
premiseCmd.command("snapshot <name>").description("Create a timeline snapshot").option("-d, --description <desc>", "Snapshot description").action(async (name, options) => {
|
|
190
|
-
const { premiseSnapshotCommand } = await import("./snapshot-
|
|
195
|
+
const { premiseSnapshotCommand } = await import("./snapshot-BK4RBPCG.js");
|
|
191
196
|
await premiseSnapshotCommand(name, options.description);
|
|
192
197
|
});
|
|
193
198
|
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) => {
|
|
194
|
-
const { syncCommand } = await import("./sync-
|
|
199
|
+
const { syncCommand } = await import("./sync-VEHUH4OA.js");
|
|
195
200
|
await syncCommand(ide, options);
|
|
196
201
|
});
|
|
197
202
|
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) => {
|
|
198
|
-
const { syncLlmsCommand } = await import("./sync-llms-
|
|
203
|
+
const { syncLlmsCommand } = await import("./sync-llms-YHCFIE6X.js");
|
|
199
204
|
await syncLlmsCommand(options);
|
|
200
205
|
});
|
|
201
206
|
program.command("cursorrules [path]").description("[DEPRECATED] Use `paradigm sync cursor` instead").option("-a, --append", "Append to existing .cursorrules").option("-f, --force", "Overwrite existing .cursorrules").option("-p, --preview", "Preview output without writing").option("--init", "Create default .paradigm config if missing").option("--with-scan", "Include probe protocol section").action(async (path2, options) => {
|
|
202
207
|
console.log("\x1B[33m\u26A0\uFE0F `paradigm cursorrules` is deprecated. Use `paradigm sync cursor` instead.\x1B[0m\n");
|
|
203
|
-
const { cursorrrulesCommand } = await import("./cursorrules-
|
|
208
|
+
const { cursorrrulesCommand } = await import("./cursorrules-HLIKJJZT.js");
|
|
204
209
|
await cursorrrulesCommand(path2, options);
|
|
205
210
|
});
|
|
206
211
|
program.command("index [path]").description("Generate probe index for visual discovery").option("-o, --output <path>", "Output path for probe-index.json").option("-q, --quiet", "Suppress output").action(async (path2, options) => {
|
|
207
|
-
const { indexCommand } = await import("./probe-
|
|
212
|
+
const { indexCommand } = await import("./probe-MHL5HQZ2.js");
|
|
208
213
|
await indexCommand(path2, options);
|
|
209
214
|
});
|
|
210
215
|
var probeCmd = program.command("probe").description("Probe-related commands");
|
|
211
216
|
probeCmd.command("index [path]").description("Generate probe index (alias for `paradigm index`)").option("-o, --output <path>", "Output path for probe-index.json").option("-q, --quiet", "Suppress output").action(async (path2, options) => {
|
|
212
|
-
const { indexCommand } = await import("./probe-
|
|
217
|
+
const { indexCommand } = await import("./probe-MHL5HQZ2.js");
|
|
213
218
|
await indexCommand(path2, options);
|
|
214
219
|
});
|
|
215
220
|
program.command("migrate").description("Detect and apply migrations to bring project up to date").option("--dry-run", "Preview changes without applying").option("--apply", "Apply all auto migrations without prompting").option("-f, --force", "Re-run previously applied migrations").option("--only <ids...>", "Run specific migrations by ID").option("--category <cat>", "Run migrations in a category (directory, config, template, hook)").option("--no-sync", "Skip template sync").option("--list", "List all migrations and their status").option("-v, --verbose", "Show detailed output").action(async (options) => {
|
|
216
|
-
const { migrateCommand } = await import("./migrate-
|
|
221
|
+
const { migrateCommand } = await import("./migrate-LS45DNEV.js");
|
|
217
222
|
await migrateCommand(options);
|
|
218
223
|
});
|
|
219
224
|
program.command("upgrade [path]").description("(Deprecated) Upgrade project with new Paradigm features \u2014 use `paradigm migrate`").option("--features <features...>", "Features to upgrade (probe, logger)").option("--all", "Apply all available upgrades").option("--from-horizon", "Migrate from Horizon to Paradigm").option("--dry-run", "Show what would be upgraded without making changes").option("-f, --force", "Force re-upgrade even if already configured").action(async (path2, options) => {
|
|
220
|
-
const { upgradeCommand } = await import("./upgrade-
|
|
225
|
+
const { upgradeCommand } = await import("./upgrade-H5PF32BW.js");
|
|
221
226
|
await upgradeCommand(path2, options);
|
|
222
227
|
});
|
|
223
228
|
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) => {
|
|
224
|
-
const { lintCommand } = await import("./lint-
|
|
229
|
+
const { lintCommand } = await import("./lint-K6CJGGPH.js");
|
|
225
230
|
await lintCommand(path2, options);
|
|
226
231
|
});
|
|
227
232
|
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) => {
|
|
228
|
-
const { costCommand } = await import("./cost-
|
|
233
|
+
const { costCommand } = await import("./cost-VI46A4XL.js");
|
|
229
234
|
await costCommand(path2, options);
|
|
230
235
|
});
|
|
231
236
|
var scanCmd = program.command("scan").description("Visual discovery and auto-generation commands");
|
|
232
237
|
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) => {
|
|
233
|
-
const { autoScanCommand } = await import("./auto-
|
|
238
|
+
const { autoScanCommand } = await import("./auto-QFS5NHQU.js");
|
|
234
239
|
await autoScanCommand(path2, options);
|
|
235
240
|
});
|
|
236
241
|
scanCmd.action(() => {
|
|
@@ -241,7 +246,7 @@ scanCmd.action(() => {
|
|
|
241
246
|
});
|
|
242
247
|
var flowCmd = program.command("flow").description("Flow management commands");
|
|
243
248
|
flowCmd.command("diagram <flowId>").description("Generate Mermaid diagram for a flow").option("-o, --output <path>", "Output file path").action(async (flowId, options) => {
|
|
244
|
-
const { flowDiagramCommand } = await import("./flow-
|
|
249
|
+
const { flowDiagramCommand } = await import("./flow-CRRVV3O3.js");
|
|
245
250
|
await flowDiagramCommand(flowId, options);
|
|
246
251
|
});
|
|
247
252
|
flowCmd.action(() => {
|
|
@@ -249,7 +254,7 @@ flowCmd.action(() => {
|
|
|
249
254
|
});
|
|
250
255
|
var teamCmd = program.command("team").description("Multi-agent orchestration commands");
|
|
251
256
|
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) => {
|
|
252
|
-
const { teamInitCommand } = await import("./team-
|
|
257
|
+
const { teamInitCommand } = await import("./team-7HG7XK5C.js");
|
|
253
258
|
await teamInitCommand(path2, {
|
|
254
259
|
...options,
|
|
255
260
|
configureModels: options.configureModels,
|
|
@@ -257,68 +262,68 @@ teamCmd.command("init [path]").description("Initialize team configuration with d
|
|
|
257
262
|
});
|
|
258
263
|
});
|
|
259
264
|
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) => {
|
|
260
|
-
const { teamStatusCommand } = await import("./team-
|
|
265
|
+
const { teamStatusCommand } = await import("./team-7HG7XK5C.js");
|
|
261
266
|
await teamStatusCommand(path2, options);
|
|
262
267
|
});
|
|
263
268
|
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) => {
|
|
264
|
-
const { teamHandoffCommand } = await import("./team-
|
|
269
|
+
const { teamHandoffCommand } = await import("./team-7HG7XK5C.js");
|
|
265
270
|
await teamHandoffCommand(path2, options);
|
|
266
271
|
});
|
|
267
272
|
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) => {
|
|
268
|
-
const { teamAcceptCommand } = await import("./team-
|
|
273
|
+
const { teamAcceptCommand } = await import("./team-7HG7XK5C.js");
|
|
269
274
|
await teamAcceptCommand(handoffId, path2, options);
|
|
270
275
|
});
|
|
271
276
|
teamCmd.command("check [path]").description("Check for conflicts and team health issues").option("--json", "Output as JSON").action(async (path2, options) => {
|
|
272
|
-
const { teamCheckCommand } = await import("./team-
|
|
277
|
+
const { teamCheckCommand } = await import("./team-7HG7XK5C.js");
|
|
273
278
|
await teamCheckCommand(path2, options);
|
|
274
279
|
});
|
|
275
280
|
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) => {
|
|
276
|
-
const { teamHistoryCommand } = await import("./team-
|
|
281
|
+
const { teamHistoryCommand } = await import("./team-7HG7XK5C.js");
|
|
277
282
|
await teamHistoryCommand(path2, { ...options, limit: parseInt(options.limit) });
|
|
278
283
|
});
|
|
279
284
|
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) => {
|
|
280
|
-
const { teamResetCommand } = await import("./team-
|
|
285
|
+
const { teamResetCommand } = await import("./team-7HG7XK5C.js");
|
|
281
286
|
await teamResetCommand(path2, options);
|
|
282
287
|
});
|
|
283
288
|
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) => {
|
|
284
|
-
const { teamSpawnCommand } = await import("./spawn-
|
|
289
|
+
const { teamSpawnCommand } = await import("./spawn-AW6GDECS.js");
|
|
285
290
|
await teamSpawnCommand(agent, path2, options);
|
|
286
291
|
});
|
|
287
292
|
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) => {
|
|
288
|
-
const { teamOrchestrateCommand } = await import("./orchestrate-
|
|
293
|
+
const { teamOrchestrateCommand } = await import("./orchestrate-XZA33TJC.js");
|
|
289
294
|
await teamOrchestrateCommand(task, path2, options);
|
|
290
295
|
});
|
|
291
296
|
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) => {
|
|
292
|
-
const { teamDiffCommand } = await import("./diff-
|
|
297
|
+
const { teamDiffCommand } = await import("./diff-RQLLNAFI.js");
|
|
293
298
|
await teamDiffCommand(orchestrationId, path2, options);
|
|
294
299
|
});
|
|
295
300
|
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) => {
|
|
296
|
-
const { teamAcceptOrchestrationCommand } = await import("./accept-orchestration-
|
|
301
|
+
const { teamAcceptOrchestrationCommand } = await import("./accept-orchestration-GX2YRWM4.js");
|
|
297
302
|
await teamAcceptOrchestrationCommand(orchestrationId, path2, options);
|
|
298
303
|
});
|
|
299
304
|
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) => {
|
|
300
|
-
const { teamRejectOrchestrationCommand } = await import("./accept-orchestration-
|
|
305
|
+
const { teamRejectOrchestrationCommand } = await import("./accept-orchestration-GX2YRWM4.js");
|
|
301
306
|
await teamRejectOrchestrationCommand(orchestrationId, path2, options);
|
|
302
307
|
});
|
|
303
308
|
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) => {
|
|
304
|
-
const { teamCostCommand } = await import("./cost-
|
|
309
|
+
const { teamCostCommand } = await import("./cost-BGM32XJU.js");
|
|
305
310
|
await teamCostCommand(path2, options);
|
|
306
311
|
});
|
|
307
312
|
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) => {
|
|
308
|
-
const { teamExportCommand } = await import("./export-
|
|
313
|
+
const { teamExportCommand } = await import("./export-IWVL7XLF.js");
|
|
309
314
|
await teamExportCommand(path2, options);
|
|
310
315
|
});
|
|
311
316
|
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) => {
|
|
312
|
-
const { teamProvidersCommand } = await import("./providers-
|
|
317
|
+
const { teamProvidersCommand } = await import("./providers-GK7PB2OL.js");
|
|
313
318
|
await teamProvidersCommand(path2, options);
|
|
314
319
|
});
|
|
315
320
|
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) => {
|
|
316
|
-
const { teamModelsCommand } = await import("./team-
|
|
321
|
+
const { teamModelsCommand } = await import("./team-7HG7XK5C.js");
|
|
317
322
|
await teamModelsCommand(path2, options);
|
|
318
323
|
});
|
|
319
324
|
var agentsCmd = teamCmd.command("agents").description("Agent management commands");
|
|
320
325
|
agentsCmd.command("suggest <task>").description("Suggest agents for a task based on triggers").option("--json", "Output as JSON").action(async (task, options) => {
|
|
321
|
-
const { agentsSuggestCommand } = await import("./agents-suggest-
|
|
326
|
+
const { agentsSuggestCommand } = await import("./agents-suggest-DNSYJ6IA.js");
|
|
322
327
|
await agentsSuggestCommand(task, options);
|
|
323
328
|
});
|
|
324
329
|
agentsCmd.action(() => {
|
|
@@ -328,237 +333,241 @@ agentsCmd.action(() => {
|
|
|
328
333
|
console.log("\nRun `paradigm team agents suggest --help` for options.\n");
|
|
329
334
|
});
|
|
330
335
|
teamCmd.action(async () => {
|
|
331
|
-
const { teamStatusCommand } = await import("./team-
|
|
336
|
+
const { teamStatusCommand } = await import("./team-7HG7XK5C.js");
|
|
332
337
|
await teamStatusCommand(void 0, {});
|
|
333
338
|
});
|
|
334
339
|
var pluginCmd = program.command("plugin").description("Plugin management commands");
|
|
335
340
|
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) => {
|
|
336
|
-
const { pluginCheckCommand } = await import("./check-
|
|
341
|
+
const { pluginCheckCommand } = await import("./check-OWAIWV23.js");
|
|
337
342
|
await pluginCheckCommand(options);
|
|
338
343
|
});
|
|
339
344
|
pluginCmd.action(async () => {
|
|
340
|
-
const { pluginCheckCommand } = await import("./check-
|
|
345
|
+
const { pluginCheckCommand } = await import("./check-OWAIWV23.js");
|
|
341
346
|
await pluginCheckCommand({});
|
|
342
347
|
});
|
|
343
348
|
var workspaceCmd = program.command("workspace").description("Multi-project workspace commands");
|
|
344
349
|
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) => {
|
|
345
|
-
const { workspaceInitCommand } = await import("./workspace-
|
|
350
|
+
const { workspaceInitCommand } = await import("./workspace-6E6OSRNU.js");
|
|
346
351
|
await workspaceInitCommand(options);
|
|
347
352
|
});
|
|
348
353
|
workspaceCmd.command("status").description("Show workspace member status and symbol counts").option("--json", "Output as JSON").action(async (options) => {
|
|
349
|
-
const { workspaceStatusCommand } = await import("./workspace-
|
|
354
|
+
const { workspaceStatusCommand } = await import("./workspace-6E6OSRNU.js");
|
|
350
355
|
await workspaceStatusCommand(options);
|
|
351
356
|
});
|
|
352
357
|
workspaceCmd.command("reindex").description("Rebuild scan-index.json for all workspace members").option("-q, --quiet", "Suppress progress output").action(async (options) => {
|
|
353
|
-
const { workspaceReindexCommand } = await import("./workspace-
|
|
358
|
+
const { workspaceReindexCommand } = await import("./workspace-6E6OSRNU.js");
|
|
354
359
|
await workspaceReindexCommand(options);
|
|
355
360
|
});
|
|
356
361
|
workspaceCmd.action(async () => {
|
|
357
|
-
const { workspaceStatusCommand } = await import("./workspace-
|
|
362
|
+
const { workspaceStatusCommand } = await import("./workspace-6E6OSRNU.js");
|
|
358
363
|
await workspaceStatusCommand({});
|
|
359
364
|
});
|
|
360
365
|
program.command("doctor").description("Health check - validate Paradigm setup").option("--context", "Run only context audit checks (CLAUDE.md quality)").action(async (options) => {
|
|
361
|
-
const { doctorCommand } = await import("./doctor-
|
|
366
|
+
const { doctorCommand } = await import("./doctor-ULBOHEIC.js");
|
|
362
367
|
await doctorCommand(options);
|
|
363
368
|
});
|
|
364
369
|
program.command("integrity").description("Symbol integrity check \u2014 broken refs, duplicates, orphans, missing anchors").option("--json", "Output machine-readable JSON").action(async (options) => {
|
|
365
|
-
const { integrityCommand } = await import("./integrity-
|
|
370
|
+
const { integrityCommand } = await import("./integrity-IHO4FZTS.js");
|
|
366
371
|
await integrityCommand(options);
|
|
367
372
|
});
|
|
373
|
+
program.command("review").description("Automated two-stage review pipeline \u2014 spec compliance + code quality").option("--pr <number>", "Review a PR via gh CLI").option("--ci", "Exit 1 on blocking findings").option("--deep", "Include code quality checks (eval, secrets, console.log)").option("--json", "Output machine-readable JSON").action(async (options) => {
|
|
374
|
+
const { reviewCommand } = await import("./review-57QMURZV.js");
|
|
375
|
+
await reviewCommand(options);
|
|
376
|
+
});
|
|
368
377
|
program.command("sweep").description("Entropy detection and cleanup \u2014 find orphaned symbols, stale purpose files, phantom gates").option("--dry", "Report only, no fixes applied").option("--skip-fix", "Same as --dry").option("-q, --quiet", "Minimal output").action(async (options) => {
|
|
369
|
-
const { sweepCommand } = await import("./sweep-
|
|
378
|
+
const { sweepCommand } = await import("./sweep-QMHNSIY5.js");
|
|
370
379
|
await sweepCommand(options);
|
|
371
380
|
});
|
|
372
381
|
var driftCmd = program.command("drift").description("Aspect anchor drift detection");
|
|
373
382
|
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) => {
|
|
374
|
-
const { driftCheckCommand } = await import("./drift-
|
|
383
|
+
const { driftCheckCommand } = await import("./drift-R5NRKFHI.js");
|
|
375
384
|
await driftCheckCommand(options);
|
|
376
385
|
});
|
|
377
386
|
var globalCmd = program.command("global").description("Manage Global Brain (~/.paradigm/)");
|
|
378
387
|
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) => {
|
|
379
|
-
const { globalCleanCommand } = await import("./global-
|
|
388
|
+
const { globalCleanCommand } = await import("./global-3NG5JXUB.js");
|
|
380
389
|
await globalCleanCommand(options);
|
|
381
390
|
});
|
|
382
391
|
globalCmd.action(() => {
|
|
383
392
|
globalCmd.outputHelp();
|
|
384
393
|
});
|
|
385
394
|
program.command("watch").description("Watch for changes and auto-sync IDE files").action(async () => {
|
|
386
|
-
const { watchCommand } = await import("./watch-
|
|
395
|
+
const { watchCommand } = await import("./watch-ZF4ML6CD.js");
|
|
387
396
|
await watchCommand();
|
|
388
397
|
});
|
|
389
398
|
program.command("summary").description("Generate .paradigm/project.md with project stats").action(async () => {
|
|
390
|
-
const { summaryCommand } = await import("./summary-
|
|
399
|
+
const { summaryCommand } = await import("./summary-NIRABMF5.js");
|
|
391
400
|
await summaryCommand();
|
|
392
401
|
});
|
|
393
402
|
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) => {
|
|
394
|
-
const { constellationCommand } = await import("./constellation-
|
|
403
|
+
const { constellationCommand } = await import("./constellation-A26CCGQS.js");
|
|
395
404
|
await constellationCommand(path2, options);
|
|
396
405
|
});
|
|
397
406
|
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) => {
|
|
398
|
-
const { beaconCommand } = await import("./beacon-
|
|
407
|
+
const { beaconCommand } = await import("./beacon-KXZXYQHX.js");
|
|
399
408
|
await beaconCommand(path2, options);
|
|
400
409
|
});
|
|
401
410
|
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) => {
|
|
402
|
-
const { rippleCommand } = await import("./ripple-
|
|
411
|
+
const { rippleCommand } = await import("./ripple-JPBXP5I3.js");
|
|
403
412
|
await rippleCommand(symbol, path2, options);
|
|
404
413
|
});
|
|
405
414
|
var threadCmd = program.command("thread").description("Session continuity - pass context between AI agent sessions");
|
|
406
415
|
threadCmd.command("show [path]").alias("s").description("Show current thread").option("--json", "Output as JSON (for AI agent queries)").action(async (path2, options) => {
|
|
407
|
-
const { threadShowCommand } = await import("./thread-
|
|
416
|
+
const { threadShowCommand } = await import("./thread-N754I4D5.js");
|
|
408
417
|
await threadShowCommand(path2, options);
|
|
409
418
|
});
|
|
410
419
|
threadCmd.command("save <message> [path]").description("Save activity to the thread trail").option("-q, --quiet", "Suppress output").action(async (message, path2, options) => {
|
|
411
|
-
const { threadSaveCommand } = await import("./thread-
|
|
420
|
+
const { threadSaveCommand } = await import("./thread-N754I4D5.js");
|
|
412
421
|
await threadSaveCommand(message, path2, options);
|
|
413
422
|
});
|
|
414
423
|
threadCmd.command("todo <task> [path]").description("Add a loose end (unfinished task)").option("-q, --quiet", "Suppress output").action(async (task, path2, options) => {
|
|
415
|
-
const { threadTodoCommand } = await import("./thread-
|
|
424
|
+
const { threadTodoCommand } = await import("./thread-N754I4D5.js");
|
|
416
425
|
await threadTodoCommand(task, path2, options);
|
|
417
426
|
});
|
|
418
427
|
threadCmd.command("note <note> [path]").description("Add a breadcrumb (note for next agent)").option("-q, --quiet", "Suppress output").action(async (note, path2, options) => {
|
|
419
|
-
const { threadNoteCommand } = await import("./thread-
|
|
428
|
+
const { threadNoteCommand } = await import("./thread-N754I4D5.js");
|
|
420
429
|
await threadNoteCommand(note, path2, options);
|
|
421
430
|
});
|
|
422
431
|
threadCmd.command("clear [path]").description("Clear the thread").option("-q, --quiet", "Suppress output").action(async (path2, options) => {
|
|
423
|
-
const { threadClearCommand } = await import("./thread-
|
|
432
|
+
const { threadClearCommand } = await import("./thread-N754I4D5.js");
|
|
424
433
|
await threadClearCommand(path2, options);
|
|
425
434
|
});
|
|
426
435
|
threadCmd.option("--json", "Output as JSON (for AI agent queries)").action(async (options) => {
|
|
427
|
-
const { threadShowCommand } = await import("./thread-
|
|
436
|
+
const { threadShowCommand } = await import("./thread-N754I4D5.js");
|
|
428
437
|
await threadShowCommand(void 0, options);
|
|
429
438
|
});
|
|
430
439
|
var echoCmd = program.command("echo").description("Error-to-symbol mapping - find related symbols for error codes");
|
|
431
440
|
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) => {
|
|
432
|
-
const { echoCommand } = await import("./echo-
|
|
441
|
+
const { echoCommand } = await import("./echo-O2LY7CC2.js");
|
|
433
442
|
await echoCommand(errorCode, path2, options);
|
|
434
443
|
});
|
|
435
444
|
echoCmd.command("init [path]").description("Create .paradigm/echoes.yaml template").option("-q, --quiet", "Suppress output").action(async (path2, options) => {
|
|
436
|
-
const { echoInitCommand } = await import("./echo-
|
|
445
|
+
const { echoInitCommand } = await import("./echo-O2LY7CC2.js");
|
|
437
446
|
await echoInitCommand(path2, options);
|
|
438
447
|
});
|
|
439
448
|
echoCmd.command("list [path]").alias("ls").description("List all error mappings").action(async (path2) => {
|
|
440
|
-
const { echoListCommand } = await import("./echo-
|
|
449
|
+
const { echoListCommand } = await import("./echo-O2LY7CC2.js");
|
|
441
450
|
await echoListCommand(path2);
|
|
442
451
|
});
|
|
443
452
|
echoCmd.argument("[errorCode]", "Error code to look up").option("--json", "Output as JSON (for AI agent queries)").action(async (errorCode, options) => {
|
|
444
453
|
if (errorCode) {
|
|
445
|
-
const { echoCommand } = await import("./echo-
|
|
454
|
+
const { echoCommand } = await import("./echo-O2LY7CC2.js");
|
|
446
455
|
await echoCommand(errorCode, void 0, options);
|
|
447
456
|
} else {
|
|
448
|
-
const { echoListCommand } = await import("./echo-
|
|
457
|
+
const { echoListCommand } = await import("./echo-O2LY7CC2.js");
|
|
449
458
|
await echoListCommand();
|
|
450
459
|
}
|
|
451
460
|
});
|
|
452
461
|
var tutorialCmd = program.command("tutorial").description("Interactive tutorial system");
|
|
453
462
|
tutorialCmd.command("start [path]").description("Start the tutorial").action(async (path2) => {
|
|
454
|
-
const { tutorialStartCommand } = await import("./tutorial-
|
|
463
|
+
const { tutorialStartCommand } = await import("./tutorial-KD22SUNO.js");
|
|
455
464
|
await tutorialStartCommand(path2);
|
|
456
465
|
});
|
|
457
466
|
tutorialCmd.command("step [n] [path]").description("Show tutorial step").action(async (n, path2) => {
|
|
458
|
-
const { tutorialStepCommand } = await import("./tutorial-
|
|
467
|
+
const { tutorialStepCommand } = await import("./tutorial-KD22SUNO.js");
|
|
459
468
|
await tutorialStepCommand(path2, n);
|
|
460
469
|
});
|
|
461
470
|
tutorialCmd.command("checkpoint [path]").description("Validate current checkpoint").action(async (path2) => {
|
|
462
|
-
const { tutorialCheckpointCommand } = await import("./tutorial-
|
|
471
|
+
const { tutorialCheckpointCommand } = await import("./tutorial-KD22SUNO.js");
|
|
463
472
|
await tutorialCheckpointCommand(path2);
|
|
464
473
|
});
|
|
465
474
|
tutorialCmd.command("next [path]").description("Move to next step").action(async (path2) => {
|
|
466
|
-
const { tutorialNextCommand } = await import("./tutorial-
|
|
475
|
+
const { tutorialNextCommand } = await import("./tutorial-KD22SUNO.js");
|
|
467
476
|
await tutorialNextCommand(path2);
|
|
468
477
|
});
|
|
469
478
|
tutorialCmd.command("status [path]").description("Show tutorial progress").action(async (path2) => {
|
|
470
|
-
const { tutorialStatusCommand } = await import("./tutorial-
|
|
479
|
+
const { tutorialStatusCommand } = await import("./tutorial-KD22SUNO.js");
|
|
471
480
|
await tutorialStatusCommand(path2);
|
|
472
481
|
});
|
|
473
482
|
tutorialCmd.command("reset [path]").description("Reset tutorial to beginning").action(async (path2) => {
|
|
474
|
-
const { tutorialResetCommand } = await import("./tutorial-
|
|
483
|
+
const { tutorialResetCommand } = await import("./tutorial-KD22SUNO.js");
|
|
475
484
|
await tutorialResetCommand(path2);
|
|
476
485
|
});
|
|
477
486
|
tutorialCmd.command("bugs [path]").description("List intentional bugs").action(async (path2) => {
|
|
478
|
-
const { tutorialBugsCommand } = await import("./tutorial-
|
|
487
|
+
const { tutorialBugsCommand } = await import("./tutorial-KD22SUNO.js");
|
|
479
488
|
await tutorialBugsCommand(path2);
|
|
480
489
|
});
|
|
481
490
|
var mcpCmd = program.command("mcp").description("MCP server configuration for AI clients");
|
|
482
491
|
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) => {
|
|
483
|
-
const { mcpSetupCommand } = await import("./setup-
|
|
492
|
+
const { mcpSetupCommand } = await import("./setup-EDS27WUR.js");
|
|
484
493
|
await mcpSetupCommand(options);
|
|
485
494
|
});
|
|
486
495
|
mcpCmd.command("status").description("Show MCP configuration status across clients").option("--json", "Output as JSON").action(async (options) => {
|
|
487
|
-
const { mcpStatusCommand } = await import("./setup-
|
|
496
|
+
const { mcpStatusCommand } = await import("./setup-EDS27WUR.js");
|
|
488
497
|
await mcpStatusCommand(options);
|
|
489
498
|
});
|
|
490
499
|
mcpCmd.command("list").alias("ls").description("List all configured MCP servers across all clients").option("--json", "Output as JSON").action(async (options) => {
|
|
491
|
-
const { mcpListCommand } = await import("./setup-
|
|
500
|
+
const { mcpListCommand } = await import("./setup-EDS27WUR.js");
|
|
492
501
|
await mcpListCommand(options);
|
|
493
502
|
});
|
|
494
503
|
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) => {
|
|
495
|
-
const { mcpRemoveCommand } = await import("./setup-
|
|
504
|
+
const { mcpRemoveCommand } = await import("./setup-EDS27WUR.js");
|
|
496
505
|
await mcpRemoveCommand(server, options);
|
|
497
506
|
});
|
|
498
507
|
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) => {
|
|
499
|
-
const { mcpUseDevCommand } = await import("./switch-
|
|
508
|
+
const { mcpUseDevCommand } = await import("./switch-6EJPZDIA.js");
|
|
500
509
|
await mcpUseDevCommand(options);
|
|
501
510
|
});
|
|
502
511
|
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) => {
|
|
503
|
-
const { mcpUseProdCommand } = await import("./switch-
|
|
512
|
+
const { mcpUseProdCommand } = await import("./switch-6EJPZDIA.js");
|
|
504
513
|
await mcpUseProdCommand(options);
|
|
505
514
|
});
|
|
506
515
|
mcpCmd.action(async () => {
|
|
507
|
-
const { mcpSwitchStatusCommand } = await import("./switch-
|
|
516
|
+
const { mcpSwitchStatusCommand } = await import("./switch-6EJPZDIA.js");
|
|
508
517
|
await mcpSwitchStatusCommand({});
|
|
509
518
|
});
|
|
510
519
|
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) => {
|
|
511
|
-
const { promoteCommand } = await import("./promote-
|
|
520
|
+
const { promoteCommand } = await import("./promote-F6ZYZZAL.js");
|
|
512
521
|
await promoteCommand(options);
|
|
513
522
|
});
|
|
514
523
|
var wisdomCmd = program.command("wisdom").description("Team wisdom - preferences, antipatterns, decisions, expertise");
|
|
515
524
|
wisdomCmd.command("show [symbol]").description("Display wisdom for symbols or overview").option("--json", "Output as JSON").action(async (symbol, options) => {
|
|
516
|
-
const { wisdomShowCommand } = await import("./wisdom-
|
|
525
|
+
const { wisdomShowCommand } = await import("./wisdom-AATMGNFA.js");
|
|
517
526
|
await wisdomShowCommand(symbol, options);
|
|
518
527
|
});
|
|
519
528
|
wisdomCmd.command("init").description("Initialize wisdom directory with templates").option("-f, --force", "Overwrite existing files").action(async (options) => {
|
|
520
|
-
const { wisdomInitCommand } = await import("./wisdom-
|
|
529
|
+
const { wisdomInitCommand } = await import("./wisdom-AATMGNFA.js");
|
|
521
530
|
await wisdomInitCommand(options);
|
|
522
531
|
});
|
|
523
532
|
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) => {
|
|
524
|
-
const { wisdomAddAntipatternCommand } = await import("./wisdom-
|
|
533
|
+
const { wisdomAddAntipatternCommand } = await import("./wisdom-AATMGNFA.js");
|
|
525
534
|
await wisdomAddAntipatternCommand(options);
|
|
526
535
|
});
|
|
527
536
|
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) => {
|
|
528
|
-
const { wisdomDecideCommand } = await import("./wisdom-
|
|
537
|
+
const { wisdomDecideCommand } = await import("./wisdom-AATMGNFA.js");
|
|
529
538
|
await wisdomDecideCommand(options);
|
|
530
539
|
});
|
|
531
540
|
wisdomCmd.command("expert [query]").description("Find experts for symbols or areas").option("--json", "Output as JSON").action(async (query, options) => {
|
|
532
|
-
const { wisdomExpertCommand } = await import("./wisdom-
|
|
541
|
+
const { wisdomExpertCommand } = await import("./wisdom-AATMGNFA.js");
|
|
533
542
|
await wisdomExpertCommand(query, options);
|
|
534
543
|
});
|
|
535
544
|
wisdomCmd.option("--json", "Output as JSON").action(async (options) => {
|
|
536
|
-
const { wisdomShowCommand } = await import("./wisdom-
|
|
545
|
+
const { wisdomShowCommand } = await import("./wisdom-AATMGNFA.js");
|
|
537
546
|
await wisdomShowCommand(void 0, options);
|
|
538
547
|
});
|
|
539
548
|
var historyCmd = program.command("history").description("Implementation history - tracking changes, validation, fragility");
|
|
540
549
|
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) => {
|
|
541
|
-
const { historyShowCommand } = await import("./history-
|
|
550
|
+
const { historyShowCommand } = await import("./history-WOWC573W.js");
|
|
542
551
|
await historyShowCommand(symbol, { ...options, limit: parseInt(options.limit) });
|
|
543
552
|
});
|
|
544
553
|
historyCmd.command("init").description("Initialize history directory").option("-f, --force", "Overwrite existing files").action(async (options) => {
|
|
545
|
-
const { historyInitCommand } = await import("./history-
|
|
554
|
+
const { historyInitCommand } = await import("./history-WOWC573W.js");
|
|
546
555
|
await historyInitCommand(options);
|
|
547
556
|
});
|
|
548
557
|
historyCmd.command("fragile").description("Show fragile symbols that need extra care").option("--json", "Output as JSON").action(async (options) => {
|
|
549
|
-
const { historyFragileCommand } = await import("./history-
|
|
558
|
+
const { historyFragileCommand } = await import("./history-WOWC573W.js");
|
|
550
559
|
await historyFragileCommand(options);
|
|
551
560
|
});
|
|
552
561
|
historyCmd.command("reindex").description("Regenerate index from log").action(async () => {
|
|
553
|
-
const { historyReindexCommand } = await import("./history-
|
|
562
|
+
const { historyReindexCommand } = await import("./history-WOWC573W.js");
|
|
554
563
|
await historyReindexCommand();
|
|
555
564
|
});
|
|
556
565
|
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) => {
|
|
557
|
-
const { historyRecordCommand } = await import("./history-
|
|
566
|
+
const { historyRecordCommand } = await import("./history-WOWC573W.js");
|
|
558
567
|
await historyRecordCommand(options);
|
|
559
568
|
});
|
|
560
569
|
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) => {
|
|
561
|
-
const { historyValidateCommand } = await import("./history-
|
|
570
|
+
const { historyValidateCommand } = await import("./history-WOWC573W.js");
|
|
562
571
|
await historyValidateCommand({
|
|
563
572
|
...options,
|
|
564
573
|
passed: options.passed ? parseInt(options.passed) : void 0,
|
|
@@ -566,361 +575,466 @@ historyCmd.command("validate").description("Record a validation result").require
|
|
|
566
575
|
});
|
|
567
576
|
});
|
|
568
577
|
historyCmd.option("--json", "Output as JSON").action(async (options) => {
|
|
569
|
-
const { historyShowCommand } = await import("./history-
|
|
578
|
+
const { historyShowCommand } = await import("./history-WOWC573W.js");
|
|
570
579
|
await historyShowCommand(void 0, options);
|
|
571
580
|
});
|
|
572
581
|
var hooksCmd = program.command("hooks").description("Git hooks for automatic history capture");
|
|
573
582
|
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) => {
|
|
574
|
-
const { hooksInstallCommand } = await import("./hooks-
|
|
583
|
+
const { hooksInstallCommand } = await import("./hooks-HFWSCGPV.js");
|
|
575
584
|
await hooksInstallCommand(options);
|
|
576
585
|
});
|
|
577
586
|
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) => {
|
|
578
|
-
const { hooksUninstallCommand } = await import("./hooks-
|
|
587
|
+
const { hooksUninstallCommand } = await import("./hooks-HFWSCGPV.js");
|
|
579
588
|
await hooksUninstallCommand(options);
|
|
580
589
|
});
|
|
581
590
|
hooksCmd.command("status").description("Check git hooks status").action(async () => {
|
|
582
|
-
const { hooksStatusCommand } = await import("./hooks-
|
|
591
|
+
const { hooksStatusCommand } = await import("./hooks-HFWSCGPV.js");
|
|
583
592
|
await hooksStatusCommand();
|
|
584
593
|
});
|
|
585
594
|
hooksCmd.action(async () => {
|
|
586
|
-
const { hooksStatusCommand } = await import("./hooks-
|
|
595
|
+
const { hooksStatusCommand } = await import("./hooks-HFWSCGPV.js");
|
|
587
596
|
await hooksStatusCommand();
|
|
588
597
|
});
|
|
589
598
|
var triageCmd = program.command("triage").description("Semantic error triage - incident management and pattern matching");
|
|
590
599
|
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) => {
|
|
591
|
-
const { triageListCommand } = await import("./triage-
|
|
600
|
+
const { triageListCommand } = await import("./triage-HHYGT3HY.js");
|
|
592
601
|
await triageListCommand(options);
|
|
593
602
|
});
|
|
594
603
|
triageCmd.command("show <id>").description("Show full incident details").option("--timeline", "Include flow timeline").option("--json", "Output as JSON").action(async (id, options) => {
|
|
595
|
-
const { triageShowCommand } = await import("./triage-
|
|
604
|
+
const { triageShowCommand } = await import("./triage-HHYGT3HY.js");
|
|
596
605
|
await triageShowCommand(id, options);
|
|
597
606
|
});
|
|
598
607
|
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) => {
|
|
599
|
-
const { triageResolveCommand } = await import("./triage-
|
|
608
|
+
const { triageResolveCommand } = await import("./triage-HHYGT3HY.js");
|
|
600
609
|
await triageResolveCommand(id, options);
|
|
601
610
|
});
|
|
602
611
|
triageCmd.command("note <id> <note>").description("Add a note to an incident").action(async (id, note) => {
|
|
603
|
-
const { triageNoteCommand } = await import("./triage-
|
|
612
|
+
const { triageNoteCommand } = await import("./triage-HHYGT3HY.js");
|
|
604
613
|
await triageNoteCommand(id, note);
|
|
605
614
|
});
|
|
606
615
|
triageCmd.command("link <id1> <id2>").description("Link two related incidents").action(async (id1, id2) => {
|
|
607
|
-
const { triageLinkCommand } = await import("./triage-
|
|
616
|
+
const { triageLinkCommand } = await import("./triage-HHYGT3HY.js");
|
|
608
617
|
await triageLinkCommand(id1, id2);
|
|
609
618
|
});
|
|
610
619
|
var triagePatternsCmd = triageCmd.command("patterns").description("Manage failure patterns");
|
|
611
620
|
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) => {
|
|
612
|
-
const { triagePatternsListCommand } = await import("./triage-
|
|
621
|
+
const { triagePatternsListCommand } = await import("./triage-HHYGT3HY.js");
|
|
613
622
|
await triagePatternsListCommand(options);
|
|
614
623
|
});
|
|
615
624
|
triagePatternsCmd.command("show <id>").description("Show pattern details").option("--json", "Output as JSON").action(async (id, options) => {
|
|
616
|
-
const { triagePatternsShowCommand } = await import("./triage-
|
|
625
|
+
const { triagePatternsShowCommand } = await import("./triage-HHYGT3HY.js");
|
|
617
626
|
await triagePatternsShowCommand(id, options);
|
|
618
627
|
});
|
|
619
628
|
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) => {
|
|
620
|
-
const { triagePatternsAddCommand } = await import("./triage-
|
|
629
|
+
const { triagePatternsAddCommand } = await import("./triage-HHYGT3HY.js");
|
|
621
630
|
await triagePatternsAddCommand(options);
|
|
622
631
|
});
|
|
623
632
|
triagePatternsCmd.command("delete <id>").alias("rm").description("Delete a pattern").action(async (id) => {
|
|
624
|
-
const { triagePatternsDeleteCommand } = await import("./triage-
|
|
633
|
+
const { triagePatternsDeleteCommand } = await import("./triage-HHYGT3HY.js");
|
|
625
634
|
await triagePatternsDeleteCommand(id);
|
|
626
635
|
});
|
|
627
636
|
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) => {
|
|
628
|
-
const { triagePatternsTestCommand } = await import("./triage-
|
|
637
|
+
const { triagePatternsTestCommand } = await import("./triage-HHYGT3HY.js");
|
|
629
638
|
await triagePatternsTestCommand(id, options);
|
|
630
639
|
});
|
|
631
640
|
triagePatternsCmd.command("seed").description("Load built-in seed patterns").action(async () => {
|
|
632
|
-
const { triagePatternsSeedCommand } = await import("./triage-
|
|
641
|
+
const { triagePatternsSeedCommand } = await import("./triage-HHYGT3HY.js");
|
|
633
642
|
await triagePatternsSeedCommand();
|
|
634
643
|
});
|
|
635
644
|
triagePatternsCmd.action(async () => {
|
|
636
|
-
const { triagePatternsListCommand } = await import("./triage-
|
|
645
|
+
const { triagePatternsListCommand } = await import("./triage-HHYGT3HY.js");
|
|
637
646
|
await triagePatternsListCommand({});
|
|
638
647
|
});
|
|
639
648
|
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) => {
|
|
640
|
-
const { triageExportCommand } = await import("./triage-
|
|
649
|
+
const { triageExportCommand } = await import("./triage-HHYGT3HY.js");
|
|
641
650
|
await triageExportCommand(type, options);
|
|
642
651
|
});
|
|
643
652
|
triageCmd.command("import <file>").description("Import patterns from JSON file").option("--overwrite", "Overwrite existing patterns").action(async (file, options) => {
|
|
644
|
-
const { triageImportCommand } = await import("./triage-
|
|
653
|
+
const { triageImportCommand } = await import("./triage-HHYGT3HY.js");
|
|
645
654
|
await triageImportCommand(file, options);
|
|
646
655
|
});
|
|
647
656
|
triageCmd.command("restore <file>").description("Restore from full backup").action(async (file) => {
|
|
648
|
-
const { triageRestoreCommand } = await import("./triage-
|
|
657
|
+
const { triageRestoreCommand } = await import("./triage-HHYGT3HY.js");
|
|
649
658
|
await triageRestoreCommand(file);
|
|
650
659
|
});
|
|
651
660
|
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) => {
|
|
652
|
-
const { triageStatsCommand } = await import("./triage-
|
|
661
|
+
const { triageStatsCommand } = await import("./triage-HHYGT3HY.js");
|
|
653
662
|
await triageStatsCommand(options);
|
|
654
663
|
});
|
|
655
664
|
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) => {
|
|
656
|
-
const { triageRecordCommand } = await import("./triage-
|
|
665
|
+
const { triageRecordCommand } = await import("./triage-HHYGT3HY.js");
|
|
657
666
|
await triageRecordCommand(options);
|
|
658
667
|
});
|
|
659
668
|
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) => {
|
|
660
|
-
const { triageListCommand } = await import("./triage-
|
|
669
|
+
const { triageListCommand } = await import("./triage-HHYGT3HY.js");
|
|
661
670
|
await triageListCommand(options);
|
|
662
671
|
});
|
|
663
672
|
var loreCmd = program.command("lore").description("Project lore - timeline of everything that happened to this project");
|
|
664
673
|
loreCmd.command("list").alias("ls").description("List recent lore entries").option("--author <author>", "Filter by author").option("--type <type>", "Filter by type: agent-session, human-note, decision, review, incident, milestone, retro, insight").option("--symbol <symbol>", "Filter by symbol").option("--tags <tags>", "Filter by tags (comma-separated)").option("--from <date>", "Filter from date (ISO format, e.g., 2026-02-20)").option("--to <date>", "Filter to date (ISO format)").option("-l, --limit <number>", "Number of entries", "20").option("--json", "Output as JSON").action(async (options) => {
|
|
665
|
-
const { loreListCommand } = await import("./list-
|
|
674
|
+
const { loreListCommand } = await import("./list-ENR7Q4CR.js");
|
|
666
675
|
await loreListCommand(options);
|
|
667
676
|
});
|
|
668
677
|
loreCmd.command("show <id>").description("Show full detail for a lore entry").option("--json", "Output as JSON").action(async (id, options) => {
|
|
669
|
-
const { loreShowCommand } = await import("./show-
|
|
678
|
+
const { loreShowCommand } = await import("./show-5PV5KFJE.js");
|
|
670
679
|
await loreShowCommand(id, options);
|
|
671
680
|
});
|
|
672
681
|
loreCmd.command("record").description("Record a new lore entry (human note, milestone, etc.)").option("--type <type>", "Entry type: human-note, decision, milestone, retro, insight", "human-note").option("--author <author>", "Author name").option("--title <title>", "Entry title").option("--summary <summary>", "Entry summary").option("--symbols <symbols>", "Comma-separated symbols").option("--tags <tags>", "Comma-separated tags").option("--files-modified <files>", "Comma-separated files modified").option("--files-created <files>", "Comma-separated files created").option("--commit <hash>", "Git commit hash").option("--learnings <items>", "Comma-separated learnings").option("--duration <minutes>", "Duration in minutes").option("--meta <json>", `Project-defined metadata as JSON (e.g., '{"sprint": 12}')`).option("--body <text>", "Long-form content (detailed notes, rationale, etc.)").option("--link-lore <ids>", "Comma-separated lore entry IDs to link").option("--link-commits <shas>", "Comma-separated git commit SHAs to link").option("--confidence <number>", "Confidence in correctness (0.0 to 1.0)").action(async (options) => {
|
|
673
|
-
const { loreRecordCommand } = await import("./record-
|
|
682
|
+
const { loreRecordCommand } = await import("./record-RA4WR2BO.js");
|
|
674
683
|
await loreRecordCommand(options);
|
|
675
684
|
});
|
|
676
685
|
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) => {
|
|
677
|
-
const { loreReviewCommand } = await import("./review-
|
|
686
|
+
const { loreReviewCommand } = await import("./review-27ATYTD2.js");
|
|
678
687
|
await loreReviewCommand(id, options);
|
|
679
688
|
});
|
|
680
689
|
loreCmd.command("assess <id> <verdict>").description("Record an assessment verdict on a lore entry (correct/partial/incorrect)").option("--assessor <name>", "Assessor name").option("--notes <text>", "Assessment notes").action(async (id, verdict, options) => {
|
|
681
|
-
const { loreAssessCommand } = await import("./assess-
|
|
690
|
+
const { loreAssessCommand } = await import("./assess-4WVXZLZQ.js");
|
|
682
691
|
await loreAssessCommand(id, verdict, options);
|
|
683
692
|
});
|
|
684
693
|
loreCmd.command("calibration").description("Show calibration statistics across assessed lore entries").option("--symbol <symbol>", "Filter by symbol").option("--tag <tag>", "Filter by tag").option("--author <author>", "Filter by author").option("--group-by <dimension>", "Group by: symbol, tag, type").option("--json", "Output as JSON").action(async (options) => {
|
|
685
|
-
const { loreCalibrationCommand } = await import("./calibration-
|
|
694
|
+
const { loreCalibrationCommand } = await import("./calibration-V46G7JTY.js");
|
|
686
695
|
await loreCalibrationCommand(options);
|
|
687
696
|
});
|
|
688
697
|
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) => {
|
|
689
|
-
const { loreEditCommand } = await import("./edit-
|
|
698
|
+
const { loreEditCommand } = await import("./edit-R2HNLMOG.js");
|
|
690
699
|
await loreEditCommand(id, options);
|
|
691
700
|
});
|
|
692
701
|
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) => {
|
|
693
|
-
const { loreDeleteCommand } = await import("./delete-
|
|
702
|
+
const { loreDeleteCommand } = await import("./delete-KBRPQLPC.js");
|
|
694
703
|
await loreDeleteCommand(id, options);
|
|
695
704
|
});
|
|
696
705
|
loreCmd.command("migrate-assessments").description("Migrate assessment entries to lore with arc: tags").option("--dry-run", "Show what would be migrated without making changes").action(async (options) => {
|
|
697
|
-
const { loreMigrateAssessmentsCommand } = await import("./migrate-assessments-
|
|
706
|
+
const { loreMigrateAssessmentsCommand } = await import("./migrate-assessments-RGH4O6IX.js");
|
|
698
707
|
await loreMigrateAssessmentsCommand(options);
|
|
699
708
|
});
|
|
700
709
|
loreCmd.command("retag").description("Add or remove tags from matching lore entries").option("--add <tag>", "Tag to add").option("--remove <tag>", "Tag to remove").option("--type <type>", "Filter by entry type").option("--symbol <symbol>", "Filter by symbol").option("--author <author>", "Filter by author").option("--from <date>", "Filter from date").option("--to <date>", "Filter to date").option("--tags <tags>", "Filter by existing tags (comma-separated)").option("--dry-run", "Show what would change without making changes").action(async (options) => {
|
|
701
|
-
const { loreRetagCommand } = await import("./retag-
|
|
710
|
+
const { loreRetagCommand } = await import("./retag-3OLCVDEQ.js");
|
|
702
711
|
await loreRetagCommand(options);
|
|
703
712
|
});
|
|
704
713
|
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) => {
|
|
705
|
-
const { loreTimelineCommand } = await import("./timeline-
|
|
714
|
+
const { loreTimelineCommand } = await import("./timeline-M3CICQFE.js");
|
|
706
715
|
await loreTimelineCommand(options);
|
|
707
716
|
});
|
|
708
717
|
loreCmd.option("-p, --port <port>", "Port to run on", "3840").option("--no-open", "Don't open browser automatically").action(async (options) => {
|
|
709
|
-
const { loreServeCommand } = await import("./serve-
|
|
718
|
+
const { loreServeCommand } = await import("./serve-INL7SNBK.js");
|
|
710
719
|
await loreServeCommand(void 0, options);
|
|
711
720
|
});
|
|
712
721
|
program.command("serve").description("Launch Paradigm Platform \u2014 unified development management UI").option("-p, --port <port>", "Port to run on", "3850").option("--no-open", "Don't open browser automatically").option("--sections <list>", "Comma-separated sections to enable (e.g., lore,graph,git)").action(async (options) => {
|
|
713
|
-
const { serveCommand } = await import("./serve-
|
|
722
|
+
const { serveCommand } = await import("./serve-EFVRS4GA.js");
|
|
714
723
|
await serveCommand(options);
|
|
715
724
|
});
|
|
716
725
|
var graphCmd = program.command("graph").description("Interactive symbol relationship graph").argument("[path]", "Project directory", void 0).option("-p, --port <port>", "Port to run on", "3841").option("--no-open", "Don't open browser automatically").action(async (path2, options) => {
|
|
717
|
-
const { graphCommand } = await import("./graph-
|
|
726
|
+
const { graphCommand } = await import("./graph-VHUMAAS6.js");
|
|
718
727
|
await graphCommand(path2, options);
|
|
719
728
|
});
|
|
720
729
|
graphCmd.command("generate").description("Generate a named graph file in .paradigm/graphs/").argument("<name>", "Graph name (used as filename: {name}.graph.json)").argument("[path]", "Project directory", void 0).option("-s, --symbols <list>", "Comma-separated symbol names to include").option("-g, --group <spec...>", 'Group spec: "Label:#sym1,#sym2" (repeatable)').option("-l, --link <spec...>", 'Link spec: "Source>Target:label" (repeatable)').action(async (name, path2, options) => {
|
|
721
|
-
const { graphGenerateCommand } = await import("./graph-
|
|
730
|
+
const { graphGenerateCommand } = await import("./graph-VHUMAAS6.js");
|
|
722
731
|
await graphGenerateCommand(name, path2, options);
|
|
723
732
|
});
|
|
724
733
|
var habitsCmd = program.command("habits").description("Behavioral habits - practice tracking and compliance");
|
|
725
734
|
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) => {
|
|
726
|
-
const { habitsListCommand } = await import("./habits-
|
|
735
|
+
const { habitsListCommand } = await import("./habits-OL5NGPXO.js");
|
|
727
736
|
await habitsListCommand(options);
|
|
728
737
|
});
|
|
729
738
|
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) => {
|
|
730
|
-
const { habitsStatusCommand } = await import("./habits-
|
|
739
|
+
const { habitsStatusCommand } = await import("./habits-OL5NGPXO.js");
|
|
731
740
|
await habitsStatusCommand(options);
|
|
732
741
|
});
|
|
733
742
|
habitsCmd.command("init").description("Initialize habits.yaml with seed habits").option("-f, --force", "Overwrite existing file").action(async (options) => {
|
|
734
|
-
const { habitsInitCommand } = await import("./habits-
|
|
743
|
+
const { habitsInitCommand } = await import("./habits-OL5NGPXO.js");
|
|
735
744
|
await habitsInitCommand(options);
|
|
736
745
|
});
|
|
737
746
|
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) => {
|
|
738
|
-
const { habitsCheckCommand } = await import("./habits-
|
|
747
|
+
const { habitsCheckCommand } = await import("./habits-OL5NGPXO.js");
|
|
739
748
|
await habitsCheckCommand(options);
|
|
740
749
|
});
|
|
741
750
|
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) => {
|
|
742
|
-
const { habitsAddCommand } = await import("./habits-
|
|
751
|
+
const { habitsAddCommand } = await import("./habits-OL5NGPXO.js");
|
|
743
752
|
await habitsAddCommand({ ...options, checkType: options.checkType });
|
|
744
753
|
});
|
|
745
754
|
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) => {
|
|
746
|
-
const { habitsEditCommand } = await import("./habits-
|
|
755
|
+
const { habitsEditCommand } = await import("./habits-OL5NGPXO.js");
|
|
747
756
|
await habitsEditCommand(id, { ...options, checkType: options.checkType });
|
|
748
757
|
});
|
|
749
758
|
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) => {
|
|
750
|
-
const { habitsRemoveCommand } = await import("./habits-
|
|
759
|
+
const { habitsRemoveCommand } = await import("./habits-OL5NGPXO.js");
|
|
751
760
|
await habitsRemoveCommand(id, options);
|
|
752
761
|
});
|
|
753
762
|
habitsCmd.command("enable <id>").description("Enable a habit").action(async (id) => {
|
|
754
|
-
const { habitsToggleCommand } = await import("./habits-
|
|
763
|
+
const { habitsToggleCommand } = await import("./habits-OL5NGPXO.js");
|
|
755
764
|
await habitsToggleCommand(id, "enable");
|
|
756
765
|
});
|
|
757
766
|
habitsCmd.command("disable <id>").description("Disable a habit").action(async (id) => {
|
|
758
|
-
const { habitsToggleCommand } = await import("./habits-
|
|
767
|
+
const { habitsToggleCommand } = await import("./habits-OL5NGPXO.js");
|
|
759
768
|
await habitsToggleCommand(id, "disable");
|
|
760
769
|
});
|
|
761
770
|
habitsCmd.action(async () => {
|
|
762
|
-
const { habitsListCommand } = await import("./habits-
|
|
771
|
+
const { habitsListCommand } = await import("./habits-OL5NGPXO.js");
|
|
763
772
|
await habitsListCommand({});
|
|
764
773
|
});
|
|
774
|
+
var graduateCmd = program.command("graduate").description("Automation tier graduation \u2014 migrate habits to hooks");
|
|
775
|
+
graduateCmd.command("status", { isDefault: true }).description("Show current automation tier of every habit").option("--json", "Output as JSON").action(async (options) => {
|
|
776
|
+
const { graduateStatusCommand } = await import("./graduate-USAWGBJM.js");
|
|
777
|
+
await graduateStatusCommand(options);
|
|
778
|
+
});
|
|
779
|
+
graduateCmd.command("promote <habitId>").description("Graduate a habit to hook tier (skip MCP evaluation)").action(async (habitId) => {
|
|
780
|
+
const { graduatePromoteCommand } = await import("./graduate-USAWGBJM.js");
|
|
781
|
+
await graduatePromoteCommand(habitId);
|
|
782
|
+
});
|
|
783
|
+
graduateCmd.command("demote <habitId>").description("Demote a habit from hook back to habit tier").option("--cooldown <days>", "Cooldown period in days before re-graduation", "14").action(async (habitId, options) => {
|
|
784
|
+
const { graduateDemoteCommand } = await import("./graduate-USAWGBJM.js");
|
|
785
|
+
await graduateDemoteCommand(habitId, options);
|
|
786
|
+
});
|
|
787
|
+
var personaCmd = program.command("persona").description("Personas \u2014 actor-driven journey testing");
|
|
788
|
+
personaCmd.command("list", { isDefault: true }).alias("ls").description("List all personas").option("--tag <tag>", "Filter by tag").option("--trigger <type>", "Filter by trigger type (root, invitation, signup, api)").option("--gate <gate>", "Filter by gate usage").option("--json", "Output as JSON").action(async (options) => {
|
|
789
|
+
const { personaListCommand } = await import("./persona-UHAHIVST.js");
|
|
790
|
+
await personaListCommand(options);
|
|
791
|
+
});
|
|
792
|
+
personaCmd.command("show <id>").description("Show full persona detail").option("--json", "Output as JSON").action(async (id, options) => {
|
|
793
|
+
const { personaShowCommand } = await import("./persona-UHAHIVST.js");
|
|
794
|
+
await personaShowCommand(id, options);
|
|
795
|
+
});
|
|
796
|
+
personaCmd.command("validate [id]").description("Validate persona schema and cross-references").option("--json", "Output as JSON").action(async (id, options) => {
|
|
797
|
+
const { personaValidateCommand } = await import("./persona-UHAHIVST.js");
|
|
798
|
+
await personaValidateCommand(id, options);
|
|
799
|
+
});
|
|
800
|
+
personaCmd.command("coverage").description("Coverage report \u2014 routes and gates with/without persona coverage").option("--json", "Output as JSON").action(async (options) => {
|
|
801
|
+
const { personaCoverageCommand } = await import("./persona-UHAHIVST.js");
|
|
802
|
+
await personaCoverageCommand(options);
|
|
803
|
+
});
|
|
804
|
+
personaCmd.command("run <id>").description("Execute persona journey against a running server").requiredOption("--base-url <url>", "Base URL (e.g. http://localhost:3000)").option("--dry-run", "Show steps without making HTTP requests").option("--json", "Output as JSON").action(async (id, options) => {
|
|
805
|
+
const { personaRunCommand } = await import("./persona-UHAHIVST.js");
|
|
806
|
+
await personaRunCommand(id, options);
|
|
807
|
+
});
|
|
808
|
+
personaCmd.command("affected <symbol>").description("Show which personas reference a given symbol (gate, flow, signal)").option("--json", "Output as JSON").action(async (symbol, options) => {
|
|
809
|
+
const { personaAffectedCommand } = await import("./persona-UHAHIVST.js");
|
|
810
|
+
await personaAffectedCommand(symbol, options);
|
|
811
|
+
});
|
|
812
|
+
personaCmd.command("delete <id>").description("Delete a persona").action(async (id) => {
|
|
813
|
+
const { personaDeleteCommand } = await import("./persona-UHAHIVST.js");
|
|
814
|
+
await personaDeleteCommand(id);
|
|
815
|
+
});
|
|
765
816
|
var sentinelCmd = program.command("sentinel").description("Sentinel \u2014 semantic error monitoring");
|
|
766
817
|
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) => {
|
|
767
|
-
const { sentinelCommand } = await import("./sentinel-
|
|
818
|
+
const { sentinelCommand } = await import("./sentinel-4XIG4STA.js");
|
|
768
819
|
await sentinelCommand(path2, options);
|
|
769
820
|
});
|
|
770
821
|
program.command("conductor").description("Launch Paradigm Conductor \u2014 multimodal mission control for Claude Code sessions").option("--build", "Force rebuild the native binary").option("-v, --verbose", "Show build output").action(async (options) => {
|
|
771
|
-
const { conductorCommand } = await import("./conductor-
|
|
822
|
+
const { conductorCommand } = await import("./conductor-PGPDVIVE.js");
|
|
772
823
|
await conductorCommand(options);
|
|
773
824
|
});
|
|
774
825
|
var universityCmd = program.command("university").description("Per-project university - knowledge base, quizzes, learning paths & PLSAT certification");
|
|
775
826
|
universityCmd.command("serve").description("Launch Paradigm University learning platform").option("-p, --port <port>", "Port to run on", "3839").option("--no-open", "Don't open browser automatically").action(async (options) => {
|
|
776
|
-
const { universityServeCommand } = await import("./serve-
|
|
827
|
+
const { universityServeCommand } = await import("./serve-KBSE36PL.js");
|
|
777
828
|
await universityServeCommand(void 0, options);
|
|
778
829
|
});
|
|
779
830
|
universityCmd.command("list").alias("ls").description("List university content").option("--type <type>", "Filter by type: note, policy, guide, runbook, quiz, path").option("--tag <tag>", "Filter by tag").option("--difficulty <level>", "Filter by difficulty: beginner, intermediate, advanced").option("--symbol <symbol>", "Filter by Paradigm symbol").option("-l, --limit <number>", "Number of entries", "20").option("--json", "Output as JSON").action(async (options) => {
|
|
780
|
-
const { universityListCommand } = await import("./list-
|
|
831
|
+
const { universityListCommand } = await import("./list-4YK7QKFF.js");
|
|
781
832
|
await universityListCommand(options);
|
|
782
833
|
});
|
|
783
834
|
universityCmd.command("add <type>").description("Create university content (note, policy, guide, runbook, quiz)").option("--title <title>", "Content title (required)").option("--body <text>", "Content body (markdown)").option("--tags <tags>", "Comma-separated tags").option("--symbols <symbols>", "Comma-separated Paradigm symbols").option("--difficulty <level>", "Difficulty: beginner, intermediate, advanced").option("--minutes <n>", "Estimated reading time in minutes").action(async (type, options) => {
|
|
784
|
-
const { universityAddCommand } = await import("./add-
|
|
835
|
+
const { universityAddCommand } = await import("./add-FZRKEGH4.js");
|
|
785
836
|
await universityAddCommand(type, options);
|
|
786
837
|
});
|
|
787
838
|
universityCmd.command("show <id>").description("Show a content item in full").option("--json", "Output as JSON").action(async (id, options) => {
|
|
788
|
-
const { universityShowCommand } = await import("./show-
|
|
839
|
+
const { universityShowCommand } = await import("./show-NQKYX6WQ.js");
|
|
789
840
|
await universityShowCommand(id, options);
|
|
790
841
|
});
|
|
791
842
|
universityCmd.command("quiz <id>").description("Take an interactive quiz in the terminal").action(async (id) => {
|
|
792
|
-
const { universityQuizCommand } = await import("./quiz-
|
|
843
|
+
const { universityQuizCommand } = await import("./quiz-M66SC7F7.js");
|
|
793
844
|
await universityQuizCommand(id);
|
|
794
845
|
});
|
|
795
846
|
universityCmd.command("status").description("Show university content overview and completion stats").option("--json", "Output as JSON").action(async (options) => {
|
|
796
|
-
const { universityStatusCommand } = await import("./status-
|
|
847
|
+
const { universityStatusCommand } = await import("./status-WGIAQODY.js");
|
|
797
848
|
await universityStatusCommand(options);
|
|
798
849
|
});
|
|
799
850
|
universityCmd.command("validate").description("Validate university content integrity").option("--deep", "Enable deep cross-reference checks against scan-index").option("--id <id>", "Validate a specific content item").option("--json", "Output as JSON").action(async (options) => {
|
|
800
|
-
const { universityValidateCommand } = await import("./validate-
|
|
851
|
+
const { universityValidateCommand } = await import("./validate-CNKEKO6A.js");
|
|
801
852
|
await universityValidateCommand(options);
|
|
802
853
|
});
|
|
803
854
|
universityCmd.option("-p, --port <port>", "Port to run on", "3839").option("--no-open", "Don't open browser automatically").action(async (options) => {
|
|
804
|
-
const { universityServeCommand } = await import("./serve-
|
|
855
|
+
const { universityServeCommand } = await import("./serve-KBSE36PL.js");
|
|
805
856
|
await universityServeCommand(void 0, options);
|
|
806
857
|
});
|
|
858
|
+
var docsCmd = program.command("docs").description("Auto-generated documentation from the symbol graph");
|
|
859
|
+
docsCmd.command("serve").description("Launch interactive docs viewer in browser").option("-p, --port <port>", "Port number (default: 3850)").option("--no-open", "Do not open browser automatically").action(async (options) => {
|
|
860
|
+
const { docsServeCommand } = await import("./docs-J2BTKRVU.js");
|
|
861
|
+
await docsServeCommand(options);
|
|
862
|
+
});
|
|
863
|
+
docsCmd.command("build").description("Build static documentation site").option("-o, --output <dir>", "Output directory (default: from config or .paradigm/docs-site)").action(async (options) => {
|
|
864
|
+
const { docsBuildCommand } = await import("./docs-J2BTKRVU.js");
|
|
865
|
+
await docsBuildCommand(options);
|
|
866
|
+
});
|
|
867
|
+
docsCmd.action(async () => {
|
|
868
|
+
const { docsServeCommand } = await import("./docs-J2BTKRVU.js");
|
|
869
|
+
await docsServeCommand({});
|
|
870
|
+
});
|
|
807
871
|
var pipelineCmd = program.command("pipeline").description("Spec pipeline \u2014 structured feature workflow with configurable gates");
|
|
808
872
|
pipelineCmd.command("start <description>").description("Create a new pipeline for a feature").option("--template <template>", "Pipeline template (add-feature, bug-fix, security-change, refactor)", "add-feature").option("--gates <gates>", "Custom gate modes: specify,plan,task,implement,validate").action(async (description, options) => {
|
|
809
|
-
const { pipelineStartCommand } = await import("./pipeline-
|
|
873
|
+
const { pipelineStartCommand } = await import("./pipeline-L4HCSBGN.js");
|
|
810
874
|
await pipelineStartCommand(description, options);
|
|
811
875
|
});
|
|
812
876
|
pipelineCmd.command("status [feature]").description("Show pipeline status").action(async (feature) => {
|
|
813
|
-
const { pipelineStatusCommand } = await import("./pipeline-
|
|
877
|
+
const { pipelineStatusCommand } = await import("./pipeline-L4HCSBGN.js");
|
|
814
878
|
await pipelineStatusCommand(feature);
|
|
815
879
|
});
|
|
816
880
|
pipelineCmd.command("advance <feature>").description("Advance pipeline past current gate").action(async (feature) => {
|
|
817
|
-
const { pipelineAdvanceCommand } = await import("./pipeline-
|
|
881
|
+
const { pipelineAdvanceCommand } = await import("./pipeline-L4HCSBGN.js");
|
|
818
882
|
await pipelineAdvanceCommand(feature);
|
|
819
883
|
});
|
|
820
884
|
pipelineCmd.command("configure <feature>").description("Change gate mode on active pipeline").requiredOption("--stage <stage>", "Stage to configure").requiredOption("--gate <gate>", "New gate mode (auto, manual, sentinel)").option("--reason <reason>", "Reason for change").action(async (feature, options) => {
|
|
821
|
-
const { pipelineConfigureCommand } = await import("./pipeline-
|
|
885
|
+
const { pipelineConfigureCommand } = await import("./pipeline-L4HCSBGN.js");
|
|
822
886
|
await pipelineConfigureCommand(feature, options);
|
|
823
887
|
});
|
|
824
888
|
pipelineCmd.command("abort <feature>").description("Cancel a pipeline").action(async (feature) => {
|
|
825
|
-
const { pipelineAbortCommand } = await import("./pipeline-
|
|
889
|
+
const { pipelineAbortCommand } = await import("./pipeline-L4HCSBGN.js");
|
|
826
890
|
await pipelineAbortCommand(feature);
|
|
827
891
|
});
|
|
828
892
|
pipelineCmd.command("list").description("List all active pipelines").action(async () => {
|
|
829
|
-
const { pipelineListCommand } = await import("./pipeline-
|
|
893
|
+
const { pipelineListCommand } = await import("./pipeline-L4HCSBGN.js");
|
|
830
894
|
await pipelineListCommand();
|
|
831
895
|
});
|
|
832
896
|
pipelineCmd.action(async () => {
|
|
833
|
-
const { pipelineListCommand } = await import("./pipeline-
|
|
897
|
+
const { pipelineListCommand } = await import("./pipeline-L4HCSBGN.js");
|
|
834
898
|
await pipelineListCommand();
|
|
835
899
|
});
|
|
836
900
|
var symphonyCmd = program.command("symphony").description("Symphony \u2014 agent-to-agent messaging for multi-session collaboration");
|
|
837
901
|
symphonyCmd.command("join").description("Join this session to the Symphony network").option("--remote <ip>", "Connect to remote Symphony server").action(async (options) => {
|
|
838
|
-
const { symphonyJoinCommand } = await import("./symphony-
|
|
902
|
+
const { symphonyJoinCommand } = await import("./symphony-4OCY36AI.js");
|
|
839
903
|
await symphonyJoinCommand(options);
|
|
840
904
|
});
|
|
841
905
|
symphonyCmd.command("leave").description("Remove this session from the Symphony network").action(async () => {
|
|
842
|
-
const { symphonyLeaveCommand } = await import("./symphony-
|
|
906
|
+
const { symphonyLeaveCommand } = await import("./symphony-4OCY36AI.js");
|
|
843
907
|
await symphonyLeaveCommand();
|
|
844
908
|
});
|
|
845
909
|
symphonyCmd.command("whoami").description("Show this agent's identity and linked peers").action(async () => {
|
|
846
|
-
const { symphonyWhoamiCommand } = await import("./symphony-
|
|
910
|
+
const { symphonyWhoamiCommand } = await import("./symphony-4OCY36AI.js");
|
|
847
911
|
await symphonyWhoamiCommand();
|
|
848
912
|
});
|
|
849
913
|
symphonyCmd.command("list").alias("ls").description("List all joined agents").option("--json", "Output as JSON").action(async (options) => {
|
|
850
|
-
const { symphonyListCommand } = await import("./symphony-
|
|
914
|
+
const { symphonyListCommand } = await import("./symphony-4OCY36AI.js");
|
|
851
915
|
await symphonyListCommand(options);
|
|
852
916
|
});
|
|
853
917
|
symphonyCmd.command("send <message>").description("Send a note to agents").option("--to <agent>", "Send to specific agent (omit for broadcast)").option("--thread <id>", "Reply to existing thread").action(async (message, options) => {
|
|
854
|
-
const { symphonySendCommand } = await import("./symphony-
|
|
918
|
+
const { symphonySendCommand } = await import("./symphony-4OCY36AI.js");
|
|
855
919
|
await symphonySendCommand(message, options);
|
|
856
920
|
});
|
|
857
921
|
symphonyCmd.command("read").description("Show unread notes").action(async () => {
|
|
858
|
-
const { symphonyReadCommand } = await import("./symphony-
|
|
922
|
+
const { symphonyReadCommand } = await import("./symphony-4OCY36AI.js");
|
|
859
923
|
await symphonyReadCommand();
|
|
860
924
|
});
|
|
861
925
|
symphonyCmd.command("inbox").description("Show unread notes (alias for read)").action(async () => {
|
|
862
|
-
const { symphonyReadCommand } = await import("./symphony-
|
|
926
|
+
const { symphonyReadCommand } = await import("./symphony-4OCY36AI.js");
|
|
863
927
|
await symphonyReadCommand();
|
|
864
928
|
});
|
|
865
929
|
symphonyCmd.command("threads").description("List all threads").option("--json", "Output as JSON").action(async (options) => {
|
|
866
|
-
const { symphonyThreadsCommand } = await import("./symphony-
|
|
930
|
+
const { symphonyThreadsCommand } = await import("./symphony-4OCY36AI.js");
|
|
867
931
|
await symphonyThreadsCommand(options);
|
|
868
932
|
});
|
|
869
933
|
symphonyCmd.command("thread <id>").description("Show full thread conversation").action(async (id) => {
|
|
870
|
-
const { symphonyThreadCommand } = await import("./symphony-
|
|
934
|
+
const { symphonyThreadCommand } = await import("./symphony-4OCY36AI.js");
|
|
871
935
|
await symphonyThreadCommand(id);
|
|
872
936
|
});
|
|
873
937
|
symphonyCmd.command("resolve <id>").description("Mark a thread as resolved").option("--decision <text>", "Decision text to record").action(async (id, options) => {
|
|
874
|
-
const { symphonyResolveCommand } = await import("./symphony-
|
|
938
|
+
const { symphonyResolveCommand } = await import("./symphony-4OCY36AI.js");
|
|
875
939
|
await symphonyResolveCommand(id, options);
|
|
876
940
|
});
|
|
877
941
|
symphonyCmd.command("status").description("Show Symphony network status").option("--json", "Output as JSON").action(async (options) => {
|
|
878
|
-
const { symphonyStatusCommand } = await import("./symphony-
|
|
942
|
+
const { symphonyStatusCommand } = await import("./symphony-4OCY36AI.js");
|
|
879
943
|
await symphonyStatusCommand(options);
|
|
880
944
|
});
|
|
881
945
|
symphonyCmd.command("serve").description("Start Symphony relay server for cross-machine networking").option("--port <port>", "Port to listen on", "3939").option("--public", "Show connection string for internet access").action(async (options) => {
|
|
882
|
-
const { symphonyServeCommand } = await import("./symphony-
|
|
946
|
+
const { symphonyServeCommand } = await import("./symphony-4OCY36AI.js");
|
|
883
947
|
await symphonyServeCommand(options);
|
|
884
948
|
});
|
|
885
949
|
var peersCmd = symphonyCmd.command("peers").description("Manage trusted remote peers");
|
|
886
950
|
peersCmd.command("list", { isDefault: true }).description("List trusted peers and their agents").option("--json", "Output as JSON").action(async (options) => {
|
|
887
|
-
const { symphonyPeersCommand } = await import("./peers-
|
|
951
|
+
const { symphonyPeersCommand } = await import("./peers-DEOUIZM6.js");
|
|
888
952
|
await symphonyPeersCommand(options);
|
|
889
953
|
});
|
|
890
954
|
peersCmd.command("revoke <id>").description("Revoke trust for a peer (disconnects immediately)").action(async (id) => {
|
|
891
|
-
const { symphonyPeersRevokeCommand } = await import("./peers-
|
|
955
|
+
const { symphonyPeersRevokeCommand } = await import("./peers-DEOUIZM6.js");
|
|
892
956
|
await symphonyPeersRevokeCommand(id);
|
|
893
957
|
});
|
|
894
958
|
peersCmd.command("forget").description("Clear all peer trust records").option("--force", "Skip confirmation").action(async (options) => {
|
|
895
|
-
const { symphonyPeersForgetCommand } = await import("./peers-
|
|
959
|
+
const { symphonyPeersForgetCommand } = await import("./peers-DEOUIZM6.js");
|
|
896
960
|
await symphonyPeersForgetCommand(options);
|
|
897
961
|
});
|
|
898
962
|
peersCmd.action(async () => {
|
|
899
|
-
const { symphonyPeersCommand } = await import("./peers-
|
|
963
|
+
const { symphonyPeersCommand } = await import("./peers-DEOUIZM6.js");
|
|
900
964
|
await symphonyPeersCommand({});
|
|
901
965
|
});
|
|
902
966
|
symphonyCmd.command("request <file>").description("Request a file from another agent").option("--from <agent>", "Agent to request from").option("--reason <text>", "Why this file is needed").action(async (file, options) => {
|
|
903
|
-
const { symphonyRequestCommand } = await import("./symphony-
|
|
967
|
+
const { symphonyRequestCommand } = await import("./symphony-4OCY36AI.js");
|
|
904
968
|
await symphonyRequestCommand(file, options);
|
|
905
969
|
});
|
|
906
970
|
symphonyCmd.command("requests").description("List pending file requests").action(async () => {
|
|
907
|
-
const { symphonyRequestsCommand } = await import("./symphony-
|
|
971
|
+
const { symphonyRequestsCommand } = await import("./symphony-4OCY36AI.js");
|
|
908
972
|
await symphonyRequestsCommand();
|
|
909
973
|
});
|
|
910
974
|
symphonyCmd.command("approve <id>").description("Approve a file request").option("--redact", "Strip sensitive lines before sending").action(async (id, options) => {
|
|
911
|
-
const { symphonyApproveCommand } = await import("./symphony-
|
|
975
|
+
const { symphonyApproveCommand } = await import("./symphony-4OCY36AI.js");
|
|
912
976
|
await symphonyApproveCommand(id, options);
|
|
913
977
|
});
|
|
914
978
|
symphonyCmd.command("deny <id>").description("Deny a file request").option("--reason <text>", "Reason for denial").action(async (id, options) => {
|
|
915
|
-
const { symphonyDenyCommand } = await import("./symphony-
|
|
979
|
+
const { symphonyDenyCommand } = await import("./symphony-4OCY36AI.js");
|
|
916
980
|
await symphonyDenyCommand(id, options);
|
|
917
981
|
});
|
|
918
982
|
symphonyCmd.command("watch").description("Watch inbox in real-time \u2014 zero AI tokens, pure file monitoring").option("--interval <ms>", "Poll interval in milliseconds (default: 2000)").option("--thread <id>", "Only show messages from this thread").option("--quiet", "Minimal output \u2014 messages only, no header").action(async (options) => {
|
|
919
|
-
const { symphonyWatchCommand } = await import("./symphony-
|
|
983
|
+
const { symphonyWatchCommand } = await import("./symphony-4OCY36AI.js");
|
|
920
984
|
await symphonyWatchCommand(options);
|
|
921
985
|
});
|
|
922
986
|
symphonyCmd.action(async () => {
|
|
923
|
-
const { symphonyStatusCommand } = await import("./symphony-
|
|
987
|
+
const { symphonyStatusCommand } = await import("./symphony-4OCY36AI.js");
|
|
924
988
|
await symphonyStatusCommand({});
|
|
925
989
|
});
|
|
990
|
+
var notebookCmd = program.command("notebook").description("Agent notebook management \u2014 curated snippet libraries");
|
|
991
|
+
notebookCmd.command("list").alias("ls").description("List notebook entries").option("--agent <id>", "Filter by agent ID").option("--json", "Output as JSON").action(async (options) => {
|
|
992
|
+
const { notebookListCommand } = await import("./notebook-YWIYGEHV.js");
|
|
993
|
+
await notebookListCommand(options);
|
|
994
|
+
});
|
|
995
|
+
notebookCmd.command("show <id>").description("Show a specific notebook entry").option("--agent <id>", "Agent ID").option("--json", "Output as JSON").action(async (id, options) => {
|
|
996
|
+
const { notebookShowCommand } = await import("./notebook-YWIYGEHV.js");
|
|
997
|
+
await notebookShowCommand(id, options);
|
|
998
|
+
});
|
|
999
|
+
notebookCmd.command("export").description("Export notebook entries").option("--agent <id>", "Filter by agent ID").option("--format <format>", "Output format: yaml or json (default: yaml)").action(async (options) => {
|
|
1000
|
+
const { notebookExportCommand } = await import("./notebook-YWIYGEHV.js");
|
|
1001
|
+
await notebookExportCommand(options);
|
|
1002
|
+
});
|
|
1003
|
+
notebookCmd.action(async () => {
|
|
1004
|
+
const { notebookListCommand } = await import("./notebook-YWIYGEHV.js");
|
|
1005
|
+
await notebookListCommand({});
|
|
1006
|
+
});
|
|
1007
|
+
var agentCmd = program.command("agent").description("Agent identity management \u2014 persistent profiles with expertise tracking");
|
|
1008
|
+
agentCmd.command("list").alias("ls").description("List all agent identity profiles").option("--json", "Output as JSON").option("--global", "Show only global profiles").option("--project", "Show only project-level profiles").action(async (options) => {
|
|
1009
|
+
const { agentListCommand } = await import("./agent-WERIO2XV.js");
|
|
1010
|
+
await agentListCommand(options);
|
|
1011
|
+
});
|
|
1012
|
+
agentCmd.command("show <id>").description("Show full agent profile with expertise table").option("--json", "Output as JSON").action(async (id, options) => {
|
|
1013
|
+
const { agentShowCommand } = await import("./agent-WERIO2XV.js");
|
|
1014
|
+
await agentShowCommand(id, options);
|
|
1015
|
+
});
|
|
1016
|
+
agentCmd.command("create <id>").description("Create a new .agent identity file").option("-r, --role <role>", "Agent role description").option("-d, --description <desc>", "Extended description").option("-g, --global", "Create in global ~/.paradigm/agents/ (default)").option("--deny-paths <patterns>", 'Comma-separated glob patterns to deny (e.g., ".env*,*.key")').action(async (id, options) => {
|
|
1017
|
+
const { agentCreateCommand } = await import("./agent-WERIO2XV.js");
|
|
1018
|
+
await agentCreateCommand(id, { ...options, global: options.global !== false });
|
|
1019
|
+
});
|
|
1020
|
+
agentCmd.command("sync <id>").description("Bootstrap expertise from existing project lore").option("-n, --dry-run", "Show what would change without writing").option("--json", "Output as JSON").action(async (id, options) => {
|
|
1021
|
+
const { agentSyncCommand } = await import("./agent-WERIO2XV.js");
|
|
1022
|
+
await agentSyncCommand(id, options);
|
|
1023
|
+
});
|
|
1024
|
+
agentCmd.command("roster").description("Show agent roster with active/benched status").option("--json", "Output as JSON").action(async (options) => {
|
|
1025
|
+
const { agentRosterCommand } = await import("./agent-WERIO2XV.js");
|
|
1026
|
+
await agentRosterCommand(options);
|
|
1027
|
+
});
|
|
1028
|
+
agentCmd.command("bench <id>").description("Bench an agent \u2014 Maestro will skip it during orchestration").action(async (id) => {
|
|
1029
|
+
const { agentBenchCommand } = await import("./agent-WERIO2XV.js");
|
|
1030
|
+
await agentBenchCommand(id);
|
|
1031
|
+
});
|
|
1032
|
+
agentCmd.command("activate <id>").description("Activate a benched agent \u2014 restore to Maestro orchestration").action(async (id) => {
|
|
1033
|
+
const { agentActivateCommand } = await import("./agent-WERIO2XV.js");
|
|
1034
|
+
await agentActivateCommand(id);
|
|
1035
|
+
});
|
|
1036
|
+
agentCmd.action(async () => {
|
|
1037
|
+
const { agentListCommand } = await import("./agent-WERIO2XV.js");
|
|
1038
|
+
await agentListCommand({});
|
|
1039
|
+
});
|
|
926
1040
|
program.parse();
|