@mondaydotcomorg/atp-server 0.17.14

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 (307) hide show
  1. package/README.md +489 -0
  2. package/dist/aggregator/index.d.ts +59 -0
  3. package/dist/aggregator/index.d.ts.map +1 -0
  4. package/dist/aggregator/index.js +171 -0
  5. package/dist/aggregator/index.js.map +1 -0
  6. package/dist/callback/index.d.ts +98 -0
  7. package/dist/callback/index.d.ts.map +1 -0
  8. package/dist/callback/index.js +136 -0
  9. package/dist/callback/index.js.map +1 -0
  10. package/dist/client-sessions.d.ts +82 -0
  11. package/dist/client-sessions.d.ts.map +1 -0
  12. package/dist/client-sessions.js +174 -0
  13. package/dist/client-sessions.js.map +1 -0
  14. package/dist/controllers/definitions.controller.d.ts +4 -0
  15. package/dist/controllers/definitions.controller.d.ts.map +1 -0
  16. package/dist/controllers/definitions.controller.js +11 -0
  17. package/dist/controllers/definitions.controller.js.map +1 -0
  18. package/dist/controllers/execute.controller.d.ts +18 -0
  19. package/dist/controllers/execute.controller.d.ts.map +1 -0
  20. package/dist/controllers/execute.controller.js +122 -0
  21. package/dist/controllers/execute.controller.js.map +1 -0
  22. package/dist/controllers/info.controller.d.ts +3 -0
  23. package/dist/controllers/info.controller.d.ts.map +1 -0
  24. package/dist/controllers/info.controller.js +13 -0
  25. package/dist/controllers/info.controller.js.map +1 -0
  26. package/dist/controllers/resume.controller.d.ts +11 -0
  27. package/dist/controllers/resume.controller.d.ts.map +1 -0
  28. package/dist/controllers/resume.controller.js +61 -0
  29. package/dist/controllers/resume.controller.js.map +1 -0
  30. package/dist/controllers/search.controller.d.ts +4 -0
  31. package/dist/controllers/search.controller.d.ts.map +1 -0
  32. package/dist/controllers/search.controller.js +7 -0
  33. package/dist/controllers/search.controller.js.map +1 -0
  34. package/dist/controllers/stream.controller.d.ts +19 -0
  35. package/dist/controllers/stream.controller.d.ts.map +1 -0
  36. package/dist/controllers/stream.controller.js +141 -0
  37. package/dist/controllers/stream.controller.js.map +1 -0
  38. package/dist/core/config.d.ts +161 -0
  39. package/dist/core/config.d.ts.map +1 -0
  40. package/dist/core/config.js +7 -0
  41. package/dist/core/config.js.map +1 -0
  42. package/dist/core/http.d.ts +4 -0
  43. package/dist/core/http.d.ts.map +1 -0
  44. package/dist/core/http.js +17 -0
  45. package/dist/core/http.js.map +1 -0
  46. package/dist/create-server.d.ts +120 -0
  47. package/dist/create-server.d.ts.map +1 -0
  48. package/dist/create-server.js +423 -0
  49. package/dist/create-server.js.map +1 -0
  50. package/dist/execution-state/index.d.ts +95 -0
  51. package/dist/execution-state/index.d.ts.map +1 -0
  52. package/dist/execution-state/index.js +128 -0
  53. package/dist/execution-state/index.js.map +1 -0
  54. package/dist/executor/ast-provenance-bridge.d.ts +12 -0
  55. package/dist/executor/ast-provenance-bridge.d.ts.map +1 -0
  56. package/dist/executor/ast-provenance-bridge.js +66 -0
  57. package/dist/executor/ast-provenance-bridge.js.map +1 -0
  58. package/dist/executor/ast-tracking-runtime.d.ts +7 -0
  59. package/dist/executor/ast-tracking-runtime.d.ts.map +1 -0
  60. package/dist/executor/ast-tracking-runtime.js +559 -0
  61. package/dist/executor/ast-tracking-runtime.js.map +1 -0
  62. package/dist/executor/bootstrap-generated.d.ts +32 -0
  63. package/dist/executor/bootstrap-generated.d.ts.map +1 -0
  64. package/dist/executor/bootstrap-generated.js +90 -0
  65. package/dist/executor/bootstrap-generated.js.map +1 -0
  66. package/dist/executor/compiler-config.d.ts +32 -0
  67. package/dist/executor/compiler-config.d.ts.map +1 -0
  68. package/dist/executor/compiler-config.js +99 -0
  69. package/dist/executor/compiler-config.js.map +1 -0
  70. package/dist/executor/constants.d.ts +4 -0
  71. package/dist/executor/constants.d.ts.map +1 -0
  72. package/dist/executor/constants.js +4 -0
  73. package/dist/executor/constants.js.map +1 -0
  74. package/dist/executor/error-handler.d.ts +9 -0
  75. package/dist/executor/error-handler.d.ts.map +1 -0
  76. package/dist/executor/error-handler.js +95 -0
  77. package/dist/executor/error-handler.js.map +1 -0
  78. package/dist/executor/execution-error-handler.d.ts +7 -0
  79. package/dist/executor/execution-error-handler.d.ts.map +1 -0
  80. package/dist/executor/execution-error-handler.js +136 -0
  81. package/dist/executor/execution-error-handler.js.map +1 -0
  82. package/dist/executor/executor.d.ts +20 -0
  83. package/dist/executor/executor.d.ts.map +1 -0
  84. package/dist/executor/executor.js +452 -0
  85. package/dist/executor/executor.js.map +1 -0
  86. package/dist/executor/index.d.ts +4 -0
  87. package/dist/executor/index.d.ts.map +1 -0
  88. package/dist/executor/index.js +3 -0
  89. package/dist/executor/index.js.map +1 -0
  90. package/dist/executor/resume-handler.d.ts +9 -0
  91. package/dist/executor/resume-handler.d.ts.map +1 -0
  92. package/dist/executor/resume-handler.js +22 -0
  93. package/dist/executor/resume-handler.js.map +1 -0
  94. package/dist/executor/sandbox-builder.d.ts +29 -0
  95. package/dist/executor/sandbox-builder.d.ts.map +1 -0
  96. package/dist/executor/sandbox-builder.js +538 -0
  97. package/dist/executor/sandbox-builder.js.map +1 -0
  98. package/dist/executor/sandbox-injector.d.ts +7 -0
  99. package/dist/executor/sandbox-injector.d.ts.map +1 -0
  100. package/dist/executor/sandbox-injector.js +293 -0
  101. package/dist/executor/sandbox-injector.js.map +1 -0
  102. package/dist/executor/types.d.ts +21 -0
  103. package/dist/executor/types.d.ts.map +1 -0
  104. package/dist/executor/types.js +2 -0
  105. package/dist/executor/types.js.map +1 -0
  106. package/dist/explorer/index.d.ts +69 -0
  107. package/dist/explorer/index.d.ts.map +1 -0
  108. package/dist/explorer/index.js +228 -0
  109. package/dist/explorer/index.js.map +1 -0
  110. package/dist/handlers/definitions.handler.d.ts +3 -0
  111. package/dist/handlers/definitions.handler.d.ts.map +1 -0
  112. package/dist/handlers/definitions.handler.js +11 -0
  113. package/dist/handlers/definitions.handler.js.map +1 -0
  114. package/dist/handlers/execute.handler.d.ts +7 -0
  115. package/dist/handlers/execute.handler.d.ts.map +1 -0
  116. package/dist/handlers/execute.handler.js +225 -0
  117. package/dist/handlers/execute.handler.js.map +1 -0
  118. package/dist/handlers/explorer.handler.d.ts +4 -0
  119. package/dist/handlers/explorer.handler.d.ts.map +1 -0
  120. package/dist/handlers/explorer.handler.js +10 -0
  121. package/dist/handlers/explorer.handler.js.map +1 -0
  122. package/dist/handlers/init.handler.d.ts +5 -0
  123. package/dist/handlers/init.handler.d.ts.map +1 -0
  124. package/dist/handlers/init.handler.js +41 -0
  125. package/dist/handlers/init.handler.js.map +1 -0
  126. package/dist/handlers/resume.handler.d.ts +6 -0
  127. package/dist/handlers/resume.handler.d.ts.map +1 -0
  128. package/dist/handlers/resume.handler.js +256 -0
  129. package/dist/handlers/resume.handler.js.map +1 -0
  130. package/dist/handlers/search.handler.d.ts +5 -0
  131. package/dist/handlers/search.handler.d.ts.map +1 -0
  132. package/dist/handlers/search.handler.js +11 -0
  133. package/dist/handlers/search.handler.js.map +1 -0
  134. package/dist/http/request-handler.d.ts +15 -0
  135. package/dist/http/request-handler.d.ts.map +1 -0
  136. package/dist/http/request-handler.js +94 -0
  137. package/dist/http/request-handler.js.map +1 -0
  138. package/dist/http/router.d.ts +4 -0
  139. package/dist/http/router.d.ts.map +1 -0
  140. package/dist/http/router.js +32 -0
  141. package/dist/http/router.js.map +1 -0
  142. package/dist/index.d.ts +10 -0
  143. package/dist/index.d.ts.map +1 -0
  144. package/dist/index.js +8 -0
  145. package/dist/index.js.map +1 -0
  146. package/dist/instrumentation/index.d.ts +5 -0
  147. package/dist/instrumentation/index.d.ts.map +1 -0
  148. package/dist/instrumentation/index.js +5 -0
  149. package/dist/instrumentation/index.js.map +1 -0
  150. package/dist/instrumentation/serializer.d.ts +61 -0
  151. package/dist/instrumentation/serializer.d.ts.map +1 -0
  152. package/dist/instrumentation/serializer.js +334 -0
  153. package/dist/instrumentation/serializer.js.map +1 -0
  154. package/dist/instrumentation/state-manager.d.ts +61 -0
  155. package/dist/instrumentation/state-manager.d.ts.map +1 -0
  156. package/dist/instrumentation/state-manager.js +205 -0
  157. package/dist/instrumentation/state-manager.js.map +1 -0
  158. package/dist/instrumentation/transformer.d.ts +9 -0
  159. package/dist/instrumentation/transformer.d.ts.map +1 -0
  160. package/dist/instrumentation/transformer.js +70 -0
  161. package/dist/instrumentation/transformer.js.map +1 -0
  162. package/dist/instrumentation/types.d.ts +59 -0
  163. package/dist/instrumentation/types.d.ts.map +1 -0
  164. package/dist/instrumentation/types.js +5 -0
  165. package/dist/instrumentation/types.js.map +1 -0
  166. package/dist/middleware/audit.d.ts +18 -0
  167. package/dist/middleware/audit.d.ts.map +1 -0
  168. package/dist/middleware/audit.js +76 -0
  169. package/dist/middleware/audit.js.map +1 -0
  170. package/dist/openapi/index.d.ts +133 -0
  171. package/dist/openapi/index.d.ts.map +1 -0
  172. package/dist/openapi/index.js +235 -0
  173. package/dist/openapi/index.js.map +1 -0
  174. package/dist/openapi-loader.d.ts +87 -0
  175. package/dist/openapi-loader.d.ts.map +1 -0
  176. package/dist/openapi-loader.js +491 -0
  177. package/dist/openapi-loader.js.map +1 -0
  178. package/dist/routes/index.d.ts +21 -0
  179. package/dist/routes/index.d.ts.map +1 -0
  180. package/dist/routes/index.js +47 -0
  181. package/dist/routes/index.js.map +1 -0
  182. package/dist/search/index.d.ts +48 -0
  183. package/dist/search/index.d.ts.map +1 -0
  184. package/dist/search/index.js +156 -0
  185. package/dist/search/index.js.map +1 -0
  186. package/dist/security/index.d.ts +2 -0
  187. package/dist/security/index.d.ts.map +1 -0
  188. package/dist/security/index.js +2 -0
  189. package/dist/security/index.js.map +1 -0
  190. package/dist/shutdown.d.ts +19 -0
  191. package/dist/shutdown.d.ts.map +1 -0
  192. package/dist/shutdown.js +87 -0
  193. package/dist/shutdown.js.map +1 -0
  194. package/dist/utils/banner.d.ts +12 -0
  195. package/dist/utils/banner.d.ts.map +1 -0
  196. package/dist/utils/banner.js +18 -0
  197. package/dist/utils/banner.js.map +1 -0
  198. package/dist/utils/context.d.ts +16 -0
  199. package/dist/utils/context.d.ts.map +1 -0
  200. package/dist/utils/context.js +44 -0
  201. package/dist/utils/context.js.map +1 -0
  202. package/dist/utils/error.d.ts +8 -0
  203. package/dist/utils/error.d.ts.map +1 -0
  204. package/dist/utils/error.js +17 -0
  205. package/dist/utils/error.js.map +1 -0
  206. package/dist/utils/hint-based-instrumentation.d.ts +14 -0
  207. package/dist/utils/hint-based-instrumentation.d.ts.map +1 -0
  208. package/dist/utils/hint-based-instrumentation.js +84 -0
  209. package/dist/utils/hint-based-instrumentation.js.map +1 -0
  210. package/dist/utils/index.d.ts +8 -0
  211. package/dist/utils/index.d.ts.map +1 -0
  212. package/dist/utils/index.js +8 -0
  213. package/dist/utils/index.js.map +1 -0
  214. package/dist/utils/info.d.ts +20 -0
  215. package/dist/utils/info.d.ts.map +1 -0
  216. package/dist/utils/info.js +15 -0
  217. package/dist/utils/info.js.map +1 -0
  218. package/dist/utils/provenance-reattachment.d.ts +32 -0
  219. package/dist/utils/provenance-reattachment.d.ts.map +1 -0
  220. package/dist/utils/provenance-reattachment.js +115 -0
  221. package/dist/utils/provenance-reattachment.js.map +1 -0
  222. package/dist/utils/request.d.ts +21 -0
  223. package/dist/utils/request.d.ts.map +1 -0
  224. package/dist/utils/request.js +44 -0
  225. package/dist/utils/request.js.map +1 -0
  226. package/dist/utils/response.d.ts +30 -0
  227. package/dist/utils/response.d.ts.map +1 -0
  228. package/dist/utils/response.js +53 -0
  229. package/dist/utils/response.js.map +1 -0
  230. package/dist/utils/runtime-types.d.ts +6 -0
  231. package/dist/utils/runtime-types.d.ts.map +1 -0
  232. package/dist/utils/runtime-types.js +14 -0
  233. package/dist/utils/runtime-types.js.map +1 -0
  234. package/dist/utils/schema.d.ts +9 -0
  235. package/dist/utils/schema.d.ts.map +1 -0
  236. package/dist/utils/schema.js +13 -0
  237. package/dist/utils/schema.js.map +1 -0
  238. package/dist/utils/token-emitter.d.ts +21 -0
  239. package/dist/utils/token-emitter.d.ts.map +1 -0
  240. package/dist/utils/token-emitter.js +129 -0
  241. package/dist/utils/token-emitter.js.map +1 -0
  242. package/dist/validator/index.d.ts +36 -0
  243. package/dist/validator/index.d.ts.map +1 -0
  244. package/dist/validator/index.js +224 -0
  245. package/dist/validator/index.js.map +1 -0
  246. package/package.json +68 -0
  247. package/src/aggregator/index.ts +207 -0
  248. package/src/callback/index.ts +191 -0
  249. package/src/client-sessions.ts +234 -0
  250. package/src/controllers/definitions.controller.ts +19 -0
  251. package/src/controllers/execute.controller.ts +166 -0
  252. package/src/controllers/info.controller.ts +14 -0
  253. package/src/controllers/resume.controller.ts +92 -0
  254. package/src/controllers/search.controller.ts +16 -0
  255. package/src/controllers/stream.controller.ts +190 -0
  256. package/src/core/config.ts +180 -0
  257. package/src/core/http.ts +21 -0
  258. package/src/create-server.ts +536 -0
  259. package/src/execution-state/index.ts +204 -0
  260. package/src/executor/ast-provenance-bridge.ts +80 -0
  261. package/src/executor/ast-tracking-runtime.ts +558 -0
  262. package/src/executor/bootstrap-generated.ts +90 -0
  263. package/src/executor/compiler-config.ts +146 -0
  264. package/src/executor/constants.ts +5 -0
  265. package/src/executor/error-handler.ts +118 -0
  266. package/src/executor/execution-error-handler.ts +178 -0
  267. package/src/executor/executor.ts +631 -0
  268. package/src/executor/index.ts +3 -0
  269. package/src/executor/resume-handler.ts +39 -0
  270. package/src/executor/sandbox-builder.ts +684 -0
  271. package/src/executor/sandbox-injector.ts +345 -0
  272. package/src/executor/types.ts +22 -0
  273. package/src/explorer/index.ts +297 -0
  274. package/src/handlers/definitions.handler.ts +13 -0
  275. package/src/handlers/execute.handler.ts +286 -0
  276. package/src/handlers/explorer.handler.ts +18 -0
  277. package/src/handlers/init.handler.ts +53 -0
  278. package/src/handlers/resume.handler.ts +316 -0
  279. package/src/handlers/search.handler.ts +32 -0
  280. package/src/http/request-handler.ts +117 -0
  281. package/src/http/router.ts +29 -0
  282. package/src/index.ts +60 -0
  283. package/src/instrumentation/index.ts +4 -0
  284. package/src/instrumentation/serializer.ts +421 -0
  285. package/src/instrumentation/state-manager.ts +237 -0
  286. package/src/instrumentation/transformer.ts +84 -0
  287. package/src/instrumentation/types.ts +76 -0
  288. package/src/middleware/audit.ts +101 -0
  289. package/src/openapi/index.ts +378 -0
  290. package/src/openapi-loader.ts +744 -0
  291. package/src/routes/index.ts +93 -0
  292. package/src/search/index.ts +216 -0
  293. package/src/security/index.ts +1 -0
  294. package/src/shutdown.ts +108 -0
  295. package/src/utils/banner.ts +25 -0
  296. package/src/utils/context.ts +58 -0
  297. package/src/utils/error.ts +25 -0
  298. package/src/utils/hint-based-instrumentation.ts +99 -0
  299. package/src/utils/index.ts +15 -0
  300. package/src/utils/info.ts +31 -0
  301. package/src/utils/provenance-reattachment.ts +144 -0
  302. package/src/utils/request.ts +53 -0
  303. package/src/utils/response.ts +69 -0
  304. package/src/utils/runtime-types.ts +14 -0
  305. package/src/utils/schema.ts +18 -0
  306. package/src/utils/token-emitter.ts +182 -0
  307. package/src/validator/index.ts +253 -0
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Provenance Re-attachment Utility
3
+ *
4
+ * Re-attaches provenance to values based on verified hints
5
+ */
6
+ import { type ProvenanceMetadata } from '@mondaydotcomorg/atp-provenance';
7
+ /**
8
+ * Store hint map for an execution
9
+ */
10
+ export declare function storeHintMap(executionId: string, hintMap: Map<string, ProvenanceMetadata>): void;
11
+ /**
12
+ * Store a hint value for substring matching
13
+ */
14
+ export declare function storeHintValue(executionId: string, value: string, metadata: ProvenanceMetadata): void;
15
+ /**
16
+ * Get hint map for an execution
17
+ */
18
+ export declare function getHintMap(executionId: string): Map<string, ProvenanceMetadata> | undefined;
19
+ /**
20
+ * Get hint values for an execution (for substring matching)
21
+ */
22
+ export declare function getHintValues(executionId: string): Map<string, ProvenanceMetadata> | undefined;
23
+ /**
24
+ * Clear hint map for an execution (cleanup)
25
+ */
26
+ export declare function clearHintMap(executionId: string): void;
27
+ /**
28
+ * Re-attach provenance from hints to tool arguments
29
+ * Scans arguments recursively and attaches provenance based on value digests
30
+ */
31
+ export declare function reattachProvenanceFromHints(args: Record<string, unknown>, hintMap: Map<string, ProvenanceMetadata>): void;
32
+ //# sourceMappingURL=provenance-reattachment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance-reattachment.d.ts","sourceRoot":"","sources":["../../src/utils/provenance-reattachment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAMN,KAAK,kBAAkB,EACvB,MAAM,iCAAiC,CAAC;AAczC;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAEhG;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC7B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,kBAAkB,GAC1B,IAAI,CAON;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,SAAS,CAE3F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,SAAS,CAE9F;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAGtD;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAC1C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GACtC,IAAI,CAiEN"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Provenance Re-attachment Utility
3
+ *
4
+ * Re-attaches provenance to values based on verified hints
5
+ */
6
+ import { getProvenance, getProvenanceForPrimitive, markPrimitiveTainted, computeDigest, } from '@mondaydotcomorg/atp-provenance';
7
+ /**
8
+ * Global registry of hint maps per execution
9
+ * Key: executionId, Value: Map<digest, metadata>
10
+ */
11
+ const executionHintMaps = new Map();
12
+ /**
13
+ * Global registry of hint values per execution
14
+ * Key: executionId, Value: Map<value, metadata> for substring checking
15
+ */
16
+ const executionHintValues = new Map();
17
+ /**
18
+ * Store hint map for an execution
19
+ */
20
+ export function storeHintMap(executionId, hintMap) {
21
+ executionHintMaps.set(executionId, hintMap);
22
+ }
23
+ /**
24
+ * Store a hint value for substring matching
25
+ */
26
+ export function storeHintValue(executionId, value, metadata) {
27
+ let valueMap = executionHintValues.get(executionId);
28
+ if (!valueMap) {
29
+ valueMap = new Map();
30
+ executionHintValues.set(executionId, valueMap);
31
+ }
32
+ valueMap.set(value, metadata);
33
+ }
34
+ /**
35
+ * Get hint map for an execution
36
+ */
37
+ export function getHintMap(executionId) {
38
+ return executionHintMaps.get(executionId);
39
+ }
40
+ /**
41
+ * Get hint values for an execution (for substring matching)
42
+ */
43
+ export function getHintValues(executionId) {
44
+ return executionHintValues.get(executionId);
45
+ }
46
+ /**
47
+ * Clear hint map for an execution (cleanup)
48
+ */
49
+ export function clearHintMap(executionId) {
50
+ executionHintMaps.delete(executionId);
51
+ executionHintValues.delete(executionId);
52
+ }
53
+ /**
54
+ * Re-attach provenance from hints to tool arguments
55
+ * Scans arguments recursively and attaches provenance based on value digests
56
+ */
57
+ export function reattachProvenanceFromHints(args, hintMap) {
58
+ if (!hintMap || hintMap.size === 0) {
59
+ return;
60
+ }
61
+ const visited = new WeakSet();
62
+ function processValue(value) {
63
+ if (value === null || value === undefined) {
64
+ return;
65
+ }
66
+ // Handle primitives (string/number)
67
+ if (typeof value === 'string' || typeof value === 'number') {
68
+ // Skip if already has provenance
69
+ if (getProvenanceForPrimitive(value)) {
70
+ return;
71
+ }
72
+ // Compute digest and check hint map
73
+ const digest = computeDigest(value);
74
+ if (digest && hintMap.has(digest)) {
75
+ const metadata = hintMap.get(digest);
76
+ markPrimitiveTainted(value, metadata);
77
+ }
78
+ return;
79
+ }
80
+ // Handle objects/arrays
81
+ if (typeof value === 'object') {
82
+ // Prevent circular reference processing
83
+ if (visited.has(value)) {
84
+ return;
85
+ }
86
+ visited.add(value);
87
+ // Skip if already has provenance
88
+ if (getProvenance(value)) {
89
+ return;
90
+ }
91
+ // Check if object itself has provenance in hints
92
+ const digest = computeDigest(value);
93
+ if (digest && hintMap.has(digest)) {
94
+ const metadata = hintMap.get(digest);
95
+ // Note: We can't modify the object in place, but we mark primitives inside
96
+ }
97
+ // Process children
98
+ if (Array.isArray(value)) {
99
+ for (const item of value) {
100
+ processValue(item);
101
+ }
102
+ }
103
+ else {
104
+ for (const childValue of Object.values(value)) {
105
+ processValue(childValue);
106
+ }
107
+ }
108
+ }
109
+ }
110
+ // Process all argument values
111
+ for (const value of Object.values(args)) {
112
+ processValue(value);
113
+ }
114
+ }
115
+ //# sourceMappingURL=provenance-reattachment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance-reattachment.js","sourceRoot":"","sources":["../../src/utils/provenance-reattachment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { IncomingMessage } from 'node:http';
2
+ /**
3
+ * Default maximum request body size (10MB)
4
+ */
5
+ export declare const DEFAULT_MAX_BODY_SIZE: number;
6
+ /**
7
+ * Reads the full request body as a string
8
+ * @param req - The HTTP request
9
+ * @param maxSize - Maximum allowed body size in bytes (default: 10MB)
10
+ * @returns Promise resolving to the complete body string
11
+ * @throws Error if body exceeds maxSize
12
+ */
13
+ export declare function readBody(req: IncomingMessage, maxSize?: number): Promise<string>;
14
+ /**
15
+ * Reads and parses request body as JSON
16
+ * @param req - The HTTP request
17
+ * @param maxSize - Maximum allowed body size in bytes
18
+ * @returns Promise resolving to the parsed JSON object
19
+ */
20
+ export declare function readJsonBody<T = any>(req: IncomingMessage, maxSize?: number): Promise<T>;
21
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/utils/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,qBAAqB,QAAmB,CAAC;AAEtD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,SAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAoB/F;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,CAAC,GAAG,GAAG,EACzC,GAAG,EAAE,eAAe,EACpB,OAAO,SAAwB,GAC7B,OAAO,CAAC,CAAC,CAAC,CAOZ"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Default maximum request body size (10MB)
3
+ */
4
+ export const DEFAULT_MAX_BODY_SIZE = 10 * 1024 * 1024;
5
+ /**
6
+ * Reads the full request body as a string
7
+ * @param req - The HTTP request
8
+ * @param maxSize - Maximum allowed body size in bytes (default: 10MB)
9
+ * @returns Promise resolving to the complete body string
10
+ * @throws Error if body exceeds maxSize
11
+ */
12
+ export function readBody(req, maxSize = DEFAULT_MAX_BODY_SIZE) {
13
+ return new Promise((resolve, reject) => {
14
+ let body = '';
15
+ let size = 0;
16
+ req.on('data', (chunk) => {
17
+ size += chunk.length;
18
+ if (size > maxSize) {
19
+ req.destroy();
20
+ reject(new Error(`Request body too large (max ${maxSize} bytes)`));
21
+ return;
22
+ }
23
+ body += chunk.toString();
24
+ });
25
+ req.on('end', () => resolve(body));
26
+ req.on('error', reject);
27
+ });
28
+ }
29
+ /**
30
+ * Reads and parses request body as JSON
31
+ * @param req - The HTTP request
32
+ * @param maxSize - Maximum allowed body size in bytes
33
+ * @returns Promise resolving to the parsed JSON object
34
+ */
35
+ export async function readJsonBody(req, maxSize = DEFAULT_MAX_BODY_SIZE) {
36
+ const body = await readBody(req, maxSize);
37
+ try {
38
+ return body ? JSON.parse(body) : null;
39
+ }
40
+ catch (error) {
41
+ throw new Error('Invalid JSON');
42
+ }
43
+ }
44
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/utils/request.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtD;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAoB,EAAE,OAAO,GAAG,qBAAqB;IAC7E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,IAAI,GAAG,CAAC,CAAC;QAEb,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACxB,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;YAErB,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;gBACpB,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,OAAO,SAAS,CAAC,CAAC,CAAC;gBACnE,OAAO;YACR,CAAC;YAED,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACnC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,GAAoB,EACpB,OAAO,GAAG,qBAAqB;IAE/B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAU,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC;AACF,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { ServerResponse } from 'node:http';
2
+ /**
3
+ * Sends a JSON response
4
+ */
5
+ export declare function sendJson(res: ServerResponse, data: unknown, status?: number): void;
6
+ /**
7
+ * Sends an error response
8
+ */
9
+ export declare function sendError(res: ServerResponse, error: string | Error, status?: number, requestId?: string): void;
10
+ /**
11
+ * Sends a 404 Not Found response
12
+ */
13
+ export declare function send404(res: ServerResponse): void;
14
+ /**
15
+ * Sends a 400 Bad Request response
16
+ */
17
+ export declare function sendBadRequest(res: ServerResponse, message: string): void;
18
+ /**
19
+ * Sends a 503 Service Unavailable response
20
+ */
21
+ export declare function sendServiceUnavailable(res: ServerResponse, message: string): void;
22
+ /**
23
+ * Sets CORS headers on a response
24
+ */
25
+ export declare function setCorsHeaders(res: ServerResponse, origin?: string): void;
26
+ /**
27
+ * Handles OPTIONS preflight requests
28
+ */
29
+ export declare function handleOptions(res: ServerResponse): void;
30
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/utils/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,SAAM,GAAG,IAAI,CAG/E;AAED;;GAEG;AACH,wBAAgB,SAAS,CACxB,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,GAAG,KAAK,EACrB,MAAM,SAAM,EACZ,SAAS,CAAC,EAAE,MAAM,GAChB,IAAI,CAUN;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAEjD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAEzE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,SAAM,GAAG,IAAI,CAKtE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAIvD"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Sends a JSON response
3
+ */
4
+ export function sendJson(res, data, status = 200) {
5
+ res.writeHead(status, { 'Content-Type': 'application/json' });
6
+ res.end(JSON.stringify(data));
7
+ }
8
+ /**
9
+ * Sends an error response
10
+ */
11
+ export function sendError(res, error, status = 500, requestId) {
12
+ const message = error instanceof Error ? error.message : error;
13
+ sendJson(res, {
14
+ error: message,
15
+ ...(requestId && { requestId }),
16
+ }, status);
17
+ }
18
+ /**
19
+ * Sends a 404 Not Found response
20
+ */
21
+ export function send404(res) {
22
+ sendJson(res, { error: 'Not found' }, 404);
23
+ }
24
+ /**
25
+ * Sends a 400 Bad Request response
26
+ */
27
+ export function sendBadRequest(res, message) {
28
+ sendJson(res, { error: message }, 400);
29
+ }
30
+ /**
31
+ * Sends a 503 Service Unavailable response
32
+ */
33
+ export function sendServiceUnavailable(res, message) {
34
+ sendJson(res, { error: message }, 503);
35
+ }
36
+ /**
37
+ * Sets CORS headers on a response
38
+ */
39
+ export function setCorsHeaders(res, origin = '*') {
40
+ res.setHeader('Access-Control-Allow-Origin', origin);
41
+ res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
42
+ res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Client-ID');
43
+ res.setHeader('Access-Control-Max-Age', '86400');
44
+ }
45
+ /**
46
+ * Handles OPTIONS preflight requests
47
+ */
48
+ export function handleOptions(res) {
49
+ setCorsHeaders(res);
50
+ res.writeHead(204);
51
+ res.end();
52
+ }
53
+ //# sourceMappingURL=response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/utils/response.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAmB,EAAE,IAAa,EAAE,MAAM,GAAG,GAAG;IACxE,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC9D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACxB,GAAmB,EACnB,KAAqB,EACrB,MAAM,GAAG,GAAG,EACZ,SAAkB;IAElB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/D,QAAQ,CACP,GAAG,EACH;QACC,KAAK,EAAE,OAAO;QACd,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;KAC/B,EACD,MAAM,CACN,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,GAAmB;IAC1C,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAmB,EAAE,OAAe;IAClE,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAmB,EAAE,OAAe;IAC1E,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAmB,EAAE,MAAM,GAAG,GAAG;IAC/D,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;IACrD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,iCAAiC,CAAC,CAAC;IACjF,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,0CAA0C,CAAC,CAAC;IAC1F,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAmB;IAChD,cAAc,CAAC,GAAG,CAAC,CAAC;IACpB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACnB,GAAG,CAAC,GAAG,EAAE,CAAC;AACX,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Generates TypeScript definitions for the runtime SDK
3
+ * Delegates to the runtime package's own type generator
4
+ */
5
+ export declare function generateRuntimeTypes(): string;
6
+ //# sourceMappingURL=runtime-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-types.d.ts","sourceRoot":"","sources":["../../src/utils/runtime-types.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Runtime SDK Type Generator
3
+ *
4
+ * Generates TypeScript definitions from the runtime API registry.
5
+ */
6
+ import { GENERATED_METADATA, generateRuntimeTypes as generate } from '@mondaydotcomorg/atp-runtime';
7
+ /**
8
+ * Generates TypeScript definitions for the runtime SDK
9
+ * Delegates to the runtime package's own type generator
10
+ */
11
+ export function generateRuntimeTypes() {
12
+ return generate(GENERATED_METADATA);
13
+ }
14
+ //# sourceMappingURL=runtime-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-types.js","sourceRoot":"","sources":["../../src/utils/runtime-types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,IAAI,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAEpG;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IACnC,OAAO,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Converts a simple type map to a JSON Schema object
3
+ */
4
+ export declare function toJSONSchema(types: Record<string, string>): {
5
+ type: 'object';
6
+ properties: Record<string, unknown>;
7
+ required: string[];
8
+ };
9
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/utils/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;IAC5D,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACnB,CAUA"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Converts a simple type map to a JSON Schema object
3
+ */
4
+ export function toJSONSchema(types) {
5
+ const properties = {};
6
+ const required = [];
7
+ for (const [key, type] of Object.entries(types)) {
8
+ properties[key] = { type };
9
+ required.push(key);
10
+ }
11
+ return { type: 'object', properties, required };
12
+ }
13
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/utils/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAA6B;IAKzD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AACjD,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { type ProvenanceMetadata, type ProvenanceMode } from '@mondaydotcomorg/atp-provenance';
2
+ import type { CacheProvider } from '@mondaydotcomorg/atp-protocol';
3
+ import type { log } from '@mondaydotcomorg/atp-runtime';
4
+ type Logger = ReturnType<typeof log.child>;
5
+ interface TokenEmission {
6
+ path: string;
7
+ token: string;
8
+ }
9
+ /**
10
+ * Emits provenance tokens for all values in the result that have provenance in the snapshot.
11
+ * This works by:
12
+ * 1. Traversing the actual serialized result object
13
+ * 2. For each value, checking if it matches provenance in the snapshot
14
+ * 3. Emitting tokens with the ACTUAL value for correct digest matching
15
+ */
16
+ export declare function emitProvenanceTokens(result: unknown, clientId: string, executionId: string, provenanceMode: ProvenanceMode, cacheProvider: CacheProvider, logger: Logger, maxTokens?: number, tokenTTL?: number, provenanceSnapshot?: {
17
+ registry: Array<[string, ProvenanceMetadata]>;
18
+ primitives: Array<[string, ProvenanceMetadata]>;
19
+ }): Promise<TokenEmission[]>;
20
+ export {};
21
+ //# sourceMappingURL=token-emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-emitter.d.ts","sourceRoot":"","sources":["../../src/utils/token-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,kBAAkB,EACvB,KAAK,cAAc,EAEnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAExD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AAE3C,UAAU,aAAa;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACzC,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,MAAa,EACxB,QAAQ,GAAE,MAAa,EACvB,kBAAkB,CAAC,EAAE;IACpB,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC9C,UAAU,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;CAChD,GACC,OAAO,CAAC,aAAa,EAAE,CAAC,CAiJ1B"}
@@ -0,0 +1,129 @@
1
+ import { issueProvenanceToken, ProvenanceMode as PM, } from '@mondaydotcomorg/atp-provenance';
2
+ /**
3
+ * Emits provenance tokens for all values in the result that have provenance in the snapshot.
4
+ * This works by:
5
+ * 1. Traversing the actual serialized result object
6
+ * 2. For each value, checking if it matches provenance in the snapshot
7
+ * 3. Emitting tokens with the ACTUAL value for correct digest matching
8
+ */
9
+ export async function emitProvenanceTokens(result, clientId, executionId, provenanceMode, cacheProvider, logger, maxTokens = 5000, tokenTTL = 3600, provenanceSnapshot) {
10
+ if (provenanceMode === PM.NONE || !result || !provenanceSnapshot) {
11
+ logger.debug('Skipping token emission', {
12
+ hasResult: !!result,
13
+ hasSnapshot: !!provenanceSnapshot,
14
+ mode: provenanceMode,
15
+ });
16
+ return [];
17
+ }
18
+ logger.info('Token emission starting from snapshot', {
19
+ executionId,
20
+ registrySize: provenanceSnapshot.registry.length,
21
+ primitiveMapSize: provenanceSnapshot.primitives.length,
22
+ resultType: typeof result,
23
+ });
24
+ const tokens = [];
25
+ const visited = new WeakSet();
26
+ const primitiveMap = new Map(provenanceSnapshot.primitives);
27
+ const taintedValues = new Set();
28
+ for (const [key] of provenanceSnapshot.primitives) {
29
+ if (key.startsWith('tainted:')) {
30
+ taintedValues.add(key.slice('tainted:'.length));
31
+ }
32
+ }
33
+ const queue = [{ value: result, path: '' }];
34
+ while (queue.length > 0 && tokens.length < maxTokens) {
35
+ const { value, path } = queue.shift();
36
+ if (value === null || value === undefined) {
37
+ continue;
38
+ }
39
+ if (typeof value === 'string' || typeof value === 'number') {
40
+ const valueStr = String(value);
41
+ const taintedKey = `tainted:${valueStr}`;
42
+ let meta = primitiveMap.get(taintedKey);
43
+ if (!meta) {
44
+ for (const [key, metadata] of primitiveMap.entries()) {
45
+ if (!key.startsWith('tainted:')) {
46
+ const parts = key.split(':');
47
+ if (parts.length >= 3) {
48
+ const derivedValue = parts.slice(2).join(':');
49
+ if (derivedValue === valueStr) {
50
+ meta = metadata;
51
+ logger.debug('Found property-derived primitive match', {
52
+ path,
53
+ key,
54
+ valuePreview: valueStr.substring(0, 30),
55
+ });
56
+ break;
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
62
+ if (meta) {
63
+ try {
64
+ const token = await issueProvenanceToken(meta, value, clientId, executionId, cacheProvider, tokenTTL);
65
+ if (token) {
66
+ tokens.push({ path, token });
67
+ logger.debug('Emitted token for primitive', {
68
+ path,
69
+ valuePreview: typeof value === 'string' ? value.substring(0, 30) : value,
70
+ tokenPrefix: token.substring(0, 10),
71
+ });
72
+ }
73
+ }
74
+ catch (error) {
75
+ logger.warn('Failed to issue token for primitive', { path, error });
76
+ }
77
+ }
78
+ continue;
79
+ }
80
+ if (typeof value === 'object') {
81
+ if (visited.has(value)) {
82
+ continue;
83
+ }
84
+ visited.add(value);
85
+ // For objects, we need to check if ANY of the registry metadata applies
86
+ // Since we can't match by identity, we emit tokens for ALL registry entries
87
+ // and let the client match by digest
88
+ if (provenanceSnapshot.registry.length > 0 && path === '') {
89
+ for (const [id, meta] of provenanceSnapshot.registry) {
90
+ if (tokens.length >= maxTokens)
91
+ break;
92
+ try {
93
+ const token = await issueProvenanceToken(meta, value, clientId, executionId, cacheProvider, tokenTTL);
94
+ if (token) {
95
+ tokens.push({ path, token });
96
+ logger.debug('Emitted token for object', {
97
+ path,
98
+ id,
99
+ tokenPrefix: token.substring(0, 10),
100
+ });
101
+ }
102
+ }
103
+ catch (error) {
104
+ logger.warn('Failed to issue token for object', { path, id, error });
105
+ }
106
+ }
107
+ }
108
+ if (Array.isArray(value)) {
109
+ for (let i = 0; i < value.length; i++) {
110
+ queue.push({ value: value[i], path: `${path}/${i}` });
111
+ }
112
+ }
113
+ else {
114
+ for (const key in value) {
115
+ if (Object.prototype.hasOwnProperty.call(value, key)) {
116
+ const escapedKey = key.replace(/~/g, '~0').replace(/\//g, '~1');
117
+ queue.push({ value: value[key], path: `${path}/${escapedKey}` });
118
+ }
119
+ }
120
+ }
121
+ }
122
+ }
123
+ if (tokens.length >= maxTokens) {
124
+ logger.warn('Max provenance tokens reached', { executionId, maxTokens });
125
+ }
126
+ logger.info('Token emission completed', { executionId, tokenCount: tokens.length });
127
+ return tokens;
128
+ }
129
+ //# sourceMappingURL=token-emitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-emitter.js","sourceRoot":"","sources":["../../src/utils/token-emitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { ValidationResult, ExecutionConfig } from '@mondaydotcomorg/atp-protocol';
2
+ /**
3
+ * CodeValidator validates user code before execution using a whitelist approach.
4
+ * Only explicitly allowed operations and patterns are permitted.
5
+ */
6
+ export declare class CodeValidator {
7
+ private readonly allowedGlobalObjects;
8
+ private readonly forbiddenPatterns;
9
+ /**
10
+ * Validates code for security and syntax issues.
11
+ * @param code - The code to validate
12
+ * @param config - Execution configuration
13
+ * @returns Validation result with any errors or security issues
14
+ */
15
+ validate(code: string, config: ExecutionConfig): Promise<ValidationResult>;
16
+ /**
17
+ * Validates JavaScript syntax using acorn parser.
18
+ * @param code - Code to validate
19
+ * @param errors - Array to append syntax errors to
20
+ */
21
+ private validateSyntax;
22
+ /**
23
+ * Checks for unauthorized global object access.
24
+ * @param code - Code to check
25
+ * @param securityIssues - Array to append issues to
26
+ */
27
+ private checkGlobalAccess;
28
+ /**
29
+ * Validates import statements to ensure NO imports are allowed.
30
+ * ALL imports are blocked for security - use injected sandbox globals instead.
31
+ * @param code - Code to validate
32
+ * @param securityIssues - Array to append issues to
33
+ */
34
+ private validateImports;
35
+ }
36
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validator/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAgBvF;;;GAGG;AACH,qBAAa,aAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAkBlC;IAEH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAkChC;IAEF;;;;;OAKG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiChF;;;;OAIG;IACH,OAAO,CAAC,cAAc;IA0BtB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;CAyEvB"}