@pixelbyte-software/pixcode 1.54.11 → 1.55.0

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 (331) hide show
  1. package/dist-server/server/claude-sdk.js +1 -1
  2. package/dist-server/server/claude-sdk.js.map +1 -1
  3. package/dist-server/server/index.js +6 -11
  4. package/dist-server/server/index.js.map +1 -1
  5. package/dist-server/server/modules/security/permission-policy.js.map +1 -0
  6. package/dist-server/server/modules/tasks/git-worktree.js +98 -0
  7. package/dist-server/server/modules/tasks/git-worktree.js.map +1 -0
  8. package/dist-server/server/modules/tasks/index.js +8 -0
  9. package/dist-server/server/modules/tasks/index.js.map +1 -0
  10. package/dist-server/server/modules/tasks/prompt-builder.js +85 -0
  11. package/dist-server/server/modules/tasks/prompt-builder.js.map +1 -0
  12. package/dist-server/server/modules/tasks/role-presets.js +94 -0
  13. package/dist-server/server/modules/tasks/role-presets.js.map +1 -0
  14. package/dist-server/server/modules/tasks/runners/claude-runner.js +109 -0
  15. package/dist-server/server/modules/tasks/runners/claude-runner.js.map +1 -0
  16. package/dist-server/server/modules/tasks/runners/codex-runner.js +67 -0
  17. package/dist-server/server/modules/tasks/runners/codex-runner.js.map +1 -0
  18. package/dist-server/server/modules/tasks/runners/spawn-runner.js +111 -0
  19. package/dist-server/server/modules/tasks/runners/spawn-runner.js.map +1 -0
  20. package/dist-server/server/modules/tasks/runners/types.js +5 -0
  21. package/dist-server/server/modules/tasks/runners/types.js.map +1 -0
  22. package/dist-server/server/modules/tasks/scheduler.js +69 -0
  23. package/dist-server/server/modules/tasks/scheduler.js.map +1 -0
  24. package/dist-server/server/modules/tasks/task-queue.js +81 -0
  25. package/dist-server/server/modules/tasks/task-queue.js.map +1 -0
  26. package/dist-server/server/modules/tasks/task-routes.js +195 -0
  27. package/dist-server/server/modules/tasks/task-routes.js.map +1 -0
  28. package/dist-server/server/modules/tasks/task-runner.js +187 -0
  29. package/dist-server/server/modules/tasks/task-runner.js.map +1 -0
  30. package/dist-server/server/modules/tasks/task-store.js +196 -0
  31. package/dist-server/server/modules/tasks/task-store.js.map +1 -0
  32. package/dist-server/server/modules/tasks/task-types.js +5 -0
  33. package/dist-server/server/modules/tasks/task-types.js.map +1 -0
  34. package/dist-server/server/modules/tasks/user-interaction.js +73 -0
  35. package/dist-server/server/modules/tasks/user-interaction.js.map +1 -0
  36. package/dist-server/server/services/control-room.js +9 -1
  37. package/dist-server/server/services/control-room.js.map +1 -1
  38. package/dist-server/server/services/public-api-manifest.js +5 -5
  39. package/dist-server/server/services/public-api-manifest.js.map +1 -1
  40. package/dist-server/server/services/telegram/control-center.js +10 -10
  41. package/dist-server/server/services/telegram/control-center.js.map +1 -1
  42. package/dist-server/server/services/telegram/telegram-gateway.js +2 -2
  43. package/dist-server/server/services/telegram/telegram-gateway.js.map +1 -1
  44. package/dist-server/server/services/telegram/translations.js +5 -5
  45. package/dist-server/server/services/telegram/translations.js.map +1 -1
  46. package/package.json +1 -1
  47. package/server/claude-sdk.js +1 -1
  48. package/server/index.js +6 -23
  49. package/server/modules/tasks/git-worktree.ts +102 -0
  50. package/server/modules/tasks/index.ts +9 -0
  51. package/server/modules/tasks/prompt-builder.ts +98 -0
  52. package/server/modules/tasks/role-presets.ts +113 -0
  53. package/server/modules/tasks/runners/claude-runner.ts +120 -0
  54. package/server/modules/tasks/runners/codex-runner.ts +80 -0
  55. package/server/modules/tasks/runners/spawn-runner.ts +122 -0
  56. package/server/modules/tasks/runners/types.ts +25 -0
  57. package/server/modules/tasks/scheduler.ts +75 -0
  58. package/server/modules/tasks/task-queue.ts +91 -0
  59. package/server/modules/tasks/task-routes.ts +245 -0
  60. package/server/modules/tasks/task-runner.ts +219 -0
  61. package/server/modules/tasks/task-store.ts +223 -0
  62. package/server/modules/tasks/task-types.ts +100 -0
  63. package/server/modules/tasks/user-interaction.ts +93 -0
  64. package/server/services/control-room.js +10 -1
  65. package/server/services/public-api-manifest.js +5 -5
  66. package/server/services/telegram/control-center.js +10 -10
  67. package/server/services/telegram/telegram-gateway.js +2 -2
  68. package/server/services/telegram/translations.js +5 -5
  69. package/dist/api-automation.html +0 -110
  70. package/dist/api-docs.html +0 -548
  71. package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  72. package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  73. package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  74. package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  75. package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  76. package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  77. package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  78. package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  79. package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  80. package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  81. package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  82. package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  83. package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  84. package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  85. package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  86. package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  87. package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  88. package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  89. package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  90. package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  91. package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  92. package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  93. package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  94. package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  95. package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  96. package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  97. package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  98. package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  99. package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  100. package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  101. package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  102. package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  103. package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  104. package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  105. package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  106. package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  107. package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  108. package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  109. package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  110. package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  111. package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  112. package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  113. package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  114. package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  115. package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  116. package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  117. package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  118. package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  119. package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  120. package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  121. package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  122. package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  123. package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  124. package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  125. package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  126. package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  127. package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  128. package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  129. package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  130. package/dist/assets/index-Bcqs_1vc.js +0 -877
  131. package/dist/assets/index-Dz1luE0u.css +0 -32
  132. package/dist/assets/index-ak1p_4ew.js +0 -11
  133. package/dist/assets/localMonaco-DFIbtDNp.js +0 -1
  134. package/dist/assets/vendor-codemirror-CIYNS698.js +0 -41
  135. package/dist/assets/vendor-react-DB6V5Fl1.js +0 -59
  136. package/dist/assets/vendor-xterm-C7tpxJl7.js +0 -9
  137. package/dist/clear-cache.html +0 -85
  138. package/dist/convert-icons.md +0 -53
  139. package/dist/docs.html +0 -308
  140. package/dist/favicon.png +0 -0
  141. package/dist/favicon.svg +0 -8
  142. package/dist/features.html +0 -133
  143. package/dist/generate-icons.js +0 -49
  144. package/dist/humans.txt +0 -15
  145. package/dist/icons/claude-ai-icon.svg +0 -1
  146. package/dist/icons/codex-white.svg +0 -3
  147. package/dist/icons/codex.svg +0 -3
  148. package/dist/icons/cursor-white.svg +0 -12
  149. package/dist/icons/cursor.svg +0 -1
  150. package/dist/icons/gemini-ai-icon.svg +0 -1
  151. package/dist/icons/icon-128x128.png +0 -0
  152. package/dist/icons/icon-128x128.svg +0 -9
  153. package/dist/icons/icon-144x144.png +0 -0
  154. package/dist/icons/icon-144x144.svg +0 -9
  155. package/dist/icons/icon-152x152.png +0 -0
  156. package/dist/icons/icon-152x152.svg +0 -9
  157. package/dist/icons/icon-192x192.png +0 -0
  158. package/dist/icons/icon-192x192.svg +0 -9
  159. package/dist/icons/icon-384x384.png +0 -0
  160. package/dist/icons/icon-384x384.svg +0 -9
  161. package/dist/icons/icon-512x512.png +0 -0
  162. package/dist/icons/icon-512x512.svg +0 -9
  163. package/dist/icons/icon-72x72.png +0 -0
  164. package/dist/icons/icon-72x72.svg +0 -9
  165. package/dist/icons/icon-96x96.png +0 -0
  166. package/dist/icons/icon-96x96.svg +0 -9
  167. package/dist/icons/icon-template.svg +0 -9
  168. package/dist/icons/opencode-logo-dark.svg +0 -1
  169. package/dist/icons/opencode-logo-light.svg +0 -1
  170. package/dist/icons/qwen-ai-icon.png +0 -0
  171. package/dist/icons/qwen-logo.svg +0 -15
  172. package/dist/index.html +0 -62
  173. package/dist/landing.html +0 -268
  174. package/dist/llms-full.txt +0 -119
  175. package/dist/llms.txt +0 -53
  176. package/dist/logo-128.png +0 -0
  177. package/dist/logo-256.png +0 -0
  178. package/dist/logo-32.png +0 -0
  179. package/dist/logo-512.png +0 -0
  180. package/dist/logo-64.png +0 -0
  181. package/dist/logo.png +0 -0
  182. package/dist/logo.svg +0 -12
  183. package/dist/manifest.json +0 -61
  184. package/dist/openapi.yaml +0 -1696
  185. package/dist/orchestration.html +0 -125
  186. package/dist/robots.txt +0 -4
  187. package/dist/screenshots/cli-selection.png +0 -0
  188. package/dist/screenshots/desktop-main.png +0 -0
  189. package/dist/screenshots/mobile-chat.png +0 -0
  190. package/dist/screenshots/tools-modal.png +0 -0
  191. package/dist/site.css +0 -692
  192. package/dist/sitemap.xml +0 -51
  193. package/dist/sw.js +0 -132
  194. package/dist-server/server/modules/orchestration/a2a/adapter-registry.js +0 -73
  195. package/dist-server/server/modules/orchestration/a2a/adapter-registry.js.map +0 -1
  196. package/dist-server/server/modules/orchestration/a2a/adapters/abstract-a2a.adapter.js +0 -17
  197. package/dist-server/server/modules/orchestration/a2a/adapters/abstract-a2a.adapter.js.map +0 -1
  198. package/dist-server/server/modules/orchestration/a2a/adapters/claude-code.adapter.js +0 -236
  199. package/dist-server/server/modules/orchestration/a2a/adapters/claude-code.adapter.js.map +0 -1
  200. package/dist-server/server/modules/orchestration/a2a/adapters/codex.adapter.js +0 -202
  201. package/dist-server/server/modules/orchestration/a2a/adapters/codex.adapter.js.map +0 -1
  202. package/dist-server/server/modules/orchestration/a2a/adapters/cursor.adapter.js +0 -205
  203. package/dist-server/server/modules/orchestration/a2a/adapters/cursor.adapter.js.map +0 -1
  204. package/dist-server/server/modules/orchestration/a2a/adapters/gemini.adapter.js +0 -205
  205. package/dist-server/server/modules/orchestration/a2a/adapters/gemini.adapter.js.map +0 -1
  206. package/dist-server/server/modules/orchestration/a2a/adapters/json-event.adapter.js +0 -84
  207. package/dist-server/server/modules/orchestration/a2a/adapters/json-event.adapter.js.map +0 -1
  208. package/dist-server/server/modules/orchestration/a2a/adapters/json-event.adapter.test.js +0 -43
  209. package/dist-server/server/modules/orchestration/a2a/adapters/json-event.adapter.test.js.map +0 -1
  210. package/dist-server/server/modules/orchestration/a2a/adapters/opencode.adapter.js +0 -205
  211. package/dist-server/server/modules/orchestration/a2a/adapters/opencode.adapter.js.map +0 -1
  212. package/dist-server/server/modules/orchestration/a2a/adapters/qwen.adapter.js +0 -205
  213. package/dist-server/server/modules/orchestration/a2a/adapters/qwen.adapter.js.map +0 -1
  214. package/dist-server/server/modules/orchestration/a2a/agent-card.js +0 -50
  215. package/dist-server/server/modules/orchestration/a2a/agent-card.js.map +0 -1
  216. package/dist-server/server/modules/orchestration/a2a/auth.middleware.js +0 -25
  217. package/dist-server/server/modules/orchestration/a2a/auth.middleware.js.map +0 -1
  218. package/dist-server/server/modules/orchestration/a2a/bus.js +0 -34
  219. package/dist-server/server/modules/orchestration/a2a/bus.js.map +0 -1
  220. package/dist-server/server/modules/orchestration/a2a/routes.js +0 -502
  221. package/dist-server/server/modules/orchestration/a2a/routes.js.map +0 -1
  222. package/dist-server/server/modules/orchestration/a2a/task-dispatcher.js +0 -295
  223. package/dist-server/server/modules/orchestration/a2a/task-dispatcher.js.map +0 -1
  224. package/dist-server/server/modules/orchestration/a2a/task-store.js +0 -144
  225. package/dist-server/server/modules/orchestration/a2a/task-store.js.map +0 -1
  226. package/dist-server/server/modules/orchestration/a2a/types.js +0 -6
  227. package/dist-server/server/modules/orchestration/a2a/types.js.map +0 -1
  228. package/dist-server/server/modules/orchestration/a2a/validator.js +0 -101
  229. package/dist-server/server/modules/orchestration/a2a/validator.js.map +0 -1
  230. package/dist-server/server/modules/orchestration/index.js +0 -27
  231. package/dist-server/server/modules/orchestration/index.js.map +0 -1
  232. package/dist-server/server/modules/orchestration/preview/port-watcher.js +0 -90
  233. package/dist-server/server/modules/orchestration/preview/port-watcher.js.map +0 -1
  234. package/dist-server/server/modules/orchestration/preview/preview-proxy.js +0 -58
  235. package/dist-server/server/modules/orchestration/preview/preview-proxy.js.map +0 -1
  236. package/dist-server/server/modules/orchestration/preview/types.js +0 -2
  237. package/dist-server/server/modules/orchestration/preview/types.js.map +0 -1
  238. package/dist-server/server/modules/orchestration/security/permission-policy.js.map +0 -1
  239. package/dist-server/server/modules/orchestration/tasks/orchestration-task-store.js +0 -34
  240. package/dist-server/server/modules/orchestration/tasks/orchestration-task-store.js.map +0 -1
  241. package/dist-server/server/modules/orchestration/tasks/orchestration-task.routes.js +0 -70
  242. package/dist-server/server/modules/orchestration/tasks/orchestration-task.routes.js.map +0 -1
  243. package/dist-server/server/modules/orchestration/tasks/orchestration-task.service.js +0 -181
  244. package/dist-server/server/modules/orchestration/tasks/orchestration-task.service.js.map +0 -1
  245. package/dist-server/server/modules/orchestration/tasks/orchestration-task.types.js +0 -2
  246. package/dist-server/server/modules/orchestration/tasks/orchestration-task.types.js.map +0 -1
  247. package/dist-server/server/modules/orchestration/tasks/task-run-graph.js +0 -100
  248. package/dist-server/server/modules/orchestration/tasks/task-run-graph.js.map +0 -1
  249. package/dist-server/server/modules/orchestration/workflows/approval-queue.js +0 -72
  250. package/dist-server/server/modules/orchestration/workflows/approval-queue.js.map +0 -1
  251. package/dist-server/server/modules/orchestration/workflows/built-in-workflows.js +0 -126
  252. package/dist-server/server/modules/orchestration/workflows/built-in-workflows.js.map +0 -1
  253. package/dist-server/server/modules/orchestration/workflows/context-packet.js +0 -89
  254. package/dist-server/server/modules/orchestration/workflows/context-packet.js.map +0 -1
  255. package/dist-server/server/modules/orchestration/workflows/handoff-artifact.js +0 -123
  256. package/dist-server/server/modules/orchestration/workflows/handoff-artifact.js.map +0 -1
  257. package/dist-server/server/modules/orchestration/workflows/workflow-fallback-policy.js +0 -114
  258. package/dist-server/server/modules/orchestration/workflows/workflow-fallback-policy.js.map +0 -1
  259. package/dist-server/server/modules/orchestration/workflows/workflow-replay.js +0 -177
  260. package/dist-server/server/modules/orchestration/workflows/workflow-replay.js.map +0 -1
  261. package/dist-server/server/modules/orchestration/workflows/workflow-runner.js +0 -1718
  262. package/dist-server/server/modules/orchestration/workflows/workflow-runner.js.map +0 -1
  263. package/dist-server/server/modules/orchestration/workflows/workflow-store.js +0 -76
  264. package/dist-server/server/modules/orchestration/workflows/workflow-store.js.map +0 -1
  265. package/dist-server/server/modules/orchestration/workflows/workflow-templates.js +0 -242
  266. package/dist-server/server/modules/orchestration/workflows/workflow-templates.js.map +0 -1
  267. package/dist-server/server/modules/orchestration/workflows/workflow-trace.js +0 -388
  268. package/dist-server/server/modules/orchestration/workflows/workflow-trace.js.map +0 -1
  269. package/dist-server/server/modules/orchestration/workflows/workflow.routes.js +0 -508
  270. package/dist-server/server/modules/orchestration/workflows/workflow.routes.js.map +0 -1
  271. package/dist-server/server/modules/orchestration/workflows/workflow.types.js +0 -2
  272. package/dist-server/server/modules/orchestration/workflows/workflow.types.js.map +0 -1
  273. package/dist-server/server/modules/orchestration/workflows/workspace-target.js +0 -100
  274. package/dist-server/server/modules/orchestration/workflows/workspace-target.js.map +0 -1
  275. package/dist-server/server/modules/orchestration/workspace/docker-workspace.js +0 -123
  276. package/dist-server/server/modules/orchestration/workspace/docker-workspace.js.map +0 -1
  277. package/dist-server/server/modules/orchestration/workspace/path-safety.js +0 -48
  278. package/dist-server/server/modules/orchestration/workspace/path-safety.js.map +0 -1
  279. package/dist-server/server/modules/orchestration/workspace/types.js +0 -11
  280. package/dist-server/server/modules/orchestration/workspace/types.js.map +0 -1
  281. package/dist-server/server/modules/orchestration/workspace/workspace-manager.js +0 -84
  282. package/dist-server/server/modules/orchestration/workspace/workspace-manager.js.map +0 -1
  283. package/dist-server/server/modules/orchestration/workspace/worktree-workspace.js +0 -97
  284. package/dist-server/server/modules/orchestration/workspace/worktree-workspace.js.map +0 -1
  285. package/server/modules/orchestration/a2a/adapter-registry.ts +0 -108
  286. package/server/modules/orchestration/a2a/adapters/abstract-a2a.adapter.ts +0 -63
  287. package/server/modules/orchestration/a2a/adapters/claude-code.adapter.ts +0 -286
  288. package/server/modules/orchestration/a2a/adapters/codex.adapter.ts +0 -244
  289. package/server/modules/orchestration/a2a/adapters/cursor.adapter.ts +0 -249
  290. package/server/modules/orchestration/a2a/adapters/gemini.adapter.ts +0 -248
  291. package/server/modules/orchestration/a2a/adapters/json-event.adapter.test.ts +0 -60
  292. package/server/modules/orchestration/a2a/adapters/json-event.adapter.ts +0 -101
  293. package/server/modules/orchestration/a2a/adapters/opencode.adapter.ts +0 -248
  294. package/server/modules/orchestration/a2a/adapters/qwen.adapter.ts +0 -248
  295. package/server/modules/orchestration/a2a/agent-card.ts +0 -55
  296. package/server/modules/orchestration/a2a/auth.middleware.ts +0 -29
  297. package/server/modules/orchestration/a2a/bus.ts +0 -46
  298. package/server/modules/orchestration/a2a/routes.ts +0 -586
  299. package/server/modules/orchestration/a2a/task-dispatcher.ts +0 -345
  300. package/server/modules/orchestration/a2a/task-store.ts +0 -178
  301. package/server/modules/orchestration/a2a/types.ts +0 -126
  302. package/server/modules/orchestration/a2a/validator.ts +0 -113
  303. package/server/modules/orchestration/index.ts +0 -99
  304. package/server/modules/orchestration/preview/port-watcher.ts +0 -112
  305. package/server/modules/orchestration/preview/preview-proxy.ts +0 -60
  306. package/server/modules/orchestration/preview/types.ts +0 -19
  307. package/server/modules/orchestration/tasks/orchestration-task-store.ts +0 -41
  308. package/server/modules/orchestration/tasks/orchestration-task.routes.ts +0 -81
  309. package/server/modules/orchestration/tasks/orchestration-task.service.ts +0 -201
  310. package/server/modules/orchestration/tasks/orchestration-task.types.ts +0 -40
  311. package/server/modules/orchestration/tasks/task-run-graph.ts +0 -155
  312. package/server/modules/orchestration/workflows/approval-queue.ts +0 -106
  313. package/server/modules/orchestration/workflows/built-in-workflows.ts +0 -127
  314. package/server/modules/orchestration/workflows/context-packet.ts +0 -186
  315. package/server/modules/orchestration/workflows/handoff-artifact.ts +0 -175
  316. package/server/modules/orchestration/workflows/workflow-fallback-policy.ts +0 -161
  317. package/server/modules/orchestration/workflows/workflow-replay.ts +0 -254
  318. package/server/modules/orchestration/workflows/workflow-runner.ts +0 -2062
  319. package/server/modules/orchestration/workflows/workflow-store.ts +0 -97
  320. package/server/modules/orchestration/workflows/workflow-templates.ts +0 -272
  321. package/server/modules/orchestration/workflows/workflow-trace.ts +0 -424
  322. package/server/modules/orchestration/workflows/workflow.routes.ts +0 -586
  323. package/server/modules/orchestration/workflows/workflow.types.ts +0 -111
  324. package/server/modules/orchestration/workflows/workspace-target.ts +0 -122
  325. package/server/modules/orchestration/workspace/docker-workspace.ts +0 -136
  326. package/server/modules/orchestration/workspace/path-safety.ts +0 -55
  327. package/server/modules/orchestration/workspace/types.ts +0 -52
  328. package/server/modules/orchestration/workspace/workspace-manager.ts +0 -102
  329. package/server/modules/orchestration/workspace/worktree-workspace.ts +0 -126
  330. /package/dist-server/server/modules/{orchestration/security → security}/permission-policy.js +0 -0
  331. /package/server/modules/{orchestration/security → security}/permission-policy.ts +0 -0
