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
@@ -7,11 +7,15 @@
7
7
  *
8
8
  * Fast path (everything current): 1 SELECT + N existsSync = <1ms.
9
9
  * Pattern: idempotent seed + versioned migrations.
10
+ *
11
+ * Note (#1323, #1324): SOUL.md is personalized and owned by `soul-seeder`.
12
+ * Lazy-init seed of the OTHER core files (agent_notes, memory-tools, etc.)
13
+ * remains this module's job; SOUL.md is explicitly skipped to avoid
14
+ * clobbering the personalized copy on every MemoryManager.initialize().
10
15
  */
11
- import { existsSync, mkdirSync, copyFileSync, readdirSync, readFileSync, writeFileSync } from "node:fs";
16
+ import { existsSync, mkdirSync, copyFileSync, readdirSync } from "node:fs";
12
17
  import { join, dirname } from "node:path";
13
18
  import { fileURLToPath } from "node:url";
14
- import { logWarn } from "./mem-logger.js";
15
19
  const MIGRATIONS = [
16
20
  // #824: recall quality feedback columns
17
21
  (db) => {
@@ -25,50 +29,37 @@ const MIGRATIONS = [
25
29
  catch { /* exists */ }
26
30
  },
27
31
  ];
28
- /** Resolve bundled templates/core/ dir (works from src/ and dist/). */
32
+ /** Resolve bundled templates/memory/core/ dir (works from src/ and dist/). */
29
33
  function templatesDir() {
30
34
  const here = dirname(fileURLToPath(import.meta.url));
31
- // src/ → up 1 to pkg root → templates/core
32
- const srcSide = join(here, "..", "templates", "core");
35
+ // src/ → up 1 to pkg root → templates/memory/core
36
+ const srcSide = join(here, "..", "templates", "memory", "core");
33
37
  if (existsSync(srcSide))
34
38
  return srcSide;
35
- // dist/src/ → up 2 to pkg root → templates/core
36
- return join(here, "..", "..", "templates", "core");
39
+ // dist/src/ → up 2 to pkg root → templates/memory/core
40
+ return join(here, "..", "..", "templates", "memory", "core");
37
41
  }
42
+ /** Files in templates/memory/core/ that lazy-init must NOT seed. */
43
+ const LAZY_INIT_SKIP = new Set([
44
+ "SOUL.md", // personalized at install time via soul-seeder
45
+ ]);
38
46
  function ensureCoreFiles(dataDir) {
39
47
  const tplDir = templatesDir();
40
48
  if (!existsSync(tplDir))
41
49
  return;
42
50
  const coreDir = join(dataDir, "core");
43
51
  mkdirSync(coreDir, { recursive: true });
44
- // Read agentName from manifest for template substitution
45
- const manifestPath = join(dataDir, "..", "manifest.json");
46
- let agentName = null;
47
- try {
48
- const manifest = JSON.parse(readFileSync(manifestPath, "utf-8"));
49
- agentName = manifest.agentName ?? null;
50
- }
51
- catch { /* no manifest — fresh or corrupt */ }
52
52
  for (const file of readdirSync(tplDir)) {
53
+ if (LAZY_INIT_SKIP.has(file))
54
+ continue;
53
55
  const dst = join(coreDir, file);
54
56
  if (!existsSync(dst)) {
55
- if (file === "SOUL.md" && agentName) {
56
- let content = readFileSync(join(tplDir, file), "utf-8");
57
- content = content.replaceAll("<agentName>", agentName);
58
- writeFileSync(dst, content, { mode: 0o600 });
59
- }
60
- else if (file === "SOUL.md" && !agentName) {
61
- logWarn("ensure-init", "No agentName in manifest — SOUL.md seeded with <agentName> placeholder. Run abmind install to fix.");
62
- copyFileSync(join(tplDir, file), dst);
63
- }
64
- else {
65
- copyFileSync(join(tplDir, file), dst);
66
- }
57
+ copyFileSync(join(tplDir, file), dst);
67
58
  }
68
59
  }
69
60
  }
70
61
  function ensureSchema(db) {
71
- db.exec("CREATE TABLE IF NOT EXISTS _meta (key TEXT PRIMARY KEY, value TEXT)");
62
+ db.exec("CREATE TABLE IF NOT EXISTS _meta (key TEXT PRIMARY KEY, value)");
72
63
  const row = db.prepare("SELECT value FROM _meta WHERE key = 'schema_version'").get();
73
64
  const current = parseInt(row?.value ?? "0", 10);
74
65
  if (current < MIGRATIONS.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"ensure-initialized.js","sourceRoot":"","sources":["../../src/ensure-initialized.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ensure-initialized.js","sourceRoot":"","sources":["../../src/ensure-initialized.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ExecutionIdentity, HostDiagnostic } from "./types.js";
2
+ export declare function isValidIdentityField(value: string): boolean;
3
+ export interface ValidatedIdentity {
4
+ identity: ExecutionIdentity;
5
+ diagnostics: readonly HostDiagnostic[];
6
+ }
7
+ export declare function validateIdentity(raw: ExecutionIdentity): ValidatedIdentity;
8
+ export declare function canAutoWrite(identity: ExecutionIdentity, writerId: string): boolean;
9
+ export declare function buildProvenance(identity: ExecutionIdentity, writerId: string, operation: string): string;
10
+ //# sourceMappingURL=identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../src/host-integration/identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIpE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAG3D;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;CACxC;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,GAAG,iBAAiB,CAuD1E;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEnF;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAExG"}
@@ -0,0 +1,66 @@
1
+ const CONTROL_CHAR = /[\x00-\x1f\x7f-\x9f]/;
2
+ export function isValidIdentityField(value) {
3
+ const trimmed = value.trim();
4
+ return trimmed.length > 0 && !CONTROL_CHAR.test(trimmed);
5
+ }
6
+ export function validateIdentity(raw) {
7
+ const diagnostics = [];
8
+ const fields = [
9
+ { key: "principalId", value: raw.principalId },
10
+ { key: "conversationId", value: raw.conversationId },
11
+ { key: "executionId", value: raw.executionId },
12
+ { key: "host", value: raw.host },
13
+ { key: "origin", value: raw.origin },
14
+ { key: "automaticWriteOwner", value: raw.automaticWriteOwner },
15
+ ];
16
+ for (const { key, value } of fields) {
17
+ if (!value || !value.trim()) {
18
+ diagnostics.push({
19
+ operation: "validateIdentity",
20
+ code: "EMPTY_IDENTITY_FIELD",
21
+ message: `Identity field '${key}' is empty`,
22
+ });
23
+ }
24
+ else if (CONTROL_CHAR.test(value)) {
25
+ diagnostics.push({
26
+ operation: "validateIdentity",
27
+ code: "CONTROL_CHAR_IN_IDENTITY",
28
+ message: `Identity field '${key}' contains control characters`,
29
+ });
30
+ }
31
+ }
32
+ if (raw.parentExecutionId !== undefined) {
33
+ const trimmed = raw.parentExecutionId.trim();
34
+ if (!trimmed) {
35
+ diagnostics.push({
36
+ operation: "validateIdentity",
37
+ code: "EMPTY_PARENT_EXECUTION_ID",
38
+ message: "Optional field 'parentExecutionId' is present but empty",
39
+ });
40
+ }
41
+ else if (CONTROL_CHAR.test(raw.parentExecutionId)) {
42
+ diagnostics.push({
43
+ operation: "validateIdentity",
44
+ code: "CONTROL_CHAR_IN_PARENT_EXECUTION_ID",
45
+ message: "Optional field 'parentExecutionId' contains control characters",
46
+ });
47
+ }
48
+ }
49
+ const identity = {
50
+ principalId: raw.principalId.trim(),
51
+ conversationId: raw.conversationId.trim(),
52
+ executionId: raw.executionId.trim(),
53
+ parentExecutionId: raw.parentExecutionId?.trim() || undefined,
54
+ host: raw.host.trim(),
55
+ origin: raw.origin.trim(),
56
+ automaticWriteOwner: raw.automaticWriteOwner.trim(),
57
+ };
58
+ return { identity, diagnostics };
59
+ }
60
+ export function canAutoWrite(identity, writerId) {
61
+ return identity.automaticWriteOwner === writerId;
62
+ }
63
+ export function buildProvenance(identity, writerId, operation) {
64
+ return `${identity.host}:${writerId}:${operation}`;
65
+ }
66
+ //# sourceMappingURL=identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../src/host-integration/identity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export type { ExecutionIdentity, HostLifecycleOptions, AutomaticRecallPolicy, StartSessionInput, StartSessionResult, PrepareTurnInput, PrepareTurnResult, RecallHit, CompleteTurnInput, CompleteTurnResult, ExplicitRecallInput, RecallOperationResult, ExplicitStoreInput, HostDiagnostic, } from "./types.js";
2
+ export { validateIdentity, isValidIdentityField, canAutoWrite, buildProvenance } from "./identity.js";
3
+ export { HostMemoryLifecycle } from "./lifecycle.js";
4
+ export { renderWakeUp, renderRecallContext } from "./render.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/host-integration/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACtG,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { validateIdentity, isValidIdentityField, canAutoWrite, buildProvenance } from "./identity.js";
2
+ export { HostMemoryLifecycle } from "./lifecycle.js";
3
+ export { renderWakeUp, renderRecallContext } from "./render.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/host-integration/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACtG,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { MemoryManager } from "../memory-manager.js";
2
+ import type { HostLifecycleOptions, StartSessionInput, StartSessionResult, PrepareTurnInput, PrepareTurnResult, CompleteTurnInput, CompleteTurnResult, ExplicitRecallInput, RecallOperationResult, ExplicitStoreInput } from "./types.js";
3
+ export declare class HostMemoryLifecycle {
4
+ private memory;
5
+ private options;
6
+ constructor(memory: MemoryManager, options: HostLifecycleOptions);
7
+ startSession(input: StartSessionInput): Promise<StartSessionResult>;
8
+ prepareTurn(input: PrepareTurnInput): Promise<PrepareTurnResult>;
9
+ completeTurn(input: CompleteTurnInput): CompleteTurnResult;
10
+ recall(input: ExplicitRecallInput): Promise<RecallOperationResult>;
11
+ store(input: ExplicitStoreInput): Promise<import("../mem-types.js").InstantStoreResult>;
12
+ private fail;
13
+ }
14
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../src/host-integration/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,KAAK,EAEV,oBAAoB,EAEpB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAiBpB,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAuB;gBAE1B,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,oBAAoB;IAQ1D,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiBnE,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAoCtE,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB;IAkDpD,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAuClE,KAAK,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,iBAAiB,EAAE,kBAAkB,CAAC;IA6B7F,OAAO,CAAC,IAAI;CAmBb"}
@@ -0,0 +1,192 @@
1
+ import { validateIdentity, canAutoWrite, buildProvenance } from "./identity.js";
2
+ import { renderWakeUp, renderRecallContext } from "./render.js";
3
+ function clampPolicy(policy) {
4
+ return {
5
+ limit: Math.max(1, Math.min(50, Math.floor(policy.limit))),
6
+ maxChars: Math.max(1, Math.floor(policy.maxChars)),
7
+ minScore: policy.minScore !== undefined ? Math.max(0, Math.min(1, policy.minScore)) : 0,
8
+ maxClassification: policy.maxClassification !== undefined
9
+ ? Math.min(2, Math.max(0, Math.floor(policy.maxClassification)))
10
+ : 2,
11
+ };
12
+ }
13
+ function makeDiagnostic(operation, code, message) {
14
+ return { operation, code, message };
15
+ }
16
+ export class HostMemoryLifecycle {
17
+ memory;
18
+ options;
19
+ constructor(memory, options) {
20
+ this.memory = memory;
21
+ this.options = {
22
+ writerId: options.writerId,
23
+ failOpen: options.failOpen !== false,
24
+ };
25
+ }
26
+ async startSession(input) {
27
+ try {
28
+ const { identity, diagnostics: idDiag } = validateIdentity(input.identity);
29
+ const allDiags = [...idDiag];
30
+ if (idDiag.length > 0) {
31
+ return { ok: false, context: "", diagnostics: allDiags };
32
+ }
33
+ const maxChars = Math.max(1, Math.floor(input.maxChars));
34
+ const context = renderWakeUp(this.memory, maxChars);
35
+ return { ok: true, context, diagnostics: allDiags };
36
+ }
37
+ catch (err) {
38
+ return this.fail("startSession", err);
39
+ }
40
+ }
41
+ async prepareTurn(input) {
42
+ try {
43
+ const { identity, diagnostics: idDiag } = validateIdentity(input.identity);
44
+ const allDiags = [...idDiag];
45
+ if (idDiag.length > 0) {
46
+ return { context: "", hits: [], diagnostics: allDiags };
47
+ }
48
+ const policy = clampPolicy(input.policy);
49
+ const result = await this.memory.recallSearch({
50
+ translated: [...input.query.translated],
51
+ original: input.query.original,
52
+ userId: identity.principalId,
53
+ limit: policy.limit,
54
+ maxClassification: policy.maxClassification,
55
+ });
56
+ const hits = result.results
57
+ .filter(h => h.score >= policy.minScore)
58
+ .map(h => ({
59
+ content: h.content,
60
+ date: h.date,
61
+ score: h.score,
62
+ classification: h.classification,
63
+ }));
64
+ const context = renderRecallContext(hits, policy.maxChars);
65
+ return { context, hits, diagnostics: allDiags };
66
+ }
67
+ catch (err) {
68
+ return this.fail("prepareTurn", err, { context: "", hits: [], diagnostics: [] });
69
+ }
70
+ }
71
+ completeTurn(input) {
72
+ try {
73
+ const { identity, diagnostics: idDiag } = validateIdentity(input.identity);
74
+ if (idDiag.length > 0) {
75
+ return { status: "failed", diagnostic: idDiag[0] };
76
+ }
77
+ if (!canAutoWrite(identity, this.options.writerId)) {
78
+ return { status: "skipped", reason: "not_owner" };
79
+ }
80
+ if (!input.user?.content?.trim() && !input.assistant?.content?.trim()) {
81
+ return { status: "skipped", reason: "empty" };
82
+ }
83
+ const messageIds = [];
84
+ const now = Date.now();
85
+ if (input.user?.content?.trim()) {
86
+ const id = this.memory.recordMessage({
87
+ userId: identity.principalId,
88
+ sessionId: identity.conversationId,
89
+ role: "user",
90
+ content: input.user.content,
91
+ timestamp: input.user.timestamp ?? now - 1,
92
+ });
93
+ if (id !== null)
94
+ messageIds.push(id);
95
+ }
96
+ if (input.assistant?.content?.trim()) {
97
+ const id = this.memory.recordMessage({
98
+ userId: identity.principalId,
99
+ sessionId: identity.conversationId,
100
+ role: "assistant",
101
+ content: input.assistant.content,
102
+ timestamp: input.assistant.timestamp ?? now,
103
+ });
104
+ if (id !== null)
105
+ messageIds.push(id);
106
+ }
107
+ if (messageIds.length === 0) {
108
+ return { status: "skipped", reason: "rejected" };
109
+ }
110
+ return { status: "recorded", messageIds };
111
+ }
112
+ catch (err) {
113
+ return this.fail("completeTurn", err);
114
+ }
115
+ }
116
+ async recall(input) {
117
+ try {
118
+ const { identity, diagnostics: idDiag } = validateIdentity(input.identity);
119
+ const allDiags = [...idDiag];
120
+ if (idDiag.length > 0) {
121
+ return { context: "", hits: [], diagnostics: allDiags };
122
+ }
123
+ const limit = input.limit !== undefined ? Math.max(1, Math.min(50, Math.floor(input.limit))) : 5;
124
+ const maxClassification = input.maxClassification !== undefined
125
+ ? Math.max(0, Math.min(3, Math.floor(input.maxClassification)))
126
+ : undefined;
127
+ const result = await this.memory.recallSearch({
128
+ translated: [...input.query.translated],
129
+ original: input.query.original,
130
+ userId: identity.principalId,
131
+ limit,
132
+ maxClassification,
133
+ });
134
+ const hits = result.results
135
+ .filter(h => input.minScore === undefined || h.score >= input.minScore)
136
+ .map(h => ({
137
+ content: h.content,
138
+ date: h.date,
139
+ score: h.score,
140
+ classification: h.classification,
141
+ }));
142
+ const context = renderRecallContext(hits, 10000);
143
+ return { context, hits, diagnostics: allDiags };
144
+ }
145
+ catch (err) {
146
+ return this.fail("recall", err, { context: "", hits: [], diagnostics: [] });
147
+ }
148
+ }
149
+ async store(input) {
150
+ try {
151
+ const { identity } = validateIdentity(input.identity);
152
+ return await this.memory.editor.instantStore({
153
+ userId: identity.principalId,
154
+ contentEn: input.contentEn,
155
+ contentOriginal: input.contentOriginal,
156
+ memoryType: input.memoryType,
157
+ emotionScore: input.emotionScore,
158
+ emotionTags: input.emotionTags,
159
+ emotionContext: input.emotionContext,
160
+ keyword: input.keyword,
161
+ confidence: input.confidence,
162
+ sourceMessageIds: input.sourceMessageIds,
163
+ classification: input.classification,
164
+ trust: input.trust,
165
+ integrity: input.integrity,
166
+ credibility: input.credibility,
167
+ topic: input.topic,
168
+ createdBy: buildProvenance(identity, this.options.writerId, "store"),
169
+ });
170
+ }
171
+ catch (err) {
172
+ return this.fail("store", err, {
173
+ stored: false, memoriesCount: 0, error: String(err),
174
+ });
175
+ }
176
+ }
177
+ fail(operation, err, fallback) {
178
+ const diagnostic = makeDiagnostic(operation, err instanceof Error ? err.name : "UNKNOWN", err instanceof Error ? err.message : String(err));
179
+ if (!this.options.failOpen)
180
+ throw err;
181
+ if (fallback !== undefined)
182
+ return fallback;
183
+ if (operation === "startSession") {
184
+ return { ok: false, context: "", diagnostics: [diagnostic] };
185
+ }
186
+ if (operation === "completeTurn") {
187
+ return { status: "failed", diagnostic };
188
+ }
189
+ return { context: "", hits: [], diagnostics: [diagnostic] };
190
+ }
191
+ }
192
+ //# sourceMappingURL=lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../../src/host-integration/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { RecallHit } from "./types.js";
2
+ import type { MemoryManager } from "../memory-manager.js";
3
+ export declare function renderWakeUp(memory: MemoryManager, maxChars: number): string;
4
+ export declare function renderRecallContext(hits: readonly RecallHit[], maxChars: number): string;
5
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/host-integration/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,SAAS,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgBxF"}
@@ -0,0 +1,20 @@
1
+ export function renderWakeUp(memory, maxChars) {
2
+ return memory.buildWakeUp(maxChars);
3
+ }
4
+ export function renderRecallContext(hits, maxChars) {
5
+ if (hits.length === 0)
6
+ return "";
7
+ const lines = ["[abmind memory context]"];
8
+ let total = lines[0].length + 1;
9
+ for (const hit of hits) {
10
+ const line = `- (${hit.date}) ${hit.content}`.replace(/\s+/g, " ").trim();
11
+ if (total + line.length + 1 > maxChars)
12
+ break;
13
+ lines.push(line);
14
+ total += line.length + 1;
15
+ }
16
+ if (lines.length === 1)
17
+ return "";
18
+ return lines.join("\n") + "\n";
19
+ }
20
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/host-integration/render.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,YAAY,CAAC,MAAqB,EAAE,QAAgB;IAClE,OAAO,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAA0B,EAAE,QAAgB;IAC9E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,KAAK,GAAa,CAAC,yBAAyB,CAAC,CAAC;IACpD,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAEjC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1E,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ;YAAE,MAAM;QAC9C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,KAAK,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC"}
@@ -0,0 +1,107 @@
1
+ export interface ExecutionIdentity {
2
+ readonly principalId: string;
3
+ readonly conversationId: string;
4
+ readonly executionId: string;
5
+ readonly parentExecutionId?: string;
6
+ readonly host: string;
7
+ readonly origin: string;
8
+ readonly automaticWriteOwner: string;
9
+ }
10
+ export interface HostLifecycleOptions {
11
+ readonly writerId: string;
12
+ readonly failOpen?: boolean;
13
+ }
14
+ export interface AutomaticRecallPolicy {
15
+ limit: number;
16
+ maxChars: number;
17
+ minScore?: number;
18
+ maxClassification?: 0 | 1 | 2;
19
+ }
20
+ export interface StartSessionInput {
21
+ identity: ExecutionIdentity;
22
+ maxChars: number;
23
+ }
24
+ export type StartSessionResult = {
25
+ ok: true;
26
+ context: string;
27
+ diagnostics: readonly HostDiagnostic[];
28
+ } | {
29
+ ok: false;
30
+ context: "";
31
+ diagnostics: readonly HostDiagnostic[];
32
+ };
33
+ export interface PrepareTurnInput {
34
+ identity: ExecutionIdentity;
35
+ prompt: string;
36
+ query: {
37
+ translated: readonly string[];
38
+ original?: string;
39
+ };
40
+ policy: AutomaticRecallPolicy;
41
+ }
42
+ export interface PrepareTurnResult {
43
+ context: string;
44
+ hits: readonly RecallHit[];
45
+ diagnostics: readonly HostDiagnostic[];
46
+ }
47
+ export interface RecallHit {
48
+ content: string;
49
+ date: string;
50
+ score: number;
51
+ classification?: number;
52
+ }
53
+ export interface CompleteTurnInput {
54
+ identity: ExecutionIdentity;
55
+ user?: {
56
+ content: string;
57
+ timestamp?: number;
58
+ };
59
+ assistant?: {
60
+ content: string;
61
+ timestamp?: number;
62
+ };
63
+ }
64
+ export type CompleteTurnResult = {
65
+ status: "recorded";
66
+ messageIds: readonly number[];
67
+ } | {
68
+ status: "skipped";
69
+ reason: "not_owner" | "empty" | "rejected";
70
+ } | {
71
+ status: "failed";
72
+ diagnostic: HostDiagnostic;
73
+ };
74
+ export interface ExplicitRecallInput {
75
+ identity: ExecutionIdentity;
76
+ query: {
77
+ translated: readonly string[];
78
+ original?: string;
79
+ };
80
+ limit?: number;
81
+ minScore?: number;
82
+ maxClassification?: number;
83
+ }
84
+ export type RecallOperationResult = PrepareTurnResult;
85
+ export type ExplicitStoreInput = {
86
+ identity: ExecutionIdentity;
87
+ contentEn: string;
88
+ contentOriginal: string;
89
+ memoryType: "fact" | "decision" | "preference" | "event" | "lesson" | "feedback" | "story" | "secret";
90
+ emotionScore: number;
91
+ emotionTags?: string;
92
+ emotionContext?: string;
93
+ keyword?: string;
94
+ confidence?: number;
95
+ sourceMessageIds?: string;
96
+ classification?: number;
97
+ trust?: number;
98
+ integrity?: number;
99
+ credibility?: number;
100
+ topic?: string;
101
+ };
102
+ export interface HostDiagnostic {
103
+ operation: string;
104
+ code: string;
105
+ message: string;
106
+ }
107
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/host-integration/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/host-integration/types.ts"],"names":[],"mappings":""}
@@ -83,7 +83,7 @@ export interface IMemorySystem extends IMemoryCore {
83
83
  skipEmbeddingCheck?: boolean;
84
84
  }): Promise<void>;
85
85
  close(): void;
86
- recordMessage(...args: [MessageRecord]): void;
86
+ recordMessage(...args: [MessageRecord]): number | null;
87
87
  loadRecentMessages(userId: string, sessionId: string, count: number): MessageRecord[];
88
88
  getLastMessageTimestamp(excludeSystem?: boolean, sessionTypeFilter?: string): number;
89
89
  updateEmotionByPlatformId(userId: string | string, platformMessageId: number, score: number, tag?: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"imemory-system.d.ts","sourceRoot":"","sources":["../../src/imemory-system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imemory-system.d.ts","sourceRoot":"","sources":["../../src/imemory-system.ts"],"names":[],"mappings":"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"}