@a-company/paradigm 3.9.0 → 3.12.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.
Files changed (48) hide show
  1. package/dist/{accept-orchestration-DIGPJVUR.js → accept-orchestration-YKMKMWGA.js} +5 -5
  2. package/dist/{assessment-loader-T4GPBHLB.js → assessment-loader-C5EOUM47.js} +0 -1
  3. package/dist/{chunk-4N6AYEEA.js → chunk-4PEQHWD7.js} +1 -1
  4. package/dist/{chunk-5S5CF3ER.js → chunk-4ZO3ZOPM.js} +19 -2141
  5. package/dist/chunk-C3BK3E23.js +268 -0
  6. package/dist/{chunk-Y4XZWCHK.js → chunk-CQFNTBFJ.js} +8 -8
  7. package/dist/{chunk-KFHK6EBI.js → chunk-CYGHL7PQ.js} +63 -7
  8. package/dist/{chunk-M2XMTJHQ.js → chunk-DS5QY37M.js} +201 -287
  9. package/dist/chunk-F6EJKLF4.js +4971 -0
  10. package/dist/{chunk-6RNYVBSG.js → chunk-JQYGPVLQ.js} +4 -4
  11. package/dist/{chunk-BC6XKMUA.js → chunk-K34C7NAN.js} +4 -4
  12. package/dist/{chunk-2QNZ6PVD.js → chunk-KB4XJWE3.js} +63 -1
  13. package/dist/chunk-MW5DMGBB.js +255 -0
  14. package/dist/{chunk-GY5KO3YZ.js → chunk-RDPXBMHK.js} +1 -1
  15. package/dist/{chunk-QHJGB5TV.js → chunk-RP6TZYGE.js} +1 -1
  16. package/dist/{chunk-ADOBV4PH.js → chunk-UVI3OH3G.js} +6 -2127
  17. package/dist/{diff-J6C5IHPV.js → diff-4FV7T35U.js} +5 -5
  18. package/dist/{dist-OLFOTUHS.js → dist-6SX5ZKKF.js} +2 -2
  19. package/dist/{dist-OMY7U6NR.js → dist-YB7T54QE.js} +1 -2
  20. package/dist/{doctor-TQYRF7KK.js → doctor-2KM5HOK6.js} +3 -3
  21. package/dist/drift-FH2UY64B.js +251 -0
  22. package/dist/{flow-7JUH6D4H.js → flow-MCKPJGRJ.js} +1 -1
  23. package/dist/{habits-ZJBAL4HD.js → habits-NC2TRMRV.js} +2 -2
  24. package/dist/{hooks-DLZEYHI3.js → hooks-JXYHVGIN.js} +1 -1
  25. package/dist/index.js +87 -61
  26. package/dist/mcp.js +5502 -9984
  27. package/dist/{orchestrate-FAV64G2R.js → orchestrate-IV54FMHD.js} +5 -5
  28. package/dist/{plugin-update-checker-TWBWUSAG.js → plugin-update-checker-S3W4BUJO.js} +0 -1
  29. package/dist/portal-check-2HI4FFD6.js +42 -0
  30. package/dist/portal-compliance-KQCTAQTJ.js +18 -0
  31. package/dist/{providers-NQ67LO2Z.js → providers-IONB4YRJ.js} +1 -1
  32. package/dist/reindex-ZM6J53UP.js +11 -0
  33. package/dist/{sentinel-KDIGZWKT.js → sentinel-BGCISNIK.js} +1 -1
  34. package/dist/{server-NN7WDAZJ.js → server-3K3TTJH3.js} +1 -1
  35. package/dist/{shift-KJWSJLWN.js → shift-G2ZCIR5Q.js} +158 -19
  36. package/dist/{spawn-EO7B2UM3.js → spawn-7SDONTJN.js} +3 -3
  37. package/dist/{summary-E2PU4UN2.js → summary-F46FRO3Y.js} +1 -1
  38. package/dist/{sync-5VJPZQNX.js → sync-4CNRHUWX.js} +3 -3
  39. package/dist/{sync-llms-7QDA3ZWC.js → sync-llms-MCWB37HN.js} +2 -2
  40. package/dist/{task-loader-GUX4KS6N.js → task-loader-7M2FCBX6.js} +0 -1
  41. package/dist/{team-6CCNANKE.js → team-XUZBPIFZ.js} +6 -6
  42. package/dist/{triage-B5W6GZLT.js → triage-MKKIWBSW.js} +2 -2
  43. package/dist/{upgrade-RBSE4M6I.js → upgrade-HGF4MBGV.js} +1 -1
  44. package/dist/{watch-PAEH6MOG.js → watch-CL2PPS2K.js} +1 -1
  45. package/dist/workspace-7CWY4IWV.js +20 -0
  46. package/package.json +2 -1
  47. package/dist/chunk-HPC3JAUP.js +0 -42
  48. /package/dist/{chunk-CCG6KYBT.js → chunk-5N5LR2KS.js} +0 -0
