@sixb/core 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/dist/actions/index.d.ts +2 -2
  2. package/dist/actions/index.d.ts.map +1 -1
  3. package/dist/actions/index.js +17 -18
  4. package/dist/actions/index.js.map +1 -1
  5. package/dist/actions/read-facade.d.ts +10 -2
  6. package/dist/actions/read-facade.d.ts.map +1 -1
  7. package/dist/actions/types/context.d.ts +45 -2
  8. package/dist/actions/types/context.d.ts.map +1 -1
  9. package/dist/actions/worker.js +4 -4
  10. package/dist/actions/worker.js.map +1 -1
  11. package/dist/agents/context-compaction.d.ts +40 -0
  12. package/dist/agents/context-compaction.d.ts.map +1 -0
  13. package/dist/agents/ids.d.ts +2 -0
  14. package/dist/agents/ids.d.ts.map +1 -1
  15. package/dist/agents/index.d.ts +6 -5
  16. package/dist/agents/index.d.ts.map +1 -1
  17. package/dist/agents/index.js +42 -37
  18. package/dist/agents/index.js.map +1 -1
  19. package/dist/agents/streams.d.ts +17 -1
  20. package/dist/agents/streams.d.ts.map +1 -1
  21. package/dist/agents/streams.js +4 -2
  22. package/dist/agents/streams.js.map +1 -1
  23. package/dist/agents/types.d.ts +11 -0
  24. package/dist/agents/types.d.ts.map +1 -1
  25. package/dist/agents/validation.d.ts +1 -1
  26. package/dist/agents/validation.d.ts.map +1 -1
  27. package/dist/auth/index.js +7 -3
  28. package/dist/auth/index.js.map +1 -1
  29. package/dist/authorization/index.js +6 -2
  30. package/dist/authorization/index.js.map +1 -1
  31. package/dist/bootstrap/index.js +30 -31
  32. package/dist/bootstrap/index.js.map +1 -1
  33. package/dist/{chunk-d6y2wsfg.js → chunk-1q02e95s.js} +12 -7
  34. package/dist/{chunk-d6y2wsfg.js.map → chunk-1q02e95s.js.map} +4 -3
  35. package/dist/{chunk-c6cfqydk.js → chunk-4h947jd8.js} +1 -1
  36. package/dist/{chunk-gqdd7508.js → chunk-4rh2m6zg.js} +1 -1
  37. package/dist/{chunk-f1cyvnrk.js → chunk-6d5xdj1q.js} +259 -9
  38. package/dist/chunk-6d5xdj1q.js.map +14 -0
  39. package/dist/{chunk-fmx1sz2h.js → chunk-72q2y8hn.js} +3 -3
  40. package/dist/{chunk-fmx1sz2h.js.map → chunk-72q2y8hn.js.map} +3 -3
  41. package/dist/{chunk-ttba8x6z.js → chunk-78c6xvyr.js} +68 -3
  42. package/dist/chunk-78c6xvyr.js.map +15 -0
  43. package/dist/{chunk-wb4051cx.js → chunk-819wnjz8.js} +11 -5
  44. package/dist/chunk-819wnjz8.js.map +12 -0
  45. package/dist/{chunk-177ed2mp.js → chunk-84h6qhmp.js} +233 -97
  46. package/dist/{chunk-177ed2mp.js.map → chunk-84h6qhmp.js.map} +9 -9
  47. package/dist/{chunk-pxtrxm3p.js → chunk-a09jx26t.js} +1 -1
  48. package/dist/{chunk-bv41fmjn.js → chunk-am6eczah.js} +59 -22
  49. package/dist/{chunk-bv41fmjn.js.map → chunk-am6eczah.js.map} +8 -7
  50. package/dist/{chunk-zpw39qhj.js → chunk-dm72y8wt.js} +25 -2
  51. package/dist/chunk-dm72y8wt.js.map +10 -0
  52. package/dist/{chunk-kqxgf6kv.js → chunk-drjqm1aa.js} +16 -1
  53. package/dist/{chunk-kqxgf6kv.js.map → chunk-drjqm1aa.js.map} +3 -3
  54. package/dist/chunk-dysw7nsm.js.map +1 -1
  55. package/dist/{chunk-4p9rh7jj.js → chunk-ea73pzk7.js} +1 -1
  56. package/dist/{chunk-4aw0jwk0.js → chunk-f6erf2vv.js} +1 -1
  57. package/dist/{chunk-4z3n1dzt.js → chunk-f83ka50g.js} +131 -25
  58. package/dist/chunk-f83ka50g.js.map +23 -0
  59. package/dist/{chunk-c8bw2b6c.js → chunk-gadsm794.js} +2 -2
  60. package/dist/{chunk-1ywq4hzk.js → chunk-h6h91mfy.js} +8 -10
  61. package/dist/{chunk-1ywq4hzk.js.map → chunk-h6h91mfy.js.map} +2 -2
  62. package/dist/{chunk-n5x5y80a.js → chunk-nzw7sm3b.js} +2 -2
  63. package/dist/{chunk-63te770v.js → chunk-qewtks41.js} +8 -8
  64. package/dist/{chunk-63te770v.js.map → chunk-qewtks41.js.map} +2 -2
  65. package/dist/{chunk-261ag4t4.js → chunk-r0rry8dn.js} +3 -3
  66. package/dist/{chunk-88ppkr54.js → chunk-rte5sm3z.js} +26 -2
  67. package/dist/chunk-rte5sm3z.js.map +12 -0
  68. package/dist/chunk-t0jjkep3.js.map +1 -1
  69. package/dist/{chunk-ettb0cy4.js → chunk-tbv03sx2.js} +59 -29
  70. package/dist/{chunk-ettb0cy4.js.map → chunk-tbv03sx2.js.map} +5 -5
  71. package/dist/{chunk-d2adj15j.js → chunk-tkdscva6.js} +1 -1
  72. package/dist/{chunk-xmggaxg4.js → chunk-v0egge8b.js} +201 -38
  73. package/dist/{chunk-xmggaxg4.js.map → chunk-v0egge8b.js.map} +8 -6
  74. package/dist/{chunk-z8j83gzd.js → chunk-x2yw73hy.js} +1 -1
  75. package/dist/{chunk-qer6am8w.js → chunk-xdf9yswn.js} +1 -1
  76. package/dist/{chunk-3rsf30p4.js → chunk-z3ga9q5m.js} +18 -21
  77. package/dist/{chunk-3rsf30p4.js.map → chunk-z3ga9q5m.js.map} +4 -5
  78. package/dist/{chunk-km4rkj4t.js → chunk-zp2v2rv6.js} +3 -3
  79. package/dist/execution/agent.js +26 -27
  80. package/dist/execution/agent.js.map +1 -1
  81. package/dist/execution/primitive.js +26 -27
  82. package/dist/execution/primitive.js.map +2 -2
  83. package/dist/execution/request.js +27 -28
  84. package/dist/execution/request.js.map +2 -2
  85. package/dist/http/index.js +1 -1
  86. package/dist/index.d.ts +6 -5
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.js +54 -55
  89. package/dist/index.js.map +1 -1
  90. package/dist/lake-storage/types.d.ts +2 -1
  91. package/dist/lake-storage/types.d.ts.map +1 -1
  92. package/dist/materializer/index.js +15 -16
  93. package/dist/materializer/index.js.map +1 -1
  94. package/dist/models/index.d.ts +40 -0
  95. package/dist/models/index.d.ts.map +1 -0
  96. package/dist/objects/execution.d.ts +6 -1
  97. package/dist/objects/execution.d.ts.map +1 -1
  98. package/dist/objects/index.js +19 -20
  99. package/dist/objects/index.js.map +1 -1
  100. package/dist/objects/link/endpoints.d.ts.map +1 -1
  101. package/dist/objects/query/executor.d.ts +1 -0
  102. package/dist/objects/query/executor.d.ts.map +1 -1
  103. package/dist/objects/query/explain.d.ts +1 -0
  104. package/dist/objects/query/explain.d.ts.map +1 -1
  105. package/dist/objects/query/index.d.ts +3 -1
  106. package/dist/objects/query/index.d.ts.map +1 -1
  107. package/dist/objects/query/index.js +30 -5
  108. package/dist/objects/query/index.js.map +1 -1
  109. package/dist/objects/query/ir.d.ts +14 -1
  110. package/dist/objects/query/ir.d.ts.map +1 -1
  111. package/dist/objects/query/links.d.ts +25 -0
  112. package/dist/objects/query/links.d.ts.map +1 -0
  113. package/dist/objects/query/normalize.d.ts.map +1 -1
  114. package/dist/objects/query/planner.d.ts.map +1 -1
  115. package/dist/objects/query/validate.d.ts +1 -0
  116. package/dist/objects/query/validate.d.ts.map +1 -1
  117. package/dist/ontology/internal.d.ts +1 -1
  118. package/dist/ontology/internal.d.ts.map +1 -1
  119. package/dist/ontology/internal.js +14 -6
  120. package/dist/ontology/internal.js.map +3 -3
  121. package/dist/ontology/json-schema.d.ts +10 -0
  122. package/dist/ontology/json-schema.d.ts.map +1 -1
  123. package/dist/pipelines/index.js +15 -16
  124. package/dist/pipelines/index.js.map +1 -1
  125. package/dist/projections/builders.d.ts +33 -4
  126. package/dist/projections/builders.d.ts.map +1 -1
  127. package/dist/projections/index.d.ts +1 -1
  128. package/dist/projections/index.d.ts.map +1 -1
  129. package/dist/projections/internal.js +15 -16
  130. package/dist/projections/internal.js.map +1 -1
  131. package/dist/projections/run-dispatch.d.ts +1 -0
  132. package/dist/projections/run-dispatch.d.ts.map +1 -1
  133. package/dist/projections/types.d.ts +12 -9
  134. package/dist/projections/types.d.ts.map +1 -1
  135. package/dist/projections/validation.d.ts +6 -5
  136. package/dist/projections/validation.d.ts.map +1 -1
  137. package/dist/query.d.ts +2 -1
  138. package/dist/query.d.ts.map +1 -1
  139. package/dist/query.js +2 -2
  140. package/dist/runtime/create.d.ts +3 -0
  141. package/dist/runtime/create.d.ts.map +1 -1
  142. package/dist/runtime/definitions.d.ts +3 -0
  143. package/dist/runtime/definitions.d.ts.map +1 -1
  144. package/dist/runtime/host.d.ts +2 -0
  145. package/dist/runtime/host.d.ts.map +1 -1
  146. package/dist/runtime/resolve-definitions.d.ts +2 -0
  147. package/dist/runtime/resolve-definitions.d.ts.map +1 -1
  148. package/dist/storage/agents/in-memory.d.ts +4 -0
  149. package/dist/storage/agents/in-memory.d.ts.map +1 -1
  150. package/dist/storage/agents/provider.js +9 -5
  151. package/dist/storage/agents/provider.js.map +1 -1
  152. package/dist/storage/agents/types.d.ts +5 -0
  153. package/dist/storage/agents/types.d.ts.map +1 -1
  154. package/dist/storage/ai-cost/provider.js +1 -1
  155. package/dist/storage/ai-usage/in-memory.d.ts +2 -1
  156. package/dist/storage/ai-usage/in-memory.d.ts.map +1 -1
  157. package/dist/storage/ai-usage/index.d.ts +1 -1
  158. package/dist/storage/ai-usage/index.d.ts.map +1 -1
  159. package/dist/storage/ai-usage/types.d.ts +6 -0
  160. package/dist/storage/ai-usage/types.d.ts.map +1 -1
  161. package/dist/storage/index.d.ts +3 -2
  162. package/dist/storage/index.d.ts.map +1 -1
  163. package/dist/storage/index.js +19 -14
  164. package/dist/storage/index.js.map +1 -1
  165. package/dist/storage/objects/in-memory.d.ts +6 -3
  166. package/dist/storage/objects/in-memory.d.ts.map +1 -1
  167. package/dist/storage/objects/index.d.ts +3 -1
  168. package/dist/storage/objects/index.d.ts.map +1 -1
  169. package/dist/storage/objects/keys.d.ts +16 -0
  170. package/dist/storage/objects/keys.d.ts.map +1 -0
  171. package/dist/storage/objects/types.d.ts +33 -6
  172. package/dist/storage/objects/types.d.ts.map +1 -1
  173. package/dist/storage/ontology/provider.js +1 -1
  174. package/dist/storage/workflow-runs/provider.js +9 -5
  175. package/dist/storage/workflow-runs/provider.js.map +1 -1
  176. package/dist/syncs/index.js +15 -16
  177. package/dist/syncs/index.js.map +1 -1
  178. package/dist/testing/agent-storage-contract.d.ts.map +1 -1
  179. package/dist/testing/ai-usage-storage-contract.d.ts.map +1 -1
  180. package/dist/testing/effective-storage-contract.d.ts +1 -1
  181. package/dist/testing/effective-storage-contract.d.ts.map +1 -1
  182. package/dist/testing/index.js +455 -40
  183. package/dist/testing/index.js.map +7 -7
  184. package/dist/testing/lake-storage-contract.d.ts.map +1 -1
  185. package/dist/testing/object-query-contract.d.ts +1 -1
  186. package/dist/testing/object-query-contract.d.ts.map +1 -1
  187. package/dist/webhooks/internal.js +13 -14
  188. package/dist/webhooks/internal.js.map +2 -2
  189. package/dist/workflows/index.js +27 -28
  190. package/dist/workflows/index.js.map +1 -1
  191. package/package.json +1 -1
  192. package/src/actions/index.ts +10 -1
  193. package/src/actions/read-facade.ts +125 -3
  194. package/src/actions/types/context.ts +69 -2
  195. package/src/agents/builders.ts +3 -3
  196. package/src/agents/context-compaction.ts +261 -0
  197. package/src/agents/ids.ts +5 -0
  198. package/src/agents/index.ts +18 -9
  199. package/src/agents/streams.ts +56 -0
  200. package/src/agents/types.ts +12 -0
  201. package/src/agents/validation.ts +39 -5
  202. package/src/http/api-routes.ts +7 -7
  203. package/src/index.ts +19 -0
  204. package/src/lake-storage/types.ts +2 -1
  205. package/src/materializer/telemetry/append.ts +33 -16
  206. package/src/models/index.ts +71 -0
  207. package/src/objects/execution.ts +20 -0
  208. package/src/objects/link/endpoints.ts +2 -1
  209. package/src/objects/query/executor.ts +42 -11
  210. package/src/objects/query/explain.ts +11 -0
  211. package/src/objects/query/index.ts +6 -0
  212. package/src/objects/query/ir.ts +16 -0
  213. package/src/objects/query/links.ts +308 -0
  214. package/src/objects/query/normalize.ts +40 -1
  215. package/src/objects/query/planner.ts +5 -0
  216. package/src/objects/query/validate.ts +58 -2
  217. package/src/ontology/internal.ts +1 -1
  218. package/src/ontology/json-schema.ts +27 -5
  219. package/src/projections/builders.ts +220 -15
  220. package/src/projections/index.ts +1 -0
  221. package/src/projections/ownership.ts +5 -5
  222. package/src/projections/registry.ts +9 -3
  223. package/src/projections/revision.ts +31 -5
  224. package/src/projections/run-dispatch.ts +10 -1
  225. package/src/projections/types.ts +13 -9
  226. package/src/projections/validation.ts +61 -19
  227. package/src/query.ts +2 -0
  228. package/src/runtime/create.ts +4 -0
  229. package/src/runtime/definitions.ts +3 -0
  230. package/src/runtime/host.ts +2 -0
  231. package/src/runtime/resolve-definitions.ts +28 -0
  232. package/src/storage/agents/in-memory.ts +15 -0
  233. package/src/storage/agents/types.ts +5 -0
  234. package/src/storage/ai-usage/in-memory.ts +23 -0
  235. package/src/storage/ai-usage/index.ts +1 -0
  236. package/src/storage/ai-usage/types.ts +10 -0
  237. package/src/storage/index.ts +11 -0
  238. package/src/storage/objects/in-memory.ts +103 -16
  239. package/src/storage/objects/index.ts +9 -0
  240. package/src/storage/objects/keys.ts +36 -0
  241. package/src/storage/objects/types.ts +34 -6
  242. package/src/storage/ontology/provider-header-validation.ts +2 -2
  243. package/src/storage/timeseries/store.ts +6 -6
  244. package/src/testing/agent-storage-contract.ts +12 -0
  245. package/src/testing/ai-usage-storage-contract.ts +35 -0
  246. package/src/testing/effective-storage-contract.ts +194 -4
  247. package/src/testing/lake-storage-contract.ts +56 -0
  248. package/src/testing/object-query-contract.ts +208 -1
  249. package/dist/agents/prompt.d.ts +0 -21
  250. package/dist/agents/prompt.d.ts.map +0 -1
  251. package/dist/chunk-4z3n1dzt.js.map +0 -23
  252. package/dist/chunk-6wetht33.js +0 -89
  253. package/dist/chunk-6wetht33.js.map +0 -10
  254. package/dist/chunk-88ppkr54.js.map +0 -12
  255. package/dist/chunk-f1cyvnrk.js.map +0 -13
  256. package/dist/chunk-ttba8x6z.js.map +0 -15
  257. package/dist/chunk-wb4051cx.js.map +0 -12
  258. package/dist/chunk-zpw39qhj.js.map +0 -10
  259. package/src/agents/prompt.ts +0 -85
  260. /package/dist/{chunk-c6cfqydk.js.map → chunk-4h947jd8.js.map} +0 -0
  261. /package/dist/{chunk-gqdd7508.js.map → chunk-4rh2m6zg.js.map} +0 -0
  262. /package/dist/{chunk-pxtrxm3p.js.map → chunk-a09jx26t.js.map} +0 -0
  263. /package/dist/{chunk-4p9rh7jj.js.map → chunk-ea73pzk7.js.map} +0 -0
  264. /package/dist/{chunk-4aw0jwk0.js.map → chunk-f6erf2vv.js.map} +0 -0
  265. /package/dist/{chunk-c8bw2b6c.js.map → chunk-gadsm794.js.map} +0 -0
  266. /package/dist/{chunk-n5x5y80a.js.map → chunk-nzw7sm3b.js.map} +0 -0
  267. /package/dist/{chunk-261ag4t4.js.map → chunk-r0rry8dn.js.map} +0 -0
  268. /package/dist/{chunk-d2adj15j.js.map → chunk-tkdscva6.js.map} +0 -0
  269. /package/dist/{chunk-z8j83gzd.js.map → chunk-x2yw73hy.js.map} +0 -0
  270. /package/dist/{chunk-qer6am8w.js.map → chunk-xdf9yswn.js.map} +0 -0
  271. /package/dist/{chunk-km4rkj4t.js.map → chunk-zp2v2rv6.js.map} +0 -0
