@sema-agent/server 1.247.0 → 1.248.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.
@@ -0,0 +1,48 @@
1
+ import type { Pool } from "mysql2/promise";
2
+ import { type BackgroundAgentRecord, type BackgroundAgentRowSummary, type BackgroundAgentStore, type PgQueryFn } from "@sema-agent/core";
3
+ export declare const BACKGROUND_AGENT_TABLE = "background_agents";
4
+ type ReapOpts = {
5
+ maxAgeMs?: number;
6
+ keep?: number;
7
+ staleRunningMaxAgeMs?: number;
8
+ };
9
+ type ListOpts = {
10
+ status?: BackgroundAgentRecord["status"];
11
+ limit?: number;
12
+ };
13
+ export declare function ensureTiDBBackgroundAgentSchema(pool: Pool): Promise<void>;
14
+ export declare function ensurePgBackgroundAgentSchema(q: PgQueryFn): Promise<void>;
15
+ export declare class TiDBBackgroundAgentStore implements BackgroundAgentStore {
16
+ private readonly pool;
17
+ constructor(pool: Pool);
18
+ put(record: BackgroundAgentRecord): Promise<void>;
19
+ get(handle: string, scope: string): Promise<BackgroundAgentRecord | null>;
20
+ update(handle: string, scope: string, record: BackgroundAgentRecord, expect: {
21
+ rev: number;
22
+ }): Promise<boolean>;
23
+ listBySession(scope: string, sessionId: string, opts?: ListOpts): Promise<BackgroundAgentRowSummary[]>;
24
+ listByScope(scope: string, opts?: ListOpts): Promise<BackgroundAgentRowSummary[]>;
25
+ delete(handle: string, scope: string, expect?: {
26
+ rev: number;
27
+ }): Promise<boolean>;
28
+ reap(scope: string, now: number, opts?: ReapOpts): Promise<number>;
29
+ listReapScopes(): Promise<string[]>;
30
+ }
31
+ export declare class PgBackgroundAgentStore implements BackgroundAgentStore {
32
+ private readonly q;
33
+ constructor(q: PgQueryFn);
34
+ put(record: BackgroundAgentRecord): Promise<void>;
35
+ get(handle: string, scope: string): Promise<BackgroundAgentRecord | null>;
36
+ update(handle: string, scope: string, record: BackgroundAgentRecord, expect: {
37
+ rev: number;
38
+ }): Promise<boolean>;
39
+ listBySession(scope: string, sessionId: string, opts?: ListOpts): Promise<BackgroundAgentRowSummary[]>;
40
+ listByScope(scope: string, opts?: ListOpts): Promise<BackgroundAgentRowSummary[]>;
41
+ delete(handle: string, scope: string, expect?: {
42
+ rev: number;
43
+ }): Promise<boolean>;
44
+ reap(scope: string, now: number, opts?: ReapOpts): Promise<number>;
45
+ listReapScopes(): Promise<string[]>;
46
+ }
47
+ export {};
48
+ //# sourceMappingURL=background-agent-store-sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-agent-store-sql.d.ts","sourceRoot":"","sources":["../../src/plugins/background-agent-store-sql.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,262 @@
1
+ import { BackgroundAgentStoreError, } from "@sema-agent/core";
2
+ import { pgSafeJsonStringify, pgSanitizeText } from "./pg-safe-json.js";
3
+ export const BACKGROUND_AGENT_TABLE = "background_agents";
4
+ const SUMMARY_COLS = "handle, owner, session_scoped, session_id, parent_session_id, name, agent_type, status, spawned_at_ms, updated_at_ms, settled_at_ms, usage_json";
5
+ const PROJ_COLS = "scope, owner, session_scoped, session_id, parent_session_id, session_anchor, name, agent_type, status, spawned_at_ms, updated_at_ms, settled_at_ms, usage_json, rev, record_json";
6
+ const PROJ_N = PROJ_COLS.split(", ").length;
7
+ function assertScope(record) {
8
+ if (record.scope === undefined || record.scope === "") {
9
+ throw new Error("BackgroundAgentStore.put: refusing a row without a scope (world-readable through the fallback)");
10
+ }
11
+ }
12
+ function storedForm(record, handle, scope, rev) {
13
+ return { ...record, handle, scope, rev };
14
+ }
15
+ function projParams(stored, json, text) {
16
+ return [
17
+ stored.scope,
18
+ stored.owner,
19
+ stored.sessionScoped ? 1 : 0,
20
+ stored.sessionId ?? null,
21
+ stored.parentSessionId ?? null,
22
+ (stored.sessionScoped ? stored.owner : stored.parentSessionId) ?? null,
23
+ stored.name !== undefined ? text(stored.name).slice(0, 255) : null,
24
+ stored.agentType !== undefined ? text(stored.agentType).slice(0, 190) : null,
25
+ stored.status,
26
+ stored.spawnedAt,
27
+ stored.updatedAt,
28
+ stored.settledAt ?? null,
29
+ stored.usage !== undefined ? json(stored.usage) : null,
30
+ stored.rev,
31
+ json(stored),
32
+ ];
33
+ }
34
+ function rowToSummary(r) {
35
+ return {
36
+ handle: String(r.handle),
37
+ owner: String(r.owner),
38
+ sessionScoped: Boolean(Number(r.session_scoped)) || r.session_scoped === true,
39
+ ...(r.session_id !== null && r.session_id !== undefined ? { sessionId: String(r.session_id) } : {}),
40
+ ...(r.parent_session_id !== null && r.parent_session_id !== undefined ? { parentSessionId: String(r.parent_session_id) } : {}),
41
+ ...(r.name !== null && r.name !== undefined ? { name: String(r.name) } : {}),
42
+ ...(r.agent_type !== null && r.agent_type !== undefined ? { agentType: String(r.agent_type) } : {}),
43
+ status: String(r.status),
44
+ spawnedAt: Number(r.spawned_at_ms),
45
+ updatedAt: Number(r.updated_at_ms),
46
+ ...(r.settled_at_ms !== null && r.settled_at_ms !== undefined ? { settledAt: Number(r.settled_at_ms) } : {}),
47
+ ...(r.usage_json !== null && r.usage_json !== undefined
48
+ ? { usage: JSON.parse(String(r.usage_json)) }
49
+ : {}),
50
+ };
51
+ }
52
+ function flippedForm(live, now) {
53
+ return {
54
+ ...live,
55
+ status: "failed",
56
+ stoppedBy: "system",
57
+ summary: live.summary ?? "host process interrupted (stale running row reaped)",
58
+ settledAt: now,
59
+ updatedAt: now,
60
+ };
61
+ }
62
+ function doomedHandles(rows, now, opts) {
63
+ const doomed = new Set();
64
+ if (opts.maxAgeMs !== undefined) {
65
+ for (const r of rows) {
66
+ if ((r.settledAt ?? r.spawnedAt) < now - opts.maxAgeMs)
67
+ doomed.add(r.handle);
68
+ }
69
+ }
70
+ if (opts.keep !== undefined) {
71
+ for (const r of rows.slice(Math.max(0, opts.keep)))
72
+ doomed.add(r.handle);
73
+ }
74
+ return doomed;
75
+ }
76
+ function reapInert(opts) {
77
+ return !opts || (opts.maxAgeMs === undefined && opts.keep === undefined && opts.staleRunningMaxAgeMs === undefined);
78
+ }
79
+ function limitClause(limit) {
80
+ if (limit === undefined || limit === Infinity)
81
+ return "";
82
+ const n = Math.floor(limit);
83
+ return ` LIMIT ${Number.isFinite(n) ? Math.max(0, n) : 0}`;
84
+ }
85
+ export async function ensureTiDBBackgroundAgentSchema(pool) {
86
+ await pool.query(`CREATE TABLE IF NOT EXISTS ${BACKGROUND_AGENT_TABLE} (
87
+ scope_key VARBINARY(190) NOT NULL,
88
+ handle VARBINARY(190) NOT NULL,
89
+ scope VARCHAR(190) NOT NULL,
90
+ owner VARCHAR(190) NOT NULL,
91
+ session_scoped TINYINT NOT NULL,
92
+ session_id VARCHAR(190) NULL,
93
+ parent_session_id VARCHAR(190) NULL,
94
+ session_anchor VARCHAR(190) NULL,
95
+ name VARCHAR(255) NULL,
96
+ agent_type VARCHAR(190) NULL,
97
+ status VARCHAR(16) NOT NULL,
98
+ spawned_at_ms BIGINT NOT NULL,
99
+ updated_at_ms BIGINT NOT NULL,
100
+ settled_at_ms BIGINT NULL,
101
+ usage_json TEXT NULL,
102
+ rev BIGINT NOT NULL,
103
+ record_json LONGTEXT NOT NULL,
104
+ PRIMARY KEY (scope_key, handle),
105
+ KEY idx_bga_anchor (scope_key, session_anchor, spawned_at_ms),
106
+ KEY idx_bga_status (scope_key, status, updated_at_ms)
107
+ ) COLLATE utf8mb4_bin`);
108
+ }
109
+ export async function ensurePgBackgroundAgentSchema(q) {
110
+ await q(`CREATE TABLE IF NOT EXISTS ${BACKGROUND_AGENT_TABLE} (
111
+ scope_key VARCHAR(190) COLLATE "C" NOT NULL,
112
+ handle VARCHAR(190) COLLATE "C" NOT NULL,
113
+ scope VARCHAR(190) NOT NULL,
114
+ owner VARCHAR(190) NOT NULL,
115
+ session_scoped BOOLEAN NOT NULL,
116
+ session_id VARCHAR(190),
117
+ parent_session_id VARCHAR(190),
118
+ session_anchor VARCHAR(190),
119
+ name VARCHAR(255),
120
+ agent_type VARCHAR(190),
121
+ status VARCHAR(16) NOT NULL,
122
+ spawned_at_ms BIGINT NOT NULL,
123
+ updated_at_ms BIGINT NOT NULL,
124
+ settled_at_ms BIGINT,
125
+ usage_json TEXT,
126
+ rev BIGINT NOT NULL,
127
+ record_json TEXT NOT NULL,
128
+ PRIMARY KEY (scope_key, handle)
129
+ )`);
130
+ await q(`CREATE INDEX IF NOT EXISTS idx_bga_anchor ON ${BACKGROUND_AGENT_TABLE} (scope_key, session_anchor, spawned_at_ms)`);
131
+ await q(`CREATE INDEX IF NOT EXISTS idx_bga_status ON ${BACKGROUND_AGENT_TABLE} (scope_key, status, updated_at_ms)`);
132
+ }
133
+ export class TiDBBackgroundAgentStore {
134
+ pool;
135
+ constructor(pool) {
136
+ this.pool = pool;
137
+ }
138
+ async put(record) {
139
+ assertScope(record);
140
+ const stored = storedForm(record, record.handle, record.scope, record.rev ?? 0);
141
+ try {
142
+ await this.pool.query(`INSERT INTO ${BACKGROUND_AGENT_TABLE} (scope_key, handle, ${PROJ_COLS}) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [stored.scope, stored.handle, ...projParams(stored, JSON.stringify, (t) => t)]);
143
+ }
144
+ catch (e) {
145
+ if (e.code === "ER_DUP_ENTRY") {
146
+ throw new BackgroundAgentStoreError("agent_record.already_exists", "agent record already exists");
147
+ }
148
+ throw e;
149
+ }
150
+ }
151
+ async get(handle, scope) {
152
+ const [rows] = (await this.pool.query(`SELECT record_json FROM ${BACKGROUND_AGENT_TABLE} WHERE scope_key = ? AND handle = ?`, [scope, handle]));
153
+ return rows.length > 0 ? JSON.parse(String(rows[0].record_json)) : null;
154
+ }
155
+ async update(handle, scope, record, expect) {
156
+ const stored = storedForm(record, handle, scope, expect.rev + 1);
157
+ const [res] = (await this.pool.query(`UPDATE ${BACKGROUND_AGENT_TABLE} SET ${PROJ_COLS.split(", ").map((c) => `${c} = ?`).join(", ")}
158
+ WHERE scope_key = ? AND handle = ? AND rev = ?`, [...projParams(stored, JSON.stringify, (t) => t), scope, handle, expect.rev]));
159
+ return res.affectedRows === 1;
160
+ }
161
+ async listBySession(scope, sessionId, opts) {
162
+ const [rows] = (await this.pool.query(`SELECT ${SUMMARY_COLS} FROM ${BACKGROUND_AGENT_TABLE} WHERE scope_key = ? AND session_anchor = ?${opts?.status !== undefined ? " AND status = ?" : ""}
163
+ ORDER BY spawned_at_ms DESC, handle DESC${limitClause(opts?.limit)}`, opts?.status !== undefined ? [scope, sessionId, opts.status] : [scope, sessionId]));
164
+ return rows.map(rowToSummary);
165
+ }
166
+ async listByScope(scope, opts) {
167
+ const [rows] = (await this.pool.query(`SELECT ${SUMMARY_COLS} FROM ${BACKGROUND_AGENT_TABLE} WHERE scope_key = ?${opts?.status !== undefined ? " AND status = ?" : ""}
168
+ ORDER BY spawned_at_ms DESC, handle DESC${limitClause(opts?.limit)}`, opts?.status !== undefined ? [scope, opts.status] : [scope]));
169
+ return rows.map(rowToSummary);
170
+ }
171
+ async delete(handle, scope, expect) {
172
+ const [res] = (await this.pool.query(`DELETE FROM ${BACKGROUND_AGENT_TABLE} WHERE scope_key = ? AND handle = ?${expect !== undefined ? " AND rev = ?" : ""}`, expect !== undefined ? [scope, handle, expect.rev] : [scope, handle]));
173
+ return res.affectedRows === 1;
174
+ }
175
+ async reap(scope, now, opts) {
176
+ if (reapInert(opts))
177
+ return 0;
178
+ let touched = 0;
179
+ if (opts.staleRunningMaxAgeMs !== undefined) {
180
+ const [stale] = (await this.pool.query(`SELECT handle, record_json FROM ${BACKGROUND_AGENT_TABLE} WHERE scope_key = ? AND status = 'running' AND updated_at_ms < ?`, [scope, now - opts.staleRunningMaxAgeMs]));
181
+ for (const row of stale) {
182
+ const live = JSON.parse(String(row.record_json));
183
+ if (await this.update(String(row.handle), scope, flippedForm(live, now), { rev: live.rev }))
184
+ touched++;
185
+ }
186
+ }
187
+ const [term] = (await this.pool.query(`SELECT handle, spawned_at_ms, settled_at_ms FROM ${BACKGROUND_AGENT_TABLE} WHERE scope_key = ? AND status <> 'running' ORDER BY spawned_at_ms DESC, handle DESC`, [scope]));
188
+ const doomed = doomedHandles(term.map((r) => ({ handle: String(r.handle), spawnedAt: Number(r.spawned_at_ms), settledAt: r.settled_at_ms === null ? null : Number(r.settled_at_ms) })), now, opts);
189
+ if (doomed.size === 0)
190
+ return touched;
191
+ const [res] = (await this.pool.query(`DELETE FROM ${BACKGROUND_AGENT_TABLE} WHERE scope_key = ? AND status <> 'running' AND handle IN (${[...doomed].map(() => "?").join(", ")})`, [scope, ...doomed]));
192
+ return touched + res.affectedRows;
193
+ }
194
+ async listReapScopes() {
195
+ const [rows] = (await this.pool.query(`SELECT DISTINCT scope FROM ${BACKGROUND_AGENT_TABLE}`));
196
+ return rows.map((r) => String(r.scope));
197
+ }
198
+ }
199
+ export class PgBackgroundAgentStore {
200
+ q;
201
+ constructor(q) {
202
+ this.q = q;
203
+ }
204
+ async put(record) {
205
+ assertScope(record);
206
+ const stored = storedForm(record, record.handle, record.scope, record.rev ?? 0);
207
+ const { rows } = await this.q(`INSERT INTO ${BACKGROUND_AGENT_TABLE} (scope_key, handle, ${PROJ_COLS})
208
+ VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17)
209
+ ON CONFLICT (scope_key, handle) DO NOTHING RETURNING handle`, [stored.scope, stored.handle, ...projParams(stored, pgSafeJsonStringify, pgSanitizeText)]);
210
+ if (rows.length === 0) {
211
+ throw new BackgroundAgentStoreError("agent_record.already_exists", "agent record already exists");
212
+ }
213
+ }
214
+ async get(handle, scope) {
215
+ const { rows } = await this.q(`SELECT record_json FROM ${BACKGROUND_AGENT_TABLE} WHERE scope_key = $1 AND handle = $2`, [scope, handle]);
216
+ return rows.length > 0 ? JSON.parse(String(rows[0].record_json)) : null;
217
+ }
218
+ async update(handle, scope, record, expect) {
219
+ const stored = storedForm(record, handle, scope, expect.rev + 1);
220
+ const { rows } = await this.q(`UPDATE ${BACKGROUND_AGENT_TABLE} SET ${PROJ_COLS.split(", ").map((c, i) => `${c} = $${i + 1}`).join(", ")}
221
+ WHERE scope_key = $${PROJ_N + 1} AND handle = $${PROJ_N + 2} AND rev = $${PROJ_N + 3} RETURNING handle`, [...projParams(stored, pgSafeJsonStringify, pgSanitizeText), scope, handle, expect.rev]);
222
+ return rows.length === 1;
223
+ }
224
+ async listBySession(scope, sessionId, opts) {
225
+ const { rows } = await this.q(`SELECT ${SUMMARY_COLS} FROM ${BACKGROUND_AGENT_TABLE} WHERE scope_key = $1 AND session_anchor = $2${opts?.status !== undefined ? " AND status = $3" : ""}
226
+ ORDER BY spawned_at_ms DESC, handle DESC${limitClause(opts?.limit)}`, opts?.status !== undefined ? [scope, sessionId, opts.status] : [scope, sessionId]);
227
+ return rows.map(rowToSummary);
228
+ }
229
+ async listByScope(scope, opts) {
230
+ const { rows } = await this.q(`SELECT ${SUMMARY_COLS} FROM ${BACKGROUND_AGENT_TABLE} WHERE scope_key = $1${opts?.status !== undefined ? " AND status = $2" : ""}
231
+ ORDER BY spawned_at_ms DESC, handle DESC${limitClause(opts?.limit)}`, opts?.status !== undefined ? [scope, opts.status] : [scope]);
232
+ return rows.map(rowToSummary);
233
+ }
234
+ async delete(handle, scope, expect) {
235
+ const { rows } = await this.q(`DELETE FROM ${BACKGROUND_AGENT_TABLE} WHERE scope_key = $1 AND handle = $2${expect !== undefined ? " AND rev = $3" : ""} RETURNING handle`, expect !== undefined ? [scope, handle, expect.rev] : [scope, handle]);
236
+ return rows.length === 1;
237
+ }
238
+ async reap(scope, now, opts) {
239
+ if (reapInert(opts))
240
+ return 0;
241
+ let touched = 0;
242
+ if (opts.staleRunningMaxAgeMs !== undefined) {
243
+ const { rows: stale } = await this.q(`SELECT handle, record_json FROM ${BACKGROUND_AGENT_TABLE} WHERE scope_key = $1 AND status = 'running' AND updated_at_ms < $2`, [scope, now - opts.staleRunningMaxAgeMs]);
244
+ for (const row of stale) {
245
+ const live = JSON.parse(String(row.record_json));
246
+ if (await this.update(String(row.handle), scope, flippedForm(live, now), { rev: live.rev }))
247
+ touched++;
248
+ }
249
+ }
250
+ const { rows: term } = await this.q(`SELECT handle, spawned_at_ms, settled_at_ms FROM ${BACKGROUND_AGENT_TABLE} WHERE scope_key = $1 AND status <> 'running' ORDER BY spawned_at_ms DESC, handle DESC`, [scope]);
251
+ const doomed = doomedHandles(term.map((r) => ({ handle: String(r.handle), spawnedAt: Number(r.spawned_at_ms), settledAt: r.settled_at_ms === null ? null : Number(r.settled_at_ms) })), now, opts);
252
+ if (doomed.size === 0)
253
+ return touched;
254
+ const { rows: deleted } = await this.q(`DELETE FROM ${BACKGROUND_AGENT_TABLE} WHERE scope_key = $1 AND status <> 'running' AND handle IN (${[...doomed].map((_, i) => `$${i + 2}`).join(", ")}) RETURNING handle`, [scope, ...doomed]);
255
+ return touched + deleted.length;
256
+ }
257
+ async listReapScopes() {
258
+ const { rows } = await this.q(`SELECT DISTINCT scope FROM ${BACKGROUND_AGENT_TABLE}`);
259
+ return rows.map((r) => String(r.scope));
260
+ }
261
+ }
262
+ //# sourceMappingURL=background-agent-store-sql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-agent-store-sql.js","sourceRoot":"","sources":["../../src/plugins/background-agent-store-sql.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"roster-store-sql.d.ts","sourceRoot":"","sources":["../../src/plugins/roster-store-sql.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1F,KAAK,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,eAAO,MAAM,uBAAuB,2BAAqB,CAAC;AAE1D,eAAO,MAAM,YAAY,iBAAiB,CAAC;AA6B3C,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBtE;AAED,wBAAsB,oBAAoB,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBtE;AAoBD,qBAAa,eAAgB,YAAW,WAAW;IAE/C,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,IAAI,EAAE,IAAI,EACV,KAAK,GAAE,MAAM,MAAyB;IAGnD,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAU7E,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAK9B,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGnD;AAED,qBAAa,aAAc,YAAW,WAAW;IAE7C,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,CAAC,EAAE,SAAS,EACZ,KAAK,GAAE,MAAM,MAAyB;IAGnD,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAU7E,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAK9B,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGnD"}
1
+ {"version":3,"file":"roster-store-sql.d.ts","sourceRoot":"","sources":["../../src/plugins/roster-store-sql.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1F,KAAK,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,eAAO,MAAM,uBAAuB,2BAAqB,CAAC;AAE1D,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAgC3C,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BtE;AAED,wBAAsB,oBAAoB,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBtE;AAoBD,qBAAa,eAAgB,YAAW,WAAW;IAE/C,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,IAAI,EAAE,IAAI,EACV,KAAK,GAAE,MAAM,MAAyB;IAGnD,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAU7E,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAK9B,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGnD;AAED,qBAAa,aAAc,YAAW,WAAW;IAE7C,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,CAAC,EAAE,SAAS,EACZ,KAAK,GAAE,MAAM,MAAyB;IAGnD,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAU7E,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAK9B,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGnD"}
@@ -7,14 +7,14 @@ function rowToEntry(r) {
7
7
  agentId: String(r.agent_id),
8
8
  ...(r.session_id !== null && r.session_id !== undefined ? { sessionId: String(r.session_id) } : {}),
9
9
  ...(r.tool_use_id !== null && r.tool_use_id !== undefined ? { toolUseId: String(r.tool_use_id) } : {}),
10
- ...(r.owner !== null && r.owner !== undefined ? { owner: String(r.owner) } : {}),
11
- ...(r.scope !== null && r.scope !== undefined ? { scope: String(r.scope) } : {}),
10
+ owner: String(r.owner),
11
+ scope: String(r.scope),
12
12
  ...(r.session_scoped !== null && r.session_scoped !== undefined ? { sessionScoped: Boolean(Number(r.session_scoped)) || r.session_scoped === true } : {}),
13
13
  createdAt: Number(r.created_at_ms),
14
14
  };
15
15
  }
16
- const RESOLVE_WHERE_TIDB = `name_key = ? AND (scope IS NULL OR BINARY scope = ?) AND (owner IS NULL OR BINARY owner = ? OR (session_scoped = 1 AND ? IS NOT NULL AND BINARY owner = ?))`;
17
- const RESOLVE_WHERE_PG = `name_key = $1 AND (scope IS NULL OR scope = $2) AND (owner IS NULL OR owner = $3 OR (session_scoped = TRUE AND $4::varchar IS NOT NULL AND owner = $5))`;
16
+ const RESOLVE_WHERE_TIDB = `name_key = ? AND BINARY scope = ? AND (BINARY owner = ? OR (session_scoped = 1 AND ? IS NOT NULL AND BINARY owner = ?))`;
17
+ const RESOLVE_WHERE_PG = `name_key = $1 AND scope = $2 AND (owner = $3 OR (session_scoped = TRUE AND $4::varchar IS NOT NULL AND owner = $5))`;
18
18
  const COLS = "name, agent_id, session_id, tool_use_id, owner, scope, session_scoped, created_at_ms";
19
19
  export async function ensureTiDBRosterSchema(pool) {
20
20
  await pool.query(`CREATE TABLE IF NOT EXISTS ${ROSTER_TABLE} (
@@ -25,14 +25,17 @@ export async function ensureTiDBRosterSchema(pool) {
25
25
  agent_id VARCHAR(190) NOT NULL,
26
26
  session_id VARCHAR(190) NULL,
27
27
  tool_use_id VARCHAR(190) NULL,
28
- owner VARCHAR(190) NULL,
29
- scope VARCHAR(190) NULL,
28
+ owner VARCHAR(190) NOT NULL,
29
+ scope VARCHAR(190) NOT NULL,
30
30
  session_scoped TINYINT NULL,
31
31
  created_at_ms BIGINT NOT NULL,
32
32
  recorded_at_ms BIGINT NOT NULL,
33
33
  PRIMARY KEY (name_key, owner_key, scope_key),
34
34
  KEY idx_roster_agent (agent_id)
35
35
  ) COLLATE utf8mb4_bin`);
36
+ await pool.query(`DELETE FROM ${ROSTER_TABLE} WHERE owner IS NULL OR scope IS NULL`);
37
+ await pool.query(`ALTER TABLE ${ROSTER_TABLE} MODIFY COLUMN owner VARCHAR(190) NOT NULL`);
38
+ await pool.query(`ALTER TABLE ${ROSTER_TABLE} MODIFY COLUMN scope VARCHAR(190) NOT NULL`);
36
39
  }
37
40
  export async function ensurePgRosterSchema(q) {
38
41
  await q(`CREATE TABLE IF NOT EXISTS ${ROSTER_TABLE} (
@@ -43,26 +46,29 @@ export async function ensurePgRosterSchema(q) {
43
46
  agent_id VARCHAR(190) NOT NULL,
44
47
  session_id VARCHAR(190),
45
48
  tool_use_id VARCHAR(190),
46
- owner VARCHAR(190) COLLATE "C",
47
- scope VARCHAR(190) COLLATE "C",
49
+ owner VARCHAR(190) COLLATE "C" NOT NULL,
50
+ scope VARCHAR(190) COLLATE "C" NOT NULL,
48
51
  session_scoped BOOLEAN,
49
52
  created_at_ms BIGINT NOT NULL,
50
53
  recorded_at_ms BIGINT NOT NULL,
51
54
  PRIMARY KEY (name_key, owner_key, scope_key)
52
55
  )`);
53
56
  await q(`CREATE INDEX IF NOT EXISTS idx_roster_agent ON ${ROSTER_TABLE} (agent_id)`);
57
+ await q(`DELETE FROM ${ROSTER_TABLE} WHERE owner IS NULL OR scope IS NULL`);
58
+ await q(`ALTER TABLE ${ROSTER_TABLE} ALTER COLUMN owner SET NOT NULL`);
59
+ await q(`ALTER TABLE ${ROSTER_TABLE} ALTER COLUMN scope SET NOT NULL`);
54
60
  }
55
61
  function upsertParams(entry, now) {
56
62
  return [
57
63
  normalizeAgentNameLocal(entry.name),
58
- entry.owner ?? "",
59
- entry.scope ?? "",
64
+ entry.owner,
65
+ entry.scope,
60
66
  entry.name,
61
67
  entry.agentId,
62
68
  entry.sessionId ?? null,
63
69
  entry.toolUseId ?? null,
64
- entry.owner ?? null,
65
- entry.scope ?? null,
70
+ entry.owner,
71
+ entry.scope,
66
72
  entry.sessionScoped === undefined ? null : entry.sessionScoped,
67
73
  entry.createdAt,
68
74
  now,
@@ -1 +1 @@
1
- {"version":3,"file":"roster-store-sql.js","sourceRoot":"","sources":["../../src/plugins/roster-store-sql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roster-store-sql.js","sourceRoot":"","sources":["../../src/plugins/roster-store-sql.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema-agent/server",
3
- "version": "1.247.0",
3
+ "version": "1.248.0",
4
4
  "description": "Sema Server — the server/API implementation layer for Sema, wiring core, registry, model providers, and cloud agent execution. Built on @sema-agent/core.",
5
5
  "type": "module",
6
6
  "license": "BUSL-1.1",
@@ -46,7 +46,7 @@
46
46
  "build:binary:run-local:darwin-arm64": "bun build --compile --target=bun-darwin-arm64 src/run-local.ts --outfile dist/run-local-darwin-arm64"
47
47
  },
48
48
  "dependencies": {
49
- "@sema-agent/core": "^1.361.0",
49
+ "@sema-agent/core": "^1.365.0",
50
50
  "@sema-agent/registry-core": "^0.10.21",
51
51
  "e2b": "^2.28.0",
52
52
  "libsodium-wrappers": "^0.8.4",