abmind 0.2.6 → 0.2.7-alpha.1

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 (173) hide show
  1. package/SUPPORTED-SURFACE.md +20 -2
  2. package/dist/cli/abmind-hook-recall.js +17 -40
  3. package/dist/cli/abmind-hook-recall.js.map +1 -1
  4. package/dist/cli/abmind-hook-store.js +10 -31
  5. package/dist/cli/abmind-hook-store.js.map +1 -1
  6. package/dist/cli/abmind-hook-wakeup.js +17 -3
  7. package/dist/cli/abmind-hook-wakeup.js.map +1 -1
  8. package/dist/cli/abmind-install.js +19 -19
  9. package/dist/cli/abmind-install.js.map +1 -1
  10. package/dist/cli/abmind-restore.js +10 -0
  11. package/dist/cli/abmind-restore.js.map +1 -1
  12. package/dist/cli/abmind-sleep.d.ts +9 -5
  13. package/dist/cli/abmind-sleep.d.ts.map +1 -1
  14. package/dist/cli/abmind-sleep.js +61 -14
  15. package/dist/cli/abmind-sleep.js.map +1 -1
  16. package/dist/cli/hook-lifecycle-adapter.d.ts +11 -0
  17. package/dist/cli/hook-lifecycle-adapter.d.ts.map +1 -0
  18. package/dist/cli/hook-lifecycle-adapter.js +33 -0
  19. package/dist/cli/hook-lifecycle-adapter.js.map +1 -0
  20. package/dist/src/context-engine.d.ts +13 -3
  21. package/dist/src/context-engine.d.ts.map +1 -1
  22. package/dist/src/context-engine.js +22 -5
  23. package/dist/src/context-engine.js.map +1 -1
  24. package/dist/src/context-orchestrator.d.ts +20 -2
  25. package/dist/src/context-orchestrator.d.ts.map +1 -1
  26. package/dist/src/context-orchestrator.js +11 -3
  27. package/dist/src/context-orchestrator.js.map +1 -1
  28. package/dist/src/context-tier-renderer.d.ts +8 -1
  29. package/dist/src/context-tier-renderer.d.ts.map +1 -1
  30. package/dist/src/context-tier-renderer.js +7 -2
  31. package/dist/src/context-tier-renderer.js.map +1 -1
  32. package/dist/src/ensure-initialized.d.ts +5 -0
  33. package/dist/src/ensure-initialized.d.ts.map +1 -1
  34. package/dist/src/ensure-initialized.js +19 -28
  35. package/dist/src/ensure-initialized.js.map +1 -1
  36. package/dist/src/host-integration/identity.d.ts +10 -0
  37. package/dist/src/host-integration/identity.d.ts.map +1 -0
  38. package/dist/src/host-integration/identity.js +66 -0
  39. package/dist/src/host-integration/identity.js.map +1 -0
  40. package/dist/src/host-integration/index.d.ts +5 -0
  41. package/dist/src/host-integration/index.d.ts.map +1 -0
  42. package/dist/src/host-integration/index.js +4 -0
  43. package/dist/src/host-integration/index.js.map +1 -0
  44. package/dist/src/host-integration/lifecycle.d.ts +14 -0
  45. package/dist/src/host-integration/lifecycle.d.ts.map +1 -0
  46. package/dist/src/host-integration/lifecycle.js +192 -0
  47. package/dist/src/host-integration/lifecycle.js.map +1 -0
  48. package/dist/src/host-integration/render.d.ts +5 -0
  49. package/dist/src/host-integration/render.d.ts.map +1 -0
  50. package/dist/src/host-integration/render.js +20 -0
  51. package/dist/src/host-integration/render.js.map +1 -0
  52. package/dist/src/host-integration/types.d.ts +107 -0
  53. package/dist/src/host-integration/types.d.ts.map +1 -0
  54. package/dist/src/host-integration/types.js +2 -0
  55. package/dist/src/host-integration/types.js.map +1 -0
  56. package/dist/src/imemory-system.d.ts +1 -1
  57. package/dist/src/imemory-system.d.ts.map +1 -1
  58. package/dist/src/index.d.ts +6 -4
  59. package/dist/src/index.d.ts.map +1 -1
  60. package/dist/src/index.js +3 -1
  61. package/dist/src/index.js.map +1 -1
  62. package/dist/src/maintenance-service.d.ts +11 -0
  63. package/dist/src/maintenance-service.d.ts.map +1 -1
  64. package/dist/src/maintenance-service.js +43 -0
  65. package/dist/src/maintenance-service.js.map +1 -1
  66. package/dist/src/memory-manager.d.ts +6 -2
  67. package/dist/src/memory-manager.d.ts.map +1 -1
  68. package/dist/src/memory-manager.js +9 -5
  69. package/dist/src/memory-manager.js.map +1 -1
  70. package/dist/src/message-store.d.ts +15 -3
  71. package/dist/src/message-store.d.ts.map +1 -1
  72. package/dist/src/message-store.js +28 -9
  73. package/dist/src/message-store.js.map +1 -1
  74. package/dist/src/openclaw-plugin/index.d.ts.map +1 -1
  75. package/dist/src/openclaw-plugin/index.js +3 -2
  76. package/dist/src/openclaw-plugin/index.js.map +1 -1
  77. package/dist/src/pi-plugin/abtars-client.d.ts +22 -0
  78. package/dist/src/pi-plugin/abtars-client.d.ts.map +1 -0
  79. package/dist/src/pi-plugin/abtars-client.js +153 -0
  80. package/dist/src/pi-plugin/abtars-client.js.map +1 -0
  81. package/dist/src/pi-plugin/abtars-tools.d.ts +8 -0
  82. package/dist/src/pi-plugin/abtars-tools.d.ts.map +1 -0
  83. package/dist/src/pi-plugin/abtars-tools.js +317 -0
  84. package/dist/src/pi-plugin/abtars-tools.js.map +1 -0
  85. package/dist/src/pi-plugin/identity.d.ts +8 -0
  86. package/dist/src/pi-plugin/identity.d.ts.map +1 -0
  87. package/dist/src/pi-plugin/identity.js +37 -0
  88. package/dist/src/pi-plugin/identity.js.map +1 -0
  89. package/dist/src/pi-plugin/index.d.ts +3 -0
  90. package/dist/src/pi-plugin/index.d.ts.map +1 -0
  91. package/dist/src/pi-plugin/index.js +139 -0
  92. package/dist/src/pi-plugin/index.js.map +1 -0
  93. package/dist/src/pi-plugin/messages.d.ts +4 -0
  94. package/dist/src/pi-plugin/messages.d.ts.map +1 -0
  95. package/dist/src/pi-plugin/messages.js +36 -0
  96. package/dist/src/pi-plugin/messages.js.map +1 -0
  97. package/dist/src/pi-plugin/pi-types.d.ts +126 -0
  98. package/dist/src/pi-plugin/pi-types.d.ts.map +1 -0
  99. package/dist/src/pi-plugin/pi-types.js +15 -0
  100. package/dist/src/pi-plugin/pi-types.js.map +1 -0
  101. package/dist/src/pi-plugin/runtime.d.ts +21 -0
  102. package/dist/src/pi-plugin/runtime.d.ts.map +1 -0
  103. package/dist/src/pi-plugin/runtime.js +60 -0
  104. package/dist/src/pi-plugin/runtime.js.map +1 -0
  105. package/dist/src/pi-plugin/tools.d.ts +11 -0
  106. package/dist/src/pi-plugin/tools.d.ts.map +1 -0
  107. package/dist/src/pi-plugin/tools.js +136 -0
  108. package/dist/src/pi-plugin/tools.js.map +1 -0
  109. package/dist/src/reconcile.d.ts +2 -0
  110. package/dist/src/reconcile.d.ts.map +1 -1
  111. package/dist/src/reconcile.js +21 -4
  112. package/dist/src/reconcile.js.map +1 -1
  113. package/dist/src/session-context.d.ts +1 -0
  114. package/dist/src/session-context.d.ts.map +1 -1
  115. package/dist/src/session-context.js +42 -23
  116. package/dist/src/session-context.js.map +1 -1
  117. package/dist/src/sleep/basic.d.ts +1 -1
  118. package/dist/src/sleep/basic.d.ts.map +1 -1
  119. package/dist/src/sleep/basic.js +5 -2
  120. package/dist/src/sleep/basic.js.map +1 -1
  121. package/dist/src/sleep/catchup.d.ts +3 -5
  122. package/dist/src/sleep/catchup.d.ts.map +1 -1
  123. package/dist/src/sleep/catchup.js +37 -55
  124. package/dist/src/sleep/catchup.js.map +1 -1
  125. package/dist/src/sleep/contracts.d.ts +112 -0
  126. package/dist/src/sleep/contracts.d.ts.map +1 -0
  127. package/dist/src/sleep/contracts.js +25 -0
  128. package/dist/src/sleep/contracts.js.map +1 -0
  129. package/dist/src/sleep/llm-budget.d.ts +34 -14
  130. package/dist/src/sleep/llm-budget.d.ts.map +1 -1
  131. package/dist/src/sleep/llm-budget.js +66 -52
  132. package/dist/src/sleep/llm-budget.js.map +1 -1
  133. package/dist/src/sleep/orchestrator.d.ts +19 -69
  134. package/dist/src/sleep/orchestrator.d.ts.map +1 -1
  135. package/dist/src/sleep/orchestrator.js +286 -270
  136. package/dist/src/sleep/orchestrator.js.map +1 -1
  137. package/dist/src/sleep/state.d.ts +7 -19
  138. package/dist/src/sleep/state.d.ts.map +1 -1
  139. package/dist/src/sleep/state.js +5 -38
  140. package/dist/src/sleep/state.js.map +1 -1
  141. package/dist/src/sleep/test-harness.d.ts +3 -1
  142. package/dist/src/sleep/test-harness.d.ts.map +1 -1
  143. package/dist/src/sleep/test-harness.js +3 -2
  144. package/dist/src/sleep/test-harness.js.map +1 -1
  145. package/dist/src/soul-seeder.d.ts +36 -0
  146. package/dist/src/soul-seeder.d.ts.map +1 -0
  147. package/dist/src/soul-seeder.js +69 -0
  148. package/dist/src/soul-seeder.js.map +1 -0
  149. package/dist/src/wake-up-builder.d.ts +3 -1
  150. package/dist/src/wake-up-builder.d.ts.map +1 -1
  151. package/dist/src/wake-up-builder.js +29 -5
  152. package/dist/src/wake-up-builder.js.map +1 -1
  153. package/package.json +20 -2
  154. package/dist/cli/abmind-rollback.d.ts +0 -8
  155. package/dist/cli/abmind-rollback.d.ts.map +0 -1
  156. package/dist/cli/abmind-rollback.js +0 -78
  157. package/dist/cli/abmind-rollback.js.map +0 -1
  158. package/dist/src/native-loader.d.ts +0 -7
  159. package/dist/src/native-loader.d.ts.map +0 -1
  160. package/dist/src/native-loader.js +0 -21
  161. package/dist/src/native-loader.js.map +0 -1
  162. package/dist/src/recall-benchmark.d.ts +0 -13
  163. package/dist/src/recall-benchmark.d.ts.map +0 -1
  164. package/dist/src/recall-benchmark.js +0 -260
  165. package/dist/src/recall-benchmark.js.map +0 -1
  166. package/dist/src/sleep/runtime.d.ts +0 -15
  167. package/dist/src/sleep/runtime.d.ts.map +0 -1
  168. package/dist/src/sleep/runtime.js +0 -2
  169. package/dist/src/sleep/runtime.js.map +0 -1
  170. package/dist/src/wake-up-renderer.d.ts +0 -24
  171. package/dist/src/wake-up-renderer.d.ts.map +0 -1
  172. package/dist/src/wake-up-renderer.js +0 -148
  173. package/dist/src/wake-up-renderer.js.map +0 -1