@@ -17,7 +17,7 @@ import {
17
17
  grantKindOf,
18
18
  resolveAuthorizationContext,
19
19
  resolveRoleGrants
20
- } from "./chunk-4z3n1dzt.js";
20
+ } from "./chunk-f83ka50g.js";
21
21
 
22
22
  // src/auth/access-tokens.ts
23
23
  import { createHash, randomBytes, randomUUID } from "crypto";
@@ -27,7 +27,7 @@ import {
27
27
  startScopeAccumulator,
28
28
  uniqueSorted,
29
29
  workUniquenessKey
30
- } from "./chunk-fmx1sz2h.js";
30
+ } from "./chunk-72q2y8hn.js";
31
31
  import {
32
32
  createAgentOperationScope,
33
33
  createAuthOperationScope,
@@ -79,7 +79,7 @@ import {
79
79
  WorkflowRunError,
80
80
  assertWorkflowAgentNodeRunExecution,
81
81
  assertWorkflowRunExecution
82
- } from "./chunk-pxtrxm3p.js";
82
+ } from "./chunk-a09jx26t.js";
83
83
  import {
84
84
  parseActionRunFailure
85
85
  } from "./chunk-htq0qh7z.js";
@@ -95,14 +95,14 @@ import {
95
95
  assertAgentContextCheckpointReplayState,
96
96
  assertAgentRunExecution,
97
97
  assertCreateAgentContextCheckpointInput
98
- } from "./chunk-qer6am8w.js";
98
+ } from "./chunk-xdf9yswn.js";
99
99
  import {
100
100
  InMemoryAiUsageStorage,
101
101
  aiModelCallCostMatchesUsage,
102
102
  buildAiAccountingOverview,
103
103
  buildAiModelCallAccountingList,
104
104
  normalizeAiModelCallCostRecord
105
- } from "./chunk-kqxgf6kv.js";
105
+ } from "./chunk-drjqm1aa.js";
106
106
  import {
107
107
  CONNECTOR_CONNECTION_RUN_FAILURE_CODES,
108
108
  ConnectorConnectionStorageError
@@ -131,10 +131,6 @@ import {
131
131
  MaterializationConflictError,
132
132
  MaterializationValidationError
133
133
  } from "./chunk-ry24jbr1.js";
134
- import {
135
- compareQueryScalarValues,
136
- queryScalarValuesEqual
137
- } from "./chunk-6wetht33.js";
138
134
  import {
139
135
  AGENT_RUN_FAILURE_CODES
140
136
  } from "./chunk-t0jjkep3.js";
@@ -142,10 +138,13 @@ import {
142
138
  InMemoryAuthStorage,
143
139
  paginate,
144
140
  principalsEqual
145
- } from "./chunk-d2adj15j.js";
141
+ } from "./chunk-tkdscva6.js";
146
142
  import {
147
143
  normalizeRequesterGroupIds
148
144
  } from "./chunk-rhrbz7d4.js";
