@a-company/paradigm 3.17.1 → 3.18.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.
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  loadLoreEntry
4
- } from "./chunk-6GWRQWQB.js";
4
+ } from "./chunk-YHRRJM6J.js";
5
5
  import "./chunk-ZXMDA7VB.js";
6
6
 
7
7
  // src/commands/lore/show.ts
@@ -32,8 +32,10 @@ Entry not found: ${id}
32
32
  console.log(chalk.white.bold(` ${entry.title}`));
33
33
  console.log(chalk.gray(` ${entry.id} \xB7 ${colorFn(entry.type)} \xB7 ${entry.timestamp}`));
34
34
  console.log();
35
- const authorIcon = entry.author.type === "agent" ? "\u{1F916}" : "\u{1F464}";
36
- console.log(` ${authorIcon} ${chalk.white(entry.author.id)}${entry.author.model ? chalk.gray(` (${entry.author.model})`) : ""}`);
35
+ console.log(` \u{1F464} ${chalk.white(entry.author)}`);
36
+ if (entry.agent) {
37
+ console.log(` \u{1F916} ${chalk.gray(entry.agent.model)}${entry.agent.provider ? chalk.gray(` (${entry.agent.provider})`) : ""}`);
38
+ }
37
39
  if (entry.duration_minutes) {
38
40
  console.log(` \u23F1 ${entry.duration_minutes} minutes`);
39
41
  }
@@ -41,7 +43,7 @@ Entry not found: ${id}
41
43
  console.log(chalk.gray(" Summary:"));
42
44
  console.log(` ${entry.summary}`);
43
45
  console.log();
44
- if (entry.symbols_touched.length > 0) {
46
+ if (entry.symbols_touched?.length > 0) {
45
47
  console.log(chalk.gray(" Symbols touched:"));
46
48
  console.log(` ${entry.symbols_touched.map((s) => chalk.cyan(s)).join(" ")}`);
47
49
  console.log();
@@ -117,6 +119,19 @@ Entry not found: ${id}
117
119
  if (entry.commit) {
118
120
  console.log(` Commit: ${chalk.gray(entry.commit)}`);
119
121
  }
122
+ if (entry.git_context) {
123
+ const gc = entry.git_context;
124
+ console.log(chalk.gray(" Git context:"));
125
+ console.log(` ${chalk.gray(gc.ref.slice(0, 8))} on ${chalk.cyan(gc.branch)}${gc.dirty ? chalk.yellow(" (dirty)") : ""}`);
126
+ console.log();
127
+ }
128
+ if (entry.meta && Object.keys(entry.meta).length > 0) {
129
+ console.log(chalk.gray(" Metadata:"));
130
+ for (const [k, v] of Object.entries(entry.meta)) {
131
+ console.log(` ${chalk.white(k)}: ${chalk.gray(String(v))}`);
132
+ }
133
+ console.log();
134
+ }
120
135
  if (entry.tags && entry.tags.length > 0) {
121
136
  console.log(` Tags: ${entry.tags.map((t) => chalk.gray(`[${t}]`)).join(" ")}`);
122
137
  }
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  loadLoreEntries
4
- } from "./chunk-6GWRQWQB.js";
4
+ } from "./chunk-YHRRJM6J.js";
5
5
  import "./chunk-ZXMDA7VB.js";
6
6
 
7
7
  // src/commands/lore/timeline.ts
@@ -26,19 +26,20 @@ async function loreTimelineCommand(options) {
26
26
  }
27
27
  const symbolCounts = /* @__PURE__ */ new Map();
28
28
  for (const entry of entries) {
29
- for (const sym of entry.symbols_touched) {
29
+ for (const sym of entry.symbols_touched || []) {
30
30
  symbolCounts.set(sym, (symbolCounts.get(sym) || 0) + 1);
31
31
  }
32
32
  }
33
33
  const hotSymbols = Array.from(symbolCounts.entries()).sort(([, a], [, b]) => b - a).slice(0, 10).map(([symbol, count]) => ({ symbol, count }));
34
34
  const authorActivity = /* @__PURE__ */ new Map();
35
35
  for (const entry of entries) {
36
- const aid = entry.author.id;
36
+ const aid = entry.author;
37
37
  const existing = authorActivity.get(aid);
38
38
  if (!existing) {
39
- authorActivity.set(aid, { count: 1, type: entry.author.type, lastActive: entry.timestamp });
39
+ authorActivity.set(aid, { count: 1, hasAgent: entry.agent != null, lastActive: entry.timestamp });
40
40
  } else {
41
41
  existing.count++;
42
+ if (entry.agent) existing.hasAgent = true;
42
43
  if (entry.timestamp > existing.lastActive) existing.lastActive = entry.timestamp;
43
44
  }
44
45
  }
@@ -49,8 +50,8 @@ async function loreTimelineCommand(options) {
49
50
  id: e.id,
50
51
  type: e.type,
51
52
  title: e.title,
52
- author: e.author.id,
53
- symbols: e.symbols_touched
53
+ author: e.author,
54
+ symbols: e.symbols_touched || []
54
55
  }));
55
56
  }
56
57
  console.log(JSON.stringify({
@@ -59,7 +60,7 @@ async function loreTimelineCommand(options) {
59
60
  hotSymbols,
60
61
  authors: Array.from(authorActivity.entries()).map(([id, info]) => ({
61
62
  id,
62
- type: info.type,
63
+ hasAgent: info.hasAgent,
63
64
  entries: info.count,
64
65
  lastActive: info.lastActive
65
66
  }))
@@ -82,9 +83,9 @@ async function loreTimelineCommand(options) {
82
83
  for (const entry of dayEntries) {
83
84
  const colorFn = typeColor[entry.type] || chalk.white;
84
85
  const time = entry.timestamp.slice(11, 16);
85
- const authorIcon = entry.author.type === "agent" ? "\u{1F916}" : "\u{1F464}";
86
+ const authorIcon = entry.agent ? "\u{1F916}" : "\u{1F464}";
86
87
  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
+ console.log(` ${authorIcon} ${chalk.gray(entry.author)} ${(entry.symbols_touched || []).slice(0, 4).map((s) => chalk.cyan(s)).join(" ")}`);
88
89
  }
89
90
  console.log();
90
91
  }
@@ -99,7 +100,7 @@ async function loreTimelineCommand(options) {
99
100
  if (authorActivity.size > 0) {
100
101
  console.log(chalk.white(" Active Authors:"));
101
102
  for (const [id, info] of authorActivity) {
102
- const icon = info.type === "agent" ? "\u{1F916}" : "\u{1F464}";
103
+ const icon = info.hasAgent ? "\u{1F916}" : "\u{1F464}";
103
104
  console.log(` ${icon} ${chalk.white(id)} - ${info.count} entries`);
104
105
  }
105
106
  console.log();