@@ -2,18 +2,18 @@
2
2
  import {
3
3
  BackgroundOrchestrator,
4
4
  Orchestrator
5
- } from "./chunk-Y4XZWCHK.js";
5
+ } from "./chunk-CQFNTBFJ.js";
6
6
  import "./chunk-6QC3YGB6.js";
7
- import "./chunk-HPC3JAUP.js";
8
- import "./chunk-6RNYVBSG.js";
9
- import "./chunk-PBHIFAL4.js";
10
- import "./chunk-CCG6KYBT.js";
7
+ import "./chunk-JQYGPVLQ.js";
8
+ import "./chunk-5N5LR2KS.js";
11
9
  import {
12
10
  loadAgentsManifest
13
11
  } from "./chunk-PMXRGPRQ.js";
12
+ import "./chunk-PBHIFAL4.js";
14
13
  import "./chunk-6P4IFIK2.js";
15
14
  import "./chunk-MRENOFTR.js";
16
15
  import "./chunk-IRKUEJVW.js";
16
+ import "./chunk-MW5DMGBB.js";
17
17
  import {
18
18
  formatCost,
19
19
  formatTokens
@@ -4,7 +4,6 @@ import {
4
4
  runPluginUpdateCheck,
5
5
  schedulePluginUpdateCheck
6
6
  } from "./chunk-YT3QWWKP.js";
7
- import "./chunk-MO4EEYFW.js";
8
7
  export {
9
8
  getPluginUpdateNotice,
10
9
  runPluginUpdateCheck,
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ checkPortalCompliance,
4
+ formatComplianceReport
5
+ } from "./chunk-MW5DMGBB.js";
6
+ import "./chunk-MO4EEYFW.js";
7
+
8
+ // src/commands/portal-check.ts
9
+ import chalk from "chalk";
10
+ async function portalCheckCommand(options) {
11
+ const rootDir = process.cwd();
12
+ const report = await checkPortalCompliance(rootDir);
13
+ if (options.json) {
14
+ console.log(JSON.stringify({
15
+ status: report.status,
16
+ declaredButUnusedCount: report.declaredButUnused.length,
17
+ usedButUndeclaredCount: report.usedButUndeclared.length,
18
+ properlyDeclaredCount: report.properlyDeclared.length,
19
+ declaredButUnused: report.declaredButUnused,
20
+ usedButUndeclared: report.usedButUndeclared,
21
+ properlyDeclared: report.properlyDeclared
22
+ }));
23
+ } else {
24
+ const formatted = formatComplianceReport(report);
25
+ if (report.status === "compliant") {
26
+ console.log(chalk.green(`
27
+ ${formatted}
28
+ `));
29
+ } else if (report.status === "warnings") {
30
+ console.log(chalk.yellow(`
31
+ ${formatted}
32
+ `));
33
+ } else {
34
+ console.log(chalk.red(`
35
+ ${formatted}
36
+ `));
37
+ }
38
+ }
39
+ }
40
+ export {
41
+ portalCheckCommand
42
+ };
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ checkPortalCompliance,
4
+ extractDeclaredGates,
5
+ findGateReferences,
6
+ formatComplianceReport,
7
+ getComplianceSummary,
8
+ loadPortalConfig
9
+ } from "./chunk-MW5DMGBB.js";
10
+ import "./chunk-MO4EEYFW.js";
11
+ export {
12
+ checkPortalCompliance,
13
+ extractDeclaredGates,
14
+ findGateReferences,
15
+ formatComplianceReport,
16
+ getComplianceSummary,
17
+ loadPortalConfig
18
+ };
@@ -4,7 +4,7 @@ import {
4
4
  getBestProvider,
5
5
  getConfiguredProvider,
6
6
  setConfiguredProvider
7
- } from "./chunk-CCG6KYBT.js";
7
+ } from "./chunk-5N5LR2KS.js";
8
8
  import "./chunk-MO4EEYFW.js";
