@motiadev/core 0.14.0-beta.164 → 0.14.0-beta.165-707935

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 (522) hide show
  1. package/dist/index.d.mts +38 -0
  2. package/dist/index.mjs +30 -0
  3. package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.mts +17 -0
  4. package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.mts.map +1 -0
  5. package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.mjs +51 -0
  6. package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.mjs.map +1 -0
  7. package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.mts +19 -0
  8. package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.mts.map +1 -0
  9. package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.mjs +54 -0
  10. package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.mjs.map +1 -0
  11. package/dist/src/adapters/defaults/index.d.mts +8 -0
  12. package/dist/src/adapters/defaults/index.mjs +10 -0
  13. package/dist/src/adapters/defaults/state/file-state-adapter.d.mts +27 -0
  14. package/dist/src/adapters/defaults/state/file-state-adapter.d.mts.map +1 -0
  15. package/dist/src/adapters/defaults/state/file-state-adapter.mjs +105 -0
  16. package/dist/src/adapters/defaults/state/file-state-adapter.mjs.map +1 -0
  17. package/dist/src/adapters/defaults/state/memory-state-adapter.d.mts +20 -0
  18. package/dist/src/adapters/defaults/state/memory-state-adapter.d.mts.map +1 -0
  19. package/dist/src/adapters/defaults/state/memory-state-adapter.mjs +58 -0
  20. package/dist/src/adapters/defaults/state/memory-state-adapter.mjs.map +1 -0
  21. package/dist/src/adapters/defaults/state/utils.mjs +40 -0
  22. package/dist/src/adapters/defaults/state/utils.mjs.map +1 -0
  23. package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.mts +13 -0
  24. package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.mts.map +1 -0
  25. package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.mjs +16 -0
  26. package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.mjs.map +1 -0
  27. package/dist/src/adapters/defaults/stream/file-stream-adapter.d.mts +24 -0
  28. package/dist/src/adapters/defaults/stream/file-stream-adapter.d.mts.map +1 -0
  29. package/dist/src/adapters/defaults/stream/file-stream-adapter.mjs +84 -0
  30. package/dist/src/adapters/defaults/stream/file-stream-adapter.mjs.map +1 -0
  31. package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.mts +10 -0
  32. package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.mts.map +1 -0
  33. package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.mjs +12 -0
  34. package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.mjs.map +1 -0
  35. package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.mts +20 -0
  36. package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.mts.map +1 -0
  37. package/dist/src/adapters/defaults/stream/memory-stream-adapter.mjs +58 -0
  38. package/dist/src/adapters/defaults/stream/memory-stream-adapter.mjs.map +1 -0
  39. package/dist/src/adapters/interfaces/cron-adapter.interface.d.mts +32 -0
  40. package/dist/src/adapters/interfaces/cron-adapter.interface.d.mts.map +1 -0
  41. package/dist/src/adapters/interfaces/event-adapter.interface.d.mts +19 -0
  42. package/dist/src/adapters/interfaces/event-adapter.interface.d.mts.map +1 -0
  43. package/dist/src/adapters/interfaces/observability-adapter.interface.d.mts +27 -0
  44. package/dist/src/adapters/interfaces/observability-adapter.interface.d.mts.map +1 -0
  45. package/dist/src/adapters/interfaces/state-adapter.interface.d.mts +28 -0
  46. package/dist/src/adapters/interfaces/state-adapter.interface.d.mts.map +1 -0
  47. package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.mts +10 -0
  48. package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.mts.map +1 -0
  49. package/dist/src/adapters/interfaces/stream-adapter.interface.d.mts +26 -0
  50. package/dist/src/adapters/interfaces/stream-adapter.interface.d.mts.map +1 -0
  51. package/dist/src/adapters/interfaces/stream-adapter.interface.mjs +17 -0
  52. package/dist/src/adapters/interfaces/stream-adapter.interface.mjs.map +1 -0
  53. package/dist/src/analytics/utils.d.mts +9 -0
  54. package/dist/src/analytics/utils.d.mts.map +1 -0
  55. package/dist/src/analytics/utils.mjs +35 -0
  56. package/dist/src/analytics/utils.mjs.map +1 -0
  57. package/dist/src/call-step-file.mjs +215 -0
  58. package/dist/src/call-step-file.mjs.map +1 -0
  59. package/dist/src/config.d.mts +7 -0
  60. package/dist/src/config.d.mts.map +1 -0
  61. package/dist/src/config.mjs +6 -0
  62. package/dist/src/config.mjs.map +1 -0
  63. package/dist/src/cron-handler.d.mts +18 -0
  64. package/dist/src/cron-handler.d.mts.map +1 -0
  65. package/dist/src/cron-handler.mjs +103 -0
  66. package/dist/src/cron-handler.mjs.map +1 -0
  67. package/dist/src/endpoints/analytics-endpoint.mjs +29 -0
  68. package/dist/src/endpoints/analytics-endpoint.mjs.map +1 -0
  69. package/dist/src/endpoints/flows-config-endpoint.mjs +38 -0
  70. package/dist/src/endpoints/flows-config-endpoint.mjs.map +1 -0
  71. package/dist/src/endpoints/flows-endpoint.mjs +39 -0
  72. package/dist/src/endpoints/flows-endpoint.mjs.map +1 -0
  73. package/dist/src/endpoints/step-endpoint.mjs +41 -0
  74. package/dist/src/endpoints/step-endpoint.mjs.map +1 -0
  75. package/dist/src/generate-trace-id.mjs +13 -0
  76. package/dist/src/generate-trace-id.mjs.map +1 -0
  77. package/dist/src/get-step-config.d.mts +9 -0
  78. package/dist/src/get-step-config.d.mts.map +1 -0
  79. package/dist/src/get-step-config.mjs +63 -0
  80. package/dist/src/get-step-config.mjs.map +1 -0
  81. package/dist/src/get-step-language.mjs +14 -0
  82. package/dist/src/get-step-language.mjs.map +1 -0
  83. package/dist/src/guards.d.mts +10 -0
  84. package/dist/src/guards.d.mts.map +1 -0
  85. package/dist/src/guards.mjs +9 -0
  86. package/dist/src/guards.mjs.map +1 -0
  87. package/dist/src/helper/flows-helper.mjs +126 -0
  88. package/dist/src/helper/flows-helper.mjs.map +1 -0
  89. package/dist/src/infrastructure-validator/defaults.mjs +17 -0
  90. package/dist/src/infrastructure-validator/defaults.mjs.map +1 -0
  91. package/dist/src/infrastructure-validator/index.d.mts +3 -0
  92. package/dist/src/infrastructure-validator/index.mjs +4 -0
  93. package/dist/src/infrastructure-validator/schemas.d.mts +1 -0
  94. package/dist/src/infrastructure-validator/schemas.mjs +77 -0
  95. package/dist/src/infrastructure-validator/schemas.mjs.map +1 -0
  96. package/dist/src/infrastructure-validator/types.d.mts +14 -0
  97. package/dist/src/infrastructure-validator/types.d.mts.map +1 -0
  98. package/dist/src/infrastructure-validator/validations.d.mts +7 -0
  99. package/dist/src/infrastructure-validator/validations.d.mts.map +1 -0
  100. package/dist/src/infrastructure-validator/validations.mjs +29 -0
  101. package/dist/src/infrastructure-validator/validations.mjs.map +1 -0
  102. package/dist/src/language-runner.mjs +55 -0
  103. package/dist/src/language-runner.mjs.map +1 -0
  104. package/dist/src/locked-data.d.mts +81 -0
  105. package/dist/src/locked-data.d.mts.map +1 -0
  106. package/dist/src/locked-data.mjs +223 -0
  107. package/dist/src/locked-data.mjs.map +1 -0
  108. package/dist/src/logger-factory.d.mts +16 -0
  109. package/dist/src/logger-factory.d.mts.map +1 -0
  110. package/dist/src/logger-factory.mjs +33 -0
  111. package/dist/src/logger-factory.mjs.map +1 -0
  112. package/dist/src/logger.d.mts +28 -0
  113. package/dist/src/logger.d.mts.map +1 -0
  114. package/dist/src/logger.mjs +64 -0
  115. package/dist/src/logger.mjs.map +1 -0
  116. package/dist/src/mermaid-generator.d.mts +9 -0
  117. package/dist/src/mermaid-generator.d.mts.map +1 -0
  118. package/dist/src/mermaid-generator.mjs +126 -0
  119. package/dist/src/mermaid-generator.mjs.map +1 -0
  120. package/dist/src/motia.d.mts +37 -0
  121. package/dist/src/motia.d.mts.map +1 -0
  122. package/dist/src/motia.mjs +6 -0
  123. package/dist/src/motia.mjs.map +1 -0
  124. package/dist/src/node/can-access.d.mts +1 -0
  125. package/dist/src/node/can-access.mjs +36 -0
  126. package/dist/src/node/can-access.mjs.map +1 -0
  127. package/dist/src/node/get-config.d.mts +1 -0
  128. package/dist/src/node/get-config.mjs +49 -0
  129. package/dist/src/node/get-config.mjs.map +1 -0
  130. package/dist/src/node/logger.mjs +47 -0
  131. package/dist/src/node/logger.mjs.map +1 -0
  132. package/dist/src/node/middleware-compose.mjs +10 -0
  133. package/dist/src/node/middleware-compose.mjs.map +1 -0
  134. package/dist/src/node/node-runner.d.mts +1 -0
  135. package/dist/src/node/node-runner.mjs +94 -0
  136. package/dist/src/node/node-runner.mjs.map +1 -0
  137. package/dist/src/node/rpc-state-manager.mjs +35 -0
  138. package/dist/src/node/rpc-state-manager.mjs.map +1 -0
  139. package/dist/src/node/rpc.mjs +55 -0
  140. package/dist/src/node/rpc.mjs.map +1 -0
  141. package/dist/src/observability/create-trace.mjs +26 -0
  142. package/dist/src/observability/create-trace.mjs.map +1 -0
  143. package/dist/src/observability/index.d.mts +7 -0
  144. package/dist/src/observability/index.d.mts.map +1 -0
  145. package/dist/src/observability/no-tracer.d.mts +15 -0
  146. package/dist/src/observability/no-tracer.d.mts.map +1 -0
  147. package/dist/src/observability/no-tracer.mjs +23 -0
  148. package/dist/src/observability/no-tracer.mjs.map +1 -0
  149. package/dist/src/observability/redis-trace-stream-adapter.mjs +76 -0
  150. package/dist/src/observability/redis-trace-stream-adapter.mjs.map +1 -0
  151. package/dist/src/observability/stream-tracer.mjs +98 -0
  152. package/dist/src/observability/stream-tracer.mjs.map +1 -0
  153. package/dist/src/observability/trace-manager.mjs +27 -0
  154. package/dist/src/observability/trace-manager.mjs.map +1 -0
  155. package/dist/src/observability/tracer.mjs +88 -0
  156. package/dist/src/observability/tracer.mjs.map +1 -0
  157. package/dist/src/observability/types.d.mts +14 -0
  158. package/dist/src/observability/types.d.mts.map +1 -0
  159. package/dist/src/pretty-print.mjs +50 -0
  160. package/dist/src/pretty-print.mjs.map +1 -0
  161. package/dist/src/printer.d.mts +65 -0
  162. package/dist/src/printer.d.mts.map +1 -0
  163. package/dist/src/printer.mjs +147 -0
  164. package/dist/src/printer.mjs.map +1 -0
  165. package/dist/src/process-communication/communication-config.mjs +26 -0
  166. package/dist/src/process-communication/communication-config.mjs.map +1 -0
  167. package/dist/src/process-communication/process-manager.mjs +67 -0
  168. package/dist/src/process-communication/process-manager.mjs.map +1 -0
  169. package/dist/src/queue-manager.d.mts +37 -0
  170. package/dist/src/queue-manager.d.mts.map +1 -0
  171. package/dist/src/queue-manager.mjs +209 -0
  172. package/dist/src/queue-manager.mjs.map +1 -0
  173. package/dist/src/run-stream-can-access.mjs +59 -0
  174. package/dist/src/run-stream-can-access.mjs.map +1 -0
  175. package/dist/src/schema-utils.mjs +30 -0
  176. package/dist/src/schema-utils.mjs.map +1 -0
  177. package/dist/src/server.d.mts +40 -0
  178. package/dist/src/server.d.mts.map +1 -0
  179. package/dist/src/server.mjs +353 -0
  180. package/dist/src/server.mjs.map +1 -0
  181. package/dist/src/socket-server/helpers.mjs +35 -0
  182. package/dist/src/socket-server/helpers.mjs.map +1 -0
  183. package/dist/src/socket-server.mjs +127 -0
  184. package/dist/src/socket-server.mjs.map +1 -0
  185. package/dist/src/state/create-state-adapter.d.mts +11 -0
  186. package/dist/src/state/create-state-adapter.d.mts.map +1 -0
  187. package/dist/src/state/create-state-adapter.mjs +11 -0
  188. package/dist/src/state/create-state-adapter.mjs.map +1 -0
  189. package/dist/src/step-handler-rpc-processor.mjs +56 -0
  190. package/dist/src/step-handler-rpc-processor.mjs.map +1 -0
  191. package/dist/src/step-handler-rpc-stdin-processor.mjs +71 -0
  192. package/dist/src/step-handler-rpc-stdin-processor.mjs.map +1 -0
  193. package/dist/src/step-handlers.d.mts +13 -0
  194. package/dist/src/step-handlers.d.mts.map +1 -0
  195. package/dist/src/step-handlers.mjs +93 -0
  196. package/dist/src/step-handlers.mjs.map +1 -0
  197. package/dist/src/step-validator.d.mts +15 -0
  198. package/dist/src/step-validator.d.mts.map +1 -0
  199. package/dist/src/step-validator.mjs +118 -0
  200. package/dist/src/step-validator.mjs.map +1 -0
  201. package/dist/src/steps/emit.step.mjs +20 -0
  202. package/dist/src/steps/emit.step.mjs.map +1 -0
  203. package/dist/src/steps/index.mjs +14 -0
  204. package/dist/src/steps/index.mjs.map +1 -0
  205. package/dist/src/streams/flows-config-stream.mjs +46 -0
  206. package/dist/src/streams/flows-config-stream.mjs.map +1 -0
  207. package/dist/src/streams/flows-stream.mjs +33 -0
  208. package/dist/src/streams/flows-stream.mjs.map +1 -0
  209. package/dist/src/streams/redis-logs-stream.d.mts +3 -0
  210. package/dist/src/streams/redis-logs-stream.mjs +97 -0
  211. package/dist/src/streams/redis-logs-stream.mjs.map +1 -0
  212. package/dist/src/streams/stream-factory.d.mts +7 -0
  213. package/dist/src/streams/stream-factory.d.mts.map +1 -0
  214. package/dist/src/types/app-config-types.d.mts +49 -0
  215. package/dist/src/types/app-config-types.d.mts.map +1 -0
  216. package/dist/src/types/generate-type-from-schema.mjs +30 -0
  217. package/dist/src/types/generate-type-from-schema.mjs.map +1 -0
  218. package/dist/src/types/generate-types-from-response.mjs +12 -0
  219. package/dist/src/types/generate-types-from-response.mjs.map +1 -0
  220. package/dist/src/types/generate-types.mjs +101 -0
  221. package/dist/src/types/generate-types.mjs.map +1 -0
  222. package/dist/src/types/merge-schemas.mjs +102 -0
  223. package/dist/src/types/merge-schemas.mjs.map +1 -0
  224. package/dist/src/types/schema.types.d.mts +13 -0
  225. package/dist/src/types/schema.types.d.mts.map +1 -0
  226. package/dist/src/types/schema.types.mjs +14 -0
  227. package/dist/src/types/schema.types.mjs.map +1 -0
  228. package/dist/src/types-stream.d.mts +46 -0
  229. package/dist/src/types-stream.d.mts.map +1 -0
  230. package/dist/src/types.d.mts +194 -0
  231. package/dist/src/types.d.mts.map +1 -0
  232. package/dist/src/utils.mjs +13 -0
  233. package/dist/src/utils.mjs.map +1 -0
  234. package/dist/src/validate-event-input.mjs +76 -0
  235. package/dist/src/validate-event-input.mjs.map +1 -0
  236. package/jest.config.cjs +20 -0
  237. package/package.json +21 -8
  238. package/tsdown.config.ts +53 -0
  239. package/dist/index.d.ts +0 -30
  240. package/dist/index.d.ts.map +0 -1
  241. package/dist/index.js +0 -72
  242. package/dist/jest.config.d.ts +0 -8
  243. package/dist/jest.config.d.ts.map +0 -1
  244. package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.ts +0 -13
  245. package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.ts.map +0 -1
  246. package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.js +0 -53
  247. package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.ts +0 -15
  248. package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.ts.map +0 -1
  249. package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.js +0 -49
  250. package/dist/src/adapters/defaults/index.d.ts +0 -9
  251. package/dist/src/adapters/defaults/index.d.ts.map +0 -1
  252. package/dist/src/adapters/defaults/index.js +0 -19
  253. package/dist/src/adapters/defaults/state/file-state-adapter.d.ts +0 -23
  254. package/dist/src/adapters/defaults/state/file-state-adapter.d.ts.map +0 -1
  255. package/dist/src/adapters/defaults/state/file-state-adapter.js +0 -149
  256. package/dist/src/adapters/defaults/state/memory-state-adapter.d.ts +0 -16
  257. package/dist/src/adapters/defaults/state/memory-state-adapter.d.ts.map +0 -1
  258. package/dist/src/adapters/defaults/state/memory-state-adapter.js +0 -69
  259. package/dist/src/adapters/defaults/state/utils.d.ts +0 -4
  260. package/dist/src/adapters/defaults/state/utils.d.ts.map +0 -1
  261. package/dist/src/adapters/defaults/state/utils.js +0 -66
  262. package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.ts +0 -9
  263. package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.ts.map +0 -1
  264. package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.js +0 -14
  265. package/dist/src/adapters/defaults/stream/file-stream-adapter.d.ts +0 -22
  266. package/dist/src/adapters/defaults/stream/file-stream-adapter.d.ts.map +0 -1
  267. package/dist/src/adapters/defaults/stream/file-stream-adapter.js +0 -125
  268. package/dist/src/adapters/defaults/stream/index.d.ts +0 -5
  269. package/dist/src/adapters/defaults/stream/index.d.ts.map +0 -1
  270. package/dist/src/adapters/defaults/stream/index.js +0 -11
  271. package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.ts +0 -6
  272. package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.ts.map +0 -1
  273. package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.js +0 -10
  274. package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.ts +0 -16
  275. package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.ts.map +0 -1
  276. package/dist/src/adapters/defaults/stream/memory-stream-adapter.js +0 -55
  277. package/dist/src/adapters/interfaces/cron-adapter.interface.d.ts +0 -29
  278. package/dist/src/adapters/interfaces/cron-adapter.interface.d.ts.map +0 -1
  279. package/dist/src/adapters/interfaces/cron-adapter.interface.js +0 -2
  280. package/dist/src/adapters/interfaces/event-adapter.interface.d.ts +0 -15
  281. package/dist/src/adapters/interfaces/event-adapter.interface.d.ts.map +0 -1
  282. package/dist/src/adapters/interfaces/event-adapter.interface.js +0 -2
  283. package/dist/src/adapters/interfaces/index.d.ts +0 -7
  284. package/dist/src/adapters/interfaces/index.d.ts.map +0 -1
  285. package/dist/src/adapters/interfaces/index.js +0 -5
  286. package/dist/src/adapters/interfaces/observability-adapter.interface.d.ts +0 -23
  287. package/dist/src/adapters/interfaces/observability-adapter.interface.d.ts.map +0 -1
  288. package/dist/src/adapters/interfaces/observability-adapter.interface.js +0 -2
  289. package/dist/src/adapters/interfaces/state-adapter.interface.d.ts +0 -24
  290. package/dist/src/adapters/interfaces/state-adapter.interface.d.ts.map +0 -1
  291. package/dist/src/adapters/interfaces/state-adapter.interface.js +0 -2
  292. package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.ts +0 -6
  293. package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.ts.map +0 -1
  294. package/dist/src/adapters/interfaces/stream-adapter-manager.interface.js +0 -2
  295. package/dist/src/adapters/interfaces/stream-adapter.interface.d.ts +0 -22
  296. package/dist/src/adapters/interfaces/stream-adapter.interface.d.ts.map +0 -1
  297. package/dist/src/adapters/interfaces/stream-adapter.interface.js +0 -16
  298. package/dist/src/analytics/utils.d.ts +0 -6
  299. package/dist/src/analytics/utils.d.ts.map +0 -1
  300. package/dist/src/analytics/utils.js +0 -51
  301. package/dist/src/call-step-file.d.ts +0 -16
  302. package/dist/src/call-step-file.d.ts.map +0 -1
  303. package/dist/src/call-step-file.js +0 -198
  304. package/dist/src/config.d.ts +0 -3
  305. package/dist/src/config.d.ts.map +0 -1
  306. package/dist/src/config.js +0 -5
  307. package/dist/src/config.types.d.ts +0 -17
  308. package/dist/src/config.types.d.ts.map +0 -1
  309. package/dist/src/config.types.js +0 -2
  310. package/dist/src/cron-handler.d.ts +0 -14
  311. package/dist/src/cron-handler.d.ts.map +0 -1
  312. package/dist/src/cron-handler.js +0 -132
  313. package/dist/src/endpoints/analytics-endpoint.d.ts +0 -3
  314. package/dist/src/endpoints/analytics-endpoint.d.ts.map +0 -1
  315. package/dist/src/endpoints/analytics-endpoint.js +0 -28
  316. package/dist/src/endpoints/flows-config-endpoint.d.ts +0 -4
  317. package/dist/src/endpoints/flows-config-endpoint.d.ts.map +0 -1
  318. package/dist/src/endpoints/flows-config-endpoint.js +0 -34
  319. package/dist/src/endpoints/flows-endpoint.d.ts +0 -3
  320. package/dist/src/endpoints/flows-endpoint.d.ts.map +0 -1
  321. package/dist/src/endpoints/flows-endpoint.js +0 -29
  322. package/dist/src/endpoints/step-endpoint.d.ts +0 -4
  323. package/dist/src/endpoints/step-endpoint.d.ts.map +0 -1
  324. package/dist/src/endpoints/step-endpoint.js +0 -45
  325. package/dist/src/generate-trace-id.d.ts +0 -3
  326. package/dist/src/generate-trace-id.d.ts.map +0 -1
  327. package/dist/src/generate-trace-id.js +0 -14
  328. package/dist/src/get-step-config.d.ts +0 -5
  329. package/dist/src/get-step-config.d.ts.map +0 -1
  330. package/dist/src/get-step-config.js +0 -68
  331. package/dist/src/get-step-language.d.ts +0 -2
  332. package/dist/src/get-step-language.d.ts.map +0 -1
  333. package/dist/src/get-step-language.js +0 -27
  334. package/dist/src/guards.d.ts +0 -6
  335. package/dist/src/guards.d.ts.map +0 -1
  336. package/dist/src/guards.js +0 -11
  337. package/dist/src/helper/flows-helper.d.ts +0 -6
  338. package/dist/src/helper/flows-helper.d.ts.map +0 -1
  339. package/dist/src/helper/flows-helper.js +0 -143
  340. package/dist/src/infrastructure-validator/defaults.d.ts +0 -4
  341. package/dist/src/infrastructure-validator/defaults.d.ts.map +0 -1
  342. package/dist/src/infrastructure-validator/defaults.js +0 -16
  343. package/dist/src/infrastructure-validator/index.d.ts +0 -4
  344. package/dist/src/infrastructure-validator/index.d.ts.map +0 -1
  345. package/dist/src/infrastructure-validator/index.js +0 -13
  346. package/dist/src/infrastructure-validator/schemas.d.ts +0 -45
  347. package/dist/src/infrastructure-validator/schemas.d.ts.map +0 -1
  348. package/dist/src/infrastructure-validator/schemas.js +0 -100
  349. package/dist/src/infrastructure-validator/types.d.ts +0 -21
  350. package/dist/src/infrastructure-validator/types.d.ts.map +0 -1
  351. package/dist/src/infrastructure-validator/types.js +0 -2
  352. package/dist/src/infrastructure-validator/validations.d.ts +0 -4
  353. package/dist/src/infrastructure-validator/validations.d.ts.map +0 -1
  354. package/dist/src/infrastructure-validator/validations.js +0 -62
  355. package/dist/src/language-runner.d.ts +0 -15
  356. package/dist/src/language-runner.d.ts.map +0 -1
  357. package/dist/src/language-runner.js +0 -31
  358. package/dist/src/locked-data.d.ts +0 -78
  359. package/dist/src/locked-data.d.ts.map +0 -1
  360. package/dist/src/locked-data.js +0 -284
  361. package/dist/src/logger-factory.d.ts +0 -19
  362. package/dist/src/logger-factory.d.ts.map +0 -1
  363. package/dist/src/logger-factory.js +0 -27
  364. package/dist/src/logger.d.ts +0 -26
  365. package/dist/src/logger.d.ts.map +0 -1
  366. package/dist/src/logger.js +0 -60
  367. package/dist/src/mermaid-generator.d.ts +0 -5
  368. package/dist/src/mermaid-generator.d.ts.map +0 -1
  369. package/dist/src/mermaid-generator.js +0 -203
  370. package/dist/src/motia.d.ts +0 -33
  371. package/dist/src/motia.d.ts.map +0 -1
  372. package/dist/src/motia.js +0 -4
  373. package/dist/src/node/can-access.d.ts +0 -2
  374. package/dist/src/node/can-access.d.ts.map +0 -1
  375. package/dist/src/node/can-access.js +0 -44
  376. package/dist/src/node/get-config.d.ts +0 -2
  377. package/dist/src/node/get-config.d.ts.map +0 -1
  378. package/dist/src/node/get-config.js +0 -64
  379. package/dist/src/node/logger.d.ts +0 -16
  380. package/dist/src/node/logger.d.ts.map +0 -1
  381. package/dist/src/node/logger.js +0 -48
  382. package/dist/src/node/middleware-compose.d.ts +0 -2
  383. package/dist/src/node/middleware-compose.d.ts.map +0 -1
  384. package/dist/src/node/middleware-compose.js +0 -10
  385. package/dist/src/node/node-runner.d.ts +0 -2
  386. package/dist/src/node/node-runner.d.ts.map +0 -1
  387. package/dist/src/node/node-runner.js +0 -83
  388. package/dist/src/node/rpc-state-manager.d.ts +0 -12
  389. package/dist/src/node/rpc-state-manager.d.ts.map +0 -1
  390. package/dist/src/node/rpc-state-manager.js +0 -24
  391. package/dist/src/node/rpc.d.ts +0 -10
  392. package/dist/src/node/rpc.d.ts.map +0 -1
  393. package/dist/src/node/rpc.js +0 -50
  394. package/dist/src/observability/create-trace.d.ts +0 -4
  395. package/dist/src/observability/create-trace.d.ts.map +0 -1
  396. package/dist/src/observability/create-trace.js +0 -22
  397. package/dist/src/observability/index.d.ts +0 -4
  398. package/dist/src/observability/index.d.ts.map +0 -1
  399. package/dist/src/observability/index.js +0 -2
  400. package/dist/src/observability/no-tracer.d.ts +0 -10
  401. package/dist/src/observability/no-tracer.d.ts.map +0 -1
  402. package/dist/src/observability/no-tracer.js +0 -22
  403. package/dist/src/observability/redis-trace-stream-adapter.d.ts +0 -17
  404. package/dist/src/observability/redis-trace-stream-adapter.d.ts.map +0 -1
  405. package/dist/src/observability/redis-trace-stream-adapter.js +0 -65
  406. package/dist/src/observability/stream-tracer.d.ts +0 -23
  407. package/dist/src/observability/stream-tracer.d.ts.map +0 -1
  408. package/dist/src/observability/stream-tracer.js +0 -114
  409. package/dist/src/observability/trace-manager.d.ts +0 -14
  410. package/dist/src/observability/trace-manager.d.ts.map +0 -1
  411. package/dist/src/observability/trace-manager.js +0 -26
  412. package/dist/src/observability/tracer.d.ts +0 -19
  413. package/dist/src/observability/tracer.d.ts.map +0 -1
  414. package/dist/src/observability/tracer.js +0 -98
  415. package/dist/src/observability/types.d.ts +0 -75
  416. package/dist/src/observability/types.d.ts.map +0 -1
  417. package/dist/src/observability/types.js +0 -2
  418. package/dist/src/pretty-print.d.ts +0 -2
  419. package/dist/src/pretty-print.d.ts.map +0 -1
  420. package/dist/src/pretty-print.js +0 -63
  421. package/dist/src/printer.d.ts +0 -61
  422. package/dist/src/printer.d.ts.map +0 -1
  423. package/dist/src/printer.js +0 -164
  424. package/dist/src/process-communication/communication-config.d.ts +0 -8
  425. package/dist/src/process-communication/communication-config.d.ts.map +0 -1
  426. package/dist/src/process-communication/communication-config.js +0 -18
  427. package/dist/src/process-communication/process-manager.d.ts +0 -32
  428. package/dist/src/process-communication/process-manager.d.ts.map +0 -1
  429. package/dist/src/process-communication/process-manager.js +0 -88
  430. package/dist/src/process-communication/rpc-processor-interface.d.ts +0 -10
  431. package/dist/src/process-communication/rpc-processor-interface.d.ts.map +0 -1
  432. package/dist/src/process-communication/rpc-processor-interface.js +0 -2
  433. package/dist/src/queue-manager.d.ts +0 -42
  434. package/dist/src/queue-manager.d.ts.map +0 -1
  435. package/dist/src/queue-manager.js +0 -252
  436. package/dist/src/ruby/get-ruby-config.d.ts +0 -3
  437. package/dist/src/ruby/get-ruby-config.d.ts.map +0 -1
  438. package/dist/src/ruby/get-ruby-config.js +0 -34
  439. package/dist/src/run-stream-can-access.d.ts +0 -10
  440. package/dist/src/run-stream-can-access.d.ts.map +0 -1
  441. package/dist/src/run-stream-can-access.js +0 -59
  442. package/dist/src/schema-utils.d.ts +0 -9
  443. package/dist/src/schema-utils.d.ts.map +0 -1
  444. package/dist/src/schema-utils.js +0 -80
  445. package/dist/src/server.d.ts +0 -37
  446. package/dist/src/server.d.ts.map +0 -1
  447. package/dist/src/server.js +0 -344
  448. package/dist/src/socket-server/helpers.d.ts +0 -53
  449. package/dist/src/socket-server/helpers.d.ts.map +0 -1
  450. package/dist/src/socket-server/helpers.js +0 -28
  451. package/dist/src/socket-server.d.ts +0 -21
  452. package/dist/src/socket-server.d.ts.map +0 -1
  453. package/dist/src/socket-server.js +0 -127
  454. package/dist/src/state/create-state-adapter.d.ts +0 -8
  455. package/dist/src/state/create-state-adapter.d.ts.map +0 -1
  456. package/dist/src/state/create-state-adapter.js +0 -8
  457. package/dist/src/step-handler-rpc-processor.d.ts +0 -22
  458. package/dist/src/step-handler-rpc-processor.d.ts.map +0 -1
  459. package/dist/src/step-handler-rpc-processor.js +0 -63
  460. package/dist/src/step-handler-rpc-stdin-processor.d.ts +0 -23
  461. package/dist/src/step-handler-rpc-stdin-processor.d.ts.map +0 -1
  462. package/dist/src/step-handler-rpc-stdin-processor.js +0 -83
  463. package/dist/src/step-handlers.d.ts +0 -9
  464. package/dist/src/step-handlers.d.ts.map +0 -1
  465. package/dist/src/step-handlers.js +0 -77
  466. package/dist/src/step-validator.d.ts +0 -15
  467. package/dist/src/step-validator.d.ts.map +0 -1
  468. package/dist/src/step-validator.js +0 -135
  469. package/dist/src/steps/emit.step.d.ts +0 -12
  470. package/dist/src/steps/emit.step.d.ts.map +0 -1
  471. package/dist/src/steps/emit.step.js +0 -27
  472. package/dist/src/steps/index.d.ts +0 -3
  473. package/dist/src/steps/index.d.ts.map +0 -1
  474. package/dist/src/steps/index.js +0 -16
  475. package/dist/src/streams/flows-config-stream.d.ts +0 -14
  476. package/dist/src/streams/flows-config-stream.d.ts.map +0 -1
  477. package/dist/src/streams/flows-config-stream.js +0 -49
  478. package/dist/src/streams/flows-stream.d.ts +0 -12
  479. package/dist/src/streams/flows-stream.d.ts.map +0 -1
  480. package/dist/src/streams/flows-stream.js +0 -35
  481. package/dist/src/streams/redis-logs-stream.d.ts +0 -31
  482. package/dist/src/streams/redis-logs-stream.d.ts.map +0 -1
  483. package/dist/src/streams/redis-logs-stream.js +0 -84
  484. package/dist/src/streams/stream-factory.d.ts +0 -3
  485. package/dist/src/streams/stream-factory.d.ts.map +0 -1
  486. package/dist/src/streams/stream-factory.js +0 -2
  487. package/dist/src/types/app-config-types.d.ts +0 -45
  488. package/dist/src/types/app-config-types.d.ts.map +0 -1
  489. package/dist/src/types/app-config-types.js +0 -2
  490. package/dist/src/types/flows-config-types.d.ts +0 -10
  491. package/dist/src/types/flows-config-types.d.ts.map +0 -1
  492. package/dist/src/types/flows-config-types.js +0 -2
  493. package/dist/src/types/flows-types.d.ts +0 -39
  494. package/dist/src/types/flows-types.d.ts.map +0 -1
  495. package/dist/src/types/flows-types.js +0 -2
  496. package/dist/src/types/generate-type-from-schema.d.ts +0 -3
  497. package/dist/src/types/generate-type-from-schema.d.ts.map +0 -1
  498. package/dist/src/types/generate-type-from-schema.js +0 -49
  499. package/dist/src/types/generate-types-from-response.d.ts +0 -3
  500. package/dist/src/types/generate-types-from-response.d.ts.map +0 -1
  501. package/dist/src/types/generate-types-from-response.js +0 -13
  502. package/dist/src/types/generate-types.d.ts +0 -13
  503. package/dist/src/types/generate-types.d.ts.map +0 -1
  504. package/dist/src/types/generate-types.js +0 -127
  505. package/dist/src/types/merge-schemas.d.ts +0 -5
  506. package/dist/src/types/merge-schemas.d.ts.map +0 -1
  507. package/dist/src/types/merge-schemas.js +0 -183
  508. package/dist/src/types/schema.types.d.ts +0 -9
  509. package/dist/src/types/schema.types.d.ts.map +0 -1
  510. package/dist/src/types/schema.types.js +0 -14
  511. package/dist/src/types-stream.d.ts +0 -42
  512. package/dist/src/types-stream.d.ts.map +0 -1
  513. package/dist/src/types-stream.js +0 -2
  514. package/dist/src/types.d.ts +0 -190
  515. package/dist/src/types.d.ts.map +0 -1
  516. package/dist/src/types.js +0 -17
  517. package/dist/src/utils.d.ts +0 -3
  518. package/dist/src/utils.d.ts.map +0 -1
  519. package/dist/src/utils.js +0 -12
  520. package/dist/src/validate-event-input.d.ts +0 -3
  521. package/dist/src/validate-event-input.d.ts.map +0 -1
  522. package/dist/src/validate-event-input.js +0 -74
