@ash-ai/server 0.0.3 → 0.0.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.
Files changed (184) hide show
  1. package/dist/__tests__/attachments.test.d.ts +2 -0
  2. package/dist/__tests__/attachments.test.d.ts.map +1 -0
  3. package/dist/__tests__/attachments.test.js +57 -0
  4. package/dist/__tests__/attachments.test.js.map +1 -0
  5. package/dist/__tests__/bundle.test.d.ts +2 -0
  6. package/dist/__tests__/bundle.test.d.ts.map +1 -0
  7. package/dist/__tests__/bundle.test.js +55 -0
  8. package/dist/__tests__/bundle.test.js.map +1 -0
  9. package/dist/__tests__/coordinator.test.d.ts +2 -0
  10. package/dist/__tests__/coordinator.test.d.ts.map +1 -0
  11. package/dist/__tests__/coordinator.test.js +283 -0
  12. package/dist/__tests__/coordinator.test.js.map +1 -0
  13. package/dist/__tests__/crypto.test.d.ts +2 -0
  14. package/dist/__tests__/crypto.test.d.ts.map +1 -0
  15. package/dist/__tests__/crypto.test.js +72 -0
  16. package/dist/__tests__/crypto.test.js.map +1 -0
  17. package/dist/__tests__/file-store.test.d.ts +2 -0
  18. package/dist/__tests__/file-store.test.d.ts.map +1 -0
  19. package/dist/__tests__/file-store.test.js +105 -0
  20. package/dist/__tests__/file-store.test.js.map +1 -0
  21. package/dist/__tests__/files.test.js +18 -5
  22. package/dist/__tests__/files.test.js.map +1 -1
  23. package/dist/__tests__/multi-tenant.test.js +15 -1
  24. package/dist/__tests__/multi-tenant.test.js.map +1 -1
  25. package/dist/__tests__/openapi.test.js +6 -3
  26. package/dist/__tests__/openapi.test.js.map +1 -1
  27. package/dist/__tests__/queue.test.d.ts +2 -0
  28. package/dist/__tests__/queue.test.d.ts.map +1 -0
  29. package/dist/__tests__/queue.test.js +151 -0
  30. package/dist/__tests__/queue.test.js.map +1 -0
  31. package/dist/__tests__/usage.test.d.ts +2 -0
  32. package/dist/__tests__/usage.test.d.ts.map +1 -0
  33. package/dist/__tests__/usage.test.js +74 -0
  34. package/dist/__tests__/usage.test.js.map +1 -0
  35. package/dist/auth.d.ts +6 -2
  36. package/dist/auth.d.ts.map +1 -1
  37. package/dist/auth.js +23 -5
  38. package/dist/auth.js.map +1 -1
  39. package/dist/crypto.d.ts +14 -0
  40. package/dist/crypto.d.ts.map +1 -0
  41. package/dist/crypto.js +45 -0
  42. package/dist/crypto.js.map +1 -0
  43. package/dist/db/drizzle-db.d.ts +129 -0
  44. package/dist/db/drizzle-db.d.ts.map +1 -0
  45. package/dist/db/drizzle-db.js +789 -0
  46. package/dist/db/drizzle-db.js.map +1 -0
  47. package/dist/db/index.d.ts +129 -3
  48. package/dist/db/index.d.ts.map +1 -1
  49. package/dist/db/index.js +147 -8
  50. package/dist/db/index.js.map +1 -1
  51. package/dist/db/schema.pg.d.ts +1642 -0
  52. package/dist/db/schema.pg.d.ts.map +1 -0
  53. package/dist/db/schema.pg.js +151 -0
  54. package/dist/db/schema.pg.js.map +1 -0
  55. package/dist/db/schema.sqlite.d.ts +1800 -0
  56. package/dist/db/schema.sqlite.d.ts.map +1 -0
  57. package/dist/db/schema.sqlite.js +151 -0
  58. package/dist/db/schema.sqlite.js.map +1 -0
  59. package/dist/index.d.ts +2 -1
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +16 -95
  62. package/dist/index.js.map +1 -1
  63. package/dist/queue/processor.d.ts +51 -0
  64. package/dist/queue/processor.d.ts.map +1 -0
  65. package/dist/queue/processor.js +98 -0
  66. package/dist/queue/processor.js.map +1 -0
  67. package/dist/routes/attachments.d.ts +3 -0
  68. package/dist/routes/attachments.d.ts.map +1 -0
  69. package/dist/routes/attachments.js +168 -0
  70. package/dist/routes/attachments.js.map +1 -0
  71. package/dist/routes/credentials.d.ts +11 -0
  72. package/dist/routes/credentials.d.ts.map +1 -0
  73. package/dist/routes/credentials.js +120 -0
  74. package/dist/routes/credentials.js.map +1 -0
  75. package/dist/routes/files.d.ts.map +1 -1
  76. package/dist/routes/files.js +97 -31
  77. package/dist/routes/files.js.map +1 -1
  78. package/dist/routes/health.d.ts.map +1 -1
  79. package/dist/routes/health.js +9 -1
  80. package/dist/routes/health.js.map +1 -1
  81. package/dist/routes/queue.d.ts +3 -0
  82. package/dist/routes/queue.d.ts.map +1 -0
  83. package/dist/routes/queue.js +144 -0
  84. package/dist/routes/queue.js.map +1 -0
  85. package/dist/routes/runners.d.ts +5 -0
  86. package/dist/routes/runners.d.ts.map +1 -1
  87. package/dist/routes/runners.js +42 -5
  88. package/dist/routes/runners.js.map +1 -1
  89. package/dist/routes/sessions.d.ts +2 -1
  90. package/dist/routes/sessions.d.ts.map +1 -1
  91. package/dist/routes/sessions.js +218 -12
  92. package/dist/routes/sessions.js.map +1 -1
  93. package/dist/routes/usage.d.ts +3 -0
  94. package/dist/routes/usage.d.ts.map +1 -0
  95. package/dist/routes/usage.js +64 -0
  96. package/dist/routes/usage.js.map +1 -0
  97. package/dist/routes/workspace.d.ts +4 -0
  98. package/dist/routes/workspace.d.ts.map +1 -0
  99. package/dist/routes/workspace.js +123 -0
  100. package/dist/routes/workspace.js.map +1 -0
  101. package/dist/runner/coordinator.d.ts +77 -9
  102. package/dist/runner/coordinator.d.ts.map +1 -1
  103. package/dist/runner/coordinator.js +163 -89
  104. package/dist/runner/coordinator.js.map +1 -1
  105. package/dist/runner/local-backend.d.ts +1 -0
  106. package/dist/runner/local-backend.d.ts.map +1 -1
  107. package/dist/runner/local-backend.js +8 -0
  108. package/dist/runner/local-backend.js.map +1 -1
  109. package/dist/runner/remote-backend.d.ts +2 -0
  110. package/dist/runner/remote-backend.d.ts.map +1 -1
  111. package/dist/runner/remote-backend.js +9 -0
  112. package/dist/runner/remote-backend.js.map +1 -1
  113. package/dist/runner/runner-client.d.ts +6 -0
  114. package/dist/runner/runner-client.d.ts.map +1 -1
  115. package/dist/runner/runner-client.js +15 -0
  116. package/dist/runner/runner-client.js.map +1 -1
  117. package/dist/runner/types.d.ts +6 -0
  118. package/dist/runner/types.d.ts.map +1 -1
  119. package/dist/schemas.d.ts.map +1 -1
  120. package/dist/schemas.js +85 -1
  121. package/dist/schemas.js.map +1 -1
  122. package/dist/server.d.ts +31 -0
  123. package/dist/server.d.ts.map +1 -0
  124. package/dist/server.js +176 -0
  125. package/dist/server.js.map +1 -0
  126. package/dist/telemetry/exporter.d.ts +16 -0
  127. package/dist/telemetry/exporter.d.ts.map +1 -0
  128. package/dist/telemetry/exporter.js +89 -0
  129. package/dist/telemetry/exporter.js.map +1 -0
  130. package/dist/usage/extractor.d.ts +18 -0
  131. package/dist/usage/extractor.d.ts.map +1 -0
  132. package/dist/usage/extractor.js +48 -0
  133. package/dist/usage/extractor.js.map +1 -0
  134. package/drizzle/pg/0000_thick_loners.sql +75 -0
  135. package/drizzle/pg/0001_rare_lester.sql +13 -0
  136. package/drizzle/pg/0002_short_shinko_yamashiro.sql +1 -0
  137. package/drizzle/pg/0003_remarkable_mastermind.sql +14 -0
  138. package/drizzle/pg/0004_warm_reaper.sql +18 -0
  139. package/drizzle/pg/0005_overconfident_mole_man.sql +14 -0
  140. package/drizzle/pg/0006_third_shiva.sql +13 -0
  141. package/drizzle/pg/0007_keen_shockwave.sql +2 -0
  142. package/drizzle/pg/meta/0000_snapshot.json +648 -0
  143. package/drizzle/pg/meta/0001_snapshot.json +743 -0
  144. package/drizzle/pg/meta/0002_snapshot.json +749 -0
  145. package/drizzle/pg/meta/0003_snapshot.json +841 -0
  146. package/drizzle/pg/meta/0004_snapshot.json +974 -0
  147. package/drizzle/pg/meta/0005_snapshot.json +1079 -0
  148. package/drizzle/pg/meta/0006_snapshot.json +1193 -0
  149. package/drizzle/pg/meta/0007_snapshot.json +1199 -0
  150. package/drizzle/pg/meta/_journal.json +62 -0
  151. package/drizzle/sqlite/0000_massive_kinsey_walden.sql +75 -0
  152. package/drizzle/sqlite/0001_quiet_phantom_reporter.sql +13 -0
  153. package/drizzle/sqlite/0002_broad_sheva_callister.sql +1 -0
  154. package/drizzle/sqlite/0003_thankful_agent_brand.sql +14 -0
  155. package/drizzle/sqlite/0004_productive_wolverine.sql +18 -0
  156. package/drizzle/sqlite/0005_chilly_carlie_cooper.sql +14 -0
  157. package/drizzle/sqlite/0006_workable_starfox.sql +13 -0
  158. package/drizzle/sqlite/0007_quick_hemingway.sql +19 -0
  159. package/drizzle/sqlite/meta/0000_snapshot.json +503 -0
  160. package/drizzle/sqlite/meta/0001_snapshot.json +587 -0
  161. package/drizzle/sqlite/meta/0002_snapshot.json +594 -0
  162. package/drizzle/sqlite/meta/0003_snapshot.json +685 -0
  163. package/drizzle/sqlite/meta/0004_snapshot.json +807 -0
  164. package/drizzle/sqlite/meta/0005_snapshot.json +897 -0
  165. package/drizzle/sqlite/meta/0006_snapshot.json +981 -0
  166. package/drizzle/sqlite/meta/0007_snapshot.json +988 -0
  167. package/drizzle/sqlite/meta/_journal.json +62 -0
  168. package/package.json +10 -5
  169. package/dist/__tests__/schema.test.d.ts +0 -2
  170. package/dist/__tests__/schema.test.d.ts.map +0 -1
  171. package/dist/__tests__/schema.test.js +0 -31
  172. package/dist/__tests__/schema.test.js.map +0 -1
  173. package/dist/db/dump-schema.d.ts +0 -10
  174. package/dist/db/dump-schema.d.ts.map +0 -1
  175. package/dist/db/dump-schema.js +0 -64
  176. package/dist/db/dump-schema.js.map +0 -1
  177. package/dist/db/pg.d.ts +0 -52
  178. package/dist/db/pg.d.ts.map +0 -1
  179. package/dist/db/pg.js +0 -398
  180. package/dist/db/pg.js.map +0 -1
  181. package/dist/db/sqlite.d.ts +0 -51
  182. package/dist/db/sqlite.d.ts.map +0 -1
  183. package/dist/db/sqlite.js +0 -412
  184. package/dist/db/sqlite.js.map +0 -1