9
9
 
10
10
  // src/commands/team/providers.ts
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ getReindexToolsList,
4
+ handleReindexTool,
5
+ rebuildStaticFiles
6
+ } from "./chunk-F6EJKLF4.js";
7
+ export {
8
+ getReindexToolsList,
9
+ handleReindexTool,
10
+ rebuildStaticFiles
11
+ };
@@ -9,7 +9,7 @@ async function sentinelCommand(path, options) {
9
9
  const shouldOpen = options.open !== false;
10
10
  console.log(chalk.cyan("\nStarting Sentinel...\n"));
11
11
  try {
12
- const { startServer } = await import("./server-NN7WDAZJ.js");
12
+ const { startServer } = await import("./server-3K3TTJH3.js");
13
13
  console.log(chalk.gray(`Project: ${projectDir}`));
14
14
  console.log(chalk.gray(`Port: ${port}`));
15
15
  console.log();
@@ -3,7 +3,7 @@ import {
3
3
  SentinelStorage,
4
4
  loadServerConfig,
5
5
  v4_default
6
- } from "./chunk-ADOBV4PH.js";
6
+ } from "./chunk-UVI3OH3G.js";
7
7
  import {
8
8
  __commonJS,
9
9
  __require,
@@ -1,43 +1,46 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  teamInitCommand
4
- } from "./chunk-4N6AYEEA.js";
5
- import "./chunk-Y4XZWCHK.js";
4
+ } from "./chunk-4PEQHWD7.js";
5
+ import "./chunk-CQFNTBFJ.js";
6
6
  import "./chunk-6QC3YGB6.js";
7
- import "./chunk-HPC3JAUP.js";
8
- import "./chunk-6RNYVBSG.js";
9
- import "./chunk-PBHIFAL4.js";
10
- import "./chunk-CCG6KYBT.js";
7
+ import "./chunk-JQYGPVLQ.js";
8
+ import "./chunk-5N5LR2KS.js";
11
9
  import {
12
10
  agentsConfigured
13
11
  } from "./chunk-PMXRGPRQ.js";
12
+ import "./chunk-PBHIFAL4.js";
14
13
  import {
15
14
  hooksInstallCommand
16
- } from "./chunk-M2XMTJHQ.js";
15
+ } from "./chunk-DS5QY37M.js";
17
16
  import {
18
- initCommand
19
- } from "./chunk-BC6XKMUA.js";
17
+ detectProjectRole
18
+ } from "./chunk-C3BK3E23.js";
20
19
  import {
21
- indexCommand
22
- } from "./chunk-UI3XXVJ6.js";
20
+ initCommand
21
+ } from "./chunk-K34C7NAN.js";
23
22
  import {
24
23
  detectDiscipline
25
24
  } from "./chunk-CHSHON3O.js";
25
+ import {
26
+ indexCommand
27
+ } from "./chunk-UI3XXVJ6.js";
26
28
  import "./chunk-AK5M6KJB.js";
27
29
  import "./chunk-6P4IFIK2.js";
28
30
  import "./chunk-MRENOFTR.js";
29
31
  import "./chunk-IRKUEJVW.js";
30
32
  import {
31
33
  syncCommand
32
- } from "./chunk-QHJGB5TV.js";
34
+ } from "./chunk-RP6TZYGE.js";
35
+ import "./chunk-MW5DMGBB.js";
33
36
  import {
34
37
  doctorCommand
35
- } from "./chunk-KFHK6EBI.js";
36
- import "./chunk-2QNZ6PVD.js";
38
+ } from "./chunk-CYGHL7PQ.js";
39
+ import "./chunk-KB4XJWE3.js";
40
+ import "./chunk-YO6DVTL7.js";
37
41
  import {
38
42
  log
39
43
  } from "./chunk-4NCFWYGG.js";
40
- import "./chunk-YO6DVTL7.js";
41
44
  import "./chunk-5JGJACDU.js";
42
45
  import "./chunk-MO4EEYFW.js";
43
46
 