@@ -0,0 +1,98 @@
1
+ import { createTrace } from "./create-trace.mjs";
2
+
3
+ //#region src/observability/stream-tracer.ts
4
+ var StreamTracer = class StreamTracer {
5
+ constructor(manager, traceGroup, trace, logger) {
6
+ this.manager = manager;
7
+ this.traceGroup = traceGroup;
8
+ this.trace = trace;
9
+ logger.addListener(async (level, msg, args) => {
10
+ await this.addEvent({
11
+ type: "log",
12
+ timestamp: Date.now(),
13
+ level,
14
+ message: msg,
15
+ metadata: args
16
+ });
17
+ });
18
+ }
19
+ async end(err) {
20
+ if (this.trace.endTime) return;
21
+ this.trace.status = err ? "failed" : "completed";
22
+ this.trace.endTime = Date.now();
23
+ this.trace.error = err;
24
+ await this.manager.updateTrace();
25
+ await this.recomputeTraceGroupStatus();
26
+ await this.manager.updateTraceGroup();
27
+ }
28
+ async recomputeTraceGroupStatus() {
29
+ const allTracesFromStorage = await this.manager.getAllTracesForGroup();
30
+ const currentTraceIndex = allTracesFromStorage.findIndex((t) => t.id === this.trace.id);
31
+ const allTraces = [...allTracesFromStorage];
32
+ if (currentTraceIndex >= 0) allTraces[currentTraceIndex] = this.trace;
33
+ else allTraces.push(this.trace);
34
+ const completedCount = allTraces.filter((t) => t.status === "completed").length;
35
+ const failedCount = allTraces.filter((t) => t.status === "failed").length;
36
+ const runningCount = allTraces.filter((t) => t.status === "running").length;
37
+ this.traceGroup.metadata.completedSteps = completedCount;
38
+ this.traceGroup.metadata.activeSteps = runningCount;
39
+ if (failedCount > 0) this.traceGroup.status = "failed";
40
+ else if (runningCount === 0 && completedCount > 0) {
41
+ this.traceGroup.status = "completed";
42
+ if (!this.traceGroup.endTime) this.traceGroup.endTime = Date.now();
43
+ } else this.traceGroup.status = "running";
44
+ }
45
+ async stateOperation(operation, input) {
46
+ await this.addEvent({
47
+ type: "state",
48
+ timestamp: Date.now(),
49
+ operation,
50
+ data: input
51
+ });
52
+ }
53
+ async emitOperation(topic, data, success) {
54
+ await this.addEvent({
55
+ type: "emit",
56
+ timestamp: Date.now(),
57
+ topic,
58
+ success,
59
+ data
60
+ });
61
+ }
62
+ async streamOperation(streamName, operation, input) {
63
+ if (operation === "set") {
64
+ const lastEvent = this.trace.events[this.trace.events.length - 1];
65
+ if (lastEvent && lastEvent.type === "stream" && lastEvent.streamName === streamName && lastEvent.data.groupId === input.groupId && lastEvent.data.id === input.id) {
66
+ lastEvent.calls++;
67
+ lastEvent.data.data = input.data;
68
+ lastEvent.maxTimestamp = Date.now();
69
+ this.traceGroup.lastActivity = lastEvent.maxTimestamp;
70
+ await this.manager.updateTrace();
71
+ await this.manager.updateTraceGroup();
72
+ return;
73
+ }
74
+ }
75
+ await this.addEvent({
76
+ type: "stream",
77
+ timestamp: Date.now(),
78
+ operation,
79
+ data: input,
80
+ streamName,
81
+ calls: 1
82
+ });
83
+ }
84
+ child(step, logger) {
85
+ const trace = createTrace(this.traceGroup, step);
86
+ return new StreamTracer(this.manager.child(trace), this.traceGroup, trace, logger);
87
+ }
88
+ async addEvent(event) {
89
+ this.trace.events.push(event);
90
+ this.traceGroup.lastActivity = event.timestamp;
91
+ await this.manager.updateTrace();
92
+ await this.manager.updateTraceGroup();
93
+ }
94
+ };
95
+
96
+ //#endregion
97
+ export { StreamTracer };
98
+ //# sourceMappingURL=stream-tracer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-tracer.mjs","names":["manager: TraceManager","traceGroup: TraceGroup","trace: Trace"],"sources":["../../../src/observability/stream-tracer.ts"],"sourcesContent":["import type { Logger } from '../logger'\nimport type { Step } from '../types'\nimport { createTrace } from './create-trace'\nimport type { Tracer } from './index'\nimport type { TraceManager } from './trace-manager'\nimport type { StateOperation, StreamOperation, Trace, TraceError, TraceEvent, TraceGroup } from './types'\n\nexport class StreamTracer implements Tracer {\n constructor(\n private readonly manager: TraceManager,\n private readonly traceGroup: TraceGroup,\n private readonly trace: Trace,\n logger: Logger,\n ) {\n logger.addListener(async (level, msg, args) => {\n await this.addEvent({\n type: 'log',\n timestamp: Date.now(),\n level,\n message: msg,\n metadata: args,\n })\n })\n }\n\n async end(err?: TraceError) {\n if (this.trace.endTime) {\n return\n }\n\n this.trace.status = err ? 'failed' : 'completed'\n this.trace.endTime = Date.now()\n this.trace.error = err\n\n await this.manager.updateTrace()\n await this.recomputeTraceGroupStatus()\n await this.manager.updateTraceGroup()\n }\n\n private async recomputeTraceGroupStatus() {\n const allTracesFromStorage = await this.manager.getAllTracesForGroup()\n\n const currentTraceIndex = allTracesFromStorage.findIndex((t) => t.id === this.trace.id)\n const allTraces = [...allTracesFromStorage]\n\n if (currentTraceIndex >= 0) {\n allTraces[currentTraceIndex] = this.trace\n } else {\n allTraces.push(this.trace)\n }\n\n const completedCount = allTraces.filter((t) => t.status === 'completed').length\n const failedCount = allTraces.filter((t) => t.status === 'failed').length\n const runningCount = allTraces.filter((t) => t.status === 'running').length\n\n this.traceGroup.metadata.completedSteps = completedCount\n this.traceGroup.metadata.activeSteps = runningCount\n\n if (failedCount > 0) {\n this.traceGroup.status = 'failed'\n } else if (runningCount === 0 && completedCount > 0) {\n this.traceGroup.status = 'completed'\n if (!this.traceGroup.endTime) {\n this.traceGroup.endTime = Date.now()\n }\n } else {\n this.traceGroup.status = 'running'\n }\n }\n\n async stateOperation(operation: StateOperation, input: unknown) {\n await this.addEvent({\n type: 'state',\n timestamp: Date.now(),\n operation,\n data: input,\n })\n }\n\n async emitOperation(topic: string, data: unknown, success: boolean) {\n await this.addEvent({\n type: 'emit',\n timestamp: Date.now(),\n topic,\n success,\n data,\n })\n }\n\n async streamOperation(\n streamName: string,\n operation: StreamOperation,\n input: { groupId: string; id: string; data?: unknown },\n ) {\n if (operation === 'set') {\n const lastEvent = this.trace.events[this.trace.events.length - 1]\n\n if (\n lastEvent &&\n lastEvent.type === 'stream' &&\n lastEvent.streamName === streamName &&\n lastEvent.data.groupId === input.groupId &&\n lastEvent.data.id === input.id\n ) {\n lastEvent.calls++\n lastEvent.data.data = input.data\n lastEvent.maxTimestamp = Date.now()\n\n this.traceGroup.lastActivity = lastEvent.maxTimestamp\n await this.manager.updateTrace()\n await this.manager.updateTraceGroup()\n\n return\n }\n }\n\n await this.addEvent({\n type: 'stream',\n timestamp: Date.now(),\n operation,\n data: input,\n streamName,\n calls: 1,\n })\n }\n\n child(step: Step, logger: Logger) {\n const trace = createTrace(this.traceGroup, step)\n const manager = this.manager.child(trace)\n\n return new StreamTracer(manager, this.traceGroup, trace, logger)\n }\n\n private async addEvent(event: TraceEvent) {\n this.trace.events.push(event)\n this.traceGroup.lastActivity = event.timestamp\n\n await this.manager.updateTrace()\n await this.manager.updateTraceGroup()\n }\n}\n"],"mappings":";;;AAOA,IAAa,eAAb,MAAa,aAA+B;CAC1C,YACE,AAAiBA,SACjB,AAAiBC,YACjB,AAAiBC,OACjB,QACA;EAJiB;EACA;EACA;AAGjB,SAAO,YAAY,OAAO,OAAO,KAAK,SAAS;AAC7C,SAAM,KAAK,SAAS;IAClB,MAAM;IACN,WAAW,KAAK,KAAK;IACrB;IACA,SAAS;IACT,UAAU;IACX,CAAC;IACF;;CAGJ,MAAM,IAAI,KAAkB;AAC1B,MAAI,KAAK,MAAM,QACb;AAGF,OAAK,MAAM,SAAS,MAAM,WAAW;AACrC,OAAK,MAAM,UAAU,KAAK,KAAK;AAC/B,OAAK,MAAM,QAAQ;AAEnB,QAAM,KAAK,QAAQ,aAAa;AAChC,QAAM,KAAK,2BAA2B;AACtC,QAAM,KAAK,QAAQ,kBAAkB;;CAGvC,MAAc,4BAA4B;EACxC,MAAM,uBAAuB,MAAM,KAAK,QAAQ,sBAAsB;EAEtE,MAAM,oBAAoB,qBAAqB,WAAW,MAAM,EAAE,OAAO,KAAK,MAAM,GAAG;EACvF,MAAM,YAAY,CAAC,GAAG,qBAAqB;AAE3C,MAAI,qBAAqB,EACvB,WAAU,qBAAqB,KAAK;MAEpC,WAAU,KAAK,KAAK,MAAM;EAG5B,MAAM,iBAAiB,UAAU,QAAQ,MAAM,EAAE,WAAW,YAAY,CAAC;EACzE,MAAM,cAAc,UAAU,QAAQ,MAAM,EAAE,WAAW,SAAS,CAAC;EACnE,MAAM,eAAe,UAAU,QAAQ,MAAM,EAAE,WAAW,UAAU,CAAC;AAErE,OAAK,WAAW,SAAS,iBAAiB;AAC1C,OAAK,WAAW,SAAS,cAAc;AAEvC,MAAI,cAAc,EAChB,MAAK,WAAW,SAAS;WAChB,iBAAiB,KAAK,iBAAiB,GAAG;AACnD,QAAK,WAAW,SAAS;AACzB,OAAI,CAAC,KAAK,WAAW,QACnB,MAAK,WAAW,UAAU,KAAK,KAAK;QAGtC,MAAK,WAAW,SAAS;;CAI7B,MAAM,eAAe,WAA2B,OAAgB;AAC9D,QAAM,KAAK,SAAS;GAClB,MAAM;GACN,WAAW,KAAK,KAAK;GACrB;GACA,MAAM;GACP,CAAC;;CAGJ,MAAM,cAAc,OAAe,MAAe,SAAkB;AAClE,QAAM,KAAK,SAAS;GAClB,MAAM;GACN,WAAW,KAAK,KAAK;GACrB;GACA;GACA;GACD,CAAC;;CAGJ,MAAM,gBACJ,YACA,WACA,OACA;AACA,MAAI,cAAc,OAAO;GACvB,MAAM,YAAY,KAAK,MAAM,OAAO,KAAK,MAAM,OAAO,SAAS;AAE/D,OACE,aACA,UAAU,SAAS,YACnB,UAAU,eAAe,cACzB,UAAU,KAAK,YAAY,MAAM,WACjC,UAAU,KAAK,OAAO,MAAM,IAC5B;AACA,cAAU;AACV,cAAU,KAAK,OAAO,MAAM;AAC5B,cAAU,eAAe,KAAK,KAAK;AAEnC,SAAK,WAAW,eAAe,UAAU;AACzC,UAAM,KAAK,QAAQ,aAAa;AAChC,UAAM,KAAK,QAAQ,kBAAkB;AAErC;;;AAIJ,QAAM,KAAK,SAAS;GAClB,MAAM;GACN,WAAW,KAAK,KAAK;GACrB;GACA,MAAM;GACN;GACA,OAAO;GACR,CAAC;;CAGJ,MAAM,MAAY,QAAgB;EAChC,MAAM,QAAQ,YAAY,KAAK,YAAY,KAAK;AAGhD,SAAO,IAAI,aAFK,KAAK,QAAQ,MAAM,MAAM,EAER,KAAK,YAAY,OAAO,OAAO;;CAGlE,MAAc,SAAS,OAAmB;AACxC,OAAK,MAAM,OAAO,KAAK,MAAM;AAC7B,OAAK,WAAW,eAAe,MAAM;AAErC,QAAM,KAAK,QAAQ,aAAa;AAChC,QAAM,KAAK,QAAQ,kBAAkB"}
@@ -0,0 +1,27 @@
1
+ //#region src/observability/trace-manager.ts
2
+ var TraceManager = class TraceManager {
3
+ constructor(traceStream, traceGroupStream, traceGroup, trace) {
4
+ this.traceStream = traceStream;
5
+ this.traceGroupStream = traceGroupStream;
6
+ this.traceGroup = traceGroup;
7
+ this.trace = trace;
8
+ this.updateTrace().catch(() => {});
9
+ this.updateTraceGroup().catch(() => {});
10
+ }
11
+ async updateTrace() {
12
+ await this.traceStream.set(this.traceGroup.id, this.trace.id, this.trace);
13
+ }
14
+ async updateTraceGroup() {
15
+ await this.traceGroupStream.set("default", this.traceGroup.id, this.traceGroup);
16
+ }
17
+ async getAllTracesForGroup() {
18
+ return await this.traceStream.getGroup(this.traceGroup.id);
19
+ }
20
+ child(trace) {
21
+ return new TraceManager(this.traceStream, this.traceGroupStream, this.traceGroup, trace);
22
+ }
23
+ };
24
+
25
+ //#endregion
26
+ export { TraceManager };
27
+ //# sourceMappingURL=trace-manager.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-manager.mjs","names":["traceStream: MotiaStream<Trace>","traceGroupStream: MotiaStream<TraceGroup>","traceGroup: TraceGroup","trace: Trace"],"sources":["../../../src/observability/trace-manager.ts"],"sourcesContent":["import type { MotiaStream } from '../types-stream'\nimport type { Trace, TraceGroup } from './types'\n\nexport class TraceManager {\n constructor(\n private readonly traceStream: MotiaStream<Trace>,\n private readonly traceGroupStream: MotiaStream<TraceGroup>,\n private readonly traceGroup: TraceGroup,\n private readonly trace: Trace,\n ) {\n this.updateTrace().catch(() => {})\n this.updateTraceGroup().catch(() => {})\n }\n\n async updateTrace() {\n await this.traceStream.set(this.traceGroup.id, this.trace.id, this.trace)\n }\n\n async updateTraceGroup() {\n await this.traceGroupStream.set('default', this.traceGroup.id, this.traceGroup)\n }\n\n async getAllTracesForGroup(): Promise<Trace[]> {\n return await this.traceStream.getGroup(this.traceGroup.id)\n }\n\n child(trace: Trace) {\n return new TraceManager(this.traceStream, this.traceGroupStream, this.traceGroup, trace)\n }\n}\n"],"mappings":";AAGA,IAAa,eAAb,MAAa,aAAa;CACxB,YACE,AAAiBA,aACjB,AAAiBC,kBACjB,AAAiBC,YACjB,AAAiBC,OACjB;EAJiB;EACA;EACA;EACA;AAEjB,OAAK,aAAa,CAAC,YAAY,GAAG;AAClC,OAAK,kBAAkB,CAAC,YAAY,GAAG;;CAGzC,MAAM,cAAc;AAClB,QAAM,KAAK,YAAY,IAAI,KAAK,WAAW,IAAI,KAAK,MAAM,IAAI,KAAK,MAAM;;CAG3E,MAAM,mBAAmB;AACvB,QAAM,KAAK,iBAAiB,IAAI,WAAW,KAAK,WAAW,IAAI,KAAK,WAAW;;CAGjF,MAAM,uBAAyC;AAC7C,SAAO,MAAM,KAAK,YAAY,SAAS,KAAK,WAAW,GAAG;;CAG5D,MAAM,OAAc;AAClB,SAAO,IAAI,aAAa,KAAK,aAAa,KAAK,kBAAkB,KAAK,YAAY,MAAM"}
@@ -0,0 +1,88 @@
1
+ import { createTrace } from "./create-trace.mjs";
2
+ import { RedisTraceStreamAdapter } from "./redis-trace-stream-adapter.mjs";
3
+ import { StreamTracer } from "./stream-tracer.mjs";
4
+ import { TraceManager } from "./trace-manager.mjs";
5
+
6
+ //#region src/observability/tracer.ts
7
+ const MAX_TRACE_GROUPS = process.env.MOTIA_MAX_TRACE_GROUPS ? Number.parseInt(process.env.MOTIA_MAX_TRACE_GROUPS, 10) : 50;
8
+ var BaseTracerFactory = class {
9
+ constructor(traceStream, traceGroupStream) {
10
+ this.traceStream = traceStream;
11
+ this.traceGroupStream = traceGroupStream;
12
+ }
13
+ async getAllGroups() {
14
+ return await this.traceGroupStream.getGroup("default");
15
+ }
16
+ async deleteGroup(group) {
17
+ const traces = await this.traceStream.getGroup(group.id);
18
+ for (const trace of traces) await this.traceStream.delete(group.id, trace.id);
19
+ await this.traceGroupStream.delete("default", group.id);
20
+ }
21
+ async clear() {
22
+ const groups = await this.getAllGroups();
23
+ for (const group of groups) await this.deleteGroup(group);
24
+ }
25
+ async createTracer(traceId, step, logger) {
26
+ const traceGroup = {
27
+ id: traceId,
28
+ name: step.config.name,
29
+ lastActivity: Date.now(),
30
+ metadata: {
31
+ completedSteps: 0,
32
+ activeSteps: 0,
33
+ totalSteps: 0
34
+ },
35
+ correlationId: void 0,
36
+ status: "running",
37
+ startTime: Date.now()
38
+ };
39
+ const groups = await this.getAllGroups();
40
+ if (groups.length >= MAX_TRACE_GROUPS) {
41
+ const groupsToDelete = groups.sort((a, b) => a.startTime - b.startTime).slice(0, groups.length - MAX_TRACE_GROUPS + 1);
42
+ for (const group of groupsToDelete) await this.deleteGroup(group);
43
+ }
44
+ const trace = createTrace(traceGroup, step);
45
+ return new StreamTracer(new TraceManager(this.traceStream, this.traceGroupStream, traceGroup, trace), traceGroup, trace, logger);
46
+ }
47
+ async attachToTrace(traceId, step, logger) {
48
+ const existingGroup = await this.traceGroupStream.get("default", traceId);
49
+ if (!existingGroup) return this.createTracer(traceId, step, logger);
50
+ const trace = createTrace(existingGroup, step);
51
+ return new StreamTracer(new TraceManager(this.traceStream, this.traceGroupStream, existingGroup, trace), existingGroup, trace, logger);
52
+ }
53
+ };
54
+ const createTracerFactory = (lockedData) => {
55
+ if (!lockedData.redisClient) throw new Error("Redis client is required for tracer factory. Please provide a redisClient when creating LockedData.");
56
+ const traceStreamName = "motia-trace";
57
+ const traceStreamAdapter = new RedisTraceStreamAdapter(traceStreamName, lockedData.redisClient);
58
+ const traceStream = lockedData.createStream({
59
+ filePath: traceStreamName,
60
+ hidden: true,
61
+ config: {
62
+ name: traceStreamName,
63
+ baseConfig: {
64
+ storageType: "custom",
65
+ factory: () => traceStreamAdapter
66
+ },
67
+ schema: null
68
+ }
69
+ })();
70
+ const traceGroupName = "motia-trace-group";
71
+ const traceGroupStreamAdapter = new RedisTraceStreamAdapter(traceGroupName, lockedData.redisClient);
72
+ return new BaseTracerFactory(traceStream, lockedData.createStream({
73
+ filePath: traceGroupName,
74
+ hidden: true,
75
+ config: {
76
+ name: traceGroupName,
77
+ baseConfig: {
78
+ storageType: "custom",
79
+ factory: () => traceGroupStreamAdapter
80
+ },
81
+ schema: null
82
+ }
83
+ })());
84
+ };
85
+
86
+ //#endregion
87
+ export { createTracerFactory };
88
+ //# sourceMappingURL=tracer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracer.mjs","names":["traceStream: MotiaStream<Trace>","traceGroupStream: MotiaStream<TraceGroup>","traceGroup: TraceGroup","traceStreamAdapter: MotiaStream<Trace>","traceGroupStreamAdapter: MotiaStream<TraceGroup>"],"sources":["../../../src/observability/tracer.ts"],"sourcesContent":["import { FileStreamAdapterManager } from '../adapters/defaults/stream/file-stream-adapter-manager'\nimport type { LockedData } from '../locked-data'\nimport type { Logger } from '../logger'\nimport type { Step } from '../types'\nimport type { MotiaStream } from '../types-stream'\nimport { createTrace } from './create-trace'\nimport type { TracerFactory } from './index'\nimport { RedisTraceStreamAdapter } from './redis-trace-stream-adapter'\nimport { StreamTracer } from './stream-tracer'\nimport { TraceManager } from './trace-manager'\nimport type { Trace, TraceGroup } from './types'\n\nconst MAX_TRACE_GROUPS = process.env.MOTIA_MAX_TRACE_GROUPS //\n ? Number.parseInt(process.env.MOTIA_MAX_TRACE_GROUPS, 10)\n : 50\n\nexport class BaseTracerFactory implements TracerFactory {\n constructor(\n private readonly traceStream: MotiaStream<Trace>,\n private readonly traceGroupStream: MotiaStream<TraceGroup>,\n ) {}\n\n private async getAllGroups() {\n return await this.traceGroupStream.getGroup('default')\n }\n\n private async deleteGroup(group: TraceGroup) {\n const traces = await this.traceStream.getGroup(group.id)\n\n for (const trace of traces) {\n await this.traceStream.delete(group.id, trace.id)\n }\n await this.traceGroupStream.delete('default', group.id)\n }\n\n async clear() {\n const groups = await this.getAllGroups()\n\n for (const group of groups) {\n await this.deleteGroup(group)\n }\n }\n\n async createTracer(traceId: string, step: Step, logger: Logger) {\n const traceGroup: TraceGroup = {\n id: traceId,\n name: step.config.name,\n lastActivity: Date.now(),\n metadata: {\n completedSteps: 0,\n activeSteps: 0,\n totalSteps: 0,\n },\n correlationId: undefined,\n status: 'running',\n startTime: Date.now(),\n }\n\n const groups = await this.getAllGroups()\n\n if (groups.length >= MAX_TRACE_GROUPS) {\n const groupsToDelete = groups\n .sort((a, b) => a.startTime - b.startTime) // date ascending\n .slice(0, groups.length - MAX_TRACE_GROUPS + 1)\n\n for (const group of groupsToDelete) {\n await this.deleteGroup(group)\n }\n }\n\n const trace = createTrace(traceGroup, step)\n const manager = new TraceManager(this.traceStream, this.traceGroupStream, traceGroup, trace)\n\n return new StreamTracer(manager, traceGroup, trace, logger)\n }\n\n async attachToTrace(traceId: string, step: Step, logger: Logger) {\n const existingGroup = await this.traceGroupStream.get('default', traceId)\n\n if (!existingGroup) {\n return this.createTracer(traceId, step, logger)\n }\n\n const trace = createTrace(existingGroup, step)\n const manager = new TraceManager(this.traceStream, this.traceGroupStream, existingGroup, trace)\n\n return new StreamTracer(manager, existingGroup, trace, logger)\n }\n}\n\nexport const createTracerFactory = (lockedData: LockedData): TracerFactory => {\n if (!lockedData.redisClient) {\n throw new Error(\n 'Redis client is required for tracer factory. Please provide a redisClient when creating LockedData.',\n )\n }\n\n const traceStreamName = 'motia-trace'\n const traceStreamAdapter: MotiaStream<Trace> = new RedisTraceStreamAdapter(traceStreamName, lockedData.redisClient)\n\n const traceStream = lockedData.createStream<Trace>({\n filePath: traceStreamName,\n hidden: true,\n config: {\n name: traceStreamName,\n baseConfig: { storageType: 'custom', factory: () => traceStreamAdapter },\n schema: null as never,\n },\n })()\n\n const traceGroupName = 'motia-trace-group'\n const traceGroupStreamAdapter: MotiaStream<TraceGroup> = new RedisTraceStreamAdapter(\n traceGroupName,\n lockedData.redisClient,\n )\n\n const traceGroupStream = lockedData.createStream<TraceGroup>({\n filePath: traceGroupName,\n hidden: true,\n config: {\n name: traceGroupName,\n baseConfig: { storageType: 'custom', factory: () => traceGroupStreamAdapter },\n schema: null as never,\n },\n })()\n\n return new BaseTracerFactory(traceStream, traceGroupStream)\n}\n"],"mappings":";;;;;;AAYA,MAAM,mBAAmB,QAAQ,IAAI,yBACjC,OAAO,SAAS,QAAQ,IAAI,wBAAwB,GAAG,GACvD;AAEJ,IAAa,oBAAb,MAAwD;CACtD,YACE,AAAiBA,aACjB,AAAiBC,kBACjB;EAFiB;EACA;;CAGnB,MAAc,eAAe;AAC3B,SAAO,MAAM,KAAK,iBAAiB,SAAS,UAAU;;CAGxD,MAAc,YAAY,OAAmB;EAC3C,MAAM,SAAS,MAAM,KAAK,YAAY,SAAS,MAAM,GAAG;AAExD,OAAK,MAAM,SAAS,OAClB,OAAM,KAAK,YAAY,OAAO,MAAM,IAAI,MAAM,GAAG;AAEnD,QAAM,KAAK,iBAAiB,OAAO,WAAW,MAAM,GAAG;;CAGzD,MAAM,QAAQ;EACZ,MAAM,SAAS,MAAM,KAAK,cAAc;AAExC,OAAK,MAAM,SAAS,OAClB,OAAM,KAAK,YAAY,MAAM;;CAIjC,MAAM,aAAa,SAAiB,MAAY,QAAgB;EAC9D,MAAMC,aAAyB;GAC7B,IAAI;GACJ,MAAM,KAAK,OAAO;GAClB,cAAc,KAAK,KAAK;GACxB,UAAU;IACR,gBAAgB;IAChB,aAAa;IACb,YAAY;IACb;GACD,eAAe;GACf,QAAQ;GACR,WAAW,KAAK,KAAK;GACtB;EAED,MAAM,SAAS,MAAM,KAAK,cAAc;AAExC,MAAI,OAAO,UAAU,kBAAkB;GACrC,MAAM,iBAAiB,OACpB,MAAM,GAAG,MAAM,EAAE,YAAY,EAAE,UAAU,CACzC,MAAM,GAAG,OAAO,SAAS,mBAAmB,EAAE;AAEjD,QAAK,MAAM,SAAS,eAClB,OAAM,KAAK,YAAY,MAAM;;EAIjC,MAAM,QAAQ,YAAY,YAAY,KAAK;AAG3C,SAAO,IAAI,aAFK,IAAI,aAAa,KAAK,aAAa,KAAK,kBAAkB,YAAY,MAAM,EAE3D,YAAY,OAAO,OAAO;;CAG7D,MAAM,cAAc,SAAiB,MAAY,QAAgB;EAC/D,MAAM,gBAAgB,MAAM,KAAK,iBAAiB,IAAI,WAAW,QAAQ;AAEzE,MAAI,CAAC,cACH,QAAO,KAAK,aAAa,SAAS,MAAM,OAAO;EAGjD,MAAM,QAAQ,YAAY,eAAe,KAAK;AAG9C,SAAO,IAAI,aAFK,IAAI,aAAa,KAAK,aAAa,KAAK,kBAAkB,eAAe,MAAM,EAE9D,eAAe,OAAO,OAAO;;;AAIlE,MAAa,uBAAuB,eAA0C;AAC5E,KAAI,CAAC,WAAW,YACd,OAAM,IAAI,MACR,sGACD;CAGH,MAAM,kBAAkB;CACxB,MAAMC,qBAAyC,IAAI,wBAAwB,iBAAiB,WAAW,YAAY;CAEnH,MAAM,cAAc,WAAW,aAAoB;EACjD,UAAU;EACV,QAAQ;EACR,QAAQ;GACN,MAAM;GACN,YAAY;IAAE,aAAa;IAAU,eAAe;IAAoB;GACxE,QAAQ;GACT;EACF,CAAC,EAAE;CAEJ,MAAM,iBAAiB;CACvB,MAAMC,0BAAmD,IAAI,wBAC3D,gBACA,WAAW,YACZ;AAYD,QAAO,IAAI,kBAAkB,aAVJ,WAAW,aAAyB;EAC3D,UAAU;EACV,QAAQ;EACR,QAAQ;GACN,MAAM;GACN,YAAY;IAAE,aAAa;IAAU,eAAe;IAAyB;GAC7E,QAAQ;GACT;EACF,CAAC,EAAE,CAEuD"}
@@ -0,0 +1,14 @@
1
+ import "../types.mjs";
2
+
3
+ //#region src/observability/types.d.ts
4
+
5
+ type TraceError = {
6
+ message: string;
7
+ code?: string | number;
8
+ stack?: string;
9
+ };
10
+ type StateOperation = 'get' | 'getGroup' | 'set' | 'delete' | 'clear';
11
+ type StreamOperation = 'get' | 'getGroup' | 'set' | 'delete' | 'clear' | 'send';
12
+ //#endregion
13
+ export { StateOperation, StreamOperation, TraceError };
14
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../../../src/observability/types.ts"],"sourcesContent":[],"mappings":";;;;KAiBY,UAAA;;;;;KAqBA,cAAA;KACA,eAAA"}
@@ -0,0 +1,50 @@
1
+ import pc from "picocolors";
2
+
3
+ //#region src/pretty-print.ts
4
+ const stepTag = (step) => pc.bold(pc.cyan(step));
5
+ const timestampTag = (timestamp) => pc.gray(timestamp);
6
+ const traceIdTag = (traceId) => pc.gray(traceId);
7
+ const levelTags = {
8
+ error: pc.red("[ERROR]"),
9
+ info: pc.blue("[INFO]"),
10
+ warn: pc.yellow("[WARN]"),
11
+ debug: pc.gray("[DEBUG]"),
12
+ trace: pc.gray("[TRACE]")
13
+ };
14
+ const numericTag = (value) => pc.green(value);
15
+ const stringTag = (value) => pc.cyan(value);
16
+ const booleanTag = (value) => pc.blue(value);
17
+ const arrayBrackets = ["[", "]"].map((s) => pc.gray(s));
18
+ const objectBrackets = ["{", "}"].map((s) => pc.gray(s));
19
+ const prettyPrintObject = (obj, depth = 0, parentIsLast = false, prefix = "") => {
20
+ const tab = prefix + (depth === 0 ? "" : parentIsLast ? "│ " : "│ ");
21
+ if (depth > 2) return `${tab} └ ${pc.gray("[...]")}`;
22
+ const entries = Object.entries(obj);
23
+ return entries.map(([key, value], index) => {
24
+ const isLast = index === entries.length - 1;
25
+ const isObject = typeof value === "object" && value !== null;
26
+ const prefix$1 = isLast && !isObject ? "└" : "├";
27
+ if (isObject) {
28
+ const subObject = prettyPrintObject(value, depth + 1, isLast, tab);
29
+ const [start, end] = Array.isArray(value) ? arrayBrackets : objectBrackets;
30
+ return `${tab}${prefix$1} ${key}: ${start}\n${subObject}\n${tab}${isLast ? "└" : "│"} ${end}`;
31
+ }
32
+ let printedValue = value;
33
+ if (typeof value === "number") printedValue = numericTag(String(value));
34
+ else if (typeof value === "boolean") printedValue = booleanTag(String(value));
35
+ else if (typeof value === "string") printedValue = stringTag(value);
36
+ return `${tab}${prefix$1} ${key}: ${printedValue}`;
37
+ }).join("\n");
38
+ };
39
+ const prettyPrint = (json, excludeDetails = false) => {
40
+ const { time, traceId, msg, flows, level, step, ...details } = json;
41
+ const levelTag = levelTags[level];
42
+ const timestamp = timestampTag(`[${new Date(time).toLocaleTimeString()}]`);
43
+ const objectHasKeys = Object.keys(details).length > 0;
44
+ console.log(`${timestamp} ${traceIdTag(traceId)} ${levelTag} ${stepTag(step)} ${msg}`);
45
+ if (objectHasKeys && !excludeDetails) console.log(prettyPrintObject(details));
46
+ };
47
+
48
+ //#endregion
49
+ export { prettyPrint };
50
+ //# sourceMappingURL=pretty-print.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pretty-print.mjs","names":["levelTags: Record<string, string>","prefix"],"sources":["../../src/pretty-print.ts"],"sourcesContent":["import pc from 'picocolors'\n\nconst stepTag = (step: string) => pc.bold(pc.cyan(step))\nconst timestampTag = (timestamp: string) => pc.gray(timestamp)\nconst traceIdTag = (traceId: string) => pc.gray(traceId)\n\nconst levelTags: Record<string, string> = {\n error: pc.red('[ERROR]'),\n info: pc.blue('[INFO]'),\n warn: pc.yellow('[WARN]'),\n debug: pc.gray('[DEBUG]'),\n trace: pc.gray('[TRACE]'),\n}\n\nconst numericTag = (value: string) => pc.green(value)\nconst stringTag = (value: string) => pc.cyan(value)\nconst booleanTag = (value: string) => pc.blue(value)\n\nconst arrayBrackets = ['[', ']'].map((s) => pc.gray(s))\nconst objectBrackets = ['{', '}'].map((s) => pc.gray(s))\n\nconst prettyPrintObject = (obj: Record<string, any>, depth = 0, parentIsLast = false, prefix = ''): string => {\n const tab = prefix + (depth === 0 ? '' : parentIsLast ? '│ ' : '│ ')\n\n if (depth > 2) {\n return `${tab} └ ${pc.gray('[...]')}`\n }\n\n const entries = Object.entries(obj)\n\n return entries\n .map(([key, value], index) => {\n const isLast = index === entries.length - 1\n const isObject = typeof value === 'object' && value !== null\n const prefix = isLast && !isObject ? '└' : '├'\n\n if (isObject) {\n const subObject = prettyPrintObject(value, depth + 1, isLast, tab)\n const [start, end] = Array.isArray(value) ? arrayBrackets : objectBrackets\n\n return `${tab}${prefix} ${key}: ${start}\\n${subObject}\\n${tab}${isLast ? '└' : '│'} ${end}`\n }\n\n let printedValue = value\n\n if (typeof value === 'number') {\n printedValue = numericTag(String(value))\n } else if (typeof value === 'boolean') {\n printedValue = booleanTag(String(value))\n } else if (typeof value === 'string') {\n printedValue = stringTag(value)\n }\n\n return `${tab}${prefix} ${key}: ${printedValue}`\n })\n .join('\\n')\n}\n\nexport const prettyPrint = (json: Record<string, any>, excludeDetails = false): void => {\n const { time, traceId, msg, flows, level, step, ...details } = json\n const levelTag = levelTags[level]\n const timestamp = timestampTag(`[${new Date(time).toLocaleTimeString()}]`)\n const objectHasKeys = Object.keys(details).length > 0\n\n console.log(`${timestamp} ${traceIdTag(traceId)} ${levelTag} ${stepTag(step)} ${msg}`)\n\n if (objectHasKeys && !excludeDetails) {\n console.log(prettyPrintObject(details))\n }\n}\n"],"mappings":";;;AAEA,MAAM,WAAW,SAAiB,GAAG,KAAK,GAAG,KAAK,KAAK,CAAC;AACxD,MAAM,gBAAgB,cAAsB,GAAG,KAAK,UAAU;AAC9D,MAAM,cAAc,YAAoB,GAAG,KAAK,QAAQ;AAExD,MAAMA,YAAoC;CACxC,OAAO,GAAG,IAAI,UAAU;CACxB,MAAM,GAAG,KAAK,SAAS;CACvB,MAAM,GAAG,OAAO,SAAS;CACzB,OAAO,GAAG,KAAK,UAAU;CACzB,OAAO,GAAG,KAAK,UAAU;CAC1B;AAED,MAAM,cAAc,UAAkB,GAAG,MAAM,MAAM;AACrD,MAAM,aAAa,UAAkB,GAAG,KAAK,MAAM;AACnD,MAAM,cAAc,UAAkB,GAAG,KAAK,MAAM;AAEpD,MAAM,gBAAgB,CAAC,KAAK,IAAI,CAAC,KAAK,MAAM,GAAG,KAAK,EAAE,CAAC;AACvD,MAAM,iBAAiB,CAAC,KAAK,IAAI,CAAC,KAAK,MAAM,GAAG,KAAK,EAAE,CAAC;AAExD,MAAM,qBAAqB,KAA0B,QAAQ,GAAG,eAAe,OAAO,SAAS,OAAe;CAC5G,MAAM,MAAM,UAAU,UAAU,IAAI,KAAK,eAAe,OAAO;AAE/D,KAAI,QAAQ,EACV,QAAO,GAAG,IAAI,KAAK,GAAG,KAAK,QAAQ;CAGrC,MAAM,UAAU,OAAO,QAAQ,IAAI;AAEnC,QAAO,QACJ,KAAK,CAAC,KAAK,QAAQ,UAAU;EAC5B,MAAM,SAAS,UAAU,QAAQ,SAAS;EAC1C,MAAM,WAAW,OAAO,UAAU,YAAY,UAAU;EACxD,MAAMC,WAAS,UAAU,CAAC,WAAW,MAAM;AAE3C,MAAI,UAAU;GACZ,MAAM,YAAY,kBAAkB,OAAO,QAAQ,GAAG,QAAQ,IAAI;GAClE,MAAM,CAAC,OAAO,OAAO,MAAM,QAAQ,MAAM,GAAG,gBAAgB;AAE5D,UAAO,GAAG,MAAMA,SAAO,GAAG,IAAI,IAAI,MAAM,IAAI,UAAU,IAAI,MAAM,SAAS,MAAM,IAAI,GAAG;;EAGxF,IAAI,eAAe;AAEnB,MAAI,OAAO,UAAU,SACnB,gBAAe,WAAW,OAAO,MAAM,CAAC;WAC/B,OAAO,UAAU,UAC1B,gBAAe,WAAW,OAAO,MAAM,CAAC;WAC/B,OAAO,UAAU,SAC1B,gBAAe,UAAU,MAAM;AAGjC,SAAO,GAAG,MAAMA,SAAO,GAAG,IAAI,IAAI;GAClC,CACD,KAAK,KAAK;;AAGf,MAAa,eAAe,MAA2B,iBAAiB,UAAgB;CACtF,MAAM,EAAE,MAAM,SAAS,KAAK,OAAO,OAAO,MAAM,GAAG,YAAY;CAC/D,MAAM,WAAW,UAAU;CAC3B,MAAM,YAAY,aAAa,IAAI,IAAI,KAAK,KAAK,CAAC,oBAAoB,CAAC,GAAG;CAC1E,MAAM,gBAAgB,OAAO,KAAK,QAAQ,CAAC,SAAS;AAEpD,SAAQ,IAAI,GAAG,UAAU,GAAG,WAAW,QAAQ,CAAC,GAAG,SAAS,GAAG,QAAQ,KAAK,CAAC,GAAG,MAAM;AAEtF,KAAI,iBAAiB,CAAC,eACpB,SAAQ,IAAI,kBAAkB,QAAQ,CAAC"}
@@ -0,0 +1,65 @@
1
+ import { Stream } from "./types-stream.mjs";
2
+ import { ValidationError } from "./step-validator.mjs";
3
+ import { Step } from "./types.mjs";
4
+
5
+ //#region src/printer.d.ts
6
+ declare class Printer {
7
+ private readonly baseDir;
8
+ constructor(baseDir: string);
9
+ stepTag: string;
10
+ flowTag: string;
11
+ registered: string;
12
+ building: string;
13
+ built: string;
14
+ updated: string;
15
+ removed: string;
16
+ printEventInputValidationError(emit: {
17
+ topic: string;
18
+ }, details: {
19
+ missingFields?: string[];
20
+ extraFields?: string[];
21
+ typeMismatches?: string[];
22
+ }): void;
23
+ printInvalidEmit(step: Step, emit: string): void;
24
+ printStepCreated(step: Step): void;
25
+ printStepUpdated(step: Step): void;
26
+ printStepRemoved(step: Step): void;
27
+ printFlowCreated(flowName: string): void;
28
+ printFlowUpdated(flowName: string): void;
29
+ printFlowRemoved(flowName: string): void;
30
+ printStreamCreated(stream: Stream): void;
31
+ printStreamUpdated(stream: Stream): void;
32
+ printStreamRemoved(stream: Stream): void;
33
+ printInvalidEmitConfiguration(step: Step, emit: string): void;
34
+ printInvalidSchema(topic: string, step: Step[]): void;
35
+ printValidationError(stepPath: string, validationError: ValidationError): void;
36
+ getRelativePath(filePath: string): string;
37
+ getStepType(step: Step): string;
38
+ getStepPath(step: Step): string;
39
+ getStreamPath(stream: Stream): string;
40
+ printPluginLog(message: string): void;
41
+ printPluginWarn(message: string): void;
42
+ printPluginError(message: string, ...args: unknown[]): void;
43
+ }
44
+ declare class NoPrinter extends Printer {
45
+ constructor();
46
+ printEventInputValidationError(): void;
47
+ printInvalidEmit(): void;
48
+ printStepCreated(): void;
49
+ printStepUpdated(): void;
50
+ printStepRemoved(): void;
51
+ printFlowCreated(): void;
52
+ printFlowUpdated(): void;
53
+ printFlowRemoved(): void;
54
+ printStepType(): void;
55
+ printStepPath(): void;
56
+ printStreamCreated(): void;
57
+ printStreamUpdated(): void;
58
+ printStreamRemoved(): void;
59
+ printPluginLog(): void;
60
+ printPluginWarn(): void;
61
+ printPluginError(): void;
62
+ }
63
+ //#endregion
64
+ export { NoPrinter, Printer };
65
+ //# sourceMappingURL=printer.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"printer.d.mts","names":[],"sources":["../../src/printer.ts"],"sourcesContent":[],"mappings":";;;;;cAsBa,OAAA;;EAAA,WAAO,CAAA,OAAA,EAAA,MAAA;EA0CK,OAAA,EAAA,MAAA;EAMA,OAAA,EAAA,MAAA;EAIA,UAAA,EAAA,MAAA;EAIA,QAAA,EAAA,MAAA;EAgBI,KAAA,EAAA,MAAA;EAIA,OAAA,EAAA,MAAA;EAIA,OAAA,EAAA,MAAA;EAIS,8BAAA,CAAA,IAAA,EAAA;IAMI,KAAA,EAAA,MAAA;EAOgB,CAAA,EAAA,OAAA,EAAA;IAkBtC,aAAA,CAAA,EAAA,MAAA,EAAA;IASA,WAAA,CAAA,EAAA,MAAA,EAAA;IAKI,cAAA,CAAA,EAAA,MAAA,EAAA;EAAM,CAAA,CAAA,EAAA,IAAA;EAqBjB,gBAAU,CAAA,IAAA,EA5GE,IA4GM,EAAA,IAAO,EAAA,MAAA,CAAA,EAAA,IAAA;yBAtGb;yBAIA;yBAIA;;;;6BAgBI;6BAIA;6BAIA;sCAIS;0CAMI;0DAOgB;;oBAkBtC;oBASA;wBAKI;;;;;cAqBX,SAAA,SAAkB,OAAA"}
@@ -0,0 +1,147 @@
1
+ import { isApiStep, isCronStep, isEventStep, isNoopStep } from "./guards.mjs";
2
+ import pc from "picocolors";
3
+ import path from "path";
4
+
5
+ //#region src/printer.ts
6
+ const stepTag = pc.bold(pc.magenta("Step"));
7
+ const flowTag = pc.bold(pc.blue("Flow"));
8
+ const streamTag = pc.bold(pc.green("Stream"));
9
+ const registered = pc.green("➜ [REGISTERED]");
10
+ const building = pc.yellow("⚡ [BUILDING]");
11
+ const built = pc.green("✓ [BUILT]");
12
+ const updated = pc.yellow("➜ [UPDATED]");
13
+ const removed = pc.red("➜ [REMOVED]");
14
+ const invalidEmit = pc.red("➜ [INVALID EMIT]");
15
+ const error = pc.red("[ERROR]");
16
+ const warning = pc.yellow("[WARNING]");
17
+ const warnIcon = pc.yellow("⚠");
18
+ const infoIcon = pc.blue("ℹ");
19
+ const errorIcon = pc.red("✖");
20
+ var Printer = class {
21
+ constructor(baseDir) {
22
+ this.baseDir = baseDir;
23
+ this.stepTag = stepTag;
24
+ this.flowTag = flowTag;
25
+ this.registered = registered;
26
+ this.building = building;
27
+ this.built = built;
28
+ this.updated = updated;
29
+ this.removed = removed;
30
+ }
31
+ printEventInputValidationError(emit, details) {
32
+ const emitPath = pc.bold(pc.cyan(`Emit ${emit.topic}`));
33
+ console.log(`${warnIcon} ${warning} ${emitPath} validation issues:`);
34
+ if (!(details.missingFields?.length || details.extraFields?.length || details.typeMismatches?.length)) {
35
+ console.log(`${pc.yellow("│")} No issues found.`);
36
+ console.log(`${pc.yellow("└─")} Validation passed.`);
37
+ return;
38
+ }
39
+ if (details.missingFields?.length) console.log(`${pc.yellow("│")} ${pc.yellow(`⚠ Missing fields: ${details.missingFields.join(", ")}`)}`);
40
+ if (details.extraFields?.length) console.log(`${pc.yellow("│")} ${pc.yellow(`⚠ Extra fields: ${details.extraFields.join(", ")}`)}`);
41
+ if (details.typeMismatches?.length) console.log(`${pc.yellow("│")} ${pc.yellow(`⚠ Type mismatches: ${details.typeMismatches.join(", ")}`)}`);
42
+ console.log(`${pc.yellow("└─")} ${pc.yellow("Payload does not match schema.")}`);
43
+ }
44
+ printInvalidEmit(step, emit) {
45
+ console.log(`${invalidEmit} ${stepTag} ${this.getStepType(step)} ${this.getStepPath(step)} tried to emit an event not defined in the step config: ${pc.yellow(emit)}`);
46
+ }
47
+ printStepCreated(step) {
48
+ console.log(`${registered} ${stepTag} ${this.getStepType(step)} ${this.getStepPath(step)} registered`);
49
+ }
50
+ printStepUpdated(step) {
51
+ console.log(`${updated} ${stepTag} ${this.getStepType(step)} ${this.getStepPath(step)} updated`);
52
+ }
53
+ printStepRemoved(step) {
54
+ console.log(`${removed} ${stepTag} ${this.getStepType(step)} ${this.getStepPath(step)} removed`);
55
+ }
56
+ printFlowCreated(flowName) {
57
+ console.log(`${registered} ${flowTag} ${pc.bold(pc.cyan(flowName))} registered`);
58
+ }
59
+ printFlowUpdated(flowName) {
60
+ console.log(`${updated} ${flowTag} ${pc.bold(pc.cyan(flowName))} updated`);
61
+ }
62
+ printFlowRemoved(flowName) {
63
+ console.log(`${removed} ${flowTag} ${pc.bold(pc.cyan(flowName))} removed`);
64
+ }
65
+ printStreamCreated(stream) {
66
+ console.log(`${registered} ${streamTag} ${this.getStreamPath(stream)} registered`);
67
+ }
68
+ printStreamUpdated(stream) {
69
+ console.log(`${updated} ${streamTag} ${this.getStreamPath(stream)} updated`);
70
+ }
71
+ printStreamRemoved(stream) {
72
+ console.log(`${removed} ${streamTag} ${this.getStreamPath(stream)} removed`);
73
+ }
74
+ printInvalidEmitConfiguration(step, emit) {
75
+ console.log(`${warnIcon} ${warning} ${stepTag} ${this.getStepType(step)} ${this.getStepPath(step)} emits to ${pc.yellow(emit)}, but there is no subscriber defined`);
76
+ }
77
+ printInvalidSchema(topic, step) {
78
+ console.log(`${error} Topic ${pc.bold(pc.blue(topic))} has incompatible schemas in the following steps:`);
79
+ step.forEach((step$1) => {
80
+ console.log(`${pc.red(" ✖")} ${this.getStepPath(step$1)}`);
81
+ });
82
+ }
83
+ printValidationError(stepPath, validationError) {
84
+ const relativePath = this.getRelativePath(stepPath);
85
+ console.log(`${error} ${pc.bold(pc.cyan(relativePath))}`);
86
+ validationError.errors?.forEach((error$1) => {
87
+ if (error$1.path) console.log(`${pc.red("│")} ${pc.yellow(`✖ ${error$1.path}`)}: ${error$1.message}`);
88
+ else console.log(`${pc.red("│")} ${pc.yellow("✖")} ${error$1.message}`);
89
+ });
90
+ console.log(`${pc.red("└─")} ${pc.red(validationError.error)} `);
91
+ }
92
+ getRelativePath(filePath) {
93
+ return path.relative(this.baseDir, filePath);
94
+ }
95
+ getStepType(step) {
96
+ if (isApiStep(step)) return pc.gray("(API)");
97
+ if (isEventStep(step)) return pc.gray("(Event)");
98
+ if (isCronStep(step)) return pc.gray("(Cron)");
99
+ if (isNoopStep(step)) return pc.gray("(Noop)");
100
+ return pc.gray("(Unknown)");
101
+ }
102
+ getStepPath(step) {
103
+ const stepPath = this.getRelativePath(step.filePath);
104
+ return pc.bold(pc.cyan(stepPath));
105
+ }
106
+ getStreamPath(stream) {
107
+ const streamPath = this.getRelativePath(stream.filePath);
108
+ return pc.bold(pc.magenta(streamPath));
109
+ }
110
+ printPluginLog(message) {
111
+ const pluginTag = pc.bold(pc.cyan("[motia-plugins]"));
112
+ console.log(`${infoIcon} ${pluginTag} ${message}`);
113
+ }
114
+ printPluginWarn(message) {
115
+ const pluginTag = pc.bold(pc.cyan("[motia-plugins]"));
116
+ console.warn(`${warnIcon} ${pluginTag} ${pc.yellow(message)}`);
117
+ }
118
+ printPluginError(message, ...args) {
119
+ const pluginTag = pc.bold(pc.cyan("[motia-plugins]"));
120
+ console.error(`${errorIcon} ${pluginTag} ${pc.red(message)}`, ...args);
121
+ }
122
+ };
123
+ var NoPrinter = class extends Printer {
124
+ constructor() {
125
+ super("");
126
+ }
127
+ printEventInputValidationError() {}
128
+ printInvalidEmit() {}
129
+ printStepCreated() {}
130
+ printStepUpdated() {}
131
+ printStepRemoved() {}
132
+ printFlowCreated() {}
133
+ printFlowUpdated() {}
134
+ printFlowRemoved() {}
135
+ printStepType() {}
136
+ printStepPath() {}
137
+ printStreamCreated() {}
138
+ printStreamUpdated() {}
139
+ printStreamRemoved() {}
140
+ printPluginLog() {}
141
+ printPluginWarn() {}
142
+ printPluginError() {}
143
+ };
144
+
145
+ //#endregion
146
+ export { NoPrinter, Printer };
147
+ //# sourceMappingURL=printer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"printer.mjs","names":["baseDir: string","step","error"],"sources":["../../src/printer.ts"],"sourcesContent":["import path from 'path'\nimport pc from 'picocolors'\nimport { isApiStep, isCronStep, isEventStep, isNoopStep } from './guards'\nimport type { ValidationError } from './step-validator'\nimport type { Step } from './types'\nimport type { Stream } from './types-stream'\n\nconst stepTag = pc.bold(pc.magenta('Step'))\nconst flowTag = pc.bold(pc.blue('Flow'))\nconst streamTag = pc.bold(pc.green('Stream'))\nconst registered = pc.green('➜ [REGISTERED]')\nconst building = pc.yellow('⚡ [BUILDING]')\nconst built = pc.green('✓ [BUILT]')\nconst updated = pc.yellow('➜ [UPDATED]')\nconst removed = pc.red('➜ [REMOVED]')\nconst invalidEmit = pc.red('➜ [INVALID EMIT]')\nconst error = pc.red('[ERROR]')\nconst warning = pc.yellow('[WARNING]')\nconst warnIcon = pc.yellow('⚠')\nconst infoIcon = pc.blue('ℹ')\nconst errorIcon = pc.red('✖')\n\nexport class Printer {\n constructor(private readonly baseDir: string) {}\n\n stepTag = stepTag\n flowTag = flowTag\n registered = registered\n building = building\n built = built\n updated = updated\n removed = removed\n\n printEventInputValidationError(\n emit: { topic: string },\n details: { missingFields?: string[]; extraFields?: string[]; typeMismatches?: string[] },\n ) {\n const emitPath = pc.bold(pc.cyan(`Emit ${emit.topic}`))\n\n console.log(`${warnIcon} ${warning} ${emitPath} validation issues:`)\n\n const hasAny = details.missingFields?.length || details.extraFields?.length || details.typeMismatches?.length\n\n if (!hasAny) {\n console.log(`${pc.yellow('│')} No issues found.`)\n console.log(`${pc.yellow('└─')} Validation passed.`)\n return\n }\n\n if (details.missingFields?.length) {\n console.log(`${pc.yellow('│')} ${pc.yellow(`⚠ Missing fields: ${details.missingFields.join(', ')}`)}`)\n }\n\n if (details.extraFields?.length) {\n console.log(`${pc.yellow('│')} ${pc.yellow(`⚠ Extra fields: ${details.extraFields.join(', ')}`)}`)\n }\n\n if (details.typeMismatches?.length) {\n console.log(`${pc.yellow('│')} ${pc.yellow(`⚠ Type mismatches: ${details.typeMismatches.join(', ')}`)}`)\n }\n\n console.log(`${pc.yellow('└─')} ${pc.yellow('Payload does not match schema.')}`)\n }\n\n printInvalidEmit(step: Step, emit: string) {\n console.log(\n `${invalidEmit} ${stepTag} ${this.getStepType(step)} ${this.getStepPath(step)} tried to emit an event not defined in the step config: ${pc.yellow(emit)}`,\n )\n }\n\n printStepCreated(step: Step) {\n console.log(`${registered} ${stepTag} ${this.getStepType(step)} ${this.getStepPath(step)} registered`)\n }\n\n printStepUpdated(step: Step) {\n console.log(`${updated} ${stepTag} ${this.getStepType(step)} ${this.getStepPath(step)} updated`)\n }\n\n printStepRemoved(step: Step) {\n console.log(`${removed} ${stepTag} ${this.getStepType(step)} ${this.getStepPath(step)} removed`)\n }\n\n printFlowCreated(flowName: string) {\n console.log(`${registered} ${flowTag} ${pc.bold(pc.cyan(flowName))} registered`)\n }\n\n printFlowUpdated(flowName: string) {\n console.log(`${updated} ${flowTag} ${pc.bold(pc.cyan(flowName))} updated`)\n }\n\n printFlowRemoved(flowName: string) {\n console.log(`${removed} ${flowTag} ${pc.bold(pc.cyan(flowName))} removed`)\n }\n\n printStreamCreated(stream: Stream) {\n console.log(`${registered} ${streamTag} ${this.getStreamPath(stream)} registered`)\n }\n\n printStreamUpdated(stream: Stream) {\n console.log(`${updated} ${streamTag} ${this.getStreamPath(stream)} updated`)\n }\n\n printStreamRemoved(stream: Stream) {\n console.log(`${removed} ${streamTag} ${this.getStreamPath(stream)} removed`)\n }\n\n printInvalidEmitConfiguration(step: Step, emit: string) {\n console.log(\n `${warnIcon} ${warning} ${stepTag} ${this.getStepType(step)} ${this.getStepPath(step)} emits to ${pc.yellow(emit)}, but there is no subscriber defined`,\n )\n }\n\n printInvalidSchema(topic: string, step: Step[]) {\n console.log(`${error} Topic ${pc.bold(pc.blue(topic))} has incompatible schemas in the following steps:`)\n step.forEach((step) => {\n console.log(`${pc.red(' ✖')} ${this.getStepPath(step)}`)\n })\n }\n\n printValidationError(stepPath: string, validationError: ValidationError) {\n const relativePath = this.getRelativePath(stepPath)\n\n console.log(`${error} ${pc.bold(pc.cyan(relativePath))}`)\n validationError.errors?.forEach((error) => {\n if (error.path) {\n console.log(`${pc.red('│')} ${pc.yellow(`✖ ${error.path}`)}: ${error.message}`)\n } else {\n console.log(`${pc.red('│')} ${pc.yellow('✖')} ${error.message}`)\n }\n })\n console.log(`${pc.red('└─')} ${pc.red(validationError.error)} `)\n }\n\n getRelativePath(filePath: string) {\n return path.relative(this.baseDir, filePath)\n }\n\n getStepType(step: Step) {\n if (isApiStep(step)) return pc.gray('(API)')\n if (isEventStep(step)) return pc.gray('(Event)')\n if (isCronStep(step)) return pc.gray('(Cron)')\n if (isNoopStep(step)) return pc.gray('(Noop)')\n\n return pc.gray('(Unknown)')\n }\n\n getStepPath(step: Step) {\n const stepPath = this.getRelativePath(step.filePath)\n return pc.bold(pc.cyan(stepPath))\n }\n\n getStreamPath(stream: Stream) {\n const streamPath = this.getRelativePath(stream.filePath)\n return pc.bold(pc.magenta(streamPath))\n }\n\n printPluginLog(message: string) {\n const pluginTag = pc.bold(pc.cyan('[motia-plugins]'))\n console.log(`${infoIcon} ${pluginTag} ${message}`)\n }\n\n printPluginWarn(message: string) {\n const pluginTag = pc.bold(pc.cyan('[motia-plugins]'))\n console.warn(`${warnIcon} ${pluginTag} ${pc.yellow(message)}`)\n }\n\n printPluginError(message: string, ...args: unknown[]) {\n const pluginTag = pc.bold(pc.cyan('[motia-plugins]'))\n console.error(`${errorIcon} ${pluginTag} ${pc.red(message)}`, ...args)\n }\n}\n\nexport class NoPrinter extends Printer {\n constructor() {\n super('')\n }\n\n printEventInputValidationError() {}\n\n printInvalidEmit() {}\n printStepCreated() {}\n printStepUpdated() {}\n printStepRemoved() {}\n printFlowCreated() {}\n printFlowUpdated() {}\n printFlowRemoved() {}\n printStepType() {}\n printStepPath() {}\n\n printStreamCreated() {}\n printStreamUpdated() {}\n printStreamRemoved() {}\n\n printPluginLog() {}\n printPluginWarn() {}\n printPluginError() {}\n}\n"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ //#region src/process-communication/communication-config.ts
2
+ function createCommunicationConfig(command, projectRoot) {
3
+ const type = command === "python" && process.platform === "win32" ? "rpc" : "ipc";
4
+ const spawnOptions = { stdio: type === "rpc" ? [
5
+ "pipe",
6
+ "pipe",
7
+ "inherit"
8
+ ] : [
9
+ "inherit",
10
+ "inherit",
11
+ "inherit",
12
+ "ipc"
13
+ ] };
14
+ if (command === "python") spawnOptions.env = {
15
+ ...process.env,
16
+ PYTHONPATH: projectRoot || process.cwd()
17
+ };
18
+ return {
19
+ type,
20
+ spawnOptions
21
+ };
22
+ }
23
+
24
+ //#endregion
25
+ export { createCommunicationConfig };
26
+ //# sourceMappingURL=communication-config.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"communication-config.mjs","names":["spawnOptions: SpawnOptions"],"sources":["../../../src/process-communication/communication-config.ts"],"sourcesContent":["import type { SpawnOptions } from 'child_process'\n\nexport type CommunicationType = 'rpc' | 'ipc'\n\nexport interface CommunicationConfig {\n type: CommunicationType\n spawnOptions: SpawnOptions\n}\n\nexport function createCommunicationConfig(command: string, projectRoot?: string): CommunicationConfig {\n const type = command === 'python' && process.platform === 'win32' ? 'rpc' : 'ipc'\n\n const spawnOptions: SpawnOptions = {\n stdio:\n type === 'rpc'\n ? ['pipe', 'pipe', 'inherit'] // RPC: capture stdout\n : ['inherit', 'inherit', 'inherit', 'ipc'], // IPC: include IPC channel\n }\n\n if (command === 'python') {\n spawnOptions.env = {\n ...process.env,\n PYTHONPATH: projectRoot || process.cwd(),\n }\n }\n\n return { type, spawnOptions }\n}\n"],"mappings":";AASA,SAAgB,0BAA0B,SAAiB,aAA2C;CACpG,MAAM,OAAO,YAAY,YAAY,QAAQ,aAAa,UAAU,QAAQ;CAE5E,MAAMA,eAA6B,EACjC,OACE,SAAS,QACL;EAAC;EAAQ;EAAQ;EAAU,GAC3B;EAAC;EAAW;EAAW;EAAW;EAAM,EAC/C;AAED,KAAI,YAAY,SACd,cAAa,MAAM;EACjB,GAAG,QAAQ;EACX,YAAY,eAAe,QAAQ,KAAK;EACzC;AAGH,QAAO;EAAE;EAAM;EAAc"}