@a-company/paradigm 3.11.0 → 3.13.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 (100) hide show
  1. package/dist/{accept-orchestration-Z35I5AYN.js → accept-orchestration-ORQRKKGR.js} +4 -4
  2. package/dist/{agents-suggest-35LIQKDH.js → agents-suggest-65SER5IS.js} +1 -1
  3. package/dist/{aggregate-V4KPR3RW.js → aggregate-M5WMUI6B.js} +1 -1
  4. package/dist/{auto-6MOGYQ4G.js → auto-B22FVSQI.js} +1 -1
  5. package/dist/{beacon-XRXL5KZB.js → beacon-XL2ALH5O.js} +1 -1
  6. package/dist/{check-UZY647TB.js → check-5RKOAN7S.js} +1 -1
  7. package/dist/{chunk-RDPXBMHK.js → chunk-3BAMPB6I.js} +6 -6
  8. package/dist/{chunk-5TUAVVIG.js → chunk-6GWRQWQB.js} +1 -1
  9. package/dist/{workspace-VBTW7OYL.js → chunk-C3BK3E23.js} +3 -6
  10. package/dist/{chunk-BC6XKMUA.js → chunk-K34C7NAN.js} +4 -4
  11. package/dist/{chunk-2QNZ6PVD.js → chunk-KB4XJWE3.js} +63 -1
  12. package/dist/{chunk-F6EJKLF4.js → chunk-O5ZO5LSW.js} +1 -1
  13. package/dist/{chunk-UVI3OH3G.js → chunk-R2SGQ22F.js} +11 -58
  14. package/dist/{chunk-QHJGB5TV.js → chunk-RP6TZYGE.js} +1 -1
  15. package/dist/{chunk-3TWXFFZ3.js → chunk-XKAFTZOZ.js} +1 -1
  16. package/dist/{chunk-5N5LR2KS.js → chunk-XNUWLW73.js} +6 -6
  17. package/dist/{chunk-CP6IZGUN.js → chunk-YOFP72IB.js} +4 -4
  18. package/dist/{chunk-24AAVLME.js → chunk-Z42FOOVT.js} +3 -3
  19. package/dist/{chunk-OSYMVGWX.js → chunk-ZMN3RAIT.js} +9 -9
  20. package/dist/{chunk-4ZO3ZOPM.js → chunk-ZRPEI35Q.js} +14 -59
  21. package/dist/chunk-ZXMDA7VB.js +16 -0
  22. package/dist/{claude-SUYNN72C.js → claude-63ISJAZK.js} +1 -1
  23. package/dist/{claude-cli-OF43XAO3.js → claude-cli-ABML5RHX.js} +1 -1
  24. package/dist/{claude-code-PW6SKD2M.js → claude-code-JRLMRPTO.js} +1 -1
  25. package/dist/{claude-code-teams-JLZ5IXB6.js → claude-code-teams-CAJBEFIZ.js} +1 -1
  26. package/dist/commands-VTFOZPUA.js +5387 -0
  27. package/dist/{constellation-GNK5DIMH.js → constellation-NXU6Q2HM.js} +1 -1
  28. package/dist/{cost-AGO5N7DD.js → cost-CTGSLSOC.js} +1 -1
  29. package/dist/{cost-KYXIQ62X.js → cost-XEBADYFT.js} +1 -1
  30. package/dist/{cursor-cli-IHJMPRCW.js → cursor-cli-QUOOF2N4.js} +1 -1
  31. package/dist/{cursorrules-LQFA7M62.js → cursorrules-XBWFX66V.js} +1 -1
  32. package/dist/{delete-3YXAJ5AA.js → delete-OINCSDQH.js} +2 -2
  33. package/dist/{diff-PZAYCIAE.js → diff-4XJZN4OB.js} +4 -4
  34. package/dist/{dist-ZEMSQV74.js → dist-3RVKEJRT.js} +1 -1
  35. package/dist/{dist-Q6SAZI7X.js → dist-7U64HDSC.js} +1 -1
  36. package/dist/{dist-AG5JNIZU-XSEZ2LLK.js → dist-AG5JNIZU-HW2FWNTZ.js} +1 -1
  37. package/dist/dist-KY5HGDDL.js +1304 -0
  38. package/dist/{dist-JOHRYQUA.js → dist-PSF5CP4I.js} +1 -1
  39. package/dist/{dist-6SX5ZKKF.js → dist-RMAIFRTW.js} +3 -3
  40. package/dist/{dist-YB7T54QE.js → dist-YHDSIZQD.js} +1 -1
  41. package/dist/{doctor-3YQ55536.js → doctor-FINKMI66.js} +4 -4
  42. package/dist/{drift-FH2UY64B.js → drift-YGT4LJ7Q.js} +1 -1
  43. package/dist/{echo-VYZW3OTT.js → echo-A6HD5UP7.js} +1 -1
  44. package/dist/{edit-EOMPXOG5.js → edit-7FSQNAPE.js} +2 -2
  45. package/dist/{export-R4FJ5NOH.js → export-T7CMMJIB.js} +1 -1
  46. package/dist/{flow-MCKPJGRJ.js → flow-UFMPVOEM.js} +1 -1
  47. package/dist/{global-AXILUM5X.js → global-HHUJSBG5.js} +1 -1
  48. package/dist/{habits-NC2TRMRV.js → habits-KD4RLIN2.js} +3 -3
  49. package/dist/{history-EVO3L6SC.js → history-CETCSUCP.js} +1 -1
  50. package/dist/{hooks-JXYHVGIN.js → hooks-TCUHQMPF.js} +1 -1
  51. package/dist/index.js +143 -142
  52. package/dist/{lint-N4LMMEXH.js → lint-53GPXKKI.js} +1 -1
  53. package/dist/{list-JKBJ7ESH.js → list-Q4R7L7WJ.js} +2 -2
  54. package/dist/{lore-server-RQH5REZV.js → lore-server-GKZ6ESNJ.js} +1 -1
  55. package/dist/{manual-Y3QOXWYA.js → manual-AFJ2J2V3.js} +1 -1
  56. package/dist/mcp.js +4 -4
  57. package/dist/{orchestrate-BGRFBGBH.js → orchestrate-6XGEA655.js} +4 -4
  58. package/dist/{portal-check-2HI4FFD6.js → portal-check-FF5EKZE5.js} +1 -1
  59. package/dist/{portal-compliance-KQCTAQTJ.js → portal-compliance-VU4NIFEN.js} +1 -1
  60. package/dist/{probe-X3J2JX62.js → probe-T77FFIAG.js} +1 -1
  61. package/dist/{promote-HZH5E5CO.js → promote-XO63XMAN.js} +2 -2
  62. package/dist/{providers-IONB4YRJ.js → providers-VIBWDN5D.js} +2 -2
  63. package/dist/{record-EECZ3E4I.js → record-YJ3D3462.js} +2 -2
  64. package/dist/{reindex-ZM6J53UP.js → reindex-4OOME3TT.js} +1 -1
  65. package/dist/{remember-3KJZGDUG.js → remember-IEBQHXHZ.js} +1 -1
  66. package/dist/{review-BF26ILZB.js → review-3OW3KVW7.js} +2 -2
  67. package/dist/{ripple-JIUAMBLA.js → ripple-DFMXLFWI.js} +1 -1
  68. package/dist/{sentinel-BGCISNIK.js → sentinel-RERNMWSE.js} +2 -2
  69. package/dist/sentinel-mcp.js +4181 -0
  70. package/dist/sentinel.js +35 -0
  71. package/dist/{serve-H7ZBMODT.js → serve-XLKEMQEH.js} +2 -2
  72. package/dist/server-CAXNYVV7.js +1616 -0
  73. package/dist/{server-E2CNZC4K.js → server-V3ANAXDP.js} +1 -1
  74. package/dist/{setup-UKJ3VGHI.js → setup-HOI52TN3.js} +2 -2
  75. package/dist/{setup-363IB6MO.js → setup-YNZJQLW7.js} +1 -1
  76. package/dist/{shift-6I6N6RNK.js → shift-SW3GSODO.js} +129 -18
  77. package/dist/{show-SAMTXEHG.js → show-CJGHREFS.js} +2 -2
  78. package/dist/{snapshot-KCMONZAO.js → snapshot-XHINQBZS.js} +1 -1
  79. package/dist/{spawn-WGFJ5RQZ.js → spawn-JSV2HST3.js} +5 -5
  80. package/dist/{summary-E2PU4UN2.js → summary-NV7SBV5O.js} +2 -2
  81. package/dist/{switch-CC2KACXO.js → switch-WYUMVNA5.js} +1 -1
  82. package/dist/{sync-5VJPZQNX.js → sync-ZM4Q3R4U.js} +4 -4
  83. package/dist/{sync-llms-7QDA3ZWC.js → sync-llms-JIPP3XX4.js} +3 -3
  84. package/dist/{team-AFOKQ7YQ.js → team-YIYA4ZLX.js} +5 -5
  85. package/dist/{test-DK2RWLTK.js → test-WTR5Q33E.js} +1 -1
  86. package/dist/{thread-RNSLADXN.js → thread-3WM7KKID.js} +1 -1
  87. package/dist/{timeline-TJDVVVA3.js → timeline-ELO5JTQO.js} +2 -2
  88. package/dist/{triage-MKKIWBSW.js → triage-GJ6GK647.js} +3 -3
  89. package/dist/{tutorial-L5Q3ZDHK.js → tutorial-GC6QL4US.js} +1 -1
  90. package/dist/{university-65YJZ2LW.js → university-KVYNACJZ.js} +2 -2
  91. package/dist/{upgrade-RBSE4M6I.js → upgrade-65QOQXRC.js} +2 -2
  92. package/dist/{validate-F3YHBCRZ.js → validate-ITC5D6QG.js} +1 -1
  93. package/dist/{validate-2LTHHORX.js → validate-TKKRGJKC.js} +1 -1
  94. package/dist/{watch-PAEH6MOG.js → watch-ERBEJUJW.js} +2 -2
  95. package/dist/{watch-NBPOMOEX.js → watch-X64UK7K4.js} +2 -2
  96. package/dist/{wisdom-LRM4FFCH.js → wisdom-L2WC7J62.js} +1 -1
  97. package/dist/workspace-S5Q5LVA6.js +20 -0
  98. package/package.json +7 -2
  99. package/dist/chunk-MO4EEYFW.js +0 -38
  100. package/dist/server-3K3TTJH3.js +0 -10539
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import "./chunk-MO4EEYFW.js";
2
+ import "./chunk-ZXMDA7VB.js";
3
3
 