package/dist/db/pg.js DELETED
@@ -1,398 +0,0 @@
1
- import pg from 'pg';
2
- import { randomUUID } from 'node:crypto';
3
- export class PgDb {
4
- pool;
5
- constructor(databaseUrl) {
6
- this.pool = new pg.Pool({ connectionString: databaseUrl });
7
- }
8
- async init() {
9
- // Retry connection with exponential backoff (total ~31s: 1s, 2s, 4s, 8s, 16s)
10
- const maxRetries = 5;
11
- for (let attempt = 0; attempt <= maxRetries; attempt++) {
12
- try {
13
- await this.pool.query('SELECT 1');
14
- break;
15
- }
16
- catch (err) {
17
- if (attempt === maxRetries) {
18
- throw new Error(`Failed to connect to database after ${maxRetries + 1} attempts: ${err.message}`);
19
- }
20
- const delay = 1000 * Math.pow(2, attempt);
21
- console.log(`[db] Connection attempt ${attempt + 1} failed, retrying in ${delay}ms...`);
22
- await new Promise(r => setTimeout(r, delay));
23
- }
24
- }
25
- await this.pool.query(`
26
- CREATE TABLE IF NOT EXISTS agents (
27
- name TEXT PRIMARY KEY,
28
- version INTEGER NOT NULL DEFAULT 1,
29
- path TEXT NOT NULL,
30
- created_at TEXT NOT NULL DEFAULT (now()::TEXT),
31
- updated_at TEXT NOT NULL DEFAULT (now()::TEXT)
32
- )
33
- `);
34
- await this.pool.query(`
35
- CREATE TABLE IF NOT EXISTS sessions (
36
- id TEXT PRIMARY KEY,
37
- agent_name TEXT NOT NULL,
38
- sandbox_id TEXT NOT NULL,
39
- status TEXT NOT NULL DEFAULT 'starting',
40
- runner_id TEXT,
41
- created_at TEXT NOT NULL DEFAULT (now()::TEXT),
42
- last_active_at TEXT NOT NULL DEFAULT (now()::TEXT),
43
- FOREIGN KEY (agent_name) REFERENCES agents(name)
44
- )
45
- `);
46
- await this.pool.query(`
47
- CREATE TABLE IF NOT EXISTS sandboxes (
48
- id TEXT PRIMARY KEY,
49
- session_id TEXT,
50
- agent_name TEXT NOT NULL,
51
- state TEXT NOT NULL DEFAULT 'warming',
52
- workspace_dir TEXT NOT NULL,
53
- created_at TEXT NOT NULL DEFAULT (now()::TEXT),
54
- last_used_at TEXT NOT NULL DEFAULT (now()::TEXT)
55
- )
56
- `);
57
- // Indexes (CREATE INDEX IF NOT EXISTS is supported in Postgres)
58
- await this.pool.query('CREATE INDEX IF NOT EXISTS idx_sandboxes_state ON sandboxes(state)');
59
- await this.pool.query('CREATE INDEX IF NOT EXISTS idx_sandboxes_session ON sandboxes(session_id)');
60
- await this.pool.query('CREATE INDEX IF NOT EXISTS idx_sandboxes_last_used ON sandboxes(last_used_at)');
61
- // Multi-tenancy migration: add tenant_id columns (idempotent via IF NOT EXISTS)
62
- await this.pool.query("ALTER TABLE agents ADD COLUMN IF NOT EXISTS tenant_id TEXT NOT NULL DEFAULT 'default'");
63
- await this.pool.query("ALTER TABLE sessions ADD COLUMN IF NOT EXISTS tenant_id TEXT NOT NULL DEFAULT 'default'");
64
- await this.pool.query("ALTER TABLE sandboxes ADD COLUMN IF NOT EXISTS tenant_id TEXT NOT NULL DEFAULT 'default'");
65
- await this.pool.query('CREATE INDEX IF NOT EXISTS idx_agents_tenant ON agents(tenant_id)');
66
- await this.pool.query('CREATE INDEX IF NOT EXISTS idx_sessions_tenant ON sessions(tenant_id)');
67
- await this.pool.query('CREATE INDEX IF NOT EXISTS idx_sandboxes_tenant ON sandboxes(tenant_id)');
68
- await this.pool.query(`
69
- CREATE TABLE IF NOT EXISTS api_keys (
70
- id TEXT PRIMARY KEY,
71
- tenant_id TEXT NOT NULL,
72
- key_hash TEXT NOT NULL UNIQUE,
73
- label TEXT NOT NULL DEFAULT '',
74
- created_at TEXT NOT NULL DEFAULT (now()::TEXT)
75
- )
76
- `);
77
- await this.pool.query('CREATE INDEX IF NOT EXISTS idx_api_keys_tenant ON api_keys(tenant_id)');
78
- await this.pool.query('CREATE INDEX IF NOT EXISTS idx_api_keys_hash ON api_keys(key_hash)');
79
- await this.pool.query(`
80
- CREATE TABLE IF NOT EXISTS messages (
81
- id TEXT PRIMARY KEY,
82
- tenant_id TEXT NOT NULL DEFAULT 'default',
83
- session_id TEXT NOT NULL,
84
- role TEXT NOT NULL,
85
- content TEXT NOT NULL,
86
- sequence INTEGER NOT NULL,
87
- created_at TEXT NOT NULL DEFAULT (now()::TEXT),
88
- UNIQUE(tenant_id, session_id, sequence)
89
- )
90
- `);
91
- await this.pool.query('CREATE INDEX IF NOT EXISTS idx_messages_session ON messages(tenant_id, session_id, sequence)');
92
- await this.pool.query(`
93
- CREATE TABLE IF NOT EXISTS session_events (
94
- id TEXT PRIMARY KEY,
95
- tenant_id TEXT NOT NULL DEFAULT 'default',
96
- session_id TEXT NOT NULL,
97
- type TEXT NOT NULL,
98
- data TEXT,
99
- sequence INTEGER NOT NULL,
100
- created_at TEXT NOT NULL DEFAULT (now()::TEXT),
101
- UNIQUE(tenant_id, session_id, sequence)
102
- )
103
- `);
104
- await this.pool.query('CREATE INDEX IF NOT EXISTS idx_session_events_session ON session_events(tenant_id, session_id, sequence)');
105
- await this.pool.query('CREATE INDEX IF NOT EXISTS idx_session_events_type ON session_events(tenant_id, session_id, type)');
106
- // Add UNIQUE constraints for existing tables (idempotent)
107
- try {
108
- await this.pool.query('ALTER TABLE messages ADD CONSTRAINT uq_messages_session_seq UNIQUE(tenant_id, session_id, sequence)');
109
- }
110
- catch { /* already exists */ }
111
- try {
112
- await this.pool.query('ALTER TABLE session_events ADD CONSTRAINT uq_session_events_session_seq UNIQUE(tenant_id, session_id, sequence)');
113
- }
114
- catch { /* already exists */ }
115
- // Agent UUID migration: change PK from name to UUID id, add UNIQUE(tenant_id, name), drop FK from sessions
116
- const agentCols = await this.pool.query("SELECT column_name FROM information_schema.columns WHERE table_name = 'agents' AND column_name = 'id'");
117
- if (agentCols.rows.length === 0) {
118
- await this.pool.query("ALTER TABLE agents ADD COLUMN id TEXT");
119
- await this.pool.query("UPDATE agents SET id = gen_random_uuid()::TEXT WHERE id IS NULL");
120
- await this.pool.query("ALTER TABLE agents ALTER COLUMN id SET NOT NULL");
121
- await this.pool.query("ALTER TABLE agents DROP CONSTRAINT agents_pkey");
122
- await this.pool.query("ALTER TABLE agents ADD PRIMARY KEY (id)");
123
- await this.pool.query("CREATE UNIQUE INDEX IF NOT EXISTS idx_agents_tenant_name ON agents(tenant_id, name)");
124
- try {
125
- await this.pool.query("ALTER TABLE sessions DROP CONSTRAINT sessions_agent_name_fkey");
126
- }
127
- catch { /* already dropped */ }
128
- }
129
- }
130
- // -- Agents -----------------------------------------------------------------
131
- async upsertAgent(name, path, tenantId = 'default') {
132
- const existing = await this.pool.query('SELECT id, version FROM agents WHERE tenant_id = $1 AND name = $2', [tenantId, name]);
133
- const version = existing.rows.length > 0 ? existing.rows[0].version + 1 : 1;
134
- const id = existing.rows.length > 0 ? existing.rows[0].id : randomUUID();
135
- const now = new Date().toISOString();
136
- await this.pool.query(`
137
- INSERT INTO agents (id, tenant_id, name, version, path, created_at, updated_at)
138
- VALUES ($1, $2, $3, $4, $5, $6, $7)
139
- ON CONFLICT(tenant_id, name) DO UPDATE SET version = $4, path = $5, updated_at = $7
140
- `, [id, tenantId, name, version, path, now, now]);
141
- return { id, name, tenantId, version, path, createdAt: now, updatedAt: now };
142
- }
143
- async getAgent(name, tenantId = 'default') {
144
- const result = await this.pool.query('SELECT * FROM agents WHERE tenant_id = $1 AND name = $2', [tenantId, name]);
145
- const row = result.rows[0];
146
- if (!row)
147
- return null;
148
- return { id: row.id, name: row.name, tenantId: row.tenant_id, version: row.version, path: row.path, createdAt: row.created_at, updatedAt: row.updated_at };
149
- }
150
- async listAgents(tenantId = 'default') {
151
- const result = await this.pool.query('SELECT * FROM agents WHERE tenant_id = $1 ORDER BY name', [tenantId]);
152
- return result.rows.map((r) => ({ id: r.id, name: r.name, tenantId: r.tenant_id, version: r.version, path: r.path, createdAt: r.created_at, updatedAt: r.updated_at }));
153
- }
154
- async deleteAgent(name, tenantId = 'default') {
155
- await this.pool.query('DELETE FROM sessions WHERE agent_name = $1 AND tenant_id = $2', [name, tenantId]);
156
- const result = await this.pool.query('DELETE FROM agents WHERE name = $1 AND tenant_id = $2', [name, tenantId]);
157
- return (result.rowCount ?? 0) > 0;
158
- }
159
- // -- Sessions ---------------------------------------------------------------
160
- async insertSession(id, agentName, sandboxId, tenantId = 'default') {
161
- const now = new Date().toISOString();
162
- await this.pool.query(`
163
- INSERT INTO sessions (id, tenant_id, agent_name, sandbox_id, status, created_at, last_active_at)
164
- VALUES ($1, $2, $3, $4, 'starting', $5, $6)
165
- `, [id, tenantId, agentName, sandboxId, now, now]);
166
- return { id, tenantId, agentName, sandboxId, status: 'starting', createdAt: now, lastActiveAt: now };
167
- }
168
- async updateSessionStatus(id, status) {
169
- const now = new Date().toISOString();
170
- await this.pool.query('UPDATE sessions SET status = $1, last_active_at = $2 WHERE id = $3', [status, now, id]);
171
- }
172
- async updateSessionSandbox(id, sandboxId) {
173
- const now = new Date().toISOString();
174
- await this.pool.query('UPDATE sessions SET sandbox_id = $1, last_active_at = $2 WHERE id = $3', [sandboxId, now, id]);
175
- }
176
- async updateSessionRunner(id, runnerId) {
177
- const now = new Date().toISOString();
178
- await this.pool.query('UPDATE sessions SET runner_id = $1, last_active_at = $2 WHERE id = $3', [runnerId, now, id]);
179
- }
180
- async getSession(id) {
181
- const result = await this.pool.query('SELECT * FROM sessions WHERE id = $1', [id]);
182
- const row = result.rows[0];
183
- if (!row)
184
- return null;
185
- return { id: row.id, tenantId: row.tenant_id, agentName: row.agent_name, sandboxId: row.sandbox_id, status: row.status, runnerId: row.runner_id ?? null, createdAt: row.created_at, lastActiveAt: row.last_active_at };
186
- }
187
- async listSessions(tenantId = 'default', agent) {
188
- const result = agent
189
- ? await this.pool.query('SELECT * FROM sessions WHERE tenant_id = $1 AND agent_name = $2 ORDER BY created_at DESC', [tenantId, agent])
190
- : await this.pool.query('SELECT * FROM sessions WHERE tenant_id = $1 ORDER BY created_at DESC', [tenantId]);
191
- return result.rows.map((r) => ({ id: r.id, tenantId: r.tenant_id, agentName: r.agent_name, sandboxId: r.sandbox_id, status: r.status, runnerId: r.runner_id ?? null, createdAt: r.created_at, lastActiveAt: r.last_active_at }));
192
- }
193
- async listSessionsByRunner(runnerId) {
194
- const result = await this.pool.query('SELECT * FROM sessions WHERE runner_id = $1 ORDER BY created_at DESC', [runnerId]);
195
- return result.rows.map((r) => ({ id: r.id, tenantId: r.tenant_id, agentName: r.agent_name, sandboxId: r.sandbox_id, status: r.status, runnerId: r.runner_id ?? null, createdAt: r.created_at, lastActiveAt: r.last_active_at }));
196
- }
197
- async touchSession(id) {
198
- const now = new Date().toISOString();
199
- await this.pool.query('UPDATE sessions SET last_active_at = $1 WHERE id = $2', [now, id]);
200
- }
201
- // -- Sandboxes --------------------------------------------------------------
202
- async insertSandbox(id, agentName, workspaceDir, sessionId, tenantId = 'default') {
203
- const now = new Date().toISOString();
204
- await this.pool.query(`
205
- INSERT INTO sandboxes (id, tenant_id, agent_name, workspace_dir, session_id, state, created_at, last_used_at)
206
- VALUES ($1, $2, $3, $4, $5, 'warming', $6, $7)
207
- `, [id, tenantId, agentName, workspaceDir, sessionId ?? null, now, now]);
208
- }
209
- async updateSandboxState(id, state) {
210
- await this.pool.query('UPDATE sandboxes SET state = $1 WHERE id = $2', [state, id]);
211
- }
212
- async updateSandboxSession(id, sessionId) {
213
- await this.pool.query('UPDATE sandboxes SET session_id = $1 WHERE id = $2', [sessionId, id]);
214
- }
215
- async touchSandbox(id) {
216
- const now = new Date().toISOString();
217
- await this.pool.query('UPDATE sandboxes SET last_used_at = $1 WHERE id = $2', [now, id]);
218
- }
219
- async getSandbox(id) {
220
- const result = await this.pool.query('SELECT * FROM sandboxes WHERE id = $1', [id]);
221
- const row = result.rows[0];
222
- if (!row)
223
- return null;
224
- return {
225
- id: row.id,
226
- sessionId: row.session_id,
227
- agentName: row.agent_name,
228
- state: row.state,
229
- workspaceDir: row.workspace_dir,
230
- createdAt: row.created_at,
231
- lastUsedAt: row.last_used_at,
232
- };
233
- }
234
- async countSandboxes() {
235
- const result = await this.pool.query('SELECT COUNT(*) as count FROM sandboxes');
236
- return parseInt(result.rows[0].count, 10);
237
- }
238
- async getBestEvictionCandidate() {
239
- const result = await this.pool.query(`
240
- SELECT * FROM sandboxes
241
- WHERE state IN ('cold', 'warm', 'waiting')
242
- ORDER BY
243
- CASE state WHEN 'cold' THEN 0 WHEN 'warm' THEN 1 WHEN 'waiting' THEN 2 END,
244
- last_used_at ASC
245
- LIMIT 1
246
- `);
247
- const row = result.rows[0];
248
- if (!row)
249
- return null;
250
- return {
251
- id: row.id,
252
- sessionId: row.session_id,
253
- agentName: row.agent_name,
254
- state: row.state,
255
- workspaceDir: row.workspace_dir,
256
- createdAt: row.created_at,
257
- lastUsedAt: row.last_used_at,
258
- };
259
- }
260
- async getIdleSandboxes(olderThan) {
261
- const result = await this.pool.query("SELECT * FROM sandboxes WHERE state = 'waiting' AND last_used_at < $1 ORDER BY last_used_at ASC", [olderThan]);
262
- return result.rows.map((row) => ({
263
- id: row.id,
264
- sessionId: row.session_id,
265
- agentName: row.agent_name,
266
- state: row.state,
267
- workspaceDir: row.workspace_dir,
268
- createdAt: row.created_at,
269
- lastUsedAt: row.last_used_at,
270
- }));
271
- }
272
- async deleteSandbox(id) {
273
- await this.pool.query('DELETE FROM sandboxes WHERE id = $1', [id]);
274
- }
275
- async markAllSandboxesCold() {
276
- const result = await this.pool.query("UPDATE sandboxes SET state = 'cold' WHERE state != 'cold'");
277
- return result.rowCount ?? 0;
278
- }
279
- // -- Messages --------------------------------------------------------------
280
- async insertMessage(sessionId, role, content, tenantId = 'default') {
281
- const id = randomUUID();
282
- const now = new Date().toISOString();
283
- // Atomic sequence assignment — no TOCTOU race under concurrent writes
284
- const result = await this.pool.query(`
285
- INSERT INTO messages (id, tenant_id, session_id, role, content, sequence, created_at)
286
- VALUES ($1, $2, $3, $4, $5, COALESCE((SELECT MAX(sequence) FROM messages WHERE tenant_id = $2 AND session_id = $3), 0) + 1, $6)
287
- RETURNING sequence
288
- `, [id, tenantId, sessionId, role, content, now]);
289
- return { id, sessionId, tenantId, role, content, sequence: result.rows[0].sequence, createdAt: now };
290
- }
291
- async listMessages(sessionId, tenantId = 'default', opts) {
292
- const limit = opts?.limit ?? 100;
293
- const afterSeq = opts?.afterSequence ?? 0;
294
- const result = await this.pool.query('SELECT * FROM messages WHERE tenant_id = $1 AND session_id = $2 AND sequence > $3 ORDER BY sequence ASC LIMIT $4', [tenantId, sessionId, afterSeq, limit]);
295
- return result.rows.map((r) => ({
296
- id: r.id,
297
- sessionId: r.session_id,
298
- tenantId: r.tenant_id,
299
- role: r.role,
300
- content: r.content,
301
- sequence: r.sequence,
302
- createdAt: r.created_at,
303
- }));
304
- }
305
- // -- Session Events ---------------------------------------------------------
306
- async insertSessionEvent(sessionId, type, data, tenantId = 'default') {
307
- const id = randomUUID();
308
- const now = new Date().toISOString();
309
- // Atomic sequence assignment — no TOCTOU race under concurrent writes
310
- const result = await this.pool.query(`
311
- INSERT INTO session_events (id, tenant_id, session_id, type, data, sequence, created_at)
312
- VALUES ($1, $2, $3, $4, $5, COALESCE((SELECT MAX(sequence) FROM session_events WHERE tenant_id = $2 AND session_id = $3), 0) + 1, $6)
313
- RETURNING sequence
314
- `, [id, tenantId, sessionId, type, data, now]);
315
- return { id, sessionId, tenantId, type, data, sequence: result.rows[0].sequence, createdAt: now };
316
- }
317
- async insertSessionEvents(events) {
318
- if (events.length === 0)
319
- return [];
320
- if (events.length === 1)
321
- return [await this.insertSessionEvent(events[0].sessionId, events[0].type, events[0].data, events[0].tenantId)];
322
- // All events in a single transaction with sequential sequence numbers
323
- const client = await this.pool.connect();
324
- try {
325
- await client.query('BEGIN');
326
- const results = [];
327
- for (const ev of events) {
328
- const id = randomUUID();
329
- const now = new Date().toISOString();
330
- const tenantId = ev.tenantId ?? 'default';
331
- const result = await client.query(`
332
- INSERT INTO session_events (id, tenant_id, session_id, type, data, sequence, created_at)
333
- VALUES ($1, $2, $3, $4, $5, COALESCE((SELECT MAX(sequence) FROM session_events WHERE tenant_id = $2 AND session_id = $3), 0) + 1, $6)
334
- RETURNING sequence
335
- `, [id, tenantId, ev.sessionId, ev.type, ev.data, now]);
336
- results.push({ id, sessionId: ev.sessionId, tenantId, type: ev.type, data: ev.data, sequence: result.rows[0].sequence, createdAt: now });
337
- }
338
- await client.query('COMMIT');
339
- return results;
340
- }
341
- catch (err) {
342
- await client.query('ROLLBACK');
343
- throw err;
344
- }
345
- finally {
346
- client.release();
347
- }
348
- }
349
- async listSessionEvents(sessionId, tenantId = 'default', opts) {
350
- const limit = opts?.limit ?? 200;
351
- const afterSeq = opts?.afterSequence ?? 0;
352
- let result;
353
- if (opts?.type) {
354
- result = await this.pool.query('SELECT * FROM session_events WHERE tenant_id = $1 AND session_id = $2 AND sequence > $3 AND type = $4 ORDER BY sequence ASC LIMIT $5', [tenantId, sessionId, afterSeq, opts.type, limit]);
355
- }
356
- else {
357
- result = await this.pool.query('SELECT * FROM session_events WHERE tenant_id = $1 AND session_id = $2 AND sequence > $3 ORDER BY sequence ASC LIMIT $4', [tenantId, sessionId, afterSeq, limit]);
358
- }
359
- return result.rows.map((r) => ({
360
- id: r.id,
361
- sessionId: r.session_id,
362
- tenantId: r.tenant_id,
363
- type: r.type,
364
- data: r.data,
365
- sequence: r.sequence,
366
- createdAt: r.created_at,
367
- }));
368
- }
369
- // -- API Keys --------------------------------------------------------------
370
- async getApiKeyByHash(keyHash) {
371
- const result = await this.pool.query('SELECT * FROM api_keys WHERE key_hash = $1', [keyHash]);
372
- const row = result.rows[0];
373
- if (!row)
374
- return null;
375
- return { id: row.id, tenantId: row.tenant_id, keyHash: row.key_hash, label: row.label, createdAt: row.created_at };
376
- }
377
- async insertApiKey(id, tenantId, keyHash, label) {
378
- const now = new Date().toISOString();
379
- await this.pool.query(`
380
- INSERT INTO api_keys (id, tenant_id, key_hash, label, created_at)
381
- VALUES ($1, $2, $3, $4, $5)
382
- `, [id, tenantId, keyHash, label, now]);
383
- return { id, tenantId, keyHash, label, createdAt: now };
384
- }
385
- async listApiKeysByTenant(tenantId) {
386
- const result = await this.pool.query('SELECT * FROM api_keys WHERE tenant_id = $1 ORDER BY created_at DESC', [tenantId]);
387
- return result.rows.map((r) => ({ id: r.id, tenantId: r.tenant_id, keyHash: r.key_hash, label: r.label, createdAt: r.created_at }));
388
- }
389
- async deleteApiKey(id) {
390
- const result = await this.pool.query('DELETE FROM api_keys WHERE id = $1', [id]);
391
- return (result.rowCount ?? 0) > 0;
392
- }
393
- // -- Lifecycle --------------------------------------------------------------
394
- async close() {
395
- await this.pool.end();
396
- }
397
- }
398
- //# sourceMappingURL=pg.js.map
package/dist/db/pg.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"pg.js","sourceRoot":"","sources":["../../src/db/pg.ts"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- import type { Agent, Session, SessionStatus, SandboxRecord, SandboxState, ApiKey, Message, SessionEvent, SessionEventType } from '@ash-ai/shared';
2
- import type { Db } from './index.js';
3
- export declare class SqliteDb implements Db {
4
- private db;
5
- constructor(dataDir: string);
6
- upsertAgent(name: string, path: string, tenantId?: string): Promise<Agent>;
7
- getAgent(name: string, tenantId?: string): Promise<Agent | null>;
8
- listAgents(tenantId?: string): Promise<Agent[]>;
9
- deleteAgent(name: string, tenantId?: string): Promise<boolean>;
10
- insertSession(id: string, agentName: string, sandboxId: string, tenantId?: string): Promise<Session>;
11
- updateSessionStatus(id: string, status: SessionStatus): Promise<void>;
12
- updateSessionSandbox(id: string, sandboxId: string): Promise<void>;
13
- updateSessionRunner(id: string, runnerId: string | null): Promise<void>;
14
- getSession(id: string): Promise<Session | null>;
15
- listSessions(tenantId?: string, agent?: string): Promise<Session[]>;
16
- listSessionsByRunner(runnerId: string): Promise<Session[]>;
17
- touchSession(id: string): Promise<void>;
18
- insertSandbox(id: string, agentName: string, workspaceDir: string, sessionId?: string, tenantId?: string): Promise<void>;
19
- updateSandboxState(id: string, state: SandboxState): Promise<void>;
20
- updateSandboxSession(id: string, sessionId: string | null): Promise<void>;
21
- touchSandbox(id: string): Promise<void>;
22
- getSandbox(id: string): Promise<SandboxRecord | null>;
23
- countSandboxes(): Promise<number>;
24
- getBestEvictionCandidate(): Promise<SandboxRecord | null>;
25
- getIdleSandboxes(olderThan: string): Promise<SandboxRecord[]>;
26
- deleteSandbox(id: string): Promise<void>;
27
- markAllSandboxesCold(): Promise<number>;
28
- insertMessage(sessionId: string, role: 'user' | 'assistant', content: string, tenantId?: string): Promise<Message>;
29
- listMessages(sessionId: string, tenantId?: string, opts?: {
30
- limit?: number;
31
- afterSequence?: number;
32
- }): Promise<Message[]>;
33
- insertSessionEvent(sessionId: string, type: SessionEventType, data: string | null, tenantId?: string): Promise<SessionEvent>;
34
- insertSessionEvents(events: Array<{
35
- sessionId: string;
36
- type: SessionEventType;
37
- data: string | null;
38
- tenantId?: string;
39
- }>): Promise<SessionEvent[]>;
40
- listSessionEvents(sessionId: string, tenantId?: string, opts?: {
41
- limit?: number;
42
- afterSequence?: number;
43
- type?: SessionEventType;
44
- }): Promise<SessionEvent[]>;
45
- getApiKeyByHash(keyHash: string): Promise<ApiKey | null>;
46
- insertApiKey(id: string, tenantId: string, keyHash: string, label: string): Promise<ApiKey>;
47
- listApiKeysByTenant(tenantId: string): Promise<ApiKey[]>;
48
- deleteApiKey(id: string): Promise<boolean>;
49
- close(): Promise<void>;
50
- }
51
- //# sourceMappingURL=sqlite.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/db/sqlite.ts"],"names":[],"mappings":"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"}