@felan-ai/ext-memory 0.10.1 → 0.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 (40) hide show
  1. package/README.md +34 -10
  2. package/dist/contracts.d.ts +8 -0
  3. package/dist/contracts.d.ts.map +1 -1
  4. package/dist/contracts.js +2 -0
  5. package/dist/contracts.js.map +1 -1
  6. package/dist/daemon-provider.d.ts +49 -0
  7. package/dist/daemon-provider.d.ts.map +1 -0
  8. package/dist/daemon-provider.js +231 -0
  9. package/dist/daemon-provider.js.map +1 -0
  10. package/dist/extension.d.ts.map +1 -1
  11. package/dist/extension.js +30 -9
  12. package/dist/extension.js.map +1 -1
  13. package/dist/local/context.d.ts +2 -2
  14. package/dist/local/control.d.ts +3 -2
  15. package/dist/local/control.d.ts.map +1 -1
  16. package/dist/local/control.js.map +1 -1
  17. package/dist/local/coordinator.d.ts +30 -51
  18. package/dist/local/coordinator.d.ts.map +1 -1
  19. package/dist/local/coordinator.js +495 -258
  20. package/dist/local/coordinator.js.map +1 -1
  21. package/dist/local/dreamer.d.ts +3 -1
  22. package/dist/local/dreamer.d.ts.map +1 -1
  23. package/dist/local/dreamer.js +3 -3
  24. package/dist/local/dreamer.js.map +1 -1
  25. package/dist/local/lease.d.ts.map +1 -1
  26. package/dist/local/lease.js +12 -7
  27. package/dist/local/lease.js.map +1 -1
  28. package/dist/local/project.d.ts +1 -0
  29. package/dist/local/project.d.ts.map +1 -1
  30. package/dist/local/project.js +124 -2
  31. package/dist/local/project.js.map +1 -1
  32. package/dist/local/shared.d.ts +7 -0
  33. package/dist/local/shared.d.ts.map +1 -0
  34. package/dist/local/shared.js +30 -0
  35. package/dist/local/shared.js.map +1 -0
  36. package/dist/local/store.d.ts +12 -0
  37. package/dist/local/store.d.ts.map +1 -1
  38. package/dist/local/store.js +49 -3
  39. package/dist/local/store.js.map +1 -1
  40. package/package.json +7 -3
package/README.md CHANGED
@@ -5,15 +5,39 @@ and Pi extension behavior for Felan hosts.
5
5
 
6
6
  The package root requires the core `felan.runtime@1`, `felan.models@1`, and
7
7
  `felan.sessions@1` services. It owns the local store, project coordination,
8
- checkpoint recovery, dreaming, retention and `/memory` commands. There is no
9
- memory-specific provider or service contract.
10
-
11
- Only a loaded root extension schedules work. Reader sessions recall the current
12
- artifact without recording checkpoints or starting workers. Files and atomic
8
+ checkpoint recovery, dreaming, retention and `/memory` commands.
9
+
10
+ The daemon process shares one memory coordinator per agent directory across its
11
+ sessions. Loaded root sessions whose host provides workers and runtime
12
+ lifetime can drive processing. Reader sessions and limited hosts can recall the
13
+ current artifact without starting workers; readers do not record checkpoints.
14
+ Processing is event-driven, with targeted recovery retries and writer re-checks
15
+ instead of a polling monitor. Files and atomic
13
16
  storage operations use the scoped Runtime; model selection uses the authenticated
14
17
  Models facade. Restricted dreaming sessions and lifecycle settlement go through
15
- Sessions. Missing capabilities prevent activation rather than opening an
16
- independent, untracked worker.
18
+ Sessions. Missing worker or lifetime capabilities disable processing rather than
19
+ opening an independent, untracked worker.
20
+
21
+ `@felan-ai/ext-memory/daemon` exports a default daemon provider and
22
+ `createMemoryDaemonProvider(options?)`. It provides `felan.memory.scheduler@1`,
23
+ requires `felan.host.maintenance@1`, and optionally uses `felan.host.models@1`.
24
+ The provider shares the extension's coordinator and keeps one persistent
25
+ attachment per discovered project, so pending work can run with no loaded
26
+ session. It coalesces coordinator status changes within two seconds and rescans
27
+ every ten minutes. Without host models it tracks projects but disables scheduling.
28
+ The scheduler's `status()` returns each tracked project root and its memory status.
29
+ Hosts can supply a `runtime` instance or a `() => AgentRuntime` factory called
30
+ during activation, extra `projects`, and a project-to-session `selector`.
31
+ Explicit project roots resolve once per activation. `discover` defaults to `true`;
32
+ set it to `false` to track only `projects` without listing stored project directories.
33
+ For shared team memory, pass the team workspace in `projects`, `discover: false`,
34
+ and a selector that returns `{ kind: 'all' }`. By default, session listings include
35
+ sessions whose cwd resolves to the same project, including git subdirectories.
36
+ Checkpoint and history reads use the host's full authorized inventory.
37
+ Attachments use the host's allowed model scope and refresh it on rescan.
38
+ Host drain immediately stops scheduling through every persistent attachment.
39
+ Settlement detaches the provider and releases its
40
+ coordinator reference without closing other sessions' attachments.
17
41
 
