@zhivex-ai/core 1.18.0 → 1.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/README.md +4 -0
  2. package/dist/agent/approvals.d.ts +7 -0
  3. package/dist/agent/approvals.d.ts.map +1 -0
  4. package/dist/agent/approvals.js +97 -0
  5. package/dist/agent/approvals.js.map +1 -0
  6. package/dist/agent/cancellation.d.ts +4 -0
  7. package/dist/agent/cancellation.d.ts.map +1 -0
  8. package/dist/agent/cancellation.js +69 -0
  9. package/dist/agent/cancellation.js.map +1 -0
  10. package/dist/agent/common.d.ts +20 -0
  11. package/dist/agent/common.d.ts.map +1 -0
  12. package/dist/agent/common.js +150 -0
  13. package/dist/agent/common.js.map +1 -0
  14. package/dist/agent/compaction.d.ts +6 -0
  15. package/dist/agent/compaction.d.ts.map +1 -0
  16. package/dist/agent/compaction.js +156 -0
  17. package/dist/agent/compaction.js.map +1 -0
  18. package/dist/agent/context.d.ts +58 -0
  19. package/dist/agent/context.d.ts.map +1 -0
  20. package/dist/agent/context.js +267 -0
  21. package/dist/agent/context.js.map +1 -0
  22. package/dist/agent/definition.d.ts +4 -0
  23. package/dist/agent/definition.d.ts.map +1 -0
  24. package/dist/agent/definition.js +35 -0
  25. package/dist/agent/definition.js.map +1 -0
  26. package/dist/agent/execution.d.ts +14 -0
  27. package/dist/agent/execution.d.ts.map +1 -0
  28. package/dist/agent/execution.js +1062 -0
  29. package/dist/agent/execution.js.map +1 -0
  30. package/dist/agent/groups.d.ts +3 -0
  31. package/dist/agent/groups.d.ts.map +1 -0
  32. package/dist/agent/groups.js +130 -0
  33. package/dist/agent/groups.js.map +1 -0
  34. package/dist/agent/guardrails.d.ts +4 -0
  35. package/dist/agent/guardrails.d.ts.map +1 -0
  36. package/dist/agent/guardrails.js +29 -0
  37. package/dist/agent/guardrails.js.map +1 -0
  38. package/dist/agent/instance.d.ts +42 -0
  39. package/dist/agent/instance.d.ts.map +1 -0
  40. package/dist/agent/instance.js +82 -0
  41. package/dist/agent/instance.js.map +1 -0
  42. package/dist/agent/lifecycle.d.ts +31 -0
  43. package/dist/agent/lifecycle.d.ts.map +1 -0
  44. package/dist/agent/lifecycle.js +184 -0
  45. package/dist/agent/lifecycle.js.map +1 -0
  46. package/dist/agent/state.d.ts +6 -0
  47. package/dist/agent/state.d.ts.map +1 -0
  48. package/dist/agent/state.js +119 -0
  49. package/dist/agent/state.js.map +1 -0
  50. package/dist/agent/telemetry.d.ts +12 -0
  51. package/dist/agent/telemetry.d.ts.map +1 -0
  52. package/dist/agent/telemetry.js +176 -0
  53. package/dist/agent/telemetry.js.map +1 -0
  54. package/dist/agent/tool-execution.d.ts +6 -0
  55. package/dist/agent/tool-execution.d.ts.map +1 -0
  56. package/dist/agent/tool-execution.js +176 -0
  57. package/dist/agent/tool-execution.js.map +1 -0
  58. package/dist/agent-run-view.d.ts +9 -0
  59. package/dist/agent-run-view.d.ts.map +1 -0
  60. package/dist/agent-run-view.js +42 -0
  61. package/dist/agent-run-view.js.map +1 -0
  62. package/dist/agent-store/file.d.ts +11 -0
  63. package/dist/agent-store/file.d.ts.map +1 -0
  64. package/dist/agent-store/file.js +534 -0
  65. package/dist/agent-store/file.js.map +1 -0
  66. package/dist/agent-store/memory.d.ts +9 -0
  67. package/dist/agent-store/memory.d.ts.map +1 -0
  68. package/dist/agent-store/memory.js +198 -0
  69. package/dist/agent-store/memory.js.map +1 -0
  70. package/dist/agent-store/postgres.d.ts +4 -0
  71. package/dist/agent-store/postgres.d.ts.map +1 -0
  72. package/dist/agent-store/postgres.js +374 -0
  73. package/dist/agent-store/postgres.js.map +1 -0
  74. package/dist/agent-store/shared.d.ts +19 -0
  75. package/dist/agent-store/shared.d.ts.map +1 -0
  76. package/dist/agent-store/shared.js +137 -0
  77. package/dist/agent-store/shared.js.map +1 -0
  78. package/dist/agent-store/sqlite.d.ts +4 -0
  79. package/dist/agent-store/sqlite.d.ts.map +1 -0
  80. package/dist/agent-store/sqlite.js +362 -0
  81. package/dist/agent-store/sqlite.js.map +1 -0
  82. package/dist/agent-store.d.ts +5 -21
  83. package/dist/agent-store.d.ts.map +1 -1
  84. package/dist/agent-store.js +5 -1588
  85. package/dist/agent-store.js.map +1 -1
  86. package/dist/agent.d.ts +6 -57
  87. package/dist/agent.d.ts.map +1 -1
  88. package/dist/agent.js +6 -2631
  89. package/dist/agent.js.map +1 -1
  90. package/dist/agents-entry.d.ts +19 -0
  91. package/dist/agents-entry.d.ts.map +1 -0
  92. package/dist/agents-entry.js +14 -0
  93. package/dist/agents-entry.js.map +1 -0
  94. package/dist/artifact/file.d.ts +6 -0
  95. package/dist/artifact/file.d.ts.map +1 -0
  96. package/dist/artifact/file.js +380 -0
  97. package/dist/artifact/file.js.map +1 -0
  98. package/dist/artifact/memory.d.ts +3 -0
  99. package/dist/artifact/memory.d.ts.map +1 -0
  100. package/dist/artifact/memory.js +80 -0
  101. package/dist/artifact/memory.js.map +1 -0
  102. package/dist/artifact/postgres.d.ts +3 -0
  103. package/dist/artifact/postgres.d.ts.map +1 -0
  104. package/dist/artifact/postgres.js +283 -0
  105. package/dist/artifact/postgres.js.map +1 -0
  106. package/dist/artifact/shared.d.ts +208 -0
  107. package/dist/artifact/shared.d.ts.map +1 -0
  108. package/dist/artifact/shared.js +523 -0
  109. package/dist/artifact/shared.js.map +1 -0
  110. package/dist/artifact/sqlite.d.ts +3 -0
  111. package/dist/artifact/sqlite.d.ts.map +1 -0
  112. package/dist/artifact/sqlite.js +283 -0
  113. package/dist/artifact/sqlite.js.map +1 -0
  114. package/dist/artifact.d.ts +6 -186
  115. package/dist/artifact.d.ts.map +1 -1
  116. package/dist/artifact.js +6 -1536
  117. package/dist/artifact.js.map +1 -1
  118. package/dist/catalog-contracts.d.ts +52 -0
  119. package/dist/catalog-contracts.d.ts.map +1 -0
  120. package/dist/catalog-contracts.js +250 -0
  121. package/dist/catalog-contracts.js.map +1 -0
  122. package/dist/catalog.d.ts +3 -52
  123. package/dist/catalog.d.ts.map +1 -1
  124. package/dist/catalog.js +3 -249
  125. package/dist/catalog.js.map +1 -1
  126. package/dist/generate-cache-file.d.ts +11 -0
  127. package/dist/generate-cache-file.d.ts.map +1 -0
  128. package/dist/generate-cache-file.js +124 -0
  129. package/dist/generate-cache-file.js.map +1 -0
  130. package/dist/generate-text.d.ts +2 -5
  131. package/dist/generate-text.d.ts.map +1 -1
  132. package/dist/generate-text.js +3 -18
  133. package/dist/generate-text.js.map +1 -1
  134. package/dist/generation-entry.d.ts +6 -0
  135. package/dist/generation-entry.d.ts.map +1 -0
  136. package/dist/generation-entry.js +6 -0
  137. package/dist/generation-entry.js.map +1 -0
  138. package/dist/middleware-runtime.d.ts +35 -0
  139. package/dist/middleware-runtime.d.ts.map +1 -0
  140. package/dist/middleware-runtime.js +532 -0
  141. package/dist/middleware-runtime.js.map +1 -0
  142. package/dist/middleware.d.ts +3 -43
  143. package/dist/middleware.d.ts.map +1 -1
  144. package/dist/middleware.js +3 -653
  145. package/dist/middleware.js.map +1 -1
  146. package/dist/normalize-messages.d.ts +3 -0
  147. package/dist/normalize-messages.d.ts.map +1 -0
  148. package/dist/normalize-messages.js +16 -0
  149. package/dist/normalize-messages.js.map +1 -0
  150. package/dist/provider-entry.d.ts +17 -0
  151. package/dist/provider-entry.d.ts.map +1 -0
  152. package/dist/provider-entry.js +13 -0
  153. package/dist/provider-entry.js.map +1 -0
  154. package/dist/realtime.d.ts +2 -0
  155. package/dist/realtime.d.ts.map +1 -1
  156. package/dist/realtime.js +6 -0
  157. package/dist/realtime.js.map +1 -1
  158. package/dist/store-key.d.ts +3 -0
  159. package/dist/store-key.d.ts.map +1 -0
  160. package/dist/store-key.js +5 -0
  161. package/dist/store-key.js.map +1 -0
  162. package/dist/store-security.d.ts +1 -2
  163. package/dist/store-security.d.ts.map +1 -1
  164. package/dist/store-security.js +2 -4
  165. package/dist/store-security.js.map +1 -1
  166. package/dist/types/agent-state.d.ts +236 -0
  167. package/dist/types/agent-state.d.ts.map +1 -0
  168. package/dist/types/agent-state.js +2 -0
  169. package/dist/types/agent-state.js.map +1 -0
  170. package/dist/types/agents.d.ts +429 -0
  171. package/dist/types/agents.d.ts.map +1 -0
  172. package/dist/types/agents.js +2 -0
  173. package/dist/types/agents.js.map +1 -0
  174. package/dist/types/common.d.ts +179 -0
  175. package/dist/types/common.d.ts.map +1 -0
  176. package/dist/types/common.js +2 -0
  177. package/dist/types/common.js.map +1 -0
  178. package/dist/types/generation.d.ts +109 -0
  179. package/dist/types/generation.d.ts.map +1 -0
  180. package/dist/types/generation.js +2 -0
  181. package/dist/types/generation.js.map +1 -0
  182. package/dist/types/media-data.d.ts +65 -0
  183. package/dist/types/media-data.d.ts.map +1 -0
  184. package/dist/types/media-data.js +2 -0
  185. package/dist/types/media-data.js.map +1 -0
  186. package/dist/types/media.d.ts +141 -0
  187. package/dist/types/media.d.ts.map +1 -0
  188. package/dist/types/media.js +2 -0
  189. package/dist/types/media.js.map +1 -0
  190. package/dist/types/messages.d.ts +82 -0
  191. package/dist/types/messages.d.ts.map +1 -0
  192. package/dist/types/messages.js +2 -0
  193. package/dist/types/messages.js.map +1 -0
  194. package/dist/types/middleware.d.ts +130 -0
  195. package/dist/types/middleware.d.ts.map +1 -0
  196. package/dist/types/middleware.js +2 -0
  197. package/dist/types/middleware.js.map +1 -0
  198. package/dist/types/model-tools.d.ts +409 -0
  199. package/dist/types/model-tools.d.ts.map +1 -0
  200. package/dist/types/model-tools.js +2 -0
  201. package/dist/types/model-tools.js.map +1 -0
  202. package/dist/types/persistence.d.ts +168 -0
  203. package/dist/types/persistence.d.ts.map +1 -0
  204. package/dist/types/persistence.js +2 -0
  205. package/dist/types/persistence.js.map +1 -0
  206. package/dist/types/provider-resources.d.ts +336 -0
  207. package/dist/types/provider-resources.d.ts.map +1 -0
  208. package/dist/types/provider-resources.js +2 -0
  209. package/dist/types/provider-resources.js.map +1 -0
  210. package/dist/types/provider.d.ts +23 -0
  211. package/dist/types/provider.d.ts.map +1 -0
  212. package/dist/types/provider.js +2 -0
  213. package/dist/types/provider.js.map +1 -0
  214. package/dist/types/resource-options.d.ts +88 -0
  215. package/dist/types/resource-options.d.ts.map +1 -0
  216. package/dist/types/resource-options.js +2 -0
  217. package/dist/types/resource-options.js.map +1 -0
  218. package/dist/types/stream.d.ts +70 -0
  219. package/dist/types/stream.d.ts.map +1 -0
  220. package/dist/types/stream.js +2 -0
  221. package/dist/types/stream.js.map +1 -0
  222. package/dist/types/ui.d.ts +110 -0
  223. package/dist/types/ui.d.ts.map +1 -0
  224. package/dist/types/ui.js +2 -0
  225. package/dist/types/ui.js.map +1 -0
  226. package/dist/types.d.ts +16 -2480
  227. package/dist/types.d.ts.map +1 -1
  228. package/dist/ui.d.ts.map +1 -1
  229. package/dist/ui.js +2 -0
  230. package/dist/ui.js.map +1 -1
  231. package/dist/workflow-state-service/file.d.ts +5 -0
  232. package/dist/workflow-state-service/file.d.ts.map +1 -0
  233. package/dist/workflow-state-service/file.js +142 -0
  234. package/dist/workflow-state-service/file.js.map +1 -0
  235. package/dist/workflow-state-service/memory.d.ts +3 -0
  236. package/dist/workflow-state-service/memory.d.ts.map +1 -0
  237. package/dist/workflow-state-service/memory.js +27 -0
  238. package/dist/workflow-state-service/memory.js.map +1 -0
  239. package/dist/workflow-state-service/postgres.d.ts +4 -0
  240. package/dist/workflow-state-service/postgres.d.ts.map +1 -0
  241. package/dist/workflow-state-service/postgres.js +179 -0
  242. package/dist/workflow-state-service/postgres.js.map +1 -0
  243. package/dist/workflow-state-service/shared.d.ts +43 -0
  244. package/dist/workflow-state-service/shared.d.ts.map +1 -0
  245. package/dist/workflow-state-service/shared.js +107 -0
  246. package/dist/workflow-state-service/shared.js.map +1 -0
  247. package/dist/workflow-state-service/sqlite.d.ts +4 -0
  248. package/dist/workflow-state-service/sqlite.d.ts.map +1 -0
  249. package/dist/workflow-state-service/sqlite.js +183 -0
  250. package/dist/workflow-state-service/sqlite.js.map +1 -0
  251. package/dist/workflow-state-service.d.ts +6 -33
  252. package/dist/workflow-state-service.d.ts.map +1 -1
  253. package/dist/workflow-state-service.js +6 -626
  254. package/dist/workflow-state-service.js.map +1 -1
  255. package/package.json +17 -1
