@hasna/mementos 0.14.33 → 0.14.34
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/LICENSE +190 -3
- package/README.md +30 -41
- package/dist/cli/brains.d.ts +3 -0
- package/dist/cli/brains.d.ts.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +25767 -0
- package/dist/db/acl.d.ts +34 -0
- package/dist/db/acl.d.ts.map +1 -0
- package/dist/db/agents.d.ts +15 -0
- package/dist/db/agents.d.ts.map +1 -0
- package/dist/db/audit.d.ts +39 -0
- package/dist/db/audit.d.ts.map +1 -0
- package/dist/db/database.d.ts +10 -0
- package/dist/db/database.d.ts.map +1 -0
- package/dist/db/entities.d.ts +62 -0
- package/dist/db/entities.d.ts.map +1 -0
- package/dist/db/entity-memories.d.ts +34 -0
- package/dist/db/entity-memories.d.ts.map +1 -0
- package/dist/db/locks.d.ts +63 -0
- package/dist/db/locks.d.ts.map +1 -0
- package/dist/db/machines.d.ts +16 -0
- package/dist/db/machines.d.ts.map +1 -0
- package/dist/db/memories.d.ts +40 -0
- package/dist/db/memories.d.ts.map +1 -0
- package/dist/db/pg-migrate.d.ts +14 -0
- package/dist/db/pg-migrate.d.ts.map +1 -0
- package/dist/db/pg-migrations.d.ts +8 -0
- package/dist/db/pg-migrations.d.ts.map +1 -0
- package/dist/db/projects.d.ts +6 -0
- package/dist/db/projects.d.ts.map +1 -0
- package/dist/db/ratings.d.ts +23 -0
- package/dist/db/ratings.d.ts.map +1 -0
- package/dist/db/relations.d.ts +29 -0
- package/dist/db/relations.d.ts.map +1 -0
- package/dist/db/session-jobs.d.ts +49 -0
- package/dist/db/session-jobs.d.ts.map +1 -0
- package/dist/db/synthesis.d.ts +101 -0
- package/dist/db/synthesis.d.ts.map +1 -0
- package/dist/db/tool-events.d.ts +27 -0
- package/dist/db/tool-events.d.ts.map +1 -0
- package/dist/db/webhook_hooks.d.ts +25 -0
- package/dist/db/webhook_hooks.d.ts.map +1 -0
- package/dist/index.d.ts +27 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14642 -1018
- package/dist/lib/activation-matcher.d.ts +16 -0
- package/dist/lib/activation-matcher.d.ts.map +1 -0
- package/dist/lib/asmr/categorizer.d.ts +31 -0
- package/dist/lib/asmr/categorizer.d.ts.map +1 -0
- package/dist/lib/asmr/context-agent.d.ts +4 -0
- package/dist/lib/asmr/context-agent.d.ts.map +1 -0
- package/dist/lib/asmr/ensemble.d.ts +23 -0
- package/dist/lib/asmr/ensemble.d.ts.map +1 -0
- package/dist/lib/asmr/fact-agent.d.ts +4 -0
- package/dist/lib/asmr/fact-agent.d.ts.map +1 -0
- package/dist/lib/asmr/index.d.ts +7 -0
- package/dist/lib/asmr/index.d.ts.map +1 -0
- package/dist/lib/asmr/orchestrator.d.ts +4 -0
- package/dist/lib/asmr/orchestrator.d.ts.map +1 -0
- package/dist/lib/asmr/temporal-agent.d.ts +4 -0
- package/dist/lib/asmr/temporal-agent.d.ts.map +1 -0
- package/dist/lib/asmr/types.d.ts +27 -0
- package/dist/lib/asmr/types.d.ts.map +1 -0
- package/dist/lib/auto-inject-orchestrator.d.ts +57 -0
- package/dist/lib/auto-inject-orchestrator.d.ts.map +1 -0
- package/dist/lib/auto-memory-queue.d.ts +46 -0
- package/dist/lib/auto-memory-queue.d.ts.map +1 -0
- package/dist/lib/auto-memory.d.ts +18 -0
- package/dist/lib/auto-memory.d.ts.map +1 -0
- package/dist/lib/bench.d.ts +20 -0
- package/dist/lib/bench.d.ts.map +1 -0
- package/dist/lib/built-in-hooks.d.ts +12 -0
- package/dist/lib/built-in-hooks.d.ts.map +1 -0
- package/dist/lib/channel-pusher.d.ts +39 -0
- package/dist/lib/channel-pusher.d.ts.map +1 -0
- package/dist/lib/config.d.ts +9 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/connectors/files.d.ts +8 -0
- package/dist/lib/connectors/files.d.ts.map +1 -0
- package/dist/lib/connectors/github.d.ts +7 -0
- package/dist/lib/connectors/github.d.ts.map +1 -0
- package/dist/lib/connectors/index.d.ts +12 -0
- package/dist/lib/connectors/index.d.ts.map +1 -0
- package/dist/lib/connectors/notion.d.ts +7 -0
- package/dist/lib/connectors/notion.d.ts.map +1 -0
- package/dist/lib/connectors/types.d.ts +27 -0
- package/dist/lib/connectors/types.d.ts.map +1 -0
- package/dist/lib/context-extractor.d.ts +14 -0
- package/dist/lib/context-extractor.d.ts.map +1 -0
- package/dist/lib/context.d.ts +35 -0
- package/dist/lib/context.d.ts.map +1 -0
- package/dist/lib/contradiction.d.ts +50 -0
- package/dist/lib/contradiction.d.ts.map +1 -0
- package/dist/lib/decay.d.ts +35 -0
- package/dist/lib/decay.d.ts.map +1 -0
- package/dist/lib/dedup.d.ts +33 -0
- package/dist/lib/dedup.d.ts.map +1 -0
- package/dist/lib/duration.d.ts +28 -0
- package/dist/lib/duration.d.ts.map +1 -0
- package/dist/lib/embeddings.d.ts +20 -0
- package/dist/lib/embeddings.d.ts.map +1 -0
- package/dist/lib/export-v1.d.ts +30 -0
- package/dist/lib/export-v1.d.ts.map +1 -0
- package/dist/lib/extractor.d.ts +9 -0
- package/dist/lib/extractor.d.ts.map +1 -0
- package/dist/lib/extractors/audio.d.ts +8 -0
- package/dist/lib/extractors/audio.d.ts.map +1 -0
- package/dist/lib/extractors/index.d.ts +12 -0
- package/dist/lib/extractors/index.d.ts.map +1 -0
- package/dist/lib/extractors/ocr.d.ts +7 -0
- package/dist/lib/extractors/ocr.d.ts.map +1 -0
- package/dist/lib/extractors/pdf.d.ts +7 -0
- package/dist/lib/extractors/pdf.d.ts.map +1 -0
- package/dist/lib/extractors/types.d.ts +12 -0
- package/dist/lib/extractors/types.d.ts.map +1 -0
- package/dist/lib/file-deps.d.ts +27 -0
- package/dist/lib/file-deps.d.ts.map +1 -0
- package/dist/lib/focus.d.ts +58 -0
- package/dist/lib/focus.d.ts.map +1 -0
- package/dist/lib/gatherer.d.ts +16 -0
- package/dist/lib/gatherer.d.ts.map +1 -0
- package/dist/lib/gdpr.d.ts +24 -0
- package/dist/lib/gdpr.d.ts.map +1 -0
- package/dist/lib/hooks.d.ts +50 -0
- package/dist/lib/hooks.d.ts.map +1 -0
- package/dist/lib/importers/index.d.ts +38 -0
- package/dist/lib/importers/index.d.ts.map +1 -0
- package/dist/lib/injector.d.ts +86 -0
- package/dist/lib/injector.d.ts.map +1 -0
- package/dist/lib/matryoshka.d.ts +50 -0
- package/dist/lib/matryoshka.d.ts.map +1 -0
- package/dist/lib/memory-lock.d.ts +58 -0
- package/dist/lib/memory-lock.d.ts.map +1 -0
- package/dist/lib/model-config.d.ts +14 -0
- package/dist/lib/model-config.d.ts.map +1 -0
- package/dist/lib/open-sessions-connector.d.ts +60 -0
- package/dist/lib/open-sessions-connector.d.ts.map +1 -0
- package/dist/lib/poisoning.d.ts +19 -0
- package/dist/lib/poisoning.d.ts.map +1 -0
- package/dist/lib/poll.d.ts +17 -0
- package/dist/lib/poll.d.ts.map +1 -0
- package/dist/lib/procedural-extractor.d.ts +21 -0
- package/dist/lib/procedural-extractor.d.ts.map +1 -0
- package/dist/lib/profile-sync.d.ts +20 -0
- package/dist/lib/profile-sync.d.ts.map +1 -0
- package/dist/lib/profile-synthesizer.d.ts +20 -0
- package/dist/lib/profile-synthesizer.d.ts.map +1 -0
- package/dist/lib/project-detect.d.ts +18 -0
- package/dist/lib/project-detect.d.ts.map +1 -0
- package/dist/lib/providers/anthropic.d.ts +21 -0
- package/dist/lib/providers/anthropic.d.ts.map +1 -0
- package/dist/lib/providers/base.d.ts +96 -0
- package/dist/lib/providers/base.d.ts.map +1 -0
- package/dist/lib/providers/cerebras.d.ts +20 -0
- package/dist/lib/providers/cerebras.d.ts.map +1 -0
- package/dist/lib/providers/grok.d.ts +19 -0
- package/dist/lib/providers/grok.d.ts.map +1 -0
- package/dist/lib/providers/index.d.ts +7 -0
- package/dist/lib/providers/index.d.ts.map +1 -0
- package/dist/lib/providers/openai-compat.d.ts +18 -0
- package/dist/lib/providers/openai-compat.d.ts.map +1 -0
- package/dist/lib/providers/openai.d.ts +20 -0
- package/dist/lib/providers/openai.d.ts.map +1 -0
- package/dist/lib/providers/registry.d.ts +38 -0
- package/dist/lib/providers/registry.d.ts.map +1 -0
- package/dist/lib/quality.d.ts +16 -0
- package/dist/lib/quality.d.ts.map +1 -0
- package/dist/lib/redact.d.ts +10 -0
- package/dist/lib/redact.d.ts.map +1 -0
- package/dist/lib/remote-sync.d.ts +49 -0
- package/dist/lib/remote-sync.d.ts.map +1 -0
- package/dist/lib/retention.d.ts +17 -0
- package/dist/lib/retention.d.ts.map +1 -0
- package/dist/lib/search.d.ts +52 -0
- package/dist/lib/search.d.ts.map +1 -0
- package/dist/lib/session-auto-resolve.d.ts +28 -0
- package/dist/lib/session-auto-resolve.d.ts.map +1 -0
- package/dist/lib/session-processor.d.ts +38 -0
- package/dist/lib/session-processor.d.ts.map +1 -0
- package/dist/lib/session-queue.d.ts +28 -0
- package/dist/lib/session-queue.d.ts.map +1 -0
- package/dist/lib/session-registry.d.ts +47 -0
- package/dist/lib/session-registry.d.ts.map +1 -0
- package/dist/lib/session-start-briefing.d.ts +10 -0
- package/dist/lib/session-start-briefing.d.ts.map +1 -0
- package/dist/lib/session-watcher.d.ts +30 -0
- package/dist/lib/session-watcher.d.ts.map +1 -0
- package/dist/lib/sync.d.ts +10 -0
- package/dist/lib/sync.d.ts.map +1 -0
- package/dist/lib/synthesis/corpus-builder.d.ts +30 -0
- package/dist/lib/synthesis/corpus-builder.d.ts.map +1 -0
- package/dist/lib/synthesis/executor.d.ts +14 -0
- package/dist/lib/synthesis/executor.d.ts.map +1 -0
- package/dist/lib/synthesis/index.d.ts +37 -0
- package/dist/lib/synthesis/index.d.ts.map +1 -0
- package/dist/lib/synthesis/llm-analyzer.d.ts +18 -0
- package/dist/lib/synthesis/llm-analyzer.d.ts.map +1 -0
- package/dist/lib/synthesis/metrics.d.ts +13 -0
- package/dist/lib/synthesis/metrics.d.ts.map +1 -0
- package/dist/lib/synthesis/scheduler.d.ts +18 -0
- package/dist/lib/synthesis/scheduler.d.ts.map +1 -0
- package/dist/lib/synthesis/validator.d.ts +19 -0
- package/dist/lib/synthesis/validator.d.ts.map +1 -0
- package/dist/lib/tool-lesson-extractor.d.ts +24 -0
- package/dist/lib/tool-lesson-extractor.d.ts.map +1 -0
- package/dist/lib/tool-memory-synthesizer.d.ts +28 -0
- package/dist/lib/tool-memory-synthesizer.d.ts.map +1 -0
- package/dist/lib/topic-clusterer.d.ts +21 -0
- package/dist/lib/topic-clusterer.d.ts.map +1 -0
- package/dist/lib/when-to-use-generator.d.ts +22 -0
- package/dist/lib/when-to-use-generator.d.ts.map +1 -0
- package/dist/mcp/index.d.ts +5 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +30258 -0
- package/dist/mcp/memory-broadcast.d.ts +12 -0
- package/dist/mcp/memory-broadcast.d.ts.map +1 -0
- package/dist/sdk/index.js +397 -0
- package/dist/server/index.d.ts +7 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +18250 -0
- package/dist/types/hooks.d.ts +136 -0
- package/dist/types/hooks.d.ts.map +1 -0
- package/dist/types/index.d.ts +345 -0
- package/dist/types/index.d.ts.map +1 -0
- package/package.json +53 -13
- package/dist/agent-setup.d.ts +0 -51
- package/dist/agent-setup.d.ts.map +0 -1
- package/dist/bridge.d.ts +0 -50
- package/dist/bridge.d.ts.map +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -1434
- package/dist/mcp-runtime.d.ts +0 -24
- package/dist/mcp-runtime.d.ts.map +0 -1
- package/dist/mcp.d.ts +0 -3
- package/dist/mcp.d.ts.map +0 -1
- package/dist/mcp.js +0 -366
- package/dist/remote-client.d.ts +0 -51
- package/dist/remote-client.d.ts.map +0 -1
package/dist/db/acl.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory Access Control Lists (ACLs).
|
|
3
|
+
*
|
|
4
|
+
* Fine-grained permissions beyond scopes: read-only, read-write, admin
|
|
5
|
+
* per agent per key pattern. Default: no ACLs = full access (backward compat).
|
|
6
|
+
*/
|
|
7
|
+
import { Database } from "bun:sqlite";
|
|
8
|
+
export type AclPermission = "read" | "readwrite" | "admin";
|
|
9
|
+
export interface MemoryAcl {
|
|
10
|
+
id: string;
|
|
11
|
+
agent_id: string;
|
|
12
|
+
key_pattern: string;
|
|
13
|
+
permission: AclPermission;
|
|
14
|
+
project_id: string | null;
|
|
15
|
+
created_at: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Set an ACL rule. Upserts by agent_id + key_pattern.
|
|
19
|
+
*/
|
|
20
|
+
export declare function setAcl(agentId: string, keyPattern: string, permission: AclPermission, projectId?: string, db?: Database): MemoryAcl;
|
|
21
|
+
/**
|
|
22
|
+
* List ACLs for an agent.
|
|
23
|
+
*/
|
|
24
|
+
export declare function listAcls(agentId: string, db?: Database): MemoryAcl[];
|
|
25
|
+
/**
|
|
26
|
+
* Remove an ACL rule.
|
|
27
|
+
*/
|
|
28
|
+
export declare function removeAcl(id: string, db?: Database): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Check if an agent has the required permission for a memory key.
|
|
31
|
+
* Returns true if allowed (no ACLs = full access).
|
|
32
|
+
*/
|
|
33
|
+
export declare function checkPermission(agentId: string, memoryKey: string, requiredPermission: "read" | "write", db?: Database): boolean;
|
|
34
|
+
//# sourceMappingURL=acl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acl.d.ts","sourceRoot":"","sources":["../../src/db/acl.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,aAAa,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,MAAM,CACpB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,aAAa,EACzB,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,QAAQ,GACZ,SAAS,CAeX;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,SAAS,EAAE,CAGpE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAI5D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,MAAM,GAAG,OAAO,EACpC,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAqBT"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Database } from "bun:sqlite";
|
|
2
|
+
import type { Agent } from "../types/index.js";
|
|
3
|
+
export declare function registerAgent(name: string, sessionId?: string, description?: string, role?: string, projectId?: string, db?: Database): Agent;
|
|
4
|
+
export declare function getAgent(idOrName: string, db?: Database): Agent | null;
|
|
5
|
+
export declare function listAgents(db?: Database): Agent[];
|
|
6
|
+
export declare function touchAgent(idOrName: string, db?: Database): void;
|
|
7
|
+
export declare function listAgentsByProject(projectId: string, db?: Database): Agent[];
|
|
8
|
+
export declare function updateAgent(id: string, updates: {
|
|
9
|
+
name?: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
role?: string;
|
|
12
|
+
metadata?: Record<string, unknown>;
|
|
13
|
+
active_project_id?: string | null;
|
|
14
|
+
}, db?: Database): Agent | null;
|
|
15
|
+
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/db/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAoB/C,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,QAAQ,GACZ,KAAK,CAgEP;AAED,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,MAAM,EAChB,EAAE,CAAC,EAAE,QAAQ,GACZ,KAAK,GAAG,IAAI,CAsBd;AAED,wBAAgB,UAAU,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,CAMjD;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAKhE;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,CAQ7E;AAED,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EACtI,EAAE,CAAC,EAAE,QAAQ,GACZ,KAAK,GAAG,IAAI,CAiDd"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Immutable audit log queries.
|
|
3
|
+
* The audit_log table is append-only — never UPDATE or DELETE from it.
|
|
4
|
+
*/
|
|
5
|
+
import { Database } from "bun:sqlite";
|
|
6
|
+
export interface AuditEntry {
|
|
7
|
+
id: string;
|
|
8
|
+
memory_id: string;
|
|
9
|
+
memory_key: string | null;
|
|
10
|
+
operation: "create" | "update" | "delete" | "archive" | "restore" | "read";
|
|
11
|
+
agent_id: string | null;
|
|
12
|
+
old_value_hash: string | null;
|
|
13
|
+
new_value_hash: string | null;
|
|
14
|
+
changes: Record<string, unknown>;
|
|
15
|
+
created_at: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Get audit trail for a specific memory.
|
|
19
|
+
*/
|
|
20
|
+
export declare function getMemoryAuditTrail(memoryId: string, limit?: number, db?: Database): AuditEntry[];
|
|
21
|
+
/**
|
|
22
|
+
* Export full audit log for compliance reporting.
|
|
23
|
+
*/
|
|
24
|
+
export declare function exportAuditLog(options?: {
|
|
25
|
+
since?: string;
|
|
26
|
+
until?: string;
|
|
27
|
+
operation?: string;
|
|
28
|
+
agent_id?: string;
|
|
29
|
+
limit?: number;
|
|
30
|
+
}, db?: Database): AuditEntry[];
|
|
31
|
+
/**
|
|
32
|
+
* Get audit stats — operation counts, most active agents, etc.
|
|
33
|
+
*/
|
|
34
|
+
export declare function getAuditStats(db?: Database): {
|
|
35
|
+
total_entries: number;
|
|
36
|
+
by_operation: Record<string, number>;
|
|
37
|
+
recent_24h: number;
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/db/audit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IAC3E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB;AAgBD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,MAAW,EAClB,EAAE,CAAC,EAAE,QAAQ,GACZ,UAAU,EAAE,CAMd;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CACX,EACN,EAAE,CAAC,EAAE,QAAQ,GACZ,UAAU,EAAE,CA6Bd;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB,CAkBA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SqliteAdapter as Database } from "@hasna/cloud";
|
|
2
|
+
export declare function getDbPath(): string;
|
|
3
|
+
export declare function getDatabase(dbPath?: string): Database;
|
|
4
|
+
export declare function closeDatabase(): void;
|
|
5
|
+
export declare function resetDatabase(): void;
|
|
6
|
+
export declare function now(): string;
|
|
7
|
+
export declare function uuid(): string;
|
|
8
|
+
export declare function shortUuid(): string;
|
|
9
|
+
export declare function resolvePartialId(db: Database, table: string, partialId: string): string | null;
|
|
10
|
+
//# sourceMappingURL=database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAC;AA8CzD,wBAAgB,SAAS,IAAI,MAAM,CAoBlC;AAs0BD,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAyBrD;AA+BD,wBAAgB,aAAa,IAAI,IAAI,CAKpC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,wBAAgB,GAAG,IAAI,MAAM,CAE5B;AAED,wBAAgB,IAAI,IAAI,MAAM,CAE7B;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAef"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Database } from "bun:sqlite";
|
|
2
|
+
import type { Entity, CreateEntityInput, UpdateEntityInput, EntityType } from "../types/index.js";
|
|
3
|
+
export declare function parseEntityRow(row: Record<string, unknown>): Entity;
|
|
4
|
+
export declare function createEntity(input: CreateEntityInput, db?: Database): Entity;
|
|
5
|
+
export declare function getEntity(id: string, db?: Database): Entity;
|
|
6
|
+
export declare function getEntityByName(name: string, type?: EntityType, projectId?: string, db?: Database): Entity | null;
|
|
7
|
+
export declare function listEntities(filter?: {
|
|
8
|
+
type?: EntityType;
|
|
9
|
+
project_id?: string;
|
|
10
|
+
search?: string;
|
|
11
|
+
limit?: number;
|
|
12
|
+
offset?: number;
|
|
13
|
+
}, db?: Database): Entity[];
|
|
14
|
+
export declare function updateEntity(id: string, input: UpdateEntityInput, db?: Database): Entity;
|
|
15
|
+
export declare function deleteEntity(id: string, db?: Database): void;
|
|
16
|
+
export declare function mergeEntities(sourceId: string, targetId: string, db?: Database): Entity;
|
|
17
|
+
export interface DuplicateEntityPair {
|
|
18
|
+
entity_a: Entity;
|
|
19
|
+
entity_b: Entity;
|
|
20
|
+
similarity: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Find potential duplicate entities by name similarity within same type+project.
|
|
24
|
+
* Returns pairs above the threshold (default 0.8) sorted by similarity descending.
|
|
25
|
+
*/
|
|
26
|
+
export declare function findDuplicateEntities(threshold?: number, db?: Database): DuplicateEntityPair[];
|
|
27
|
+
export interface GraphTraversalPath {
|
|
28
|
+
entities: Array<{
|
|
29
|
+
id: string;
|
|
30
|
+
name: string;
|
|
31
|
+
type: string;
|
|
32
|
+
}>;
|
|
33
|
+
relations: Array<{
|
|
34
|
+
id: string;
|
|
35
|
+
relation_type: string;
|
|
36
|
+
weight: number;
|
|
37
|
+
}>;
|
|
38
|
+
depth: number;
|
|
39
|
+
}
|
|
40
|
+
export interface GraphTraversalResult {
|
|
41
|
+
paths: GraphTraversalPath[];
|
|
42
|
+
visited_entities: Array<{
|
|
43
|
+
id: string;
|
|
44
|
+
name: string;
|
|
45
|
+
type: string;
|
|
46
|
+
}>;
|
|
47
|
+
total_paths: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Multi-hop graph traversal using a recursive CTE.
|
|
51
|
+
*
|
|
52
|
+
* Starts from `startEntityId` and follows relations up to `max_depth` hops,
|
|
53
|
+
* returning all discovered paths. Handles cycles by tracking visited entities
|
|
54
|
+
* in each path. Supports direction filtering and relation-type filtering.
|
|
55
|
+
*/
|
|
56
|
+
export declare function graphTraverse(startEntityId: string, options?: {
|
|
57
|
+
max_depth?: number;
|
|
58
|
+
relation_types?: string[];
|
|
59
|
+
direction?: "outgoing" | "incoming" | "both";
|
|
60
|
+
limit?: number;
|
|
61
|
+
}, db?: Database): GraphTraversalResult;
|
|
62
|
+
//# sourceMappingURL=entities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/db/entities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAyB,MAAM,YAAY,CAAC;AAE7D,OAAO,KAAK,EACV,MAAM,EACN,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACX,MAAM,mBAAmB,CAAC;AAQ3B,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAWnE;AAMD,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CA+D5E;AAMD,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAO3D;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,UAAU,EACjB,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,GAAG,IAAI,CAoBf;AAMD,wBAAgB,YAAY,CAC1B,MAAM,GAAE;IACN,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACZ,EACN,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,EAAE,CAoCV;AAMD,wBAAgB,YAAY,CAC1B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,iBAAiB,EACxB,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,CAiCR;AAMD,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAI5D;AAMD,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,CA0CR;AAgCD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,GAAE,MAAY,EACvB,EAAE,CAAC,EAAE,QAAQ,GACZ,mBAAmB,EAAE,CA2CvB;AAMD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,SAAS,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,gBAAgB,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;CACX,EACN,EAAE,CAAC,EAAE,QAAQ,GACZ,oBAAoB,CA2ItB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Database } from "bun:sqlite";
|
|
2
|
+
import type { Entity, Memory, EntityMemory, EntityRole } from "../types/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Link an entity to a memory. Uses INSERT OR IGNORE so duplicate links
|
|
5
|
+
* are silently ignored rather than throwing an error.
|
|
6
|
+
*/
|
|
7
|
+
export declare function linkEntityToMemory(entityId: string, memoryId: string, role?: EntityRole, db?: Database): EntityMemory;
|
|
8
|
+
/**
|
|
9
|
+
* Remove the link between an entity and a memory.
|
|
10
|
+
*/
|
|
11
|
+
export declare function unlinkEntityFromMemory(entityId: string, memoryId: string, db?: Database): void;
|
|
12
|
+
/**
|
|
13
|
+
* Get all memories linked to a given entity.
|
|
14
|
+
* Performs a JOIN with the memories table to return full Memory objects.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getMemoriesForEntity(entityId: string, db?: Database): Memory[];
|
|
17
|
+
/**
|
|
18
|
+
* Get all entities linked to a given memory.
|
|
19
|
+
* Performs a JOIN with the entities table to return full Entity objects.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getEntitiesForMemory(memoryId: string, db?: Database): Entity[];
|
|
22
|
+
/**
|
|
23
|
+
* Link multiple entities to a single memory inside a transaction.
|
|
24
|
+
*/
|
|
25
|
+
export declare function bulkLinkEntities(entityIds: string[], memoryId: string, role?: EntityRole, db?: Database): void;
|
|
26
|
+
/**
|
|
27
|
+
* Query entity-memory links with optional filters.
|
|
28
|
+
* - Pass entityId only to get all links for that entity.
|
|
29
|
+
* - Pass memoryId only to get all links for that memory.
|
|
30
|
+
* - Pass both to get the specific link (if it exists).
|
|
31
|
+
* - Pass neither to get all links.
|
|
32
|
+
*/
|
|
33
|
+
export declare function getEntityMemoryLinks(entityId?: string, memoryId?: string, db?: Database): EntityMemory[];
|
|
34
|
+
//# sourceMappingURL=entity-memories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-memories.d.ts","sourceRoot":"","sources":["../../src/db/entity-memories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiClF;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,UAAsB,EAC5B,EAAE,CAAC,EAAE,QAAQ,GACZ,YAAY,CAkBd;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,EAAE,CAAC,EAAE,QAAQ,GACZ,IAAI,CAMN;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,EAAE,CAYV;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,EAAE,CAYV;AAMD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EAAE,EACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,UAAsB,EAC5B,EAAE,CAAC,EAAE,QAAQ,GACZ,IAAI,CAeN;AAMD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,EAAE,CAAC,EAAE,QAAQ,GACZ,YAAY,EAAE,CAsBhB"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Database } from "bun:sqlite";
|
|
2
|
+
export type ResourceType = "project" | "memory" | "entity" | "agent" | "connector" | "file";
|
|
3
|
+
export type LockType = "advisory" | "exclusive";
|
|
4
|
+
export interface ResourceLock {
|
|
5
|
+
id: string;
|
|
6
|
+
resource_type: ResourceType;
|
|
7
|
+
resource_id: string;
|
|
8
|
+
agent_id: string;
|
|
9
|
+
lock_type: LockType;
|
|
10
|
+
locked_at: string;
|
|
11
|
+
expires_at: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Acquire a lock on a resource.
|
|
15
|
+
* - advisory: multiple agents can hold advisory locks simultaneously
|
|
16
|
+
* - exclusive: only one agent can hold an exclusive lock at a time
|
|
17
|
+
*
|
|
18
|
+
* Returns the lock if acquired, null if blocked by an existing exclusive lock.
|
|
19
|
+
* TTL is in seconds (default: 5 minutes).
|
|
20
|
+
*/
|
|
21
|
+
export declare function acquireLock(agentId: string, resourceType: ResourceType, resourceId: string, lockType?: LockType, ttlSeconds?: number, db?: Database): ResourceLock | null;
|
|
22
|
+
/**
|
|
23
|
+
* Release a specific lock by ID. Only the owning agent can release it.
|
|
24
|
+
* Returns true if released, false if not found or not owned.
|
|
25
|
+
*/
|
|
26
|
+
export declare function releaseLock(lockId: string, agentId: string, db?: Database): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Release all locks held by an agent on a specific resource.
|
|
29
|
+
*/
|
|
30
|
+
export declare function releaseResourceLocks(agentId: string, resourceType: ResourceType, resourceId: string, db?: Database): number;
|
|
31
|
+
/**
|
|
32
|
+
* Release all locks held by an agent (e.g., on session end).
|
|
33
|
+
*/
|
|
34
|
+
export declare function releaseAllAgentLocks(agentId: string, db?: Database): number;
|
|
35
|
+
/**
|
|
36
|
+
* Check if a resource is currently locked.
|
|
37
|
+
* Returns the active lock(s) or empty array.
|
|
38
|
+
*/
|
|
39
|
+
export declare function checkLock(resourceType: ResourceType, resourceId: string, lockType?: LockType, db?: Database): ResourceLock[];
|
|
40
|
+
/**
|
|
41
|
+
* Check if a specific agent holds a lock on a resource.
|
|
42
|
+
*/
|
|
43
|
+
export declare function agentHoldsLock(agentId: string, resourceType: ResourceType, resourceId: string, lockType?: LockType, db?: Database): ResourceLock | null;
|
|
44
|
+
/**
|
|
45
|
+
* List all active locks for an agent.
|
|
46
|
+
*/
|
|
47
|
+
export declare function listAgentLocks(agentId: string, db?: Database): ResourceLock[];
|
|
48
|
+
/**
|
|
49
|
+
* Delete all expired locks. Called automatically by other lock functions.
|
|
50
|
+
*/
|
|
51
|
+
export interface ExpiredLockInfo {
|
|
52
|
+
id: string;
|
|
53
|
+
resource_type: string;
|
|
54
|
+
resource_id: string;
|
|
55
|
+
agent_id: string;
|
|
56
|
+
lock_type: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Clean expired locks and return info about what was cleaned for notification purposes.
|
|
60
|
+
*/
|
|
61
|
+
export declare function cleanExpiredLocksWithInfo(db?: Database): ExpiredLockInfo[];
|
|
62
|
+
export declare function cleanExpiredLocks(db?: Database): number;
|
|
63
|
+
//# sourceMappingURL=locks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locks.d.ts","sourceRoot":"","sources":["../../src/db/locks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC;AAC5F,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,YAAY,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,QAAQ,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAcD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,QAAsB,EAChC,UAAU,SAAM,EAChB,EAAE,CAAC,EAAE,QAAQ,GACZ,YAAY,GAAG,IAAI,CAuDrB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAOnF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,CAOR;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAI3E;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,QAAQ,EACnB,EAAE,CAAC,EAAE,QAAQ,GACZ,YAAY,EAAE,CAgBhB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,QAAQ,EACnB,EAAE,CAAC,EAAE,QAAQ,GACZ,YAAY,GAAG,IAAI,CAcrB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,YAAY,EAAE,CAS7E;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,eAAe,EAAE,CAS1E;AAED,wBAAgB,iBAAiB,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAIvD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface Machine {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
hostname: string;
|
|
5
|
+
platform: string;
|
|
6
|
+
created_at: string;
|
|
7
|
+
last_seen_at: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function registerMachine(name?: string, db?: import("@hasna/cloud").SqliteAdapter): Machine;
|
|
10
|
+
export declare function listMachines(db?: import("@hasna/cloud").SqliteAdapter): Machine[];
|
|
11
|
+
export declare function getMachine(id: string, db?: import("@hasna/cloud").SqliteAdapter): Machine | null;
|
|
12
|
+
export declare function renameMachine(id: string, newName: string, db?: import("@hasna/cloud").SqliteAdapter): Machine;
|
|
13
|
+
export declare function touchMachine(id: string, db?: import("@hasna/cloud").SqliteAdapter): void;
|
|
14
|
+
/** Get or auto-register the current machine and return its ID. */
|
|
15
|
+
export declare function getCurrentMachineId(db?: import("@hasna/cloud").SqliteAdapter): string;
|
|
16
|
+
//# sourceMappingURL=machines.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"machines.d.ts","sourceRoot":"","sources":["../../src/db/machines.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,uCAAgB,GAAG,OAAO,CAyB1E;AAED,wBAAgB,YAAY,CAAC,EAAE,uCAAgB,GAAG,OAAO,EAAE,CAE1D;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,uCAAgB,GAAG,OAAO,GAAG,IAAI,CAEzE;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,uCAAgB,GAAG,OAAO,CAOtF;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,uCAAgB,GAAG,IAAI,CAEjE;AAED,kEAAkE;AAClE,wBAAgB,mBAAmB,CAAC,EAAE,uCAAgB,GAAG,MAAM,CAQ9D"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Database } from "bun:sqlite";
|
|
2
|
+
import type { CreateMemoryInput, DedupeMode, Memory, MemoryFilter, MemoryVersion, UpdateMemoryInput } from "../types/index.js";
|
|
3
|
+
export declare function parseMemoryRow(row: Record<string, unknown>): Memory;
|
|
4
|
+
export declare function createMemory(input: CreateMemoryInput, dedupeMode?: DedupeMode, db?: Database): Memory;
|
|
5
|
+
export declare function getMemory(id: string, db?: Database): Memory | null;
|
|
6
|
+
export declare function getMemoryByKey(key: string, scope?: string, agentId?: string, projectId?: string, sessionId?: string, db?: Database, as_of?: string): Memory | null;
|
|
7
|
+
/**
|
|
8
|
+
* Return ALL active memories matching a key (across scopes/agents/projects).
|
|
9
|
+
* Optional filters narrow the result set.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getMemoriesByKey(key: string, scope?: string, agentId?: string, projectId?: string, db?: Database): Memory[];
|
|
12
|
+
export declare function listMemories(filter?: MemoryFilter, db?: Database): Memory[];
|
|
13
|
+
export declare function updateMemory(id: string, input: UpdateMemoryInput, db?: Database): Memory;
|
|
14
|
+
export declare function deleteMemory(id: string, db?: Database): boolean;
|
|
15
|
+
export declare function bulkDeleteMemories(ids: string[], db?: Database): number;
|
|
16
|
+
export declare function touchMemory(id: string, db?: Database): void;
|
|
17
|
+
export declare function incrementRecallCount(id: string, db?: Database): void;
|
|
18
|
+
export declare function cleanExpiredMemories(db?: Database): number;
|
|
19
|
+
export declare function getMemoryVersions(memoryId: string, db?: Database): MemoryVersion[];
|
|
20
|
+
export interface SemanticSearchResult {
|
|
21
|
+
memory: Memory;
|
|
22
|
+
score: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Store or update the embedding for a memory. Called asynchronously after saves.
|
|
26
|
+
* Non-blocking: failures are silently ignored.
|
|
27
|
+
*/
|
|
28
|
+
export declare function indexMemoryEmbedding(memoryId: string, text: string, db?: Database): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Semantic search across memories using cosine similarity.
|
|
31
|
+
* Falls back gracefully if no embeddings exist yet.
|
|
32
|
+
*/
|
|
33
|
+
export declare function semanticSearch(queryText: string, options?: {
|
|
34
|
+
threshold?: number;
|
|
35
|
+
limit?: number;
|
|
36
|
+
scope?: string;
|
|
37
|
+
agent_id?: string;
|
|
38
|
+
project_id?: string;
|
|
39
|
+
}, db?: Database): Promise<SemanticSearchResult[]>;
|
|
40
|
+
//# sourceMappingURL=memories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memories.d.ts","sourceRoot":"","sources":["../../src/db/memories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAyB,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,MAAM,EACN,YAAY,EACZ,aAAa,EACb,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAgC3B,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAqCnE;AAMD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,iBAAiB,EACxB,UAAU,GAAE,UAAoB,EAChC,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,CAuMR;AAkBD,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAOlE;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,QAAQ,EACb,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,GAAG,IAAI,CAkCf;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,EAAE,CAuBV;AAMD,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,EAAE,CA8H3E;AAMD,wBAAgB,YAAY,CAC1B,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,iBAAiB,EACxB,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,CA0HR;AAMD,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAW/D;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAmBvE;AAMD,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAM3D;AAUD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAsBpE;AAMD,wBAAgB,oBAAoB,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,CAiB1D;AAMD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,aAAa,EAAE,CAwBlF;AAMD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAcvG;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CAChB,EACN,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAuCjC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface PgMigrationResult {
|
|
2
|
+
applied: number[];
|
|
3
|
+
alreadyApplied: number[];
|
|
4
|
+
errors: string[];
|
|
5
|
+
totalMigrations: number;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Apply all pending PostgreSQL migrations to the given database.
|
|
9
|
+
*
|
|
10
|
+
* @param connectionString - PostgreSQL connection string
|
|
11
|
+
* @returns Summary of which migrations were applied / skipped / errored.
|
|
12
|
+
*/
|
|
13
|
+
export declare function applyPgMigrations(connectionString: string): Promise<PgMigrationResult>;
|
|
14
|
+
//# sourceMappingURL=pg-migrate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pg-migrate.d.ts","sourceRoot":"","sources":["../../src/db/pg-migrate.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,iBAAiB,CAAC,CAuD5B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PostgreSQL migrations for open-mementos cloud sync.
|
|
3
|
+
*
|
|
4
|
+
* Equivalent of the SQLite migrations in database.ts, translated for PostgreSQL.
|
|
5
|
+
* Each element is a standalone SQL string that must be executed in order.
|
|
6
|
+
*/
|
|
7
|
+
export declare const PG_MIGRATIONS: string[];
|
|
8
|
+
//# sourceMappingURL=pg-migrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pg-migrations.d.ts","sourceRoot":"","sources":["../../src/db/pg-migrations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,EA8kBjC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Database } from "bun:sqlite";
|
|
2
|
+
import type { Project } from "../types/index.js";
|
|
3
|
+
export declare function registerProject(name: string, path: string, description?: string, memoryPrefix?: string, db?: Database): Project;
|
|
4
|
+
export declare function getProject(idOrPath: string, db?: Database): Project | null;
|
|
5
|
+
export declare function listProjects(db?: Database): Project[];
|
|
6
|
+
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/db/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAejD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,EACrB,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAyBT;AAED,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,GAAG,IAAI,CAoBhB;AAED,wBAAgB,YAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,EAAE,CAMrD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory ratings — usefulness feedback for memories.
|
|
3
|
+
*/
|
|
4
|
+
import { Database } from "bun:sqlite";
|
|
5
|
+
export interface MemoryRating {
|
|
6
|
+
id: string;
|
|
7
|
+
memory_id: string;
|
|
8
|
+
agent_id: string | null;
|
|
9
|
+
useful: boolean;
|
|
10
|
+
context: string | null;
|
|
11
|
+
created_at: string;
|
|
12
|
+
}
|
|
13
|
+
export interface RatingsSummary {
|
|
14
|
+
memory_id: string;
|
|
15
|
+
total: number;
|
|
16
|
+
useful_count: number;
|
|
17
|
+
not_useful_count: number;
|
|
18
|
+
usefulness_ratio: number;
|
|
19
|
+
}
|
|
20
|
+
export declare function rateMemory(memoryId: string, useful: boolean, agentId?: string, context?: string, db?: Database): MemoryRating;
|
|
21
|
+
export declare function listRatingsForMemory(memoryId: string, db?: Database): MemoryRating[];
|
|
22
|
+
export declare function getRatingsSummary(memoryId: string, db?: Database): RatingsSummary;
|
|
23
|
+
//# sourceMappingURL=ratings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ratings.d.ts","sourceRoot":"","sources":["../../src/db/ratings.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAOtC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAMD,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAChB,EAAE,CAAC,EAAE,QAAQ,GACZ,YAAY,CAmBd;AAMD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,EAAE,CAAC,EAAE,QAAQ,GACZ,YAAY,EAAE,CAOhB;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,EAAE,CAAC,EAAE,QAAQ,GACZ,cAAc,CAqBhB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Database } from "bun:sqlite";
|
|
2
|
+
import type { Entity, Relation, CreateRelationInput, RelationType } from "../types/index.js";
|
|
3
|
+
export declare function parseRelationRow(row: Record<string, unknown>): Relation;
|
|
4
|
+
export declare function parseEntityRow(row: Record<string, unknown>): Entity;
|
|
5
|
+
export declare function createRelation(input: CreateRelationInput, db?: Database): Relation;
|
|
6
|
+
export declare function getRelation(id: string, db?: Database): Relation;
|
|
7
|
+
export declare function listRelations(filter: {
|
|
8
|
+
entity_id?: string;
|
|
9
|
+
relation_type?: RelationType;
|
|
10
|
+
direction?: "outgoing" | "incoming" | "both";
|
|
11
|
+
}, db?: Database): Relation[];
|
|
12
|
+
export declare function deleteRelation(id: string, db?: Database): void;
|
|
13
|
+
/**
|
|
14
|
+
* Get direct neighbors (1-hop) of an entity.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getRelatedEntities(entityId: string, relationType?: RelationType, db?: Database): Entity[];
|
|
17
|
+
/**
|
|
18
|
+
* Recursive CTE graph traversal. Collect all entities and relations within N hops.
|
|
19
|
+
* Traverses BOTH directions (source->target and target->source).
|
|
20
|
+
*/
|
|
21
|
+
export declare function getEntityGraph(entityId: string, depth?: number, db?: Database): {
|
|
22
|
+
entities: Entity[];
|
|
23
|
+
relations: Relation[];
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* BFS shortest path using recursive CTE. Return ordered entity list or null if no path.
|
|
27
|
+
*/
|
|
28
|
+
export declare function findPath(fromEntityId: string, toEntityId: string, maxDepth?: number, db?: Database): Entity[] | null;
|
|
29
|
+
//# sourceMappingURL=relations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../src/db/relations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAyB,MAAM,YAAY,CAAC;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAO7F,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,CAUvE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAWnE;AAMD,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAmClF;AAMD,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAK/D;AAMD,wBAAgB,aAAa,CAC3B,MAAM,EAAE;IACN,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,SAAS,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;CAC9C,EACD,EAAE,CAAC,EAAE,QAAQ,GACZ,QAAQ,EAAE,CA2BZ;AAMD,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAI9D;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,YAAY,EAC3B,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,EAAE,CA6BV;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,MAAU,EACjB,EAAE,CAAC,EAAE,QAAQ,GACZ;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,EAAE,QAAQ,EAAE,CAAA;CAAE,CAqC/C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAAU,EACpB,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,EAAE,GAAG,IAAI,CAgCjB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Database } from "bun:sqlite";
|
|
2
|
+
export type SessionJobSource = "claude-code" | "codex" | "manual" | "open-sessions";
|
|
3
|
+
export type SessionJobStatus = "pending" | "processing" | "completed" | "failed";
|
|
4
|
+
export interface SessionMemoryJob {
|
|
5
|
+
id: string;
|
|
6
|
+
session_id: string;
|
|
7
|
+
agent_id: string | null;
|
|
8
|
+
project_id: string | null;
|
|
9
|
+
source: SessionJobSource;
|
|
10
|
+
status: SessionJobStatus;
|
|
11
|
+
transcript: string;
|
|
12
|
+
chunk_count: number;
|
|
13
|
+
memories_extracted: number;
|
|
14
|
+
error: string | null;
|
|
15
|
+
metadata: Record<string, unknown>;
|
|
16
|
+
created_at: string;
|
|
17
|
+
started_at: string | null;
|
|
18
|
+
completed_at: string | null;
|
|
19
|
+
}
|
|
20
|
+
export interface CreateSessionJobInput {
|
|
21
|
+
session_id: string;
|
|
22
|
+
transcript: string;
|
|
23
|
+
source?: SessionJobSource;
|
|
24
|
+
agent_id?: string;
|
|
25
|
+
project_id?: string;
|
|
26
|
+
metadata?: Record<string, unknown>;
|
|
27
|
+
}
|
|
28
|
+
export interface SessionJobFilter {
|
|
29
|
+
agent_id?: string;
|
|
30
|
+
project_id?: string;
|
|
31
|
+
status?: SessionJobStatus;
|
|
32
|
+
session_id?: string;
|
|
33
|
+
limit?: number;
|
|
34
|
+
offset?: number;
|
|
35
|
+
}
|
|
36
|
+
export interface UpdateSessionJobInput {
|
|
37
|
+
status?: SessionJobStatus;
|
|
38
|
+
chunk_count?: number;
|
|
39
|
+
memories_extracted?: number;
|
|
40
|
+
error?: string | null;
|
|
41
|
+
started_at?: string | null;
|
|
42
|
+
completed_at?: string | null;
|
|
43
|
+
}
|
|
44
|
+
export declare function createSessionJob(input: CreateSessionJobInput, db?: Database): SessionMemoryJob;
|
|
45
|
+
export declare function getSessionJob(id: string, db?: Database): SessionMemoryJob | null;
|
|
46
|
+
export declare function listSessionJobs(filter?: SessionJobFilter, db?: Database): SessionMemoryJob[];
|
|
47
|
+
export declare function updateSessionJob(id: string, updates: UpdateSessionJobInput, db?: Database): SessionMemoryJob | null;
|
|
48
|
+
export declare function getNextPendingJob(db?: Database): SessionMemoryJob | null;
|
|
49
|
+
//# sourceMappingURL=session-jobs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-jobs.d.ts","sourceRoot":"","sources":["../../src/db/session-jobs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAyB,MAAM,YAAY,CAAC;AAG7D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,eAAe,CAAC;AACpF,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEjF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AA6BD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,qBAAqB,EAC5B,EAAE,CAAC,EAAE,QAAQ,GACZ,gBAAgB,CAwBlB;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,gBAAgB,GAAG,IAAI,CAOhF;AAED,wBAAgB,eAAe,CAC7B,MAAM,CAAC,EAAE,gBAAgB,EACzB,EAAE,CAAC,EAAE,QAAQ,GACZ,gBAAgB,EAAE,CAiCpB;AAED,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,qBAAqB,EAC9B,EAAE,CAAC,EAAE,QAAQ,GACZ,gBAAgB,GAAG,IAAI,CAwCzB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,gBAAgB,GAAG,IAAI,CASxE"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { Database } from "bun:sqlite";
|
|
2
|
+
export interface SynthesisRun {
|
|
3
|
+
id: string;
|
|
4
|
+
triggered_by: "scheduler" | "manual" | "threshold" | "hook";
|
|
5
|
+
project_id: string | null;
|
|
6
|
+
agent_id: string | null;
|
|
7
|
+
corpus_size: number;
|
|
8
|
+
proposals_generated: number;
|
|
9
|
+
proposals_accepted: number;
|
|
10
|
+
proposals_rejected: number;
|
|
11
|
+
status: "pending" | "running" | "completed" | "failed" | "rolled_back";
|
|
12
|
+
error: string | null;
|
|
13
|
+
started_at: string;
|
|
14
|
+
completed_at: string | null;
|
|
15
|
+
}
|
|
16
|
+
export interface SynthesisProposal {
|
|
17
|
+
id: string;
|
|
18
|
+
run_id: string;
|
|
19
|
+
proposal_type: "merge" | "archive" | "promote" | "update_value" | "add_tag" | "remove_duplicate";
|
|
20
|
+
memory_ids: string[];
|
|
21
|
+
target_memory_id: string | null;
|
|
22
|
+
proposed_changes: Record<string, unknown>;
|
|
23
|
+
reasoning: string | null;
|
|
24
|
+
confidence: number;
|
|
25
|
+
status: "pending" | "accepted" | "rejected" | "rolled_back";
|
|
26
|
+
created_at: string;
|
|
27
|
+
executed_at: string | null;
|
|
28
|
+
rollback_data: Record<string, unknown> | null;
|
|
29
|
+
}
|
|
30
|
+
export interface SynthesisMetric {
|
|
31
|
+
id: string;
|
|
32
|
+
run_id: string;
|
|
33
|
+
metric_type: string;
|
|
34
|
+
value: number;
|
|
35
|
+
baseline: number | null;
|
|
36
|
+
created_at: string;
|
|
37
|
+
}
|
|
38
|
+
export interface SynthesisEvent {
|
|
39
|
+
id: string;
|
|
40
|
+
event_type: "recalled" | "searched" | "saved" | "updated" | "deleted" | "injected";
|
|
41
|
+
memory_id: string | null;
|
|
42
|
+
agent_id: string | null;
|
|
43
|
+
project_id: string | null;
|
|
44
|
+
session_id: string | null;
|
|
45
|
+
query: string | null;
|
|
46
|
+
importance_at_time: number | null;
|
|
47
|
+
metadata: Record<string, unknown>;
|
|
48
|
+
created_at: string;
|
|
49
|
+
}
|
|
50
|
+
export declare function createSynthesisRun(input: {
|
|
51
|
+
triggered_by: SynthesisRun["triggered_by"];
|
|
52
|
+
project_id?: string | null;
|
|
53
|
+
agent_id?: string | null;
|
|
54
|
+
corpus_size?: number;
|
|
55
|
+
}, db?: Database): SynthesisRun;
|
|
56
|
+
export declare function getSynthesisRun(id: string, db?: Database): SynthesisRun | null;
|
|
57
|
+
export declare function listSynthesisRuns(filter: {
|
|
58
|
+
project_id?: string | null;
|
|
59
|
+
status?: SynthesisRun["status"];
|
|
60
|
+
limit?: number;
|
|
61
|
+
}, db?: Database): SynthesisRun[];
|
|
62
|
+
export declare function updateSynthesisRun(id: string, updates: Partial<Pick<SynthesisRun, "status" | "error" | "corpus_size" | "proposals_generated" | "proposals_accepted" | "proposals_rejected" | "completed_at">>, db?: Database): SynthesisRun;
|
|
63
|
+
export declare function createProposal(input: {
|
|
64
|
+
run_id: string;
|
|
65
|
+
proposal_type: SynthesisProposal["proposal_type"];
|
|
66
|
+
memory_ids: string[];
|
|
67
|
+
target_memory_id?: string | null;
|
|
68
|
+
proposed_changes: Record<string, unknown>;
|
|
69
|
+
reasoning?: string | null;
|
|
70
|
+
confidence: number;
|
|
71
|
+
}, db?: Database): SynthesisProposal;
|
|
72
|
+
export declare function getProposal(id: string, db?: Database): SynthesisProposal | null;
|
|
73
|
+
export declare function listProposals(run_id: string, filter?: {
|
|
74
|
+
status?: SynthesisProposal["status"];
|
|
75
|
+
}, db?: Database): SynthesisProposal[];
|
|
76
|
+
export declare function updateProposal(id: string, updates: Partial<Pick<SynthesisProposal, "status" | "executed_at" | "rollback_data">>, db?: Database): SynthesisProposal;
|
|
77
|
+
export declare function createMetric(input: {
|
|
78
|
+
run_id: string;
|
|
79
|
+
metric_type: string;
|
|
80
|
+
value: number;
|
|
81
|
+
baseline?: number | null;
|
|
82
|
+
}, db?: Database): SynthesisMetric;
|
|
83
|
+
export declare function listMetrics(run_id: string, db?: Database): SynthesisMetric[];
|
|
84
|
+
export declare function recordSynthesisEvent(input: {
|
|
85
|
+
event_type: SynthesisEvent["event_type"];
|
|
86
|
+
memory_id?: string | null;
|
|
87
|
+
agent_id?: string | null;
|
|
88
|
+
project_id?: string | null;
|
|
89
|
+
session_id?: string | null;
|
|
90
|
+
query?: string | null;
|
|
91
|
+
importance_at_time?: number | null;
|
|
92
|
+
metadata?: Record<string, unknown>;
|
|
93
|
+
}, db?: Database): void;
|
|
94
|
+
export declare function listSynthesisEvents(filter: {
|
|
95
|
+
memory_id?: string;
|
|
96
|
+
project_id?: string;
|
|
97
|
+
event_type?: SynthesisEvent["event_type"];
|
|
98
|
+
since?: string;
|
|
99
|
+
limit?: number;
|
|
100
|
+
}, db?: Database): SynthesisEvent[];
|
|
101
|
+
//# sourceMappingURL=synthesis.d.ts.map
|