@a-company/paradigm 3.0.3 → 3.1.2

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 (32) hide show
  1. package/dist/{triage-RM5KNG5V.js → chunk-4LGLU2LO.js} +1035 -663
  2. package/dist/{chunk-4WR7X3FE.js → chunk-AQZSUGL3.js} +42 -6
  3. package/dist/{chunk-27OSFWHG.js → chunk-MVXJVRFI.js} +98 -1
  4. package/dist/{chunk-S65LENNL.js → chunk-VZ7CXFRZ.js} +248 -3
  5. package/dist/delete-W67IVTLJ.js +45 -0
  6. package/dist/dist-GPQ4LAY3.js +42 -0
  7. package/dist/edit-Y7XPYSMK.js +63 -0
  8. package/dist/habits-FA65W77Y.js +1153 -0
  9. package/dist/{hooks-7TQIRXXS.js → hooks-YXPQV4SP.js} +1 -1
  10. package/dist/index.js +84 -31
  11. package/dist/{list-QMUE7DPK.js → list-R3QWW4SC.js} +3 -1
  12. package/dist/{lore-server-3TAIUZ3Y.js → lore-server-RQH5REZV.js} +166 -41
  13. package/dist/mcp.js +1608 -117
  14. package/dist/{record-5CTCDFUO.js → record-OHQNWOUP.js} +7 -2
  15. package/dist/{review-QEDNQAIO.js → review-RUHX25A5.js} +1 -1
  16. package/dist/{sentinel-RSEXIRXM.js → sentinel-WB7GIK4V.js} +1 -1
  17. package/dist/{serve-WCIRW244.js → serve-H7ZBMODT.js} +1 -1
  18. package/dist/{server-NXG5N7JE.js → server-MV4HNFVF.js} +1 -1
  19. package/dist/{shift-NABNKPGL.js → shift-JDBRTHWO.js} +1 -1
  20. package/dist/{show-S653P3TO.js → show-WTOJXUTN.js} +1 -1
  21. package/dist/timeline-P7BARFLI.js +110 -0
  22. package/dist/triage-TBIWJA6R.js +671 -0
  23. package/dist/university-content/courses/para-401.json +1 -1
  24. package/dist/university-content/courses/para-501.json +486 -0
  25. package/dist/university-content/plsat/v3.0.json +233 -0
  26. package/dist/university-content/reference.json +61 -0
  27. package/lore-ui/dist/assets/index-BB3P4Cok.js +56 -0
  28. package/lore-ui/dist/assets/index-DI0Q6NmX.css +1 -0
  29. package/lore-ui/dist/index.html +2 -2
  30. package/package.json +1 -1
  31. package/lore-ui/dist/assets/index-DcT8TINz.js +0 -56
  32. package/lore-ui/dist/assets/index-DyJhpQ5w.css +0 -1
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  recordLore
4
- } from "./chunk-27OSFWHG.js";
4
+ } from "./chunk-MVXJVRFI.js";
5
5
  import "./chunk-MO4EEYFW.js";
6
6
 
7
7
  // src/commands/lore/record.ts
@@ -13,6 +13,7 @@ async function loreRecordCommand(options) {
13
13
  // auto-generated
14
14
  type: options.type || "human-note",
15
15
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
16
+ duration_minutes: options.duration ? parseInt(options.duration, 10) : void 0,
16
17
  author: {
17
18
  type: "human",
18
19
  id: options.author || "unknown"
@@ -20,11 +21,15 @@ async function loreRecordCommand(options) {
20
21
  title: options.title || "Untitled",
21
22
  summary: options.summary || "",
22
23
  symbols_touched: options.symbols ? options.symbols.split(",").map((s) => s.trim()) : [],
24
+ files_modified: options.filesModified ? options.filesModified.split(",").map((f) => f.trim()) : void 0,
25
+ files_created: options.filesCreated ? options.filesCreated.split(",").map((f) => f.trim()) : void 0,
26
+ commit: options.commit || void 0,
27
+ learnings: options.learnings ? options.learnings.split(",").map((l) => l.trim()) : void 0,
23
28
  tags: options.tags ? options.tags.split(",").map((t) => t.trim()) : void 0
24
29
  };
25
30
  await recordLore(rootDir, entry);
26
31
  console.log(chalk.green(`
27
- \u2713 Lore entry recorded: ${entry.id}
32
+ Lore entry recorded: ${entry.id}
28
33
  `));
29
34
  }
30
35
  export {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  addReview
4
- } from "./chunk-27OSFWHG.js";
4
+ } from "./chunk-MVXJVRFI.js";
5
5
  import "./chunk-MO4EEYFW.js";
6
6
 
7
7
  // src/commands/lore/review.ts
@@ -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-NXG5N7JE.js");
12
+ const { startServer } = await import("./server-MV4HNFVF.js");
13
13
  console.log(chalk.gray(`Project: ${projectDir}`));
14
14
  console.log(chalk.gray(`Port: ${port}`));
15
15
  console.log();
@@ -9,7 +9,7 @@ async function loreServeCommand(path, options) {
9
9
  const shouldOpen = options.open !== false;
10
10
  console.log(chalk.cyan("\nStarting Lore Timeline...\n"));
11
11
  try {
12
- const { startLoreServer } = await import("./lore-server-3TAIUZ3Y.js");
12
+ const { startLoreServer } = await import("./lore-server-RQH5REZV.js");
13
13
  console.log(chalk.gray(`Project: ${projectDir}`));
14
14
  console.log(chalk.gray(`Port: ${port}`));
15
15
  console.log();
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  SentinelStorage
4
- } from "./chunk-S65LENNL.js";
4
+ } from "./chunk-VZ7CXFRZ.js";
5
5
  import {
6
6
  __commonJS,
7
7
  __require,
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-PMXRGPRQ.js";
13
13
  import {
14
14
  hooksInstallCommand
15
- } from "./chunk-4WR7X3FE.js";
15
+ } from "./chunk-AQZSUGL3.js";
16
16
  import {
17
17
  indexCommand,
18
18
  initCommand
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  loadLoreEntry
4
- } from "./chunk-27OSFWHG.js";
4
+ } from "./chunk-MVXJVRFI.js";
5
5
  import "./chunk-MO4EEYFW.js";