4
4
  // ../university/dist/chunk-3ZAP26AP.js
5
5
  import express from "express";
@@ -16,7 +16,7 @@ import {
16
16
  DEFAULT_SYMBOL_SYSTEM,
17
17
  serializeParadigmConfig
18
18
  } from "./chunk-YO6DVTL7.js";
19
- import "./chunk-MO4EEYFW.js";
19
+ import "./chunk-ZXMDA7VB.js";
20
20
 
21
21
  // src/commands/setup.ts
22
22
  import * as fs from "fs";
@@ -262,7 +262,7 @@ async function setupCommand(targetPath, options) {
262
262
  }
263
263
  const gatePath = path.join(rootDir, "portal.yaml");
264
264
  if (answers.hasGates === "yes" && !fs.existsSync(gatePath)) {
265
- const { getDefaultGateConfig } = await import("./dist-ZEMSQV74.js");
265
+ const { getDefaultGateConfig } = await import("./dist-3RVKEJRT.js");
266
266
  fs.writeFileSync(gatePath, getDefaultGateConfig(), "utf8");
267
267
  console.log(chalk.green("\u2705 Created portal.yaml"));
268
268
  }
@@ -11,7 +11,7 @@ import {
11
11
  writeConfig
12
12
  } from "./chunk-GZDFVP2N.js";
