@a-company/paradigm 5.9.0 → 5.10.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-GX2YRWM4.js → accept-orchestration-UQLM7PTQ.js} +4 -4
- package/dist/{agent-loader-X7TDYLFL.js → agent-loader-TFIANSF4.js} +1 -1
- package/dist/agent-state-S5DAWPTF.js +24 -0
- package/dist/{chunk-3UCH56D5.js → chunk-4BLYIB7J.js} +270 -928
- package/dist/chunk-4L3UTYQX.js +677 -0
- package/dist/chunk-54LTTQBH.js +138 -0
- package/dist/chunk-5OUOLN6M.js +659 -0
- package/dist/{chunk-SDDCVUCV.js → chunk-CL7JSK52.js} +23 -0
- package/dist/{chunk-MA7G4CTI.js → chunk-RJE5G7WO.js} +27 -1
- package/dist/{chunk-EI32ZBE6.js → chunk-RTHA3XRE.js} +19 -672
- package/dist/{chunk-V7BZBBI6.js → chunk-VPPK3SY4.js} +1 -1
- package/dist/{chunk-WQITYKHM.js → chunk-YRZ5RPEB.js} +7 -7
- package/dist/{diff-RQLLNAFI.js → diff-D4X53HAC.js} +4 -4
- package/dist/{docs-AIY6VNF7.js → docs-QIYKO3BR.js} +1 -1
- package/dist/index.js +19 -19
- package/dist/mcp.js +140 -66
- package/dist/model-discovery-D2H3VBGC.js +8 -0
- package/dist/{nomination-engine-LLREC5BZ.js → nomination-engine-RV5CNO5B.js} +2 -2
- package/dist/{orchestrate-XZA33TJC.js → orchestrate-JLILBBJE.js} +4 -4
- package/dist/{reindex-U2HEB6GW.js → reindex-5LTD53ZC.js} +3 -2
- package/dist/{serve-QWWJP2EW.js → serve-CAH3PHE7.js} +1 -1
- package/dist/session-tracker-C4BMD5WG.js +13 -0
- package/dist/{session-work-log-KDOH4GER.js → session-work-log-MZ47OAPB.js} +1 -1
- package/dist/{shift-VJUGMADR.js → shift-D2JOHHBF.js} +33 -5
- package/dist/{spawn-AW6GDECS.js → spawn-RCHNXDHE.js} +4 -4
- package/dist/{team-7HG7XK5C.js → team-O5MIIFMA.js} +6 -5
- package/package.json +1 -1
- package/dist/{chunk-LSRABQIY.js → chunk-45MUDW6E.js} +3 -3
- /package/dist/{platform-server-U5L2G3EU.js → platform-server-H5YO3DQD.js} +0 -0
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
AgentSpawner,
|
|
4
|
-
extractSymbols
|
|
5
|
-
} from "./chunk-LSRABQIY.js";
|
|
6
|
-
import {
|
|
7
|
-
AuditLogger
|
|
8
|
-
} from "./chunk-PBHIFAL4.js";
|
|
9
2
|
import {
|
|
10
3
|
suggestAgentsForTask
|
|
11
4
|
} from "./chunk-6QC3YGB6.js";
|
|
5
|
+
import {
|
|
6
|
+
AgentSpawner,
|
|
7
|
+
extractSymbols
|
|
8
|
+
} from "./chunk-45MUDW6E.js";
|
|
12
9
|
import {
|
|
13
10
|
loadAgentsManifest
|
|
14
11
|
} from "./chunk-PMXRGPRQ.js";
|
|
12
|
+
import {
|
|
13
|
+
AuditLogger
|
|
14
|
+
} from "./chunk-PBHIFAL4.js";
|
|
15
15
|
import {
|
|
16
16
|
calculateCost
|
|
17
17
|
} from "./chunk-5JGJACDU.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
BackgroundOrchestrator
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-LSRABQIY.js";
|
|
6
|
-
import "./chunk-PBHIFAL4.js";
|
|
7
|
-
import "./chunk-TXESEO7Y.js";
|
|
4
|
+
} from "./chunk-YRZ5RPEB.js";
|
|
8
5
|
import "./chunk-6QC3YGB6.js";
|
|
6
|
+
import "./chunk-45MUDW6E.js";
|
|
9
7
|
import "./chunk-PMXRGPRQ.js";
|
|
8
|
+
import "./chunk-PBHIFAL4.js";
|
|
9
|
+
import "./chunk-TXESEO7Y.js";
|
|
10
10
|
import "./chunk-5JGJACDU.js";
|
|
11
11
|
import "./chunk-ZGUAAVMA.js";
|
|
12
12
|
import "./chunk-EDOAWN7J.js";
|
|
@@ -17,7 +17,7 @@ async function docsServeCommand(options) {
|
|
|
17
17
|
const shouldOpen = options.open !== false;
|
|
18
18
|
console.log(chalk.cyan("\n Starting Paradigm Docs...\n"));
|
|
19
19
|
try {
|
|
20
|
-
const { startPlatformServer } = await import("./platform-server-
|
|
20
|
+
const { startPlatformServer } = await import("./platform-server-H5YO3DQD.js");
|
|
21
21
|
await startPlatformServer({
|
|
22
22
|
projectDir,
|
|
23
23
|
port,
|
package/dist/index.js
CHANGED
|
@@ -111,7 +111,7 @@ ${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-D2JOHHBF.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) => {
|
|
@@ -254,7 +254,7 @@ flowCmd.action(() => {
|
|
|
254
254
|
});
|
|
255
255
|
var teamCmd = program.command("team").description("Multi-agent orchestration commands");
|
|
256
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) => {
|
|
257
|
-
const { teamInitCommand } = await import("./team-
|
|
257
|
+
const { teamInitCommand } = await import("./team-O5MIIFMA.js");
|
|
258
258
|
await teamInitCommand(path2, {
|
|
259
259
|
...options,
|
|
260
260
|
configureModels: options.configureModels,
|
|
@@ -262,47 +262,47 @@ teamCmd.command("init [path]").description("Initialize team configuration with d
|
|
|
262
262
|
});
|
|
263
263
|
});
|
|
264
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) => {
|
|
265
|
-
const { teamStatusCommand } = await import("./team-
|
|
265
|
+
const { teamStatusCommand } = await import("./team-O5MIIFMA.js");
|
|
266
266
|
await teamStatusCommand(path2, options);
|
|
267
267
|
});
|
|
268
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) => {
|
|
269
|
-
const { teamHandoffCommand } = await import("./team-
|
|
269
|
+
const { teamHandoffCommand } = await import("./team-O5MIIFMA.js");
|
|
270
270
|
await teamHandoffCommand(path2, options);
|
|
271
271
|
});
|
|
272
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) => {
|
|
273
|
-
const { teamAcceptCommand } = await import("./team-
|
|
273
|
+
const { teamAcceptCommand } = await import("./team-O5MIIFMA.js");
|
|
274
274
|
await teamAcceptCommand(handoffId, path2, options);
|
|
275
275
|
});
|
|
276
276
|
teamCmd.command("check [path]").description("Check for conflicts and team health issues").option("--json", "Output as JSON").action(async (path2, options) => {
|
|
277
|
-
const { teamCheckCommand } = await import("./team-
|
|
277
|
+
const { teamCheckCommand } = await import("./team-O5MIIFMA.js");
|
|
278
278
|
await teamCheckCommand(path2, options);
|
|
279
279
|
});
|
|
280
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) => {
|
|
281
|
-
const { teamHistoryCommand } = await import("./team-
|
|
281
|
+
const { teamHistoryCommand } = await import("./team-O5MIIFMA.js");
|
|
282
282
|
await teamHistoryCommand(path2, { ...options, limit: parseInt(options.limit) });
|
|
283
283
|
});
|
|
284
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) => {
|
|
285
|
-
const { teamResetCommand } = await import("./team-
|
|
285
|
+
const { teamResetCommand } = await import("./team-O5MIIFMA.js");
|
|
286
286
|
await teamResetCommand(path2, options);
|
|
287
287
|
});
|
|
288
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) => {
|
|
289
|
-
const { teamSpawnCommand } = await import("./spawn-
|
|
289
|
+
const { teamSpawnCommand } = await import("./spawn-RCHNXDHE.js");
|
|
290
290
|
await teamSpawnCommand(agent, path2, options);
|
|
291
291
|
});
|
|
292
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) => {
|
|
293
|
-
const { teamOrchestrateCommand } = await import("./orchestrate-
|
|
293
|
+
const { teamOrchestrateCommand } = await import("./orchestrate-JLILBBJE.js");
|
|
294
294
|
await teamOrchestrateCommand(task, path2, options);
|
|
295
295
|
});
|
|
296
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) => {
|
|
297
|
-
const { teamDiffCommand } = await import("./diff-
|
|
297
|
+
const { teamDiffCommand } = await import("./diff-D4X53HAC.js");
|
|
298
298
|
await teamDiffCommand(orchestrationId, path2, options);
|
|
299
299
|
});
|
|
300
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) => {
|
|
301
|
-
const { teamAcceptOrchestrationCommand } = await import("./accept-orchestration-
|
|
301
|
+
const { teamAcceptOrchestrationCommand } = await import("./accept-orchestration-UQLM7PTQ.js");
|
|
302
302
|
await teamAcceptOrchestrationCommand(orchestrationId, path2, options);
|
|
303
303
|
});
|
|
304
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) => {
|
|
305
|
-
const { teamRejectOrchestrationCommand } = await import("./accept-orchestration-
|
|
305
|
+
const { teamRejectOrchestrationCommand } = await import("./accept-orchestration-UQLM7PTQ.js");
|
|
306
306
|
await teamRejectOrchestrationCommand(orchestrationId, path2, options);
|
|
307
307
|
});
|
|
308
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) => {
|
|
@@ -318,7 +318,7 @@ teamCmd.command("providers [path]").description("Show available agent providers
|
|
|
318
318
|
await teamProvidersCommand(path2, options);
|
|
319
319
|
});
|
|
320
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) => {
|
|
321
|
-
const { teamModelsCommand } = await import("./team-
|
|
321
|
+
const { teamModelsCommand } = await import("./team-O5MIIFMA.js");
|
|
322
322
|
await teamModelsCommand(path2, options);
|
|
323
323
|
});
|
|
324
324
|
var agentsCmd = teamCmd.command("agents").description("Agent management commands");
|
|
@@ -333,7 +333,7 @@ agentsCmd.action(() => {
|
|
|
333
333
|
console.log("\nRun `paradigm team agents suggest --help` for options.\n");
|
|
334
334
|
});
|
|
335
335
|
teamCmd.action(async () => {
|
|
336
|
-
const { teamStatusCommand } = await import("./team-
|
|
336
|
+
const { teamStatusCommand } = await import("./team-O5MIIFMA.js");
|
|
337
337
|
await teamStatusCommand(void 0, {});
|
|
338
338
|
});
|
|
339
339
|
var pluginCmd = program.command("plugin").description("Plugin management commands");
|
|
@@ -719,7 +719,7 @@ loreCmd.option("-p, --port <port>", "Port to run on", "3840").option("--no-open"
|
|
|
719
719
|
await loreServeCommand(void 0, options);
|
|
720
720
|
});
|
|
721
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) => {
|
|
722
|
-
const { serveCommand } = await import("./serve-
|
|
722
|
+
const { serveCommand } = await import("./serve-CAH3PHE7.js");
|
|
723
723
|
await serveCommand(options);
|
|
724
724
|
});
|
|
725
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) => {
|
|
@@ -857,15 +857,15 @@ universityCmd.option("-p, --port <port>", "Port to run on", "3839").option("--no
|
|
|
857
857
|
});
|
|
858
858
|
var docsCmd = program.command("docs").description("Auto-generated documentation from the symbol graph");
|
|
859
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-
|
|
860
|
+
const { docsServeCommand } = await import("./docs-QIYKO3BR.js");
|
|
861
861
|
await docsServeCommand(options);
|
|
862
862
|
});
|
|
863
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-
|
|
864
|
+
const { docsBuildCommand } = await import("./docs-QIYKO3BR.js");
|
|
865
865
|
await docsBuildCommand(options);
|
|
866
866
|
});
|
|
867
867
|
docsCmd.action(async () => {
|
|
868
|
-
const { docsServeCommand } = await import("./docs-
|
|
868
|
+
const { docsServeCommand } = await import("./docs-QIYKO3BR.js");
|
|
869
869
|
await docsServeCommand({});
|
|
870
870
|
});
|
|
871
871
|
var pipelineCmd = program.command("pipeline").description("Spec pipeline \u2014 structured feature workflow with configurable gates");
|
package/dist/mcp.js
CHANGED
|
@@ -1,9 +1,24 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
getPluginUpdateNotice,
|
|
4
|
+
schedulePluginUpdateCheck
|
|
5
|
+
} from "./chunk-5EWAQHFY.js";
|
|
6
|
+
import {
|
|
7
|
+
PatternMatcher,
|
|
8
|
+
PatternSuggester,
|
|
9
|
+
SentinelStorage,
|
|
10
|
+
StatsCalculator,
|
|
11
|
+
TimelineBuilder,
|
|
12
|
+
loadAllSeedPatterns
|
|
13
|
+
} from "./chunk-ZDHLG5VP.js";
|
|
2
14
|
import {
|
|
3
15
|
getDecisionSummary,
|
|
4
16
|
loadDecisions,
|
|
5
17
|
recordDecision
|
|
6
18
|
} from "./chunk-EZ3GOCYC.js";
|
|
19
|
+
import {
|
|
20
|
+
loadAllAgentStates
|
|
21
|
+
} from "./chunk-54LTTQBH.js";
|
|
7
22
|
import {
|
|
8
23
|
acknowledgeMessages,
|
|
9
24
|
approveFileRequest,
|
|
@@ -58,7 +73,6 @@ import {
|
|
|
58
73
|
getReferencesFrom,
|
|
59
74
|
getReferencesTo,
|
|
60
75
|
getReindexToolsList,
|
|
61
|
-
getSessionTracker,
|
|
62
76
|
getSymbol,
|
|
63
77
|
getSymbolCounts,
|
|
64
78
|
getSymbolsByType,
|
|
@@ -66,9 +80,6 @@ import {
|
|
|
66
80
|
handleReindexTool,
|
|
67
81
|
incrementHeatmap,
|
|
68
82
|
loadDiplomas,
|
|
69
|
-
loadGlobalAntipatterns,
|
|
70
|
-
loadGlobalDecisions,
|
|
71
|
-
loadGlobalPreferences,
|
|
72
83
|
loadNote,
|
|
73
84
|
loadPath,
|
|
74
85
|
loadPersona,
|
|
@@ -83,8 +94,6 @@ import {
|
|
|
83
94
|
parsePurposeFileDetailed,
|
|
84
95
|
rebuildStaticFiles,
|
|
85
96
|
rebuildUniversityIndex,
|
|
86
|
-
recordGlobalAntipattern,
|
|
87
|
-
recordGlobalDecision,
|
|
88
97
|
recordProtocol,
|
|
89
98
|
removeStep,
|
|
90
99
|
saveDiploma,
|
|
@@ -105,26 +114,13 @@ import {
|
|
|
105
114
|
validateProtocol,
|
|
106
115
|
validatePurposeFile,
|
|
107
116
|
validateUniversityContent
|
|
108
|
-
} from "./chunk-
|
|
117
|
+
} from "./chunk-4BLYIB7J.js";
|
|
109
118
|
import "./chunk-L27I3CPZ.js";
|
|
110
119
|
import {
|
|
111
120
|
getWorkLogSummary,
|
|
112
121
|
loadWorkLogEntries,
|
|
113
122
|
recordWorkLog
|
|
114
123
|
} from "./chunk-TAIJOFOE.js";
|
|
115
|
-
import {
|
|
116
|
-
getPluginUpdateNotice,
|
|
117
|
-
schedulePluginUpdateCheck
|
|
118
|
-
} from "./chunk-5EWAQHFY.js";
|
|
119
|
-
import "./chunk-SDDCVUCV.js";
|
|
120
|
-
import {
|
|
121
|
-
completeTask,
|
|
122
|
-
createTask,
|
|
123
|
-
loadTask,
|
|
124
|
-
loadTasks,
|
|
125
|
-
shelveTask,
|
|
126
|
-
updateTask
|
|
127
|
-
} from "./chunk-CSD7IHSN.js";
|
|
128
124
|
import {
|
|
129
125
|
addLoreAssessment,
|
|
130
126
|
deleteLoreEntry,
|
|
@@ -135,6 +131,23 @@ import {
|
|
|
135
131
|
recordLoreEntry,
|
|
136
132
|
updateLoreEntry
|
|
137
133
|
} from "./chunk-5VKJBNJL.js";
|
|
134
|
+
import {
|
|
135
|
+
getSessionTracker,
|
|
136
|
+
loadGlobalAntipatterns,
|
|
137
|
+
loadGlobalDecisions,
|
|
138
|
+
loadGlobalPreferences,
|
|
139
|
+
recordGlobalAntipattern,
|
|
140
|
+
recordGlobalDecision
|
|
141
|
+
} from "./chunk-4L3UTYQX.js";
|
|
142
|
+
import "./chunk-CL7JSK52.js";
|
|
143
|
+
import {
|
|
144
|
+
completeTask,
|
|
145
|
+
createTask,
|
|
146
|
+
loadTask,
|
|
147
|
+
loadTasks,
|
|
148
|
+
shelveTask,
|
|
149
|
+
updateTask
|
|
150
|
+
} from "./chunk-CSD7IHSN.js";
|
|
138
151
|
import {
|
|
139
152
|
addNotebookEntry,
|
|
140
153
|
adjustAttentionFromFeedback,
|
|
@@ -159,7 +172,7 @@ import {
|
|
|
159
172
|
queryEvents,
|
|
160
173
|
resolveDebate,
|
|
161
174
|
searchNotebooks
|
|
162
|
-
} from "./chunk-
|
|
175
|
+
} from "./chunk-VPPK3SY4.js";
|
|
163
176
|
import {
|
|
164
177
|
buildProfileEnrichment,
|
|
165
178
|
init_agent_loader,
|
|
@@ -170,7 +183,7 @@ import {
|
|
|
170
183
|
queryExpertise,
|
|
171
184
|
saveProjectRoster,
|
|
172
185
|
verifyIntegrity
|
|
173
|
-
} from "./chunk-
|
|
186
|
+
} from "./chunk-RJE5G7WO.js";
|
|
174
187
|
import {
|
|
175
188
|
getJournalStats,
|
|
176
189
|
init_journal_loader,
|
|
@@ -178,14 +191,6 @@ import {
|
|
|
178
191
|
loadJournalEntries,
|
|
179
192
|
recordJournalEntry
|
|
180
193
|
} from "./chunk-MCMOGQMU.js";
|
|
181
|
-
import {
|
|
182
|
-
PatternMatcher,
|
|
183
|
-
PatternSuggester,
|
|
184
|
-
SentinelStorage,
|
|
185
|
-
StatsCalculator,
|
|
186
|
-
TimelineBuilder,
|
|
187
|
-
loadAllSeedPatterns
|
|
188
|
-
} from "./chunk-ZDHLG5VP.js";
|
|
189
194
|
import {
|
|
190
195
|
__esm,
|
|
191
196
|
__export,
|
|
@@ -5717,14 +5722,50 @@ import * as path13 from "path";
|
|
|
5717
5722
|
import * as yaml8 from "js-yaml";
|
|
5718
5723
|
init_agent_loader();
|
|
5719
5724
|
var SYMBOL_PATTERN = /[@#$%^!?&~][a-zA-Z0-9_-]+/g;
|
|
5720
|
-
var
|
|
5721
|
-
architect: "
|
|
5722
|
-
security: "
|
|
5723
|
-
|
|
5724
|
-
|
|
5725
|
-
|
|
5726
|
-
|
|
5725
|
+
var AGENT_TIERS = {
|
|
5726
|
+
architect: "tier-1",
|
|
5727
|
+
security: "tier-1",
|
|
5728
|
+
advocate: "tier-1",
|
|
5729
|
+
product: "tier-1",
|
|
5730
|
+
operations: "tier-1",
|
|
5731
|
+
sales: "tier-1",
|
|
5732
|
+
reviewer: "tier-2",
|
|
5733
|
+
designer: "tier-2",
|
|
5734
|
+
copywriter: "tier-2",
|
|
5735
|
+
researcher: "tier-2",
|
|
5736
|
+
analyst: "tier-2",
|
|
5737
|
+
dx: "tier-2",
|
|
5738
|
+
qa: "tier-2",
|
|
5739
|
+
debugger: "tier-2",
|
|
5740
|
+
builder: "tier-3",
|
|
5741
|
+
tester: "tier-3",
|
|
5742
|
+
documentor: "tier-3",
|
|
5743
|
+
sysadmin: "tier-3",
|
|
5744
|
+
archivist: "tier-3",
|
|
5745
|
+
release: "tier-3"
|
|
5746
|
+
};
|
|
5747
|
+
var DEFAULT_TIER_MODELS = {
|
|
5748
|
+
"tier-1": "opus",
|
|
5749
|
+
"tier-2": "sonnet",
|
|
5750
|
+
"tier-3": "haiku"
|
|
5727
5751
|
};
|
|
5752
|
+
function resolveModelForAgent(agentName, rootDir, agentDef) {
|
|
5753
|
+
try {
|
|
5754
|
+
const configPath = path13.join(rootDir, ".paradigm", "config.yaml");
|
|
5755
|
+
if (fs12.existsSync(configPath)) {
|
|
5756
|
+
const config = yaml8.load(fs12.readFileSync(configPath, "utf8"));
|
|
5757
|
+
const resolution = config?.["model-resolution"];
|
|
5758
|
+
if (resolution) {
|
|
5759
|
+
const tier2 = agentDef?.modelTier || AGENT_TIERS[agentName] || "tier-2";
|
|
5760
|
+
if (resolution[tier2]) return resolution[tier2];
|
|
5761
|
+
}
|
|
5762
|
+
}
|
|
5763
|
+
} catch {
|
|
5764
|
+
}
|
|
5765
|
+
if (agentDef?.defaultModel) return agentDef.defaultModel;
|
|
5766
|
+
const tier = AGENT_TIERS[agentName] || "tier-2";
|
|
5767
|
+
return DEFAULT_TIER_MODELS[tier] || "sonnet";
|
|
5768
|
+
}
|
|
5728
5769
|
var AGENT_TOKEN_ESTIMATES = {
|
|
5729
5770
|
architect: { min: 5e3, max: 2e4 },
|
|
5730
5771
|
security: { min: 3e3, max: 15e3 },
|
|
@@ -6059,10 +6100,11 @@ async function handleOrchestrateInline(args, ctx) {
|
|
|
6059
6100
|
}
|
|
6060
6101
|
let agentProfiles = /* @__PURE__ */ new Map();
|
|
6061
6102
|
try {
|
|
6062
|
-
const { loadAgentProfile: loadAgentProfile2, buildProfileEnrichment: buildProfileEnrichment2 } = await import("./agent-loader-
|
|
6103
|
+
const { loadAgentProfile: loadAgentProfile2, buildProfileEnrichment: buildProfileEnrichment2 } = await import("./agent-loader-TFIANSF4.js");
|
|
6063
6104
|
const { loadDecisions: loadDecisions3 } = await import("./decision-loader-WWCLIQPJ.js");
|
|
6064
6105
|
const { loadJournalEntries: loadJournalEntries2 } = await import("./journal-loader-5EYSBFFY.js");
|
|
6065
|
-
const { loadNominations: loadNominations2 } = await import("./nomination-engine-
|
|
6106
|
+
const { loadNominations: loadNominations2 } = await import("./nomination-engine-RV5CNO5B.js");
|
|
6107
|
+
const { loadAgentState: loadState } = await import("./agent-state-S5DAWPTF.js");
|
|
6066
6108
|
const recentDecisions = loadDecisions3(ctx.rootDir, { status: "active", limit: 5 }).map((d) => ({ title: d.title, decision: d.decision.slice(0, 150) }));
|
|
6067
6109
|
const pendingNominations = loadNominations2(ctx.rootDir, { pending_only: true, limit: 10 }).map((n) => ({ urgency: n.urgency, brief: n.brief }));
|
|
6068
6110
|
for (const stage of plan.stages) {
|
|
@@ -6075,11 +6117,17 @@ async function handleOrchestrateInline(args, ctx) {
|
|
|
6075
6117
|
transferable: true,
|
|
6076
6118
|
limit: 5
|
|
6077
6119
|
}).map((j) => ({ trigger: j.trigger, insight: j.insight.slice(0, 150) }));
|
|
6120
|
+
const agentProjectState = loadState(agentStep.name, ctx.rootDir);
|
|
6078
6121
|
let enrichment = buildProfileEnrichment2(profile, symbols, void 0, {
|
|
6079
6122
|
recentDecisions,
|
|
6080
6123
|
journalInsights,
|
|
6081
6124
|
pendingNominations
|
|
6082
|
-
}
|
|
6125
|
+
}, agentProjectState ? {
|
|
6126
|
+
lastSession: agentProjectState.lastSession,
|
|
6127
|
+
pendingWork: agentProjectState.pendingWork,
|
|
6128
|
+
recentPatterns: agentProjectState.recentPatterns,
|
|
6129
|
+
sessionsOnProject: agentProjectState.sessionsOnProject
|
|
6130
|
+
} : void 0);
|
|
6083
6131
|
if (profile.permissions) {
|
|
6084
6132
|
const constraints = ["\n## Permission Constraints"];
|
|
6085
6133
|
if (profile.permissions.paths?.deny?.length) {
|
|
@@ -6117,7 +6165,7 @@ async function handleOrchestrateInline(args, ctx) {
|
|
|
6117
6165
|
name: manifestAgent?.name || agentStep.name,
|
|
6118
6166
|
role: manifestAgent?.role || ROLE_PROMPTS[agentStep.name] || `${agentStep.name} agent`,
|
|
6119
6167
|
focus: manifestAgent?.focus || { reads: ["**/*"], writes: ["**/*"] },
|
|
6120
|
-
defaultModel:
|
|
6168
|
+
defaultModel: resolveModelForAgent(agentStep.name, ctx.rootDir, manifestAgent),
|
|
6121
6169
|
triggers: manifestAgent?.triggers,
|
|
6122
6170
|
handoff_to: manifestAgent?.handoff_to,
|
|
6123
6171
|
context: manifestAgent?.context,
|
|
@@ -6143,7 +6191,7 @@ async function handleOrchestrateInline(args, ctx) {
|
|
|
6143
6191
|
const orchestrationId = `orch-${Date.now().toString(36)}-${Math.random().toString(36).substring(2, 6)}`;
|
|
6144
6192
|
logOrchestration(ctx.rootDir, orchestrationId, task, plan);
|
|
6145
6193
|
try {
|
|
6146
|
-
const { appendSessionWorkEntry } = await import("./session-work-log-
|
|
6194
|
+
const { appendSessionWorkEntry } = await import("./session-work-log-MZ47OAPB.js");
|
|
6147
6195
|
for (const stage of stagePrompts) {
|
|
6148
6196
|
for (const agent of stage.agents) {
|
|
6149
6197
|
appendSessionWorkEntry(ctx.rootDir, {
|
|
@@ -6158,6 +6206,21 @@ async function handleOrchestrateInline(args, ctx) {
|
|
|
6158
6206
|
}
|
|
6159
6207
|
} catch {
|
|
6160
6208
|
}
|
|
6209
|
+
try {
|
|
6210
|
+
const { recordAgentSession } = await import("./agent-state-S5DAWPTF.js");
|
|
6211
|
+
const sessionTracker = await import("./session-tracker-C4BMD5WG.js");
|
|
6212
|
+
const sessionId = sessionTracker.default?.session?.sessionId || orchestrationId;
|
|
6213
|
+
for (const stage of stagePrompts) {
|
|
6214
|
+
for (const agent of stage.agents) {
|
|
6215
|
+
recordAgentSession(agent.agent, ctx.rootDir, {
|
|
6216
|
+
sessionId,
|
|
6217
|
+
summary: `${agent.attribution || agent.agent}: ${(agent.taskDescription || task).slice(0, 200)}`,
|
|
6218
|
+
symbolsTouched: symbols
|
|
6219
|
+
});
|
|
6220
|
+
}
|
|
6221
|
+
}
|
|
6222
|
+
} catch {
|
|
6223
|
+
}
|
|
6161
6224
|
const orchestrationThread = `thr-orch-${orchestrationId}`;
|
|
6162
6225
|
try {
|
|
6163
6226
|
const symphony = await import("./symphony-loader-UZGON56V.js");
|
|
@@ -6294,7 +6357,7 @@ async function handleAgentPrompt(args, ctx) {
|
|
|
6294
6357
|
name: manifestAgent?.name || agentName,
|
|
6295
6358
|
role: manifestAgent?.role || ROLE_PROMPTS[agentName] || ROLE_PROMPTS.builder,
|
|
6296
6359
|
focus: manifestAgent?.focus || { reads: ["**/*"], writes: ["**/*"] },
|
|
6297
|
-
defaultModel:
|
|
6360
|
+
defaultModel: resolveModelForAgent(agentName, ctx.rootDir, manifestAgent),
|
|
6298
6361
|
triggers: manifestAgent?.triggers,
|
|
6299
6362
|
handoff_to: manifestAgent?.handoff_to,
|
|
6300
6363
|
context: manifestAgent?.context,
|
|
@@ -6304,10 +6367,10 @@ async function handleAgentPrompt(args, ctx) {
|
|
|
6304
6367
|
let profileEnrichment;
|
|
6305
6368
|
let nickname;
|
|
6306
6369
|
try {
|
|
6307
|
-
const { loadAgentProfile: loadAgentProfile2, buildProfileEnrichment: buildProfileEnrichment2 } = await import("./agent-loader-
|
|
6370
|
+
const { loadAgentProfile: loadAgentProfile2, buildProfileEnrichment: buildProfileEnrichment2 } = await import("./agent-loader-TFIANSF4.js");
|
|
6308
6371
|
const { loadDecisions: loadDecisions3 } = await import("./decision-loader-WWCLIQPJ.js");
|
|
6309
6372
|
const { loadJournalEntries: loadJournalEntries2 } = await import("./journal-loader-5EYSBFFY.js");
|
|
6310
|
-
const { loadNominations: loadNominations2 } = await import("./nomination-engine-
|
|
6373
|
+
const { loadNominations: loadNominations2 } = await import("./nomination-engine-RV5CNO5B.js");
|
|
6311
6374
|
const profile = loadAgentProfile2(ctx.rootDir, agentName);
|
|
6312
6375
|
if (profile) {
|
|
6313
6376
|
nickname = profile.nickname;
|
|
@@ -6578,7 +6641,7 @@ handoff_context: |
|
|
|
6578
6641
|
|
|
6579
6642
|
This structured output helps track progress and pass context between agents.`);
|
|
6580
6643
|
const prompt = parts.join("\n");
|
|
6581
|
-
const model = agent.defaultModel ||
|
|
6644
|
+
const model = agent.defaultModel || DEFAULT_TIER_MODELS[AGENT_TIERS[agent.name] || "tier-2"] || "sonnet";
|
|
6582
6645
|
const attribution = options.nickname ? `[${options.nickname} (${agent.name})]` : `[${agent.name}]`;
|
|
6583
6646
|
return {
|
|
6584
6647
|
agent: agent.name,
|
|
@@ -6775,7 +6838,7 @@ function generateCostPreviewLocal(plan, classification) {
|
|
|
6775
6838
|
for (const stage of plan.stages) {
|
|
6776
6839
|
for (const agentStep of stage.agents) {
|
|
6777
6840
|
const base = AGENT_BASE_TOKENS[agentStep.name] || { input: 5e3, output: 3e3 };
|
|
6778
|
-
const model =
|
|
6841
|
+
const model = DEFAULT_TIER_MODELS[AGENT_TIERS[agentStep.name] || "tier-2"] || "sonnet";
|
|
6779
6842
|
const pricing = MODEL_PRICING[model];
|
|
6780
6843
|
const input = Math.round(base.input * complexityMultiplier);
|
|
6781
6844
|
const output = Math.round(base.output * complexityMultiplier);
|
|
@@ -6793,7 +6856,7 @@ function generateCostPreviewLocal(plan, classification) {
|
|
|
6793
6856
|
}
|
|
6794
6857
|
let baselineCost = 0;
|
|
6795
6858
|
for (const [agent, base] of Object.entries(AGENT_BASE_TOKENS)) {
|
|
6796
|
-
const model =
|
|
6859
|
+
const model = DEFAULT_TIER_MODELS[AGENT_TIERS[agent] || "tier-2"] || "sonnet";
|
|
6797
6860
|
const pricing = MODEL_PRICING[model];
|
|
6798
6861
|
baselineCost += base.input / 1e6 * pricing.input + base.output / 1e6 * pricing.output;
|
|
6799
6862
|
}
|
|
@@ -10231,7 +10294,7 @@ async function handleLoreTool(name, args, ctx) {
|
|
|
10231
10294
|
try {
|
|
10232
10295
|
const agentId = process.env.PARADIGM_AGENT_ID;
|
|
10233
10296
|
if (agentId && symbols_touched && symbols_touched.length > 0) {
|
|
10234
|
-
const { updateExpertiseFromLore } = await import("./agent-loader-
|
|
10297
|
+
const { updateExpertiseFromLore } = await import("./agent-loader-TFIANSF4.js");
|
|
10235
10298
|
updateExpertiseFromLore(ctx.rootDir, agentId, {
|
|
10236
10299
|
symbols_touched,
|
|
10237
10300
|
confidence: confidence != null && confidence >= 0 && confidence <= 1 ? confidence : void 0
|
|
@@ -10402,7 +10465,7 @@ async function handleLoreTool(name, args, ctx) {
|
|
|
10402
10465
|
try {
|
|
10403
10466
|
const agentId = process.env.PARADIGM_AGENT_ID;
|
|
10404
10467
|
if (agentId && success && entryToAssess.symbols_touched?.length) {
|
|
10405
|
-
const { updateExpertiseFromAssessment } = await import("./agent-loader-
|
|
10468
|
+
const { updateExpertiseFromAssessment } = await import("./agent-loader-TFIANSF4.js");
|
|
10406
10469
|
updateExpertiseFromAssessment(ctx.rootDir, agentId, {
|
|
10407
10470
|
symbols_touched: entryToAssess.symbols_touched,
|
|
10408
10471
|
verdict
|
|
@@ -17658,26 +17721,37 @@ async function handleAgentTool(name, args, ctx) {
|
|
|
17658
17721
|
}
|
|
17659
17722
|
const activeProfiles = roster ? profiles.filter((p) => roster.includes(p.id)) : profiles;
|
|
17660
17723
|
const inactiveCount = roster ? profiles.length - activeProfiles.length : 0;
|
|
17724
|
+
const allStates = loadAllAgentStates(ctx.rootDir);
|
|
17725
|
+
const stateMap = new Map(allStates.map((s) => [s.id, s]));
|
|
17661
17726
|
return {
|
|
17662
17727
|
handled: true,
|
|
17663
17728
|
text: JSON.stringify({
|
|
17664
17729
|
count: activeProfiles.length,
|
|
17665
17730
|
totalAvailable: profiles.length,
|
|
17666
17731
|
...roster ? { rosterActive: true, inactiveCount } : { rosterActive: false },
|
|
17667
|
-
agents: activeProfiles.map((p) =>
|
|
17668
|
-
|
|
17669
|
-
|
|
17670
|
-
|
|
17671
|
-
|
|
17672
|
-
|
|
17673
|
-
|
|
17674
|
-
|
|
17675
|
-
|
|
17676
|
-
|
|
17677
|
-
|
|
17678
|
-
|
|
17679
|
-
|
|
17680
|
-
|
|
17732
|
+
agents: activeProfiles.map((p) => {
|
|
17733
|
+
const state = stateMap.get(p.id);
|
|
17734
|
+
return {
|
|
17735
|
+
id: p.id,
|
|
17736
|
+
role: p.role,
|
|
17737
|
+
nickname: p.nickname,
|
|
17738
|
+
personality: p.personality,
|
|
17739
|
+
...state ? {
|
|
17740
|
+
lastSession: state.lastSession?.summary?.slice(0, 100),
|
|
17741
|
+
lastSessionAge: state.lastSession?.date,
|
|
17742
|
+
pendingWork: state.pendingWork?.length || 0,
|
|
17743
|
+
sessionsOnProject: state.sessionsOnProject || 0
|
|
17744
|
+
} : {},
|
|
17745
|
+
topExpertise: (p.expertise || []).sort((a, b) => b.confidence - a.confidence).slice(0, 5).map((e) => ({
|
|
17746
|
+
symbol: e.symbol,
|
|
17747
|
+
confidence: parseFloat(e.confidence.toFixed(2)),
|
|
17748
|
+
sessions: e.sessions
|
|
17749
|
+
})),
|
|
17750
|
+
projectContexts: Object.keys(p.contexts || {}),
|
|
17751
|
+
transferableCount: (p.transferable || []).length,
|
|
17752
|
+
...p.attention?.threshold != null ? { threshold: p.attention.threshold } : {}
|
|
17753
|
+
};
|
|
17754
|
+
})
|
|
17681
17755
|
}, null, 2)
|
|
17682
17756
|
};
|
|
17683
17757
|
}
|
|
@@ -19454,7 +19528,7 @@ async function handleAmbientTool(name, args, ctx) {
|
|
|
19454
19528
|
const engaged = engageNomination(ctx.rootDir, nominationId, response, reason);
|
|
19455
19529
|
if (engaged) {
|
|
19456
19530
|
try {
|
|
19457
|
-
const { appendSessionWorkEntry } = await import("./session-work-log-
|
|
19531
|
+
const { appendSessionWorkEntry } = await import("./session-work-log-MZ47OAPB.js");
|
|
19458
19532
|
const noms = loadNominations(ctx.rootDir, { limit: 500 });
|
|
19459
19533
|
const nom = noms.find((n) => n.id === nominationId);
|
|
19460
19534
|
appendSessionWorkEntry(ctx.rootDir, {
|
|
@@ -20692,7 +20766,7 @@ Update command:
|
|
|
20692
20766
|
trackToolCall(noWsText.length, name);
|
|
20693
20767
|
return { content: [{ type: "text", text: noWsText }] };
|
|
20694
20768
|
}
|
|
20695
|
-
const { rebuildStaticFiles: rebuildStaticFiles2 } = await import("./reindex-
|
|
20769
|
+
const { rebuildStaticFiles: rebuildStaticFiles2 } = await import("./reindex-5LTD53ZC.js");
|
|
20696
20770
|
const memberResults = [];
|
|
20697
20771
|
for (const member of ctx.workspace.config.members) {
|
|
20698
20772
|
const memberAbsPath = path33.resolve(path33.dirname(ctx.workspace.workspacePath), member.path);
|
|
@@ -17,8 +17,8 @@ import {
|
|
|
17
17
|
processEvent,
|
|
18
18
|
processPendingEvents,
|
|
19
19
|
resolveDebate
|
|
20
|
-
} from "./chunk-
|
|
21
|
-
import "./chunk-
|
|
20
|
+
} from "./chunk-VPPK3SY4.js";
|
|
21
|
+
import "./chunk-RJE5G7WO.js";
|
|
22
22
|
import "./chunk-MCMOGQMU.js";
|
|
23
23
|
import "./chunk-7N7GSU6K.js";
|
|
24
24
|
init_nomination_engine();
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
import {
|
|
3
3
|
BackgroundOrchestrator,
|
|
4
4
|
Orchestrator
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-LSRABQIY.js";
|
|
7
|
-
import "./chunk-PBHIFAL4.js";
|
|
8
|
-
import "./chunk-TXESEO7Y.js";
|
|
5
|
+
} from "./chunk-YRZ5RPEB.js";
|
|
9
6
|
import "./chunk-6QC3YGB6.js";
|
|
7
|
+
import "./chunk-45MUDW6E.js";
|
|
10
8
|
import {
|
|
11
9
|
loadAgentsManifest
|
|
12
10
|
} from "./chunk-PMXRGPRQ.js";
|
|
11
|
+
import "./chunk-PBHIFAL4.js";
|
|
12
|
+
import "./chunk-TXESEO7Y.js";
|
|
13
13
|
import {
|
|
14
14
|
formatCost,
|
|
15
15
|
formatTokens
|
|
@@ -3,10 +3,11 @@ import {
|
|
|
3
3
|
getReindexToolsList,
|
|
4
4
|
handleReindexTool,
|
|
5
5
|
rebuildStaticFiles
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-4BLYIB7J.js";
|
|
7
7
|
import "./chunk-L27I3CPZ.js";
|
|
8
|
-
import "./chunk-SDDCVUCV.js";
|
|
9
8
|
import "./chunk-5VKJBNJL.js";
|
|
9
|
+
import "./chunk-4L3UTYQX.js";
|
|
10
|
+
import "./chunk-CL7JSK52.js";
|
|
10
11
|
import "./chunk-7N7GSU6K.js";
|
|
11
12
|
export {
|
|
12
13
|
getReindexToolsList,
|
|
@@ -10,7 +10,7 @@ async function serveCommand(options) {
|
|
|
10
10
|
const sections = options.sections ? options.sections.split(",").map((s) => s.trim()) : void 0;
|
|
11
11
|
console.log(chalk.cyan("\n Starting Paradigm Platform...\n"));
|
|
12
12
|
try {
|
|
13
|
-
const { startPlatformServer } = await import("./platform-server-
|
|
13
|
+
const { startPlatformServer } = await import("./platform-server-H5YO3DQD.js");
|
|
14
14
|
await startPlatformServer({ port, projectDir, open: shouldOpen, sections });
|
|
15
15
|
console.log(chalk.green(` Platform running at ${chalk.bold(`http://localhost:${port}`)}`));
|
|
16
16
|
console.log(chalk.gray(" Press Ctrl+C to stop\n"));
|