145
+ import {
146
+ compareDecimalValues
147
+ } from "./chunk-04b07a9q.js";
149
148
  import {
150
149
  createSixbError,
151
150
  parseSixbFailure,
@@ -846,6 +845,13 @@ class InMemoryAgentContextCheckpointStore {
846
845
  const record = this.findLatest(input.projectId, input.threadId);
847
846
  return record ? clone(record) : null;
848
847
  }
848
+ async getByRunIds(input) {
849
+ const byRunId = new Map([...this.state.checkpoints.values()].filter((checkpoint) => checkpoint.projectId === input.projectId).map((checkpoint) => [checkpoint.createdByRunId, checkpoint]));
850
+ return [...new Set(input.runIds)].flatMap((runId) => {
851
+ const checkpoint = byRunId.get(runId);
852
+ return checkpoint ? [clone(checkpoint)] : [];
853
+ });
854
+ }
849
855
  findLatest(projectId, threadId) {
850
856
  return [...this.state.checkpoints.values()].filter((checkpoint) => checkpoint.projectId === projectId && checkpoint.threadId === threadId).sort((left, right) => right.summarizedThroughSeq - left.summarizedThroughSeq || right.createdAt.getTime() - left.createdAt.getTime() || right.id.localeCompare(left.id))[0] ?? null;
851
857
  }
@@ -2104,6 +2110,110 @@ class InMemoryExecutionStorage {
2104
2110
  }
2105
2111
  }