@@ -0,0 +1,523 @@
1
+ import { createHash } from "node:crypto";
2
+ import { ConflictError, ValidationError } from "../errors.js";
3
+ import { createSecureId } from "#secure-id";
4
+ import { canonicalStoreKey } from "../store-key.js";
5
+ export const randomId = createSecureId;
6
+ const cloneJson = (value) => JSON.parse(JSON.stringify(value));
7
+ const MIB = 1024 * 1024;
8
+ export const ARTIFACT_SCHEMA_VERSION = 1;
9
+ export const DEFAULT_ARTIFACT_SERVICE_LIMITS = Object.freeze({
10
+ maxJsonBytes: MIB,
11
+ maxTextBytes: MIB,
12
+ maxBase64Bytes: 16 * MIB,
13
+ maxBinaryBytes: 16 * MIB,
14
+ maxMetadataBytes: 64 * 1024,
15
+ maxRecordBytes: 24 * MIB
16
+ });
17
+ export const artifactParts = (input) => [input.appName, input.userId, input.sessionId, input.id];
18
+ export const artifactKey = (input) => canonicalStoreKey("artifact", artifactParts(input));
19
+ export const legacyArtifactKey = (input) => `${input.appName}:${input.userId}:${input.sessionId}:${input.id}`;
20
+ export const matchesArtifactLookup = (artifact, input) => artifact.appName === input.appName &&
21
+ artifact.userId === input.userId &&
22
+ artifact.sessionId === input.sessionId &&
23
+ artifact.id === input.id;
24
+ const identifierPattern = /^[A-Za-z_][A-Za-z0-9_]*$/;
25
+ const artifactEncodings = new Set(["json", "text", "base64"]);
26
+ const artifactStorageModes = new Set(["json", "binary"]);
27
+ const positiveSafeIntegerLimit = (value, fallback, name) => {
28
+ const resolved = value ?? fallback;
29
+ if (!Number.isSafeInteger(resolved) || resolved <= 0) {
30
+ throw new ValidationError(`The "${name}" artifact limit must be a positive safe integer.`);
31
+ }
32
+ return resolved;
33
+ };
34
+ export const resolveArtifactServiceLimits = (limits = {}) => ({
35
+ maxJsonBytes: positiveSafeIntegerLimit(limits.maxJsonBytes, DEFAULT_ARTIFACT_SERVICE_LIMITS.maxJsonBytes, "maxJsonBytes"),
36
+ maxTextBytes: positiveSafeIntegerLimit(limits.maxTextBytes, DEFAULT_ARTIFACT_SERVICE_LIMITS.maxTextBytes, "maxTextBytes"),
37
+ maxBase64Bytes: positiveSafeIntegerLimit(limits.maxBase64Bytes, DEFAULT_ARTIFACT_SERVICE_LIMITS.maxBase64Bytes, "maxBase64Bytes"),
38
+ maxBinaryBytes: positiveSafeIntegerLimit(limits.maxBinaryBytes, DEFAULT_ARTIFACT_SERVICE_LIMITS.maxBinaryBytes, "maxBinaryBytes"),
39
+ maxMetadataBytes: positiveSafeIntegerLimit(limits.maxMetadataBytes, DEFAULT_ARTIFACT_SERVICE_LIMITS.maxMetadataBytes, "maxMetadataBytes"),
40
+ maxRecordBytes: positiveSafeIntegerLimit(limits.maxRecordBytes, DEFAULT_ARTIFACT_SERVICE_LIMITS.maxRecordBytes, "maxRecordBytes")
41
+ });
42
+ const jsonText = (value, fieldName) => {
43
+ try {
44
+ const serialized = JSON.stringify(value);
45
+ if (serialized === undefined) {
46
+ throw new ValidationError(`Artifact ${fieldName} must be JSON-serializable.`);
47
+ }
48
+ return serialized;
49
+ }
50
+ catch (error) {
51
+ if (error instanceof ValidationError) {
52
+ throw error;
53
+ }
54
+ throw new ValidationError(`Artifact ${fieldName} must be JSON-serializable.`, { cause: error });
55
+ }
56
+ };
57
+ const utf8Bytes = (value) => Buffer.byteLength(value, "utf8");
58
+ export const assertByteLimit = (actual, maximum, fieldName) => {
59
+ if (actual > maximum) {
60
+ throw new ValidationError(`Artifact ${fieldName} is ${actual} bytes and exceeds the ${maximum}-byte limit.`);
61
+ }
62
+ };
63
+ const validateRequiredString = (value, fieldName) => {
64
+ if (typeof value !== "string" || value.length === 0) {
65
+ throw new ValidationError(`Artifact "${fieldName}" must be a non-empty string.`);
66
+ }
67
+ };
68
+ const validateOptionalString = (value, fieldName) => {
69
+ if (value !== undefined) {
70
+ validateRequiredString(value, fieldName);
71
+ }
72
+ };
73
+ export const validateArtifactLookup = (input) => {
74
+ validateRequiredString(input.appName, "appName");
75
+ validateRequiredString(input.userId, "userId");
76
+ validateRequiredString(input.sessionId, "sessionId");
77
+ validateRequiredString(input.id, "id");
78
+ };
79
+ export const validateArtifactListInput = (input) => {
80
+ validateRequiredString(input.appName, "appName");
81
+ validateRequiredString(input.userId, "userId");
82
+ validateRequiredString(input.sessionId, "sessionId");
83
+ validateOptionalString(input.workflowRunId, "workflowRunId");
84
+ validateOptionalString(input.workflowStepId, "workflowStepId");
85
+ validateOptionalString(input.agentRunId, "agentRunId");
86
+ };
87
+ const validateRevision = (revision, fieldName = "revision") => {
88
+ if (revision !== undefined && (!Number.isSafeInteger(revision) || revision < 0)) {
89
+ throw new ValidationError(`Artifact "${fieldName}" must be a non-negative safe integer.`);
90
+ }
91
+ };
92
+ export const externalBlobReference = (metadata) => {
93
+ const externalBlob = metadata?.externalBlob;
94
+ if (!externalBlob || typeof externalBlob !== "object" || Array.isArray(externalBlob)) {
95
+ return undefined;
96
+ }
97
+ const reference = externalBlob;
98
+ return reference.managedBy === "application" &&
99
+ typeof reference.uri === "string" &&
100
+ reference.uri.length > 0 &&
101
+ !/[\u0000-\u001f\u007f]/.test(reference.uri)
102
+ ? { uri: reference.uri }
103
+ : undefined;
104
+ };
105
+ export const normalizeArtifactRecord = (value) => {
106
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
107
+ throw new ValidationError("ArtifactRecord must be an object.");
108
+ }
109
+ const artifact = value;
110
+ if (artifact.schemaVersion !== undefined &&
111
+ (!Number.isSafeInteger(artifact.schemaVersion) || artifact.schemaVersion < 0 || artifact.schemaVersion > ARTIFACT_SCHEMA_VERSION)) {
112
+ throw new ValidationError(`Unsupported ArtifactRecord schemaVersion ${artifact.schemaVersion}.`);
113
+ }
114
+ if (!("data" in artifact)) {
115
+ throw new ValidationError("ArtifactRecord is missing required fields.");
116
+ }
117
+ validateRequiredString(artifact.id, "id");
118
+ validateRequiredString(artifact.appName, "appName");
119
+ validateRequiredString(artifact.userId, "userId");
120
+ validateRequiredString(artifact.sessionId, "sessionId");
121
+ validateRequiredString(artifact.name, "name");
122
+ validateRequiredString(artifact.contentType, "contentType");
123
+ validateOptionalString(artifact.workflowRunId, "workflowRunId");
124
+ validateOptionalString(artifact.workflowStepId, "workflowStepId");
125
+ validateOptionalString(artifact.agentRunId, "agentRunId");
126
+ if (artifact.revision !== undefined && (!Number.isSafeInteger(artifact.revision) || artifact.revision < 1)) {
127
+ throw new ValidationError('Artifact "revision" must be a positive safe integer.');
128
+ }
129
+ if (!Number.isSafeInteger(artifact.createdAt) || artifact.createdAt < 0) {
130
+ throw new ValidationError('Artifact "createdAt" must be a non-negative safe integer.');
131
+ }
132
+ if (!Number.isSafeInteger(artifact.updatedAt) || artifact.updatedAt < artifact.createdAt) {
133
+ throw new ValidationError('Artifact "updatedAt" must be a safe integer greater than or equal to "createdAt".');
134
+ }
135
+ if (artifact.encoding !== undefined && !artifactEncodings.has(artifact.encoding)) {
136
+ throw new ValidationError('Artifact "encoding" must be "json", "text", or "base64".');
137
+ }
138
+ if (artifact.storageMode !== undefined && !artifactStorageModes.has(artifact.storageMode)) {
139
+ throw new ValidationError('Artifact "storageMode" must be "json" or "binary".');
140
+ }
141
+ if (artifact.metadata !== undefined && (!artifact.metadata || typeof artifact.metadata !== "object" || Array.isArray(artifact.metadata))) {
142
+ throw new ValidationError('Artifact "metadata" must be a JSON object.');
143
+ }
144
+ if ((artifact.storageMode ?? "json") !== "binary" &&
145
+ (artifact.encoding === "base64" || artifact.encoding === "text") &&
146
+ typeof artifact.data !== "string") {
147
+ throw new ValidationError(`Artifact data must be a string when "encoding" is "${artifact.encoding}".`);
148
+ }
149
+ if ((artifact.storageMode ?? "json") === "binary" && artifact.data !== null) {
150
+ throw new ValidationError('Artifact data must be null when "storageMode" is "binary".');
151
+ }
152
+ if (artifact.blobPath !== undefined && (artifact.storageMode !== "binary" || artifact.data !== null)) {
153
+ throw new ValidationError('Artifact "blobPath" is only valid for separate binary storage.');
154
+ }
155
+ validateArtifactMetadata({ size: artifact.size, sha256: artifact.sha256 });
156
+ jsonText(artifact.data, "data");
157
+ if (artifact.metadata !== undefined) {
158
+ jsonText(artifact.metadata, "metadata");
159
+ }
160
+ return {
161
+ schemaVersion: ARTIFACT_SCHEMA_VERSION,
162
+ revision: typeof artifact.revision === "number" ? artifact.revision : 1,
163
+ id: artifact.id,
164
+ appName: artifact.appName,
165
+ userId: artifact.userId,
166
+ sessionId: artifact.sessionId,
167
+ workflowRunId: artifact.workflowRunId,
168
+ workflowStepId: artifact.workflowStepId,
169
+ agentRunId: artifact.agentRunId,
170
+ name: artifact.name,
171
+ contentType: artifact.contentType,
172
+ data: cloneJson(artifact.data),
173
+ encoding: artifact.encoding,
174
+ size: artifact.size,
175
+ sha256: artifact.sha256,
176
+ storageMode: artifact.storageMode ?? "json",
177
+ blobPath: artifact.blobPath,
178
+ metadata: artifact.metadata ? cloneJson(artifact.metadata) : undefined,
179
+ createdAt: artifact.createdAt,
180
+ updatedAt: artifact.updatedAt
181
+ };
182
+ };
183
+ export const migrateArtifactRecord = (value, targetVersion = ARTIFACT_SCHEMA_VERSION) => {
184
+ if (targetVersion !== ARTIFACT_SCHEMA_VERSION) {
185
+ throw new ValidationError(`Unsupported ArtifactRecord migration target ${targetVersion}.`);
186
+ }
187
+ return normalizeArtifactRecord(value);
188
+ };
189
+ export const cloneArtifact = (artifact) => cloneJson(normalizeArtifactRecord(artifact));
190
+ const binaryInputByteLength = (data) => typeof data === "string" ? utf8Bytes(data) : data.byteLength;
191
+ export const bytesFromBinaryInput = (data, maxBytes) => {
192
+ assertByteLimit(binaryInputByteLength(data), maxBytes, "binary data");
193
+ const buffer = typeof data === "string"
194
+ ? Buffer.from(data, "utf8")
195
+ : data instanceof Uint8Array
196
+ ? Buffer.from(data)
197
+ : Buffer.from(data);
198
+ return new Uint8Array(buffer);
199
+ };
200
+ const sha256Digest = (data) => createHash("sha256").update(data).digest("hex");
201
+ export const resolveBinarySha256 = (data, expectedSha256) => {
202
+ validateArtifactMetadata({ sha256: expectedSha256 });
203
+ const actualSha256 = sha256Digest(data);
204
+ if (expectedSha256 !== undefined && expectedSha256.toLowerCase() !== actualSha256) {
205
+ throw new ValidationError('The "sha256" artifact option does not match the binary data.');
206
+ }
207
+ return actualSha256;
208
+ };
209
+ export const assertExpectedRevision = (current, expectedRevision, resource) => {
210
+ validateRevision(expectedRevision, "expectedRevision");
211
+ if (expectedRevision !== undefined && (current?.revision ?? 0) !== expectedRevision) {
212
+ throw new ConflictError(`${resource} revision conflict.`);
213
+ }
214
+ };
215
+ const validateArtifactMetadata = (input) => {
216
+ if (input.size !== undefined && (!Number.isInteger(input.size) || input.size < 0)) {
217
+ throw new ValidationError('The "size" artifact option must be a non-negative integer.');
218
+ }
219
+ if (input.sha256 !== undefined && !/^[a-f0-9]{64}$/i.test(input.sha256)) {
220
+ throw new ValidationError('The "sha256" artifact option must be a 64-character hexadecimal digest.');
221
+ }
222
+ };
223
+ const encodedBase64Length = (decodedBytes) => 4 * Math.ceil(decodedBytes / 3);
224
+ export const base64Bytes = (value, maxBytes) => {
225
+ assertByteLimit(utf8Bytes(value), encodedBase64Length(maxBytes), "base64 data");
226
+ const normalized = value.replace(/\s/g, "");
227
+ if (normalized.length % 4 !== 0 || !/^[A-Za-z0-9+/]*={0,2}$/.test(normalized)) {
228
+ throw new ValidationError('Artifact data must be valid base64 when "encoding" is "base64".');
229
+ }
230
+ const padding = normalized.endsWith("==") ? 2 : normalized.endsWith("=") ? 1 : 0;
231
+ const decodedBytes = normalized.length === 0 ? 0 : (normalized.length / 4) * 3 - padding;
232
+ assertByteLimit(decodedBytes, maxBytes, "decoded base64 data");
233
+ const bytes = new Uint8Array(Buffer.from(normalized, "base64"));
234
+ if (bytes.byteLength !== decodedBytes) {
235
+ throw new ValidationError('Artifact data must be valid base64 when "encoding" is "base64".');
236
+ }
237
+ return bytes;
238
+ };
239
+ const validateArtifactSaveInput = (input, limits, internal = {}) => {
240
+ validateRequiredString(input.appName, "appName");
241
+ validateRequiredString(input.userId, "userId");
242
+ validateRequiredString(input.sessionId, "sessionId");
243
+ if (input.id !== undefined) {
244
+ validateRequiredString(input.id, "id");
245
+ }
246
+ validateOptionalString(input.workflowRunId, "workflowRunId");
247
+ validateOptionalString(input.workflowStepId, "workflowStepId");
248
+ validateOptionalString(input.agentRunId, "agentRunId");
249
+ validateRequiredString(input.name, "name");
250
+ validateRequiredString(input.contentType, "contentType");
251
+ validateRevision(input.expectedRevision, "expectedRevision");
252
+ if (input.encoding !== undefined && !artifactEncodings.has(input.encoding)) {
253
+ throw new ValidationError('Artifact "encoding" must be "json", "text", or "base64".');
254
+ }
255
+ if (input.storageMode !== undefined && !artifactStorageModes.has(input.storageMode)) {
256
+ throw new ValidationError('Artifact "storageMode" must be "json" or "binary".');
257
+ }
258
+ if (input.metadata !== undefined && (!input.metadata || typeof input.metadata !== "object" || Array.isArray(input.metadata))) {
259
+ throw new ValidationError('Artifact "metadata" must be a JSON object.');
260
+ }
261
+ if (input.metadata !== undefined) {
262
+ assertByteLimit(utf8Bytes(jsonText(input.metadata, "metadata")), limits.maxMetadataBytes, "metadata");
263
+ }
264
+ if ((input.storageMode ?? "json") === "binary") {
265
+ if (input.data !== null) {
266
+ throw new ValidationError('Artifact data must be null when "storageMode" is "binary".');
267
+ }
268
+ if (!internal.managedBinary && !externalBlobReference(input.metadata)) {
269
+ throw new ValidationError('Binary artifact metadata must contain an application-managed externalBlob reference.');
270
+ }
271
+ return;
272
+ }
273
+ if (input.encoding === "base64") {
274
+ if (typeof input.data !== "string") {
275
+ throw new ValidationError('Artifact data must be a string when "encoding" is "base64".');
276
+ }
277
+ base64Bytes(input.data, limits.maxBase64Bytes);
278
+ return;
279
+ }
280
+ if (input.encoding === "text" && typeof input.data !== "string") {
281
+ throw new ValidationError('Artifact data must be a string when "encoding" is "text".');
282
+ }
283
+ if (typeof input.data === "string") {
284
+ assertByteLimit(utf8Bytes(input.data), limits.maxTextBytes, "text data");
285
+ }
286
+ else {
287
+ assertByteLimit(utf8Bytes(jsonText(input.data, "data")), limits.maxJsonBytes, "JSON data");
288
+ }
289
+ };
290
+ const enrichArtifactMetadata = (input, limits) => {
291
+ validateArtifactMetadata(input);
292
+ if (input.encoding !== "base64" || typeof input.data !== "string") {
293
+ return {
294
+ size: input.size,
295
+ sha256: input.sha256
296
+ };
297
+ }
298
+ const bytes = base64Bytes(input.data, limits.maxBase64Bytes);
299
+ const actualSha256 = sha256Digest(bytes);
300
+ if (input.size !== undefined && input.size !== bytes.byteLength) {
301
+ throw new ValidationError('The "size" artifact option does not match the decoded base64 data.');
302
+ }
303
+ if (input.sha256 !== undefined && input.sha256.toLowerCase() !== actualSha256) {
304
+ throw new ValidationError('The "sha256" artifact option does not match the decoded base64 data.');
305
+ }
306
+ return {
307
+ size: input.size ?? bytes.byteLength,
308
+ sha256: actualSha256
309
+ };
310
+ };
311
+ export const validateArtifactRecordLimits = (artifact, limits) => {
312
+ assertByteLimit(utf8Bytes(jsonText(artifact, "record")), limits.maxRecordBytes, "record");
313
+ if (artifact.metadata !== undefined) {
314
+ assertByteLimit(utf8Bytes(jsonText(artifact.metadata, "metadata")), limits.maxMetadataBytes, "metadata");
315
+ }
316
+ if (artifact.storageMode !== "binary") {
317
+ if (artifact.encoding === "base64") {
318
+ if (typeof artifact.data !== "string") {
319
+ throw new ValidationError('Artifact data must be a string when "encoding" is "base64".');
320
+ }
321
+ base64Bytes(artifact.data, limits.maxBase64Bytes);
322
+ }
323
+ else if (typeof artifact.data === "string") {
324
+ assertByteLimit(utf8Bytes(artifact.data), limits.maxTextBytes, "text data");
325
+ }
326
+ else {
327
+ assertByteLimit(utf8Bytes(jsonText(artifact.data, "data")), limits.maxJsonBytes, "JSON data");
328
+ }
329
+ }
330
+ return artifact;
331
+ };
332
+ export const validateIdentifier = (value, fieldName) => {
333
+ if (!identifierPattern.test(value)) {
334
+ throw new ValidationError(`The "${fieldName}" option must match the SQL identifier pattern [A-Za-z_][A-Za-z0-9_]*.`);
335
+ }
336
+ return value;
337
+ };
338
+ export const getRecordField = (value, candidates) => {
339
+ if (!value || typeof value !== "object") {
340
+ return undefined;
341
+ }
342
+ const record = value;
343
+ for (const candidate of candidates) {
344
+ if (candidate in record) {
345
+ return record[candidate];
346
+ }
347
+ }
348
+ return undefined;
349
+ };
350
+ export const parseArtifactJson = (value, limits) => {
351
+ if (!value) {
352
+ return undefined;
353
+ }
354
+ if (typeof value === "string") {
355
+ assertByteLimit(utf8Bytes(value), limits.maxRecordBytes, "record");
356
+ return validateArtifactRecordLimits(normalizeArtifactRecord(JSON.parse(value)), limits);
357
+ }
358
+ return validateArtifactRecordLimits(normalizeArtifactRecord(value), limits);
359
+ };
360
+ export const createArtifact = (input, limits, existing, internal) => {
361
+ validateArtifactSaveInput(input, limits, internal);
362
+ const integrity = enrichArtifactMetadata(input, limits);
363
+ const now = Date.now();
364
+ const artifact = {
365
+ schemaVersion: ARTIFACT_SCHEMA_VERSION,
366
+ revision: existing ? existing.revision + 1 : 1,
367
+ id: input.id ?? existing?.id ?? randomId("art"),
368
+ appName: input.appName,
369
+ userId: input.userId,
370
+ sessionId: input.sessionId,
371
+ workflowRunId: input.workflowRunId,
372
+ workflowStepId: input.workflowStepId,
373
+ agentRunId: input.agentRunId,
374
+ name: input.name,
375
+ contentType: input.contentType,
376
+ data: cloneJson(input.data),
377
+ encoding: input.encoding,
378
+ size: integrity.size,
379
+ sha256: integrity.sha256,
380
+ storageMode: input.storageMode ?? "json",
381
+ blobPath: internal?.blobPath,
382
+ metadata: input.metadata ? cloneJson(input.metadata) : undefined,
383
+ createdAt: existing?.createdAt ?? now,
384
+ updatedAt: existing ? Math.max(now, existing.updatedAt + 1) : now
385
+ };
386
+ assertByteLimit(utf8Bytes(jsonText(artifact, "record")), limits.maxRecordBytes, "record");
387
+ return artifact;
388
+ };
389
+ export const matchesListInput = (artifact, input) => artifact.appName === input.appName &&
390
+ artifact.userId === input.userId &&
391
+ artifact.sessionId === input.sessionId &&
392
+ (input.workflowRunId === undefined || artifact.workflowRunId === input.workflowRunId) &&
393
+ (input.workflowStepId === undefined || artifact.workflowStepId === input.workflowStepId) &&
394
+ (input.agentRunId === undefined || artifact.agentRunId === input.agentRunId);
395
+ export const lookupFromArtifact = (artifact) => ({
396
+ appName: artifact.appName,
397
+ userId: artifact.userId,
398
+ sessionId: artifact.sessionId,
399
+ id: artifact.id
400
+ });
401
+ export const createBase64ArtifactData = (input, limits = {}) => {
402
+ const data = typeof input === "object" && "data" in input ? input.data : input;
403
+ const resolvedLimits = resolveArtifactServiceLimits(limits);
404
+ const buffer = Buffer.from(bytesFromBinaryInput(data, resolvedLimits.maxBase64Bytes));
405
+ return {
406
+ data: buffer.toString("base64"),
407
+ encoding: "base64",
408
+ size: buffer.byteLength
409
+ };
410
+ };
411
+ export const createExternalArtifactReference = (input, limits = {}) => {
412
+ const resolvedLimits = resolveArtifactServiceLimits(limits);
413
+ validateArtifactMetadata(input);
414
+ if (!input.uri || /[\u0000-\u001f\u007f]/.test(input.uri)) {
415
+ throw new ValidationError('The "uri" external artifact reference option is required.');
416
+ }
417
+ if (input.metadata !== undefined && (!input.metadata || typeof input.metadata !== "object" || Array.isArray(input.metadata))) {
418
+ throw new ValidationError('Artifact "metadata" must be a JSON object.');
419
+ }
420
+ const reference = {
421
+ data: null,
422
+ storageMode: "binary",
423
+ size: input.size,
424
+ sha256: input.sha256,
425
+ metadata: {
426
+ ...(input.metadata ?? {}),
427
+ externalBlob: {
428
+ uri: input.uri,
429
+ managedBy: "application"
430
+ }
431
+ }
432
+ };
433
+ assertByteLimit(utf8Bytes(jsonText(reference.metadata, "metadata")), resolvedLimits.maxMetadataBytes, "metadata");
434
+ return reference;
435
+ };
436
+ export const verifyArtifactRecordIntegrity = (record, data, limits = {}) => {
437
+ const artifact = normalizeArtifactRecord(record);
438
+ const resolvedLimits = resolveArtifactServiceLimits(limits);
439
+ const issues = [];
440
+ let bytes = data;
441
+ let decodedInlineBase64 = false;
442
+ if (!bytes && artifact.encoding === "base64" && typeof artifact.data === "string") {
443
+ try {
444
+ bytes = base64Bytes(artifact.data, resolvedLimits.maxBase64Bytes);
445
+ decodedInlineBase64 = true;
446
+ }
447
+ catch {
448
+ issues.push({
449
+ type: "invalid-base64",
450
+ message: `Artifact "${artifact.id}" contains invalid base64 data.`
451
+ });
452
+ }
453
+ }
454
+ if (bytes && !decodedInlineBase64) {
455
+ try {
456
+ assertByteLimit(bytes.byteLength, resolvedLimits.maxBinaryBytes, "binary data");
457
+ }
458
+ catch (error) {
459
+ issues.push({
460
+ type: "metadata-invalid",
461
+ message: error instanceof Error ? error.message : `Artifact "${artifact.id}" binary data exceeds its limit.`
462
+ });
463
+ bytes = undefined;
464
+ }
465
+ }
466
+ if (bytes) {
467
+ if (artifact.size !== undefined && artifact.size !== bytes.byteLength) {
468
+ issues.push({
469
+ type: "size-mismatch",
470
+ message: `Artifact "${artifact.id}" size does not match.`,
471
+ expected: artifact.size,
472
+ actual: bytes.byteLength
473
+ });
474
+ }
475
+ if (artifact.sha256 !== undefined) {
476
+ const actual = sha256Digest(bytes);
477
+ if (artifact.sha256 !== actual) {
478
+ issues.push({
479
+ type: "sha256-mismatch",
480
+ message: `Artifact "${artifact.id}" sha256 does not match.`,
481
+ expected: artifact.sha256,
482
+ actual
483
+ });
484
+ }
485
+ }
486
+ }
487
+ return {
488
+ ok: issues.length === 0,
489
+ artifact,
490
+ issues
491
+ };
492
+ };
493
+ export const verifyArtifactIntegrity = async (service, lookup, limits = {}) => {
494
+ const artifact = await service.loadArtifact(lookup);
495
+ if (!artifact) {
496
+ return {
497
+ ok: false,
498
+ issues: [{
499
+ type: "missing-artifact",
500
+ message: `Artifact "${lookup.id}" was not found.`
501
+ }]
502
+ };
503
+ }
504
+ if (artifact.storageMode === "binary") {
505
+ const binary = await service.loadBinaryArtifact(lookup);
506
+ if (!binary) {
507
+ const external = externalBlobReference(artifact.metadata);
508
+ return {
509
+ ok: false,
510
+ artifact,
511
+ issues: [{
512
+ type: external ? "external-data-unavailable" : "missing-blob",
513
+ message: external
514
+ ? `Artifact "${lookup.id}" uses application-managed external data at "${external.uri}".`
515
+ : `Artifact "${lookup.id}" binary blob was not found.`
516
+ }]
517
+ };
518
+ }
519
+ return verifyArtifactRecordIntegrity(binary.artifact, binary.data, limits);
520
+ }
521
+ return verifyArtifactRecordIntegrity(artifact, undefined, limits);
522
+ };
523
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/artifact/shared.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type SqliteArtifactServiceOptions, type ArtifactService } from "./shared.js";
2
+ export declare const createSqliteArtifactService: (options: SqliteArtifactServiceOptions) => ArtifactService;
3
+ //# sourceMappingURL=sqlite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/artifact/sqlite.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,4BAA4B,EACjC,KAAK,eAAe,EAoBrB,MAAM,aAAa,CAAC;AA0BrB,eAAO,MAAM,2BAA2B,YAAa,4BAA4B,KAAG,eAkSnF,CAAC"}