@assemblyline-agents/postgres 1.0.0 → 3.0.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.
Files changed (85) hide show
  1. package/LICENSE +1 -1
  2. package/dist/adapter-agent-state.d.ts +15 -0
  3. package/dist/adapter-agent-state.d.ts.map +1 -0
  4. package/dist/adapter-agent-state.js +163 -0
  5. package/dist/adapter-agent-state.js.map +1 -0
  6. package/dist/adapter-checkpoints.d.ts +1 -1
  7. package/dist/adapter-checkpoints.d.ts.map +1 -1
  8. package/dist/adapter-checkpoints.js +47 -27
  9. package/dist/adapter-checkpoints.js.map +1 -1
  10. package/dist/adapter-connection-events.d.ts +26 -0
  11. package/dist/adapter-connection-events.d.ts.map +1 -0
  12. package/dist/adapter-connection-events.js +126 -0
  13. package/dist/adapter-connection-events.js.map +1 -0
  14. package/dist/adapter-conversation-turns.d.ts +3 -1
  15. package/dist/adapter-conversation-turns.d.ts.map +1 -1
  16. package/dist/adapter-conversation-turns.js +99 -17
  17. package/dist/adapter-conversation-turns.js.map +1 -1
  18. package/dist/adapter-conversations.d.ts +11 -1
  19. package/dist/adapter-conversations.d.ts.map +1 -1
  20. package/dist/adapter-conversations.js +82 -15
  21. package/dist/adapter-conversations.js.map +1 -1
  22. package/dist/adapter-delivery.d.ts.map +1 -1
  23. package/dist/adapter-delivery.js +20 -12
  24. package/dist/adapter-delivery.js.map +1 -1
  25. package/dist/adapter-grants.d.ts +2 -0
  26. package/dist/adapter-grants.d.ts.map +1 -1
  27. package/dist/adapter-grants.js +18 -8
  28. package/dist/adapter-grants.js.map +1 -1
  29. package/dist/adapter-memory.d.ts +2 -0
  30. package/dist/adapter-memory.d.ts.map +1 -1
  31. package/dist/adapter-memory.js +23 -13
  32. package/dist/adapter-memory.js.map +1 -1
  33. package/dist/adapter-misc.d.ts +8 -0
  34. package/dist/adapter-misc.d.ts.map +1 -1
  35. package/dist/adapter-misc.js +80 -33
  36. package/dist/adapter-misc.js.map +1 -1
  37. package/dist/adapter-runs.d.ts.map +1 -1
  38. package/dist/adapter-runs.js +37 -23
  39. package/dist/adapter-runs.js.map +1 -1
  40. package/dist/adapter-sandbox.d.ts +2 -1
  41. package/dist/adapter-sandbox.d.ts.map +1 -1
  42. package/dist/adapter-sandbox.js +91 -19
  43. package/dist/adapter-sandbox.js.map +1 -1
  44. package/dist/adapter-settings.js +4 -4
  45. package/dist/adapter-settings.js.map +1 -1
  46. package/dist/adapter-timeline.d.ts +5 -0
  47. package/dist/adapter-timeline.d.ts.map +1 -0
  48. package/dist/adapter-timeline.js +86 -0
  49. package/dist/adapter-timeline.js.map +1 -0
  50. package/dist/adapter-usage.d.ts.map +1 -1
  51. package/dist/adapter-usage.js +7 -7
  52. package/dist/adapter-usage.js.map +1 -1
  53. package/dist/adapter-workspaces.d.ts +25 -0
  54. package/dist/adapter-workspaces.d.ts.map +1 -0
  55. package/dist/adapter-workspaces.js +486 -0
  56. package/dist/adapter-workspaces.js.map +1 -0
  57. package/dist/index.d.ts +90 -2
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +150 -6
  60. package/dist/index.js.map +1 -1
  61. package/dist/learning-store.d.ts +32 -0
  62. package/dist/learning-store.d.ts.map +1 -0
  63. package/dist/learning-store.js +182 -0
  64. package/dist/learning-store.js.map +1 -0
  65. package/dist/migrations.d.ts +7 -1
  66. package/dist/migrations.d.ts.map +1 -1
  67. package/dist/migrations.js +617 -150
  68. package/dist/migrations.js.map +1 -1
  69. package/dist/presets.d.ts +1 -1
  70. package/dist/presets.d.ts.map +1 -1
  71. package/dist/provider.d.ts +1 -1
  72. package/dist/provider.js +7 -7
  73. package/dist/provider.js.map +1 -1
  74. package/dist/row-mappers.d.ts.map +1 -1
  75. package/dist/row-mappers.js +24 -3
  76. package/dist/row-mappers.js.map +1 -1
  77. package/dist/sql-helpers.d.ts +0 -1
  78. package/dist/sql-helpers.d.ts.map +1 -1
  79. package/dist/sql-helpers.js +11 -6
  80. package/dist/sql-helpers.js.map +1 -1
  81. package/dist/stores.d.ts +3 -1
  82. package/dist/stores.d.ts.map +1 -1
  83. package/dist/stores.js +72 -24
  84. package/dist/stores.js.map +1 -1
  85. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-timeline.js","sourceRoot":"","sources":["../src/adapter-timeline.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-usage.d.ts","sourceRoot":"","sources":["../src/adapter-usage.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,cAAc,EAEnB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,wBAAsB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAEpG;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAK3F;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAY/F;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAgD7G"}