2106
2112
 
2113
+ // src/objects/query/scalar-values.ts
2114
+ function compareQueryScalarValues(left, right, scalarKind) {
2115
+ if (left === undefined || right === undefined || left === null || right === null) {
2116
+ return Number.NaN;
2117
+ }
2118
+ if (scalarKind === undefined)
2119
+ return compareRuntimeValues(left, right);
2120
+ switch (scalarKind) {
2121
+ case "string":
2122
+ case "uuid":
2123
+ return typeof left === "string" && typeof right === "string" ? compareStrings(left, right) : Number.NaN;
2124
+ case "boolean":
2125
+ return typeof left === "boolean" && typeof right === "boolean" ? Number(left) - Number(right) : Number.NaN;
2126
+ case "integer":
2127
+ case "double":
2128
+ return typeof left === "number" && typeof right === "number" ? left - right : Number.NaN;
2129
+ case "decimal":
2130
+ return typeof left === "string" && typeof right === "string" ? compareDecimalValues(left, right) : Number.NaN;
2131
+ case "date":
2132
+ case "timestamp":
2133
+ return compareTemporalValues(left, right);
2134
+ }
2135
+ }
2136
+ function queryScalarValuesEqual(left, right, scalarKind) {
2137
+ if (scalarKind === "decimal") {
2138
+ const comparison = compareQueryScalarValues(left, right, scalarKind);
2139
+ return !Number.isNaN(comparison) && comparison === 0;
2140
+ }
2141
+ if (scalarKind === "date" || scalarKind === "timestamp") {
2142
+ const comparison = compareTemporalValues(left, right);
2143
+ return !Number.isNaN(comparison) && comparison === 0;
2144
+ }
2145
+ if (scalarKind !== undefined)
2146
+ return Object.is(left, right);
2147
+ return runtimeValuesEqual(left, right);
2148
+ }
2149
+ function compareRuntimeValues(left, right) {
2150
+ if (typeof left === "number" && typeof right === "number")
2151
+ return left - right;
2152
+ if (typeof left === "string" && typeof right === "string")
2153
+ return compareStrings(left, right);
2154
+ if (typeof left === "boolean" && typeof right === "boolean") {
2155
+ return Number(left) - Number(right);
2156
+ }
2157
+ if (left instanceof Date || right instanceof Date)
2158
+ return compareTemporalValues(left, right);
2159
+ return Number.NaN;
2160
+ }
2161
+ function runtimeValuesEqual(left, right) {
2162
+ if (left instanceof Date || right instanceof Date) {
2163
+ const comparison = compareTemporalValues(left, right);
2164
+ return !Number.isNaN(comparison) && comparison === 0;
2165
+ }
2166
+ return Object.is(left, right);
2167
+ }
2168
+ function compareTemporalValues(left, right) {
2169
+ const leftTime = dateTime(left);
2170
+ const rightTime = dateTime(right);
2171
+ if (leftTime === null || rightTime === null)
2172
+ return Number.NaN;
2173
+ return leftTime - rightTime;
2174
+ }
2175
+ function dateTime(value) {
2176
+ if (value instanceof Date) {
2177
+ const time = value.getTime();
2178
+ return Number.isNaN(time) ? null : time;
2179
+ }
2180
+ if (typeof value === "string" || typeof value === "number") {
2181
+ const time = new Date(value).getTime();
2182
+ return Number.isNaN(time) ? null : time;
2183
+ }
2184
+ return null;
2185
+ }
2186
+ function compareStrings(left, right) {
2187
+ if (left < right)
2188
+ return -1;
2189
+ if (left > right)
2190
+ return 1;
2191
+ return 0;
2192
+ }
2193
+
2194
+ // src/storage/objects/keys.ts
2195
+ function objectBatchKey(objectTypeId, primaryId) {
2196
+ return JSON.stringify([objectTypeId, primaryId]);
2197
+ }
2198
+ function linkBatchKey(objectTypeId, objectId, linkId) {
2199
+ return JSON.stringify([objectTypeId, objectId, linkId]);
2200
+ }
2201
+ function objectLinkCursor(link) {
2202
+ return [link.sourceTypeId, link.sourceId, link.linkId, link.targetTypeId, link.targetId];
2203
+ }
2204
+ function compareObjectLinkCursors(left, right) {
2205
+ for (let index = 0;index < left.length; index += 1) {
2206
+ if (left[index] < right[index])
2207
+ return -1;
2208
+ if (left[index] > right[index])
2209
+ return 1;
2210
+ }
2211
+ return 0;
2212
+ }
2213
+ function compareObjectLinks(left, right) {
2214
+ return compareObjectLinkCursors(objectLinkCursor(left), objectLinkCursor(right));
2215
+ }
2216
+
2107
2217
  // src/storage/objects/in-memory.ts