13
13
  import "./chunk-4NCFWYGG.js";
14
- import "./chunk-MO4EEYFW.js";
14
+ import "./chunk-ZXMDA7VB.js";
15
15
  export {
16
16
  detectAllClients,
17
17
  generateMCPConfig,
@@ -1,45 +1,48 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  teamInitCommand
4
- } from "./chunk-3TWXFFZ3.js";
5
- import "./chunk-24AAVLME.js";
4
+ } from "./chunk-XKAFTZOZ.js";
5
+ import "./chunk-Z42FOOVT.js";
6
6
  import "./chunk-6QC3YGB6.js";
7
- import "./chunk-CP6IZGUN.js";
7
+ import "./chunk-YOFP72IB.js";
8
+ import "./chunk-XNUWLW73.js";
8
9
  import {
9
10
  agentsConfigured
10
11
  } from "./chunk-PMXRGPRQ.js";
11
12
  import "./chunk-PBHIFAL4.js";
12
- import "./chunk-5N5LR2KS.js";
13
13
  import {
14
14
  hooksInstallCommand
15
15
  } from "./chunk-DS5QY37M.js";
16
16
  import {
17
- initCommand
18
- } from "./chunk-BC6XKMUA.js";
17
+ detectProjectRole
18
+ } from "./chunk-C3BK3E23.js";
19
19
  import {
20
- indexCommand
21
- } from "./chunk-UI3XXVJ6.js";
20
+ initCommand
21
+ } from "./chunk-K34C7NAN.js";
22
22
  import {
23
23
  detectDiscipline
24
24
  } from "./chunk-CHSHON3O.js";