1
+ {"version":3,"file":"adapter-usage.d.ts","sourceRoot":"","sources":["../src/adapter-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EAEnB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,wBAAsB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAEpG;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAK3F;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAY/F;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAgD7G"}
@@ -6,15 +6,15 @@ export async function recordUsage(client, input) {
6
6
  }
7
7
  export async function listUsage(client, runId) {
8
8
  const result = runId
9
- ? await client.query("select * from openeve_usage_records where run_id=$1 order by occurred_at asc, id asc", [runId])
10
- : await client.query("select * from openeve_usage_records order by occurred_at asc, id asc");
9
+ ? await client.query("select * from assembly_line_usage_records where run_id=$1 order by occurred_at asc, id asc", [runId])
10
+ : await client.query("select * from assembly_line_usage_records order by occurred_at asc, id asc");
11
11
  return result.rows.map(mapUsage);
12
12
  }
13
13
  export async function queryUsage(client, query) {
14
14
  const built = usageWhere(query);
15
15
  const limit = boundedLimit(query.limit);
16
16
  built.params.push(limit);
17
- const result = await client.query(`select * from openeve_usage_records
17
+ const result = await client.query(`select * from assembly_line_usage_records
18
18
  ${built.sql}
19
19
  order by occurred_at desc, id desc
20
20
  limit $${built.params.length}`, built.params);
@@ -43,7 +43,7 @@ export async function summarizeUsage(client, query) {
43
43
  count(*) filter (where cost_source='unavailable')::text as unavailable_cost_records,
44
44
  count(*) filter (where token_source='unavailable')::text as unreconciled_token_records,
45
45
  count(*) filter (where cost_source='unavailable')::text as unreconciled_records
46
- from openeve_usage_records
46
+ from assembly_line_usage_records
47
47
  ${built.sql}
48
48
  ${groupSql}
49
49
  order by ${selections.length > 0 ? selections.map((selection) => `"${selection.alias}"`).join(", ") : "record_count desc"}`, built.params);
@@ -67,7 +67,7 @@ export async function summarizeUsage(client, query) {
67
67
  }));
68
68
  }