@@ -110,6 +113,107 @@ discipline: ${detected}`
110
113
  }
111
114
  }
112
115
  }
116
+ {
117
+ const configPath = path.join(paradigmDir, "config.yaml");
118
+ if (options.workspace && fs.existsSync(configPath)) {
119
+ const wsFilePath = options.workspacePath ? path.resolve(cwd, options.workspacePath) : path.join(path.dirname(cwd), ".paradigm-workspace");
120
+ if (fs.existsSync(wsFilePath)) {
121
+ try {
122
+ const wsConfig = yaml.load(fs.readFileSync(wsFilePath, "utf8"));
123
+ const currentName = path.basename(cwd);
124
+ const wsDir = path.dirname(wsFilePath);
125
+ const relPath = "./" + path.relative(wsDir, cwd);
126
+ const alreadyMember = wsConfig.members.some(
127
+ (m) => path.resolve(wsDir, m.path) === cwd
128
+ );
129
+ if (!alreadyMember) {
130
+ const role = detectProjectRole(currentName, cwd);
131
+ wsConfig.members.push({
132
+ name: currentName,
133
+ path: relPath,
134
+ ...role && { role }
135
+ });
136
+ fs.writeFileSync(
137
+ wsFilePath,
138
+ yaml.dump(wsConfig, { indent: 2, lineWidth: 120, noRefs: true, sortKeys: false, quotingType: '"' }),
139
+ "utf8"
140
+ );
141
+ console.log(chalk.green(` \u2713 Joined workspace: ${chalk.cyan(wsConfig.name)} (added as member)`));
142
+ } else {
143
+ console.log(chalk.green(` \u2713 Already a member of workspace: ${chalk.cyan(wsConfig.name)}`));
144
+ }
145
+ } catch (e) {
146
+ console.log(chalk.yellow(` \u26A0 Failed to join workspace: ${e.message}`));
147
+ }
148
+ } else {
149
+ try {
150
+ const currentName = path.basename(cwd);
151
+ const wsDir = path.dirname(wsFilePath);
152
+ const relPath = "./" + path.relative(wsDir, cwd);
153
+ const role = detectProjectRole(currentName, cwd);
154
+ const wsConfig = {
155
+ version: "1.0",
156
+ name: options.workspace,
157
+ members: [{ name: currentName, path: relPath, ...role && { role } }]
158
+ };
159
+ fs.mkdirSync(path.dirname(wsFilePath), { recursive: true });
160
+ fs.writeFileSync(
161
+ wsFilePath,
162
+ yaml.dump(wsConfig, { indent: 2, lineWidth: 120, noRefs: true, sortKeys: false, quotingType: '"' }),
163
+ "utf8"
164
+ );
165
+ console.log(chalk.green(` \u2713 Created workspace: ${chalk.cyan(options.workspace)} at ${chalk.gray(path.relative(cwd, wsFilePath))}`));
166
+ } catch (e) {
167
+ console.log(chalk.yellow(` \u26A0 Failed to create workspace: ${e.message}`));
168
+ }
169
+ }
170
+ try {
171
+ const configContent = fs.readFileSync(configPath, "utf8");
172
+ const config = yaml.load(configContent);
173
+ const relWsPath = path.relative(cwd, wsFilePath);
174
+ if (config.workspace !== relWsPath) {
175
+ if (config.workspace) {
176
+ const updated = configContent.replace(
177
+ /^workspace:\s*.*$/m,
178
+ `workspace: "${relWsPath}"`
179
+ );
180
+ fs.writeFileSync(configPath, updated, "utf8");
181
+ } else {
182
+ const updated = configContent.trimEnd() + `
183
+ workspace: "${relWsPath}"
184
+ `;
185
+ fs.writeFileSync(configPath, updated, "utf8");
186
+ }
187
+ console.log(chalk.green(` \u2713 Linked workspace in config.yaml`));
188
+ }
189
+ } catch {
190
+ }
191
+ } else if (fs.existsSync(configPath)) {
192
+ try {
193
+ const configContent = fs.readFileSync(configPath, "utf8");
194
+ const config = yaml.load(configContent);
195
+ if (!config.workspace) {
196
+ let searchDir = path.dirname(cwd);
197
+ for (let i = 0; i < 3; i++) {
198
+ const wsCandidate = path.join(searchDir, ".paradigm-workspace");
199
+ if (fs.existsSync(wsCandidate)) {
200
+ const relPath = path.relative(cwd, wsCandidate);
201
+ const updated = configContent.trimEnd() + `
202
+ workspace: "${relPath}"
203
+ `;
204
+ fs.writeFileSync(configPath, updated, "utf8");
205
+ console.log(chalk.green(` \u2713 Found workspace: ${chalk.cyan(relPath)} (added to config.yaml)`));
206
+ break;
207
+ }
208
+ const parent = path.dirname(searchDir);
209
+ if (parent === searchDir) break;
210
+ searchDir = parent;
211
+ }
212
+ }
213
+ } catch {
214
+ }
215
+ }
216
+ }
113
217
  const teamConfigured = agentsConfigured(cwd);
114
218
  if (!teamConfigured || options.force) {
115
219
  console.log(chalk.cyan(" Step 2/6: Initializing team configuration..."));
@@ -139,6 +243,25 @@ discipline: ${detected}`
139
243
  } else {
140
244
  spinner.succeed(chalk.gray("Step 3/6: Skipped scan (--quick mode)"));
141
245
  }
