@sandbox-agent/persist-sqlite 0.3.2 → 0.4.0-rc.1
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/README.md +5 -0
- package/dist/index.d.ts +1 -20
- package/dist/index.js +3 -214
- package/dist/index.js.map +1 -1
- package/package.json +5 -12
package/README.md
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# @sandbox-agent/persist-sqlite
|
|
2
|
+
|
|
3
|
+
> **Deprecated:** This package has been deprecated and removed.
|
|
4
|
+
|
|
5
|
+
Install `better-sqlite3` directly and copy the driver source into your project. See the [full example](https://github.com/rivet-dev/sandbox-agent/tree/main/examples/persist-sqlite) and the [session persistence docs](https://sandboxagent.dev/session-persistence) for guidance.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,21 +1,2 @@
|
|
|
1
|
-
import { SessionPersistDriver, SessionRecord, ListPageRequest, ListPage, ListEventsRequest, SessionEvent } from 'sandbox-agent';
|
|
2
1
|
|
|
3
|
-
|
|
4
|
-
filename?: string;
|
|
5
|
-
}
|
|
6
|
-
declare class SQLiteSessionPersistDriver implements SessionPersistDriver {
|
|
7
|
-
private readonly db;
|
|
8
|
-
constructor(options?: SQLiteSessionPersistDriverOptions);
|
|
9
|
-
getSession(id: string): Promise<SessionRecord | null>;
|
|
10
|
-
listSessions(request?: ListPageRequest): Promise<ListPage<SessionRecord>>;
|
|
11
|
-
updateSession(session: SessionRecord): Promise<void>;
|
|
12
|
-
listEvents(request: ListEventsRequest): Promise<ListPage<SessionEvent>>;
|
|
13
|
-
insertEvent(event: SessionEvent): Promise<void>;
|
|
14
|
-
close(): void;
|
|
15
|
-
private initialize;
|
|
16
|
-
private ensureEventsTable;
|
|
17
|
-
private createEventsTable;
|
|
18
|
-
private rebuildEventsTable;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export { SQLiteSessionPersistDriver, type SQLiteSessionPersistDriverOptions };
|
|
2
|
+
export { }
|
package/dist/index.js
CHANGED
|
@@ -1,216 +1,5 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
db;
|
|
6
|
-
constructor(options = {}) {
|
|
7
|
-
this.db = new Database(options.filename ?? ":memory:");
|
|
8
|
-
this.initialize();
|
|
9
|
-
}
|
|
10
|
-
async getSession(id) {
|
|
11
|
-
const row = this.db.prepare(
|
|
12
|
-
`SELECT id, agent, agent_session_id, last_connection_id, created_at, destroyed_at, session_init_json
|
|
13
|
-
FROM sessions WHERE id = ?`
|
|
14
|
-
).get(id);
|
|
15
|
-
if (!row) {
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
return decodeSessionRow(row);
|
|
19
|
-
}
|
|
20
|
-
async listSessions(request = {}) {
|
|
21
|
-
const offset = parseCursor(request.cursor);
|
|
22
|
-
const limit = normalizeLimit(request.limit);
|
|
23
|
-
const rows = this.db.prepare(
|
|
24
|
-
`SELECT id, agent, agent_session_id, last_connection_id, created_at, destroyed_at, session_init_json
|
|
25
|
-
FROM sessions
|
|
26
|
-
ORDER BY created_at ASC, id ASC
|
|
27
|
-
LIMIT ? OFFSET ?`
|
|
28
|
-
).all(limit, offset);
|
|
29
|
-
const countRow = this.db.prepare(`SELECT COUNT(*) as count FROM sessions`).get();
|
|
30
|
-
const nextOffset = offset + rows.length;
|
|
31
|
-
return {
|
|
32
|
-
items: rows.map(decodeSessionRow),
|
|
33
|
-
nextCursor: nextOffset < countRow.count ? String(nextOffset) : void 0
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
async updateSession(session) {
|
|
37
|
-
this.db.prepare(
|
|
38
|
-
`INSERT INTO sessions (
|
|
39
|
-
id, agent, agent_session_id, last_connection_id, created_at, destroyed_at, session_init_json
|
|
40
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
41
|
-
ON CONFLICT(id) DO UPDATE SET
|
|
42
|
-
agent = excluded.agent,
|
|
43
|
-
agent_session_id = excluded.agent_session_id,
|
|
44
|
-
last_connection_id = excluded.last_connection_id,
|
|
45
|
-
created_at = excluded.created_at,
|
|
46
|
-
destroyed_at = excluded.destroyed_at,
|
|
47
|
-
session_init_json = excluded.session_init_json`
|
|
48
|
-
).run(
|
|
49
|
-
session.id,
|
|
50
|
-
session.agent,
|
|
51
|
-
session.agentSessionId,
|
|
52
|
-
session.lastConnectionId,
|
|
53
|
-
session.createdAt,
|
|
54
|
-
session.destroyedAt ?? null,
|
|
55
|
-
session.sessionInit ? JSON.stringify(session.sessionInit) : null
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
async listEvents(request) {
|
|
59
|
-
const offset = parseCursor(request.cursor);
|
|
60
|
-
const limit = normalizeLimit(request.limit);
|
|
61
|
-
const rows = this.db.prepare(
|
|
62
|
-
`SELECT id, event_index, session_id, created_at, connection_id, sender, payload_json
|
|
63
|
-
FROM events
|
|
64
|
-
WHERE session_id = ?
|
|
65
|
-
ORDER BY event_index ASC, id ASC
|
|
66
|
-
LIMIT ? OFFSET ?`
|
|
67
|
-
).all(request.sessionId, limit, offset);
|
|
68
|
-
const countRow = this.db.prepare(`SELECT COUNT(*) as count FROM events WHERE session_id = ?`).get(request.sessionId);
|
|
69
|
-
const nextOffset = offset + rows.length;
|
|
70
|
-
return {
|
|
71
|
-
items: rows.map(decodeEventRow),
|
|
72
|
-
nextCursor: nextOffset < countRow.count ? String(nextOffset) : void 0
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
async insertEvent(event) {
|
|
76
|
-
this.db.prepare(
|
|
77
|
-
`INSERT INTO events (
|
|
78
|
-
id, event_index, session_id, created_at, connection_id, sender, payload_json
|
|
79
|
-
) VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
80
|
-
ON CONFLICT(id) DO UPDATE SET
|
|
81
|
-
event_index = excluded.event_index,
|
|
82
|
-
session_id = excluded.session_id,
|
|
83
|
-
created_at = excluded.created_at,
|
|
84
|
-
connection_id = excluded.connection_id,
|
|
85
|
-
sender = excluded.sender,
|
|
86
|
-
payload_json = excluded.payload_json`
|
|
87
|
-
).run(event.id, event.eventIndex, event.sessionId, event.createdAt, event.connectionId, event.sender, JSON.stringify(event.payload));
|
|
88
|
-
}
|
|
89
|
-
close() {
|
|
90
|
-
this.db.close();
|
|
91
|
-
}
|
|
92
|
-
initialize() {
|
|
93
|
-
this.db.exec(`
|
|
94
|
-
CREATE TABLE IF NOT EXISTS sessions (
|
|
95
|
-
id TEXT PRIMARY KEY,
|
|
96
|
-
agent TEXT NOT NULL,
|
|
97
|
-
agent_session_id TEXT NOT NULL,
|
|
98
|
-
last_connection_id TEXT NOT NULL,
|
|
99
|
-
created_at INTEGER NOT NULL,
|
|
100
|
-
destroyed_at INTEGER,
|
|
101
|
-
session_init_json TEXT
|
|
102
|
-
)
|
|
103
|
-
`);
|
|
104
|
-
this.ensureEventsTable();
|
|
105
|
-
}
|
|
106
|
-
ensureEventsTable() {
|
|
107
|
-
const tableInfo = this.db.prepare(`PRAGMA table_info(events)`).all();
|
|
108
|
-
if (tableInfo.length === 0) {
|
|
109
|
-
this.createEventsTable();
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
const idColumn = tableInfo.find((column) => column.name === "id");
|
|
113
|
-
const hasEventIndex = tableInfo.some((column) => column.name === "event_index");
|
|
114
|
-
const idType = (idColumn?.type ?? "").trim().toUpperCase();
|
|
115
|
-
const idIsText = idType === "TEXT";
|
|
116
|
-
if (!idIsText || !hasEventIndex) {
|
|
117
|
-
this.rebuildEventsTable(hasEventIndex);
|
|
118
|
-
}
|
|
119
|
-
this.db.exec(`
|
|
120
|
-
CREATE INDEX IF NOT EXISTS idx_events_session_order
|
|
121
|
-
ON events(session_id, event_index, id)
|
|
122
|
-
`);
|
|
123
|
-
}
|
|
124
|
-
createEventsTable() {
|
|
125
|
-
this.db.exec(`
|
|
126
|
-
CREATE TABLE IF NOT EXISTS events (
|
|
127
|
-
id TEXT PRIMARY KEY,
|
|
128
|
-
event_index INTEGER NOT NULL,
|
|
129
|
-
session_id TEXT NOT NULL,
|
|
130
|
-
created_at INTEGER NOT NULL,
|
|
131
|
-
connection_id TEXT NOT NULL,
|
|
132
|
-
sender TEXT NOT NULL,
|
|
133
|
-
payload_json TEXT NOT NULL
|
|
134
|
-
);
|
|
135
|
-
|
|
136
|
-
CREATE INDEX IF NOT EXISTS idx_events_session_order
|
|
137
|
-
ON events(session_id, event_index, id)
|
|
138
|
-
`);
|
|
139
|
-
}
|
|
140
|
-
rebuildEventsTable(hasEventIndex) {
|
|
141
|
-
this.db.exec(`
|
|
142
|
-
ALTER TABLE events RENAME TO events_legacy;
|
|
143
|
-
`);
|
|
144
|
-
this.createEventsTable();
|
|
145
|
-
if (hasEventIndex) {
|
|
146
|
-
this.db.exec(`
|
|
147
|
-
INSERT INTO events (id, event_index, session_id, created_at, connection_id, sender, payload_json)
|
|
148
|
-
SELECT
|
|
149
|
-
CAST(id AS TEXT),
|
|
150
|
-
COALESCE(event_index, ROW_NUMBER() OVER (PARTITION BY session_id ORDER BY created_at ASC, id ASC)),
|
|
151
|
-
session_id,
|
|
152
|
-
created_at,
|
|
153
|
-
connection_id,
|
|
154
|
-
sender,
|
|
155
|
-
payload_json
|
|
156
|
-
FROM events_legacy
|
|
157
|
-
`);
|
|
158
|
-
} else {
|
|
159
|
-
this.db.exec(`
|
|
160
|
-
INSERT INTO events (id, event_index, session_id, created_at, connection_id, sender, payload_json)
|
|
161
|
-
SELECT
|
|
162
|
-
CAST(id AS TEXT),
|
|
163
|
-
ROW_NUMBER() OVER (PARTITION BY session_id ORDER BY created_at ASC, id ASC),
|
|
164
|
-
session_id,
|
|
165
|
-
created_at,
|
|
166
|
-
connection_id,
|
|
167
|
-
sender,
|
|
168
|
-
payload_json
|
|
169
|
-
FROM events_legacy
|
|
170
|
-
`);
|
|
171
|
-
}
|
|
172
|
-
this.db.exec(`DROP TABLE events_legacy`);
|
|
173
|
-
}
|
|
174
|
-
};
|
|
175
|
-
function decodeSessionRow(row) {
|
|
176
|
-
return {
|
|
177
|
-
id: row.id,
|
|
178
|
-
agent: row.agent,
|
|
179
|
-
agentSessionId: row.agent_session_id,
|
|
180
|
-
lastConnectionId: row.last_connection_id,
|
|
181
|
-
createdAt: row.created_at,
|
|
182
|
-
destroyedAt: row.destroyed_at ?? void 0,
|
|
183
|
-
sessionInit: row.session_init_json ? JSON.parse(row.session_init_json) : void 0
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
|
-
function decodeEventRow(row) {
|
|
187
|
-
return {
|
|
188
|
-
id: row.id,
|
|
189
|
-
eventIndex: row.event_index,
|
|
190
|
-
sessionId: row.session_id,
|
|
191
|
-
createdAt: row.created_at,
|
|
192
|
-
connectionId: row.connection_id,
|
|
193
|
-
sender: row.sender,
|
|
194
|
-
payload: JSON.parse(row.payload_json)
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
function normalizeLimit(limit) {
|
|
198
|
-
if (!Number.isFinite(limit) || (limit ?? 0) < 1) {
|
|
199
|
-
return DEFAULT_LIST_LIMIT;
|
|
200
|
-
}
|
|
201
|
-
return Math.floor(limit);
|
|
202
|
-
}
|
|
203
|
-
function parseCursor(cursor) {
|
|
204
|
-
if (!cursor) {
|
|
205
|
-
return 0;
|
|
206
|
-
}
|
|
207
|
-
const parsed = Number.parseInt(cursor, 10);
|
|
208
|
-
if (!Number.isFinite(parsed) || parsed < 0) {
|
|
209
|
-
return 0;
|
|
210
|
-
}
|
|
211
|
-
return parsed;
|
|
212
|
-
}
|
|
213
|
-
export {
|
|
214
|
-
SQLiteSessionPersistDriver
|
|
215
|
-
};
|
|
2
|
+
throw new Error(
|
|
3
|
+
"@sandbox-agent/persist-sqlite has been deprecated and removed. Copy the reference implementation from examples/persist-sqlite into your project instead. See https://github.com/rivet-dev/sandbox-agent/tree/main/examples/persist-sqlite"
|
|
4
|
+
);
|
|
216
5
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import Database from \"better-sqlite3\";\nimport type { ListEventsRequest, ListPage, ListPageRequest, SessionEvent, SessionPersistDriver, SessionRecord } from \"sandbox-agent\";\n\nconst DEFAULT_LIST_LIMIT = 100;\n\nexport interface SQLiteSessionPersistDriverOptions {\n filename?: string;\n}\n\nexport class SQLiteSessionPersistDriver implements SessionPersistDriver {\n private readonly db: Database.Database;\n\n constructor(options: SQLiteSessionPersistDriverOptions = {}) {\n this.db = new Database(options.filename ?? \":memory:\");\n this.initialize();\n }\n\n async getSession(id: string): Promise<SessionRecord | null> {\n const row = this.db\n .prepare(\n `SELECT id, agent, agent_session_id, last_connection_id, created_at, destroyed_at, session_init_json\n FROM sessions WHERE id = ?`,\n )\n .get(id) as SessionRow | undefined;\n\n if (!row) {\n return null;\n }\n\n return decodeSessionRow(row);\n }\n\n async listSessions(request: ListPageRequest = {}): Promise<ListPage<SessionRecord>> {\n const offset = parseCursor(request.cursor);\n const limit = normalizeLimit(request.limit);\n\n const rows = this.db\n .prepare(\n `SELECT id, agent, agent_session_id, last_connection_id, created_at, destroyed_at, session_init_json\n FROM sessions\n ORDER BY created_at ASC, id ASC\n LIMIT ? OFFSET ?`,\n )\n .all(limit, offset) as SessionRow[];\n\n const countRow = this.db.prepare(`SELECT COUNT(*) as count FROM sessions`).get() as { count: number };\n const nextOffset = offset + rows.length;\n\n return {\n items: rows.map(decodeSessionRow),\n nextCursor: nextOffset < countRow.count ? String(nextOffset) : undefined,\n };\n }\n\n async updateSession(session: SessionRecord): Promise<void> {\n this.db\n .prepare(\n `INSERT INTO sessions (\n id, agent, agent_session_id, last_connection_id, created_at, destroyed_at, session_init_json\n ) VALUES (?, ?, ?, ?, ?, ?, ?)\n ON CONFLICT(id) DO UPDATE SET\n agent = excluded.agent,\n agent_session_id = excluded.agent_session_id,\n last_connection_id = excluded.last_connection_id,\n created_at = excluded.created_at,\n destroyed_at = excluded.destroyed_at,\n session_init_json = excluded.session_init_json`,\n )\n .run(\n session.id,\n session.agent,\n session.agentSessionId,\n session.lastConnectionId,\n session.createdAt,\n session.destroyedAt ?? null,\n session.sessionInit ? JSON.stringify(session.sessionInit) : null,\n );\n }\n\n async listEvents(request: ListEventsRequest): Promise<ListPage<SessionEvent>> {\n const offset = parseCursor(request.cursor);\n const limit = normalizeLimit(request.limit);\n\n const rows = this.db\n .prepare(\n `SELECT id, event_index, session_id, created_at, connection_id, sender, payload_json\n FROM events\n WHERE session_id = ?\n ORDER BY event_index ASC, id ASC\n LIMIT ? OFFSET ?`,\n )\n .all(request.sessionId, limit, offset) as EventRow[];\n\n const countRow = this.db.prepare(`SELECT COUNT(*) as count FROM events WHERE session_id = ?`).get(request.sessionId) as { count: number };\n\n const nextOffset = offset + rows.length;\n\n return {\n items: rows.map(decodeEventRow),\n nextCursor: nextOffset < countRow.count ? String(nextOffset) : undefined,\n };\n }\n\n async insertEvent(event: SessionEvent): Promise<void> {\n this.db\n .prepare(\n `INSERT INTO events (\n id, event_index, session_id, created_at, connection_id, sender, payload_json\n ) VALUES (?, ?, ?, ?, ?, ?, ?)\n ON CONFLICT(id) DO UPDATE SET\n event_index = excluded.event_index,\n session_id = excluded.session_id,\n created_at = excluded.created_at,\n connection_id = excluded.connection_id,\n sender = excluded.sender,\n payload_json = excluded.payload_json`,\n )\n .run(event.id, event.eventIndex, event.sessionId, event.createdAt, event.connectionId, event.sender, JSON.stringify(event.payload));\n }\n\n close(): void {\n this.db.close();\n }\n\n private initialize(): void {\n this.db.exec(`\n CREATE TABLE IF NOT EXISTS sessions (\n id TEXT PRIMARY KEY,\n agent TEXT NOT NULL,\n agent_session_id TEXT NOT NULL,\n last_connection_id TEXT NOT NULL,\n created_at INTEGER NOT NULL,\n destroyed_at INTEGER,\n session_init_json TEXT\n )\n `);\n\n this.ensureEventsTable();\n }\n\n private ensureEventsTable(): void {\n const tableInfo = this.db.prepare(`PRAGMA table_info(events)`).all() as TableInfoRow[];\n if (tableInfo.length === 0) {\n this.createEventsTable();\n return;\n }\n\n const idColumn = tableInfo.find((column) => column.name === \"id\");\n const hasEventIndex = tableInfo.some((column) => column.name === \"event_index\");\n const idType = (idColumn?.type ?? \"\").trim().toUpperCase();\n const idIsText = idType === \"TEXT\";\n\n if (!idIsText || !hasEventIndex) {\n this.rebuildEventsTable(hasEventIndex);\n }\n\n this.db.exec(`\n CREATE INDEX IF NOT EXISTS idx_events_session_order\n ON events(session_id, event_index, id)\n `);\n }\n\n private createEventsTable(): void {\n this.db.exec(`\n CREATE TABLE IF NOT EXISTS events (\n id TEXT PRIMARY KEY,\n event_index INTEGER NOT NULL,\n session_id TEXT NOT NULL,\n created_at INTEGER NOT NULL,\n connection_id TEXT NOT NULL,\n sender TEXT NOT NULL,\n payload_json TEXT NOT NULL\n );\n\n CREATE INDEX IF NOT EXISTS idx_events_session_order\n ON events(session_id, event_index, id)\n `);\n }\n\n private rebuildEventsTable(hasEventIndex: boolean): void {\n this.db.exec(`\n ALTER TABLE events RENAME TO events_legacy;\n `);\n\n this.createEventsTable();\n\n if (hasEventIndex) {\n this.db.exec(`\n INSERT INTO events (id, event_index, session_id, created_at, connection_id, sender, payload_json)\n SELECT\n CAST(id AS TEXT),\n COALESCE(event_index, ROW_NUMBER() OVER (PARTITION BY session_id ORDER BY created_at ASC, id ASC)),\n session_id,\n created_at,\n connection_id,\n sender,\n payload_json\n FROM events_legacy\n `);\n } else {\n this.db.exec(`\n INSERT INTO events (id, event_index, session_id, created_at, connection_id, sender, payload_json)\n SELECT\n CAST(id AS TEXT),\n ROW_NUMBER() OVER (PARTITION BY session_id ORDER BY created_at ASC, id ASC),\n session_id,\n created_at,\n connection_id,\n sender,\n payload_json\n FROM events_legacy\n `);\n }\n\n this.db.exec(`DROP TABLE events_legacy`);\n }\n}\n\ntype SessionRow = {\n id: string;\n agent: string;\n agent_session_id: string;\n last_connection_id: string;\n created_at: number;\n destroyed_at: number | null;\n session_init_json: string | null;\n};\n\ntype EventRow = {\n id: string;\n event_index: number;\n session_id: string;\n created_at: number;\n connection_id: string;\n sender: \"client\" | \"agent\";\n payload_json: string;\n};\n\ntype TableInfoRow = {\n name: string;\n type: string;\n};\n\nfunction decodeSessionRow(row: SessionRow): SessionRecord {\n return {\n id: row.id,\n agent: row.agent,\n agentSessionId: row.agent_session_id,\n lastConnectionId: row.last_connection_id,\n createdAt: row.created_at,\n destroyedAt: row.destroyed_at ?? undefined,\n sessionInit: row.session_init_json ? (JSON.parse(row.session_init_json) as SessionRecord[\"sessionInit\"]) : undefined,\n };\n}\n\nfunction decodeEventRow(row: EventRow): SessionEvent {\n return {\n id: row.id,\n eventIndex: row.event_index,\n sessionId: row.session_id,\n createdAt: row.created_at,\n connectionId: row.connection_id,\n sender: row.sender,\n payload: JSON.parse(row.payload_json),\n };\n}\n\nfunction normalizeLimit(limit: number | undefined): number {\n if (!Number.isFinite(limit) || (limit ?? 0) < 1) {\n return DEFAULT_LIST_LIMIT;\n }\n return Math.floor(limit as number);\n}\n\nfunction parseCursor(cursor: string | undefined): number {\n if (!cursor) {\n return 0;\n }\n const parsed = Number.parseInt(cursor, 10);\n if (!Number.isFinite(parsed) || parsed < 0) {\n return 0;\n }\n return parsed;\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["throw new Error(\n \"@sandbox-agent/persist-sqlite has been deprecated and removed. \" +\n \"Copy the reference implementation from examples/persist-sqlite into your project instead. \" +\n \"See https://github.com/rivet-dev/sandbox-agent/tree/main/examples/persist-sqlite\",\n);\n"],"mappings":";AAAA,MAAM,IAAI;AAAA,EACR;AAGF;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sandbox-agent/persist-sqlite",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "SQLite persistence driver for the Sandbox Agent TypeScript SDK",
|
|
3
|
+
"version": "0.4.0-rc.1",
|
|
4
|
+
"description": "SQLite persistence driver for the Sandbox Agent TypeScript SDK (DEPRECATED)",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -16,24 +16,17 @@
|
|
|
16
16
|
"import": "./dist/index.js"
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
|
-
"dependencies": {
|
|
20
|
-
"better-sqlite3": "^11.0.0",
|
|
21
|
-
"sandbox-agent": "0.3.2"
|
|
22
|
-
},
|
|
19
|
+
"dependencies": {},
|
|
23
20
|
"files": [
|
|
24
21
|
"dist"
|
|
25
22
|
],
|
|
26
23
|
"devDependencies": {
|
|
27
|
-
"@types/better-sqlite3": "^7.0.0",
|
|
28
24
|
"@types/node": "^22.0.0",
|
|
29
25
|
"tsup": "^8.0.0",
|
|
30
|
-
"typescript": "^5.7.0"
|
|
31
|
-
"vitest": "^3.0.0"
|
|
26
|
+
"typescript": "^5.7.0"
|
|
32
27
|
},
|
|
33
28
|
"scripts": {
|
|
34
29
|
"build": "tsup",
|
|
35
|
-
"typecheck": "tsc --noEmit"
|
|
36
|
-
"test": "vitest run",
|
|
37
|
-
"test:watch": "vitest"
|
|
30
|
+
"typecheck": "tsc --noEmit"
|
|
38
31
|
}
|
|
39
32
|
}
|