reflectt-node 0.1.7 → 0.1.11
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 +13 -0
- package/defaults/TEAM-ROLES.yaml +317 -5
- package/defaults/gitignore.template +23 -0
- package/dist/agent-config.d.ts +51 -0
- package/dist/agent-config.d.ts.map +1 -0
- package/dist/agent-config.js +129 -0
- package/dist/agent-config.js.map +1 -0
- package/dist/agent-config.test.d.ts +2 -0
- package/dist/agent-config.test.d.ts.map +1 -0
- package/dist/agent-config.test.js +91 -0
- package/dist/agent-config.test.js.map +1 -0
- package/dist/agent-memories.d.ts +58 -0
- package/dist/agent-memories.d.ts.map +1 -0
- package/dist/agent-memories.js +168 -0
- package/dist/agent-memories.js.map +1 -0
- package/dist/agent-memories.test.d.ts +2 -0
- package/dist/agent-memories.test.d.ts.map +1 -0
- package/dist/agent-memories.test.js +327 -0
- package/dist/agent-memories.test.js.map +1 -0
- package/dist/agent-messaging.d.ts +50 -0
- package/dist/agent-messaging.d.ts.map +1 -0
- package/dist/agent-messaging.js +103 -0
- package/dist/agent-messaging.js.map +1 -0
- package/dist/agent-messaging.test.d.ts +2 -0
- package/dist/agent-messaging.test.d.ts.map +1 -0
- package/dist/agent-messaging.test.js +105 -0
- package/dist/agent-messaging.test.js.map +1 -0
- package/dist/agent-runs.d.ts +158 -0
- package/dist/agent-runs.d.ts.map +1 -0
- package/dist/agent-runs.js +514 -0
- package/dist/agent-runs.js.map +1 -0
- package/dist/agent-runs.test.d.ts +2 -0
- package/dist/agent-runs.test.d.ts.map +1 -0
- package/dist/agent-runs.test.js +386 -0
- package/dist/agent-runs.test.js.map +1 -0
- package/dist/approval-queue.test.d.ts +2 -0
- package/dist/approval-queue.test.d.ts.map +1 -0
- package/dist/approval-queue.test.js +118 -0
- package/dist/approval-queue.test.js.map +1 -0
- package/dist/artifact-store.d.ts +55 -0
- package/dist/artifact-store.d.ts.map +1 -0
- package/dist/artifact-store.js +128 -0
- package/dist/artifact-store.js.map +1 -0
- package/dist/artifact-store.test.d.ts +2 -0
- package/dist/artifact-store.test.d.ts.map +1 -0
- package/dist/artifact-store.test.js +119 -0
- package/dist/artifact-store.test.js.map +1 -0
- package/dist/boardHealthWorker.d.ts +32 -0
- package/dist/boardHealthWorker.d.ts.map +1 -1
- package/dist/boardHealthWorker.js +69 -2
- package/dist/boardHealthWorker.js.map +1 -1
- package/dist/buildInfo.d.ts.map +1 -1
- package/dist/buildInfo.js +47 -10
- package/dist/buildInfo.js.map +1 -1
- package/dist/canvas-input.test.d.ts +2 -0
- package/dist/canvas-input.test.d.ts.map +1 -0
- package/dist/canvas-input.test.js +96 -0
- package/dist/canvas-input.test.js.map +1 -0
- package/dist/canvas-render.test.d.ts +2 -0
- package/dist/canvas-render.test.d.ts.map +1 -0
- package/dist/canvas-render.test.js +95 -0
- package/dist/canvas-render.test.js.map +1 -0
- package/dist/capabilities/browser.d.ts +75 -0
- package/dist/capabilities/browser.d.ts.map +1 -0
- package/dist/capabilities/browser.js +172 -0
- package/dist/capabilities/browser.js.map +1 -0
- package/dist/channels.d.ts +1 -1
- package/dist/chat.d.ts +4 -0
- package/dist/chat.d.ts.map +1 -1
- package/dist/chat.js +6 -2
- package/dist/chat.js.map +1 -1
- package/dist/cli.js +41 -14
- package/dist/cli.js.map +1 -1
- package/dist/cloud.d.ts +2 -0
- package/dist/cloud.d.ts.map +1 -1
- package/dist/cloud.js +151 -64
- package/dist/cloud.js.map +1 -1
- package/dist/continuity-loop.d.ts.map +1 -1
- package/dist/continuity-loop.js +297 -29
- package/dist/continuity-loop.js.map +1 -1
- package/dist/cost-enforcement.d.ts +38 -0
- package/dist/cost-enforcement.d.ts.map +1 -0
- package/dist/cost-enforcement.js +84 -0
- package/dist/cost-enforcement.js.map +1 -0
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +131 -0
- package/dist/db.js.map +1 -1
- package/dist/deploy-monitor.d.ts +18 -0
- package/dist/deploy-monitor.d.ts.map +1 -0
- package/dist/deploy-monitor.js +165 -0
- package/dist/deploy-monitor.js.map +1 -0
- package/dist/e2e-loop-proof.test.d.ts +2 -0
- package/dist/e2e-loop-proof.test.d.ts.map +1 -0
- package/dist/e2e-loop-proof.test.js +104 -0
- package/dist/e2e-loop-proof.test.js.map +1 -0
- package/dist/email-sms-send.test.d.ts +2 -0
- package/dist/email-sms-send.test.d.ts.map +1 -0
- package/dist/email-sms-send.test.js +96 -0
- package/dist/email-sms-send.test.js.map +1 -0
- package/dist/events.d.ts +1 -1
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +2 -0
- package/dist/events.js.map +1 -1
- package/dist/executionSweeper.d.ts +1 -0
- package/dist/executionSweeper.d.ts.map +1 -1
- package/dist/executionSweeper.js +43 -7
- package/dist/executionSweeper.js.map +1 -1
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +17 -3
- package/dist/files.js.map +1 -1
- package/dist/fingerprint.d.ts +30 -0
- package/dist/fingerprint.d.ts.map +1 -0
- package/dist/fingerprint.js +117 -0
- package/dist/fingerprint.js.map +1 -0
- package/dist/github-webhook-attribution.d.ts +38 -0
- package/dist/github-webhook-attribution.d.ts.map +1 -0
- package/dist/github-webhook-attribution.js +123 -0
- package/dist/github-webhook-attribution.js.map +1 -0
- package/dist/github-webhook-chat.d.ts +75 -0
- package/dist/github-webhook-chat.d.ts.map +1 -0
- package/dist/github-webhook-chat.js +108 -0
- package/dist/github-webhook-chat.js.map +1 -0
- package/dist/handoff-state.test.d.ts +2 -0
- package/dist/handoff-state.test.d.ts.map +1 -0
- package/dist/handoff-state.test.js +102 -0
- package/dist/handoff-state.test.js.map +1 -0
- package/dist/health.d.ts +9 -0
- package/dist/health.d.ts.map +1 -1
- package/dist/health.js +18 -0
- package/dist/health.js.map +1 -1
- package/dist/host-error-correlation.d.ts +65 -0
- package/dist/host-error-correlation.d.ts.map +1 -0
- package/dist/host-error-correlation.js +123 -0
- package/dist/host-error-correlation.js.map +1 -0
- package/dist/inbox.d.ts.map +1 -1
- package/dist/inbox.js +4 -0
- package/dist/inbox.js.map +1 -1
- package/dist/index.js +76 -11
- package/dist/index.js.map +1 -1
- package/dist/notificationDedupeGuard.d.ts +4 -0
- package/dist/notificationDedupeGuard.d.ts.map +1 -1
- package/dist/notificationDedupeGuard.js +8 -4
- package/dist/notificationDedupeGuard.js.map +1 -1
- package/dist/presence.d.ts +37 -5
- package/dist/presence.d.ts.map +1 -1
- package/dist/presence.js +127 -16
- package/dist/presence.js.map +1 -1
- package/dist/pulse.d.ts +7 -0
- package/dist/pulse.d.ts.map +1 -1
- package/dist/pulse.js +15 -0
- package/dist/pulse.js.map +1 -1
- package/dist/review-sla.d.ts +9 -0
- package/dist/review-sla.d.ts.map +1 -0
- package/dist/review-sla.js +51 -0
- package/dist/review-sla.js.map +1 -0
- package/dist/review-state.d.ts +9 -0
- package/dist/review-state.d.ts.map +1 -0
- package/dist/review-state.js +17 -0
- package/dist/review-state.js.map +1 -0
- package/dist/routing-enforcement.test.d.ts +2 -0
- package/dist/routing-enforcement.test.d.ts.map +1 -0
- package/dist/routing-enforcement.test.js +86 -0
- package/dist/routing-enforcement.test.js.map +1 -0
- package/dist/run-retention.test.d.ts +2 -0
- package/dist/run-retention.test.d.ts.map +1 -0
- package/dist/run-retention.test.js +57 -0
- package/dist/run-retention.test.js.map +1 -0
- package/dist/run-stream.test.d.ts +2 -0
- package/dist/run-stream.test.d.ts.map +1 -0
- package/dist/run-stream.test.js +70 -0
- package/dist/run-stream.test.js.map +1 -0
- package/dist/schedule.d.ts +60 -0
- package/dist/schedule.d.ts.map +1 -0
- package/dist/schedule.js +176 -0
- package/dist/schedule.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1714 -88
- package/dist/server.js.map +1 -1
- package/dist/suppression-ledger.d.ts.map +1 -1
- package/dist/suppression-ledger.js +12 -3
- package/dist/suppression-ledger.js.map +1 -1
- package/dist/system-loop-state.d.ts +1 -1
- package/dist/system-loop-state.d.ts.map +1 -1
- package/dist/system-loop-state.js +1 -0
- package/dist/system-loop-state.js.map +1 -1
- package/dist/tasks.d.ts +9 -1
- package/dist/tasks.d.ts.map +1 -1
- package/dist/tasks.js +238 -41
- package/dist/tasks.js.map +1 -1
- package/dist/todoHoardingGuard.d.ts +17 -0
- package/dist/todoHoardingGuard.d.ts.map +1 -1
- package/dist/todoHoardingGuard.js +25 -2
- package/dist/todoHoardingGuard.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/usage-tracking.d.ts +26 -0
- package/dist/usage-tracking.d.ts.map +1 -1
- package/dist/usage-tracking.js +91 -4
- package/dist/usage-tracking.js.map +1 -1
- package/dist/webhook-storage.d.ts +50 -0
- package/dist/webhook-storage.d.ts.map +1 -0
- package/dist/webhook-storage.js +102 -0
- package/dist/webhook-storage.js.map +1 -0
- package/dist/webhook-storage.test.d.ts +2 -0
- package/dist/webhook-storage.test.d.ts.map +1 -0
- package/dist/webhook-storage.test.js +86 -0
- package/dist/webhook-storage.test.js.map +1 -0
- package/dist/workflow-templates.d.ts +44 -0
- package/dist/workflow-templates.d.ts.map +1 -0
- package/dist/workflow-templates.js +154 -0
- package/dist/workflow-templates.js.map +1 -0
- package/dist/workflow-templates.test.d.ts +2 -0
- package/dist/workflow-templates.test.d.ts.map +1 -0
- package/dist/workflow-templates.test.js +76 -0
- package/dist/workflow-templates.test.js.map +1 -0
- package/package.json +3 -1
- package/public/dashboard.js +130 -37
- package/public/design-tokens-platform.md +118 -0
- package/public/design-tokens.css +195 -0
- package/public/docs.md +145 -2
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
import { describe, it } from 'node:test';
|
|
3
|
+
import assert from 'node:assert/strict';
|
|
4
|
+
// Test the cost cap logic in isolation
|
|
5
|
+
function checkCostCap(config, dailySpend, monthlySpend) {
|
|
6
|
+
if (!config)
|
|
7
|
+
return { allowed: true, action: 'allow' };
|
|
8
|
+
let action = 'allow';
|
|
9
|
+
if (config.costCapDaily !== null) {
|
|
10
|
+
const remaining = config.costCapDaily - dailySpend;
|
|
11
|
+
if (remaining <= 0)
|
|
12
|
+
action = 'deny';
|
|
13
|
+
else if (remaining < config.costCapDaily * 0.1)
|
|
14
|
+
action = 'downgrade';
|
|
15
|
+
else if (remaining < config.costCapDaily * 0.2)
|
|
16
|
+
action = 'warn';
|
|
17
|
+
}
|
|
18
|
+
if (config.costCapMonthly !== null) {
|
|
19
|
+
const remaining = config.costCapMonthly - monthlySpend;
|
|
20
|
+
if (remaining <= 0)
|
|
21
|
+
action = 'deny';
|
|
22
|
+
else if (remaining < config.costCapMonthly * 0.1 && action !== 'deny')
|
|
23
|
+
action = 'downgrade';
|
|
24
|
+
else if (remaining < config.costCapMonthly * 0.2 && action === 'allow')
|
|
25
|
+
action = 'warn';
|
|
26
|
+
}
|
|
27
|
+
return { allowed: action !== 'deny', action };
|
|
28
|
+
}
|
|
29
|
+
describe('agent config cost enforcement', () => {
|
|
30
|
+
it('allows when no config exists', () => {
|
|
31
|
+
const r = checkCostCap(null, 5, 50);
|
|
32
|
+
assert.equal(r.allowed, true);
|
|
33
|
+
assert.equal(r.action, 'allow');
|
|
34
|
+
});
|
|
35
|
+
it('allows when no caps are set', () => {
|
|
36
|
+
const r = checkCostCap({ costCapDaily: null, costCapMonthly: null, model: null, fallbackModel: null }, 5, 50);
|
|
37
|
+
assert.equal(r.allowed, true);
|
|
38
|
+
assert.equal(r.action, 'allow');
|
|
39
|
+
});
|
|
40
|
+
it('allows when well under daily cap', () => {
|
|
41
|
+
const r = checkCostCap({ costCapDaily: 10, costCapMonthly: null, model: 'opus', fallbackModel: 'sonnet' }, 3, 0);
|
|
42
|
+
assert.equal(r.allowed, true);
|
|
43
|
+
assert.equal(r.action, 'allow');
|
|
44
|
+
});
|
|
45
|
+
it('warns at 80% daily spend', () => {
|
|
46
|
+
const r = checkCostCap({ costCapDaily: 10, costCapMonthly: null, model: 'opus', fallbackModel: 'sonnet' }, 8.5, 0);
|
|
47
|
+
assert.equal(r.allowed, true);
|
|
48
|
+
assert.equal(r.action, 'warn');
|
|
49
|
+
});
|
|
50
|
+
it('downgrades at 90% daily spend', () => {
|
|
51
|
+
const r = checkCostCap({ costCapDaily: 10, costCapMonthly: null, model: 'opus', fallbackModel: 'sonnet' }, 9.5, 0);
|
|
52
|
+
assert.equal(r.allowed, true);
|
|
53
|
+
assert.equal(r.action, 'downgrade');
|
|
54
|
+
});
|
|
55
|
+
it('denies at 100% daily spend', () => {
|
|
56
|
+
const r = checkCostCap({ costCapDaily: 10, costCapMonthly: null, model: 'opus', fallbackModel: 'sonnet' }, 10, 0);
|
|
57
|
+
assert.equal(r.allowed, false);
|
|
58
|
+
assert.equal(r.action, 'deny');
|
|
59
|
+
});
|
|
60
|
+
it('denies when over daily cap', () => {
|
|
61
|
+
const r = checkCostCap({ costCapDaily: 10, costCapMonthly: null, model: 'opus', fallbackModel: 'sonnet' }, 12, 0);
|
|
62
|
+
assert.equal(r.allowed, false);
|
|
63
|
+
assert.equal(r.action, 'deny');
|
|
64
|
+
});
|
|
65
|
+
it('monthly cap denies overriding daily allow', () => {
|
|
66
|
+
const r = checkCostCap({ costCapDaily: 10, costCapMonthly: 100, model: null, fallbackModel: null }, 3, 100);
|
|
67
|
+
assert.equal(r.allowed, false);
|
|
68
|
+
assert.equal(r.action, 'deny');
|
|
69
|
+
});
|
|
70
|
+
it('monthly warn when daily is fine', () => {
|
|
71
|
+
const r = checkCostCap({ costCapDaily: null, costCapMonthly: 100, model: null, fallbackModel: null }, 0, 85);
|
|
72
|
+
assert.equal(r.allowed, true);
|
|
73
|
+
assert.equal(r.action, 'warn');
|
|
74
|
+
});
|
|
75
|
+
it('monthly downgrade at 90%', () => {
|
|
76
|
+
const r = checkCostCap({ costCapDaily: null, costCapMonthly: 100, model: null, fallbackModel: null }, 0, 95);
|
|
77
|
+
assert.equal(r.allowed, true);
|
|
78
|
+
assert.equal(r.action, 'downgrade');
|
|
79
|
+
});
|
|
80
|
+
it('both caps — tighter one wins', () => {
|
|
81
|
+
// Daily is at 95% (downgrade), monthly is fine
|
|
82
|
+
const r = checkCostCap({ costCapDaily: 10, costCapMonthly: 1000, model: 'opus', fallbackModel: 'sonnet' }, 9.5, 50);
|
|
83
|
+
assert.equal(r.action, 'downgrade');
|
|
84
|
+
});
|
|
85
|
+
it('zero cap always denies', () => {
|
|
86
|
+
const r = checkCostCap({ costCapDaily: 0, costCapMonthly: null, model: null, fallbackModel: null }, 0, 0);
|
|
87
|
+
assert.equal(r.allowed, false);
|
|
88
|
+
assert.equal(r.action, 'deny');
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=agent-config.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-config.test.js","sourceRoot":"","sources":["../src/agent-config.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export interface AgentMemory {
|
|
2
|
+
id: string;
|
|
3
|
+
agentId: string;
|
|
4
|
+
namespace: string;
|
|
5
|
+
key: string;
|
|
6
|
+
content: string;
|
|
7
|
+
tags: string[];
|
|
8
|
+
expiresAt: number | null;
|
|
9
|
+
createdAt: number;
|
|
10
|
+
updatedAt: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Store or upsert a memory. If agentId + namespace + key exists, it updates.
|
|
14
|
+
*/
|
|
15
|
+
export declare function setMemory(opts: {
|
|
16
|
+
agentId: string;
|
|
17
|
+
namespace?: string;
|
|
18
|
+
key: string;
|
|
19
|
+
content: string;
|
|
20
|
+
tags?: string[];
|
|
21
|
+
expiresAt?: number | null;
|
|
22
|
+
}): AgentMemory;
|
|
23
|
+
/**
|
|
24
|
+
* Get a specific memory by agentId + namespace + key.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getMemory(agentId: string, key: string, namespace?: string): AgentMemory | null;
|
|
27
|
+
/**
|
|
28
|
+
* Get a memory by its ID.
|
|
29
|
+
*/
|
|
30
|
+
export declare function getMemoryById(id: string): AgentMemory | null;
|
|
31
|
+
/**
|
|
32
|
+
* List memories for an agent with optional filters.
|
|
33
|
+
*/
|
|
34
|
+
export declare function listMemories(opts: {
|
|
35
|
+
agentId: string;
|
|
36
|
+
namespace?: string;
|
|
37
|
+
tag?: string;
|
|
38
|
+
search?: string;
|
|
39
|
+
limit?: number;
|
|
40
|
+
includeExpired?: boolean;
|
|
41
|
+
}): AgentMemory[];
|
|
42
|
+
/**
|
|
43
|
+
* Delete a specific memory.
|
|
44
|
+
*/
|
|
45
|
+
export declare function deleteMemory(agentId: string, key: string, namespace?: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Delete a memory by ID.
|
|
48
|
+
*/
|
|
49
|
+
export declare function deleteMemoryById(id: string): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Purge all expired memories (housekeeping).
|
|
52
|
+
*/
|
|
53
|
+
export declare function purgeExpiredMemories(): number;
|
|
54
|
+
/**
|
|
55
|
+
* Count memories for an agent.
|
|
56
|
+
*/
|
|
57
|
+
export declare function countMemories(agentId: string, namespace?: string): number;
|
|
58
|
+
//# sourceMappingURL=agent-memories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-memories.d.ts","sourceRoot":"","sources":["../src/agent-memories.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAsCD;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B,GAAG,WAAW,CAuCd;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAa9F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAS5D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,GAAG,WAAW,EAAE,CAiChB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAOtF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAIpD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAI7C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAYzE"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (c) Reflectt AI
|
|
3
|
+
/**
|
|
4
|
+
* Agent Memories — Persistent key-value store with tags and expiration.
|
|
5
|
+
*
|
|
6
|
+
* Survives node restarts (SQLite-backed, WAL mode).
|
|
7
|
+
* Supports:
|
|
8
|
+
* - Scoped per agent + namespace
|
|
9
|
+
* - Tag-based filtering (JSONB tags column)
|
|
10
|
+
* - TTL via expires_at
|
|
11
|
+
* - Keyword search on key + content
|
|
12
|
+
*
|
|
13
|
+
* Task: task-1773246466959-qxwos0ffp
|
|
14
|
+
*/
|
|
15
|
+
import { getDb, safeJsonParse } from './db.js';
|
|
16
|
+
// ── ID generation ──────────────────────────────────────────────────────────
|
|
17
|
+
function generateMemoryId() {
|
|
18
|
+
return `amem-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
19
|
+
}
|
|
20
|
+
function rowToMemory(row) {
|
|
21
|
+
return {
|
|
22
|
+
id: row.id,
|
|
23
|
+
agentId: row.agent_id,
|
|
24
|
+
namespace: row.namespace,
|
|
25
|
+
key: row.key,
|
|
26
|
+
content: row.content,
|
|
27
|
+
tags: safeJsonParse(row.tags) ?? [],
|
|
28
|
+
expiresAt: row.expires_at,
|
|
29
|
+
createdAt: row.created_at,
|
|
30
|
+
updatedAt: row.updated_at,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
// ── CRUD ───────────────────────────────────────────────────────────────────
|
|
34
|
+
/**
|
|
35
|
+
* Store or upsert a memory. If agentId + namespace + key exists, it updates.
|
|
36
|
+
*/
|
|
37
|
+
export function setMemory(opts) {
|
|
38
|
+
const db = getDb();
|
|
39
|
+
const now = Date.now();
|
|
40
|
+
const namespace = opts.namespace ?? 'default';
|
|
41
|
+
const tags = opts.tags ?? [];
|
|
42
|
+
const expiresAt = opts.expiresAt ?? null;
|
|
43
|
+
// Check for existing
|
|
44
|
+
const existing = db.prepare('SELECT id FROM agent_memories WHERE agent_id = ? AND namespace = ? AND key = ?').get(opts.agentId, namespace, opts.key);
|
|
45
|
+
if (existing) {
|
|
46
|
+
db.prepare(`
|
|
47
|
+
UPDATE agent_memories SET content = ?, tags = ?, expires_at = ?, updated_at = ?
|
|
48
|
+
WHERE id = ?
|
|
49
|
+
`).run(opts.content, JSON.stringify(tags), expiresAt, now, existing.id);
|
|
50
|
+
const row = db.prepare('SELECT * FROM agent_memories WHERE id = ?').get(existing.id);
|
|
51
|
+
return rowToMemory(row);
|
|
52
|
+
}
|
|
53
|
+
const id = generateMemoryId();
|
|
54
|
+
db.prepare(`
|
|
55
|
+
INSERT INTO agent_memories (id, agent_id, namespace, key, content, tags, expires_at, created_at, updated_at)
|
|
56
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
57
|
+
`).run(id, opts.agentId, namespace, opts.key, opts.content, JSON.stringify(tags), expiresAt, now, now);
|
|
58
|
+
return {
|
|
59
|
+
id,
|
|
60
|
+
agentId: opts.agentId,
|
|
61
|
+
namespace,
|
|
62
|
+
key: opts.key,
|
|
63
|
+
content: opts.content,
|
|
64
|
+
tags,
|
|
65
|
+
expiresAt,
|
|
66
|
+
createdAt: now,
|
|
67
|
+
updatedAt: now,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Get a specific memory by agentId + namespace + key.
|
|
72
|
+
*/
|
|
73
|
+
export function getMemory(agentId, key, namespace) {
|
|
74
|
+
const db = getDb();
|
|
75
|
+
const ns = namespace ?? 'default';
|
|
76
|
+
const row = db.prepare('SELECT * FROM agent_memories WHERE agent_id = ? AND namespace = ? AND key = ?').get(agentId, ns, key);
|
|
77
|
+
if (!row)
|
|
78
|
+
return null;
|
|
79
|
+
// Check expiration
|
|
80
|
+
if (row.expires_at && row.expires_at <= Date.now()) {
|
|
81
|
+
db.prepare('DELETE FROM agent_memories WHERE id = ?').run(row.id);
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
return rowToMemory(row);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get a memory by its ID.
|
|
88
|
+
*/
|
|
89
|
+
export function getMemoryById(id) {
|
|
90
|
+
const db = getDb();
|
|
91
|
+
const row = db.prepare('SELECT * FROM agent_memories WHERE id = ?').get(id);
|
|
92
|
+
if (!row)
|
|
93
|
+
return null;
|
|
94
|
+
if (row.expires_at && row.expires_at <= Date.now()) {
|
|
95
|
+
db.prepare('DELETE FROM agent_memories WHERE id = ?').run(row.id);
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
return rowToMemory(row);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* List memories for an agent with optional filters.
|
|
102
|
+
*/
|
|
103
|
+
export function listMemories(opts) {
|
|
104
|
+
const db = getDb();
|
|
105
|
+
const limit = opts.limit ?? 100;
|
|
106
|
+
const conditions = ['agent_id = ?'];
|
|
107
|
+
const params = [opts.agentId];
|
|
108
|
+
if (opts.namespace) {
|
|
109
|
+
conditions.push('namespace = ?');
|
|
110
|
+
params.push(opts.namespace);
|
|
111
|
+
}
|
|
112
|
+
if (!opts.includeExpired) {
|
|
113
|
+
conditions.push('(expires_at IS NULL OR expires_at > ?)');
|
|
114
|
+
params.push(Date.now());
|
|
115
|
+
}
|
|
116
|
+
if (opts.tag) {
|
|
117
|
+
// SQLite JSON — check if tag array contains the value
|
|
118
|
+
conditions.push("EXISTS (SELECT 1 FROM json_each(tags) WHERE json_each.value = ?)");
|
|
119
|
+
params.push(opts.tag);
|
|
120
|
+
}
|
|
121
|
+
if (opts.search) {
|
|
122
|
+
conditions.push('(key LIKE ? OR content LIKE ?)');
|
|
123
|
+
const pattern = `%${opts.search}%`;
|
|
124
|
+
params.push(pattern, pattern);
|
|
125
|
+
}
|
|
126
|
+
const sql = `SELECT * FROM agent_memories WHERE ${conditions.join(' AND ')} ORDER BY updated_at DESC LIMIT ?`;
|
|
127
|
+
params.push(limit);
|
|
128
|
+
const rows = db.prepare(sql).all(...params);
|
|
129
|
+
return rows.map(rowToMemory);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Delete a specific memory.
|
|
133
|
+
*/
|
|
134
|
+
export function deleteMemory(agentId, key, namespace) {
|
|
135
|
+
const db = getDb();
|
|
136
|
+
const ns = namespace ?? 'default';
|
|
137
|
+
const result = db.prepare('DELETE FROM agent_memories WHERE agent_id = ? AND namespace = ? AND key = ?').run(agentId, ns, key);
|
|
138
|
+
return result.changes > 0;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Delete a memory by ID.
|
|
142
|
+
*/
|
|
143
|
+
export function deleteMemoryById(id) {
|
|
144
|
+
const db = getDb();
|
|
145
|
+
const result = db.prepare('DELETE FROM agent_memories WHERE id = ?').run(id);
|
|
146
|
+
return result.changes > 0;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Purge all expired memories (housekeeping).
|
|
150
|
+
*/
|
|
151
|
+
export function purgeExpiredMemories() {
|
|
152
|
+
const db = getDb();
|
|
153
|
+
const result = db.prepare('DELETE FROM agent_memories WHERE expires_at IS NOT NULL AND expires_at <= ?').run(Date.now());
|
|
154
|
+
return result.changes;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Count memories for an agent.
|
|
158
|
+
*/
|
|
159
|
+
export function countMemories(agentId, namespace) {
|
|
160
|
+
const db = getDb();
|
|
161
|
+
if (namespace) {
|
|
162
|
+
const row = db.prepare('SELECT COUNT(*) as count FROM agent_memories WHERE agent_id = ? AND namespace = ?').get(agentId, namespace);
|
|
163
|
+
return row.count;
|
|
164
|
+
}
|
|
165
|
+
const row = db.prepare('SELECT COUNT(*) as count FROM agent_memories WHERE agent_id = ?').get(agentId);
|
|
166
|
+
return row.count;
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=agent-memories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-memories.js","sourceRoot":"","sources":["../src/agent-memories.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-memories.test.d.ts","sourceRoot":"","sources":["../src/agent-memories.test.ts"],"names":[],"mappings":""}
|