@@ -1,148 +0,0 @@
1
- /**
2
- * wake-up-renderer.ts — Compression Level 2 rendering for wake-up context.
3
- * Entity header + topic grouping + elide defaults.
4
- * Operates on stored ABM-L, produces ultra-compact output.
5
- */
6
- /** Pick compression level based on token budget. */
7
- export function pickLevel(budgetTokens) {
8
- if (budgetTokens > 5000)
9
- return "full";
10
- if (budgetTokens > 500)
11
- return "compact";
12
- if (budgetTokens > 100)
13
- return "ultra";
14
- return "signal";
15
- }
16
- /** Build entity header from recurring @references. */
17
- function buildEntityHeader(entries) {
18
- const counts = new Map();
19
- for (const e of entries) {
20
- const refs = e.content_compressed.match(/@[\w-]+/g) ?? [];
21
- for (const ref of refs) {
22
- counts.set(ref, (counts.get(ref) ?? 0) + 1);
23
- }
24
- }
25
- // Only alias entities that appear 3+ times
26
- const replace = new Map();
27
- const aliases = [];
28
- for (const [ref, count] of [...counts.entries()].sort((a, b) => b[1] - a[1])) {
29
- if (count < 3)
30
- break;
31
- const name = ref.slice(1); // remove @
32
- const code = name.slice(0, 2).toUpperCase();
33
- replace.set(ref, code);
34
- aliases.push(`${code}=${name}`);
35
- }
36
- return {
37
- header: aliases.length > 0 ? `@: ${aliases.join(", ")}` : "",
38
- replace,
39
- };
40
- }
41
- /** Extract prefix fields from ABM-L string. */
42
- function parsePrefix(abml) {
43
- const m = abml.match(/^\[([^|]*)\|([^|]*)\|([^|]*)\|([^|]*)\|([^\]]*)\]\s*(.*)/s);
44
- if (!m)
45
- return { flags: "", topic: "", emotion: "", confidence: "", date: "", body: abml };
46
- return { flags: m[1], topic: m[2], emotion: m[3], confidence: m[4], date: m[5], body: m[6] };
47
- }
48
- /** Render entries at "compact" level: topic grouping, elide defaults, entity codes. */
49
- function renderCompact(entries, entityReplace) {
50
- const byTopic = new Map();
51
- for (const e of entries) {
52
- const parsed = parsePrefix(e.content_compressed);
53
- if (!byTopic.has(e.topic))
54
- byTopic.set(e.topic, { arc: e.emotion_arc ?? "", lines: [] });
55
- // Elide: date (unless <7d), confidence (unless != 3), neutral emotion
56
- let prefix = `[${parsed.flags}`;
57
- if (parsed.emotion && parsed.emotion !== "—")
58
- prefix += `|${parsed.emotion}`;
59
- if (parsed.confidence && parsed.confidence !== "3")
60
- prefix += `|${parsed.confidence}`;
61
- prefix += "]";
62
- // Apply entity short codes
63
- let body = parsed.body;
64
- for (const [ref, code] of entityReplace) {
65
- body = body.replace(new RegExp(ref.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g"), code);
66
- }
67
- byTopic.get(e.topic).lines.push(`${prefix} ${body}`);
68
- }
69
- const parts = [];
70
- for (const [topic, { arc, lines }] of byTopic) {
71
- parts.push(`## ${topic}${arc ? " " + arc : ""}`);
72
- for (const line of lines)
73
- parts.push(line);
74
- }
75
- return parts.join("\n");
76
- }
77
- /** Render entries at "full" level: no compression tricks, just the stored ABM-L. */
78
- function renderFull(entries) {
79
- return entries.map(e => e.content_compressed).join("\n");
80
- }
81
- /**
82
- * Render core memories for wake-up context at the given compression level.
83
- */
84
- export function renderWakeUp(entries, level) {
85
- if (entries.length === 0)
86
- return "";
87
- if (level === "signal")
88
- return renderSignal(entries);
89
- if (level === "full")
90
- return `[CORE MEMORY — ${entries.length} entries (internal reference only — never echo brackets/tags in replies)]\n${renderFull(entries)}`;
91
- // compact and ultra both use topic grouping + entity header
92
- const { header, replace } = buildEntityHeader(entries);
93
- const body = renderCompact(entries, replace);
94
- const headerLine = header ? header + "\n" : "";
95
- return `[CORE MEMORY — ${entries.length} entries (internal reference only — never echo brackets/tags in replies)]\n${headerLine}${body}`;
96
- }
97
- /** Render L0 signal level: structured tag cloud. ~50 tokens for entire memory. */
98
- function renderSignal(entries) {
99
- const topics = new Map();
100
- for (const e of entries) {
101
- if (!topics.has(e.topic))
102
- topics.set(e.topic, { types: new Map(), entities: new Set() });
103
- const t = topics.get(e.topic);
104
- const parsed = parsePrefix(e.content_compressed);
105
- const flag = parsed.flags.charAt(0) || "F";
106
- t.types.set(flag, (t.types.get(flag) ?? 0) + 1);
107
- const refs = e.content_compressed.match(/@[\w-]+/g) ?? [];
108
- for (const ref of refs)
109
- t.entities.add(ref);
110
- }
111
- const lines = [`[MEMORY MAP — ${entries.length} entries]`];
112
- for (const [topic, { types, entities }] of [...topics.entries()].sort((a, b) => b[1].types.size - a[1].types.size)) {
113
- const count = [...types.values()].reduce((a, b) => a + b, 0);
114
- const entityStr = [...entities].slice(0, 4).join(" ");
115
- const typeStr = [...types.entries()].map(([f, c]) => `${f}:${c}`).join(" ");
116
- lines.push(`${topic}(${count}): ${entityStr} — ${typeStr}`);
117
- }
118
- return lines.join("\n");
119
- }
120
- /**
121
- * Compress a daily summary to ABM-L bullet points.
122
- * Input: raw markdown daily. Output: compact ABM-L lines.
123
- */
124
- export function compressDailySummary(markdown, date) {
125
- const lines = markdown.split("\n").filter(l => l.trim() && !l.startsWith("#"));
126
- const bullets = [];
127
- for (const line of lines) {
128
- const trimmed = line.replace(/^[-*]\s*/, "").trim();
129
- if (trimmed.length < 10)
130
- continue;
131
- // Abbreviate
132
- const compressed = trimmed
133
- .replace(/\bTelegram\b/g, "TG")
134
- .replace(/\bDiscord\b/g, "DC")
135
- .replace(/\bauthentication\b/gi, "auth")
136
- .replace(/\bconfiguration\b/gi, "config")
137
- .replace(/\b(the|a|an|was|were|been|being|also|very|really|just|quite|basically|essentially)\b/gi, "")
138
- .replace(/\s{2,}/g, " ")
139
- .trim();
140
- if (compressed.length > 5)
141
- bullets.push(compressed);
142
- }
143
- if (bullets.length === 0)
144
- return "";
145
- // Cap at ~10 most important lines
146
- return `## ${date}\n${bullets.slice(0, 10).map(b => `- ${b}`).join("\n")}`;
147
- }
148
- //# sourceMappingURL=wake-up-renderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wake-up-renderer.js","sourceRoot":"","sources":["../../src/wake-up-renderer.ts"],"names":[],"mappings":"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"}