atabey-shared 0.1.4 → 0.1.5
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 +0 -0
- package/README.md +4 -1
- package/dist/modules/index.d.ts +2 -0
- package/dist/modules/index.js +2 -0
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/lifecycle/index.d.ts +1 -0
- package/dist/modules/lifecycle/index.js +2 -0
- package/dist/modules/lifecycle/index.js.map +1 -0
- package/dist/modules/lifecycle/task-lifecycle.d.ts +63 -0
- package/dist/modules/lifecycle/task-lifecycle.js +135 -0
- package/dist/modules/lifecycle/task-lifecycle.js.map +1 -0
- package/dist/modules/primitives/fs.js +1 -3
- package/dist/modules/primitives/fs.js.map +1 -1
- package/dist/modules/primitives/outbound-http.d.ts +2 -0
- package/dist/modules/primitives/outbound-http.js +5 -1
- package/dist/modules/primitives/outbound-http.js.map +1 -1
- package/dist/modules/security/secrets.d.ts +1 -0
- package/dist/modules/security/secrets.js +55 -27
- package/dist/modules/security/secrets.js.map +1 -1
- package/dist/modules/storage/agents.d.ts +15 -0
- package/dist/modules/storage/agents.js +59 -0
- package/dist/modules/storage/agents.js.map +1 -0
- package/dist/modules/storage/api-catalog.d.ts +24 -0
- package/dist/modules/storage/api-catalog.js +96 -0
- package/dist/modules/storage/api-catalog.js.map +1 -0
- package/dist/modules/storage/approvals.d.ts +63 -0
- package/dist/modules/storage/approvals.js +80 -0
- package/dist/modules/storage/approvals.js.map +1 -0
- package/dist/modules/storage/base.d.ts +13 -0
- package/dist/modules/storage/base.js +186 -0
- package/dist/modules/storage/base.js.map +1 -0
- package/dist/modules/storage/code-graph.d.ts +37 -0
- package/dist/modules/storage/code-graph.js +109 -0
- package/dist/modules/storage/code-graph.js.map +1 -0
- package/dist/modules/storage/cooldowns.d.ts +25 -0
- package/dist/modules/storage/cooldowns.js +81 -0
- package/dist/modules/storage/cooldowns.js.map +1 -0
- package/dist/modules/storage/costs.d.ts +27 -0
- package/dist/modules/storage/costs.js +30 -0
- package/dist/modules/storage/costs.js.map +1 -0
- package/dist/modules/storage/discipline.d.ts +38 -0
- package/dist/modules/storage/discipline.js +108 -0
- package/dist/modules/storage/discipline.js.map +1 -0
- package/dist/modules/storage/framework-dir.d.ts +9 -0
- package/dist/modules/storage/framework-dir.js +54 -0
- package/dist/modules/storage/framework-dir.js.map +1 -0
- package/dist/modules/storage/integrity.d.ts +29 -0
- package/dist/modules/storage/integrity.js +41 -0
- package/dist/modules/storage/integrity.js.map +1 -0
- package/dist/modules/storage/knowledge.d.ts +20 -0
- package/dist/modules/storage/knowledge.js +40 -0
- package/dist/modules/storage/knowledge.js.map +1 -0
- package/dist/modules/storage/logs.d.ts +26 -0
- package/dist/modules/storage/logs.js +97 -0
- package/dist/modules/storage/logs.js.map +1 -0
- package/dist/modules/storage/messages.d.ts +18 -0
- package/dist/modules/storage/messages.js +60 -0
- package/dist/modules/storage/messages.js.map +1 -0
- package/dist/modules/storage/metadata.d.ts +11 -0
- package/dist/modules/storage/metadata.js +20 -0
- package/dist/modules/storage/metadata.js.map +1 -0
- package/dist/modules/storage/migrations.js +19 -5
- package/dist/modules/storage/migrations.js.map +1 -1
- package/dist/modules/storage/storage.d.ts +11 -334
- package/dist/modules/storage/storage.js +11 -996
- package/dist/modules/storage/storage.js.map +1 -1
- package/dist/modules/storage/tasks.d.ts +13 -0
- package/dist/modules/storage/tasks.js +54 -0
- package/dist/modules/storage/tasks.js.map +1 -0
- package/dist/modules/storage/types.d.ts +91 -0
- package/dist/modules/storage/types.js +6 -0
- package/dist/modules/storage/types.js.map +1 -0
- package/dist/modules/storage/users.d.ts +21 -0
- package/dist/modules/storage/users.js +46 -0
- package/dist/modules/storage/users.js.map +1 -0
- package/package.json +5 -3
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hermes inter-agent message queue persistence.
|
|
3
|
+
*
|
|
4
|
+
* Split from the original AtabeyStorage god-class (2026-10-20 audit, S7).
|
|
5
|
+
* Part of the storage inheritance chain; AtabeyStorage (storage.ts) is the facade.
|
|
6
|
+
*/
|
|
7
|
+
import type { MessageRow } from "./types.js";
|
|
8
|
+
import { StorageAgents } from "./agents.js";
|
|
9
|
+
export declare class StorageMessages extends StorageAgents {
|
|
10
|
+
static onMessageSaved: ((msg: {
|
|
11
|
+
traceId: string;
|
|
12
|
+
category: string;
|
|
13
|
+
}) => void) | null;
|
|
14
|
+
static onMessageStatusUpdated: ((id: number, status: string) => void) | null;
|
|
15
|
+
static saveMessage(msg: MessageRow): void;
|
|
16
|
+
static getPendingMessages(): MessageRow[];
|
|
17
|
+
static updateMessageStatus(id: number, status: string): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hermes inter-agent message queue persistence.
|
|
3
|
+
*
|
|
4
|
+
* Split from the original AtabeyStorage god-class (2026-10-20 audit, S7).
|
|
5
|
+
* Part of the storage inheritance chain; AtabeyStorage (storage.ts) is the facade.
|
|
6
|
+
*/
|
|
7
|
+
import { logger } from "../observability/logger.js";
|
|
8
|
+
import { maskText } from "../security/pii.js";
|
|
9
|
+
import { asAgentID, asMessageID } from "../primitives/types.js";
|
|
10
|
+
import { StorageAgents } from "./agents.js";
|
|
11
|
+
export class StorageMessages extends StorageAgents {
|
|
12
|
+
static onMessageSaved = null;
|
|
13
|
+
static onMessageStatusUpdated = null;
|
|
14
|
+
static saveMessage(msg) {
|
|
15
|
+
const from = msg.from.replace("@", "");
|
|
16
|
+
const to = msg.to.replace("@", "");
|
|
17
|
+
const cleanContent = maskText(msg.content);
|
|
18
|
+
this.getDB().prepare(`
|
|
19
|
+
INSERT INTO messages (timestamp, sender, receiver, category, content, trace_id, parent_id, status, priority, requires_approval)
|
|
20
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
21
|
+
`).run(msg.timestamp, from, to, msg.category, cleanContent, msg.traceId, msg.parentId || null, msg.status, msg.priority, msg.requiresApproval ? 1 : 0);
|
|
22
|
+
if (this.onMessageSaved) {
|
|
23
|
+
try {
|
|
24
|
+
this.onMessageSaved({ traceId: msg.traceId, category: msg.category });
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
logger.debug(`onMessageSaved hook error: ${err.message}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
static getPendingMessages() {
|
|
32
|
+
const db = this.getDB();
|
|
33
|
+
const rows = db.prepare("SELECT * FROM messages WHERE status = 'PENDING'").all();
|
|
34
|
+
return rows.map(r => ({
|
|
35
|
+
id: asMessageID(r.id),
|
|
36
|
+
timestamp: r.timestamp,
|
|
37
|
+
from: asAgentID(r.sender),
|
|
38
|
+
to: asAgentID(r.receiver),
|
|
39
|
+
category: r.category,
|
|
40
|
+
content: maskText(r.content),
|
|
41
|
+
traceId: r.trace_id,
|
|
42
|
+
parentId: r.parent_id || undefined,
|
|
43
|
+
status: r.status,
|
|
44
|
+
priority: r.priority,
|
|
45
|
+
requiresApproval: r.requires_approval === 1
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
static updateMessageStatus(id, status) {
|
|
49
|
+
this.getDB().prepare("UPDATE messages SET status = ? WHERE id = ?").run(status, id);
|
|
50
|
+
if (this.onMessageStatusUpdated) {
|
|
51
|
+
try {
|
|
52
|
+
this.onMessageStatusUpdated(id, status);
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
logger.debug(`onMessageStatusUpdated hook error: ${err.message}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/modules/storage/messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Arbitrary key/value project metadata.
|
|
3
|
+
*
|
|
4
|
+
* Split from the original AtabeyStorage god-class (2026-10-20 audit, S7).
|
|
5
|
+
* Part of the storage inheritance chain; AtabeyStorage (storage.ts) is the facade.
|
|
6
|
+
*/
|
|
7
|
+
import { StorageCosts } from "./costs.js";
|
|
8
|
+
export declare class StorageMetadata extends StorageCosts {
|
|
9
|
+
static setMetadata(key: string, value: string): void;
|
|
10
|
+
static getMetadata(key: string): string | null;
|
|
11
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Arbitrary key/value project metadata.
|
|
3
|
+
*
|
|
4
|
+
* Split from the original AtabeyStorage god-class (2026-10-20 audit, S7).
|
|
5
|
+
* Part of the storage inheritance chain; AtabeyStorage (storage.ts) is the facade.
|
|
6
|
+
*/
|
|
7
|
+
import { StorageCosts } from "./costs.js";
|
|
8
|
+
export class StorageMetadata extends StorageCosts {
|
|
9
|
+
static setMetadata(key, value) {
|
|
10
|
+
this.getDB().prepare(`
|
|
11
|
+
INSERT INTO metadata (key, value) VALUES (?, ?)
|
|
12
|
+
ON CONFLICT(key) DO UPDATE SET value = excluded.value
|
|
13
|
+
`).run(key, value);
|
|
14
|
+
}
|
|
15
|
+
static getMetadata(key) {
|
|
16
|
+
const row = this.getDB().prepare("SELECT value FROM metadata WHERE key = ?").get(key);
|
|
17
|
+
return row ? row.value : null;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/modules/storage/metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,OAAO,eAAgB,SAAQ,YAAY;IACtC,MAAM,CAAC,WAAW,CAAC,GAAW,EAAE,KAAa;QAChD,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC;;;SAGpB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvB,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,GAAW;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,CAAC,GAAG,CAAkC,CAAC;QACvH,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAClC,CAAC;CACJ"}
|
|
@@ -305,6 +305,21 @@ export function verifyDatabaseIntegrity(db, mode = "quick") {
|
|
|
305
305
|
foreignKeyViolations: fkRows.length,
|
|
306
306
|
};
|
|
307
307
|
}
|
|
308
|
+
function computeFileSha256(filePath) {
|
|
309
|
+
const hash = crypto.createHash("sha256");
|
|
310
|
+
const fd = fs.openSync(filePath, "r");
|
|
311
|
+
const buffer = Buffer.alloc(64 * 1024);
|
|
312
|
+
try {
|
|
313
|
+
let bytesRead = 0;
|
|
314
|
+
while ((bytesRead = fs.readSync(fd, buffer, 0, buffer.length, null)) > 0) {
|
|
315
|
+
hash.update(buffer.subarray(0, bytesRead));
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
finally {
|
|
319
|
+
fs.closeSync(fd);
|
|
320
|
+
}
|
|
321
|
+
return hash.digest("hex");
|
|
322
|
+
}
|
|
308
323
|
/**
|
|
309
324
|
* Perform a consistent online backup using SQLite `VACUUM INTO` and write a `.sha256` sidecar.
|
|
310
325
|
*/
|
|
@@ -318,14 +333,14 @@ export function backupDatabase(db, destinationPath) {
|
|
|
318
333
|
// Escape single quotes in path for SQLite VACUUM INTO literal
|
|
319
334
|
const escapedPath = absDest.replace(/'/g, "''");
|
|
320
335
|
db.exec(`VACUUM INTO '${escapedPath}'`);
|
|
321
|
-
const
|
|
322
|
-
const
|
|
336
|
+
const sha256 = computeFileSha256(absDest);
|
|
337
|
+
const sizeBytes = fs.statSync(absDest).size;
|
|
323
338
|
fs.writeFileSync(`${absDest}.sha256`, `${sha256} ${path.basename(absDest)}\n`, { mode: 0o600 });
|
|
324
339
|
const status = getMigrationStatus(db);
|
|
325
340
|
return {
|
|
326
341
|
backupPath: absDest,
|
|
327
342
|
sha256,
|
|
328
|
-
sizeBytes
|
|
343
|
+
sizeBytes,
|
|
329
344
|
createdAt: new Date().toISOString(),
|
|
330
345
|
schemaVersion: status.currentVersion,
|
|
331
346
|
};
|
|
@@ -339,8 +354,7 @@ export function restoreDatabase(backupPath, targetDbPath, options = {}) {
|
|
|
339
354
|
if (!fs.existsSync(absBackup)) {
|
|
340
355
|
throw new Error(`Backup file does not exist: ${absBackup}`);
|
|
341
356
|
}
|
|
342
|
-
const
|
|
343
|
-
const actualSha256 = crypto.createHash("sha256").update(bytes).digest("hex");
|
|
357
|
+
const actualSha256 = computeFileSha256(absBackup);
|
|
344
358
|
const sidecarPath = `${absBackup}.sha256`;
|
|
345
359
|
if (options.verifyChecksum !== false && fs.existsSync(sidecarPath)) {
|
|
346
360
|
const expected = fs.readFileSync(sidecarPath, "utf8").trim().split(/\s+/)[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/modules/storage/migrations.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/modules/storage/migrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,341 +1,18 @@
|
|
|
1
|
-
import Database from "better-sqlite3";
|
|
2
|
-
import type { ApiEndpoint } from "../agent/api-catalog.js";
|
|
3
|
-
import { type BackupResult, type IntegrityCheckResult } from "./migrations.js";
|
|
4
|
-
import { AgentID, LogID, MessageID, TaskID, TraceID } from "../primitives/types.js";
|
|
5
|
-
export interface AgentRow {
|
|
6
|
-
name: AgentID;
|
|
7
|
-
state: string;
|
|
8
|
-
task: string;
|
|
9
|
-
last_updated: string;
|
|
10
|
-
}
|
|
11
|
-
export interface MessageRow {
|
|
12
|
-
id?: MessageID;
|
|
13
|
-
timestamp: string;
|
|
14
|
-
from: AgentID;
|
|
15
|
-
to: AgentID;
|
|
16
|
-
category: string;
|
|
17
|
-
content: string;
|
|
18
|
-
traceId: TraceID;
|
|
19
|
-
parentId?: TaskID;
|
|
20
|
-
status: string;
|
|
21
|
-
priority: string;
|
|
22
|
-
requiresApproval: boolean;
|
|
23
|
-
}
|
|
24
|
-
export interface TaskRow {
|
|
25
|
-
id: TaskID;
|
|
26
|
-
traceId: TraceID;
|
|
27
|
-
description: string;
|
|
28
|
-
agent: AgentID;
|
|
29
|
-
status: string;
|
|
30
|
-
priority: string;
|
|
31
|
-
dependencies: string[];
|
|
32
|
-
createdAt?: string;
|
|
33
|
-
}
|
|
34
|
-
export interface LogRow {
|
|
35
|
-
id?: LogID;
|
|
36
|
-
timestamp: string;
|
|
37
|
-
agent: AgentID;
|
|
38
|
-
action: string;
|
|
39
|
-
trace_id?: TraceID;
|
|
40
|
-
status: string;
|
|
41
|
-
summary: string;
|
|
42
|
-
findings?: string;
|
|
43
|
-
prev_hash?: string;
|
|
44
|
-
hash?: string;
|
|
45
|
-
}
|
|
46
|
-
export interface CostDbRow {
|
|
47
|
-
id: number;
|
|
48
|
-
provider: string;
|
|
49
|
-
model: string;
|
|
50
|
-
input_tokens: number;
|
|
51
|
-
output_tokens: number;
|
|
52
|
-
cost: number;
|
|
53
|
-
timestamp: string;
|
|
54
|
-
trace_id: string | null;
|
|
55
|
-
}
|
|
56
|
-
export interface MessageDbRow {
|
|
57
|
-
id: number;
|
|
58
|
-
timestamp: string;
|
|
59
|
-
sender: string;
|
|
60
|
-
receiver: string;
|
|
61
|
-
category: string;
|
|
62
|
-
content: string;
|
|
63
|
-
trace_id: string;
|
|
64
|
-
parent_id: string | null;
|
|
65
|
-
status: string;
|
|
66
|
-
priority: string;
|
|
67
|
-
requires_approval: number;
|
|
68
|
-
}
|
|
69
|
-
export interface TaskDbRow {
|
|
70
|
-
id: string;
|
|
71
|
-
trace_id: string;
|
|
72
|
-
description: string;
|
|
73
|
-
agent: string;
|
|
74
|
-
status: string;
|
|
75
|
-
priority: string;
|
|
76
|
-
dependencies: string;
|
|
77
|
-
created_at: string;
|
|
78
|
-
}
|
|
79
|
-
export interface LogDbRow {
|
|
80
|
-
id: number;
|
|
81
|
-
timestamp: string;
|
|
82
|
-
agent: string;
|
|
83
|
-
action: string;
|
|
84
|
-
trace_id: string | null;
|
|
85
|
-
status: string;
|
|
86
|
-
summary: string;
|
|
87
|
-
findings: string | null;
|
|
88
|
-
prev_hash: string | null;
|
|
89
|
-
hash: string | null;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Resolves the framework directory (.atabey) intelligently by ascending the directory tree,
|
|
93
|
-
* preventing subpackages and test runners from spraying databases in random subfolders.
|
|
94
|
-
*/
|
|
95
|
-
export declare function resolveFrameworkDir(): string;
|
|
96
1
|
/**
|
|
97
2
|
* [DB] Canonical Atabey Storage Engine (Single Source of Truth)
|
|
98
3
|
* Central SQLite database for enterprise-scale multi-agent state management.
|
|
4
|
+
*
|
|
5
|
+
* The implementation is decomposed into domain modules (base, knowledge,
|
|
6
|
+
* users, agents, messages, tasks, logs, costs, metadata, cooldowns,
|
|
7
|
+
* approvals, discipline, code-graph, integrity, api-catalog) chained via
|
|
8
|
+
* class inheritance. This module remains the stable public facade — the
|
|
9
|
+
* AtabeyStorage API is unchanged; only the file layout was split
|
|
10
|
+
* (2026-10-20 audit, S7).
|
|
99
11
|
*/
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
static getKnowledgeList(): Array<{
|
|
105
|
-
filename: string;
|
|
106
|
-
updated_at: string;
|
|
107
|
-
}>;
|
|
108
|
-
static getKnowledgeFile(filename: string): {
|
|
109
|
-
filename: string;
|
|
110
|
-
content: string;
|
|
111
|
-
updated_at: string;
|
|
112
|
-
} | null;
|
|
113
|
-
static saveKnowledgeFile(filename: string, content: string): void;
|
|
114
|
-
static deleteKnowledgeFile(filename: string): boolean;
|
|
115
|
-
static hasUsers(): boolean;
|
|
116
|
-
static getUsers(): Array<{
|
|
117
|
-
name: string;
|
|
118
|
-
token: string;
|
|
119
|
-
role: string;
|
|
120
|
-
}>;
|
|
121
|
-
static getUserByToken(token: string): {
|
|
122
|
-
name: string;
|
|
123
|
-
role: string;
|
|
124
|
-
} | null;
|
|
125
|
-
static createUser(name: string, token: string, role: string): void;
|
|
126
|
-
static deleteUser(name: string): boolean;
|
|
127
|
-
static createAgent(name: string, description: string, skills: string): void;
|
|
128
|
-
static deleteAgent(name: string): boolean;
|
|
129
|
-
static updateAgentDetails(name: string, description: string, state: string, task: string, skills: string): void;
|
|
130
|
-
static onMessageSaved: ((msg: {
|
|
131
|
-
traceId: string;
|
|
132
|
-
category: string;
|
|
133
|
-
}) => void) | null;
|
|
134
|
-
static onMessageStatusUpdated: ((id: number, status: string) => void) | null;
|
|
135
|
-
static saveLog(log: {
|
|
136
|
-
agent: string;
|
|
137
|
-
action: string;
|
|
138
|
-
trace_id?: string;
|
|
139
|
-
status: string;
|
|
140
|
-
summary: string;
|
|
141
|
-
findings?: string;
|
|
142
|
-
}): number;
|
|
143
|
-
static verifyLogIntegrity(): {
|
|
144
|
-
valid: boolean;
|
|
145
|
-
checked?: number;
|
|
146
|
-
failedLogId?: number;
|
|
147
|
-
reason?: string;
|
|
148
|
-
tip?: string;
|
|
149
|
-
};
|
|
150
|
-
static saveCost(cost: {
|
|
151
|
-
provider: string;
|
|
152
|
-
model: string;
|
|
153
|
-
inputTokens: number;
|
|
154
|
-
outputTokens: number;
|
|
155
|
-
cost: number;
|
|
156
|
-
timestamp: string;
|
|
157
|
-
traceId?: string;
|
|
158
|
-
}): void;
|
|
159
|
-
static getAllCosts(): Array<{
|
|
160
|
-
provider: string;
|
|
161
|
-
model: string;
|
|
162
|
-
inputTokens: number;
|
|
163
|
-
outputTokens: number;
|
|
164
|
-
cost: number;
|
|
165
|
-
timestamp: string;
|
|
166
|
-
traceId?: string;
|
|
167
|
-
}>;
|
|
168
|
-
static updateAgentStatus(name: string, state: string, task: string, lastUpdated?: string): void;
|
|
169
|
-
static getAllAgents(): AgentRow[];
|
|
170
|
-
static saveMessage(msg: MessageRow): void;
|
|
171
|
-
static getPendingMessages(): MessageRow[];
|
|
172
|
-
static updateMessageStatus(id: number, status: string): void;
|
|
173
|
-
static saveTask(task: TaskRow): void;
|
|
174
|
-
static getTasks(traceId?: TraceID): TaskRow[];
|
|
175
|
-
static getLogs(agentName?: string): LogRow[];
|
|
176
|
-
static setMetadata(key: string, value: string): void;
|
|
177
|
-
static getMetadata(key: string): string | null;
|
|
178
|
-
static saveLoopCooldown(agent: string, cooldownUntil: number, detail: string | null, cooldownCount?: number): void;
|
|
179
|
-
static getLoopCooldown(agent: string): {
|
|
180
|
-
agent: string;
|
|
181
|
-
cooldownUntil: number;
|
|
182
|
-
detail: string | null;
|
|
183
|
-
cooldownCount: number;
|
|
184
|
-
} | null;
|
|
185
|
-
static clearLoopCooldown(agent: string): boolean;
|
|
186
|
-
static clearAllLoopCooldowns(): void;
|
|
187
|
-
static listActiveLoopCooldowns(): Array<{
|
|
188
|
-
agent: string;
|
|
189
|
-
cooldownUntil: number;
|
|
190
|
-
detail: string | null;
|
|
191
|
-
cooldownCount: number;
|
|
192
|
-
}>;
|
|
193
|
-
static purgeExpiredLoopCooldowns(): number;
|
|
194
|
-
static saveApproval(app: {
|
|
195
|
-
traceId: string;
|
|
196
|
-
toolName: string;
|
|
197
|
-
agent: string;
|
|
198
|
-
riskScore: number;
|
|
199
|
-
riskLevel: string;
|
|
200
|
-
reason: string;
|
|
201
|
-
args: Record<string, unknown>;
|
|
202
|
-
createdAt: number;
|
|
203
|
-
expiresAt: number;
|
|
204
|
-
status?: "PENDING" | "APPROVED" | "REJECTED" | "EXPIRED";
|
|
205
|
-
passcode?: string;
|
|
206
|
-
}): void;
|
|
207
|
-
static saveApprovalRequest(request: {
|
|
208
|
-
traceId: string;
|
|
209
|
-
toolName: string;
|
|
210
|
-
agent: string;
|
|
211
|
-
riskScore: number;
|
|
212
|
-
riskLevel: string;
|
|
213
|
-
reason: string;
|
|
214
|
-
args: Record<string, unknown>;
|
|
215
|
-
createdAt: number;
|
|
216
|
-
expiresAt: number;
|
|
217
|
-
status?: "PENDING" | "APPROVED" | "REJECTED" | "EXPIRED";
|
|
218
|
-
passcode?: string;
|
|
219
|
-
}): void;
|
|
220
|
-
static getApproval(traceId: string): {
|
|
221
|
-
traceId: string;
|
|
222
|
-
toolName: string;
|
|
223
|
-
agent: string;
|
|
224
|
-
riskScore: number;
|
|
225
|
-
riskLevel: string;
|
|
226
|
-
reason: string;
|
|
227
|
-
args: Record<string, unknown>;
|
|
228
|
-
createdAt: number;
|
|
229
|
-
expiresAt: number;
|
|
230
|
-
status: "PENDING" | "APPROVED" | "REJECTED" | "EXPIRED";
|
|
231
|
-
passcode?: string;
|
|
232
|
-
} | null;
|
|
233
|
-
static getPendingApprovals(): Array<{
|
|
234
|
-
traceId: string;
|
|
235
|
-
toolName: string;
|
|
236
|
-
agent: string;
|
|
237
|
-
riskScore: number;
|
|
238
|
-
riskLevel: string;
|
|
239
|
-
reason: string;
|
|
240
|
-
args: Record<string, unknown>;
|
|
241
|
-
createdAt: number;
|
|
242
|
-
expiresAt: number;
|
|
243
|
-
status: "PENDING" | "APPROVED" | "REJECTED" | "EXPIRED";
|
|
244
|
-
passcode?: string;
|
|
245
|
-
}>;
|
|
246
|
-
static updateApprovalStatus(traceId: string, status: string): void;
|
|
247
|
-
static clearAllApprovals(): void;
|
|
248
|
-
static saveDiscipline(agent: string, stats: {
|
|
249
|
-
totalCalls: number;
|
|
250
|
-
violations: number;
|
|
251
|
-
lastViolation: string | null;
|
|
252
|
-
cooldownUntil: number;
|
|
253
|
-
}): void;
|
|
254
|
-
static getDiscipline(agent: string): {
|
|
255
|
-
agent: string;
|
|
256
|
-
totalCalls: number;
|
|
257
|
-
violations: number;
|
|
258
|
-
lastViolation: string | null;
|
|
259
|
-
cooldownUntil: number;
|
|
260
|
-
} | null;
|
|
261
|
-
static getAllDiscipline(): Array<{
|
|
262
|
-
agent: string;
|
|
263
|
-
totalCalls: number;
|
|
264
|
-
violations: number;
|
|
265
|
-
lastViolation: string | null;
|
|
266
|
-
cooldownUntil: number;
|
|
267
|
-
}>;
|
|
268
|
-
static clearAllDiscipline(): void;
|
|
269
|
-
static recordDisciplineCall(agent: string, tool: string, timestamp: number, argsSize: number): void;
|
|
270
|
-
static getRecentDisciplineCalls(agent: string, sinceTs: number): Array<{
|
|
271
|
-
tool: string;
|
|
272
|
-
timestamp: number;
|
|
273
|
-
argsSize: number;
|
|
274
|
-
}>;
|
|
275
|
-
static pruneDisciplineCalls(beforeTs: number): void;
|
|
276
|
-
static clearDisciplineCalls(agent?: string): void;
|
|
277
|
-
static getCodeFileHash(filePath: string): string | null;
|
|
278
|
-
static upsertCodeFile(filePath: string, hash: string): void;
|
|
279
|
-
static replaceCodeSymbols(filePath: string, symbols: Array<{
|
|
280
|
-
name: string;
|
|
281
|
-
kind: string;
|
|
282
|
-
startLine: number;
|
|
283
|
-
endLine: number;
|
|
284
|
-
signature: string;
|
|
285
|
-
exported: boolean;
|
|
286
|
-
}>): void;
|
|
287
|
-
static replaceCodeImports(filePath: string, specifiers: string[]): void;
|
|
288
|
-
static deleteCodeFile(filePath: string): void;
|
|
289
|
-
static getAllCodeFilePaths(): string[];
|
|
290
|
-
static searchCodeSymbols(query: string, limit?: number): Array<{
|
|
291
|
-
file: string;
|
|
292
|
-
name: string;
|
|
293
|
-
kind: string;
|
|
294
|
-
startLine: number;
|
|
295
|
-
endLine: number;
|
|
296
|
-
signature: string;
|
|
297
|
-
exported: boolean;
|
|
298
|
-
}>;
|
|
299
|
-
static getCodeGraphStats(): {
|
|
300
|
-
files: number;
|
|
301
|
-
symbols: number;
|
|
302
|
-
imports: number;
|
|
303
|
-
};
|
|
304
|
-
static clearCodeGraph(): void;
|
|
305
|
-
static checkIntegrity(): {
|
|
306
|
-
ok: boolean;
|
|
307
|
-
message: string;
|
|
308
|
-
};
|
|
309
|
-
static verifyDatabaseIntegrity(mode?: "quick" | "full"): IntegrityCheckResult;
|
|
310
|
-
static getMigrationStatus(): {
|
|
311
|
-
currentVersion: number;
|
|
312
|
-
applied: import("./migrations.js").AppliedMigration[];
|
|
313
|
-
pending: Array<{
|
|
314
|
-
version: number;
|
|
315
|
-
name: string;
|
|
316
|
-
}>;
|
|
317
|
-
};
|
|
318
|
-
static backup(destinationPath?: string): BackupResult;
|
|
319
|
-
static restore(backupPath: string, targetDbPath?: string): {
|
|
320
|
-
restoredPath: string;
|
|
321
|
-
sha256: string;
|
|
322
|
-
schemaVersion: number;
|
|
323
|
-
};
|
|
324
|
-
static saveApiEndpoint(endpoint: ApiEndpoint): void;
|
|
325
|
-
static getApiEndpoints(filter?: {
|
|
326
|
-
tag?: string;
|
|
327
|
-
method?: string;
|
|
328
|
-
search?: string;
|
|
329
|
-
}): ApiEndpoint[];
|
|
330
|
-
static findApiEndpoint(pathQuery: string, method?: string): ApiEndpoint[];
|
|
331
|
-
static deleteApiEndpoint(method: string, path: string): boolean;
|
|
332
|
-
/** Replace the whole catalog with a fresh scan; returns upserted/deleted counts. */
|
|
333
|
-
static replaceApiCatalog(endpoints: ApiEndpoint[]): {
|
|
334
|
-
upserted: number;
|
|
335
|
-
deleted: number;
|
|
336
|
-
};
|
|
337
|
-
private static rowToApiEndpoint;
|
|
338
|
-
static reset(): void;
|
|
12
|
+
import { StorageApiCatalog } from "./api-catalog.js";
|
|
13
|
+
export * from "./types.js";
|
|
14
|
+
export { resolveFrameworkDir } from "./framework-dir.js";
|
|
15
|
+
export declare class AtabeyStorage extends StorageApiCatalog {
|
|
339
16
|
}
|
|
340
17
|
/** Canonical alias */
|
|
341
18
|
export declare const Storage: typeof AtabeyStorage;
|