18
42
  The canonical layout remains `<agentDir>/memory/v1/projects/<projectKey>` and
19
43
  retained journals remain under `<agentDir>/sessions/memory`. A session's `.memory`
@@ -103,9 +127,9 @@ lineage and create a deterministic, redacted visible-branch delta. Diverged
103
127
  lineages emit the complete current branch. Output limits reject an oversized
104
128
  projection instead of truncating a JSONL record. Sessions providers supply the complete journal; the extension stages successful
105
129
  projections. Large source session
106
- files are not rejected solely for their total size. Deterministic source
107
- failures remain pending for retry, while valid checkpoints in the same batch
108
- can still be published.
130
+ files are not rejected solely for their total size. A checkpoint that cannot be
131
+ materialized is dropped and remembered in `state.json`, so it is not retried
132
+ after a restart; the run fills its batch with the next pending checkpoints.
109
133
 
110
134
  The memory schema keeps the wiki sparse. It prioritizes durable user-authored
111
135
  facts, preferences, decisions, corrections, and uncodified rationale, followed
@@ -50,6 +50,14 @@ export interface MemoryHost {
50
50
  recordCheckpoint(checkpoint: SessionCheckpoint): Promise<void>;
51
51
  status(): Promise<MemoryStatus>;
52
52
  }