2108
2218
  var IN_MEMORY_OBJECT_QUERY_CAPABILITIES = {
2109
2219
  queryObjects: true,
@@ -2112,6 +2222,7 @@ var IN_MEMORY_OBJECT_QUERY_CAPABILITIES = {
2112
2222
  facetObjects: true,
2113
2223
  nodes: {
2114
2224
  start: true,
2225
+ refs: true,
2115
2226
  filter: true,
2116
2227
  text: true,
2117
2228
  vector: true,
@@ -2165,23 +2276,37 @@ var IN_MEMORY_OBJECT_QUERY_CAPABILITIES = {
2165
2276
  }
2166
2277
  };
2167
2278
  function objectRowKey(projectId, objectTypeId) {
2168
- return `${projectId}:${objectTypeId}`;
2279
+ return JSON.stringify([projectId, objectTypeId]);
2280
+ }
2281
+ function objectRowProjectPrefix(projectId) {
2282
+ return `[${JSON.stringify(projectId)},`;
2169
2283
  }
2170
- function comparePrimaryIds(left, right) {
2284
+ function compareStrings2(left, right) {
2171
2285
  if (left < right)
2172
2286
  return -1;
2173
2287
  if (left > right)
2174
2288
  return 1;
2175
2289
  return 0;
2176
2290
  }
2291
+ function assertLinkQueryLimit(limit) {
2292
+ if (!Number.isSafeInteger(limit) || limit <= 0) {
2293
+ throw new Error("Object link query limit must be a positive safe integer.");
2294
+ }
2295
+ }
2177
2296
  function sourceLinkBucketKey(projectId, sourceTypeId, sourceId) {
2178
- return `${projectId}:${sourceTypeId}:${sourceId}`;
2297
+ return JSON.stringify([projectId, sourceTypeId, sourceId]);
2179
2298
  }
2180
2299
  function linkRowKey(linkId, targetTypeId, targetId) {
2181
- return `${linkId}:${targetTypeId}:${targetId}`;
2300
+ return JSON.stringify([linkId, targetTypeId, targetId]);
2182
2301
  }
2183
2302
  function fullLinkRowKey(row) {
2184
- return `${row.sourceTypeId}:${row.sourceId}:${row.linkId}:${row.targetTypeId}:${row.targetId}`;
2303
+ return JSON.stringify([
2304
+ row.sourceTypeId,
2305
+ row.sourceId,
2306
+ row.linkId,
2307
+ row.targetTypeId,
2308
+ row.targetId
2309
+ ]);
2185
2310
  }
2186
2311
  var PAGE_TOKEN_PREFIX = "offset:";
2187
2312
  var materializerAdapters = new WeakMap;
@@ -2316,6 +2441,8 @@ class InMemoryObjectStorage {
2316
2441
  switch (query.kind) {
2317
2442
  case "start":
2318
2443
  return this.evaluateStart(projectId, query.objectTypeId);
2444
+ case "refs":
2445
+ return this.evaluateRefs(projectId, query.refs);
2319
2446
  case "filter": {
2320
2447
  const input = this.evaluateObjectQuery(projectId, query.input);
2321
2448
  const entries = input.entries.filter((entry) => matchesPredicate(entry.row, query.predicate));
@@ -2405,6 +2532,18 @@ class InMemoryObjectStorage {
2405
2532
  }));
2406
2533
  return completeEvaluation(entries);
2407
2534
  }
2535
+ evaluateRefs(projectId, refs) {
2536
+ const seen = new Set;
2537
+ const entries = refs.flatMap((ref) => {
2538
+ const key2 = JSON.stringify([ref.objectTypeId, ref.primaryId]);
2539
+ if (seen.has(key2))
2540
+ return [];
2541
+ seen.add(key2);
2542
+ const row = this.rows.get(objectRowKey(projectId, ref.objectTypeId))?.get(ref.primaryId);
2543
+ return row ? [row] : [];
2544
+ }).sort((left, right) => compareStrings2(left.objectTypeId, right.objectTypeId) || compareStrings2(left.primaryId, right.primaryId)).map((row, order) => ({ row, score: 0, order }));
2545
+ return completeEvaluation(entries);
2546
+ }
2408
2547
  evaluateSet(projectId, op, inputs) {
2409
2548
  const evaluations = inputs.map((input) => this.evaluateObjectQuery(projectId, input));
2410
2549
  const first = evaluations[0];
@@ -2512,7 +2651,7 @@ class InMemoryObjectStorage {
2512
2651
  primaryId: item.primaryId
2513
2652
  });
2514
2653
  if (row) {
2515
- result.set(`${item.objectTypeId}:${item.primaryId}`, row);
2654
+ result.set(objectBatchKey(item.objectTypeId, item.primaryId), row);
2516
2655
  }
2517
2656
  }
2518
2657
  return result;
@@ -2527,11 +2666,39 @@ class InMemoryObjectStorage {
2527
2666
  linkId: item.linkId
2528
2667
  });
2529
2668
  if (rows.length > 0) {
2530
- result.set(`${item.objectTypeId}:${item.objectId}:${item.linkId}`, [...rows]);
2669
+ result.set(linkBatchKey(item.objectTypeId, item.objectId, item.linkId), [...rows]);
2531
2670
  }
2532
2671
  }