246
+ {
247
+ const configPath = path.join(paradigmDir, "config.yaml");
248
+ if (fs.existsSync(configPath)) {
249
+ try {
250
+ const configForWs = yaml.load(fs.readFileSync(configPath, "utf8"));
251
+ if (configForWs.workspace) {
252
+ spinner.start("Step 3b/6: Reindexing workspace members...");
253
+ try {
254
+ const { workspaceReindexCommand } = await import("./workspace-7CWY4IWV.js");
255
+ await workspaceReindexCommand({ quiet: true });
256
+ spinner.succeed(chalk.green("Workspace members reindexed"));
257
+ } catch (e) {
258
+ spinner.warn(chalk.yellow(`Workspace reindex: ${e.message}`));
259
+ }
260
+ }
261
+ } catch {
262
+ }
263
+ }
264
+ }
142
265
  const lorePath = path.join(cwd, ".paradigm", "lore");
143
266
  if (!fs.existsSync(lorePath)) {
144
267
  fs.mkdirSync(lorePath, { recursive: true });
@@ -204,6 +327,18 @@ discipline: ${detected}`
204
327
  { path: ".claude/hooks/", desc: "Claude Code enforcement hooks", isDir: true, optional: true },
205
328
  { path: ".cursor/hooks/", desc: "Cursor enforcement hooks", isDir: true, optional: true }
206
329
  ];
330
+ const configPathForSummary = path.join(paradigmDir, "config.yaml");
331
+ if (fs.existsSync(configPathForSummary)) {
332
+ try {
333
+ const cfg = yaml.load(fs.readFileSync(configPathForSummary, "utf8"));
334
+ if (typeof cfg.workspace === "string") {
335
+ const wsAbsPath = path.resolve(cwd, cfg.workspace);
336
+ const wsRelPath = path.relative(cwd, wsAbsPath);
337
+ files.push({ path: wsRelPath, desc: "Multi-project workspace", optional: true });
338
+ }
339
+ } catch {
340
+ }
341
+ }
207
342
  for (const file of files) {
208
343
  const fullPath = path.join(cwd, file.path);
209
344
  if (fs.existsSync(fullPath)) {
@@ -223,10 +358,14 @@ discipline: ${detected}`
223
358
  console.log("");
224
359
  console.log(chalk.white(" Next steps:"));
225
360
  console.log(chalk.gray(" \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"));
226
- console.log(chalk.white(" 1. ") + chalk.gray("Edit ") + chalk.cyan(".purpose") + chalk.gray(" to define your features"));
227
- console.log(chalk.white(" 2. ") + chalk.gray("Create ") + chalk.cyan("portal.yaml") + chalk.gray(" if you have authorization"));
228
- console.log(chalk.white(" 3. ") + chalk.gray("Add ") + chalk.cyan(".purpose") + chalk.gray(" files to feature directories"));
229
- console.log(chalk.white(" 4. ") + chalk.gray("Run ") + chalk.cyan("paradigm shift --verify") + chalk.gray(" to check health"));
361
+ let nextStep = 1;
362
+ if (options.workspace) {
363
+ console.log(chalk.white(` ${nextStep++}. `) + chalk.gray("Run ") + chalk.cyan(`paradigm shift --workspace "${options.workspace}"`) + chalk.gray(" in sibling projects"));
364
+ }
365
+ console.log(chalk.white(` ${nextStep++}. `) + chalk.gray("Edit ") + chalk.cyan(".purpose") + chalk.gray(" to define your features"));
366
+ console.log(chalk.white(` ${nextStep++}. `) + chalk.gray("Create ") + chalk.cyan("portal.yaml") + chalk.gray(" if you have authorization"));
367
+ console.log(chalk.white(` ${nextStep++}. `) + chalk.gray("Add ") + chalk.cyan(".purpose") + chalk.gray(" files to feature directories"));
368
+ console.log(chalk.white(` ${nextStep++}. `) + chalk.gray("Run ") + chalk.cyan("paradigm shift --verify") + chalk.gray(" to check health"));
230
369
  console.log("");
231
370
  tracker.success("Paradigm shift complete", { project: projectName });
232
371
  }
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  AgentSpawner
4
- } from "./chunk-6RNYVBSG.js";
5
- import "./chunk-PBHIFAL4.js";
4
+ } from "./chunk-JQYGPVLQ.js";
6
5
  import {
7
6
  getBestProvider
8
- } from "./chunk-CCG6KYBT.js";
7
+ } from "./chunk-5N5LR2KS.js";
9
8
  import {
10
9
  loadAgentsManifest
11
10
  } from "./chunk-PMXRGPRQ.js";
