@assemblyline-agents/postgres 2.0.0 → 3.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 +1 -1
- package/dist/adapter-agent-state.d.ts.map +1 -1
- package/dist/adapter-agent-state.js +51 -39
- package/dist/adapter-agent-state.js.map +1 -1
- package/dist/adapter-checkpoints.d.ts +1 -1
- package/dist/adapter-checkpoints.d.ts.map +1 -1
- package/dist/adapter-checkpoints.js +47 -27
- package/dist/adapter-checkpoints.js.map +1 -1
- package/dist/adapter-connection-events.d.ts +26 -0
- package/dist/adapter-connection-events.d.ts.map +1 -0
- package/dist/adapter-connection-events.js +126 -0
- package/dist/adapter-connection-events.js.map +1 -0
- package/dist/adapter-conversation-turns.d.ts +3 -1
- package/dist/adapter-conversation-turns.d.ts.map +1 -1
- package/dist/adapter-conversation-turns.js +99 -17
- package/dist/adapter-conversation-turns.js.map +1 -1
- package/dist/adapter-conversations.d.ts +11 -1
- package/dist/adapter-conversations.d.ts.map +1 -1
- package/dist/adapter-conversations.js +82 -15
- package/dist/adapter-conversations.js.map +1 -1
- package/dist/adapter-delivery.d.ts.map +1 -1
- package/dist/adapter-delivery.js +20 -12
- package/dist/adapter-delivery.js.map +1 -1
- package/dist/adapter-grants.d.ts +1 -0
- package/dist/adapter-grants.d.ts.map +1 -1
- package/dist/adapter-grants.js +15 -9
- package/dist/adapter-grants.js.map +1 -1
- package/dist/adapter-memory.d.ts +2 -0
- package/dist/adapter-memory.d.ts.map +1 -1
- package/dist/adapter-memory.js +23 -13
- package/dist/adapter-memory.js.map +1 -1
- package/dist/adapter-misc.d.ts +8 -0
- package/dist/adapter-misc.d.ts.map +1 -1
- package/dist/adapter-misc.js +80 -33
- package/dist/adapter-misc.js.map +1 -1
- package/dist/adapter-runs.d.ts.map +1 -1
- package/dist/adapter-runs.js +37 -23
- package/dist/adapter-runs.js.map +1 -1
- package/dist/adapter-sandbox.d.ts +2 -1
- package/dist/adapter-sandbox.d.ts.map +1 -1
- package/dist/adapter-sandbox.js +91 -19
- package/dist/adapter-sandbox.js.map +1 -1
- package/dist/adapter-settings.js +4 -4
- package/dist/adapter-settings.js.map +1 -1
- package/dist/adapter-timeline.d.ts +5 -0
- package/dist/adapter-timeline.d.ts.map +1 -0
- package/dist/adapter-timeline.js +86 -0
- package/dist/adapter-timeline.js.map +1 -0
- package/dist/adapter-usage.d.ts.map +1 -1
- package/dist/adapter-usage.js +7 -7
- package/dist/adapter-usage.js.map +1 -1
- package/dist/adapter-workspaces.d.ts +25 -0
- package/dist/adapter-workspaces.d.ts.map +1 -0
- package/dist/adapter-workspaces.js +486 -0
- package/dist/adapter-workspaces.js.map +1 -0
- package/dist/index.d.ts +76 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +127 -6
- package/dist/index.js.map +1 -1
- package/dist/learning-store.js +16 -16
- package/dist/learning-store.js.map +1 -1
- package/dist/migrations.d.ts +7 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +537 -168
- package/dist/migrations.js.map +1 -1
- package/dist/presets.d.ts +1 -1
- package/dist/presets.d.ts.map +1 -1
- package/dist/provider.d.ts +1 -1
- package/dist/provider.js +7 -7
- package/dist/provider.js.map +1 -1
- package/dist/row-mappers.d.ts.map +1 -1
- package/dist/row-mappers.js +8 -0
- package/dist/row-mappers.js.map +1 -1
- package/dist/sql-helpers.d.ts +0 -1
- package/dist/sql-helpers.d.ts.map +1 -1
- package/dist/sql-helpers.js +11 -6
- package/dist/sql-helpers.js.map +1 -1
- package/dist/stores.d.ts +3 -1
- package/dist/stores.d.ts.map +1 -1
- package/dist/stores.js +62 -20
- package/dist/stores.js.map +1 -1
- package/package.json +3 -3
package/dist/adapter-grants.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ConnectionAuthorizationSessionRecord, StoredConnectionGrant } from "@assemblyline-agents/runtime";
|
|
2
2
|
import type { QueryClient } from "./client-types.js";
|
|
3
3
|
export declare function getGrant(client: QueryClient, connectionName: string, principalKey: string): Promise<StoredConnectionGrant | undefined>;
|
|
4
|
+
export declare function listGrants(client: QueryClient, connectionName?: string): Promise<StoredConnectionGrant[]>;
|
|
4
5
|
export declare function saveGrant(client: QueryClient, grant: StoredConnectionGrant): Promise<void>;
|
|
5
6
|
export declare function deleteGrant(client: QueryClient, connectionName: string, principalKey: string): Promise<void>;
|
|
6
7
|
export declare function createSession(client: QueryClient, session: ConnectionAuthorizationSessionRecord): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-grants.d.ts","sourceRoot":"","sources":["../src/adapter-grants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oCAAoC,EACpC,qBAAqB,EACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,wBAAsB,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAO5I;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BhG;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlH;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BrH;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM7F;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,oCAAoC,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAC7E,OAAO,CAAC,oCAAoC,CAAC,CA4C/C;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,oCAAoC,GAAG,SAAS,CAAC,CAI3H;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oCAAoC,GAAG,SAAS,CAAC,CAIrI;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,oCAAoC,GAAG,SAAS,CAAC,CAUrK"}
|
|
1
|
+
{"version":3,"file":"adapter-grants.d.ts","sourceRoot":"","sources":["../src/adapter-grants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oCAAoC,EACpC,qBAAqB,EACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,wBAAsB,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAO5I;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAK/G;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BhG;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlH;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BrH;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM7F;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,WAAW,EACnB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,oCAAoC,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAC7E,OAAO,CAAC,oCAAoC,CAAC,CA4C/C;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,oCAAoC,GAAG,SAAS,CAAC,CAI3H;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oCAAoC,GAAG,SAAS,CAAC,CAIrI;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,oCAAoC,GAAG,SAAS,CAAC,CAUrK"}
|
package/dist/adapter-grants.js
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import { mapConnectionAuthorizationSession, mapConnectionGrant } from "./row-mappers.js";
|
|
2
2
|
import { timestamp } from "./sql-helpers.js";
|
|
3
3
|
export async function getGrant(client, connectionName, principalKey) {
|
|
4
|
-
const result = await client.query("select * from
|
|
4
|
+
const result = await client.query("select * from assembly_line_connection_grants where connection_name=$1 and principal_key=$2", [connectionName, principalKey]);
|
|
5
5
|
const row = result.rows[0];
|
|
6
6
|
return row ? mapConnectionGrant(row) : undefined;
|
|
7
7
|
}
|
|
8
|
+
export async function listGrants(client, connectionName) {
|
|
9
|
+
const result = connectionName
|
|
10
|
+
? await client.query("select * from assembly_line_connection_grants where connection_name=$1 order by principal_key", [connectionName])
|
|
11
|
+
: await client.query("select * from assembly_line_connection_grants order by connection_name, principal_key");
|
|
12
|
+
return result.rows.map(mapConnectionGrant);
|
|
13
|
+
}
|
|
8
14
|
export async function saveGrant(client, grant) {
|
|
9
|
-
await client.query(`insert into
|
|
15
|
+
await client.query(`insert into assembly_line_connection_grants
|
|
10
16
|
(connection_name, principal_key, principal, token, refresh_token, token_type, scopes, expires_at, credential, created_at, updated_at)
|
|
11
17
|
values ($1,$2,$3::jsonb,$4,$5,$6,$7::jsonb,$8,$9::jsonb,$10,$11)
|
|
12
18
|
on conflict (connection_name, principal_key) do update set
|
|
@@ -32,13 +38,13 @@ export async function saveGrant(client, grant) {
|
|
|
32
38
|
]);
|
|
33
39
|
}
|
|
34
40
|
export async function deleteGrant(client, connectionName, principalKey) {
|
|
35
|
-
await client.query("delete from
|
|
41
|
+
await client.query("delete from assembly_line_connection_grants where connection_name=$1 and principal_key=$2", [
|
|
36
42
|
connectionName,
|
|
37
43
|
principalKey
|
|
38
44
|
]);
|
|
39
45
|
}
|
|
40
46
|
export async function createSession(client, session) {
|
|
41
|
-
await client.query(`insert into
|
|
47
|
+
await client.query(`insert into assembly_line_connection_authorization_sessions
|
|
42
48
|
(id, state, connection_name, principal_key, principal, session, callback_url, code_verifier, resume, run_id, tool_call_id, tool_name, challenge, continuation, status, expires_at, created_at, updated_at)
|
|
43
49
|
values ($1,$2,$3,$4,$5::jsonb,$6::jsonb,$7,$8,$9::jsonb,$10,$11,$12,$13::jsonb,$14::jsonb,$15,$16,$17,$18)`, [
|
|
44
50
|
session.id,
|
|
@@ -62,7 +68,7 @@ export async function createSession(client, session) {
|
|
|
62
68
|
]);
|
|
63
69
|
}
|
|
64
70
|
export async function deleteExpiredSessions(client, now) {
|
|
65
|
-
const result = await client.query("delete from
|
|
71
|
+
const result = await client.query("delete from assembly_line_connection_authorization_sessions where expires_at<=$1 returning id", [now]);
|
|
66
72
|
return result.rows.length;
|
|
67
73
|
}
|
|
68
74
|
export async function updateSession(client, id, patch) {
|
|
@@ -70,7 +76,7 @@ export async function updateSession(client, id, patch) {
|
|
|
70
76
|
if (!current)
|
|
71
77
|
throw new Error(`Connection authorization session not found: ${id}`);
|
|
72
78
|
const updated = { ...current, ...patch, updatedAt: timestamp() };
|
|
73
|
-
await client.query(`update
|
|
79
|
+
await client.query(`update assembly_line_connection_authorization_sessions
|
|
74
80
|
set state=$2,
|
|
75
81
|
connection_name=$3,
|
|
76
82
|
principal_key=$4,
|
|
@@ -109,17 +115,17 @@ export async function updateSession(client, id, patch) {
|
|
|
109
115
|
return updated;
|
|
110
116
|
}
|
|
111
117
|
export async function getSession(client, id) {
|
|
112
|
-
const result = await client.query("select * from
|
|
118
|
+
const result = await client.query("select * from assembly_line_connection_authorization_sessions where id=$1", [id]);
|
|
113
119
|
const row = result.rows[0];
|
|
114
120
|
return row ? mapConnectionAuthorizationSession(row) : undefined;
|
|
115
121
|
}
|
|
116
122
|
export async function getSessionByState(client, state) {
|
|
117
|
-
const result = await client.query("select * from
|
|
123
|
+
const result = await client.query("select * from assembly_line_connection_authorization_sessions where state=$1", [state]);
|
|
118
124
|
const row = result.rows[0];
|
|
119
125
|
return row ? mapConnectionAuthorizationSession(row) : undefined;
|
|
120
126
|
}
|
|
121
127
|
export async function findPendingSession(client, connectionName, principalKey) {
|
|
122
|
-
const result = await client.query(`select * from
|
|
128
|
+
const result = await client.query(`select * from assembly_line_connection_authorization_sessions
|
|
123
129
|
where connection_name=$1 and principal_key=$2 and status='pending' and expires_at>$3
|
|
124
130
|
order by created_at desc
|
|
125
131
|
limit 1`, [connectionName, principalKey, Date.now()]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-grants.js","sourceRoot":"","sources":["../src/adapter-grants.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iCAAiC,EAAE,kBAAkB,EAAY,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAmB,EAAE,cAAsB,EAAE,YAAoB;IAC9F,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B,
|
|
1
|
+
{"version":3,"file":"adapter-grants.js","sourceRoot":"","sources":["../src/adapter-grants.ts"],"names":[],"mappings":"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"}
|
package/dist/adapter-memory.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ import type { MemoryListInput, MemorySearchInput } from "@assemblyline-agents/co
|
|
|
2
2
|
import type { MemoryDocument, MemoryEmbeddingRecord, MemoryScope, MemorySearchResult } from "@assemblyline-agents/runtime";
|
|
3
3
|
import type { QueryClient } from "./client-types.js";
|
|
4
4
|
export declare function listMemoryDocuments(client: QueryClient, scope: MemoryScope, input?: MemoryListInput): Promise<MemoryDocument[]>;
|
|
5
|
+
/** Operator listing across every scope of one agent; recall never uses this. */
|
|
6
|
+
export declare function listAllMemoryDocuments(client: QueryClient, agentScope: string, input?: MemoryListInput): Promise<MemoryDocument[]>;
|
|
5
7
|
export declare function searchMemoryDocuments(client: QueryClient, scope: MemoryScope, input: MemorySearchInput): Promise<MemorySearchResult[]>;
|
|
6
8
|
export declare function getMemoryDocument(client: QueryClient, scope: MemoryScope, path: string): Promise<MemoryDocument | undefined>;
|
|
7
9
|
export declare function upsertMemoryDocument(client: QueryClient, document: MemoryDocument): Promise<MemoryDocument>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-memory.d.ts","sourceRoot":"","sources":["../src/adapter-memory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC3H,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAkBrD,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAYzI;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAuC5I;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAQlI;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CA0CjH;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9C,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,oCAAoC,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAezK;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAqCrK;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAyB/B;AAED,wBAAsB,yBAAyB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3I"}
|
|
1
|
+
{"version":3,"file":"adapter-memory.d.ts","sourceRoot":"","sources":["../src/adapter-memory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC3H,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAkBrD,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAYzI;AAED,gFAAgF;AAChF,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAW5I;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAuC5I;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAQlI;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CA0CjH;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9C,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,oCAAoC,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAezK;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAqCrK;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAyB/B;AAED,wBAAsB,yBAAyB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3I"}
|
package/dist/adapter-memory.js
CHANGED
|
@@ -2,7 +2,7 @@ import { randomUUID } from "node:crypto";
|
|
|
2
2
|
import { mapMemoryDocument, mapMemoryEmbedding, memoryEmbeddingSearchResultFromPostgres, memorySearchResultFromPostgres } from "./row-mappers.js";
|
|
3
3
|
import { memoryScopeMatchesForPostgres, normalizeMemoryPathForPostgres, positiveLimit, postgresMemoryKey, postgresMemoryScopeWhere, postgresVectorLiteral, timestamp } from "./sql-helpers.js";
|
|
4
4
|
export async function listMemoryDocuments(client, scope, input = {}) {
|
|
5
|
-
const result = await client.query("select * from
|
|
5
|
+
const result = await client.query("select * from assembly_line_memory_documents where scope->>'agentScope'=$1 order by updated_at desc", [scope.agentScope]);
|
|
6
6
|
const prefix = normalizeMemoryPathForPostgres(input.pathPrefix ?? "");
|
|
7
7
|
const limit = input.limit === undefined ? Number.MAX_SAFE_INTEGER : positiveLimit(input.limit, 50);
|
|
8
8
|
return result.rows
|
|
@@ -11,6 +11,16 @@ export async function listMemoryDocuments(client, scope, input = {}) {
|
|
|
11
11
|
.filter((document) => !prefix || document.path.startsWith(prefix))
|
|
12
12
|
.slice(0, limit);
|
|
13
13
|
}
|
|
14
|
+
/** Operator listing across every scope of one agent; recall never uses this. */
|
|
15
|
+
export async function listAllMemoryDocuments(client, agentScope, input = {}) {
|
|
16
|
+
const result = await client.query("select * from assembly_line_memory_documents where scope->>'agentScope'=$1 order by updated_at desc", [agentScope]);
|
|
17
|
+
const prefix = normalizeMemoryPathForPostgres(input.pathPrefix ?? "");
|
|
18
|
+
const limit = input.limit === undefined ? Number.MAX_SAFE_INTEGER : positiveLimit(input.limit, 50);
|
|
19
|
+
return result.rows
|
|
20
|
+
.map(mapMemoryDocument)
|
|
21
|
+
.filter((document) => !prefix || document.path.startsWith(prefix))
|
|
22
|
+
.slice(0, limit);
|
|
23
|
+
}
|
|
14
24
|
export async function searchMemoryDocuments(client, scope, input) {
|
|
15
25
|
const query = String(input.query ?? "").trim();
|
|
16
26
|
const pathPrefix = normalizeMemoryPathForPostgres(input.pathPrefix ?? "");
|
|
@@ -21,7 +31,7 @@ export async function searchMemoryDocuments(client, scope, input) {
|
|
|
21
31
|
const exact = mode === "exact";
|
|
22
32
|
const result = await client.query(exact
|
|
23
33
|
? `select *, 1::float as rank
|
|
24
|
-
from
|
|
34
|
+
from assembly_line_memory_documents
|
|
25
35
|
where scope->>'agentScope'=$1
|
|
26
36
|
and ($3 = '' or normalized_path like ($3 || '%'))
|
|
27
37
|
and (normalized_path = $2 or path = $2)
|
|
@@ -31,7 +41,7 @@ export async function searchMemoryDocuments(client, scope, input) {
|
|
|
31
41
|
: `select *,
|
|
32
42
|
ts_rank(search_vector, plainto_tsquery('simple', $2)) as rank,
|
|
33
43
|
ts_headline('simple', body::text, plainto_tsquery('simple', $2), 'MaxWords=32, MinWords=8, ShortWord=3') as snippet
|
|
34
|
-
from
|
|
44
|
+
from assembly_line_memory_documents
|
|
35
45
|
where scope->>'agentScope'=$1
|
|
36
46
|
and ($3 = '' or normalized_path like ($3 || '%'))
|
|
37
47
|
and (
|
|
@@ -50,12 +60,12 @@ export async function searchMemoryDocuments(client, scope, input) {
|
|
|
50
60
|
}
|
|
51
61
|
export async function getMemoryDocument(client, scope, path) {
|
|
52
62
|
const normalizedPath = normalizeMemoryPathForPostgres(path);
|
|
53
|
-
const result = await client.query("select * from
|
|
63
|
+
const result = await client.query("select * from assembly_line_memory_documents where scope_key=$1", [postgresMemoryKey(scope, normalizedPath)]);
|
|
54
64
|
const row = result.rows[0];
|
|
55
65
|
return row ? mapMemoryDocument(row) : undefined;
|
|
56
66
|
}
|
|
57
67
|
export async function upsertMemoryDocument(client, document) {
|
|
58
|
-
const result = await client.query(`insert into
|
|
68
|
+
const result = await client.query(`insert into assembly_line_memory_documents
|
|
59
69
|
(id, scope_key, scope, path, normalized_path, body, content_type, title, summary, tags, confidence, source_refs, token_estimate, sha256, revision, created_at, updated_at)
|
|
60
70
|
values ($1,$2,$3::jsonb,$4,$5,$6::jsonb,$7,$8,$9,$10::jsonb,$11,$12::jsonb,$13,$14,$15,$16,$17)
|
|
61
71
|
on conflict (scope_key) do update set
|
|
@@ -98,15 +108,15 @@ export async function deleteMemoryDocument(client, scope, path, options = {}) {
|
|
|
98
108
|
const normalizedPath = normalizeMemoryPathForPostgres(path);
|
|
99
109
|
const key = postgresMemoryKey(scope, normalizedPath);
|
|
100
110
|
if (options.embeddingsAvailable !== false) {
|
|
101
|
-
await client.query("delete from
|
|
111
|
+
await client.query("delete from assembly_line_memory_embeddings where scope_key=$1", [key]);
|
|
102
112
|
}
|
|
103
|
-
await client.query("delete from
|
|
113
|
+
await client.query("delete from assembly_line_memory_documents where scope_key=$1", [key]);
|
|
104
114
|
}
|
|
105
115
|
export async function listMemoryDocumentsNeedingEmbeddings(client, scope, options) {
|
|
106
116
|
const scopeFilter = postgresMemoryScopeWhere(scope, 4);
|
|
107
117
|
const result = await client.query(`select d.*
|
|
108
|
-
from
|
|
109
|
-
left join
|
|
118
|
+
from assembly_line_memory_documents d
|
|
119
|
+
left join assembly_line_memory_embeddings e
|
|
110
120
|
on e.scope_key=d.scope_key and e.model=$2
|
|
111
121
|
where d.scope->>'agentScope'=$1
|
|
112
122
|
and (e.id is null or e.stale=true or e.content_sha256 <> d.sha256)
|
|
@@ -117,7 +127,7 @@ export async function listMemoryDocumentsNeedingEmbeddings(client, scope, option
|
|
|
117
127
|
}
|
|
118
128
|
export async function upsertMemoryEmbedding(client, input) {
|
|
119
129
|
const now = timestamp();
|
|
120
|
-
const result = await client.query(`insert into
|
|
130
|
+
const result = await client.query(`insert into assembly_line_memory_embeddings
|
|
121
131
|
(id, scope_key, scope, path, model, dimensions, content_sha256, embedding, stale, metadata, created_at, updated_at)
|
|
122
132
|
values ($1,$2,$3::jsonb,$4,$5,$6,$7,$8::vector,$9,$10::jsonb,$11,$12)
|
|
123
133
|
on conflict (scope_key, model) do update set
|
|
@@ -154,8 +164,8 @@ export async function searchMemoryEmbeddings(client, scope, input, embedding, op
|
|
|
154
164
|
const pathPrefix = normalizeMemoryPathForPostgres(input.pathPrefix ?? "");
|
|
155
165
|
const scopeFilter = postgresMemoryScopeWhere(scope, 6);
|
|
156
166
|
const result = await client.query(`select d.*, (e.embedding <=> $2::vector) as distance
|
|
157
|
-
from
|
|
158
|
-
join
|
|
167
|
+
from assembly_line_memory_embeddings e
|
|
168
|
+
join assembly_line_memory_documents d
|
|
159
169
|
on d.scope_key=e.scope_key
|
|
160
170
|
where e.model=$3
|
|
161
171
|
and e.stale=false
|
|
@@ -174,7 +184,7 @@ export async function searchMemoryEmbeddings(client, scope, input, embedding, op
|
|
|
174
184
|
return result.rows.map((row) => memoryEmbeddingSearchResultFromPostgres(row, input.query));
|
|
175
185
|
}
|
|
176
186
|
export async function markMemoryEmbeddingsStale(client, scope, path, currentSha256) {
|
|
177
|
-
await client.query(`update
|
|
187
|
+
await client.query(`update assembly_line_memory_embeddings
|
|
178
188
|
set stale=true, updated_at=$4
|
|
179
189
|
where scope_key=$1 and path=$2 and content_sha256 <> $3`, [postgresMemoryKey(scope, path), normalizeMemoryPathForPostgres(path), currentSha256, timestamp()]);
|
|
180
190
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-memory.js","sourceRoot":"","sources":["../src/adapter-memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,uCAAuC,EACvC,8BAA8B,EAE/B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,aAAa,EACb,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,SAAS,EACV,MAAM,kBAAkB,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAmB,EAAE,KAAkB,EAAE,QAAyB,EAAE;IAC5G,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B
|
|
1
|
+
{"version":3,"file":"adapter-memory.js","sourceRoot":"","sources":["../src/adapter-memory.ts"],"names":[],"mappings":"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"}
|
package/dist/adapter-misc.d.ts
CHANGED
|
@@ -34,6 +34,8 @@ export declare function enqueueScheduleRun(client: QueryClient, input: {
|
|
|
34
34
|
status?: string;
|
|
35
35
|
}): Promise<PostgresScheduleRunRecord>;
|
|
36
36
|
export declare function reserveIdempotencyKey(client: QueryClient, scope: string, key: string, ownerId?: string): Promise<boolean>;
|
|
37
|
+
/** Un-burn a reservation whose guarded work never became durable. */
|
|
38
|
+
export declare function releaseIdempotencyKey(client: QueryClient, scope: string, key: string): Promise<void>;
|
|
37
39
|
export declare function registerSchedule(client: QueryClient, input: {
|
|
38
40
|
id: string;
|
|
39
41
|
name: string;
|
|
@@ -50,6 +52,7 @@ export declare function recordScheduleRun(client: QueryClient, input: {
|
|
|
50
52
|
}): Promise<ScheduleRunRecord>;
|
|
51
53
|
export declare function recordFileIndex(client: QueryClient, input: {
|
|
52
54
|
runId?: string;
|
|
55
|
+
workspaceId?: string;
|
|
53
56
|
path: string;
|
|
54
57
|
kind: FileIndexRecord["kind"];
|
|
55
58
|
blobKey: string;
|
|
@@ -58,4 +61,9 @@ export declare function recordFileIndex(client: QueryClient, input: {
|
|
|
58
61
|
metadata?: JsonObject;
|
|
59
62
|
}): Promise<FileIndexRecord>;
|
|
60
63
|
export declare function listFileIndexes(client: QueryClient, runId?: string): Promise<FileIndexRecord[]>;
|
|
64
|
+
export declare function listWorkspaceFileIndexes(client: QueryClient, workspaceId: string, input?: {
|
|
65
|
+
id?: string;
|
|
66
|
+
query?: string;
|
|
67
|
+
limit?: number;
|
|
68
|
+
}): Promise<FileIndexRecord[]>;
|
|
61
69
|
//# sourceMappingURL=adapter-misc.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-misc.d.ts","sourceRoot":"","sources":["../src/adapter-misc.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter-misc.d.ts","sourceRoot":"","sources":["../src/adapter-misc.ts"],"names":[],"mappings":"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"}
|
package/dist/adapter-misc.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { DEFAULT_WORKSPACE_FILE_INDEX_LIMIT, MAX_WORKSPACE_FILE_INDEX_LIMIT } from "@assemblyline-agents/runtime";
|
|
2
3
|
import { mapFileIndexRecord } from "./row-mappers.js";
|
|
3
|
-
import { timestamp } from "./sql-helpers.js";
|
|
4
|
+
import { timestamp, toIso } from "./sql-helpers.js";
|
|
4
5
|
export async function enqueueRun(client, runId, options = {}) {
|
|
5
6
|
const now = timestamp();
|
|
6
7
|
const record = {
|
|
@@ -13,7 +14,7 @@ export async function enqueueRun(client, runId, options = {}) {
|
|
|
13
14
|
createdAt: now,
|
|
14
15
|
updatedAt: now
|
|
15
16
|
};
|
|
16
|
-
await client.query(`insert into
|
|
17
|
+
await client.query(`insert into assembly_line_run_queue
|
|
17
18
|
(id, run_id, queue, status, available_at, idempotency_key, created_at, updated_at)
|
|
18
19
|
values ($1,$2,$3,$4,$5,$6,$7,$8)
|
|
19
20
|
on conflict (idempotency_key) do nothing`, [record.id, runId, record.queue, record.status, record.availableAt, record.idempotencyKey, record.createdAt, record.updatedAt]);
|
|
@@ -32,27 +33,50 @@ export async function enqueueScheduleRun(client, input) {
|
|
|
32
33
|
};
|
|
33
34
|
if (input.runId)
|
|
34
35
|
record.runId = input.runId;
|
|
35
|
-
|
|
36
|
+
// On an idempotency-key conflict the stored status is preserved unless the
|
|
37
|
+
// caller explicitly passed one, and the ACTUAL stored row (its original id
|
|
38
|
+
// and created_at) is returned — matching InMemoryScheduleStateStore.
|
|
39
|
+
const result = await client.query(`insert into assembly_line_schedule_runs
|
|
36
40
|
(id, schedule_id, run_id, idempotency_key, status, run_at, created_at, updated_at)
|
|
37
|
-
values ($1,$2,$3,$4
|
|
41
|
+
values ($1,$2,$3,$4,coalesce($5,'ready'),$6,$7,$8)
|
|
38
42
|
on conflict (idempotency_key) do update
|
|
39
43
|
set schedule_id=$2,
|
|
40
|
-
run_id=coalesce($3,
|
|
41
|
-
status
|
|
44
|
+
run_id=coalesce($3, assembly_line_schedule_runs.run_id),
|
|
45
|
+
status=coalesce($5, assembly_line_schedule_runs.status),
|
|
42
46
|
run_at=$6,
|
|
43
|
-
updated_at=$8
|
|
47
|
+
updated_at=$8
|
|
48
|
+
returning *`, [record.id, record.scheduleId, record.runId ?? null, record.idempotencyKey, input.status ?? null, record.runAt, record.createdAt, record.updatedAt]);
|
|
49
|
+
const row = result.rows[0];
|
|
50
|
+
return row ? mapScheduleRunRow(row) : record;
|
|
51
|
+
}
|
|
52
|
+
function mapScheduleRunRow(row) {
|
|
53
|
+
const record = {
|
|
54
|
+
id: String(row.id),
|
|
55
|
+
scheduleId: String(row.schedule_id),
|
|
56
|
+
status: String(row.status),
|
|
57
|
+
runAt: toIso(row.run_at),
|
|
58
|
+
idempotencyKey: String(row.idempotency_key),
|
|
59
|
+
createdAt: toIso(row.created_at),
|
|
60
|
+
updatedAt: toIso(row.updated_at)
|
|
61
|
+
};
|
|
62
|
+
if (row.run_id)
|
|
63
|
+
record.runId = String(row.run_id);
|
|
44
64
|
return record;
|
|
45
65
|
}
|
|
46
66
|
export async function reserveIdempotencyKey(client, scope, key, ownerId) {
|
|
47
|
-
const result = await client.query(`insert into
|
|
67
|
+
const result = await client.query(`insert into assembly_line_idempotency_keys (scope, key, owner_id, created_at)
|
|
48
68
|
values ($1,$2,$3,$4)
|
|
49
69
|
on conflict (scope, key) do nothing
|
|
50
70
|
returning key as inserted`, [scope, key, ownerId ?? null, timestamp()]);
|
|
51
71
|
return result.rows.length > 0;
|
|
52
72
|
}
|
|
73
|
+
/** Un-burn a reservation whose guarded work never became durable. */
|
|
74
|
+
export async function releaseIdempotencyKey(client, scope, key) {
|
|
75
|
+
await client.query("delete from assembly_line_idempotency_keys where scope=$1 and key=$2", [scope, key]);
|
|
76
|
+
}
|
|
53
77
|
export async function registerSchedule(client, input) {
|
|
54
78
|
const now = timestamp();
|
|
55
|
-
await client.query(`insert into
|
|
79
|
+
await client.query(`insert into assembly_line_schedules (id, name, cron, timezone, metadata, created_at, updated_at)
|
|
56
80
|
values ($1,$2,$3,$4,$5::jsonb,$6,$7)
|
|
57
81
|
on conflict (id) do update set name=$2, cron=$3, timezone=$4, metadata=$5::jsonb, updated_at=$7`, [input.id, input.name, input.cron, input.timezone ?? null, JSON.stringify(input.metadata ?? {}), now, now]);
|
|
58
82
|
return {
|
|
@@ -90,38 +114,61 @@ export async function recordFileIndex(client, input) {
|
|
|
90
114
|
};
|
|
91
115
|
if (input.runId)
|
|
92
116
|
record.runId = input.runId;
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
117
|
+
if (input.workspaceId)
|
|
118
|
+
record.workspaceId = input.workspaceId;
|
|
119
|
+
// Dedupe matches InMemoryFileIndexStore: (runId, path, kind, sha256) with a
|
|
120
|
+
// NULL runId participating like any other value (nulls-not-distinct indexes
|
|
121
|
+
// from migration 016). On conflict the row is left as-is and the ACTUAL
|
|
122
|
+
// stored record is returned via the no-op update's RETURNING clause.
|
|
123
|
+
if (input.kind === "memory") {
|
|
124
|
+
const result = await client.query(`insert into assembly_line_memory_file_indexes (id, run_id, path, blob_key, sha256, size_bytes, created_at)
|
|
96
125
|
values ($1,$2,$3,$4,$5,$6,$7)
|
|
97
|
-
on conflict (run_id, path, sha256) do update set
|
|
126
|
+
on conflict (run_id, path, sha256) do update set id=assembly_line_memory_file_indexes.id
|
|
127
|
+
returning *`, [record.id, record.runId ?? null, record.path, record.blobKey, record.sha256, record.sizeBytes, record.createdAt]);
|
|
128
|
+
const row = result.rows[0];
|
|
129
|
+
return row ? mapFileIndexRecord({ ...row, kind: "memory", metadata: {} }) : record;
|
|
98
130
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
131
|
+
const result = await client.query(`insert into assembly_line_file_catalog_records (id, run_id, workspace_id, path, kind, blob_key, sha256, size_bytes, metadata, created_at)
|
|
132
|
+
values ($1,$2,$3,$4,$5,$6,$7,$8,$9::jsonb,$10)
|
|
133
|
+
on conflict (run_id, path, kind, sha256) do update
|
|
134
|
+
set workspace_id=coalesce(assembly_line_file_catalog_records.workspace_id, excluded.workspace_id)
|
|
135
|
+
returning *`, [
|
|
136
|
+
record.id,
|
|
137
|
+
record.runId ?? null,
|
|
138
|
+
record.workspaceId ?? null,
|
|
139
|
+
record.path,
|
|
140
|
+
record.kind,
|
|
141
|
+
record.blobKey,
|
|
142
|
+
record.sha256,
|
|
143
|
+
record.sizeBytes,
|
|
144
|
+
JSON.stringify(record.metadata),
|
|
145
|
+
record.createdAt
|
|
146
|
+
]);
|
|
147
|
+
const row = result.rows[0];
|
|
148
|
+
return row ? mapFileIndexRecord(row) : record;
|
|
115
149
|
}
|
|
116
150
|
export async function listFileIndexes(client, runId) {
|
|
117
|
-
const result = await client.query(`select id, run_id, path, 'memory' as kind, blob_key, sha256, size_bytes, '{}'::jsonb as metadata, created_at
|
|
118
|
-
from
|
|
151
|
+
const result = await client.query(`select id, run_id, null::text as workspace_id, path, 'memory' as kind, blob_key, sha256, size_bytes, '{}'::jsonb as metadata, created_at
|
|
152
|
+
from assembly_line_memory_file_indexes
|
|
119
153
|
where ($1::text is null or run_id=$1)
|
|
120
154
|
union all
|
|
121
|
-
select id, run_id, path, kind, blob_key, sha256, size_bytes, metadata, created_at
|
|
122
|
-
from
|
|
155
|
+
select id, run_id, workspace_id, path, kind, blob_key, sha256, size_bytes, metadata, created_at
|
|
156
|
+
from assembly_line_file_catalog_records
|
|
123
157
|
where ($1::text is null or run_id=$1)
|
|
124
158
|
order by created_at desc`, [runId ?? null]);
|
|
125
159
|
return result.rows.map(mapFileIndexRecord);
|
|
126
160
|
}
|
|
161
|
+
export async function listWorkspaceFileIndexes(client, workspaceId, input = {}) {
|
|
162
|
+
const limit = Math.max(1, Math.min(MAX_WORKSPACE_FILE_INDEX_LIMIT, Math.floor(input.limit ?? DEFAULT_WORKSPACE_FILE_INDEX_LIMIT)));
|
|
163
|
+
const query = input.query?.trim().toLowerCase();
|
|
164
|
+
const result = await client.query(`select id, run_id, workspace_id, path, kind, blob_key, sha256, size_bytes, metadata, created_at
|
|
165
|
+
from assembly_line_file_catalog_records
|
|
166
|
+
where workspace_id=$1
|
|
167
|
+
and kind <> 'memory'
|
|
168
|
+
and ($2::text is null or id=$2)
|
|
169
|
+
and ($3::text is null or position($3 in lower(concat_ws(' ', id, path, metadata->>'filename', metadata->>'name'))) > 0)
|
|
170
|
+
order by created_at desc
|
|
171
|
+
limit $4`, [workspaceId, input.id ?? null, query || null, limit]);
|
|
172
|
+
return result.rows.map(mapFileIndexRecord);
|
|
173
|
+
}
|
|
127
174
|
//# sourceMappingURL=adapter-misc.js.map
|
package/dist/adapter-misc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-misc.js","sourceRoot":"","sources":["../src/adapter-misc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter-misc.js","sourceRoot":"","sources":["../src/adapter-misc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-runs.d.ts","sourceRoot":"","sources":["../src/adapter-runs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnI,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,wBAAsB,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"adapter-runs.d.ts","sourceRoot":"","sources":["../src/adapter-runs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnI,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,wBAAsB,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAgCjI;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAkCxI;AAED,wBAAsB,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO7E;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAyBrH;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAe1F;AAED,wBAAsB,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAI5F;AAED,wBAAsB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAGxE;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAejK;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,GAAE,UAAe,GAAG,OAAO,CAAC,QAAQ,CAAC,CAsBlI;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAGxF;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAsBhJ;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAmBvJ;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAGjG"}
|