2533
2672
  return result;
2534
2673
  }
2674
+ async queryLinks(params) {
2675
+ assertLinkQueryLimit(params.limit);
2676
+ if (params.objectRefs.length === 0 || params.endpointObjectTypeIds?.length === 0) {
2677
+ return { links: [], hasMore: false };
2678
+ }
2679
+ const allowedTypes = params.endpointObjectTypeIds ? new Set(params.endpointObjectTypeIds) : undefined;
2680
+ const deduped = new Map;
2681
+ for (const object of params.objectRefs) {
2682
+ const rows2 = await this.listLinks({
2683
+ projectId: params.projectId,
2684
+ objectTypeId: object.objectTypeId,
2685
+ objectId: object.primaryId,
2686
+ direction: params.direction,
2687
+ ...params.linkId === undefined ? {} : { linkId: params.linkId }
2688
+ });
2689
+ for (const row of rows2) {
2690
+ if (allowedTypes && (!allowedTypes.has(row.sourceTypeId) || !allowedTypes.has(row.targetTypeId))) {
2691
+ continue;
2692
+ }
2693
+ if (params.after && compareObjectLinkCursors(objectLinkCursor(row), params.after) <= 0) {
2694
+ continue;
2695
+ }
2696
+ deduped.set(fullLinkRowKey(row), row);
2697
+ }
2698
+ }
2699
+ const rows = [...deduped.values()].sort(compareObjectLinks).slice(0, params.limit + 1);
2700
+ return { links: rows.slice(0, params.limit), hasMore: rows.length > params.limit };
2701
+ }
2535
2702
  async listIncidentLinksBatch(params) {
2536
2703
  const deduped = new Map;
2537
2704
  for (const item of params.items) {
@@ -2550,7 +2717,7 @@ class InMemoryObjectStorage {
2550
2717
  async listByPrimaryIdPage(params) {
2551
2718
  assertReconciliationPageLimit(params.limit);
2552
2719
  const bucket = this.rows.get(objectRowKey(params.projectId, params.objectTypeId));
2553
- const rows = [...bucket?.values() ?? []].filter((row) => !params.afterPrimaryId || comparePrimaryIds(row.primaryId, params.afterPrimaryId) > 0).sort((left, right) => comparePrimaryIds(left.primaryId, right.primaryId)).slice(0, params.limit + 1);
2720
+ const rows = [...bucket?.values() ?? []].filter((row) => !params.afterPrimaryId || compareStrings2(row.primaryId, params.afterPrimaryId) > 0).sort((left, right) => compareStrings2(left.primaryId, right.primaryId)).slice(0, params.limit + 1);
2554
2721
  const hasMore = rows.length > params.limit;
2555
2722
  const objects = rows.slice(0, params.limit).map((row) => structuredClone(row));
2556
2723
  const last = objects.at(-1);
@@ -2571,7 +2738,7 @@ class InMemoryObjectStorage {
2571
2738
  }
2572
2739
  } else {
2573
2740
  for (const [key2, bucket] of this.rows) {
2574
- if (key2.startsWith(`${params.projectId}:`)) {
2741
+ if (key2.startsWith(objectRowProjectPrefix(params.projectId))) {
2575
2742
  allRows.push(...bucket.values());
2576
2743
  }
2577
2744
  }
@@ -2837,7 +3004,7 @@ function rowIdentityKey(row) {
2837
3004
  return rowIdentityKeyParts(row.objectTypeId, row.primaryId);
2838
3005
  }
2839
3006
  function rowIdentityKeyParts(objectTypeId, primaryId) {
2840
- return `${objectTypeId}:${primaryId}`;
3007
+ return objectBatchKey(objectTypeId, primaryId);
2841
3008
  }
2842
3009
  function upsertEntry(entriesByKey, entry) {
2843
3010
  const key2 = rowIdentityKey(entry.row);
@@ -3127,23 +3294,19 @@ class InMemoryTimeseriesStorage {
3127
3294
  return points.map(clonePoint);
3128
3295
  }
3129
3296
  async getHistoryBatch(input) {
3130
- const results = [];
3131
- for (const series of input.series) {
3132
- results.push({
3133
- ...series,
3134
- points: await this.getHistory({
3135
- projectId: input.projectId,
3136
- objectTypeId: series.objectTypeId,
3137
- objectId: series.objectId,
3138
- propertyId: series.propertyId,
3139
- from: input.from,
3140
- to: input.to,
3141
- limit: input.limitPerSeries,
3142
- order: input.order
3143
- })
3144
- });
3145
- }
3146
- return results;
3297
+ return Promise.all(input.series.map(async (series) => ({
3298
+ ...series,
3299
+ points: await this.getHistory({
3300
+ projectId: input.projectId,
3301
+ objectTypeId: series.objectTypeId,
3302
+ objectId: series.objectId,
3303
+ propertyId: series.propertyId,
3304
+ from: input.from,
3305
+ to: input.to,
3306
+ limit: input.limitPerSeries,
3307
+ order: input.order
3308
+ })
3309
+ })));
3147
3310
  }
3148
3311
  async getLatest(params) {
3149
3312
  const series = this.pointsByKey.get(pointKey(params.projectId, params.objectTypeId, params.objectId, params.propertyId));
@@ -7088,6 +7251,6 @@ function assertAppliedPrefix(migrations, rows) {
7088
7251
  }
7089
7252
  return [...rows].sort((a, b) => a.version - b.version);
7090
7253
  }
7091
- export { actionSubjectsEqual, actionRunParamsEqual, actionRunPhaseRecordsEqual, finishActionRunPhase, canRequeueActionRunAfterEnqueueFailure, isTerminalActionRun, InMemoryActionRunStorage, AGENT_MESSAGE_CONTENT_VERSION, InMemoryAgentStorage, AiCostStorageError, InMemoryAiCostStorage, InMemoryConnectorConnectionStorage, ObjectNotFoundError, ObjectStorageError, StorageTransactionError, isStorageSerializationFailure, FileUploadSessionError, DEFAULT_FILE_UPLOAD_SESSION_TTL_MS, DEFAULT_FILE_UPLOAD_TERMINAL_SESSION_TTL_MS, createUploadExpiresAt, createFileUploadId, InMemoryFileUploadSessions, canRequeuePipelineRunAfterEnqueueFailure, PIPELINE_RUN_FAILURE_CODES, InMemoryPipelineRunStorage, InMemoryProjectionRunStorage, InMemoryRulesStorage, canRequeueSyncRunAfterEnqueueFailure, SYNC_RUN_FAILURE_CODES, InMemorySyncRunStorage, createTransactionStorageProxy, assertTransactionActive, throwNestedStorageTransaction, WEBHOOK_RUN_FAILURE_CODES, canRetryWebhookRun, InMemoryWebhookRunStorage, WorkflowInterventionError, InMemoryWorkflowInterventionStorage, WORKFLOW_RUN_FAILURE_CODES, InMemoryWorkflowRunStorage, InMemoryWorkflowNodeRunStorage, InMemoryWorkflowAgentNodeRunStorage, InMemoryStorage, isMigrationCapableStorage, migrateStorage, checkStorageSchema, step, defineMigrations, runMigrationSet, describeMigrationHistory };
7254
+ export { actionSubjectsEqual, actionRunParamsEqual, actionRunPhaseRecordsEqual, finishActionRunPhase, canRequeueActionRunAfterEnqueueFailure, isTerminalActionRun, InMemoryActionRunStorage, AGENT_MESSAGE_CONTENT_VERSION, InMemoryAgentStorage, AiCostStorageError, InMemoryAiCostStorage, InMemoryConnectorConnectionStorage, ObjectNotFoundError, ObjectStorageError, StorageTransactionError, isStorageSerializationFailure, FileUploadSessionError, DEFAULT_FILE_UPLOAD_SESSION_TTL_MS, DEFAULT_FILE_UPLOAD_TERMINAL_SESSION_TTL_MS, createUploadExpiresAt, createFileUploadId, InMemoryFileUploadSessions, compareQueryScalarValues, queryScalarValuesEqual, objectBatchKey, linkBatchKey, objectLinkCursor, canRequeuePipelineRunAfterEnqueueFailure, PIPELINE_RUN_FAILURE_CODES, InMemoryPipelineRunStorage, InMemoryProjectionRunStorage, InMemoryRulesStorage, canRequeueSyncRunAfterEnqueueFailure, SYNC_RUN_FAILURE_CODES, InMemorySyncRunStorage, createTransactionStorageProxy, assertTransactionActive, throwNestedStorageTransaction, WEBHOOK_RUN_FAILURE_CODES, canRetryWebhookRun, InMemoryWebhookRunStorage, WorkflowInterventionError, InMemoryWorkflowInterventionStorage, WORKFLOW_RUN_FAILURE_CODES, InMemoryWorkflowRunStorage, InMemoryWorkflowNodeRunStorage, InMemoryWorkflowAgentNodeRunStorage, InMemoryStorage, isMigrationCapableStorage, migrateStorage, checkStorageSchema, step, defineMigrations, runMigrationSet, describeMigrationHistory };
7092
7255
 
7093
- //# debugId=D421DE165E32FF5B64756E2164756E21
7256
+ //# debugId=AD092B967C71B31564756E2164756E21