clawd-automaton 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +178 -0
- package/constitution.md +25 -0
- package/dist/__tests__/heartbeat.test.d.ts +7 -0
- package/dist/__tests__/heartbeat.test.d.ts.map +1 -0
- package/dist/__tests__/heartbeat.test.js +125 -0
- package/dist/__tests__/heartbeat.test.js.map +1 -0
- package/dist/__tests__/loop.test.d.ts +7 -0
- package/dist/__tests__/loop.test.d.ts.map +1 -0
- package/dist/__tests__/loop.test.js +150 -0
- package/dist/__tests__/loop.test.js.map +1 -0
- package/dist/__tests__/mocks.d.ts +72 -0
- package/dist/__tests__/mocks.d.ts.map +1 -0
- package/dist/__tests__/mocks.js +197 -0
- package/dist/__tests__/mocks.js.map +1 -0
- package/dist/agent/context.d.ts +26 -0
- package/dist/agent/context.d.ts.map +1 -0
- package/dist/agent/context.js +115 -0
- package/dist/agent/context.js.map +1 -0
- package/dist/agent/injection-defense.d.ts +13 -0
- package/dist/agent/injection-defense.d.ts.map +1 -0
- package/dist/agent/injection-defense.js +236 -0
- package/dist/agent/injection-defense.js.map +1 -0
- package/dist/agent/loop.d.ts +25 -0
- package/dist/agent/loop.d.ts.map +1 -0
- package/dist/agent/loop.js +263 -0
- package/dist/agent/loop.js.map +1 -0
- package/dist/agent/system-prompt.d.ts +30 -0
- package/dist/agent/system-prompt.d.ts.map +1 -0
- package/dist/agent/system-prompt.js +241 -0
- package/dist/agent/system-prompt.js.map +1 -0
- package/dist/agent/tools.d.ts +17 -0
- package/dist/agent/tools.d.ts.map +1 -0
- package/dist/agent/tools.js +1413 -0
- package/dist/agent/tools.js.map +1 -0
- package/dist/clawd/backroom.d.ts +54 -0
- package/dist/clawd/backroom.d.ts.map +1 -0
- package/dist/clawd/backroom.js +130 -0
- package/dist/clawd/backroom.js.map +1 -0
- package/dist/clawd/client.d.ts +16 -0
- package/dist/clawd/client.d.ts.map +1 -0
- package/dist/clawd/client.js +256 -0
- package/dist/clawd/client.js.map +1 -0
- package/dist/clawd/convex-client.d.ts +130 -0
- package/dist/clawd/convex-client.d.ts.map +1 -0
- package/dist/clawd/convex-client.js +118 -0
- package/dist/clawd/convex-client.js.map +1 -0
- package/dist/clawd/credits.d.ts +24 -0
- package/dist/clawd/credits.d.ts.map +1 -0
- package/dist/clawd/credits.js +64 -0
- package/dist/clawd/credits.js.map +1 -0
- package/dist/clawd/deepseek-inference.d.ts +40 -0
- package/dist/clawd/deepseek-inference.d.ts.map +1 -0
- package/dist/clawd/deepseek-inference.js +143 -0
- package/dist/clawd/deepseek-inference.js.map +1 -0
- package/dist/clawd/inference.d.ts +17 -0
- package/dist/clawd/inference.d.ts.map +1 -0
- package/dist/clawd/inference.js +114 -0
- package/dist/clawd/inference.js.map +1 -0
- package/dist/clawd/x402.d.ts +48 -0
- package/dist/clawd/x402.d.ts.map +1 -0
- package/dist/clawd/x402.js +350 -0
- package/dist/clawd/x402.js.map +1 -0
- package/dist/config.d.ts +36 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +84 -0
- package/dist/config.js.map +1 -0
- package/dist/git/state-versioning.d.ts +39 -0
- package/dist/git/state-versioning.d.ts.map +1 -0
- package/dist/git/state-versioning.js +93 -0
- package/dist/git/state-versioning.js.map +1 -0
- package/dist/git/tools.d.ts +40 -0
- package/dist/git/tools.d.ts.map +1 -0
- package/dist/git/tools.js +140 -0
- package/dist/git/tools.js.map +1 -0
- package/dist/heartbeat/config.d.ts +23 -0
- package/dist/heartbeat/config.d.ts.map +1 -0
- package/dist/heartbeat/config.js +156 -0
- package/dist/heartbeat/config.js.map +1 -0
- package/dist/heartbeat/daemon.d.ts +28 -0
- package/dist/heartbeat/daemon.d.ts.map +1 -0
- package/dist/heartbeat/daemon.js +141 -0
- package/dist/heartbeat/daemon.js.map +1 -0
- package/dist/heartbeat/tasks.d.ts +24 -0
- package/dist/heartbeat/tasks.d.ts.map +1 -0
- package/dist/heartbeat/tasks.js +277 -0
- package/dist/heartbeat/tasks.js.map +1 -0
- package/dist/identity/provision.d.ts +28 -0
- package/dist/identity/provision.d.ts.map +1 -0
- package/dist/identity/provision.js +131 -0
- package/dist/identity/provision.js.map +1 -0
- package/dist/identity/wallet.d.ts +28 -0
- package/dist/identity/wallet.d.ts.map +1 -0
- package/dist/identity/wallet.js +69 -0
- package/dist/identity/wallet.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +358 -0
- package/dist/index.js.map +1 -0
- package/dist/ooda/claude-decision.d.ts +18 -0
- package/dist/ooda/claude-decision.d.ts.map +1 -0
- package/dist/ooda/claude-decision.js +82 -0
- package/dist/ooda/claude-decision.js.map +1 -0
- package/dist/ooda/journal.d.ts +22 -0
- package/dist/ooda/journal.d.ts.map +1 -0
- package/dist/ooda/journal.js +26 -0
- package/dist/ooda/journal.js.map +1 -0
- package/dist/ooda/loop.d.ts +3 -0
- package/dist/ooda/loop.d.ts.map +1 -0
- package/dist/ooda/loop.js +210 -0
- package/dist/ooda/loop.js.map +1 -0
- package/dist/ooda/observe.d.ts +21 -0
- package/dist/ooda/observe.d.ts.map +1 -0
- package/dist/ooda/observe.js +75 -0
- package/dist/ooda/observe.js.map +1 -0
- package/dist/ooda/state.d.ts +34 -0
- package/dist/ooda/state.d.ts.map +1 -0
- package/dist/ooda/state.js +48 -0
- package/dist/ooda/state.js.map +1 -0
- package/dist/ooda/tui.d.ts +3 -0
- package/dist/ooda/tui.d.ts.map +1 -0
- package/dist/ooda/tui.js +132 -0
- package/dist/ooda/tui.js.map +1 -0
- package/dist/ooda/validate.d.ts +33 -0
- package/dist/ooda/validate.d.ts.map +1 -0
- package/dist/ooda/validate.js +91 -0
- package/dist/ooda/validate.js.map +1 -0
- package/dist/registry/agent-card.d.ts +26 -0
- package/dist/registry/agent-card.d.ts.map +1 -0
- package/dist/registry/agent-card.js +94 -0
- package/dist/registry/agent-card.js.map +1 -0
- package/dist/registry/discovery.d.ts +24 -0
- package/dist/registry/discovery.d.ts.map +1 -0
- package/dist/registry/discovery.js +74 -0
- package/dist/registry/discovery.js.map +1 -0
- package/dist/registry/erc8004.d.ts +39 -0
- package/dist/registry/erc8004.d.ts.map +1 -0
- package/dist/registry/erc8004.js +209 -0
- package/dist/registry/erc8004.js.map +1 -0
- package/dist/replication/genesis.d.ts +26 -0
- package/dist/replication/genesis.d.ts.map +1 -0
- package/dist/replication/genesis.js +72 -0
- package/dist/replication/genesis.js.map +1 -0
- package/dist/replication/lineage.d.ts +35 -0
- package/dist/replication/lineage.d.ts.map +1 -0
- package/dist/replication/lineage.js +79 -0
- package/dist/replication/lineage.js.map +1 -0
- package/dist/replication/spawn.d.ts +25 -0
- package/dist/replication/spawn.d.ts.map +1 -0
- package/dist/replication/spawn.js +166 -0
- package/dist/replication/spawn.js.map +1 -0
- package/dist/self-mod/audit-log.d.ts +24 -0
- package/dist/self-mod/audit-log.d.ts.map +1 -0
- package/dist/self-mod/audit-log.js +49 -0
- package/dist/self-mod/audit-log.js.map +1 -0
- package/dist/self-mod/code.d.ts +51 -0
- package/dist/self-mod/code.d.ts.map +1 -0
- package/dist/self-mod/code.js +317 -0
- package/dist/self-mod/code.js.map +1 -0
- package/dist/self-mod/tools-manager.d.ts +30 -0
- package/dist/self-mod/tools-manager.d.ts.map +1 -0
- package/dist/self-mod/tools-manager.js +74 -0
- package/dist/self-mod/tools-manager.js.map +1 -0
- package/dist/self-mod/upstream.d.ts +36 -0
- package/dist/self-mod/upstream.d.ts.map +1 -0
- package/dist/self-mod/upstream.js +66 -0
- package/dist/self-mod/upstream.js.map +1 -0
- package/dist/setup/banner.d.ts +2 -0
- package/dist/setup/banner.d.ts.map +1 -0
- package/dist/setup/banner.js +22 -0
- package/dist/setup/banner.js.map +1 -0
- package/dist/setup/defaults.d.ts +3 -0
- package/dist/setup/defaults.d.ts.map +1 -0
- package/dist/setup/defaults.js +113 -0
- package/dist/setup/defaults.js.map +1 -0
- package/dist/setup/environment.d.ts +6 -0
- package/dist/setup/environment.d.ts.map +1 -0
- package/dist/setup/environment.js +24 -0
- package/dist/setup/environment.js.map +1 -0
- package/dist/setup/prompts.d.ts +5 -0
- package/dist/setup/prompts.d.ts.map +1 -0
- package/dist/setup/prompts.js +70 -0
- package/dist/setup/prompts.js.map +1 -0
- package/dist/setup/wizard.d.ts +3 -0
- package/dist/setup/wizard.d.ts.map +1 -0
- package/dist/setup/wizard.js +128 -0
- package/dist/setup/wizard.js.map +1 -0
- package/dist/skills/format.d.ts +14 -0
- package/dist/skills/format.d.ts.map +1 -0
- package/dist/skills/format.js +145 -0
- package/dist/skills/format.js.map +1 -0
- package/dist/skills/loader.d.ts +19 -0
- package/dist/skills/loader.d.ts.map +1 -0
- package/dist/skills/loader.js +98 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/skills/registry.d.ts +31 -0
- package/dist/skills/registry.d.ts.map +1 -0
- package/dist/skills/registry.js +111 -0
- package/dist/skills/registry.js.map +1 -0
- package/dist/social/client.d.ts +13 -0
- package/dist/social/client.d.ts.map +1 -0
- package/dist/social/client.js +89 -0
- package/dist/social/client.js.map +1 -0
- package/dist/state/database.d.ts +9 -0
- package/dist/state/database.d.ts.map +1 -0
- package/dist/state/database.js +401 -0
- package/dist/state/database.js.map +1 -0
- package/dist/state/schema.d.ts +11 -0
- package/dist/state/schema.d.ts.map +1 -0
- package/dist/state/schema.js +232 -0
- package/dist/state/schema.js.map +1 -0
- package/dist/survival/funding.d.ts +19 -0
- package/dist/survival/funding.d.ts.map +1 -0
- package/dist/survival/funding.js +62 -0
- package/dist/survival/funding.js.map +1 -0
- package/dist/survival/low-compute.d.ts +30 -0
- package/dist/survival/low-compute.d.ts.map +1 -0
- package/dist/survival/low-compute.js +72 -0
- package/dist/survival/low-compute.js.map +1 -0
- package/dist/survival/monitor.d.ts +23 -0
- package/dist/survival/monitor.d.ts.map +1 -0
- package/dist/survival/monitor.js +70 -0
- package/dist/survival/monitor.js.map +1 -0
- package/dist/types.d.ts +461 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +25 -0
- package/dist/types.js.map +1 -0
- package/package.json +85 -0
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Automaton Database
|
|
3
|
+
*
|
|
4
|
+
* SQLite-backed persistent state for the automaton.
|
|
5
|
+
* Uses better-sqlite3 for synchronous, single-process access.
|
|
6
|
+
*/
|
|
7
|
+
import Database from "better-sqlite3";
|
|
8
|
+
import fs from "fs";
|
|
9
|
+
import path from "path";
|
|
10
|
+
import { SCHEMA_VERSION, CREATE_TABLES, MIGRATION_V2, MIGRATION_V3 } from "./schema.js";
|
|
11
|
+
export function createDatabase(dbPath) {
|
|
12
|
+
// Ensure directory exists
|
|
13
|
+
const dir = path.dirname(dbPath);
|
|
14
|
+
if (!fs.existsSync(dir)) {
|
|
15
|
+
fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
16
|
+
}
|
|
17
|
+
const db = new Database(dbPath);
|
|
18
|
+
// Enable WAL mode for better concurrent read performance
|
|
19
|
+
db.pragma("journal_mode = WAL");
|
|
20
|
+
db.pragma("foreign_keys = ON");
|
|
21
|
+
// Initialize schema
|
|
22
|
+
db.exec(CREATE_TABLES);
|
|
23
|
+
// Check and apply schema version
|
|
24
|
+
const versionRow = db
|
|
25
|
+
.prepare("SELECT MAX(version) as v FROM schema_version")
|
|
26
|
+
.get();
|
|
27
|
+
const currentVersion = versionRow?.v ?? 0;
|
|
28
|
+
if (currentVersion < 2) {
|
|
29
|
+
db.exec(MIGRATION_V2);
|
|
30
|
+
}
|
|
31
|
+
if (currentVersion < 3) {
|
|
32
|
+
db.exec(MIGRATION_V3);
|
|
33
|
+
}
|
|
34
|
+
if (currentVersion < SCHEMA_VERSION) {
|
|
35
|
+
db.prepare("INSERT OR REPLACE INTO schema_version (version, applied_at) VALUES (?, datetime('now'))").run(SCHEMA_VERSION);
|
|
36
|
+
}
|
|
37
|
+
// ─── Identity ────────────────────────────────────────────────
|
|
38
|
+
const getIdentity = (key) => {
|
|
39
|
+
const row = db
|
|
40
|
+
.prepare("SELECT value FROM identity WHERE key = ?")
|
|
41
|
+
.get(key);
|
|
42
|
+
return row?.value;
|
|
43
|
+
};
|
|
44
|
+
const setIdentity = (key, value) => {
|
|
45
|
+
db.prepare("INSERT OR REPLACE INTO identity (key, value) VALUES (?, ?)").run(key, value);
|
|
46
|
+
};
|
|
47
|
+
// ─── Turns ───────────────────────────────────────────────────
|
|
48
|
+
const insertTurn = (turn) => {
|
|
49
|
+
db.prepare(`INSERT INTO turns (id, timestamp, state, input, input_source, thinking, tool_calls, token_usage, cost_cents)
|
|
50
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(turn.id, turn.timestamp, turn.state, turn.input ?? null, turn.inputSource ?? null, turn.thinking, JSON.stringify(turn.toolCalls), JSON.stringify(turn.tokenUsage), turn.costCents);
|
|
51
|
+
};
|
|
52
|
+
const getRecentTurns = (limit) => {
|
|
53
|
+
const rows = db
|
|
54
|
+
.prepare("SELECT * FROM turns ORDER BY timestamp DESC LIMIT ?")
|
|
55
|
+
.all(limit);
|
|
56
|
+
return rows.map(deserializeTurn).reverse();
|
|
57
|
+
};
|
|
58
|
+
const getTurnById = (id) => {
|
|
59
|
+
const row = db
|
|
60
|
+
.prepare("SELECT * FROM turns WHERE id = ?")
|
|
61
|
+
.get(id);
|
|
62
|
+
return row ? deserializeTurn(row) : undefined;
|
|
63
|
+
};
|
|
64
|
+
const getTurnCount = () => {
|
|
65
|
+
const row = db
|
|
66
|
+
.prepare("SELECT COUNT(*) as count FROM turns")
|
|
67
|
+
.get();
|
|
68
|
+
return row.count;
|
|
69
|
+
};
|
|
70
|
+
// ─── Tool Calls ──────────────────────────────────────────────
|
|
71
|
+
const insertToolCall = (turnId, call) => {
|
|
72
|
+
db.prepare(`INSERT INTO tool_calls (id, turn_id, name, arguments, result, duration_ms, error)
|
|
73
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)`).run(call.id, turnId, call.name, JSON.stringify(call.arguments), call.result, call.durationMs, call.error ?? null);
|
|
74
|
+
};
|
|
75
|
+
const getToolCallsForTurn = (turnId) => {
|
|
76
|
+
const rows = db
|
|
77
|
+
.prepare("SELECT * FROM tool_calls WHERE turn_id = ?")
|
|
78
|
+
.all(turnId);
|
|
79
|
+
return rows.map(deserializeToolCall);
|
|
80
|
+
};
|
|
81
|
+
// ─── Heartbeat ───────────────────────────────────────────────
|
|
82
|
+
const getHeartbeatEntries = () => {
|
|
83
|
+
const rows = db
|
|
84
|
+
.prepare("SELECT * FROM heartbeat_entries")
|
|
85
|
+
.all();
|
|
86
|
+
return rows.map(deserializeHeartbeatEntry);
|
|
87
|
+
};
|
|
88
|
+
const upsertHeartbeatEntry = (entry) => {
|
|
89
|
+
db.prepare(`INSERT OR REPLACE INTO heartbeat_entries (name, schedule, task, enabled, last_run, next_run, params, updated_at)
|
|
90
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, datetime('now'))`).run(entry.name, entry.schedule, entry.task, entry.enabled ? 1 : 0, entry.lastRun ?? null, entry.nextRun ?? null, JSON.stringify(entry.params ?? {}));
|
|
91
|
+
};
|
|
92
|
+
const updateHeartbeatLastRun = (name, timestamp) => {
|
|
93
|
+
db.prepare("UPDATE heartbeat_entries SET last_run = ?, updated_at = datetime('now') WHERE name = ?").run(timestamp, name);
|
|
94
|
+
};
|
|
95
|
+
// ─── Transactions ────────────────────────────────────────────
|
|
96
|
+
const insertTransaction = (txn) => {
|
|
97
|
+
db.prepare(`INSERT INTO transactions (id, type, amount_cents, balance_after_cents, description)
|
|
98
|
+
VALUES (?, ?, ?, ?, ?)`).run(txn.id, txn.type, txn.amountCents ?? null, txn.balanceAfterCents ?? null, txn.description);
|
|
99
|
+
};
|
|
100
|
+
const getRecentTransactions = (limit) => {
|
|
101
|
+
const rows = db
|
|
102
|
+
.prepare("SELECT * FROM transactions ORDER BY created_at DESC LIMIT ?")
|
|
103
|
+
.all(limit);
|
|
104
|
+
return rows.map(deserializeTransaction).reverse();
|
|
105
|
+
};
|
|
106
|
+
// ─── Installed Tools ─────────────────────────────────────────
|
|
107
|
+
const getInstalledTools = () => {
|
|
108
|
+
const rows = db
|
|
109
|
+
.prepare("SELECT * FROM installed_tools WHERE enabled = 1")
|
|
110
|
+
.all();
|
|
111
|
+
return rows.map(deserializeInstalledTool);
|
|
112
|
+
};
|
|
113
|
+
const installTool = (tool) => {
|
|
114
|
+
db.prepare(`INSERT OR REPLACE INTO installed_tools (id, name, type, config, installed_at, enabled)
|
|
115
|
+
VALUES (?, ?, ?, ?, ?, ?)`).run(tool.id, tool.name, tool.type, JSON.stringify(tool.config ?? {}), tool.installedAt, tool.enabled ? 1 : 0);
|
|
116
|
+
};
|
|
117
|
+
const removeTool = (id) => {
|
|
118
|
+
db.prepare("UPDATE installed_tools SET enabled = 0 WHERE id = ?").run(id);
|
|
119
|
+
};
|
|
120
|
+
// ─── Modifications ───────────────────────────────────────────
|
|
121
|
+
const insertModification = (mod) => {
|
|
122
|
+
db.prepare(`INSERT INTO modifications (id, timestamp, type, description, file_path, diff, reversible)
|
|
123
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)`).run(mod.id, mod.timestamp, mod.type, mod.description, mod.filePath ?? null, mod.diff ?? null, mod.reversible ? 1 : 0);
|
|
124
|
+
};
|
|
125
|
+
const getRecentModifications = (limit) => {
|
|
126
|
+
const rows = db
|
|
127
|
+
.prepare("SELECT * FROM modifications ORDER BY timestamp DESC LIMIT ?")
|
|
128
|
+
.all(limit);
|
|
129
|
+
return rows.map(deserializeModification).reverse();
|
|
130
|
+
};
|
|
131
|
+
// ─── Key-Value Store ─────────────────────────────────────────
|
|
132
|
+
const getKV = (key) => {
|
|
133
|
+
const row = db
|
|
134
|
+
.prepare("SELECT value FROM kv WHERE key = ?")
|
|
135
|
+
.get(key);
|
|
136
|
+
return row?.value;
|
|
137
|
+
};
|
|
138
|
+
const setKV = (key, value) => {
|
|
139
|
+
db.prepare("INSERT OR REPLACE INTO kv (key, value, updated_at) VALUES (?, ?, datetime('now'))").run(key, value);
|
|
140
|
+
};
|
|
141
|
+
const deleteKV = (key) => {
|
|
142
|
+
db.prepare("DELETE FROM kv WHERE key = ?").run(key);
|
|
143
|
+
};
|
|
144
|
+
// ─── Skills ─────────────────────────────────────────────────
|
|
145
|
+
const getSkills = (enabledOnly) => {
|
|
146
|
+
const query = enabledOnly
|
|
147
|
+
? "SELECT * FROM skills WHERE enabled = 1"
|
|
148
|
+
: "SELECT * FROM skills";
|
|
149
|
+
const rows = db.prepare(query).all();
|
|
150
|
+
return rows.map(deserializeSkill);
|
|
151
|
+
};
|
|
152
|
+
const getSkillByName = (name) => {
|
|
153
|
+
const row = db
|
|
154
|
+
.prepare("SELECT * FROM skills WHERE name = ?")
|
|
155
|
+
.get(name);
|
|
156
|
+
return row ? deserializeSkill(row) : undefined;
|
|
157
|
+
};
|
|
158
|
+
const upsertSkill = (skill) => {
|
|
159
|
+
db.prepare(`INSERT OR REPLACE INTO skills (name, description, auto_activate, requires, instructions, source, path, enabled, installed_at)
|
|
160
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(skill.name, skill.description, skill.autoActivate ? 1 : 0, JSON.stringify(skill.requires ?? {}), skill.instructions, skill.source, skill.path, skill.enabled ? 1 : 0, skill.installedAt);
|
|
161
|
+
};
|
|
162
|
+
const removeSkill = (name) => {
|
|
163
|
+
db.prepare("UPDATE skills SET enabled = 0 WHERE name = ?").run(name);
|
|
164
|
+
};
|
|
165
|
+
// ─── Children ──────────────────────────────────────────────
|
|
166
|
+
const getChildren = () => {
|
|
167
|
+
const rows = db
|
|
168
|
+
.prepare("SELECT * FROM children ORDER BY created_at DESC")
|
|
169
|
+
.all();
|
|
170
|
+
return rows.map(deserializeChild);
|
|
171
|
+
};
|
|
172
|
+
const getChildById = (id) => {
|
|
173
|
+
const row = db
|
|
174
|
+
.prepare("SELECT * FROM children WHERE id = ?")
|
|
175
|
+
.get(id);
|
|
176
|
+
return row ? deserializeChild(row) : undefined;
|
|
177
|
+
};
|
|
178
|
+
const insertChild = (child) => {
|
|
179
|
+
db.prepare(`INSERT INTO children (id, name, address, sandbox_id, genesis_prompt, creator_message, funded_amount_cents, status, created_at)
|
|
180
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(child.id, child.name, child.address, child.sandboxId, child.genesisPrompt, child.creatorMessage ?? null, child.fundedAmountCents, child.status, child.createdAt);
|
|
181
|
+
};
|
|
182
|
+
const updateChildStatus = (id, status) => {
|
|
183
|
+
db.prepare("UPDATE children SET status = ?, last_checked = datetime('now') WHERE id = ?").run(status, id);
|
|
184
|
+
};
|
|
185
|
+
// ─── Registry ──────────────────────────────────────────────
|
|
186
|
+
const getRegistryEntry = () => {
|
|
187
|
+
const row = db
|
|
188
|
+
.prepare("SELECT * FROM registry LIMIT 1")
|
|
189
|
+
.get();
|
|
190
|
+
return row ? deserializeRegistry(row) : undefined;
|
|
191
|
+
};
|
|
192
|
+
const setRegistryEntry = (entry) => {
|
|
193
|
+
db.prepare(`INSERT OR REPLACE INTO registry (agent_id, agent_uri, chain, contract_address, tx_hash, registered_at)
|
|
194
|
+
VALUES (?, ?, ?, ?, ?, ?)`).run(entry.agentId, entry.agentURI, entry.chain, entry.contractAddress, entry.txHash, entry.registeredAt);
|
|
195
|
+
};
|
|
196
|
+
// ─── Reputation ────────────────────────────────────────────
|
|
197
|
+
const insertReputation = (entry) => {
|
|
198
|
+
db.prepare(`INSERT INTO reputation (id, from_agent, to_agent, score, comment, tx_hash)
|
|
199
|
+
VALUES (?, ?, ?, ?, ?, ?)`).run(entry.id, entry.fromAgent, entry.toAgent, entry.score, entry.comment, entry.txHash ?? null);
|
|
200
|
+
};
|
|
201
|
+
const getReputation = (agentAddress) => {
|
|
202
|
+
const query = agentAddress
|
|
203
|
+
? "SELECT * FROM reputation WHERE to_agent = ? ORDER BY created_at DESC"
|
|
204
|
+
: "SELECT * FROM reputation ORDER BY created_at DESC";
|
|
205
|
+
const params = agentAddress ? [agentAddress] : [];
|
|
206
|
+
const rows = db.prepare(query).all(...params);
|
|
207
|
+
return rows.map(deserializeReputation);
|
|
208
|
+
};
|
|
209
|
+
// ─── Inbox Messages ──────────────────────────────────────────
|
|
210
|
+
const insertInboxMessage = (msg) => {
|
|
211
|
+
db.prepare(`INSERT OR IGNORE INTO inbox_messages (id, from_address, content, received_at, reply_to)
|
|
212
|
+
VALUES (?, ?, ?, ?, ?)`).run(msg.id, msg.from, msg.content, msg.createdAt || new Date().toISOString(), msg.replyTo ?? null);
|
|
213
|
+
};
|
|
214
|
+
const getUnprocessedInboxMessages = (limit) => {
|
|
215
|
+
const rows = db
|
|
216
|
+
.prepare("SELECT * FROM inbox_messages WHERE processed_at IS NULL ORDER BY received_at ASC LIMIT ?")
|
|
217
|
+
.all(limit);
|
|
218
|
+
return rows.map(deserializeInboxMessage);
|
|
219
|
+
};
|
|
220
|
+
const markInboxMessageProcessed = (id) => {
|
|
221
|
+
db.prepare("UPDATE inbox_messages SET processed_at = datetime('now') WHERE id = ?").run(id);
|
|
222
|
+
};
|
|
223
|
+
// ─── Agent State ─────────────────────────────────────────────
|
|
224
|
+
const getAgentState = () => {
|
|
225
|
+
return getKV("agent_state") || "setup";
|
|
226
|
+
};
|
|
227
|
+
const setAgentState = (state) => {
|
|
228
|
+
setKV("agent_state", state);
|
|
229
|
+
};
|
|
230
|
+
// ─── Close ───────────────────────────────────────────────────
|
|
231
|
+
const close = () => {
|
|
232
|
+
db.close();
|
|
233
|
+
};
|
|
234
|
+
return {
|
|
235
|
+
getIdentity,
|
|
236
|
+
setIdentity,
|
|
237
|
+
insertTurn,
|
|
238
|
+
getRecentTurns,
|
|
239
|
+
getTurnById,
|
|
240
|
+
getTurnCount,
|
|
241
|
+
insertToolCall,
|
|
242
|
+
getToolCallsForTurn,
|
|
243
|
+
getHeartbeatEntries,
|
|
244
|
+
upsertHeartbeatEntry,
|
|
245
|
+
updateHeartbeatLastRun,
|
|
246
|
+
insertTransaction,
|
|
247
|
+
getRecentTransactions,
|
|
248
|
+
getInstalledTools,
|
|
249
|
+
installTool,
|
|
250
|
+
removeTool,
|
|
251
|
+
insertModification,
|
|
252
|
+
getRecentModifications,
|
|
253
|
+
getKV,
|
|
254
|
+
setKV,
|
|
255
|
+
deleteKV,
|
|
256
|
+
getSkills,
|
|
257
|
+
getSkillByName,
|
|
258
|
+
upsertSkill,
|
|
259
|
+
removeSkill,
|
|
260
|
+
getChildren,
|
|
261
|
+
getChildById,
|
|
262
|
+
insertChild,
|
|
263
|
+
updateChildStatus,
|
|
264
|
+
getRegistryEntry,
|
|
265
|
+
setRegistryEntry,
|
|
266
|
+
insertReputation,
|
|
267
|
+
getReputation,
|
|
268
|
+
insertInboxMessage,
|
|
269
|
+
getUnprocessedInboxMessages,
|
|
270
|
+
markInboxMessageProcessed,
|
|
271
|
+
getAgentState,
|
|
272
|
+
setAgentState,
|
|
273
|
+
close,
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
// ─── Deserializers ─────────────────────────────────────────────
|
|
277
|
+
function deserializeTurn(row) {
|
|
278
|
+
return {
|
|
279
|
+
id: row.id,
|
|
280
|
+
timestamp: row.timestamp,
|
|
281
|
+
state: row.state,
|
|
282
|
+
input: row.input ?? undefined,
|
|
283
|
+
inputSource: row.input_source ?? undefined,
|
|
284
|
+
thinking: row.thinking,
|
|
285
|
+
toolCalls: JSON.parse(row.tool_calls || "[]"),
|
|
286
|
+
tokenUsage: JSON.parse(row.token_usage || "{}"),
|
|
287
|
+
costCents: row.cost_cents,
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
function deserializeToolCall(row) {
|
|
291
|
+
return {
|
|
292
|
+
id: row.id,
|
|
293
|
+
name: row.name,
|
|
294
|
+
arguments: JSON.parse(row.arguments || "{}"),
|
|
295
|
+
result: row.result,
|
|
296
|
+
durationMs: row.duration_ms,
|
|
297
|
+
error: row.error ?? undefined,
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
function deserializeHeartbeatEntry(row) {
|
|
301
|
+
return {
|
|
302
|
+
name: row.name,
|
|
303
|
+
schedule: row.schedule,
|
|
304
|
+
task: row.task,
|
|
305
|
+
enabled: !!row.enabled,
|
|
306
|
+
lastRun: row.last_run ?? undefined,
|
|
307
|
+
nextRun: row.next_run ?? undefined,
|
|
308
|
+
params: JSON.parse(row.params || "{}"),
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
function deserializeTransaction(row) {
|
|
312
|
+
return {
|
|
313
|
+
id: row.id,
|
|
314
|
+
type: row.type,
|
|
315
|
+
amountCents: row.amount_cents ?? undefined,
|
|
316
|
+
balanceAfterCents: row.balance_after_cents ?? undefined,
|
|
317
|
+
description: row.description,
|
|
318
|
+
timestamp: row.created_at,
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
function deserializeInstalledTool(row) {
|
|
322
|
+
return {
|
|
323
|
+
id: row.id,
|
|
324
|
+
name: row.name,
|
|
325
|
+
type: row.type,
|
|
326
|
+
config: JSON.parse(row.config || "{}"),
|
|
327
|
+
installedAt: row.installed_at,
|
|
328
|
+
enabled: !!row.enabled,
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
function deserializeModification(row) {
|
|
332
|
+
return {
|
|
333
|
+
id: row.id,
|
|
334
|
+
timestamp: row.timestamp,
|
|
335
|
+
type: row.type,
|
|
336
|
+
description: row.description,
|
|
337
|
+
filePath: row.file_path ?? undefined,
|
|
338
|
+
diff: row.diff ?? undefined,
|
|
339
|
+
reversible: !!row.reversible,
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
|
+
function deserializeSkill(row) {
|
|
343
|
+
return {
|
|
344
|
+
name: row.name,
|
|
345
|
+
description: row.description,
|
|
346
|
+
autoActivate: !!row.auto_activate,
|
|
347
|
+
requires: JSON.parse(row.requires || "{}"),
|
|
348
|
+
instructions: row.instructions,
|
|
349
|
+
source: row.source,
|
|
350
|
+
path: row.path,
|
|
351
|
+
enabled: !!row.enabled,
|
|
352
|
+
installedAt: row.installed_at,
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
function deserializeChild(row) {
|
|
356
|
+
return {
|
|
357
|
+
id: row.id,
|
|
358
|
+
name: row.name,
|
|
359
|
+
address: row.address,
|
|
360
|
+
sandboxId: row.sandbox_id,
|
|
361
|
+
genesisPrompt: row.genesis_prompt,
|
|
362
|
+
creatorMessage: row.creator_message ?? undefined,
|
|
363
|
+
fundedAmountCents: row.funded_amount_cents,
|
|
364
|
+
status: row.status,
|
|
365
|
+
createdAt: row.created_at,
|
|
366
|
+
lastChecked: row.last_checked ?? undefined,
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
function deserializeRegistry(row) {
|
|
370
|
+
return {
|
|
371
|
+
agentId: row.agent_id,
|
|
372
|
+
agentURI: row.agent_uri,
|
|
373
|
+
chain: row.chain,
|
|
374
|
+
contractAddress: row.contract_address,
|
|
375
|
+
txHash: row.tx_hash,
|
|
376
|
+
registeredAt: row.registered_at,
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
function deserializeInboxMessage(row) {
|
|
380
|
+
return {
|
|
381
|
+
id: row.id,
|
|
382
|
+
from: row.from_address,
|
|
383
|
+
to: "",
|
|
384
|
+
content: row.content,
|
|
385
|
+
signedAt: row.received_at,
|
|
386
|
+
createdAt: row.received_at,
|
|
387
|
+
replyTo: row.reply_to ?? undefined,
|
|
388
|
+
};
|
|
389
|
+
}
|
|
390
|
+
function deserializeReputation(row) {
|
|
391
|
+
return {
|
|
392
|
+
id: row.id,
|
|
393
|
+
fromAgent: row.from_agent,
|
|
394
|
+
toAgent: row.to_agent,
|
|
395
|
+
score: row.score,
|
|
396
|
+
comment: row.comment,
|
|
397
|
+
txHash: row.tx_hash ?? undefined,
|
|
398
|
+
timestamp: row.created_at,
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
//# sourceMappingURL=database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/state/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Automaton SQLite Schema
|
|
3
|
+
*
|
|
4
|
+
* All tables for the automaton's persistent state.
|
|
5
|
+
* The database IS the automaton's memory.
|
|
6
|
+
*/
|
|
7
|
+
export declare const SCHEMA_VERSION = 3;
|
|
8
|
+
export declare const CREATE_TABLES = "\n -- Schema version tracking\n CREATE TABLE IF NOT EXISTS schema_version (\n version INTEGER PRIMARY KEY,\n applied_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n -- Core identity key-value store\n CREATE TABLE IF NOT EXISTS identity (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL\n );\n\n -- Agent reasoning turns (the thinking/action log)\n CREATE TABLE IF NOT EXISTS turns (\n id TEXT PRIMARY KEY,\n timestamp TEXT NOT NULL,\n state TEXT NOT NULL,\n input TEXT,\n input_source TEXT,\n thinking TEXT NOT NULL,\n tool_calls TEXT NOT NULL DEFAULT '[]',\n token_usage TEXT NOT NULL DEFAULT '{}',\n cost_cents INTEGER NOT NULL DEFAULT 0,\n created_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n -- Tool call results (denormalized for fast lookup)\n CREATE TABLE IF NOT EXISTS tool_calls (\n id TEXT PRIMARY KEY,\n turn_id TEXT NOT NULL REFERENCES turns(id),\n name TEXT NOT NULL,\n arguments TEXT NOT NULL DEFAULT '{}',\n result TEXT NOT NULL DEFAULT '',\n duration_ms INTEGER NOT NULL DEFAULT 0,\n error TEXT,\n created_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n -- Heartbeat configuration entries\n CREATE TABLE IF NOT EXISTS heartbeat_entries (\n name TEXT PRIMARY KEY,\n schedule TEXT NOT NULL,\n task TEXT NOT NULL,\n enabled INTEGER NOT NULL DEFAULT 1,\n last_run TEXT,\n next_run TEXT,\n params TEXT DEFAULT '{}',\n created_at TEXT NOT NULL DEFAULT (datetime('now')),\n updated_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n -- Financial transaction log\n CREATE TABLE IF NOT EXISTS transactions (\n id TEXT PRIMARY KEY,\n type TEXT NOT NULL,\n amount_cents INTEGER,\n balance_after_cents INTEGER,\n description TEXT NOT NULL DEFAULT '',\n created_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n -- Installed tools and MCP servers\n CREATE TABLE IF NOT EXISTS installed_tools (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n type TEXT NOT NULL,\n config TEXT DEFAULT '{}',\n installed_at TEXT NOT NULL DEFAULT (datetime('now')),\n enabled INTEGER NOT NULL DEFAULT 1\n );\n\n -- Self-modification audit log (append-only)\n CREATE TABLE IF NOT EXISTS modifications (\n id TEXT PRIMARY KEY,\n timestamp TEXT NOT NULL,\n type TEXT NOT NULL,\n description TEXT NOT NULL,\n file_path TEXT,\n diff TEXT,\n reversible INTEGER NOT NULL DEFAULT 1,\n created_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n -- General key-value store for arbitrary state\n CREATE TABLE IF NOT EXISTS kv (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL,\n updated_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n -- Installed skills\n CREATE TABLE IF NOT EXISTS skills (\n name TEXT PRIMARY KEY,\n description TEXT NOT NULL DEFAULT '',\n auto_activate INTEGER NOT NULL DEFAULT 1,\n requires TEXT DEFAULT '{}',\n instructions TEXT NOT NULL DEFAULT '',\n source TEXT NOT NULL DEFAULT 'builtin',\n path TEXT NOT NULL DEFAULT '',\n enabled INTEGER NOT NULL DEFAULT 1,\n installed_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n -- Spawned child automatons\n CREATE TABLE IF NOT EXISTS children (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n address TEXT NOT NULL,\n sandbox_id TEXT NOT NULL,\n genesis_prompt TEXT NOT NULL,\n creator_message TEXT,\n funded_amount_cents INTEGER NOT NULL DEFAULT 0,\n status TEXT NOT NULL DEFAULT 'spawning',\n created_at TEXT NOT NULL DEFAULT (datetime('now')),\n last_checked TEXT\n );\n\n -- ERC-8004 registration state\n CREATE TABLE IF NOT EXISTS registry (\n agent_id TEXT PRIMARY KEY,\n agent_uri TEXT NOT NULL,\n chain TEXT NOT NULL DEFAULT 'eip155:8453',\n contract_address TEXT NOT NULL,\n tx_hash TEXT NOT NULL,\n registered_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n -- Reputation feedback received and given\n CREATE TABLE IF NOT EXISTS reputation (\n id TEXT PRIMARY KEY,\n from_agent TEXT NOT NULL,\n to_agent TEXT NOT NULL,\n score INTEGER NOT NULL,\n comment TEXT NOT NULL DEFAULT '',\n tx_hash TEXT,\n created_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n -- Indices for common queries\n CREATE INDEX IF NOT EXISTS idx_turns_timestamp ON turns(timestamp);\n CREATE INDEX IF NOT EXISTS idx_turns_state ON turns(state);\n CREATE INDEX IF NOT EXISTS idx_tool_calls_turn ON tool_calls(turn_id);\n CREATE INDEX IF NOT EXISTS idx_transactions_type ON transactions(type);\n CREATE INDEX IF NOT EXISTS idx_modifications_type ON modifications(type);\n CREATE INDEX IF NOT EXISTS idx_skills_enabled ON skills(enabled);\n CREATE INDEX IF NOT EXISTS idx_children_status ON children(status);\n CREATE INDEX IF NOT EXISTS idx_reputation_to ON reputation(to_agent);\n\n -- Inbox messages table\n CREATE TABLE IF NOT EXISTS inbox_messages (\n id TEXT PRIMARY KEY,\n from_address TEXT NOT NULL,\n content TEXT NOT NULL,\n received_at TEXT NOT NULL DEFAULT (datetime('now')),\n processed_at TEXT,\n reply_to TEXT\n );\n\n CREATE INDEX IF NOT EXISTS idx_inbox_unprocessed\n ON inbox_messages(received_at) WHERE processed_at IS NULL;\n";
|
|
9
|
+
export declare const MIGRATION_V3 = "\n CREATE TABLE IF NOT EXISTS inbox_messages (\n id TEXT PRIMARY KEY,\n from_address TEXT NOT NULL,\n content TEXT NOT NULL,\n received_at TEXT NOT NULL DEFAULT (datetime('now')),\n processed_at TEXT,\n reply_to TEXT\n );\n\n CREATE INDEX IF NOT EXISTS idx_inbox_unprocessed\n ON inbox_messages(received_at) WHERE processed_at IS NULL;\n";
|
|
10
|
+
export declare const MIGRATION_V2 = "\n CREATE TABLE IF NOT EXISTS skills (\n name TEXT PRIMARY KEY,\n description TEXT NOT NULL DEFAULT '',\n auto_activate INTEGER NOT NULL DEFAULT 1,\n requires TEXT DEFAULT '{}',\n instructions TEXT NOT NULL DEFAULT '',\n source TEXT NOT NULL DEFAULT 'builtin',\n path TEXT NOT NULL DEFAULT '',\n enabled INTEGER NOT NULL DEFAULT 1,\n installed_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n CREATE TABLE IF NOT EXISTS children (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n address TEXT NOT NULL,\n sandbox_id TEXT NOT NULL,\n genesis_prompt TEXT NOT NULL,\n creator_message TEXT,\n funded_amount_cents INTEGER NOT NULL DEFAULT 0,\n status TEXT NOT NULL DEFAULT 'spawning',\n created_at TEXT NOT NULL DEFAULT (datetime('now')),\n last_checked TEXT\n );\n\n CREATE TABLE IF NOT EXISTS registry (\n agent_id TEXT PRIMARY KEY,\n agent_uri TEXT NOT NULL,\n chain TEXT NOT NULL DEFAULT 'eip155:8453',\n contract_address TEXT NOT NULL,\n tx_hash TEXT NOT NULL,\n registered_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n CREATE TABLE IF NOT EXISTS reputation (\n id TEXT PRIMARY KEY,\n from_agent TEXT NOT NULL,\n to_agent TEXT NOT NULL,\n score INTEGER NOT NULL,\n comment TEXT NOT NULL DEFAULT '',\n tx_hash TEXT,\n created_at TEXT NOT NULL DEFAULT (datetime('now'))\n );\n\n CREATE INDEX IF NOT EXISTS idx_skills_enabled ON skills(enabled);\n CREATE INDEX IF NOT EXISTS idx_children_status ON children(status);\n CREATE INDEX IF NOT EXISTS idx_reputation_to ON reputation(to_agent);\n";
|
|
11
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/state/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,eAAO,MAAM,aAAa,8mKAiKzB,CAAC;AAEF,eAAO,MAAM,YAAY,8WAYxB,CAAC;AAEF,eAAO,MAAM,YAAY,qkDAgDxB,CAAC"}
|