@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,122 @@
1
+ import { ExecutionErrorCode, sanitizeInput, MAX_CODE_SIZE } from '@mondaydotcomorg/atp-protocol';
2
+ import { auditExecution } from '../middleware/audit.js';
3
+ import { clientCallbackManager } from '../callback/index.js';
4
+ import { nanoid } from 'nanoid';
5
+ export async function handleExecute(req, res, context, body, clientId, logger) {
6
+ let request;
7
+ try {
8
+ request = JSON.parse(body);
9
+ }
10
+ catch (error) {
11
+ logger.warn('Invalid request body', { error });
12
+ res.writeHead(400, { 'Content-Type': 'application/json' });
13
+ res.end(JSON.stringify({
14
+ error: 'Invalid request body',
15
+ message: error instanceof Error ? error.message : 'Failed to parse request',
16
+ }));
17
+ return;
18
+ }
19
+ request.code = sanitizeInput(request.code, MAX_CODE_SIZE);
20
+ if (clientId && request.config?.clientServices) {
21
+ clientCallbackManager.registerClient(clientId, request.config.clientServices);
22
+ logger.info('Client services registered', {
23
+ clientId,
24
+ services: request.config.clientServices,
25
+ });
26
+ }
27
+ if (clientId) {
28
+ clientCallbackManager.updateClientActivity(clientId);
29
+ }
30
+ const executionConfig = {
31
+ timeout: request.config?.timeout ?? context.defaultTimeout,
32
+ maxMemory: request.config?.maxMemory ?? context.defaultMemoryLimit,
33
+ maxLLMCalls: request.config?.maxLLMCalls ?? context.defaultLLMCallLimit,
34
+ allowedAPIs: request.config?.allowedAPIs ?? [],
35
+ allowLLMCalls: request.config?.allowLLMCalls ?? true,
36
+ clientServices: request.config?.clientServices,
37
+ provenanceMode: request.config?.provenanceMode,
38
+ securityPolicies: request.config?.securityPolicies,
39
+ provenanceHints: request.config?.provenanceHints,
40
+ };
41
+ logger.info('Validating code for execution', {
42
+ codeLength: request.code.length,
43
+ timeout: executionConfig.timeout,
44
+ clientServices: executionConfig.clientServices,
45
+ });
46
+ const validationResult = await context.validator.validate(request.code, executionConfig);
47
+ if (!validationResult.valid) {
48
+ logger.warn('Code validation failed', {
49
+ errors: validationResult.errors?.length,
50
+ securityIssues: validationResult.securityIssues?.length,
51
+ });
52
+ const hasSecurityIssues = validationResult.securityIssues && validationResult.securityIssues.length > 0;
53
+ res.writeHead(200, { 'Content-Type': 'application/json' });
54
+ res.end(JSON.stringify({
55
+ executionId: nanoid(),
56
+ status: hasSecurityIssues ? 'security_violation' : 'validation_failed',
57
+ error: {
58
+ message: 'Code validation failed',
59
+ code: hasSecurityIssues
60
+ ? ExecutionErrorCode.SECURITY_VIOLATION
61
+ : ExecutionErrorCode.VALIDATION_FAILED,
62
+ context: {
63
+ errors: validationResult.errors,
64
+ securityIssues: validationResult.securityIssues,
65
+ },
66
+ retryable: false,
67
+ suggestion: hasSecurityIssues
68
+ ? 'Remove forbidden operations and use only allowed APIs'
69
+ : 'Fix syntax errors and validation issues in your code',
70
+ },
71
+ stats: {
72
+ duration: 0,
73
+ memoryUsed: 0,
74
+ llmCallsCount: 0,
75
+ approvalCallsCount: 0,
76
+ httpCallsCount: 0,
77
+ },
78
+ }));
79
+ return;
80
+ }
81
+ logger.info('Executing code in sandbox');
82
+ const result = await context.executor.execute(request.code, executionConfig, clientId);
83
+ logger.info('Code execution completed', {
84
+ executionId: result.executionId,
85
+ status: result.status,
86
+ duration: result.stats.duration,
87
+ memoryUsed: result.stats.memoryUsed,
88
+ llmCalls: result.stats.llmCallsCount,
89
+ approvalCalls: result.stats.approvalCallsCount,
90
+ });
91
+ if (result.status === 'paused' && result.needsCallback && clientId && result.callbackHistory) {
92
+ await context.stateManager.pause({
93
+ executionId: result.executionId,
94
+ code: request.code,
95
+ config: executionConfig,
96
+ clientId,
97
+ callbackRequest: result.needsCallback,
98
+ pausedAt: Date.now(),
99
+ callbackHistory: result.callbackHistory,
100
+ currentCallbackIndex: result.callbackHistory.length - 1,
101
+ context: {},
102
+ });
103
+ logger.info('Execution state saved', {
104
+ executionId: result.executionId,
105
+ callbackType: result.needsCallback.type,
106
+ storage: context.stateManager.getStorageType(),
107
+ historyLength: result.callbackHistory.length,
108
+ });
109
+ }
110
+ if (context.auditConfig?.enabled) {
111
+ await auditExecution({
112
+ executionId: result.executionId,
113
+ apiKey: req.apiKey,
114
+ ip: req.socket.remoteAddress,
115
+ code: request.code,
116
+ result,
117
+ });
118
+ }
119
+ res.writeHead(200, { 'Content-Type': 'application/json' });
120
+ res.end(JSON.stringify(result));
121
+ }
122
+ //# sourceMappingURL=execute.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.controller.js","sourceRoot":"","sources":["../../src/controllers/execute.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { IncomingMessage, ServerResponse } from 'node:http';
2
+ export declare function handleInfo(req: IncomingMessage, res: ServerResponse): Promise<void>;
3
+ //# sourceMappingURL=info.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/info.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGjE,wBAAsB,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAUzF"}
@@ -0,0 +1,13 @@
1
+ import { sendJson } from '../utils/response.js';
2
+ export async function handleInfo(req, res) {
3
+ sendJson(res, {
4
+ version: '1.0.0',
5
+ capabilities: {
6
+ execution: true,
7
+ search: true,
8
+ streaming: true,
9
+ llmCalls: true,
10
+ },
11
+ });
12
+ }
13
+ //# sourceMappingURL=info.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.controller.js","sourceRoot":"","sources":["../../src/controllers/info.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAoB,EAAE,GAAmB;IACzE,QAAQ,CAAC,GAAG,EAAE;QACb,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE;YACb,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;SACd;KACD,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { IncomingMessage, ServerResponse } from 'node:http';
2
+ import type { SandboxExecutor } from '../executor/index.js';
3
+ import type { ExecutionStateManager } from '../execution-state/index.js';
4
+ import type { log } from '@mondaydotcomorg/atp-runtime';
5
+ interface ResumeContext {
6
+ executor: SandboxExecutor;
7
+ stateManager: ExecutionStateManager;
8
+ }
9
+ export declare function handleResume(req: IncomingMessage, res: ServerResponse, context: ResumeContext, executionId: string, body: string, logger: ReturnType<typeof log.child>): Promise<void>;
10
+ export {};
11
+ //# sourceMappingURL=resume.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/resume.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAExD,UAAU,aAAa;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,YAAY,EAAE,qBAAqB,CAAC;CACpC;AAED,wBAAsB,YAAY,CACjC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,GAClC,OAAO,CAAC,IAAI,CAAC,CA0Ef"}
@@ -0,0 +1,61 @@
1
+ export async function handleResume(req, res, context, executionId, body, logger) {
2
+ logger.info('Resuming paused execution', { executionId });
3
+ const pausedState = await context.stateManager.get(executionId);
4
+ if (!pausedState) {
5
+ logger.warn('Execution not found or expired', { executionId });
6
+ res.writeHead(404, { 'Content-Type': 'application/json' });
7
+ res.end(JSON.stringify({ error: 'Execution not found or expired' }));
8
+ return;
9
+ }
10
+ const { result: callbackResult } = JSON.parse(body);
11
+ logger.info('Client callback result received', {
12
+ executionId,
13
+ callbackType: pausedState.callbackRequest.type,
14
+ operation: pausedState.callbackRequest.operation,
15
+ });
16
+ const updatedHistory = pausedState.callbackHistory.map((record, index) => {
17
+ if (index === pausedState.currentCallbackIndex) {
18
+ return { ...record, result: callbackResult };
19
+ }
20
+ return record;
21
+ });
22
+ logger.info('Re-executing with replay', {
23
+ executionId,
24
+ historyLength: updatedHistory.length,
25
+ });
26
+ const result = await context.executor.execute(pausedState.code, pausedState.config, pausedState.clientId, {
27
+ callbackHistory: updatedHistory,
28
+ newCallbackResult: callbackResult,
29
+ executionId,
30
+ });
31
+ logger.info('Resumed execution completed', {
32
+ executionId: result.executionId,
33
+ status: result.status,
34
+ duration: result.stats.duration,
35
+ });
36
+ if (result.status === 'paused' && result.needsCallback && result.callbackHistory) {
37
+ await context.stateManager.pause({
38
+ executionId: result.executionId,
39
+ code: pausedState.code,
40
+ config: pausedState.config,
41
+ clientId: pausedState.clientId,
42
+ callbackRequest: result.needsCallback,
43
+ pausedAt: Date.now(),
44
+ callbackHistory: result.callbackHistory,
45
+ currentCallbackIndex: result.callbackHistory.length - 1,
46
+ context: {},
47
+ });
48
+ logger.info('Execution paused again (multi-callback)', {
49
+ executionId: result.executionId,
50
+ callbackType: result.needsCallback.type,
51
+ totalCallbacks: result.callbackHistory.length,
52
+ });
53
+ }
54
+ else {
55
+ await context.stateManager.delete(executionId);
56
+ logger.debug('Execution state cleaned up', { executionId });
57
+ }
58
+ res.writeHead(200, { 'Content-Type': 'application/json' });
59
+ res.end(JSON.stringify(result));
60
+ }
61
+ //# sourceMappingURL=resume.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.controller.js","sourceRoot":"","sources":["../../src/controllers/resume.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { IncomingMessage, ServerResponse } from 'node:http';
2
+ import type { SearchEngine } from '../search/index.js';
3
+ export declare function handleSearch(req: IncomingMessage, res: ServerResponse, searchEngine: SearchEngine, body: string): Promise<void>;
4
+ //# sourceMappingURL=search.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/search.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,wBAAsB,YAAY,CACjC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAKf"}
@@ -0,0 +1,7 @@
1
+ import { sendJson } from '../utils/response.js';
2
+ export async function handleSearch(req, res, searchEngine, body) {
3
+ const searchOptions = JSON.parse(body);
4
+ const results = await searchEngine.search(searchOptions);
5
+ sendJson(res, { results });
6
+ }
7
+ //# sourceMappingURL=search.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.controller.js","sourceRoot":"","sources":["../../src/controllers/search.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,GAAoB,EACpB,GAAmB,EACnB,YAA0B,EAC1B,IAAY;IAEZ,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAkB,CAAC;IACxD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAEzD,QAAQ,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { IncomingMessage, ServerResponse } from 'node:http';
2
+ import type { CodeValidator } from '../validator/index.js';
3
+ import type { SandboxExecutor } from '../executor/index.js';
4
+ import type { ExecutionStateManager } from '../execution-state/index.js';
5
+ import type { log } from '@mondaydotcomorg/atp-runtime';
6
+ interface StreamContext {
7
+ validator: CodeValidator;
8
+ executor: SandboxExecutor;
9
+ stateManager?: ExecutionStateManager;
10
+ auditConfig?: {
11
+ enabled: boolean;
12
+ };
13
+ defaultTimeout: number;
14
+ defaultMemoryLimit: number;
15
+ defaultLLMCallLimit: number;
16
+ }
17
+ export declare function handleExecuteStream(req: IncomingMessage, res: ServerResponse, context: StreamContext, body: string, clientId: string | undefined, logger: ReturnType<typeof log.child>): Promise<void>;
18
+ export {};
19
+ //# sourceMappingURL=stream.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/stream.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAQjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEzE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAExD,UAAU,aAAa;IACtB,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,eAAe,CAAC;IAC1B,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAsB,mBAAmB,CACxC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,MAAM,EAAE,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,GAClC,OAAO,CAAC,IAAI,CAAC,CA8Jf"}
@@ -0,0 +1,141 @@
1
+ import { ExecutionErrorCode, validateExecutionConfig, sanitizeInput, MAX_CODE_SIZE, } from '@mondaydotcomorg/atp-protocol';
2
+ import { nanoid } from 'nanoid';
3
+ export async function handleExecuteStream(req, res, context, body, clientId, logger) {
4
+ let request;
5
+ try {
6
+ request = JSON.parse(body);
7
+ }
8
+ catch (error) {
9
+ logger.warn('Invalid request body', { error });
10
+ res.writeHead(400, { 'Content-Type': 'application/json' });
11
+ res.end(JSON.stringify({
12
+ error: 'Invalid request body',
13
+ message: error instanceof Error ? error.message : 'Failed to parse request',
14
+ }));
15
+ return;
16
+ }
17
+ request.code = sanitizeInput(request.code, MAX_CODE_SIZE);
18
+ logger.info('Streaming code execution request', {
19
+ codeLength: request.code.length,
20
+ });
21
+ res.writeHead(200, {
22
+ 'Content-Type': 'text/event-stream',
23
+ 'Cache-Control': 'no-cache',
24
+ Connection: 'keep-alive',
25
+ });
26
+ const sendEvent = (event, data) => {
27
+ res.write(`event: ${event}\n`);
28
+ res.write(`data: ${JSON.stringify(data)}\n\n`);
29
+ };
30
+ try {
31
+ if (request.config) {
32
+ try {
33
+ validateExecutionConfig(request.config);
34
+ }
35
+ catch (error) {
36
+ logger.warn('Invalid execution config', { error });
37
+ sendEvent('error', {
38
+ message: error instanceof Error ? error.message : 'Invalid configuration',
39
+ });
40
+ res.end();
41
+ return;
42
+ }
43
+ }
44
+ const executionConfig = {
45
+ timeout: request.config?.timeout ?? context.defaultTimeout,
46
+ maxMemory: request.config?.maxMemory ?? context.defaultMemoryLimit,
47
+ maxLLMCalls: request.config?.maxLLMCalls ?? context.defaultLLMCallLimit,
48
+ allowedAPIs: request.config?.allowedAPIs ?? [],
49
+ allowLLMCalls: request.config?.allowLLMCalls ?? true,
50
+ progressCallback: (message, fraction) => {
51
+ sendEvent('progress', { message, fraction });
52
+ },
53
+ clientServices: request.config?.clientServices,
54
+ provenanceMode: request.config?.provenanceMode,
55
+ securityPolicies: request.config?.securityPolicies,
56
+ provenanceHints: request.config?.provenanceHints,
57
+ };
58
+ logger.info('Validating code for streaming execution', {
59
+ codeLength: request.code.length,
60
+ timeout: executionConfig.timeout,
61
+ clientServices: executionConfig.clientServices,
62
+ });
63
+ const validationResult = await context.validator.validate(request.code, executionConfig);
64
+ if (!validationResult.valid) {
65
+ logger.warn('Code validation failed', {
66
+ errors: validationResult.errors?.length,
67
+ securityIssues: validationResult.securityIssues?.length,
68
+ });
69
+ const hasSecurityIssues = validationResult.securityIssues && validationResult.securityIssues.length > 0;
70
+ sendEvent('result', {
71
+ executionId: nanoid(),
72
+ status: hasSecurityIssues ? 'security_violation' : 'validation_failed',
73
+ error: {
74
+ message: 'Code validation failed',
75
+ code: hasSecurityIssues
76
+ ? ExecutionErrorCode.SECURITY_VIOLATION
77
+ : ExecutionErrorCode.VALIDATION_FAILED,
78
+ context: {
79
+ errors: validationResult.errors,
80
+ securityIssues: validationResult.securityIssues,
81
+ },
82
+ retryable: false,
83
+ suggestion: hasSecurityIssues
84
+ ? 'Remove forbidden operations and use only allowed APIs'
85
+ : 'Fix syntax errors and validation issues in your code',
86
+ },
87
+ stats: {
88
+ duration: 0,
89
+ memoryUsed: 0,
90
+ llmCallsCount: 0,
91
+ approvalCallsCount: 0,
92
+ },
93
+ });
94
+ res.end();
95
+ return;
96
+ }
97
+ sendEvent('start', { message: 'Execution started' });
98
+ logger.info('Executing code in sandbox (streaming)');
99
+ const result = await context.executor.execute(request.code, executionConfig, clientId);
100
+ logger.info('Code execution completed (streaming)', {
101
+ executionId: result.executionId,
102
+ status: result.status,
103
+ duration: result.stats.duration,
104
+ });
105
+ if (result.status === 'paused' &&
106
+ result.needsCallback &&
107
+ result.callbackHistory &&
108
+ context.stateManager) {
109
+ if (!clientId) {
110
+ sendEvent('error', { message: 'Client ID required for paused executions' });
111
+ res.end();
112
+ return;
113
+ }
114
+ await context.stateManager.pause({
115
+ executionId: result.executionId,
116
+ code: request.code,
117
+ config: executionConfig,
118
+ clientId,
119
+ callbackRequest: result.needsCallback,
120
+ pausedAt: Date.now(),
121
+ callbackHistory: result.callbackHistory,
122
+ currentCallbackIndex: result.callbackHistory.length - 1,
123
+ context: {},
124
+ });
125
+ logger.info('Execution state saved (streaming)', {
126
+ executionId: result.executionId,
127
+ callbackType: result.needsCallback.type,
128
+ historyLength: result.callbackHistory.length,
129
+ });
130
+ }
131
+ sendEvent('result', result);
132
+ res.end();
133
+ }
134
+ catch (error) {
135
+ const err = error;
136
+ logger.error('Streaming execution error', { error: err.message });
137
+ sendEvent('error', { message: err.message, stack: err.stack });
138
+ res.end();
139
+ }
140
+ }
141
+ //# sourceMappingURL=stream.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.controller.js","sourceRoot":"","sources":["../../src/controllers/stream.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ import type { CacheProvider, AuthProvider, AuditSink, ProvenanceMode, SecurityPolicy, ScopeFilteringConfig } from '@mondaydotcomorg/atp-protocol';
2
+ export declare const MB: number;
3
+ export declare const GB: number;
4
+ export declare const SECOND = 1000;
5
+ export declare const MINUTE: number;
6
+ export declare const HOUR: number;
7
+ export declare const DAY: number;
8
+ /**
9
+ * Execution configuration
10
+ */
11
+ export interface ExecutionConfig {
12
+ /** Timeout in milliseconds */
13
+ timeout: number;
14
+ /** Memory limit in bytes */
15
+ memory: number;
16
+ /** Maximum LLM calls allowed */
17
+ llmCalls: number;
18
+ /** Provenance tracking mode (none|proxy|ast) */
19
+ provenanceMode?: ProvenanceMode;
20
+ /** Security policies for provenance-based protection */
21
+ securityPolicies?: SecurityPolicy[];
22
+ }
23
+ /**
24
+ * Client initialization configuration
25
+ */
26
+ export interface ClientInitConfig {
27
+ /** Token time-to-live in milliseconds */
28
+ tokenTTL: number;
29
+ /** Token rotation interval in milliseconds */
30
+ tokenRotation: number;
31
+ }
32
+ /**
33
+ * Execution state configuration
34
+ */
35
+ export interface ExecutionStateConfig {
36
+ /** TTL for paused execution state in seconds */
37
+ ttl: number;
38
+ /** Maximum allowed pause duration in seconds (default: 1 hour) */
39
+ maxPauseDuration: number;
40
+ /** Key prefix for execution state (defaults to 'atp:execution:') */
41
+ keyPrefix?: string;
42
+ }
43
+ /**
44
+ * Discovery configuration
45
+ */
46
+ export interface DiscoveryConfig {
47
+ /** Enable embeddings for semantic search */
48
+ embeddings: boolean;
49
+ /** Scope filtering configuration for search results */
50
+ scopeFiltering?: ScopeFilteringConfig;
51
+ }
52
+ /**
53
+ * OpenTelemetry configuration
54
+ */
55
+ export interface OpenTelemetryConfig {
56
+ /** Enable OpenTelemetry tracing and metrics */
57
+ enabled: boolean;
58
+ /** Service name for traces and metrics (defaults to 'agent-tool-protocol') */
59
+ serviceName?: string;
60
+ /** Service version for resource attributes */
61
+ serviceVersion?: string;
62
+ /** OTLP endpoint for traces (defaults to http://localhost:4318/v1/traces) */
63
+ traceEndpoint?: string;
64
+ /** OTLP endpoint for metrics (defaults to http://localhost:4318/v1/metrics) */
65
+ metricsEndpoint?: string;
66
+ /** Headers for OTLP exporter (e.g., for authentication) */
67
+ headers?: Record<string, string>;
68
+ /** Metrics export interval in milliseconds (defaults to 60000) */
69
+ metricsInterval?: number;
70
+ /** Additional resource attributes */
71
+ resourceAttributes?: Record<string, string>;
72
+ }
73
+ /**
74
+ * Logger interface
75
+ */
76
+ export interface Logger {
77
+ debug(message: string, meta?: unknown): void;
78
+ info(message: string, meta?: unknown): void;
79
+ warn(message: string, meta?: unknown): void;
80
+ error(message: string, meta?: unknown): void;
81
+ child?(meta: Record<string, unknown>): Logger;
82
+ }
83
+ /**
84
+ * Audit configuration
85
+ */
86
+ export interface AuditConfig {
87
+ /** Enable audit logging */
88
+ enabled: boolean;
89
+ /** Audit sink(s) for logging events */
90
+ sinks?: AuditSink | AuditSink[];
91
+ }
92
+ /**
93
+ * Provider configuration
94
+ */
95
+ export interface ProvidersConfig {
96
+ /** Cache provider for storing execution state and data (defaults to MemoryCache) */
97
+ cache?: CacheProvider;
98
+ /** Token/credential store for managing client tokens (defaults to EnvAuthProvider) */
99
+ auth?: AuthProvider;
100
+ }
101
+ /**
102
+ * Server configuration (user input - all fields optional)
103
+ */
104
+ export interface ServerConfig {
105
+ execution?: Partial<ExecutionConfig>;
106
+ clientInit?: Partial<ClientInitConfig>;
107
+ executionState?: Partial<ExecutionStateConfig>;
108
+ discovery?: Partial<DiscoveryConfig>;
109
+ /** Audit logging configuration */
110
+ audit?: Partial<AuditConfig>;
111
+ /** OpenTelemetry tracing and metrics configuration */
112
+ otel?: Partial<OpenTelemetryConfig>;
113
+ /** External providers (cache, auth) */
114
+ providers?: ProvidersConfig;
115
+ logger?: 'debug' | 'info' | 'warn' | 'error' | Logger;
116
+ }
117
+ /**
118
+ * Resolved server configuration with defaults applied
119
+ */
120
+ export interface ResolvedServerConfig {
121
+ execution: ExecutionConfig;
122
+ clientInit: ClientInitConfig;
123
+ executionState: ExecutionStateConfig;
124
+ discovery: DiscoveryConfig;
125
+ audit: AuditConfig;
126
+ otel: OpenTelemetryConfig;
127
+ logger: 'debug' | 'info' | 'warn' | 'error' | Logger;
128
+ }
129
+ /**
130
+ * Request context passed through middleware
131
+ */
132
+ export interface RequestContext {
133
+ method: string;
134
+ path: string;
135
+ query: Record<string, string>;
136
+ headers: Record<string, string>;
137
+ body: unknown;
138
+ clientId?: string;
139
+ clientToken?: string;
140
+ userId?: string;
141
+ user?: unknown;
142
+ executionId?: string;
143
+ code?: string;
144
+ validation?: unknown;
145
+ result?: unknown;
146
+ error?: Error;
147
+ cache?: CacheProvider;
148
+ auth?: AuthProvider;
149
+ audit?: AuditSink;
150
+ logger: Logger;
151
+ status: number;
152
+ responseBody: unknown;
153
+ throw(status: number, message: string): never;
154
+ assert(condition: boolean, message: string): asserts condition;
155
+ set(header: string, value: string): void;
156
+ }
157
+ /**
158
+ * Middleware function signature
159
+ */
160
+ export type Middleware = (ctx: RequestContext, next: () => Promise<void>) => Promise<void>;
161
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export const MB = 1024 * 1024;
2
+ export const GB = 1024 * 1024 * 1024;
3
+ export const SECOND = 1000;
4
+ export const MINUTE = 60 * 1000;
5
+ export const HOUR = 60 * 60 * 1000;
6
+ export const DAY = 24 * 60 * 60 * 1000;
7
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9B,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACrC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC;AAC3B,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC;AAChC,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACnC,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { IncomingMessage } from 'node:http';
2
+ export declare function parseBody(req: IncomingMessage): Promise<unknown>;
3
+ export declare function parseQuery(url: string): Record<string, string>;
4
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/core/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAEhE;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAa9D"}