@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,186 +0,0 @@
1
- import type { ResolvedWorkspaceTarget } from '@/modules/orchestration/workflows/workspace-target.js';
2
-
3
- export const PIXCODE_CONTEXT_PROTOCOL = 'pixcode.context.v1' as const;
4
- export const MAX_CONTEXT_PACKET_TEXT_CHARS = 16_000;
5
-
6
- export interface WorkflowContextPacket {
7
- protocol: typeof PIXCODE_CONTEXT_PROTOCOL;
8
- originalUserRequest: string;
9
- project: {
10
- kind: string;
11
- label: string;
12
- selectedProjectName?: string;
13
- };
14
- task: {
15
- workflowId: string;
16
- workflowRunId: string;
17
- nodeId: string;
18
- stage?: string;
19
- assignment?: string;
20
- stepInstructions: string;
21
- };
22
- constraints: {
23
- adapterId?: string;
24
- agentLabel?: string;
25
- model?: string;
26
- permissionMode?: string;
27
- isolation?: string;
28
- toolsSettings?: Record<string, unknown>;
29
- };
30
- upstreamArtifacts: Array<{
31
- type: 'upstream-context';
32
- text: string;
33
- sourceNodeIds: string[];
34
- }>;
35
- runState: {
36
- status: string;
37
- startedAt: number;
38
- nodeCount: number;
39
- completedNodeIds: string[];
40
- runningNodeIds: string[];
41
- };
42
- compaction: {
43
- maxChars: number;
44
- originalChars: number;
45
- compactedChars: number;
46
- omittedChars: number;
47
- wasCompacted: boolean;
48
- };
49
- createdAt: string;
50
- }
51
-
52
- type ContextPacketRun = {
53
- id: string;
54
- workflowId: string;
55
- status: string;
56
- input?: string;
57
- startedAt: number;
58
- nodeRuns: Array<{
59
- nodeId: string;
60
- status: string;
61
- }>;
62
- };
63
-
64
- type ContextPacketNode = {
65
- id: string;
66
- adapterId?: string;
67
- agentLabel?: string;
68
- assignment?: string;
69
- prompt: string;
70
- stage?: string;
71
- model?: string;
72
- permissionMode?: string;
73
- toolsSettings?: Record<string, unknown>;
74
- isolation?: string;
75
- };
76
-
77
- export type BuildWorkflowContextPacketInput = {
78
- run: ContextPacketRun;
79
- node: ContextPacketNode;
80
- workspaceTarget: ResolvedWorkspaceTarget;
81
- inputContext: string;
82
- inputNodeIds: string[];
83
- };
84
-
85
- function compactContextText(text: string): {
86
- text: string;
87
- originalChars: number;
88
- compactedChars: number;
89
- omittedChars: number;
90
- wasCompacted: boolean;
91
- } {
92
- const originalChars = text.length;
93
- if (originalChars <= MAX_CONTEXT_PACKET_TEXT_CHARS) {
94
- return {
95
- text,
96
- originalChars,
97
- compactedChars: originalChars,
98
- omittedChars: 0,
99
- wasCompacted: false,
100
- };
101
- }
102
-
103
- const edge = Math.floor(MAX_CONTEXT_PACKET_TEXT_CHARS / 2);
104
- const omittedChars = originalChars - MAX_CONTEXT_PACKET_TEXT_CHARS;
105
- const compacted = [
106
- text.slice(0, edge),
107
- `\n\n[...${omittedChars} characters omitted from upstream context packet...]\n\n`,
108
- text.slice(-edge),
109
- ].join('');
110
-
111
- return {
112
- text: compacted,
113
- originalChars,
114
- compactedChars: compacted.length,
115
- omittedChars,
116
- wasCompacted: true,
117
- };
118
- }
119
-
120
- export function buildWorkflowContextPacket({
121
- run,
122
- node,
123
- workspaceTarget,
124
- inputContext,
125
- inputNodeIds,
126
- }: BuildWorkflowContextPacketInput): WorkflowContextPacket {
127
- const compacted = compactContextText(inputContext);
128
- return {
129
- protocol: PIXCODE_CONTEXT_PROTOCOL,
130
- originalUserRequest: run.input?.trim() || '(No original user request was provided.)',
131
- project: {
132
- kind: workspaceTarget.kind,
133
- label: workspaceTarget.label,
134
- selectedProjectName: workspaceTarget.selectedProjectName,
135
- },
136
- task: {
137
- workflowId: run.workflowId,
138
- workflowRunId: run.id,
139
- nodeId: node.id,
140
- stage: node.stage,
141
- assignment: node.assignment,
142
- stepInstructions: node.prompt,
143
- },
144
- constraints: {
145
- adapterId: node.adapterId,
146
- agentLabel: node.agentLabel,
147
- model: node.model,
148
- permissionMode: node.permissionMode,
149
- isolation: node.isolation,
150
- toolsSettings: node.toolsSettings,
151
- },
152
- upstreamArtifacts: compacted.text
153
- ? [{
154
- type: 'upstream-context',
155
- text: compacted.text,
156
- sourceNodeIds: inputNodeIds,
157
- }]
158
- : [],
159
- runState: {
160
- status: run.status,
161
- startedAt: run.startedAt,
162
- nodeCount: run.nodeRuns.length,
163
- completedNodeIds: run.nodeRuns
164
- .filter((nodeRun) => nodeRun.status === 'completed')
165
- .map((nodeRun) => nodeRun.nodeId),
166
- runningNodeIds: run.nodeRuns
167
- .filter((nodeRun) => nodeRun.status === 'running')
168
- .map((nodeRun) => nodeRun.nodeId),
169
- },
170
- compaction: {
171
- maxChars: MAX_CONTEXT_PACKET_TEXT_CHARS,
172
- originalChars: compacted.originalChars,
173
- compactedChars: compacted.compactedChars,
174
- omittedChars: compacted.omittedChars,
175
- wasCompacted: compacted.wasCompacted,
176
- },
177
- createdAt: new Date().toISOString(),
178
- };
179
- }
180
-
181
- export function formatContextPacketForPrompt(packet: WorkflowContextPacket): string {
182
- return [
183
- `Pixcode standardized init context packet (${PIXCODE_CONTEXT_PROTOCOL}):`,
184
- JSON.stringify(packet, null, 2),
185
- ].join('\n');
186
- }
@@ -1,175 +0,0 @@
1
- export const PIXCODE_HANDOFF_PROTOCOL = 'pixcode.handoff.v1' as const;
2
-
3
- export type WorkflowHandoffTaskStatus =
4
- | 'ready'
5
- | 'completed'
6
- | 'blocked'
7
- | 'failed'
8
- | 'needs-review';
9
-
10
- export interface WorkflowHandoffArtifact {
11
- protocol: typeof PIXCODE_HANDOFF_PROTOCOL;
12
- taskStatus: WorkflowHandoffTaskStatus;
13
- contextSummary: string;
14
- taskResult: string;
15
- changedFiles: string[];
16
- blockers: string[];
17
- risks: string[];
18
- nextAction: string;
19
- nextInstructions: string;
20
- producedBy?: {
21
- workflowRunId?: string;
22
- nodeId?: string;
23
- agentLabel?: string;
24
- stage?: string;
25
- };
26
- createdAt: string;
27
- }
28
-
29
- export type HandoffArtifactParseResult =
30
- | { ok: true; artifact: WorkflowHandoffArtifact }
31
- | { ok: false; error: string };
32
-
33
- type HandoffArtifactMetadata = {
34
- workflowRunId?: string;
35
- nodeId?: string;
36
- agentLabel?: string;
37
- stage?: string;
38
- };
39
-
40
- const VALID_TASK_STATUSES = new Set<WorkflowHandoffTaskStatus>([
41
- 'ready',
42
- 'completed',
43
- 'blocked',
44
- 'failed',
45
- 'needs-review',
46
- ]);
47
-
48
- function extractJsonCandidate(text: string): string | null {
49
- const fenced = text.match(/```(?:json)?\s*([\s\S]*?)```/i)?.[1]?.trim();
50
- if (fenced) return fenced;
51
-
52
- const start = text.indexOf('{');
53
- const end = text.lastIndexOf('}');
54
- if (start === -1 || end === -1 || end <= start) return null;
55
- return text.slice(start, end + 1);
56
- }
57
-
58
- function readRequiredString(record: Record<string, unknown>, key: string): string | null {
59
- const value = record[key];
60
- if (typeof value !== 'string' || !value.trim()) return null;
61
- return value.trim();
62
- }
63
-
64
- function sanitizeChangedFile(filePath: string): string {
65
- const normalized = filePath.trim().replaceAll('\\', '/');
66
- if (!normalized) return '';
67
- if (!normalized.startsWith('/') && !/^[a-zA-Z]:\//.test(normalized)) return normalized;
68
- return normalized.split('/').filter(Boolean).slice(-4).join('/');
69
- }
70
-
71
- function readStringArray(record: Record<string, unknown>, key: string): string[] | null {
72
- const value = record[key];
73
- if (!Array.isArray(value)) return null;
74
- return value
75
- .filter((item): item is string => typeof item === 'string')
76
- .map((item) => key === 'changedFiles' ? sanitizeChangedFile(item) : item.trim())
77
- .filter(Boolean)
78
- .slice(0, 40);
79
- }
80
-
81
- export function parseHandoffArtifact(
82
- text: string,
83
- metadata: HandoffArtifactMetadata = {},
84
- ): HandoffArtifactParseResult {
85
- const candidate = extractJsonCandidate(text);
86
- if (!candidate) {
87
- return { ok: false, error: 'Invalid handoff artifact: expected one JSON object.' };
88
- }
89
-
90
- let parsed: unknown;
91
- try {
92
- parsed = JSON.parse(candidate);
93
- } catch (error) {
94
- return {
95
- ok: false,
96
- error: `Invalid handoff artifact: JSON parse failed (${error instanceof Error ? error.message : String(error)}).`,
97
- };
98
- }
99
-
100
- if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
101
- return { ok: false, error: 'Invalid handoff artifact: payload must be an object.' };
102
- }
103
-
104
- const record = parsed as Record<string, unknown>;
105
- if (record.protocol !== PIXCODE_HANDOFF_PROTOCOL) {
106
- return { ok: false, error: `Invalid handoff artifact: protocol must be ${PIXCODE_HANDOFF_PROTOCOL}.` };
107
- }
108
-
109
- const taskStatus = record.taskStatus;
110
- if (typeof taskStatus !== 'string' || !VALID_TASK_STATUSES.has(taskStatus as WorkflowHandoffTaskStatus)) {
111
- return { ok: false, error: 'Invalid handoff artifact: taskStatus is missing or unsupported.' };
112
- }
113
-
114
- const contextSummary = readRequiredString(record, 'contextSummary');
115
- const taskResult = readRequiredString(record, 'taskResult');
116
- const changedFiles = readStringArray(record, 'changedFiles');
117
- const blockers = readStringArray(record, 'blockers');
118
- const risks = readStringArray(record, 'risks');
119
- const nextAction = readRequiredString(record, 'nextAction');
120
- const nextInstructions = readRequiredString(record, 'nextInstructions');
121
-
122
- if (!contextSummary || !taskResult || !changedFiles || !blockers || !risks || !nextAction || !nextInstructions) {
123
- return {
124
- ok: false,
125
- error: 'Invalid handoff artifact: required fields are protocol, taskStatus, contextSummary, taskResult, changedFiles, blockers, risks, nextAction, and nextInstructions.',
126
- };
127
- }
128
-
129
- return {
130
- ok: true,
131
- artifact: {
132
- protocol: PIXCODE_HANDOFF_PROTOCOL,
133
- taskStatus: taskStatus as WorkflowHandoffTaskStatus,
134
- contextSummary,
135
- taskResult,
136
- changedFiles,
137
- blockers,
138
- risks,
139
- nextAction,
140
- nextInstructions,
141
- producedBy: {
142
- workflowRunId: metadata.workflowRunId,
143
- nodeId: metadata.nodeId,
144
- agentLabel: metadata.agentLabel,
145
- stage: metadata.stage,
146
- },
147
- createdAt: new Date().toISOString(),
148
- },
149
- };
150
- }
151
-
152
- export function formatHandoffArtifactForContext(artifact: WorkflowHandoffArtifact): string {
153
- return [
154
- `Pixcode handoff artifact (${PIXCODE_HANDOFF_PROTOCOL})`,
155
- JSON.stringify(artifact, null, 2),
156
- ].join('\n');
157
- }
158
-
159
- export function handoffArtifactToWorkflowArtifact(artifact: WorkflowHandoffArtifact): {
160
- type: 'handoff-artifact';
161
- data: Record<string, unknown>;
162
- metadata: Record<string, unknown>;
163
- } {
164
- return {
165
- type: 'handoff-artifact',
166
- data: artifact as unknown as Record<string, unknown>,
167
- metadata: {
168
- protocol: artifact.protocol,
169
- taskStatus: artifact.taskStatus,
170
- changedFileCount: artifact.changedFiles.length,
171
- blockerCount: artifact.blockers.length,
172
- nextAction: artifact.nextAction,
173
- },
174
- };
175
- }
@@ -1,161 +0,0 @@
1
- import type { WorkflowNode, WorkflowRun } from '@/modules/orchestration/workflows/workflow.types.js';
2
-
3
- export const PIXCODE_FALLBACK_POLICY_PROTOCOL = 'pixcode.fallback-policy.v1';
4
-
5
- export type WorkflowFallbackTrigger = 'provider_failure' | 'timeout' | 'tool_failure' | 'invalid_output';
6
-
7
- export interface WorkflowFallbackPolicy {
8
- protocol: typeof PIXCODE_FALLBACK_POLICY_PROTOCOL;
9
- enabled: boolean;
10
- triggers: WorkflowFallbackTrigger[];
11
- maxFallbacksPerRun: number;
12
- requireDifferentAgent: boolean;
13
- }
14
-
15
- export interface WorkflowFallbackDecision {
16
- shouldFallback: boolean;
17
- trigger: WorkflowFallbackTrigger;
18
- reason: string;
19
- policy: WorkflowFallbackPolicy;
20
- skippedReason?: string;
21
- }
22
-
23
- const DEFAULT_TRIGGERS: WorkflowFallbackTrigger[] = [
24
- 'provider_failure',
25
- 'timeout',
26
- 'tool_failure',
27
- 'invalid_output',
28
- ];
29
-
30
- export const DEFAULT_WORKFLOW_FALLBACK_POLICY: WorkflowFallbackPolicy = {
31
- protocol: PIXCODE_FALLBACK_POLICY_PROTOCOL,
32
- enabled: true,
33
- triggers: DEFAULT_TRIGGERS,
34
- maxFallbacksPerRun: 3,
35
- requireDifferentAgent: true,
36
- };
37
-
38
- function readRecord(value: unknown): Record<string, unknown> | undefined {
39
- return value && typeof value === 'object' ? value as Record<string, unknown> : undefined;
40
- }
41
-
42
- function readBoolean(value: unknown): boolean | undefined {
43
- return typeof value === 'boolean' ? value : undefined;
44
- }
45
-
46
- function readNumber(value: unknown): number | undefined {
47
- return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
48
- }
49
-
50
- function isWorkflowFallbackTrigger(value: unknown): value is WorkflowFallbackTrigger {
51
- return value === 'provider_failure'
52
- || value === 'timeout'
53
- || value === 'tool_failure'
54
- || value === 'invalid_output';
55
- }
56
-
57
- function readFallbackTriggers(value: unknown): WorkflowFallbackTrigger[] | undefined {
58
- if (!Array.isArray(value)) return undefined;
59
- const triggers = value.filter(isWorkflowFallbackTrigger);
60
- return triggers.length > 0 ? [...new Set(triggers)] : undefined;
61
- }
62
-
63
- export function readWorkflowFallbackPolicy(metadata?: Record<string, unknown>): WorkflowFallbackPolicy {
64
- const settings = readRecord(metadata?.settings) ?? {};
65
- const configured = readRecord(settings.fallbackPolicy) ?? {};
66
- const maxFallbacksPerRun = readNumber(configured.maxFallbacksPerRun);
67
-
68
- return {
69
- protocol: PIXCODE_FALLBACK_POLICY_PROTOCOL,
70
- enabled: readBoolean(configured.enabled) ?? DEFAULT_WORKFLOW_FALLBACK_POLICY.enabled,
71
- triggers: readFallbackTriggers(configured.triggers) ?? DEFAULT_WORKFLOW_FALLBACK_POLICY.triggers,
72
- maxFallbacksPerRun: maxFallbacksPerRun === undefined
73
- ? DEFAULT_WORKFLOW_FALLBACK_POLICY.maxFallbacksPerRun
74
- : Math.max(0, Math.min(8, Math.round(maxFallbacksPerRun))),
75
- requireDifferentAgent: readBoolean(configured.requireDifferentAgent)
76
- ?? DEFAULT_WORKFLOW_FALLBACK_POLICY.requireDifferentAgent,
77
- };
78
- }
79
-
80
- export function classifyWorkflowFailure(
81
- reason: string,
82
- explicitTrigger?: WorkflowFallbackTrigger,
83
- ): WorkflowFallbackTrigger {
84
- if (explicitTrigger) return explicitTrigger;
85
-
86
- const text = reason.toLocaleLowerCase('en');
87
- if (/timed out|timeout|deadline/u.test(text)) return 'timeout';
88
- if (/invalid (handoff|output|artifact|json|schema)|parse|protocol/u.test(text)) return 'invalid_output';
89
- if (
90
- /tool|command|shell|exit code|permission|file write|write failed|network|fetch|curl|wget|gh |npm |git /u
91
- .test(text)
92
- ) {
93
- return 'tool_failure';
94
- }
95
- return 'provider_failure';
96
- }
97
-
98
- function fallbackEventCount(run: WorkflowRun): number {
99
- return Array.isArray(run.metadata?.fallbackEvents) ? run.metadata.fallbackEvents.length : 0;
100
- }
101
-
102
- export function resolveWorkflowFallbackDecision({
103
- run,
104
- node,
105
- reason,
106
- trigger,
107
- fallbackAgentInstanceId,
108
- }: {
109
- run: WorkflowRun;
110
- node: WorkflowNode;
111
- reason: string;
112
- trigger?: WorkflowFallbackTrigger;
113
- fallbackAgentInstanceId?: string;
114
- }): WorkflowFallbackDecision {
115
- const fallbackTrigger = classifyWorkflowFailure(reason, trigger);
116
- const policy = readWorkflowFallbackPolicy(run.metadata);
117
-
118
- if (!policy.enabled) {
119
- return {
120
- shouldFallback: false,
121
- trigger: fallbackTrigger,
122
- reason,
123
- policy,
124
- skippedReason: 'Fallback policy is disabled.',
125
- };
126
- }
127
- if (!policy.triggers.includes(fallbackTrigger)) {
128
- return {
129
- shouldFallback: false,
130
- trigger: fallbackTrigger,
131
- reason,
132
- policy,
133
- skippedReason: `Fallback trigger ${fallbackTrigger} is not enabled.`,
134
- };
135
- }
136
- if (fallbackEventCount(run) >= policy.maxFallbacksPerRun) {
137
- return {
138
- shouldFallback: false,
139
- trigger: fallbackTrigger,
140
- reason,
141
- policy,
142
- skippedReason: `Fallback limit ${policy.maxFallbacksPerRun} reached.`,
143
- };
144
- }
145
- if (policy.requireDifferentAgent && fallbackAgentInstanceId && fallbackAgentInstanceId === node.agentInstanceId) {
146
- return {
147
- shouldFallback: false,
148
- trigger: fallbackTrigger,
149
- reason,
150
- policy,
151
- skippedReason: 'Fallback agent must be different from the failed agent.',
152
- };
153
- }
154
-
155
- return {
156
- shouldFallback: true,
157
- trigger: fallbackTrigger,
158
- reason,
159
- policy,
160
- };
161
- }