6
6
 
7
7
  // src/commands/lore/show.ts
@@ -0,0 +1,110 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ loadLoreEntries
4
+ } from "./chunk-MVXJVRFI.js";
5
+ import "./chunk-MO4EEYFW.js";
6
+
7
+ // src/commands/lore/timeline.ts
8
+ import chalk from "chalk";
9
+ async function loreTimelineCommand(options) {
10
+ const rootDir = process.cwd();
11
+ const limit = parseInt(options.limit || "20", 10);
12
+ const entries = await loadLoreEntries(rootDir, { limit });
13
+ if (entries.length === 0) {
14
+ if (options.json) {
15
+ console.log(JSON.stringify({ entries: [], byDate: {}, hotSymbols: [], authors: [] }, null, 2));
16
+ } else {
17
+ console.log(chalk.gray("\nNo lore entries found.\n"));
18
+ }
19
+ return;
20
+ }
21
+ const byDate = /* @__PURE__ */ new Map();
22
+ for (const entry of entries) {
23
+ const date = entry.timestamp.slice(0, 10);
24
+ if (!byDate.has(date)) byDate.set(date, []);
25
+ byDate.get(date).push(entry);
26
+ }
27
+ const symbolCounts = /* @__PURE__ */ new Map();
28
+ for (const entry of entries) {
29
+ for (const sym of entry.symbols_touched) {
30
+ symbolCounts.set(sym, (symbolCounts.get(sym) || 0) + 1);
31
+ }
32
+ }
33
+ const hotSymbols = Array.from(symbolCounts.entries()).sort(([, a], [, b]) => b - a).slice(0, 10).map(([symbol, count]) => ({ symbol, count }));
34
+ const authorActivity = /* @__PURE__ */ new Map();
35
+ for (const entry of entries) {
36
+ const aid = entry.author.id;
37
+ const existing = authorActivity.get(aid);
38
+ if (!existing) {
39
+ authorActivity.set(aid, { count: 1, type: entry.author.type, lastActive: entry.timestamp });
40
+ } else {
41
+ existing.count++;
42
+ if (entry.timestamp > existing.lastActive) existing.lastActive = entry.timestamp;
43
+ }
44
+ }
45
+ if (options.json) {
46
+ const grouped = {};
47
+ for (const [date, dayEntries] of byDate) {
48
+ grouped[date] = dayEntries.map((e) => ({
49
+ id: e.id,
50
+ type: e.type,
51
+ title: e.title,
52
+ author: e.author.id,
53
+ symbols: e.symbols_touched
54
+ }));
55
+ }
56
+ console.log(JSON.stringify({
57
+ total: entries.length,
58
+ byDate: grouped,
59
+ hotSymbols,
60
+ authors: Array.from(authorActivity.entries()).map(([id, info]) => ({
61
+ id,
62
+ type: info.type,
63
+ entries: info.count,
64
+ lastActive: info.lastActive
65
+ }))
66
+ }, null, 2));
67
+ return;
68
+ }
69
+ const typeColor = {
70
+ "agent-session": chalk.hex("#818cf8"),
71
+ "human-note": chalk.hex("#34d399"),
72
+ "decision": chalk.hex("#fbbf24"),
73
+ "review": chalk.hex("#c084fc"),
74
+ "incident": chalk.hex("#f87171"),
75
+ "milestone": chalk.hex("#60a5fa")
76
+ };
77
+ console.log(chalk.magenta(`
78
+ Lore Timeline (${entries.length} entries)
79
+ `));
80
+ for (const [date, dayEntries] of byDate) {
81
+ console.log(chalk.white.bold(` ${date}`) + chalk.gray(` (${dayEntries.length} entries)`));
82
+ for (const entry of dayEntries) {
83
+ const colorFn = typeColor[entry.type] || chalk.white;
84
+ const time = entry.timestamp.slice(11, 16);
85
+ const authorIcon = entry.author.type === "agent" ? "\u{1F916}" : "\u{1F464}";
86
+ console.log(` ${chalk.gray(time)} ${colorFn(entry.type.padEnd(14))} ${chalk.white(entry.title)}`);
87
+ console.log(` ${authorIcon} ${chalk.gray(entry.author.id)} ${entry.symbols_touched.slice(0, 4).map((s) => chalk.cyan(s)).join(" ")}`);
88
+ }
89
+ console.log();
90
+ }
91
+ if (hotSymbols.length > 0) {
92
+ console.log(chalk.white(" Hot Symbols:"));
93
+ for (const { symbol, count } of hotSymbols.slice(0, 5)) {
94
+ const bar = "\u2588".repeat(Math.min(count, 20));
95
+ console.log(` ${chalk.cyan(symbol.padEnd(25))} ${chalk.gray(bar)} ${count}`);
96
+ }
97
+ console.log();
98
+ }
99
+ if (authorActivity.size > 0) {
100
+ console.log(chalk.white(" Active Authors:"));
101
+ for (const [id, info] of authorActivity) {
102
+ const icon = info.type === "agent" ? "\u{1F916}" : "\u{1F464}";
103
+ console.log(` ${icon} ${chalk.white(id)} - ${info.count} entries`);
104
+ }
105
+ console.log();
106
+ }
107
+ }
108
+ export {
109
+ loreTimelineCommand
110
+ };