53
+ export interface MemorySchedulerProjectStatus {
54
+ readonly projectRoot: string;
55
+ readonly status: MemoryStatus;
56
+ }
57
+ export interface MemorySchedulerService {
58
+ status(): Promise<readonly MemorySchedulerProjectStatus[]>;
59
+ }
60
+ export declare const MEMORY_SCHEDULER_SERVICE: import("@felan-ai/agent-core").ServiceContract<MemorySchedulerService>;
53
61
  export interface MemoryInputSession {
54
62
  readonly checkpoint: SessionCheckpoint;
55
63
  readonly metadataPath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
package/dist/contracts.js CHANGED
@@ -1,6 +1,8 @@
1
+ import { defineServiceContract } from '@felan-ai/agent-core';
1
2
  export const MEMORY_ARTIFACT_VERSION = 1;
2
3
  export const MEMORY_INPUT_MANIFEST_VERSION = 1;
3
4
  export const MEMORY_INPUT_PROJECTION_VERSION = 1;
5
+ export const MEMORY_SCHEDULER_SERVICE = defineServiceContract('felan.memory.scheduler', 1);
4
6
  export const DEFAULT_MEMORY_ARTIFACT_LIMITS = Object.freeze({
5
7
  maxFiles: 256,
6
8
  maxFileBytes: 256 * 1024,
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAU,CAAC;AAClD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAU,CAAC;AACxD,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAU,CAAC;AA0F1D,MAAM,CAAC,MAAM,8BAA8B,GAAyB,MAAM,CAAC,MAAM,CAAC;IAChF,QAAQ,EAAE,GAAG;IACb,YAAY,EAAE,GAAG,GAAG,IAAI;IACxB,aAAa,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;CAC/B,CAAC,CAAC"}
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAU,CAAC;AAClD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAU,CAAC;AACxD,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAU,CAAC;AA4E1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAyB,wBAAwB,EAAE,CAAC,CAAC,CAAC;AAyBnH,MAAM,CAAC,MAAM,8BAA8B,GAAyB,MAAM,CAAC,MAAM,CAAC;IAChF,QAAQ,EAAE,GAAG;IACb,YAAY,EAAE,GAAG,GAAG,IAAI;IACxB,aAAa,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;CAC/B,CAAC,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { type AgentRuntime, type ExtensionServiceAccess, type HostSessionsSelector, type ModelsService } from '@felan-ai/agent-core';
2
+ import { type MemorySchedulerService } from './contracts.js';
3
+ import { type LocalMemoryProject } from './local/project.js';
4
+ export { MEMORY_SCHEDULER_SERVICE } from './contracts.js';
5
+ export type { MemorySchedulerService, MemorySchedulerProjectStatus } from './contracts.js';
6
+ export interface MemoryDaemonProviderOptions {
7
+ readonly runtime?: AgentRuntime | (() => AgentRuntime);
8
+ readonly projects?: readonly string[];
9
+ readonly discover?: boolean;
10
+ readonly selector?: (project: LocalMemoryProject) => HostSessionsSelector;
11
+ }
12
+ export declare function createMemoryDaemonProvider(options?: MemoryDaemonProviderOptions): {
13
+ scope: "daemon";
14
+ provides: import("@felan-ai/agent-core").ServiceContract<MemorySchedulerService>[];
15
+ requires: import("@felan-ai/agent-core").ServiceContract<import("@felan-ai/agent-core").HostMaintenance>[];
16
+ optional: import("@felan-ai/agent-core").ServiceContract<ModelsService>[];
17
+ create({ services }: {
18
+ readonly services: ExtensionServiceAccess;
19
+ }): Promise<{
20
+ implementations: {
21
+ contract: import("@felan-ai/agent-core").ServiceContract<MemorySchedulerService>;
22
+ value: MemorySchedulerService;
23
+ }[];
24
+ busy: () => boolean;
25
+ activate(): Promise<void>;
26
+ settle: (mode: "drain" | "force") => Promise<void>;
27
+ dispose: () => Promise<void>;
28
+ }>;
29
+ };
30
+ declare const _default: {
31
+ scope: "daemon";
32
+ provides: import("@felan-ai/agent-core").ServiceContract<MemorySchedulerService>[];
33
+ requires: import("@felan-ai/agent-core").ServiceContract<import("@felan-ai/agent-core").HostMaintenance>[];
34
+ optional: import("@felan-ai/agent-core").ServiceContract<ModelsService>[];
35
+ create({ services }: {
36
+ readonly services: ExtensionServiceAccess;
37
+ }): Promise<{
38
+ implementations: {
39
+ contract: import("@felan-ai/agent-core").ServiceContract<MemorySchedulerService>;
40
+ value: MemorySchedulerService;
41
+ }[];
42
+ busy: () => boolean;
43
+ activate(): Promise<void>;
44
+ settle: (mode: "drain" | "force") => Promise<void>;
45
+ dispose: () => Promise<void>;
46
+ }>;
47
+ };
48
+ export default _default;
49
+ //# sourceMappingURL=daemon-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-provider.d.ts","sourceRoot":"","sources":["../src/daemon-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAInB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAA4B,KAAK,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAEvF,OAAO,EAA0D,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGrH,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,YAAY,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAE3F,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC;IACvD,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,oBAAoB,CAAC;CAC3E;AAaD,wBAAgB,0BAA0B,CAAC,OAAO,GAAE,2BAAgC;;;;;yBAMrD;QAAE,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAA;KAAE;;;;;;oBA0DxD,OAAO,CAAC,IAAI,CAAC;uBAlCN,OAAO,GAAG,OAAO,KAAG,OAAO,CAAC,IAAI,CAAC;;;EAwK3D;;;;;;yBAhM8B;QAAE,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAA;KAAE;;;;;;oBA0DxD,OAAO,CAAC,IAAI,CAAC;uBAlCN,OAAO,GAAG,OAAO,KAAG,OAAO,CAAC,IAAI,CAAC;;;;AA0K5D,wBAA4C"}
@@ -0,0 +1,231 @@
1
+ import { HOST_MAINTENANCE_SERVICE, HOST_MODELS_SERVICE, HostAgentRuntime, } from '@felan-ai/agent-core';
2
+ import { MEMORY_SCHEDULER_SERVICE } from './contracts.js';
3
+ import { discoverLocalMemoryProjects, resolveLocalMemoryProject } from './local/project.js';
4
+ import { acquireSharedLocalMemoryCoordinator } from './local/shared.js';
5
+ export { MEMORY_SCHEDULER_SERVICE } from './contracts.js';
6
+ const unavailableReason = 'Dream scheduling is unavailable because this host does not provide models; captured memory remains readable.';
7
+ const scopeUnavailableReason = 'Dream scheduling is unavailable until the host model scope can be resolved; captured memory remains readable.';
8
+ const unavailable = () => { throw new Error(unavailableReason); };
9
+ const unavailableModels = {
10
+ getAvailable: async () => [],
11
+ completeSimple: unavailable,
12
+ streamSimple: unavailable,
13
+ getAvailableOfType: async () => [],
14
+ generateImages: unavailable,
15
+ };
16
+ export function createMemoryDaemonProvider(options = {}) {
17
+ return {
18
+ scope: 'daemon',
19
+ provides: [MEMORY_SCHEDULER_SERVICE],
20
+ requires: [HOST_MAINTENANCE_SERVICE],
21
+ optional: [HOST_MODELS_SERVICE],
22
+ async create({ services }) {
23
+ const projects = new Map();
24
+ let shared;
25
+ let active = false;
26
+ let closed = false;
27
+ let activation;
28
+ let scanning;
29
+ let scanRequested = false;
30
+ let unsubscribe;
31
+ let timer;
32
+ let debounce;
33
+ let removeAbortListener;
34
+ let closing;
35
+ let forcing;
36
+ const scheduler = {
37
+ status: async () => {
38
+ await scanning?.catch(() => { });
39
+ return Promise.all([...projects.values()].map(async ({ project, attachment }) => ({
40
+ projectRoot: project.canonicalRoot,
41
+ status: await attachment.status(project.canonicalRoot),
42
+ })));
43
+ },
44
+ };
45
+ const close = (mode) => {
46
+ closed = true;
47
+ if (closing && mode === 'force') {
48
+ const pendingClose = closing;
49
+ forcing ??= Promise.allSettled([...projects.values()].map(({ attachment }) => attachment.settle('force')))
50
+ .then(() => pendingClose).finally(() => { forcing = undefined; });
51
+ return forcing;
52
+ }
53
+ closing ??= (async () => {
54
+ active = false;
55
+ if (timer)
56
+ clearInterval(timer);
57
+ if (debounce)
58
+ clearTimeout(debounce);
59
+ unsubscribe?.();
60
+ removeAbortListener?.();
61
+ const settling = Promise.allSettled([...projects.entries()].map(async ([key, { attachment }]) => {
62
+ try {
63
+ await attachment.settle(mode);
64
+ }
65
+ finally {
66
+ await attachment.detach();
67
+ projects.delete(key);
68
+ }
69
+ }));
70
+ await scanning?.catch(() => { });
71
+ const results = await settling;
72
+ await shared?.release();
73
+ shared = undefined;
74
+ const errors = results.flatMap(result => result.status === 'rejected' ? [result.reason] : []);
75
+ if (errors.length)
76
+ throw new AggregateError(errors, 'Memory scheduler shutdown failed');
77
+ })().catch(error => { closing = undefined; throw error; });
78
+ return closing;
79
+ };
80
+ return {
81
+ implementations: [{ contract: MEMORY_SCHEDULER_SERVICE, value: scheduler }],
82
+ busy: () => [...projects.values()].some(({ attachment }) => attachment.busy()),
83
+ activate() {
84
+ if (closed)
85
+ return Promise.reject(new Error('Memory scheduler is closed'));
86
+ activation ??= (async () => {
87
+ const maintenance = services.get(HOST_MAINTENANCE_SERVICE);
88
+ if (!maintenance)
89
+ throw new Error('Memory scheduler requires host maintenance');
90
+ maintenance.signal.throwIfAborted();
91
+ const models = services.get(HOST_MODELS_SERVICE);
92
+ const runtime = (typeof options.runtime === 'function' ? options.runtime() : options.runtime) ?? new HostAgentRuntime(maintenance.agentDir, {
93
+ agentDir: maintenance.agentDir,
94
+ agentStorageRoot: maintenance.agentDir,
95
+ sessionStorageRoot: maintenance.agentDir,
96
+ pathAccess: 'host',
97
+ });
98
+ const discovery = { runtime, sessions: maintenance.sessions({ kind: 'all' }) };
99
+ const resolvedProjects = new Map();
100
+ const resolveProject = (cwd) => {
101
+ let resolved = resolvedProjects.get(cwd);
102
+ if (!resolved) {
103
+ resolved = resolveLocalMemoryProject(discovery, cwd);
104
+ resolvedProjects.set(cwd, resolved);
105
+ void resolved.catch(() => { resolvedProjects.delete(cwd); });
106
+ }
107
+ return resolved;
108
+ };
109
+ const projectHistory = (project) => ({
110
+ current: discovery.sessions.current,
111
+ history: (id, request) => discovery.sessions.history(id, request),
112
+ checkpoint: (id, request) => discovery.sessions.checkpoint(id, request),
113
+ list: async (filter, request) => {
114
+ const page = await discovery.sessions.list(filter, request);
115
+ const matches = await Promise.all(page.items.map(async (session) => (await resolveProject(session.cwd)).key === project.key));
116
+ return { ...page, items: page.items.filter((_, index) => matches[index]) };
117
+ },
118
+ });
119
+ shared = acquireSharedLocalMemoryCoordinator({ agentDir: maintenance.agentDir });
120
+ active = true;
121
+ const onAbort = () => { void close('drain').catch(() => runtime.logger.warn('Memory scheduler drain failed')); };
122
+ maintenance.signal.addEventListener('abort', onAbort, { once: true });
123
+ removeAbortListener = () => maintenance.signal.removeEventListener('abort', onAbort);
124
+ let scope = { unavailableReason: scopeUnavailableReason };
125
+ const scanProjects = async () => {
126
+ let nextScope;
127
+ let timeout;
128
+ let onScopeAbort;
129
+ try {
130
+ const interrupted = new Promise((_, reject) => {
131
+ timeout = setTimeout(() => reject(new Error('Memory model scope resolution timed out')), 30_000);
132
+ timeout.unref?.();
133
+ onScopeAbort = () => reject(new DOMException('Memory model scope resolution aborted', 'AbortError'));
134
+ maintenance.signal.addEventListener('abort', onScopeAbort, { once: true });
135
+ if (maintenance.signal.aborted)
136
+ onScopeAbort();
137
+ });
138
+ const allowed = await Promise.race([maintenance.allowedModels(maintenance.signal), interrupted]);
139
+ const scopedModels = allowed?.flatMap(selection => {
140
+ const model = maintenance.modelRuntime.getModel(selection.provider, selection.id);
141
+ return model ? [model] : [];
142
+ });
143
+ nextScope = { models: scopedModels };
144
+ }
145
+ catch (error) {
146
+ if (error instanceof Error && error.name === 'AbortError')
147
+ nextScope = scope;
148
+ else {
149
+ if (active)
150
+ runtime.logger.warn('Memory model scope is unavailable; scheduling remains paused');
151
+ nextScope = { unavailableReason: scopeUnavailableReason };
152
+ }
153
+ }
154
+ finally {
155
+ if (timeout)
156
+ clearTimeout(timeout);
157
+ if (onScopeAbort)
158
+ maintenance.signal.removeEventListener('abort', onScopeAbort);
159
+ }
160
+ if (!active)
161
+ return;
162
+ if (JSON.stringify(scope) !== JSON.stringify(nextScope)) {
163
+ scope = nextScope;
164
+ for (const { attachment } of projects.values()) {
165
+ attachment.setModelSelection(undefined, scope.models, models?.classifier);
166
+ attachment.setScheduling(!!models && !scope.unavailableReason, models ? scope.unavailableReason : unavailableReason);
167
+ }
168
+ }
169
+ const discovered = options.discover === false ? [] : await discoverLocalMemoryProjects(discovery, maintenance.agentDir);
170
+ discovered.push(...await Promise.all((options.projects ?? []).map(resolveProject)));
171
+ for (const project of discovered) {
172
+ if (!active)
173
+ return;
174
+ const existing = projects.get(project.key);
175
+ if (existing) {
176
+ await existing.attachment.status(existing.project.canonicalRoot);
177
+ continue;
178
+ }
179
+ const attachment = shared.coordinator.attach({
180
+ environment: {
181
+ runtime,
182
+ sessions: options.selector ? maintenance.sessions(options.selector(project)) : projectHistory(project),
183
+ openWorker: maintenance.openWorker,
184
+ },
185
+ models: models ?? unavailableModels,
186
+ scheduling: !!models && !scope.unavailableReason,
187
+ persistent: true,
188
+ ...(scope.models === undefined ? {} : { scopedModels: scope.models }),
189
+ ...(!models ? { unavailableReason } : scope.unavailableReason ? { unavailableReason: scope.unavailableReason } : {}),
190
+ ...(models?.classifier ? { classifier: models.classifier } : {}),
191
+ });
192
+ projects.set(project.key, { project, attachment });
193
+ await attachment.status(project.canonicalRoot);
194
+ }
195
+ };
196
+ const requestScan = () => {
197
+ if (!active)
198
+ return Promise.resolve();
199
+ scanRequested = true;
200
+ scanning ??= (async () => {
201
+ do {
202
+ scanRequested = false;
203
+ await scanProjects();
204
+ } while (scanRequested && active);
205
+ })().finally(() => { scanning = undefined; });
206
+ return scanning;
207
+ };
208
+ const rescan = () => {
209
+ void requestScan().catch(() => runtime.logger.warn('Memory project discovery failed'));
210
+ };
211
+ unsubscribe = shared.coordinator.subscribeStatusChanges(() => {
212
+ if (!active || debounce)
213
+ return;
214
+ debounce = setTimeout(() => { debounce = undefined; rescan(); }, 2_000);
215
+ debounce.unref?.();
216
+ });
217
+ timer = setInterval(() => { resolvedProjects.clear(); rescan(); }, 10 * 60 * 1_000);
218
+ timer.unref?.();
219
+ // The daemon reports ready only after activation, so the first scan must not hold it.
220
+ rescan();
221
+ })();
222
+ return activation;
223
+ },
224
+ settle: close,
225
+ dispose: () => close('force'),
226
+ };
227
+ },
228
+ };
229
+ }
230
+ export default createMemoryDaemonProvider();
231
+ //# sourceMappingURL=daemon-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-provider.js","sourceRoot":"","sources":["../src/daemon-provider.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoF,KAAK,wBAAwB,EAA0B,MAAM,sBAAsB,CAAC;AAK/K,cAAc,YAAY,CAAC;AAE3B,QAAA,MAAM,SAAS,EA2B8H,wBAAwB,CAAC;AAEtK,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoF,KAAK,wBAAwB,EAA0B,MAAM,sBAAsB,CAAC;AAK/K,cAAc,YAAY,CAAC;AAE3B,QAAA,MAAM,SAAS,EA8C8H,wBAAwB,CAAC;AAEtK,eAAe,SAAS,CAAC"}
package/dist/extension.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { HOST_WORKERS_SERVICE, RUNTIME_LIFETIME_SERVICE, MODELS_SERVICE, SESSIONS_SERVICE } from '@felan-ai/agent-core';
2
2
  import { createMemoryExtension } from './index.js';
3
- import { LocalMemoryCoordinator } from './local/coordinator.js';
3
+ import { acquireSharedLocalMemoryCoordinator } from './local/shared.js';
4
4
  import { createMemoryControlExtension } from './local/control.js';
5
5
  import { createMemoryPresentation } from './local/ui.js';
6
6
  export * from './index.js';
@@ -22,16 +22,37 @@ const extension = Object.assign((pi) => {
22
22
  const environment = { runtime: pi.runtime, sessions, ...(openWorker ? { openWorker } : {}) };
23
23
  const root = sessions.current.id === sessions.current.root;
24
24
  const schedulingAvailable = !!openWorker && !!lifetime;
25
- const coordinator = new LocalMemoryCoordinator(environment, { agentDir: pi.agentDir, models, enabled: root && schedulingAvailable,
25
+ const shared = acquireSharedLocalMemoryCoordinator({ agentDir: pi.agentDir });
26
+ const attachment = shared.coordinator.attach({ environment, models, scheduling: root && schedulingAvailable,
26
27
  ...(root && !schedulingAvailable ? { unavailableReason: 'Dream scheduling is unavailable on this host; captured memory remains readable.' } : {}),
27
28
  ...(models.classifier ? { classifier: models.classifier } : {}) });
28
- const host = coordinator.createSessionHost({ cwd: pi.runtime.cwd, sessionStorageRoot: pi.runtime.storage('session').root });
29
- const release = root && lifetime ? lifetime.register({ busy: () => coordinator.hasActiveWork(),
30
- settle: mode => mode === 'drain' ? coordinator.drain() : coordinator.dispose(), dispose: () => coordinator.dispose() }) : undefined;
31
- createMemoryExtension({ role: root ? 'root' : 'reader', host })(pi);
32
- if (root)
33
- createMemoryControlExtension({ coordinator, agentDir: pi.agentDir, presentation: createMemoryPresentation(pi, environment) })(pi);
34
- pi.on('session_shutdown', async () => { await coordinator.dispose(); release?.(); });
29
+ let release;
30
+ let closed;
31
+ const close = () => {
32
+ closed ??= (async () => {
33
+ try {
34
+ await attachment.detach();
35
+ }
36
+ finally {
37
+ release?.();
38
+ await shared.release();
39
+ }
40
+ })();
41
+ return closed;
42
+ };
43
+ pi.on('session_shutdown', close);
44
+ try {
45
+ const host = attachment.createSessionHost({ cwd: pi.runtime.cwd, sessionStorageRoot: pi.runtime.storage('session').root });
46
+ release = root && lifetime ? lifetime.register({ busy: () => attachment.busy(),
47
+ settle: mode => attachment.settle(mode), dispose: close }) : undefined;
48
+ createMemoryExtension({ role: root ? 'root' : 'reader', host })(pi);
49
+ if (root)
50
+ createMemoryControlExtension({ coordinator: attachment, agentDir: pi.agentDir, presentation: createMemoryPresentation(pi, environment) })(pi);
51
+ }
52
+ catch (error) {
53
+ void close();
54
+ throw error;
55
+ }
35
56
  }, { serviceRequirements: { required: [MODELS_SERVICE, SESSIONS_SERVICE], optional: [HOST_WORKERS_SERVICE, RUNTIME_LIFETIME_SERVICE] } });
36
57
  export default extension;
37
58
  //# sourceMappingURL=extension.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import type { AgentRuntime, HostWorkerLauncher, SessionsService } from '@felan-ai/agent-core';
1
+ import type { AgentRuntime, HostWorkerLauncher, SessionsHistory } from '@felan-ai/agent-core';
2
2
  export interface MemoryContext {
3
3
  readonly runtime: AgentRuntime;
4
- readonly sessions: SessionsService;
4
+ readonly sessions: SessionsHistory;
5
5
  readonly openWorker?: HostWorkerLauncher;
6
6
  }
7
7
  export declare function removeIfPresent(context: MemoryContext, path: string, options?: {
@@ -1,11 +1,12 @@
1
1
  import type { ExtensionContext, FelanExtension } from '@felan-ai/agent-core';
2
- import type { LocalMemoryCoordinator } from './coordinator.js';
2
+ import type { LocalMemoryAttachment } from './coordinator.js';
3
3
  export interface MemoryControlPresentationHost {
4
4
  showHistory(ctx: ExtensionContext, agentDir: string, status: string, signal: AbortSignal): Promise<void>;
5
5
  openDirectory(directory: string, signal: AbortSignal): Promise<void>;
6
6
  }
7
+ export type MemoryControlCoordinator = Pick<LocalMemoryAttachment, 'status' | 'runNow' | 'retryProject' | 'canonicalDirectory' | 'subscribeStatusChanges' | 'setSelectedModel'>;
7
8
  export interface CreateMemoryControlExtensionOptions {
8
- readonly coordinator: LocalMemoryCoordinator;
9
+ readonly coordinator: MemoryControlCoordinator;
9
10
  readonly agentDir: string;
10
11
  readonly presentation: MemoryControlPresentationHost;
11
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../src/local/control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAqB,MAAM,kBAAkB,CAAC;AAKlF,MAAM,WAAW,6BAA6B;IAC5C,WAAW,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE;AAED,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,6BAA6B,CAAC;CACtD;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,mCAAmC,GAC3C,cAAc,CAqKhB"}
1
+ {"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../src/local/control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,qBAAqB,EAAqB,MAAM,kBAAkB,CAAC;AAKjF,MAAM,WAAW,6BAA6B;IAC5C,WAAW,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE;AAED,MAAM,MAAM,wBAAwB,GAAG,IAAI,CAAC,qBAAqB,EAC/D,QAAQ,GAAG,QAAQ,GAAG,cAAc,GAAG,oBAAoB,GAAG,wBAAwB,GAAG,kBAAkB,CAAC,CAAC;AAE/G,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,WAAW,EAAE,wBAAwB,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,6BAA6B,CAAC;CACtD;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,mCAAmC,GAC3C,cAAc,CAqKhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"control.js","sourceRoot":"","sources":["../../src/local/control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control.js","sourceRoot":"","sources":["../../src/local/control.ts"],"names":[],"mappings":"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"}