agent-working-memory 0.5.6 → 0.6.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.
- package/README.md +78 -43
- package/dist/adapters/claude-code.d.ts +4 -0
- package/dist/adapters/claude-code.d.ts.map +1 -0
- package/dist/adapters/claude-code.js +218 -0
- package/dist/adapters/claude-code.js.map +1 -0
- package/dist/adapters/codex.d.ts +4 -0
- package/dist/adapters/codex.d.ts.map +1 -0
- package/dist/adapters/codex.js +226 -0
- package/dist/adapters/codex.js.map +1 -0
- package/dist/adapters/common.d.ts +34 -0
- package/dist/adapters/common.d.ts.map +1 -0
- package/dist/adapters/common.js +145 -0
- package/dist/adapters/common.js.map +1 -0
- package/dist/adapters/cursor.d.ts +4 -0
- package/dist/adapters/cursor.d.ts.map +1 -0
- package/dist/adapters/cursor.js +138 -0
- package/dist/adapters/cursor.js.map +1 -0
- package/dist/adapters/http.d.ts +4 -0
- package/dist/adapters/http.d.ts.map +1 -0
- package/dist/adapters/http.js +88 -0
- package/dist/adapters/http.js.map +1 -0
- package/dist/adapters/index.d.ts +7 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +21 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/types.d.ts +65 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +4 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/api/routes.d.ts.map +1 -1
- package/dist/api/routes.js +40 -1
- package/dist/api/routes.js.map +1 -1
- package/dist/cli.js +504 -230
- package/dist/cli.js.map +1 -1
- package/dist/coordination/events.d.ts +59 -0
- package/dist/coordination/events.d.ts.map +1 -0
- package/dist/coordination/events.js +28 -0
- package/dist/coordination/events.js.map +1 -0
- package/dist/coordination/index.d.ts +10 -1
- package/dist/coordination/index.d.ts.map +1 -1
- package/dist/coordination/index.js +87 -3
- package/dist/coordination/index.js.map +1 -1
- package/dist/coordination/mcp-tools.d.ts.map +1 -1
- package/dist/coordination/mcp-tools.js +10 -5
- package/dist/coordination/mcp-tools.js.map +1 -1
- package/dist/coordination/peer-decisions.d.ts +40 -0
- package/dist/coordination/peer-decisions.d.ts.map +1 -0
- package/dist/coordination/peer-decisions.js +82 -0
- package/dist/coordination/peer-decisions.js.map +1 -0
- package/dist/coordination/plugin-loader.d.ts +18 -0
- package/dist/coordination/plugin-loader.d.ts.map +1 -0
- package/dist/coordination/plugin-loader.js +55 -0
- package/dist/coordination/plugin-loader.js.map +1 -0
- package/dist/coordination/plugin.d.ts +40 -0
- package/dist/coordination/plugin.d.ts.map +1 -0
- package/dist/coordination/plugin.js +22 -0
- package/dist/coordination/plugin.js.map +1 -0
- package/dist/coordination/routes.d.ts +2 -1
- package/dist/coordination/routes.d.ts.map +1 -1
- package/dist/coordination/routes.js +1027 -65
- package/dist/coordination/routes.js.map +1 -1
- package/dist/coordination/schema.d.ts.map +1 -1
- package/dist/coordination/schema.js +104 -12
- package/dist/coordination/schema.js.map +1 -1
- package/dist/coordination/schemas.d.ts +105 -5
- package/dist/coordination/schemas.d.ts.map +1 -1
- package/dist/coordination/schemas.js +87 -1
- package/dist/coordination/schemas.js.map +1 -1
- package/dist/coordination/stale.d.ts +2 -0
- package/dist/coordination/stale.d.ts.map +1 -1
- package/dist/coordination/stale.js +7 -1
- package/dist/coordination/stale.js.map +1 -1
- package/dist/coordination/types.d.ts +252 -0
- package/dist/coordination/types.d.ts.map +1 -0
- package/dist/coordination/types.js +8 -0
- package/dist/coordination/types.js.map +1 -0
- package/dist/coordination/write-mutex.d.ts +26 -0
- package/dist/coordination/write-mutex.d.ts.map +1 -0
- package/dist/coordination/write-mutex.js +63 -0
- package/dist/coordination/write-mutex.js.map +1 -0
- package/dist/core/embeddings.d.ts +2 -0
- package/dist/core/embeddings.d.ts.map +1 -1
- package/dist/core/embeddings.js +4 -0
- package/dist/core/embeddings.js.map +1 -1
- package/dist/engine/activation.d.ts.map +1 -1
- package/dist/engine/activation.js +135 -26
- package/dist/engine/activation.js.map +1 -1
- package/dist/engine/consolidation.d.ts.map +1 -1
- package/dist/engine/consolidation.js +42 -12
- package/dist/engine/consolidation.js.map +1 -1
- package/dist/engine/retraction.d.ts +3 -1
- package/dist/engine/retraction.d.ts.map +1 -1
- package/dist/engine/retraction.js +19 -6
- package/dist/engine/retraction.js.map +1 -1
- package/dist/index.js +82 -16
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +113 -6
- package/dist/mcp.js.map +1 -1
- package/dist/storage/sqlite.d.ts +24 -1
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +88 -7
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/types/engram.d.ts +24 -0
- package/dist/types/engram.d.ts.map +1 -1
- package/dist/types/engram.js.map +1 -1
- package/package.json +3 -1
- package/src/adapters/claude-code.ts +234 -0
- package/src/adapters/codex.ts +262 -0
- package/src/adapters/common.ts +172 -0
- package/src/adapters/cursor.ts +150 -0
- package/src/adapters/http.ts +100 -0
- package/src/adapters/index.ts +31 -0
- package/src/adapters/types.ts +75 -0
- package/src/api/routes.ts +50 -1
- package/src/cli.ts +561 -239
- package/src/coordination/events.ts +90 -0
- package/src/coordination/index.ts +102 -3
- package/src/coordination/mcp-tools.ts +10 -5
- package/src/coordination/peer-decisions.ts +105 -0
- package/src/coordination/plugin-loader.ts +60 -0
- package/src/coordination/plugin.ts +44 -0
- package/src/coordination/routes.ts +1353 -92
- package/src/coordination/schema.ts +91 -12
- package/src/coordination/schemas.ts +104 -1
- package/src/coordination/stale.ts +11 -2
- package/src/coordination/types.ts +311 -0
- package/src/coordination/write-mutex.ts +69 -0
- package/src/core/embeddings.ts +5 -0
- package/src/engine/activation.ts +138 -26
- package/src/engine/consolidation.ts +44 -12
- package/src/engine/retraction.ts +22 -6
- package/src/index.ts +76 -14
- package/src/mcp.ts +142 -9
- package/src/storage/sqlite.ts +92 -7
- package/src/types/engram.ts +28 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// Copyright 2026 Robert Winter / Complete Ideas
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
/**
|
|
4
|
+
* Plugin loader for AWM coordination.
|
|
5
|
+
*
|
|
6
|
+
* Reads AWM_PLUGINS env var (comma-separated module paths or package names),
|
|
7
|
+
* dynamically imports each, and calls register() with the plugin context.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* AWM_PLUGINS=./plugins/slack-notify.js,my-awm-plugin npm start
|
|
11
|
+
*/
|
|
12
|
+
/** Loaded plugin instances (for teardown). */
|
|
13
|
+
const loadedPlugins = [];
|
|
14
|
+
/**
|
|
15
|
+
* Load and register all plugins specified in AWM_PLUGINS env var.
|
|
16
|
+
* Errors in individual plugins are logged but don't prevent other plugins from loading.
|
|
17
|
+
*/
|
|
18
|
+
export async function loadPlugins(ctx) {
|
|
19
|
+
const pluginList = process.env.AWM_PLUGINS;
|
|
20
|
+
if (!pluginList)
|
|
21
|
+
return;
|
|
22
|
+
const paths = pluginList
|
|
23
|
+
.split(',')
|
|
24
|
+
.map((p) => p.trim())
|
|
25
|
+
.filter(Boolean);
|
|
26
|
+
for (const modulePath of paths) {
|
|
27
|
+
try {
|
|
28
|
+
const mod = await import(modulePath);
|
|
29
|
+
const plugin = mod.default ?? mod;
|
|
30
|
+
if (!plugin.name || typeof plugin.register !== 'function') {
|
|
31
|
+
console.warn(` [plugin] Skipping ${modulePath}: missing name or register()`);
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
await plugin.register(ctx);
|
|
35
|
+
loadedPlugins.push(plugin);
|
|
36
|
+
console.log(` [plugin] Loaded: ${plugin.name}`);
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
console.error(` [plugin] Failed to load ${modulePath}:`, err.message);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/** Teardown all loaded plugins (call on shutdown). */
|
|
44
|
+
export async function teardownPlugins() {
|
|
45
|
+
for (const plugin of loadedPlugins) {
|
|
46
|
+
try {
|
|
47
|
+
await plugin.teardown?.();
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
console.error(` [plugin] Teardown error (${plugin.name}):`, err.message);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
loadedPlugins.length = 0;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=plugin-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-loader.js","sourceRoot":"","sources":["../../src/coordination/plugin-loader.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,sCAAsC;AACtC;;;;;;;;GAQG;AAIH,8CAA8C;AAC9C,MAAM,aAAa,GAAgB,EAAE,CAAC;AAEtC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAqB;IACrD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAC3C,IAAI,CAAC,UAAU;QAAE,OAAO;IAExB,MAAM,KAAK,GAAG,UAAU;SACrB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YACrC,MAAM,MAAM,GAAc,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;YAE7C,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC,uBAAuB,UAAU,8BAA8B,CAAC,CAAC;gBAC9E,SAAS;YACX,CAAC;YAED,MAAM,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC3B,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,6BAA6B,UAAU,GAAG,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,MAAM,CAAC,IAAI,IAAI,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IACD,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWM Plugin contract.
|
|
3
|
+
*
|
|
4
|
+
* Plugins extend coordination with custom behavior by subscribing to
|
|
5
|
+
* events, adding routes, or querying the DB. They are loaded at startup
|
|
6
|
+
* via AWM_PLUGINS env var (comma-separated module paths).
|
|
7
|
+
*
|
|
8
|
+
* Example plugin:
|
|
9
|
+
* import type { AWMPlugin } from 'agent-working-memory';
|
|
10
|
+
* export default {
|
|
11
|
+
* name: 'my-plugin',
|
|
12
|
+
* register(ctx) {
|
|
13
|
+
* ctx.events.on('assignment.completed', (evt) => {
|
|
14
|
+
* console.log(`Task done: ${evt.assignmentId}`);
|
|
15
|
+
* });
|
|
16
|
+
* },
|
|
17
|
+
* } satisfies AWMPlugin;
|
|
18
|
+
*/
|
|
19
|
+
import type { FastifyInstance } from 'fastify';
|
|
20
|
+
import type Database from 'better-sqlite3';
|
|
21
|
+
import type { CoordinationEventBus } from './events.js';
|
|
22
|
+
/** Context passed to plugin register(). */
|
|
23
|
+
export interface AWMPluginContext {
|
|
24
|
+
/** Typed event bus — subscribe to coordination events. */
|
|
25
|
+
events: CoordinationEventBus;
|
|
26
|
+
/** Raw better-sqlite3 database handle (coordination tables). */
|
|
27
|
+
db: Database.Database;
|
|
28
|
+
/** Fastify instance — add custom routes if needed. */
|
|
29
|
+
fastify: FastifyInstance;
|
|
30
|
+
}
|
|
31
|
+
/** Plugin contract. Every AWM plugin must export this shape. */
|
|
32
|
+
export interface AWMPlugin {
|
|
33
|
+
/** Unique plugin name (for logging and dedup). */
|
|
34
|
+
name: string;
|
|
35
|
+
/** Called once at startup with the plugin context. */
|
|
36
|
+
register(ctx: AWMPluginContext): void | Promise<void>;
|
|
37
|
+
/** Optional cleanup on shutdown. */
|
|
38
|
+
teardown?(): void | Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/coordination/plugin.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,2CAA2C;AAC3C,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,MAAM,EAAE,oBAAoB,CAAC;IAC7B,gEAAgE;IAChE,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACtB,sDAAsD;IACtD,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,gEAAgE;AAChE,MAAM,WAAW,SAAS;IACxB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,QAAQ,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,oCAAoC;IACpC,QAAQ,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// Copyright 2026 Robert Winter / Complete Ideas
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
/**
|
|
4
|
+
* AWM Plugin contract.
|
|
5
|
+
*
|
|
6
|
+
* Plugins extend coordination with custom behavior by subscribing to
|
|
7
|
+
* events, adding routes, or querying the DB. They are loaded at startup
|
|
8
|
+
* via AWM_PLUGINS env var (comma-separated module paths).
|
|
9
|
+
*
|
|
10
|
+
* Example plugin:
|
|
11
|
+
* import type { AWMPlugin } from 'agent-working-memory';
|
|
12
|
+
* export default {
|
|
13
|
+
* name: 'my-plugin',
|
|
14
|
+
* register(ctx) {
|
|
15
|
+
* ctx.events.on('assignment.completed', (evt) => {
|
|
16
|
+
* console.log(`Task done: ${evt.assignmentId}`);
|
|
17
|
+
* });
|
|
18
|
+
* },
|
|
19
|
+
* } satisfies AWMPlugin;
|
|
20
|
+
*/
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/coordination/plugin.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,sCAAsC;AACtC;;;;;;;;;;;;;;;;;GAiBG"}
|
|
@@ -5,5 +5,6 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { FastifyInstance } from 'fastify';
|
|
7
7
|
import type Database from 'better-sqlite3';
|
|
8
|
-
|
|
8
|
+
import type { EngramStore } from '../storage/sqlite.js';
|
|
9
|
+
export declare function registerCoordinationRoutes(app: FastifyInstance, db: Database.Database, store?: EngramStore, eventBus?: import('./events.js').CoordinationEventBus): void;
|
|
9
10
|
//# sourceMappingURL=routes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/coordination/routes.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/coordination/routes.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAsCxD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,OAAO,aAAa,EAAE,oBAAoB,GAAG,IAAI,CA40DxK"}
|