11
+ import "./chunk-PBHIFAL4.js";
12
12
  import {
13
13
  formatTokens
14
14
  } from "./chunk-5JGJACDU.js";
@@ -7,7 +7,7 @@ import "./chunk-IRKUEJVW.js";
7
7
  import {
8
8
  detectIDE,
9
9
  getAdapter
10
- } from "./chunk-2QNZ6PVD.js";
10
+ } from "./chunk-KB4XJWE3.js";
11
11
  import "./chunk-YO6DVTL7.js";
12
12
  import "./chunk-MO4EEYFW.js";
13
13
 
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  syncCommand
4
- } from "./chunk-QHJGB5TV.js";
5
- import "./chunk-2QNZ6PVD.js";
6
- import "./chunk-4NCFWYGG.js";
4
+ } from "./chunk-RP6TZYGE.js";
5
+ import "./chunk-KB4XJWE3.js";
7
6
  import "./chunk-YO6DVTL7.js";
7
+ import "./chunk-4NCFWYGG.js";
8
8
  import "./chunk-MO4EEYFW.js";
9
9
  export {
10
10
  syncCommand
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  loadParadigmFiles
4
- } from "./chunk-2QNZ6PVD.js";
4
+ } from "./chunk-KB4XJWE3.js";
5
+ import "./chunk-YO6DVTL7.js";
5
6
  import {
6
7
  log
7
8
  } from "./chunk-4NCFWYGG.js";
8
- import "./chunk-YO6DVTL7.js";
9
9
  import "./chunk-MO4EEYFW.js";
10
10
 
11
11
  // src/commands/sync-llms.ts
@@ -8,7 +8,6 @@ import {
8
8
  shelveTask,
9
9
  updateTask
10
10
  } from "./chunk-CSD7IHSN.js";
11
- import "./chunk-MO4EEYFW.js";
12
11
  export {
13
12
  completeTask,
14
13
  createTask,
@@ -8,17 +8,17 @@ import {
8
8
  teamModelsCommand,
9
9
  teamResetCommand,
10
10
  teamStatusCommand
11
- } from "./chunk-4N6AYEEA.js";
12
- import "./chunk-Y4XZWCHK.js";
11
+ } from "./chunk-4PEQHWD7.js";
12
+ import "./chunk-CQFNTBFJ.js";
13
13
  import "./chunk-6QC3YGB6.js";
14
- import "./chunk-HPC3JAUP.js";
15
- import "./chunk-6RNYVBSG.js";
16
- import "./chunk-PBHIFAL4.js";
17
- import "./chunk-CCG6KYBT.js";
14
+ import "./chunk-JQYGPVLQ.js";
15
+ import "./chunk-5N5LR2KS.js";
18
16
  import "./chunk-PMXRGPRQ.js";
17
+ import "./chunk-PBHIFAL4.js";
19
18
  import "./chunk-6P4IFIK2.js";
20
19
  import "./chunk-MRENOFTR.js";