69
69
  async function insertUsage(client, record) {
70
- const result = await client.query(`insert into openeve_usage_records
70
+ const result = await client.query(`insert into assembly_line_usage_records
71
71
  (id,idempotency_key,run_id,parent_run_id,agent_id,agent_revision,subagent,turn_id,iteration,
72
72
  provider,provider_request_id,model,response_model,billing_mode,record_kind,
73
73
  input_tokens,output_tokens,cached_tokens,cache_write_tokens,reasoning_tokens,
@@ -113,7 +113,7 @@ async function insertUsage(client, record) {
113
113
  const inserted = result.rows[0];
114
114
  if (inserted)
115
115
  return mapUsage(inserted);
116
- const existing = await client.query("select * from openeve_usage_records where idempotency_key=$1 for update", [record.idempotencyKey]);
116
+ const existing = await client.query("select * from assembly_line_usage_records where idempotency_key=$1 for update", [record.idempotencyKey]);
117
117
  const row = existing.rows[0];
118
118
  if (!row)
119
119
  throw new UsageAccountingError(`Usage idempotency conflict did not return ${record.idempotencyKey}.`);
@@ -121,7 +121,7 @@ async function insertUsage(client, record) {
121
121
  const reconciled = reconcileUsageRecord(current, usageRecordInput(record));
122
122
  if (reconciled === current)
123
123
  return current;
124
- const updated = await client.query(`update openeve_usage_records
124
+ const updated = await client.query(`update assembly_line_usage_records
125
125
  set input_tokens=$2,output_tokens=$3,cached_tokens=$4,cache_write_tokens=$5,reasoning_tokens=$6,
126
126
  cost_usd=$7,cost_micros=$8,upstream_cost_micros=$9,
127
127
  currency=$10,token_source=$11,cost_source=$12,provider_receipt=$13::jsonb,
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-usage.js","sourceRoot":"","sources":["../src/adapter-usage.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAOjB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAY,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAmB,EAAE,KAAuB;IAC5E,OAAO,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAmB,EAAE,KAAc;IACjE,MAAM,MAAM,GAAG,KAAK;QAClB,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,CAAM,sFAAsF,EAAE,CAAC,KAAK,CAAC,CAAC;QAC1H,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,CAAM,sEAAsE,CAAC,CAAC;IACpG,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAmB,EAAE,KAAiB;IACrE,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B;OACG,KAAK,CAAC,GAAG;;cAEF,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,EAC/B,KAAK,CAAC,MAAM,CACb,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAmB,EAAE,KAAwB;IAChF,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,UAAmB,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;QACxC,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,UAAU,QAAQ,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACnG,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;QACpC,CAAC,CAAC,YAAY,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC9E,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B,UAAU,YAAY;;;;;;;;;;;;;;OAcnB,KAAK,CAAC,GAAG;OACT,QAAQ;gBACC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,EAC5H,KAAK,CAAC,MAAM,CACb,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC;YAC3D,SAAS,CAAC,KAAK;YACf,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC/G,CAAC,CAAC;QACH,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC;QAC5C,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC;QAC5C,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC;QAC9C,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC;QAC9C,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,IAAI,GAAG,CAAC;QACvD,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC;QACpD,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB,IAAI,GAAG,CAAC;QACvD,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,IAAI,GAAG,CAAC;QAC3D,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC;QACvC,sBAAsB,EAAE,MAAM,CAAC,GAAG,CAAC,wBAAwB,IAAI,GAAG,CAAC;QACnE,wBAAwB,EAAE,MAAM,CAAC,GAAG,CAAC,0BAA0B,IAAI,GAAG,CAAC;QACvE,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,IAAI,GAAG,CAAC;KAC7D,CAAC,CAAC,CAAC;AACN,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,MAAmB,EAAE,MAAmB;IACjE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B;;;;;;;;;;iBAUa,EACb;QACE,MAAM,CAAC,EAAE;QACT,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,KAAK,IAAI,IAAI;QACpB,MAAM,CAAC,WAAW,IAAI,IAAI;QAC1B,MAAM,CAAC,OAAO,IAAI,IAAI;QACtB,MAAM,CAAC,aAAa,IAAI,IAAI;QAC5B,MAAM,CAAC,QAAQ,IAAI,IAAI;QACvB,MAAM,CAAC,MAAM,IAAI,IAAI;QACrB,MAAM,CAAC,SAAS,IAAI,IAAI;QACxB,MAAM,CAAC,QAAQ,IAAI,IAAI;QACvB,MAAM,CAAC,iBAAiB,IAAI,IAAI;QAChC,MAAM,CAAC,KAAK,IAAI,IAAI;QACpB,MAAM,CAAC,aAAa,IAAI,IAAI;QAC5B,MAAM,CAAC,WAAW;QAClB,MAAM,CAAC,UAAU;QACjB,MAAM,CAAC,WAAW;QAClB,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,gBAAgB;QACvB,MAAM,CAAC,eAAe;QACtB,MAAM,CAAC,OAAO,IAAI,CAAC;QACnB,MAAM,CAAC,UAAU;QACjB,MAAM,CAAC,kBAAkB;QACzB,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,WAAW;QAClB,MAAM,CAAC,UAAU;QACjB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC;QACtC,MAAM,CAAC,aAAa,IAAI,IAAI;QAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC/B,MAAM,CAAC,UAAU;QACjB,MAAM,CAAC,SAAS;KACjB,CACF,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CACjC,yEAAyE,EACzE,CAAC,MAAM,CAAC,cAAc,CAAC,CACxB,CAAC;IACF,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,oBAAoB,CAAC,6CAA6C,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC;IAChH,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,IAAI,UAAU,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,CAChC;;;;;;iBAMa,EACb;QACE,UAAU,CAAC,EAAE;QACb,UAAU,CAAC,WAAW;QACtB,UAAU,CAAC,YAAY;QACvB,UAAU,CAAC,YAAY;QACvB,UAAU,CAAC,gBAAgB;QAC3B,UAAU,CAAC,eAAe;QAC1B,UAAU,CAAC,OAAO,IAAI,CAAC;QACvB,UAAU,CAAC,UAAU;QACrB,UAAU,CAAC,kBAAkB;QAC7B,UAAU,CAAC,QAAQ;QACnB,UAAU,CAAC,WAAW;QACtB,UAAU,CAAC,UAAU;QACrB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC;QAC1C,UAAU,CAAC,aAAa,IAAI,IAAI;QAChC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;KACpC,CACF,CAAC;IACF,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,oBAAoB,CAAC,0CAA0C,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC;IACpH,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,UAAU,CAAC,KAAqC;IACvD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,CAAC,MAAc,EAAE,KAAc,EAAQ,EAAE;QACnD,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAChC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC;IACF,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACxC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAC3C,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAChC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAC3C,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACvC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IACtD,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IACvC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACrC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC;AACrF,CAAC;AAED,SAAS,cAAc,CAAC,KAAmB;IACzC,MAAM,OAAO,GAA2D;QACtE,OAAO,EAAE,8BAA8B;QACvC,aAAa,EAAE,oCAAoC;QACnD,KAAK,EAAE,4BAA4B;QACnC,WAAW,EAAE,mCAAmC;QAChD,QAAQ,EAAE,8BAA8B;QACxC,QAAQ,EAAE,8BAA8B;QACxC,KAAK,EAAE,2BAA2B;QAClC,aAAa,EAAE,oCAAoC;QACnD,WAAW,EAAE,cAAc;QAC3B,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,cAAc;QAC3B,UAAU,EAAE,aAAa;QACzB,UAAU,EAAE,aAAa;KAC1B,CAAC;IACF,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,sDAAsD,EAAE,CAAC;IACxH,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,mDAAmD,EAAE,CAAC;IACzH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;AACxE,CAAC;AAED,KAAK,UAAU,eAAe,CAAI,MAAmB,EAAE,SAA0C;IAC/F,MAAM,IAAI,GAAG,MAEZ,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;IACtC,MAAM,EAAE,GAAG,MAAM,IAAI,MAAM,CAAC;IAC5B,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,0CAA0C;QAC5C,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,OAAO,EAAE,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAyB;IAC7C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,MAAM,IAAI,oBAAoB,CAAC,mCAAmC,CAAC,CAAC;IAC/G,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"adapter-usage.js","sourceRoot":"","sources":["../src/adapter-usage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { Workspace, WorkspaceCheckpoint, WorkspaceCommitInput, WorkspaceCommitResult, WorkspaceSearchChunk, WorkspaceSearchIndex, WorkspaceSearchResult, WorkspaceStore, WorkspaceVersion, WorkspaceVersionDeleteResult } from "@assemblyline-agents/runtime";
2
+ import type { QueryClient } from "./client-types.js";
3
+ export declare function resolveWorkspace(client: QueryClient, input: Parameters<WorkspaceStore["resolveWorkspace"]>[0]): Promise<Workspace>;
4
+ export declare function getWorkspace(client: QueryClient, id: string): Promise<Workspace | undefined>;
5
+ export declare function listWorkspaces(client: QueryClient, input?: {
6
+ agentScope?: string;
7
+ }): Promise<Workspace[]>;
8
+ export declare function getWorkspaceVersion(client: QueryClient, id: string): Promise<WorkspaceVersion | undefined>;
9
+ export declare function listWorkspaceVersions(client: QueryClient, workspaceId: string, input?: {
10
+ limit?: number;
11
+ }): Promise<WorkspaceVersion[]>;
12
+ export declare function commitWorkspaceVersion(client: QueryClient, input: WorkspaceCommitInput): Promise<WorkspaceCommitResult>;
13
+ export declare function createWorkspaceCheckpoint(client: QueryClient, input: Parameters<WorkspaceStore["createWorkspaceCheckpoint"]>[0]): Promise<WorkspaceCheckpoint>;
14
+ export declare function getWorkspaceCheckpoint(client: QueryClient, workspaceId: string, name: string): Promise<WorkspaceCheckpoint | undefined>;
15
+ export declare function listWorkspaceCheckpoints(client: QueryClient, workspaceId: string): Promise<WorkspaceCheckpoint[]>;
16
+ export declare function deleteWorkspaceCheckpoint(client: QueryClient, workspaceId: string, name: string): Promise<boolean>;
17
+ export declare function forkWorkspace(client: QueryClient, input: Parameters<WorkspaceStore["forkWorkspace"]>[0]): Promise<Workspace>;
18
+ export declare function replaceWorkspaceSearchChunks(client: QueryClient, input: Parameters<WorkspaceStore["replaceWorkspaceSearchChunks"]>[0]): Promise<WorkspaceSearchIndex>;
19
+ export declare function getWorkspaceSearchIndex(client: QueryClient, workspaceId: string): Promise<WorkspaceSearchIndex | undefined>;
20
+ export declare function listWorkspaceSearchChunks(client: QueryClient, workspaceId: string, versionId: string): Promise<WorkspaceSearchChunk[]>;
21
+ export declare function searchWorkspaceChunks(client: QueryClient, input: Parameters<WorkspaceStore["searchWorkspaceChunks"]>[0]): Promise<WorkspaceSearchResult[]>;
22
+ export declare function searchWorkspaceEmbeddings(client: QueryClient, input: Parameters<WorkspaceStore["searchWorkspaceEmbeddings"]>[0]): Promise<WorkspaceSearchResult[]>;
23
+ export declare function deleteWorkspaceVersions(client: QueryClient, workspaceId: string, versionIds: string[]): Promise<WorkspaceVersionDeleteResult>;
24
+ export declare function repairWorkspaceHead(client: QueryClient, input: Parameters<WorkspaceStore["repairWorkspaceHead"]>[0]): Promise<Workspace>;
25
+ //# sourceMappingURL=adapter-workspaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-workspaces.d.ts","sourceRoot":"","sources":["../src/adapter-workspaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,486 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { WorkspaceConflictError } from "@assemblyline-agents/runtime";
3
+ import { normalizeJsonObject, postgresVectorLiteral, timestamp, toIso } from "./sql-helpers.js";
4
+ export async function resolveWorkspace(client, input) {
5
+ const now = timestamp();
6
+ const result = await client.query(`insert into assembly_line_workspaces
7
+ (id, scope_key, scope, name, metadata, created_at, updated_at)
8
+ values ($1,$2,$3::jsonb,$4,$5::jsonb,$6,$6)
9
+ on conflict (scope_key) do update set scope_key=excluded.scope_key
10
+ returning *`, [input.id ?? randomUUID(), input.scopeKey, JSON.stringify(input.scope), input.name ?? null, JSON.stringify(input.metadata ?? {}), now]);
11
+ const row = result.rows[0];
12
+ if (!row)
13
+ throw new Error(`Failed to resolve workspace: ${input.scopeKey}`);
14
+ const workspace = mapWorkspace(row);
15
+ if (workspace.scope.agentScope !== input.scope.agentScope)
16
+ throw new Error(`Workspace is outside the requested agent scope: ${workspace.id}`);
17
+ return workspace;
18
+ }
19
+ export async function getWorkspace(client, id) {
20
+ const result = await client.query("select * from assembly_line_workspaces where id=$1", [id]);
21
+ const row = result.rows[0];
22
+ return row ? mapWorkspace(row) : undefined;
23
+ }
24
+ export async function listWorkspaces(client, input = {}) {
25
+ const result = input.agentScope
26
+ ? await client.query("select * from assembly_line_workspaces where scope->>'agentScope'=$1 order by updated_at desc", [input.agentScope])
27
+ : await client.query("select * from assembly_line_workspaces order by updated_at desc");
28
+ return result.rows.map(mapWorkspace);
29
+ }
30
+ export async function getWorkspaceVersion(client, id) {
31
+ const result = await client.query("select * from assembly_line_workspace_versions where id=$1", [id]);
32
+ const row = result.rows[0];
33
+ return row ? mapWorkspaceVersion(row) : undefined;
34
+ }
35
+ export async function listWorkspaceVersions(client, workspaceId, input = {}) {
36
+ const limit = Math.max(1, Math.min(100_000, Math.floor(input.limit ?? 100)));
37
+ const result = await client.query("select * from assembly_line_workspace_versions where workspace_id=$1 order by created_at desc limit $2", [workspaceId, limit]);
38
+ return result.rows.map(mapWorkspaceVersion);
39
+ }
40
+ export async function commitWorkspaceVersion(client, input) {
41
+ return withTransaction(client, async (tx) => {
42
+ const existingResult = await tx.query("select * from assembly_line_workspace_versions where idempotency_key=$1", [input.idempotencyKey]);
43
+ const existingRow = existingResult.rows[0];
44
+ if (existingRow) {
45
+ const version = mapWorkspaceVersion(existingRow);
46
+ if (version.workspaceId !== input.workspaceId) {
47
+ throw new Error(`Workspace version idempotency key belongs to another workspace: ${input.idempotencyKey}`);
48
+ }
49
+ const workspace = await requireWorkspace(tx, input.workspaceId);
50
+ return { workspace, version, created: false };
51
+ }
52
+ const locked = await tx.query("select * from assembly_line_workspaces where id=$1 for update", [input.workspaceId]);
53
+ const workspaceRow = locked.rows[0];
54
+ if (!workspaceRow)
55
+ throw new Error(`Workspace not found: ${input.workspaceId}`);
56
+ const workspace = mapWorkspace(workspaceRow);
57
+ const actualHeadVersionId = workspace.headVersionId ?? null;
58
+ if (actualHeadVersionId !== input.expectedHeadVersionId) {
59
+ throw new WorkspaceConflictError(workspace.id, input.expectedHeadVersionId, actualHeadVersionId);
60
+ }
61
+ const now = timestamp();
62
+ const versionId = randomUUID();
63
+ const versionResult = await tx.query(`insert into assembly_line_workspace_versions
64
+ (id, workspace_id, parent_version_id, source_version_id, source_checkpoint_id,
65
+ manifest_blob_key, manifest_sha256, file_count, total_bytes, reason, run_id,
66
+ idempotency_key, metadata, created_at)
67
+ values ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13::jsonb,$14)
68
+ returning *`, [
69
+ versionId,
70
+ workspace.id,
71
+ workspace.headVersionId ?? null,
72
+ input.sourceVersionId ?? null,
73
+ input.sourceCheckpointId ?? null,
74
+ input.manifestBlobKey,
75
+ input.manifestSha256,
76
+ input.fileCount,
77
+ input.totalBytes,
78
+ input.reason,
79
+ input.runId ?? null,
80
+ input.idempotencyKey,
81
+ JSON.stringify(input.metadata ?? {}),
82
+ now
83
+ ]);
84
+ const updatedResult = await tx.query("update assembly_line_workspaces set head_version_id=$2, updated_at=$3 where id=$1 returning *", [workspace.id, versionId, now]);
85
+ const versionRow = versionResult.rows[0];
86
+ const updatedRow = updatedResult.rows[0];
87
+ if (!versionRow || !updatedRow)
88
+ throw new Error(`Failed to commit workspace version: ${workspace.id}`);
89
+ return { workspace: mapWorkspace(updatedRow), version: mapWorkspaceVersion(versionRow), created: true };
90
+ });
91
+ }
92
+ export async function createWorkspaceCheckpoint(client, input) {
93
+ const version = await getWorkspaceVersion(client, input.versionId);
94
+ if (!version || version.workspaceId !== input.workspaceId) {
95
+ throw new Error(`Workspace version does not belong to workspace: ${input.versionId}`);
96
+ }
97
+ const now = timestamp();
98
+ if (input.replace) {
99
+ const result = await client.query(`insert into assembly_line_workspace_checkpoints
100
+ (id, workspace_id, name, version_id, created_at, updated_at)
101
+ values ($1,$2,$3,$4,$5,$5)
102
+ on conflict (workspace_id, name) do update set version_id=excluded.version_id, updated_at=excluded.updated_at
103
+ returning *`, [randomUUID(), input.workspaceId, input.name, input.versionId, now]);
104
+ const row = result.rows[0];
105
+ if (!row)
106
+ throw new Error(`Failed to create workspace checkpoint: ${input.name}`);
107
+ return mapWorkspaceCheckpoint(row);
108
+ }
109
+ const result = await client.query(`insert into assembly_line_workspace_checkpoints
110
+ (id, workspace_id, name, version_id, created_at, updated_at)
111
+ values ($1,$2,$3,$4,$5,$5)
112
+ on conflict (workspace_id, name) do nothing
113
+ returning *`, [randomUUID(), input.workspaceId, input.name, input.versionId, now]);
114
+ const row = result.rows[0];
115
+ if (!row)
116
+ throw new Error(`Workspace checkpoint already exists: ${input.name}`);
117
+ return mapWorkspaceCheckpoint(row);
118
+ }
119
+ export async function getWorkspaceCheckpoint(client, workspaceId, name) {
120
+ const result = await client.query("select * from assembly_line_workspace_checkpoints where workspace_id=$1 and name=$2", [workspaceId, name]);
121
+ const row = result.rows[0];
122
+ return row ? mapWorkspaceCheckpoint(row) : undefined;
123
+ }
124
+ export async function listWorkspaceCheckpoints(client, workspaceId) {
125
+ const result = await client.query("select * from assembly_line_workspace_checkpoints where workspace_id=$1 order by name asc", [workspaceId]);
126
+ return result.rows.map(mapWorkspaceCheckpoint);
127
+ }
128
+ export async function deleteWorkspaceCheckpoint(client, workspaceId, name) {
129
+ const result = await client.query("delete from assembly_line_workspace_checkpoints where workspace_id=$1 and name=$2 returning id", [workspaceId, name]);
130
+ return result.rows.length > 0;
131
+ }
132
+ export async function forkWorkspace(client, input) {
133
+ return withTransaction(client, async (tx) => {
134
+ const sourceWorkspace = await requireWorkspace(tx, input.sourceWorkspaceId);
135
+ const sourceVersion = await requireVersion(tx, input.sourceVersionId);
136
+ if (sourceVersion.workspaceId !== sourceWorkspace.id) {
137
+ throw new Error(`Workspace version does not belong to source workspace: ${sourceVersion.id}`);
138
+ }
139
+ const existingResult = input.id
140
+ ? await tx.query("select * from assembly_line_workspaces where id=$1", [input.id])
141
+ : await tx.query("select * from assembly_line_workspaces where scope_key=$1", [input.scopeKey]);
142
+ const existingRow = existingResult.rows[0];
143
+ if (existingRow)
144
+ return assertMatchingFork(mapWorkspace(existingRow), input);
145
+ const now = timestamp();
146
+ const workspaceId = input.id ?? randomUUID();
147
+ await tx.query(`insert into assembly_line_workspaces
148
+ (id, scope_key, scope, source_workspace_id, source_version_id, name, metadata, created_at, updated_at)
149
+ values ($1,$2,$3::jsonb,$4,$5,$6,$7::jsonb,$8,$8)`, [
150
+ workspaceId,
151
+ input.scopeKey,
152
+ JSON.stringify(input.scope),
153
+ sourceWorkspace.id,
154
+ sourceVersion.id,
155
+ input.name ?? null,
156
+ JSON.stringify(input.metadata ?? {}),
157
+ now
158
+ ]);
159
+ const forkVersionId = randomUUID();
160
+ await tx.query(`insert into assembly_line_workspace_versions
161
+ (id, workspace_id, source_version_id, manifest_blob_key, manifest_sha256,
162
+ file_count, total_bytes, reason, idempotency_key, metadata, created_at)
163
+ values ($1,$2,$3,$4,$5,$6,$7,'fork',$8,$9::jsonb,$10)`, [
164
+ forkVersionId,
165
+ workspaceId,
166
+ sourceVersion.id,
167
+ sourceVersion.manifestBlobKey,
168
+ sourceVersion.manifestSha256,
169
+ sourceVersion.fileCount,
170
+ sourceVersion.totalBytes,
171
+ `workspace-fork:${workspaceId}:${sourceVersion.id}`,
172
+ JSON.stringify({ sourceWorkspaceId: sourceWorkspace.id }),
173
+ now
174
+ ]);
175
+ const result = await tx.query("update assembly_line_workspaces set head_version_id=$2 where id=$1 returning *", [workspaceId, forkVersionId]);
176
+ const row = result.rows[0];
177
+ if (!row)
178
+ throw new Error(`Failed to fork workspace: ${sourceWorkspace.id}`);
179
+ return mapWorkspace(row);
180
+ });
181
+ }
182
+ export async function replaceWorkspaceSearchChunks(client, input) {
183
+ return withTransaction(client, async (tx) => {
184
+ const version = await requireVersion(tx, input.versionId);
185
+ if (version.workspaceId !== input.workspaceId)
186
+ throw new Error(`Workspace version does not belong to workspace: ${version.id}`);
187
+ const workspaceResult = await tx.query("select head_version_id from assembly_line_workspaces where id=$1 for update", [input.workspaceId]);
188
+ const workspaceRow = workspaceResult.rows[0];
189
+ if (!workspaceRow)
190
+ throw new Error(`Workspace not found: ${input.workspaceId}`);
191
+ const isCurrentHead = workspaceRow.head_version_id === input.versionId;
192
+ await tx.query("delete from assembly_line_workspace_search_chunks where workspace_id=$1 and version_id=$2", [input.workspaceId, input.versionId]);
193
+ for (const chunk of input.chunks) {
194
+ await tx.query(`insert into assembly_line_workspace_search_chunks
195
+ (id, workspace_id, version_id, path, start_line, end_line, content, content_sha256,
196
+ content_type, embedding, embedding_model, metadata, created_at)
197
+ values ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10::jsonb,$11,$12::jsonb,$13)`, [
198
+ chunk.id,
199
+ input.workspaceId,
200
+ input.versionId,
201
+ chunk.path,
202
+ chunk.startLine,
203
+ chunk.endLine,
204
+ chunk.content,
205
+ chunk.contentSha256,
206
+ chunk.contentType,
207
+ chunk.embedding ? JSON.stringify(chunk.embedding) : null,
208
+ chunk.embeddingModel ?? null,
209
+ JSON.stringify(chunk.metadata),
210
+ chunk.createdAt
211
+ ]);
212
+ if (chunk.embedding && chunk.embeddingModel) {
213
+ await tx.query(`insert into assembly_line_workspace_search_embeddings
214
+ (chunk_id, workspace_id, version_id, model, dimensions, embedding, created_at)
215
+ values ($1,$2,$3,$4,$5,$6::vector,$7)
216
+ on conflict (chunk_id) do update set
217
+ model=excluded.model,
218
+ dimensions=excluded.dimensions,
219
+ embedding=excluded.embedding,
220
+ created_at=excluded.created_at`, [
221
+ chunk.id,
222
+ input.workspaceId,
223
+ input.versionId,
224
+ chunk.embeddingModel,
225
+ chunk.embedding.length,
226
+ postgresVectorLiteral(chunk.embedding),
227
+ chunk.createdAt
228
+ ]);
229
+ }
230
+ }
231
+ const indexedAt = timestamp();
232
+ const result = isCurrentHead ? await tx.query(`insert into assembly_line_workspace_search_indexes
233
+ (workspace_id, version_id, chunk_count, embedding_model, indexed_at)
234
+ values ($1,$2,$3,$4,$5)
235
+ on conflict (workspace_id) do update set
236
+ version_id=excluded.version_id,
237
+ chunk_count=excluded.chunk_count,
238
+ embedding_model=excluded.embedding_model,
239
+ indexed_at=excluded.indexed_at
240
+ returning *`, [input.workspaceId, input.versionId, input.chunks.length, input.embeddingModel ?? null, indexedAt]) : { rows: [] };
241
+ return result.rows[0] ? mapWorkspaceSearchIndex(result.rows[0]) : {
242
+ workspaceId: input.workspaceId,
243
+ versionId: input.versionId,
244
+ chunkCount: input.chunks.length,
245
+ indexedAt,
246
+ ...(input.embeddingModel ? { embeddingModel: input.embeddingModel } : {})
247
+ };
248
+ });
249
+ }
250
+ export async function getWorkspaceSearchIndex(client, workspaceId) {
251
+ const result = await client.query("select * from assembly_line_workspace_search_indexes where workspace_id=$1", [workspaceId]);
252
+ return result.rows[0] ? mapWorkspaceSearchIndex(result.rows[0]) : undefined;
253
+ }
254
+ export async function listWorkspaceSearchChunks(client, workspaceId, versionId) {
255
+ const result = await client.query(`select * from assembly_line_workspace_search_chunks
256
+ where workspace_id=$1 and version_id=$2
257
+ order by path asc, start_line asc`, [workspaceId, versionId]);
258
+ return result.rows.map(mapWorkspaceSearchChunk);
259
+ }
260
+ export async function searchWorkspaceChunks(client, input) {
261
+ const limit = Math.max(1, Math.min(100, Math.floor(input.limit ?? 8)));
262
+ const result = await client.query(`select *, ts_rank_cd(search_vector, websearch_to_tsquery('simple', $3)) as rank
263
+ from assembly_line_workspace_search_chunks
264
+ where workspace_id=$1
265
+ and version_id=$2
266
+ and search_vector @@ websearch_to_tsquery('simple', $3)
267
+ order by rank desc, path asc, start_line asc
268
+ limit $4`, [input.workspaceId, input.versionId, input.query, limit]);
269
+ return result.rows.map((row) => ({
270
+ path: String(row.path),
271
+ versionId: String(row.version_id),
272
+ startLine: Number(row.start_line),
273
+ endLine: Number(row.end_line),
274
+ snippet: String(row.content),
275
+ score: Number(row.rank ?? 0),
276
+ rankingSource: "full_text"
277
+ }));
278
+ }
279
+ export async function searchWorkspaceEmbeddings(client, input) {
280
+ const limit = Math.max(1, Math.min(100, Math.floor(input.limit ?? 8)));
281
+ const result = await client.query(`select c.*, (e.embedding <=> $4::vector) as distance
282
+ from assembly_line_workspace_search_embeddings e
283
+ join assembly_line_workspace_search_chunks c on c.id=e.chunk_id
284
+ where e.workspace_id=$1
285
+ and e.version_id=$2
286
+ and e.model=$3
287
+ order by distance asc, c.path asc, c.start_line asc
288
+ limit $5`, [input.workspaceId, input.versionId, input.model, postgresVectorLiteral(input.embedding), limit]);
289
+ return result.rows.map((row) => ({
290
+ path: String(row.path),
291
+ versionId: String(row.version_id),
292
+ startLine: Number(row.start_line),
293
+ endLine: Number(row.end_line),
294
+ snippet: String(row.content),
295
+ score: Math.max(0, 1 - Number(row.distance ?? 1)),
296
+ rankingSource: "semantic"
297
+ }));
298
+ }
299
+ export async function deleteWorkspaceVersions(client, workspaceId, versionIds) {
300
+ const requestedVersionIds = [...new Set(versionIds)].sort();
301
+ if (requestedVersionIds.length === 0)
302
+ return { workspaceId, requestedVersionIds, deletedVersionIds: [] };
303
+ const result = await client.query(`delete from assembly_line_workspace_versions v
304
+ using assembly_line_workspaces owner
305
+ where owner.id=$1
306
+ and v.workspace_id=owner.id
307
+ and v.id=any($2::text[])
308
+ and v.id is distinct from owner.head_version_id
309
+ and not exists (
310
+ select 1 from assembly_line_workspace_checkpoints c where c.version_id=v.id
311
+ )
312
+ and not exists (
313
+ select 1 from assembly_line_workspaces fork
314
+ where fork.source_workspace_id=$1 and fork.source_version_id=v.id
315
+ )
316
+ returning v.id`, [workspaceId, requestedVersionIds]);
317
+ return {
318
+ workspaceId,
319
+ requestedVersionIds,
320
+ deletedVersionIds: result.rows.map((row) => String(row.id)).sort()
321
+ };
322
+ }
323
+ export async function repairWorkspaceHead(client, input) {
324
+ return withTransaction(client, async (tx) => {
325
+ const locked = await tx.query("select * from assembly_line_workspaces where id=$1 for update", [input.workspaceId]);
326
+ const row = locked.rows[0];
327
+ if (!row)
328
+ throw new Error(`Workspace not found: ${input.workspaceId}`);
329
+ const workspace = mapWorkspace(row);
330
+ const actualHeadVersionId = workspace.headVersionId ?? null;
331
+ if (actualHeadVersionId !== input.expectedHeadVersionId) {
332
+ throw new WorkspaceConflictError(workspace.id, input.expectedHeadVersionId, actualHeadVersionId);
333
+ }
334
+ const target = await requireVersion(tx, input.targetVersionId);
335
+ if (target.workspaceId !== workspace.id)
336
+ throw new Error(`Workspace version does not belong to workspace: ${target.id}`);
337
+ const result = await tx.query("update assembly_line_workspaces set head_version_id=$2, updated_at=$3 where id=$1 returning *", [workspace.id, target.id, timestamp()]);
338
+ const updated = result.rows[0];
339
+ if (!updated)
340
+ throw new Error(`Failed to repair workspace head: ${workspace.id}`);
341
+ return mapWorkspace(updated);
342
+ });
343
+ }
344
+ function mapWorkspace(row) {
345
+ const workspace = {
346
+ id: String(row.id),
347
+ scopeKey: String(row.scope_key),
348
+ scope: normalizeJsonObject(row.scope),
349
+ metadata: normalizeJsonObject(row.metadata),
350
+ createdAt: toIso(row.created_at),
351
+ updatedAt: toIso(row.updated_at)
352
+ };
353
+ if (row.head_version_id)
354
+ workspace.headVersionId = String(row.head_version_id);
355
+ if (row.source_workspace_id)
356
+ workspace.sourceWorkspaceId = String(row.source_workspace_id);
357
+ if (row.source_version_id)
358
+ workspace.sourceVersionId = String(row.source_version_id);
359
+ if (row.name)
360
+ workspace.name = String(row.name);
361
+ return workspace;
362
+ }
363
+ function mapWorkspaceSearchChunk(row) {
364
+ const chunk = {
365
+ id: String(row.id),
366
+ workspaceId: String(row.workspace_id),
367
+ versionId: String(row.version_id),
368
+ path: String(row.path),
369
+ startLine: Number(row.start_line),
370
+ endLine: Number(row.end_line),
371
+ content: String(row.content),
372
+ contentSha256: String(row.content_sha256),
373
+ contentType: String(row.content_type),
374
+ metadata: normalizeJsonObject(row.metadata),
375
+ createdAt: toIso(row.created_at)
376
+ };
377
+ const embedding = numberArray(row.embedding);
378
+ if (embedding)
379
+ chunk.embedding = embedding;
380
+ if (row.embedding_model)
381
+ chunk.embeddingModel = String(row.embedding_model);
382
+ return chunk;
383
+ }
384
+ function mapWorkspaceSearchIndex(row) {
385
+ return {
386
+ workspaceId: String(row.workspace_id),
387
+ versionId: String(row.version_id),
388
+ chunkCount: Number(row.chunk_count),
389
+ indexedAt: toIso(row.indexed_at),
390
+ ...(row.embedding_model ? { embeddingModel: String(row.embedding_model) } : {})
391
+ };
392
+ }
393
+ function numberArray(value) {
394
+ let parsed = value;
395
+ if (typeof value === "string") {
396
+ try {
397
+ parsed = JSON.parse(value);
398
+ }
399
+ catch {
400
+ return undefined;
401
+ }
402
+ }
403
+ if (!Array.isArray(parsed) || !parsed.every((item) => typeof item === "number" && Number.isFinite(item))) {
404
+ return undefined;
405
+ }
406
+ return parsed.map(Number);
407
+ }
408
+ function mapWorkspaceVersion(row) {
409
+ const version = {
410
+ id: String(row.id),
411
+ workspaceId: String(row.workspace_id),
412
+ manifestBlobKey: String(row.manifest_blob_key),
413
+ manifestSha256: String(row.manifest_sha256),
414
+ fileCount: Number(row.file_count),
415
+ totalBytes: Number(row.total_bytes),
416
+ reason: String(row.reason),
417
+ idempotencyKey: String(row.idempotency_key),
418
+ metadata: normalizeJsonObject(row.metadata),
419
+ createdAt: toIso(row.created_at)
420
+ };
421
+ if (row.parent_version_id)
422
+ version.parentVersionId = String(row.parent_version_id);
423
+ if (row.source_version_id)
424
+ version.sourceVersionId = String(row.source_version_id);
425
+ if (row.source_checkpoint_id)
426
+ version.sourceCheckpointId = String(row.source_checkpoint_id);
427
+ if (row.run_id)
428
+ version.runId = String(row.run_id);
429
+ return version;
430
+ }
431
+ function mapWorkspaceCheckpoint(row) {
432
+ return {
433
+ id: String(row.id),
434
+ workspaceId: String(row.workspace_id),
435
+ name: String(row.name),
436
+ versionId: String(row.version_id),
437
+ createdAt: toIso(row.created_at),
438
+ updatedAt: toIso(row.updated_at)
439
+ };
440
+ }
441
+ async function requireWorkspace(client, id) {
442
+ const workspace = await getWorkspace(client, id);
443
+ if (!workspace)
444
+ throw new Error(`Workspace not found: ${id}`);
445
+ return workspace;
446
+ }
447
+ async function requireVersion(client, id) {
448
+ const version = await getWorkspaceVersion(client, id);
449
+ if (!version)
450
+ throw new Error(`Workspace version not found: ${id}`);
451
+ return version;
452
+ }
453
+ function assertMatchingFork(workspace, input) {
454
+ if (workspace.scopeKey !== input.scopeKey ||
455
+ workspace.scope.agentScope !== input.scope.agentScope ||
456
+ workspace.scope.tenantId !== input.scope.tenantId ||
457
+ workspace.sourceWorkspaceId !== input.sourceWorkspaceId ||
458
+ workspace.sourceVersionId !== input.sourceVersionId) {
459
+ throw new Error(`Workspace fork identity is already in use: ${workspace.id}`);
460
+ }
461
+ return workspace;
462
+ }
463
+ async function withTransaction(client, operation) {
464
+ const pool = client;
465
+ const pinned = typeof pool.connect === "function" ? await pool.connect() : undefined;
466
+ const tx = pinned ?? client;
467
+ try {
468
+ await tx.query("begin");
469
+ const result = await operation(tx);
470
+ await tx.query("commit");
471
+ return result;
472
+ }
473
+ catch (error) {
474
+ try {
475
+ await tx.query("rollback");
476
+ }
477
+ catch {
478
+ // Preserve the original failure.
479
+ }
480
+ throw error;
481
+ }
482
+ finally {
483
+ pinned?.release();
484
+ }
485
+ }
486
+ //# sourceMappingURL=adapter-workspaces.js.map