@felan-ai/ext-memory 0.10.1 → 0.12.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.
- package/README.md +11 -7
- package/dist/extension.d.ts.map +1 -1
- package/dist/extension.js +30 -9
- package/dist/extension.js.map +1 -1
- package/dist/local/control.d.ts +3 -2
- package/dist/local/control.d.ts.map +1 -1
- package/dist/local/control.js.map +1 -1
- package/dist/local/coordinator.d.ts +28 -51
- package/dist/local/coordinator.d.ts.map +1 -1
- package/dist/local/coordinator.js +446 -258
- package/dist/local/coordinator.js.map +1 -1
- package/dist/local/dreamer.d.ts +3 -1
- package/dist/local/dreamer.d.ts.map +1 -1
- package/dist/local/dreamer.js +2 -2
- package/dist/local/dreamer.js.map +1 -1
- package/dist/local/lease.d.ts.map +1 -1
- package/dist/local/lease.js +12 -7
- package/dist/local/lease.js.map +1 -1
- package/dist/local/shared.d.ts +7 -0
- package/dist/local/shared.d.ts.map +1 -0
- package/dist/local/shared.js +30 -0
- package/dist/local/shared.js.map +1 -0
- package/dist/local/store.d.ts +12 -0
- package/dist/local/store.d.ts.map +1 -1
- package/dist/local/store.js +34 -3
- package/dist/local/store.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -8,12 +8,16 @@ The package root requires the core `felan.runtime@1`, `felan.models@1`, and
|
|
|
8
8
|
checkpoint recovery, dreaming, retention and `/memory` commands. There is no
|
|
9
9
|
memory-specific provider or service contract.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
The daemon process shares one memory coordinator per agent directory across its
|
|
12
|
+
sessions. Only loaded root sessions whose host provides workers and runtime
|
|
13
|
+
lifetime can drive processing. Reader sessions and limited hosts can recall the
|
|
14
|
+
current artifact without starting workers; readers do not record checkpoints.
|
|
15
|
+
Processing is event-driven, with targeted recovery retries and writer re-checks
|
|
16
|
+
instead of a polling monitor. Files and atomic
|
|
13
17
|
storage operations use the scoped Runtime; model selection uses the authenticated
|
|
14
18
|
Models facade. Restricted dreaming sessions and lifecycle settlement go through
|
|
15
|
-
Sessions. Missing capabilities
|
|
16
|
-
independent, untracked worker.
|
|
19
|
+
Sessions. Missing worker or lifetime capabilities disable processing rather than
|
|
20
|
+
opening an independent, untracked worker.
|
|
17
21
|
|
|
18
22
|
The canonical layout remains `<agentDir>/memory/v1/projects/<projectKey>` and
|
|
19
23
|
retained journals remain under `<agentDir>/sessions/memory`. A session's `.memory`
|
|
@@ -103,9 +107,9 @@ lineage and create a deterministic, redacted visible-branch delta. Diverged
|
|
|
103
107
|
lineages emit the complete current branch. Output limits reject an oversized
|
|
104
108
|
projection instead of truncating a JSONL record. Sessions providers supply the complete journal; the extension stages successful
|
|
105
109
|
projections. Large source session
|
|
106
|
-
files are not rejected solely for their total size.
|
|
107
|
-
|
|
108
|
-
|
|
110
|
+
files are not rejected solely for their total size. A checkpoint that cannot be
|
|
111
|
+
materialized is dropped and remembered in `state.json`, so it is not retried
|
|
112
|
+
after a restart; the run fills its batch with the next pending checkpoints.
|
|
109
113
|
|
|
110
114
|
The memory schema keeps the wiki sparse. It prioritizes durable user-authored
|
|
111
115
|
facts, preferences, decisions, corrections, and uncodified rationale, followed
|
package/dist/extension.d.ts.map
CHANGED
|
@@ -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,
|
|
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 {
|
|
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
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
package/dist/extension.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,cAAc,EAAE,gBAAgB,EAAyD,MAAM,sBAAsB,CAAC;AAC/K,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
|
package/dist/local/control.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { ExtensionContext, FelanExtension } from '@felan-ai/agent-core';
|
|
2
|
-
import type {
|
|
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:
|
|
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,
|
|
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":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,MAAM,cAAc,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACtH,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../src/local/control.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,MAAM,cAAc,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACtH,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAgBlF,MAAM,UAAU,4BAA4B,CAC1C,OAA4C;IAE5C,OAAO,CAAC,EAAE,EAAE,EAAE;QACZ,IAAI,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;QACvC,IAAI,aAA2C,CAAC;QAChD,IAAI,eAAmC,CAAC;QACxC,IAAI,SAA6B,CAAC;QAClC,IAAI,iBAA2C,CAAC;QAChD,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,qBAAqB,GAAG,KAAK,CAAC;QAElC,MAAM,mBAAmB,GAAG,KAAK,IAAmB,EAAE;YACpD,MAAM,OAAO,GAAG,EAAE,aAAa,CAAC;YAChC,MAAM,GAAG,GAAG,aAAa,CAAC;YAC1B,IAAI,CAAC,GAAG;gBAAE,OAAO;YACjB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACzD,IAAI,aAAa,KAAK,GAAG,IAAI,OAAO,KAAK,aAAa;gBAAE,OAAO;YAC/D,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC1B,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;oBACxB,qBAAqB,GAAG,KAAK,CAAC;oBAC9B,MAAM,CAAC,GAAG,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;gBACtD,CAAC;qBAAM,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS;oBAAE,qBAAqB,GAAG,KAAK,CAAC;YACnF,CAAC;QACH,CAAC,CAAC;QAEF,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE;YAC3B,WAAW,EAAE,oEAAoE;YACjF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;gBAC3B,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO;oBAAE,OAAO;gBACpC,MAAM,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC1D,MAAM,OAAO,GAAG,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;gBAC5C,MAAM,UAAU,GAAG,SAAS,CAAC;gBAC7B,MAAM,OAAO,GAAG,EAAE,aAAa,CAAC;gBAChC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC;gBACjD,MAAM,MAAM,GAAG,CAAC,MAAyB,EAAE,EAAE;oBAC3C,IAAI,CAAC,SAAS,EAAE;wBAAE,OAAO;oBACzB,IAAI,OAAO,KAAK,aAAa;wBAAE,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBACzD,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;gBACpC,CAAC,CAAC;gBACF,MAAM,KAAK,GAAG,CAAC,SAAqC,EAAE,OAAe,EAAE,EAAE;oBACvE,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC7B,KAAK,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;wBACrC,IAAI,CAAC,SAAS,EAAE;4BAAE,OAAO;wBACzB,MAAM,CAAC,GAAG,EAAE,oDAAoD,EAAE,SAAS,CAAC,CAAC;oBAC/E,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC;gBACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,MAAM,CAAC,GAAG,EAAE,6CAA6C,EAAE,SAAS,CAAC,CAAC;oBACtE,OAAO;gBACT,CAAC;gBACD,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;oBACnB,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBACzD,IAAI,CAAC,SAAS,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO;4BAAE,OAAO;wBACpD,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;wBAC5G,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAChB,IAAI,CAAC;4BAAC,MAAM,IAAI,CAAC;wBAAC,CAAC;gCAAS,CAAC;4BAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBAAC,CAAC;oBACrD,CAAC;oBAAC,MAAM,CAAC;wBACP,IAAI,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO;4BAAE,MAAM,CAAC,GAAG,EAAE,sCAAsC,EAAE,SAAS,CAAC,CAAC;oBAC9G,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;oBACtB,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;wBACpE,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,KAAK,SAAS;+BAC1C,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;wBACvF,OAAO,KAAK;4BACV,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;4BAC3C,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC1C,CAAC,CAAC,CAAC;oBACH,KAAK,CAAC,SAAS,EAAE,8BAA8B,CAAC,CAAC;oBACjD,OAAO;gBACT,CAAC;gBACD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;oBACvB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACxE,IAAI,CAAC,SAAS,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO;wBAAE,OAAO;oBACpD,MAAM,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACrE,IAAI,SAAS,EAAE;wBAAE,MAAM,CAAC,GAAG,EAAE,gCAAgC,EAAE,MAAM,CAAC,CAAC;oBACvE,OAAO;gBACT,CAAC;gBACD,MAAM,CAAC,GAAG,EAAE,6CAA6C,EAAE,SAAS,CAAC,CAAC;YACxE,CAAC;SACF,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3C,MAAM,SAAS,GAAG,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACpD,MAAM,WAAW,GAAG,eAAe,KAAK,SAAS,IAAI,SAAS,KAAK,GAAG,CAAC,GAAG,CAAC;YAC3E,IAAI,WAAW,EAAE,CAAC;gBAChB,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;gBACrC,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;gBACjC,SAAS,IAAI,CAAC,CAAC;gBACf,qBAAqB,GAAG,IAAI,CAAC;YAC/B,CAAC;YACD,aAAa,GAAG,GAAG,CAAC;YACpB,eAAe,GAAG,SAAS,CAAC;YAC5B,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC;YACpB,MAAM,UAAU,GAAG,SAAS,CAAC;YAC7B,iBAAiB,EAAE,EAAE,CAAC;YACtB,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC,GAAG,EAAE;gBAClE,IAAI,UAAU,KAAK,SAAS;oBAAE,OAAO;gBACrC,KAAK,mBAAmB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,MAAM,mBAAmB,EAAE,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC9C,IAAI,eAAe,KAAK,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,SAAS,KAAK,GAAG,CAAC,GAAG;gBAAE,OAAO;YAC3F,SAAS,IAAI,CAAC,CAAC;YACf,aAAa,IAAI,CAAC,CAAC;YACnB,aAAa,GAAG,SAAS,CAAC;YAC1B,eAAe,GAAG,SAAS,CAAC;YAC5B,SAAS,GAAG,SAAS,CAAC;YACtB,qBAAqB,GAAG,KAAK,CAAC;YAC9B,iBAAiB,EAAE,EAAE,CAAC;YACtB,iBAAiB,GAAG,SAAS,CAAC;YAC9B,MAAM,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACnD,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YAClC,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEP,SAAS,YAAY,CACnB,IAAsB,EACtB,MAAyB;YAEzB,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,kBAAkB,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YACnG,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY;gBAC3D,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9F,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB;gBAC/C,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBACzE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/C,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC1L,CAAC;QAED,SAAS,YAAY,CAAC,MAAyB;YAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;YACxD,MAAM,OAAO,GAAG,CAAC,iBAAiB,OAAO,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,kBAAkB,UAAU,CAAC,CAAC;YACnG,IAAI,MAAM,CAAC,mBAAmB;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,mBAAmB,uBAAuB,CAAC,CAAC;YACnG,IAAI,MAAM,CAAC,WAAW;gBAAE,OAAO,CAAC,IAAI,CAAC,YAAY,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACvF,IAAI,MAAM,CAAC,SAAS,IAAI,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YACpG,IAAI,MAAM,CAAC,YAAY;gBAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YACnE,IAAI,MAAM,CAAC,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACjE,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,SAAS,mBAAmB,CAAC,MAAyB;YACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAa,CAAC;YACtC,MAAM,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,mBAAmB,CAAC;YACtE,OAAO,8DAA8D,MAAM,IAAI,GAAG,+DAA+D,CAAC;QACpJ,CAAC;QAED,SAAS,MAAM,CAAC,IAAsB,EAAE,OAAe,EAAE,QAAsC,MAAM;YACnG,KAAK,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;IAEC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,47 +1,13 @@
|
|
|
1
|
-
import { LocalMemoryStore } from './store.js';
|
|
2
1
|
import type { MemoryContext } from './context.js';
|
|
3
|
-
import { type MemoryHost, type
|
|
2
|
+
import { type MemoryHost, type MemorySnapshot, type MemoryStatus, type SessionCheckpoint } from '../index.js';
|
|
4
3
|
import { type ModelsService, type Api, type Classifier, type Model } from '@felan-ai/agent-core';
|
|
5
4
|
import type { LocalMemoryLeaseOptions } from './lease.js';
|
|
6
|
-
import type { LocalMemoryProject } from './project.js';
|
|
7
5
|
import type { LocalMemoryDreamRunner } from './dreamer.js';
|
|
8
|
-
import type { LocalMemoryAttempt } from './store.js';
|
|
9
6
|
import type { LocalMemoryControl } from './store.js';
|
|
10
|
-
export interface ProjectContext {
|
|
11
|
-
readonly project: LocalMemoryProject;
|
|
12
|
-
readonly cwd: string;
|
|
13
|
-
readonly sessionDir?: string;
|
|
14
|
-
readonly store: LocalMemoryStore;
|
|
15
|
-
ready: Promise<void> | undefined;
|
|
16
|
-
initialized: boolean;
|
|
17
|
-
recovery: Promise<void> | undefined;
|
|
18
|
-
recoveryAbort: AbortController | undefined;
|
|
19
|
-
recoveryRetryAt: number | undefined;
|
|
20
|
-
recoveryCompleted: boolean;
|
|
21
|
-
diagnosticsReconciled: boolean;
|
|
22
|
-
timer: ReturnType<typeof setTimeout> | undefined;
|
|
23
|
-
timerDueAt: number | undefined;
|
|
24
|
-
run: Promise<void> | undefined;
|
|
25
|
-
readonly followUps: Set<Promise<void>>;
|
|
26
|
-
abort: AbortController | undefined;
|
|
27
|
-
attempt: LocalMemoryAttempt | undefined;
|
|
28
|
-
storageBlocked: boolean;
|
|
29
|
-
writerBlocked: boolean;
|
|
30
|
-
statusSignature: string | undefined;
|
|
31
|
-
blocked: Map<string, MemoryCheckpointCursor>;
|
|
32
|
-
state: MemoryProcessingState;
|
|
33
|
-
message: string | undefined;
|
|
34
|
-
}
|
|
35
|
-
interface MemoryCheckpointCursor {
|
|
36
|
-
readonly leafId: string | null;
|
|
37
|
-
readonly transcriptDigest: string;
|
|
38
|
-
}
|
|
39
7
|
export interface LocalMemoryCoordinatorOptions {
|
|
40
8
|
readonly agentDir: string;
|
|
41
|
-
readonly models: ModelsService;
|
|
42
9
|
readonly sessionDir?: string;
|
|
43
10
|
readonly enabled?: boolean;
|
|
44
|
-
readonly unavailableReason?: string;
|
|
45
11
|
readonly debounceMs?: number;
|
|
46
12
|
readonly batchSize?: number;
|
|
47
13
|
readonly maxInputBytes?: number;
|
|
@@ -51,14 +17,35 @@ export interface LocalMemoryCoordinatorOptions {
|
|
|
51
17
|
readonly recoveryRetryMs?: number;
|
|
52
18
|
readonly recover?: boolean;
|
|
53
19
|
readonly dreamRunner?: LocalMemoryDreamRunner;
|
|
54
|
-
readonly selectedModel?: Model<Api>;
|
|
55
|
-
readonly scopedModels?: readonly Model<Api>[];
|
|
56
|
-
readonly classifier?: Classifier;
|
|
57
20
|
readonly leaseOptions?: LocalMemoryLeaseOptions;
|
|
58
21
|
readonly retryDelaysMs?: readonly [number, number];
|
|
59
|
-
readonly
|
|
22
|
+
readonly writerRetryMs?: number;
|
|
60
23
|
readonly now?: () => number;
|
|
61
24
|
}
|
|
25
|
+
export interface LocalMemoryAttachmentOptions {
|
|
26
|
+
readonly environment: MemoryContext;
|
|
27
|
+
readonly models: ModelsService;
|
|
28
|
+
readonly scheduling: boolean;
|
|
29
|
+
readonly unavailableReason?: string;
|
|
30
|
+
readonly selectedModel?: Model<Api>;
|
|
31
|
+
readonly scopedModels?: readonly Model<Api>[];
|
|
32
|
+
readonly classifier?: Classifier;
|
|
33
|
+
}
|
|
34
|
+
export interface LocalMemoryAttachment {
|
|
35
|
+
createSessionHost(options: LocalMemorySessionHostOptions): MemoryHost;
|
|
36
|
+
readCurrent(cwd: string, sessionStorageRoot: string): Promise<MemorySnapshot>;
|
|
37
|
+
recordCheckpoint(cwd: string, checkpoint: SessionCheckpoint): Promise<void>;
|
|
38
|
+
status(cwd: string): Promise<LocalMemoryStatus>;
|
|
39
|
+
runNow(cwd: string): Promise<LocalMemoryStatus>;
|
|
40
|
+
retryProject(cwd: string): Promise<LocalMemoryStatus>;
|
|
41
|
+
canonicalDirectory(cwd: string): Promise<string>;
|
|
42
|
+
setSelectedModel(model: Model<Api> | undefined): void;
|
|
43
|
+
setModelSelection(model: Model<Api> | undefined, scopedModels: readonly Model<Api>[] | undefined, classifier?: Classifier): void;
|
|
44
|
+
subscribeStatusChanges(listener: () => void): () => void;
|
|
45
|
+
busy(): boolean;
|
|
46
|
+
settle(mode: 'drain' | 'force'): Promise<void>;
|
|
47
|
+
detach(): Promise<void>;
|
|
48
|
+
}
|
|
62
49
|
export interface LocalMemoryStatus extends MemoryStatus {
|
|
63
50
|
readonly consecutiveFailures?: number;
|
|
64
51
|
readonly nextRetryAt?: string;
|
|
@@ -71,23 +58,13 @@ export interface LocalMemorySessionHostOptions {
|
|
|
71
58
|
}
|
|
72
59
|
export declare class LocalMemoryCoordinator {
|
|
73
60
|
#private;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
createSessionHost(options: LocalMemorySessionHostOptions): MemoryHost;
|
|
61
|
+
constructor(options: LocalMemoryCoordinatorOptions);
|
|
62
|
+
attach(options: LocalMemoryAttachmentOptions): LocalMemoryAttachment;
|
|
77
63
|
isEnabled(): boolean;
|
|
78
64
|
hasActiveWork(): boolean;
|
|
79
65
|
subscribeStatusChanges(listener: () => void): () => void;
|
|
80
|
-
setModelSelection(model: Model<Api> | undefined, scopedModels: readonly Model<Api>[] | undefined, classifier?: Classifier): void;
|
|
81
|
-
setSelectedModel(model: Model<Api> | undefined): void;
|
|
82
66
|
setEnabled(enabled: boolean): void;
|
|
83
|
-
status(cwd: string): Promise<LocalMemoryStatus>;
|
|
84
|
-
readCurrent(cwd: string, sessionStorageRoot: string): Promise<MemorySnapshot>;
|
|
85
|
-
recordCheckpoint(cwd: string, checkpoint: SessionCheckpoint): Promise<void>;
|
|
86
|
-
runNow(cwd: string): Promise<LocalMemoryStatus>;
|
|
87
|
-
retryProject(cwd: string): Promise<LocalMemoryStatus>;
|
|
88
|
-
canonicalDirectory(cwd: string): Promise<string>;
|
|
89
67
|
drain(): Promise<void>;
|
|
90
68
|
dispose(): Promise<void>;
|
|
91
69
|
}
|
|
92
|
-
export {};
|
|
93
70
|
//# sourceMappingURL=coordinator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../src/local/coordinator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../src/local/coordinator.ts"],"names":[],"mappings":"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"}
|