@a-company/paradigm 3.23.3 → 3.24.1
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-ORQRKKGR.js → accept-orchestration-AAYFKS74.js} +5 -5
- package/dist/chunk-4UC6AQOC.js +631 -0
- package/dist/{chunk-YOFP72IB.js → chunk-6EQRU7WC.js} +4 -4
- package/dist/{chunk-Z42FOOVT.js → chunk-GC6X3YM7.js} +6 -6
- package/dist/{chunk-C3BK3E23.js → chunk-OXG5GVDJ.js} +1 -1
- package/dist/{chunk-XKAFTZOZ.js → chunk-VHSTF72C.js} +1 -1
- package/dist/{chunk-UI3XXVJ6.js → chunk-W4VFKZVF.js} +58 -1
- package/dist/{chunk-K34C7NAN.js → chunk-XKI55IFI.js} +2 -2
- package/dist/{graph-5VSRBRKZ.js → chunk-Z7W7HNRG.js} +2 -1
- package/dist/context-audit-RI4R2WRH.js +549 -0
- package/dist/{diff-4XJZN4OB.js → diff-QC7PWIPF.js} +5 -5
- package/dist/{doctor-FINKMI66.js → doctor-RVODPMHJ.js} +1 -1
- package/dist/graph-ERNQQQ7C.js +12 -0
- package/dist/index.js +64 -30
- package/dist/mcp.js +841 -17
- package/dist/{orchestrate-6XGEA655.js → orchestrate-NNNWNELP.js} +8 -8
- package/dist/pipeline-3G2FRAKM.js +263 -0
- package/dist/{probe-T77FFIAG.js → probe-SN4BNXOC.js} +2 -1
- package/dist/{providers-VIBWDN5D.js → providers-NKGY36QF.js} +1 -1
- package/dist/{shift-SW3GSODO.js → shift-R6TQ6MBP.js} +15 -14
- package/dist/{spawn-JSV2HST3.js → spawn-52PASJJL.js} +3 -3
- package/dist/sweep-5POCF2E4.js +934 -0
- package/dist/{team-YIYA4ZLX.js → team-JZHIH7H5.js} +6 -6
- package/dist/university-content/courses/.purpose +307 -0
- package/dist/university-content/plsat/.purpose +131 -0
- package/dist/university-ui/assets/{index-BV7lKIqO.js → index-BPzqnvrg.js} +2 -2
- package/dist/university-ui/assets/{index-BV7lKIqO.js.map → index-BPzqnvrg.js.map} +1 -1
- package/dist/university-ui/index.html +1 -1
- package/dist/{workspace-S5Q5LVA6.js → workspace-L27RR5MF.js} +3 -2
- package/package.json +1 -1
- package/dist/chunk-ZMN3RAIT.js +0 -564
- package/dist/{chunk-XNUWLW73.js → chunk-7WTOOH23.js} +0 -0
- package/dist/{flow-UFMPVOEM.js → flow-KZKMMXJC.js} +1 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
BackgroundOrchestrator
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-GC6X3YM7.js";
|
|
5
5
|
import "./chunk-6QC3YGB6.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-XNUWLW73.js";
|
|
8
|
-
import "./chunk-PMXRGPRQ.js";
|
|
6
|
+
import "./chunk-6EQRU7WC.js";
|
|
9
7
|
import "./chunk-PBHIFAL4.js";
|
|
8
|
+
import "./chunk-7WTOOH23.js";
|
|
9
|
+
import "./chunk-PMXRGPRQ.js";
|
|
10
|
+
import "./chunk-5JGJACDU.js";
|
|
10
11
|
import "./chunk-6P4IFIK2.js";
|
|
11
12
|
import "./chunk-MRENOFTR.js";
|
|
12
13
|
import "./chunk-IRKUEJVW.js";
|
|
13
14
|
import "./chunk-MW5DMGBB.js";
|
|
14
|
-
import "./chunk-5JGJACDU.js";
|
|
15
15
|
import "./chunk-ZXMDA7VB.js";
|
|
16
16
|
|
|
17
17
|
// src/commands/team/diff.ts
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
initCommand
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-XKI55IFI.js";
|
|
5
5
|
import "./chunk-CHSHON3O.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-W4VFKZVF.js";
|
|
7
7
|
import "./chunk-AK5M6KJB.js";
|
|
8
8
|
import {
|
|
9
9
|
aggregateFromDirectory,
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
import {
|
|
17
17
|
findGateFiles
|
|
18
18
|
} from "./chunk-IRKUEJVW.js";
|
|
19
|
+
import "./chunk-Z7W7HNRG.js";
|
|
19
20
|
import "./chunk-KB4XJWE3.js";
|
|
20
21
|
import "./chunk-YO6DVTL7.js";
|
|
21
22
|
import {
|
|
@@ -110,7 +111,7 @@ ${chalk2.magenta("\u2569 ")}${chalk2.cyan("\u2534 \u2534\u2534\u2514\u2500\u253
|
|
|
110
111
|
program.name("paradigm").description("Unified developer tools ecosystem").version(VERSION).addHelpText("before", banner);
|
|
111
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("--migrate", "Output migration prompt for existing IDE files").option("--quick", "Non-interactive mode with smart defaults").option("--dry-run", "Show what would be created without creating").action(initCommand);
|
|
112
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("--workspace <name>", "Create or join a multi-project workspace with this name (creates ../.paradigm-workspace)").option("--workspace-path <path>", "Custom workspace file location (default: ../.paradigm-workspace)").action(async (options) => {
|
|
113
|
-
const { shiftCommand } = await import("./shift-
|
|
114
|
+
const { shiftCommand } = await import("./shift-R6TQ6MBP.js");
|
|
114
115
|
await shiftCommand(options);
|
|
115
116
|
});
|
|
116
117
|
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) => {
|
|
@@ -175,12 +176,12 @@ program.command("cursorrules [path]").description("[DEPRECATED] Use `paradigm sy
|
|
|
175
176
|
await cursorrrulesCommand(path2, options);
|
|
176
177
|
});
|
|
177
178
|
program.command("index [path]").description("Generate probe index for visual discovery").option("-o, --output <path>", "Output path for probe-index.json").option("-q, --quiet", "Suppress output").action(async (path2, options) => {
|
|
178
|
-
const { indexCommand } = await import("./probe-
|
|
179
|
+
const { indexCommand } = await import("./probe-SN4BNXOC.js");
|
|
179
180
|
await indexCommand(path2, options);
|
|
180
181
|
});
|
|
181
182
|
var probeCmd = program.command("probe").description("Probe-related commands");
|
|
182
183
|
probeCmd.command("index [path]").description("Generate probe index (alias for `paradigm index`)").option("-o, --output <path>", "Output path for probe-index.json").option("-q, --quiet", "Suppress output").action(async (path2, options) => {
|
|
183
|
-
const { indexCommand } = await import("./probe-
|
|
184
|
+
const { indexCommand } = await import("./probe-SN4BNXOC.js");
|
|
184
185
|
await indexCommand(path2, options);
|
|
185
186
|
});
|
|
186
187
|
program.command("upgrade [path]").description("Upgrade project with new Paradigm features").option("--features <features...>", "Features to upgrade (probe, logger)").option("--all", "Apply all available upgrades").option("--from-horizon", "Migrate from Horizon to Paradigm").option("--dry-run", "Show what would be upgraded without making changes").option("-f, --force", "Force re-upgrade even if already configured").action(async (path2, options) => {
|
|
@@ -208,7 +209,7 @@ scanCmd.action(() => {
|
|
|
208
209
|
});
|
|
209
210
|
var flowCmd = program.command("flow").description("Flow management commands");
|
|
210
211
|
flowCmd.command("diagram <flowId>").description("Generate Mermaid diagram for a flow").option("-o, --output <path>", "Output file path").action(async (flowId, options) => {
|
|
211
|
-
const { flowDiagramCommand } = await import("./flow-
|
|
212
|
+
const { flowDiagramCommand } = await import("./flow-KZKMMXJC.js");
|
|
212
213
|
await flowDiagramCommand(flowId, options);
|
|
213
214
|
});
|
|
214
215
|
flowCmd.action(() => {
|
|
@@ -216,7 +217,7 @@ flowCmd.action(() => {
|
|
|
216
217
|
});
|
|
217
218
|
var teamCmd = program.command("team").description("Multi-agent orchestration commands");
|
|
218
219
|
teamCmd.command("init [path]").description("Initialize team configuration with default agents").option("-f, --force", "Overwrite existing configuration").option("--configure-models", "Force model configuration prompts").option("--no-configure-models", "Skip model configuration").option("--json", "Output as JSON").action(async (path2, options) => {
|
|
219
|
-
const { teamInitCommand } = await import("./team-
|
|
220
|
+
const { teamInitCommand } = await import("./team-JZHIH7H5.js");
|
|
220
221
|
await teamInitCommand(path2, {
|
|
221
222
|
...options,
|
|
222
223
|
configureModels: options.configureModels,
|
|
@@ -224,47 +225,47 @@ teamCmd.command("init [path]").description("Initialize team configuration with d
|
|
|
224
225
|
});
|
|
225
226
|
});
|
|
226
227
|
teamCmd.command("status [path]").description("Show current team status").option("--running", "Show only running orchestrations").option("--id <id>", "Show specific orchestration").option("--json", "Output as JSON").action(async (path2, options) => {
|
|
227
|
-
const { teamStatusCommand } = await import("./team-
|
|
228
|
+
const { teamStatusCommand } = await import("./team-JZHIH7H5.js");
|
|
228
229
|
await teamStatusCommand(path2, options);
|
|
229
230
|
});
|
|
230
231
|
teamCmd.command("handoff [path]").description("Hand off current task to another agent").requiredOption("-t, --to <agent>", "Target agent name").option("-s, --summary <text>", "Summary of what was done").option("--json", "Output as JSON").action(async (path2, options) => {
|
|
231
|
-
const { teamHandoffCommand } = await import("./team-
|
|
232
|
+
const { teamHandoffCommand } = await import("./team-JZHIH7H5.js");
|
|
232
233
|
await teamHandoffCommand(path2, options);
|
|
233
234
|
});
|
|
234
235
|
teamCmd.command("accept [handoff-id] [path]").description("Accept a pending handoff").option("-n, --note <text>", "Acceptance note").option("--json", "Output as JSON").action(async (handoffId, path2, options) => {
|
|
235
|
-
const { teamAcceptCommand } = await import("./team-
|
|
236
|
+
const { teamAcceptCommand } = await import("./team-JZHIH7H5.js");
|
|
236
237
|
await teamAcceptCommand(handoffId, path2, options);
|
|
237
238
|
});
|
|
238
239
|
teamCmd.command("check [path]").description("Check for conflicts and team health issues").option("--json", "Output as JSON").action(async (path2, options) => {
|
|
239
|
-
const { teamCheckCommand } = await import("./team-
|
|
240
|
+
const { teamCheckCommand } = await import("./team-JZHIH7H5.js");
|
|
240
241
|
await teamCheckCommand(path2, options);
|
|
241
242
|
});
|
|
242
243
|
teamCmd.command("history [path]").description("Show full activity log").option("-l, --limit <number>", "Number of entries to show", "50").option("--json", "Output as JSON").action(async (path2, options) => {
|
|
243
|
-
const { teamHistoryCommand } = await import("./team-
|
|
244
|
+
const { teamHistoryCommand } = await import("./team-JZHIH7H5.js");
|
|
244
245
|
await teamHistoryCommand(path2, { ...options, limit: parseInt(options.limit) });
|
|
245
246
|
});
|
|
246
247
|
teamCmd.command("reset [path]").description("Reset team state for fresh start").option("-f, --force", "Force reset even with pending work").option("--json", "Output as JSON").action(async (path2, options) => {
|
|
247
|
-
const { teamResetCommand } = await import("./team-
|
|
248
|
+
const { teamResetCommand } = await import("./team-JZHIH7H5.js");
|
|
248
249
|
await teamResetCommand(path2, options);
|
|
249
250
|
});
|
|
250
251
|
teamCmd.command("spawn <agent> [path]").description("Spawn an AI agent to work on a task").requiredOption("-t, --task <task>", "Task for the agent to perform").option("-m, --model <model>", "Model to use: opus, sonnet, haiku").option("-p, --provider <provider>", "Provider: auto, claude, claude-code, claude-cli, manual").option("--budget <budget>", 'Budget limits (e.g., "tokens=100000,cost=2")').option("--timeout <ms>", "Timeout in milliseconds").option("--checkpoint", "Pause for approval before writes/deletes").option("-q, --quiet", "Suppress output").option("--json", "Output as JSON").action(async (agent, path2, options) => {
|
|
251
|
-
const { teamSpawnCommand } = await import("./spawn-
|
|
252
|
+
const { teamSpawnCommand } = await import("./spawn-52PASJJL.js");
|
|
252
253
|
await teamSpawnCommand(agent, path2, options);
|
|
253
254
|
});
|
|
254
255
|
teamCmd.command("orchestrate <task> [path]").description("Orchestrate a multi-agent task").option("--solo", "Run in solo mode (single Claude)").option("--faceted", "Run in faceted mode (multi-agent, default)").option("--compare", "Run both modes and compare results").option("--background", "Run in background mode (returns immediately)").option("--notify <methods>", "Notification methods: bell,desktop,file,webhook (default: bell)").option("-m, --model <model>", "Orchestrator model: opus, sonnet, haiku").option("-p, --provider <provider>", "Provider: auto, claude, claude-code, claude-cli, manual").option("--budget <budget>", 'Budget limits (e.g., "tokens=500000,cost=5")').option("--checkpoint", "Pause for approval between agents").option("--live", "Stream agent output live").option("--pm", "Enable PM governance (compliance checks before/after)").option("-q, --quiet", "Suppress output").option("--json", "Output as JSON").action(async (task, path2, options) => {
|
|
255
|
-
const { teamOrchestrateCommand } = await import("./orchestrate-
|
|
256
|
+
const { teamOrchestrateCommand } = await import("./orchestrate-NNNWNELP.js");
|
|
256
257
|
await teamOrchestrateCommand(task, path2, options);
|
|
257
258
|
});
|
|
258
259
|
teamCmd.command("diff <orchestration-id> [path]").description("Show diff of changes from a completed orchestration").option("--full", "Show full file contents").option("--json", "Output as JSON").action(async (orchestrationId, path2, options) => {
|
|
259
|
-
const { teamDiffCommand } = await import("./diff-
|
|
260
|
+
const { teamDiffCommand } = await import("./diff-QC7PWIPF.js");
|
|
260
261
|
await teamDiffCommand(orchestrationId, path2, options);
|
|
261
262
|
});
|
|
262
263
|
teamCmd.command("accept-orch <orchestration-id> [path]").description("Accept orchestration changes").option("-n, --note <text>", "Acceptance note").option("--json", "Output as JSON").action(async (orchestrationId, path2, options) => {
|
|
263
|
-
const { teamAcceptOrchestrationCommand } = await import("./accept-orchestration-
|
|
264
|
+
const { teamAcceptOrchestrationCommand } = await import("./accept-orchestration-AAYFKS74.js");
|
|
264
265
|
await teamAcceptOrchestrationCommand(orchestrationId, path2, options);
|
|
265
266
|
});
|
|
266
267
|
teamCmd.command("reject-orch <orchestration-id> [path]").description("Reject orchestration changes").option("-r, --reason <text>", "Rejection reason").option("--cleanup", "Delete created files").option("--json", "Output as JSON").action(async (orchestrationId, path2, options) => {
|
|
267
|
-
const { teamRejectOrchestrationCommand } = await import("./accept-orchestration-
|
|
268
|
+
const { teamRejectOrchestrationCommand } = await import("./accept-orchestration-AAYFKS74.js");
|
|
268
269
|
await teamRejectOrchestrationCommand(orchestrationId, path2, options);
|
|
269
270
|
});
|
|
270
271
|
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) => {
|
|
@@ -276,11 +277,11 @@ teamCmd.command("export [path]").description("Export orchestration data").option
|
|
|
276
277
|
await teamExportCommand(path2, options);
|
|
277
278
|
});
|
|
278
279
|
teamCmd.command("providers [path]").description("Show available agent providers and their status").option("--set <provider>", "Set preferred provider: auto, claude, claude-code, claude-cli, manual").option("--json", "Output as JSON").action(async (path2, options) => {
|
|
279
|
-
const { teamProvidersCommand } = await import("./providers-
|
|
280
|
+
const { teamProvidersCommand } = await import("./providers-NKGY36QF.js");
|
|
280
281
|
await teamProvidersCommand(path2, options);
|
|
281
282
|
});
|
|
282
283
|
teamCmd.command("models [path]").description("Configure or view agent model assignments").option("--refresh", "Refresh model cache from environment").option("--json", "Output as JSON").action(async (path2, options) => {
|
|
283
|
-
const { teamModelsCommand } = await import("./team-
|
|
284
|
+
const { teamModelsCommand } = await import("./team-JZHIH7H5.js");
|
|
284
285
|
await teamModelsCommand(path2, options);
|
|
285
286
|
});
|
|
286
287
|
var agentsCmd = teamCmd.command("agents").description("Agent management commands");
|
|
@@ -295,7 +296,7 @@ agentsCmd.action(() => {
|
|
|
295
296
|
console.log("\nRun `paradigm team agents suggest --help` for options.\n");
|
|
296
297
|
});
|
|
297
298
|
teamCmd.action(async () => {
|
|
298
|
-
const { teamStatusCommand } = await import("./team-
|
|
299
|
+
const { teamStatusCommand } = await import("./team-JZHIH7H5.js");
|
|
299
300
|
await teamStatusCommand(void 0, {});
|
|
300
301
|
});
|
|
301
302
|
var pluginCmd = program.command("plugin").description("Plugin management commands");
|
|
@@ -309,24 +310,28 @@ pluginCmd.action(async () => {
|
|
|
309
310
|
});
|
|
310
311
|
var workspaceCmd = program.command("workspace").description("Multi-project workspace commands");
|
|
311
312
|
workspaceCmd.command("init").description("Create a .paradigm-workspace file from sibling projects").option("-n, --name <name>", "Workspace name (default: directory name)").option("-f, --force", "Overwrite existing workspace file").action(async (options) => {
|
|
312
|
-
const { workspaceInitCommand } = await import("./workspace-
|
|
313
|
+
const { workspaceInitCommand } = await import("./workspace-L27RR5MF.js");
|
|
313
314
|
await workspaceInitCommand(options);
|
|
314
315
|
});
|
|
315
316
|
workspaceCmd.command("status").description("Show workspace member status and symbol counts").option("--json", "Output as JSON").action(async (options) => {
|
|
316
|
-
const { workspaceStatusCommand } = await import("./workspace-
|
|
317
|
+
const { workspaceStatusCommand } = await import("./workspace-L27RR5MF.js");
|
|
317
318
|
await workspaceStatusCommand(options);
|
|
318
319
|
});
|
|
319
320
|
workspaceCmd.command("reindex").description("Rebuild scan-index.json for all workspace members").option("-q, --quiet", "Suppress progress output").action(async (options) => {
|
|
320
|
-
const { workspaceReindexCommand } = await import("./workspace-
|
|
321
|
+
const { workspaceReindexCommand } = await import("./workspace-L27RR5MF.js");
|
|
321
322
|
await workspaceReindexCommand(options);
|
|
322
323
|
});
|
|
323
324
|
workspaceCmd.action(async () => {
|
|
324
|
-
const { workspaceStatusCommand } = await import("./workspace-
|
|
325
|
+
const { workspaceStatusCommand } = await import("./workspace-L27RR5MF.js");
|
|
325
326
|
await workspaceStatusCommand({});
|
|
326
327
|
});
|
|
327
|
-
program.command("doctor").description("Health check - validate Paradigm setup").action(async () => {
|
|
328
|
-
const { doctorCommand } = await import("./doctor-
|
|
329
|
-
await doctorCommand();
|
|
328
|
+
program.command("doctor").description("Health check - validate Paradigm setup").option("--context", "Run only context audit checks (CLAUDE.md quality)").action(async (options) => {
|
|
329
|
+
const { doctorCommand } = await import("./doctor-RVODPMHJ.js");
|
|
330
|
+
await doctorCommand(options);
|
|
331
|
+
});
|
|
332
|
+
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) => {
|
|
333
|
+
const { sweepCommand } = await import("./sweep-5POCF2E4.js");
|
|
334
|
+
await sweepCommand(options);
|
|
330
335
|
});
|
|
331
336
|
var driftCmd = program.command("drift").description("Aspect anchor drift detection");
|
|
332
337
|
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) => {
|
|
@@ -661,11 +666,11 @@ loreCmd.option("-p, --port <port>", "Port to run on", "3840").option("--no-open"
|
|
|
661
666
|
await loreServeCommand(void 0, options);
|
|
662
667
|
});
|
|
663
668
|
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) => {
|
|
664
|
-
const { graphCommand } = await import("./graph-
|
|
669
|
+
const { graphCommand } = await import("./graph-ERNQQQ7C.js");
|
|
665
670
|
await graphCommand(path2, options);
|
|
666
671
|
});
|
|
667
672
|
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) => {
|
|
668
|
-
const { graphGenerateCommand } = await import("./graph-
|
|
673
|
+
const { graphGenerateCommand } = await import("./graph-ERNQQQ7C.js");
|
|
669
674
|
await graphGenerateCommand(name, path2, options);
|
|
670
675
|
});
|
|
671
676
|
var habitsCmd = program.command("habits").description("Behavioral habits - practice tracking and compliance");
|
|
@@ -718,4 +723,33 @@ program.command("university").description("Launch Paradigm University - interact
|
|
|
718
723
|
const { universityCommand } = await import("./university-A66BMZ4Z.js");
|
|
719
724
|
await universityCommand(void 0, options);
|
|
720
725
|
});
|
|
726
|
+
var pipelineCmd = program.command("pipeline").description("Spec pipeline \u2014 structured feature workflow with configurable gates");
|
|
727
|
+
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) => {
|
|
728
|
+
const { pipelineStartCommand } = await import("./pipeline-3G2FRAKM.js");
|
|
729
|
+
await pipelineStartCommand(description, options);
|
|
730
|
+
});
|
|
731
|
+
pipelineCmd.command("status [feature]").description("Show pipeline status").action(async (feature) => {
|
|
732
|
+
const { pipelineStatusCommand } = await import("./pipeline-3G2FRAKM.js");
|
|
733
|
+
await pipelineStatusCommand(feature);
|
|
734
|
+
});
|
|
735
|
+
pipelineCmd.command("advance <feature>").description("Advance pipeline past current gate").action(async (feature) => {
|
|
736
|
+
const { pipelineAdvanceCommand } = await import("./pipeline-3G2FRAKM.js");
|
|
737
|
+
await pipelineAdvanceCommand(feature);
|
|
738
|
+
});
|
|
739
|
+
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) => {
|
|
740
|
+
const { pipelineConfigureCommand } = await import("./pipeline-3G2FRAKM.js");
|
|
741
|
+
await pipelineConfigureCommand(feature, options);
|
|
742
|
+
});
|
|
743
|
+
pipelineCmd.command("abort <feature>").description("Cancel a pipeline").action(async (feature) => {
|
|
744
|
+
const { pipelineAbortCommand } = await import("./pipeline-3G2FRAKM.js");
|
|
745
|
+
await pipelineAbortCommand(feature);
|
|
746
|
+
});
|
|
747
|
+
pipelineCmd.command("list").description("List all active pipelines").action(async () => {
|
|
748
|
+
const { pipelineListCommand } = await import("./pipeline-3G2FRAKM.js");
|
|
749
|
+
await pipelineListCommand();
|
|
750
|
+
});
|
|
751
|
+
pipelineCmd.action(async () => {
|
|
752
|
+
const { pipelineListCommand } = await import("./pipeline-3G2FRAKM.js");
|
|
753
|
+
await pipelineListCommand();
|
|
754
|
+
});
|
|
721
755
|
program.parse();
|