25
+ import {
26
+ indexCommand
27
+ } from "./chunk-UI3XXVJ6.js";
25
28
  import "./chunk-AK5M6KJB.js";
26
29
  import "./chunk-6P4IFIK2.js";
27
30
  import "./chunk-MRENOFTR.js";
28
31
  import "./chunk-IRKUEJVW.js";
29
32
  import {
30
33
  syncCommand
31
- } from "./chunk-QHJGB5TV.js";
34
+ } from "./chunk-RP6TZYGE.js";
32
35
  import "./chunk-MW5DMGBB.js";
33
36
  import {
34
37
  doctorCommand
35
- } from "./chunk-OSYMVGWX.js";
36
- import "./chunk-2QNZ6PVD.js";
38
+ } from "./chunk-ZMN3RAIT.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
- import "./chunk-MO4EEYFW.js";
45
+ import "./chunk-ZXMDA7VB.js";
43
46
 
44
47
  // src/commands/shift.ts
45
48
  import * as fs from "fs";
@@ -112,7 +115,80 @@ discipline: ${detected}`
112
115
  }
113
116
  {
114
117
  const configPath = path.join(paradigmDir, "config.yaml");
115
- if (fs.existsSync(configPath)) {
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)) {
116
192
  try {
117
193
  const configContent = fs.readFileSync(configPath, "utf8");
118
194
  const config = yaml.load(configContent);
@@ -167,6 +243,25 @@ workspace: "${relPath}"
167
243
  } else {
168
244
  spinner.succeed(chalk.gray("Step 3/6: Skipped scan (--quick mode)"));
169
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-S5Q5LVA6.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
+ }
170
265
  const lorePath = path.join(cwd, ".paradigm", "lore");
171
266
  if (!fs.existsSync(lorePath)) {
172
267
  fs.mkdirSync(lorePath, { recursive: true });
@@ -232,6 +327,18 @@ workspace: "${relPath}"
232
327
  { path: ".claude/hooks/", desc: "Claude Code enforcement hooks", isDir: true, optional: true },
233
328
  { path: ".cursor/hooks/", desc: "Cursor enforcement hooks", isDir: true, optional: true }
234
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
+ }
235
342
  for (const file of files) {
236
343
  const fullPath = path.join(cwd, file.path);
237
344
  if (fs.existsSync(fullPath)) {
@@ -251,10 +358,14 @@ workspace: "${relPath}"
251
358
  console.log("");
252
359
  console.log(chalk.white(" Next steps:"));
253
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"));
254
- console.log(chalk.white(" 1. ") + chalk.gray("Edit ") + chalk.cyan(".purpose") + chalk.gray(" to define your features"));
255
- console.log(chalk.white(" 2. ") + chalk.gray("Create ") + chalk.cyan("portal.yaml") + chalk.gray(" if you have authorization"));
256
- console.log(chalk.white(" 3. ") + chalk.gray("Add ") + chalk.cyan(".purpose") + chalk.gray(" files to feature directories"));
257
- 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"));
258
369
  console.log("");
259
370
  tracker.success("Paradigm shift complete", { project: projectName });
260
371
  }
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  loadLoreEntry
4
- } from "./chunk-5TUAVVIG.js";
5
- import "./chunk-MO4EEYFW.js";
4
+ } from "./chunk-6GWRQWQB.js";
5
+ import "./chunk-ZXMDA7VB.js";
6
6
 
7
7
  // src/commands/lore/show.ts
8
8
  import chalk from "chalk";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-6P4IFIK2.js";
7
7
  import "./chunk-MRENOFTR.js";
8
8
  import "./chunk-IRKUEJVW.js";
9
- import "./chunk-MO4EEYFW.js";
9
+ import "./chunk-ZXMDA7VB.js";
10
10
 
11
11
  // src/commands/premise/snapshot.ts
12
12
  import * as fs from "fs";
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  AgentSpawner
4
- } from "./chunk-CP6IZGUN.js";
4
+ } from "./chunk-YOFP72IB.js";
5
+ import {
6
+ getBestProvider
7
+ } from "./chunk-XNUWLW73.js";
5
8
  import {
6
9
  loadAgentsManifest
7
10
  } from "./chunk-PMXRGPRQ.js";
8
11
  import "./chunk-PBHIFAL4.js";
9
- import {
10
- getBestProvider
11
- } from "./chunk-5N5LR2KS.js";
12
12
  import {
13
13
  formatTokens
14
14
  } from "./chunk-5JGJACDU.js";
15
- import "./chunk-MO4EEYFW.js";
15
+ import "./chunk-ZXMDA7VB.js";
16
16
 
17
17
  // src/commands/team/spawn.ts
18
18
  import * as path from "path";
@@ -7,9 +7,9 @@ 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
- import "./chunk-MO4EEYFW.js";
12
+ import "./chunk-ZXMDA7VB.js";
13
13
 
14
14
  // src/commands/summary.ts
15
15
  import * as fs from "fs";
@@ -4,7 +4,7 @@ import {
4
4
  getServersFromConfig
5
5
  } from "./chunk-GZDFVP2N.js";
6
6
  import "./chunk-4NCFWYGG.js";
7
- import "./chunk-MO4EEYFW.js";
7
+ import "./chunk-ZXMDA7VB.js";
8
8
 
9
9
  // src/commands/mcp/switch.ts
10
10
  import * as fs from "fs";
@@ -1,11 +1,11 @@
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";
8
- import "./chunk-MO4EEYFW.js";
7
+ import "./chunk-4NCFWYGG.js";
8
+ import "./chunk-ZXMDA7VB.js";
9
9
  export {
10
10
  syncCommand
11
11
  };
@@ -1,12 +1,12 @@
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
- import "./chunk-MO4EEYFW.js";
9
+ import "./chunk-ZXMDA7VB.js";
10
10
 
11
11
  // src/commands/sync-llms.ts
12
12
  import * as fs from "fs";
@@ -8,19 +8,19 @@ import {
8
8
  teamModelsCommand,
9
9
  teamResetCommand,
10
10
  teamStatusCommand
11
- } from "./chunk-3TWXFFZ3.js";
12
- import "./chunk-24AAVLME.js";
11
+ } from "./chunk-XKAFTZOZ.js";
12
+ import "./chunk-Z42FOOVT.js";
13
13
  import "./chunk-6QC3YGB6.js";
14
- import "./chunk-CP6IZGUN.js";
14
+ import "./chunk-YOFP72IB.js";
15
+ import "./chunk-XNUWLW73.js";
15
16
  import "./chunk-PMXRGPRQ.js";
16
17
  import "./chunk-PBHIFAL4.js";
17
- import "./chunk-5N5LR2KS.js";
18
18
  import "./chunk-6P4IFIK2.js";
19
19
  import "./chunk-MRENOFTR.js";
20
20
  import "./chunk-IRKUEJVW.js";
21
21
  import "./chunk-MW5DMGBB.js";
22
22
  import "./chunk-5JGJACDU.js";
23
- import "./chunk-MO4EEYFW.js";
23
+ import "./chunk-ZXMDA7VB.js";
24
24
  export {
25
25
  teamAcceptCommand,
26
26
  teamCheckCommand,
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  parseGateConfig
4
4
  } from "./chunk-IRKUEJVW.js";
5
- import "./chunk-MO4EEYFW.js";
5
+ import "./chunk-ZXMDA7VB.js";
6
6
 
7
7
  // src/commands/portal/test.ts
8
8
  import * as path3 from "path";
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import "./chunk-MO4EEYFW.js";
2
+ import "./chunk-ZXMDA7VB.js";
3
3
 
4
4
  // src/commands/thread.ts
5
5
  import * as fs from "fs";
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  loadLoreEntries
4
- } from "./chunk-5TUAVVIG.js";
5
- import "./chunk-MO4EEYFW.js";
4
+ } from "./chunk-6GWRQWQB.js";
5
+ import "./chunk-ZXMDA7VB.js";
6
6
 
7
7
  // src/commands/lore/timeline.ts
8
8
  import chalk from "chalk";
@@ -6,11 +6,11 @@ import {
6
6
  StatsCalculator,
7
7
  TimelineBuilder,
8
8
  loadAllSeedPatterns
9
- } from "./chunk-RDPXBMHK.js";
9
+ } from "./chunk-3BAMPB6I.js";
10
10
  import {
11
11
  SentinelStorage
12
- } from "./chunk-UVI3OH3G.js";
13
- import "./chunk-MO4EEYFW.js";
12
+ } from "./chunk-R2SGQ22F.js";
13
+ import "./chunk-ZXMDA7VB.js";
14
14
 
15
15
  // src/commands/triage/index.ts
16
16
  import chalk2 from "chalk";
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import "./chunk-MO4EEYFW.js";
2
+ import "./chunk-ZXMDA7VB.js";
3
3
 
4
4
  // src/commands/tutorial/index.ts
5
5
  import * as path from "path";
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import "./chunk-MO4EEYFW.js";
2
+ import "./chunk-ZXMDA7VB.js";
3
3
 
4
4
  // src/commands/university.ts
5
5
  import chalk from "chalk";
@@ -12,7 +12,7 @@ async function universityCommand(_path, options) {
12
12
  const shouldOpen = options.open !== false;
13
13
  console.log(chalk.cyan("\nOpening the campus gates...\n"));
14
14
  try {
15
- const { startServer } = await import("./server-E2CNZC4K.js");
15
+ const { startServer } = await import("./server-V3ANAXDP.js");
16
16
  const contentDir = path.resolve(__dirname, "university-content");
17
17
  const uiDistPath = path.resolve(__dirname, "university-ui");
18
18
  console.log(chalk.gray(`Port: ${port}`));
@@ -3,12 +3,12 @@ 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
10
10
  } from "./chunk-YO6DVTL7.js";
11
- import "./chunk-MO4EEYFW.js";
11
+ import "./chunk-ZXMDA7VB.js";
12
12
 
13
13
  // src/commands/upgrade.ts
14
14
  import * as fs from "fs";
@@ -4,7 +4,7 @@ import {
4
4
  parseGateConfig,
5
5
  validateGateConfig
6
6
  } from "./chunk-IRKUEJVW.js";
7
- import "./chunk-MO4EEYFW.js";
7
+ import "./chunk-ZXMDA7VB.js";
8
8
 
9
9
  // src/commands/portal/validate.ts
10
10
  import * as path from "path";
@@ -4,7 +4,7 @@ import {
4
4
  getAllPurposeFiles,
5
5
  validatePurposeFile
6
6
  } from "./chunk-MRENOFTR.js";
7
- import "./chunk-MO4EEYFW.js";
7
+ import "./chunk-ZXMDA7VB.js";
8
8
 
9
9
  // src/commands/purpose/validate.ts
10
10
  import * as path from "path";
@@ -3,9 +3,9 @@ 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
- import "./chunk-MO4EEYFW.js";
8
+ import "./chunk-ZXMDA7VB.js";
9
9
 
10
10
  // src/commands/watch.ts
11
11
  import * as fs from "fs";
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import "./chunk-MO4EEYFW.js";
2
+ import "./chunk-ZXMDA7VB.js";
3
3
 
4
4
  // src/commands/portal/watch.ts
5
5
  import * as path from "path";
@@ -125,7 +125,7 @@ async function portalExportCommand(targetPath, options = {}) {
125
125
  console.error(chalk.red(`portal.yaml not found at ${configPath}`));
126
126
  process.exit(1);
127
127
  }
128
- const { parse } = await import("./dist-JOHRYQUA.js");
128
+ const { parse } = await import("./dist-PSF5CP4I.js");
129
129
  const raw = fs.readFileSync(configPath, "utf8");
130
130
  const config = parse(raw);
131
131
  const gates = config.gates || {};
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import "./chunk-MO4EEYFW.js";
2
+ import "./chunk-ZXMDA7VB.js";
3
3
 
4
4
  // src/commands/wisdom/index.ts
5
5
  import * as fs from "fs";
@@ -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-ZXMDA7VB.js";
15
+ export {
16
+ detectProjectRole,
17
+ workspaceInitCommand,
18
+ workspaceReindexCommand,
19
+ workspaceStatusCommand
20
+ };
package/package.json CHANGED
@@ -1,13 +1,15 @@
1
1
  {
2
2
  "name": "@a-company/paradigm",
3
- "version": "3.11.0",
3
+ "version": "3.13.0",
4
4
  "description": "Unified CLI for Paradigm developer tools",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
8
  "bin": {
9
9
  "paradigm": "./dist/index.js",
10
- "paradigm-mcp": "./dist/mcp.js"
10
+ "paradigm-mcp": "./dist/mcp.js",
11
+ "sentinel": "./dist/sentinel.js",
12
+ "sentinel-mcp": "./dist/sentinel-mcp.js"
11
13
  },
12
14
  "files": [
13
15
  "dist",
@@ -35,7 +37,10 @@
35
37
  "open": "^10.0.3",
36
38
  "ora": "^8.0.1",
37
39
  "prompts": "^2.4.2",
40
+ "simple-git": "^3.22.0",
38
41
  "sql.js": "^1.10.3",
42
+ "uuid": "^9.0.0",
43
+ "ws": "^8.19.0",
39
44
  "zod": "^3.23.0"
40
45
  },
41
46
  "devDependencies": {
@@ -1,38 +0,0 @@
1
- #!/usr/bin/env node
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
9
- get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
10
- }) : x)(function(x) {
11
- if (typeof require !== "undefined") return require.apply(this, arguments);
12
- throw Error('Dynamic require of "' + x + '" is not supported');
13
- });
14
- var __commonJS = (cb, mod) => function __require2() {
15
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
16
- };
17
- var __copyProps = (to, from, except, desc) => {
18
- if (from && typeof from === "object" || typeof from === "function") {
19
- for (let key of __getOwnPropNames(from))
20
- if (!__hasOwnProp.call(to, key) && key !== except)
21
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22
- }
23
- return to;
24
- };
25
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
26
- // If the importer is in node compatibility mode or this is not an ESM
27
- // file that has been converted to a CommonJS file using a Babel-
28
- // compatible transform (i.e. "__esModule" has not been set), then set
29
- // "default" to the CommonJS "module.exports" for node compatibility.
30
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
31
- mod
32
- ));
33
-
34
- export {
35
- __require,
36
- __commonJS,
37
- __toESM
38
- };