21
20
  import "./chunk-IRKUEJVW.js";
21
+ import "./chunk-MW5DMGBB.js";
22
22
  import "./chunk-5JGJACDU.js";
23
23
  import "./chunk-MO4EEYFW.js";
24
24
  export {
@@ -6,10 +6,10 @@ import {
6
6
  StatsCalculator,
7
7
  TimelineBuilder,
8
8
  loadAllSeedPatterns
9
- } from "./chunk-GY5KO3YZ.js";
9
+ } from "./chunk-RDPXBMHK.js";
10
10
  import {
11
11
  SentinelStorage
12
- } from "./chunk-ADOBV4PH.js";
12
+ } from "./chunk-UVI3OH3G.js";
13
13
  import "./chunk-MO4EEYFW.js";
14
14
 
15
15
  // src/commands/triage/index.ts
@@ -3,7 +3,7 @@ import {
3
3
  detectIDE,
4
4
  loadParadigmFiles,
5
5
  syncToIDE
6
- } from "./chunk-2QNZ6PVD.js";
6
+ } from "./chunk-KB4XJWE3.js";
7
7
  import {
8
8
  parseParadigmConfig,
9
9
  serializeParadigmConfig
@@ -3,7 +3,7 @@ import {
3
3
  detectIDE,
4
4
  loadParadigmFiles,
5
5
  syncToIDE
6
- } from "./chunk-2QNZ6PVD.js";
6
+ } from "./chunk-KB4XJWE3.js";
7
7
  import "./chunk-YO6DVTL7.js";
8
8
  import "./chunk-MO4EEYFW.js";
9
9
 
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ detectProjectRole,
4
+ workspaceInitCommand,
5
+ workspaceReindexCommand,
6
+ workspaceStatusCommand
7
+ } from "./chunk-C3BK3E23.js";
8
+ import "./chunk-UI3XXVJ6.js";
9
+ import "./chunk-AK5M6KJB.js";
10
+ import "./chunk-6P4IFIK2.js";
11
+ import "./chunk-MRENOFTR.js";
12
+ import "./chunk-IRKUEJVW.js";
13
+ import "./chunk-4NCFWYGG.js";
14
+ import "./chunk-MO4EEYFW.js";
15
+ export {
16
+ detectProjectRole,
17
+ workspaceInitCommand,
18
+ workspaceReindexCommand,
19
+ workspaceStatusCommand
20
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@a-company/paradigm",
3
- "version": "3.9.0",
3
+ "version": "3.12.0",
4
4
  "description": "Unified CLI for Paradigm developer tools",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -35,6 +35,7 @@
35
35
  "open": "^10.0.3",
36
36
  "ora": "^8.0.1",
37
37
  "prompts": "^2.4.2",
38
+ "sql.js": "^1.10.3",
38
39
  "zod": "^3.23.0"
39
40
  },
40
41
  "devDependencies": {
@@ -1,42 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- // src/core/portal-compliance.ts
4
- import * as fs from "fs";
5
- import * as path from "path";
6
- import * as yaml from "js-yaml";
7
- function loadPortalConfig(rootDir) {
8
- const portalPath = path.join(rootDir, "portal.yaml");
9
- if (!fs.existsSync(portalPath)) {
10
- return null;
11
- }
12
- try {
13
- const content = fs.readFileSync(portalPath, "utf-8");
14
- return yaml.load(content);
15
- } catch {
16
- return null;
17
- }
18
- }
19
- function extractDeclaredGates(config) {
20
- const gates = /* @__PURE__ */ new Set();
21
- if (config.gates) {
22
- for (const key of Object.keys(config.gates)) {
23
- const gateName = key.startsWith("^") ? key.slice(1) : key;
24
- gates.add(gateName);
25
- }
26
- }
27
- if (config.routes) {
28
- for (const routeConfig of Object.values(config.routes)) {
29
- const gateList = Array.isArray(routeConfig) ? routeConfig : routeConfig.gates || [];
30
- for (const gate of gateList) {
31
- const gateName = gate.startsWith("^") ? gate.slice(1) : gate;
32
- gates.add(gateName);
33
- }
34
- }
35
- }
36
- return Array.from(gates);
37
- }
38
-
39
- export {
40
- loadPortalConfig,
41
- extractDeclaredGates
42
- };
File without changes