@@ -1,388 +0,0 @@
1
- import os from 'node:os';
2
- const MAX_TRACE_TEXT_CHARS = 2_400;
3
- const TERMINAL_STATES = new Set(['completed', 'failed', 'canceled', 'skipped']);
4
- function traceId(parts) {
5
- return parts.filter((part) => part !== undefined && part !== '').join(':');
6
- }
7
- function durationMs(startedAt, finishedAt) {
8
- if (!startedAt || !finishedAt)
9
- return undefined;
10
- return Math.max(0, finishedAt - startedAt);
11
- }
12
- function readString(value) {
13
- return typeof value === 'string' && value.trim() ? value : undefined;
14
- }
15
- function readRecord(value) {
16
- return value && typeof value === 'object' ? value : undefined;
17
- }
18
- function redactionValues(run) {
19
- const metadata = run.metadata ?? {};
20
- const workspaceTarget = metadata.workspaceTarget && typeof metadata.workspaceTarget === 'object'
21
- ? metadata.workspaceTarget
22
- : {};
23
- return [
24
- os.homedir(),
25
- readString(metadata.projectPath),
26
- readString(metadata.selectedProjectPath),
27
- readString(workspaceTarget.path),
28
- readString(workspaceTarget.projectPath),
29
- readString(workspaceTarget.selectedProjectPath),
30
- ].filter((value) => Boolean(value && value.length > 2));
31
- }
32
- function escapeRegExp(value) {
33
- return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
34
- }
35
- export function redactTraceText(value, run, maxLength = MAX_TRACE_TEXT_CHARS) {
36
- if (!value?.trim())
37
- return undefined;
38
- let text = value;
39
- for (const secret of redactionValues(run)) {
40
- text = text.replace(new RegExp(escapeRegExp(secret), 'g'), '[workspace]');
41
- }
42
- text = text
43
- .replace(/\b(?:sk|ghp|github_pat|glpat|npm)_[A-Za-z0-9_=-]{12,}\b/gu, '[redacted-token]')
44
- .replace(/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/gu, '[redacted-email]')
45
- .trim();
46
- if (text.length <= maxLength)
47
- return text;
48
- return `${text.slice(0, maxLength - 32).trimEnd()}\n...[trace truncated]`;
49
- }
50
- function eventBase(node) {
51
- if (!node) {
52
- return { actor: 'Pixcode' };
53
- }
54
- return {
55
- actor: node.agentLabel || node.adapterId || node.nodeId,
56
- nodeId: node.nodeId,
57
- adapterId: node.adapterId,
58
- agentInstanceId: node.agentInstanceId,
59
- agentLabel: node.agentLabel,
60
- model: node.model,
61
- };
62
- }
63
- function pushEvent(events, event) {
64
- events.push(event);
65
- }
66
- function artifactTitleKey(type) {
67
- if (type === 'file-diff')
68
- return 'workflow.trace.fileChanged';
69
- if (type === 'preview-url')
70
- return 'workflow.trace.previewReady';
71
- if (type === 'command-output')
72
- return 'workflow.trace.commandOutput';
73
- if (type === 'handoff-artifact')
74
- return 'workflow.trace.handoffArtifact';
75
- return 'workflow.trace.artifact';
76
- }
77
- function artifactType(type) {
78
- return type === 'file-diff' ? 'file' : 'artifact';
79
- }
80
- function artifactTitle(type) {
81
- if (type === 'file-diff')
82
- return 'File changes captured';
83
- if (type === 'preview-url')
84
- return 'Preview output captured';
85
- if (type === 'command-output')
86
- return 'Command output captured';
87
- if (type === 'handoff-artifact')
88
- return 'Handoff artifact captured';
89
- return 'Artifact captured';
90
- }
91
- function artifactSummary(artifact, run) {
92
- if (artifact.text?.trim()) {
93
- return redactTraceText(artifact.text, run);
94
- }
95
- if (artifact.data && Object.keys(artifact.data).length > 0) {
96
- return redactTraceText(JSON.stringify(artifact.data, null, 2), run);
97
- }
98
- return artifact.type;
99
- }
100
- function nodeTimestamp(run, node, index) {
101
- return node.startedAt ?? run.startedAt + index;
102
- }
103
- export function buildWorkflowTrace(run) {
104
- const events = [];
105
- pushEvent(events, {
106
- id: traceId([run.id, 'run-started']),
107
- type: 'run',
108
- severity: 'info',
109
- status: run.status,
110
- timestamp: run.startedAt,
111
- durationMs: durationMs(run.startedAt, run.finishedAt),
112
- actor: 'Pixcode',
113
- title: 'Workflow run started',
114
- titleKey: 'workflow.trace.runStarted',
115
- summary: redactTraceText(run.input, run),
116
- metadata: {
117
- workflowId: run.workflowId,
118
- contextId: run.contextId,
119
- },
120
- });
121
- const replay = readRecord(run.metadata?.replay);
122
- if (replay) {
123
- pushEvent(events, {
124
- id: traceId([run.id, 'replay']),
125
- type: 'run',
126
- severity: replay.requiresApproval ? 'warning' : 'info',
127
- status: run.status,
128
- timestamp: run.startedAt + 0.25,
129
- actor: 'Pixcode',
130
- title: 'Workflow replay prepared',
131
- titleKey: 'workflow.trace.replay',
132
- summary: redactTraceText([
133
- `Source run: ${readString(replay.sourceRunId) ?? 'unknown'}`,
134
- `Scope: ${readString(replay.scope) ?? 'unknown'}`,
135
- Array.isArray(replay.selectedNodeIds) ? `Selected steps: ${replay.selectedNodeIds.join(', ')}` : undefined,
136
- replay.requiresApproval ? 'Replay required approval for prior shell, network, or file-write activity.' : undefined,
137
- ].filter(Boolean).join('\n'), run),
138
- metadata: replay,
139
- });
140
- }
141
- const workflowTemplate = readRecord(run.metadata?.workflowTemplate);
142
- if (workflowTemplate) {
143
- pushEvent(events, {
144
- id: traceId([run.id, 'workflow-template']),
145
- type: 'run',
146
- severity: 'info',
147
- status: run.status,
148
- timestamp: run.startedAt + 0.3,
149
- actor: 'Pixcode',
150
- title: 'Workflow template applied',
151
- titleKey: 'workflow.trace.template',
152
- summary: redactTraceText([
153
- `Template: ${readString(workflowTemplate.name) ?? readString(workflowTemplate.id) ?? 'unknown'}`,
154
- `Protocol: ${readString(workflowTemplate.protocol) ?? 'unknown'}`,
155
- Array.isArray(workflowTemplate.acceptanceCriteria)
156
- ? `Acceptance criteria:\n- ${workflowTemplate.acceptanceCriteria.filter((item) => typeof item === 'string').join('\n- ')}`
157
- : undefined,
158
- ].filter(Boolean).join('\n'), run),
159
- metadata: workflowTemplate,
160
- });
161
- }
162
- const fallbackEvents = Array.isArray(run.metadata?.fallbackEvents)
163
- ? run.metadata.fallbackEvents
164
- : [];
165
- fallbackEvents.forEach((event, index) => {
166
- const record = readRecord(event);
167
- if (!record)
168
- return;
169
- pushEvent(events, {
170
- id: traceId([run.id, 'fallback', index]),
171
- type: 'node',
172
- severity: 'warning',
173
- status: 'submitted',
174
- timestamp: typeof record.startedAt === 'number' ? record.startedAt : run.startedAt + 0.5 + index,
175
- actor: 'Pixcode',
176
- nodeId: readString(record.nodeId),
177
- title: 'Fallback agent started',
178
- titleKey: 'workflow.trace.fallback',
179
- summary: redactTraceText([
180
- `Trigger: ${readString(record.trigger) ?? 'unknown'}`,
181
- `Source node: ${readString(record.nodeId) ?? 'unknown'}`,
182
- `Fallback node: ${readString(record.fallbackNodeId) ?? 'unknown'}`,
183
- readString(record.reason) ? `Reason: ${readString(record.reason)}` : undefined,
184
- ].filter(Boolean).join('\n'), run),
185
- metadata: record,
186
- });
187
- });
188
- const fallbackSkippedEvents = Array.isArray(run.metadata?.fallbackSkippedEvents)
189
- ? run.metadata.fallbackSkippedEvents
190
- : [];
191
- fallbackSkippedEvents.forEach((event, index) => {
192
- const record = readRecord(event);
193
- if (!record)
194
- return;
195
- pushEvent(events, {
196
- id: traceId([run.id, 'fallback-skipped', index]),
197
- type: 'node',
198
- severity: 'info',
199
- status: 'skipped',
200
- timestamp: typeof record.createdAt === 'number' ? record.createdAt : run.startedAt + 0.75 + index,
201
- actor: 'Pixcode',
202
- nodeId: readString(record.nodeId),
203
- title: 'Fallback skipped',
204
- titleKey: 'workflow.trace.fallback',
205
- summary: redactTraceText([
206
- `Trigger: ${readString(record.trigger) ?? 'unknown'}`,
207
- `Skipped: ${readString(record.skippedReason) ?? 'policy did not allow fallback'}`,
208
- readString(record.reason) ? `Reason: ${readString(record.reason)}` : undefined,
209
- ].filter(Boolean).join('\n'), run),
210
- metadata: record,
211
- });
212
- });
213
- const permissionPolicyEvents = Array.isArray(run.metadata?.permissionPolicyEvents)
214
- ? run.metadata.permissionPolicyEvents
215
- : [];
216
- permissionPolicyEvents.forEach((event, index) => {
217
- const record = readRecord(event);
218
- if (!record)
219
- return;
220
- const behavior = readString(record.behavior);
221
- const capabilities = Array.isArray(record.capabilities)
222
- ? record.capabilities.filter((item) => typeof item === 'string')
223
- : [];
224
- pushEvent(events, {
225
- id: traceId([run.id, 'permission-policy', readString(record.id) ?? index]),
226
- type: 'permission_policy',
227
- severity: behavior === 'deny' ? 'error' : behavior === 'prompt' ? 'warning' : 'info',
228
- status: behavior === 'deny' ? 'failed' : behavior === 'prompt' ? 'submitted' : 'completed',
229
- timestamp: typeof record.createdAt === 'number' ? record.createdAt : run.startedAt + 0.85 + index,
230
- actor: 'Pixcode',
231
- nodeId: readString(record.nodeId),
232
- adapterId: readString(record.adapterId),
233
- agentLabel: readString(record.agentLabel),
234
- title: 'Permission policy decision',
235
- titleKey: 'workflow.trace.permissionPolicy',
236
- summary: redactTraceText([
237
- `Decision: ${behavior ?? readString(record.status) ?? 'unknown'}`,
238
- capabilities.length > 0 ? `Capabilities: ${capabilities.join(', ')}` : undefined,
239
- readString(record.summary),
240
- readString(record.message),
241
- ].filter(Boolean).join('\n'), run),
242
- metadata: record,
243
- });
244
- });
245
- run.nodeRuns.forEach((node, index) => {
246
- const base = eventBase(node);
247
- const timestamp = nodeTimestamp(run, node, index);
248
- const nodeDuration = durationMs(node.startedAt, node.finishedAt);
249
- pushEvent(events, {
250
- id: traceId([run.id, node.nodeId, 'node']),
251
- type: 'node',
252
- severity: node.status === 'failed' ? 'error' : 'info',
253
- status: node.status,
254
- timestamp,
255
- durationMs: nodeDuration,
256
- ...base,
257
- title: TERMINAL_STATES.has(node.status) ? 'Workflow step finished' : 'Workflow step started',
258
- titleKey: TERMINAL_STATES.has(node.status) ? 'workflow.trace.nodeFinished' : 'workflow.trace.nodeStarted',
259
- summary: redactTraceText(node.assignment, run),
260
- metadata: {
261
- stage: node.stage,
262
- internal: node.internal,
263
- },
264
- });
265
- if (node.promptPreview) {
266
- pushEvent(events, {
267
- id: traceId([run.id, node.nodeId, 'prompt']),
268
- type: 'message',
269
- severity: 'info',
270
- status: node.status,
271
- timestamp: timestamp + 1,
272
- ...base,
273
- title: 'Prompt prepared',
274
- titleKey: 'workflow.trace.prompt',
275
- summary: redactTraceText(node.promptPreview, run),
276
- });
277
- }
278
- if (node.contextPacket) {
279
- pushEvent(events, {
280
- id: traceId([run.id, node.nodeId, 'context-packet']),
281
- type: 'message',
282
- severity: node.contextPacket.compaction.wasCompacted ? 'warning' : 'info',
283
- status: node.status,
284
- timestamp: timestamp + 1.5,
285
- ...base,
286
- title: 'Context packet prepared',
287
- titleKey: 'workflow.trace.contextPacket',
288
- summary: node.contextPacket.compaction.wasCompacted
289
- ? `Context compacted by ${node.contextPacket.compaction.omittedChars} characters`
290
- : 'Context packet prepared without compaction',
291
- metadata: {
292
- protocol: node.contextPacket.protocol,
293
- compaction: node.contextPacket.compaction,
294
- upstreamArtifactCount: node.contextPacket.upstreamArtifacts.length,
295
- sourceNodeIds: node.contextPacket.upstreamArtifacts.flatMap((artifact) => artifact.sourceNodeIds),
296
- },
297
- });
298
- }
299
- if (node.adapterId || node.model) {
300
- pushEvent(events, {
301
- id: traceId([run.id, node.nodeId, 'provider']),
302
- type: 'provider',
303
- severity: node.status === 'failed' ? 'error' : 'info',
304
- status: node.a2aTaskId ? 'submitted' : node.status,
305
- timestamp: timestamp + 2,
306
- durationMs: nodeDuration,
307
- ...base,
308
- title: 'Provider call',
309
- titleKey: 'workflow.trace.providerCall',
310
- summary: [node.adapterId, node.model].filter(Boolean).join(' / '),
311
- metadata: {
312
- a2aTaskId: node.a2aTaskId,
313
- permissionMode: node.permissionMode,
314
- timeoutMs: node.timeoutMs,
315
- },
316
- });
317
- }
318
- (node.messages ?? [])
319
- .filter((message) => message.role !== 'user' && message.text.trim())
320
- .forEach((message, messageIndex) => {
321
- pushEvent(events, {
322
- id: traceId([run.id, node.nodeId, 'message', messageIndex]),
323
- type: 'message',
324
- severity: 'info',
325
- status: node.status,
326
- timestamp: message.createdAt ?? timestamp + 10 + messageIndex,
327
- ...base,
328
- title: 'Agent message',
329
- titleKey: 'workflow.trace.agentMessage',
330
- summary: redactTraceText(message.text, run),
331
- metadata: {
332
- role: message.role,
333
- },
334
- });
335
- });
336
- (node.artifacts ?? []).forEach((artifact, artifactIndex) => {
337
- pushEvent(events, {
338
- id: traceId([run.id, node.nodeId, 'artifact', artifactIndex]),
339
- type: artifactType(artifact.type),
340
- severity: 'info',
341
- status: node.status,
342
- timestamp: node.finishedAt ?? timestamp + 20 + artifactIndex,
343
- ...base,
344
- title: artifactTitle(artifact.type),
345
- titleKey: artifactTitleKey(artifact.type),
346
- summary: artifactSummary(artifact, run),
347
- metadata: {
348
- artifactType: artifact.type,
349
- artifactMetadata: artifact.metadata,
350
- },
351
- });
352
- });
353
- if (node.error) {
354
- pushEvent(events, {
355
- id: traceId([run.id, node.nodeId, 'error']),
356
- type: 'error',
357
- severity: 'error',
358
- status: node.status,
359
- timestamp: node.finishedAt ?? timestamp + 30,
360
- durationMs: nodeDuration,
361
- ...base,
362
- title: 'Step error',
363
- titleKey: 'workflow.trace.error',
364
- summary: redactTraceText(node.error, run),
365
- });
366
- }
367
- });
368
- if (run.finishedAt) {
369
- pushEvent(events, {
370
- id: traceId([run.id, 'run-finished']),
371
- type: 'run',
372
- severity: run.status === 'failed' ? 'error' : 'info',
373
- status: run.status,
374
- timestamp: run.finishedAt,
375
- durationMs: durationMs(run.startedAt, run.finishedAt),
376
- actor: 'Pixcode',
377
- title: 'Workflow run finished',
378
- titleKey: 'workflow.trace.runFinished',
379
- summary: redactTraceText(readString(run.metadata?.error), run),
380
- metadata: {
381
- workflowId: run.workflowId,
382
- contextId: run.contextId,
383
- },
384
- });
385
- }
386
- return events.sort((a, b) => a.timestamp - b.timestamp || a.id.localeCompare(b.id));
387
- }
388
- //# sourceMappingURL=workflow-trace.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-trace.js","sourceRoot":"","sources":["../../../../../server/modules/orchestration/workflows/workflow-trace.ts"],"names":[],"mappings":"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"}