@pixelbyte-software/pixcode 1.54.10 → 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 (534) hide show
  1. package/CODE_OF_CONDUCT.md +41 -41
  2. package/CONTRIBUTING.md +156 -156
  3. package/LICENSE +21 -718
  4. package/README.de.md +169 -169
  5. package/README.ja.md +167 -167
  6. package/README.ko.md +167 -167
  7. package/README.md +435 -418
  8. package/README.ru.md +169 -169
  9. package/README.tr.md +298 -298
  10. package/README.zh-CN.md +167 -167
  11. package/SECURITY.md +46 -46
  12. package/dist-server/server/claude-sdk.js +1 -1
  13. package/dist-server/server/claude-sdk.js.map +1 -1
  14. package/dist-server/server/cli.js +100 -100
  15. package/dist-server/server/daemon/manager.js +33 -33
  16. package/dist-server/server/daemon-manager.js +64 -64
  17. package/dist-server/server/index.js +6 -11
  18. package/dist-server/server/index.js.map +1 -1
  19. package/dist-server/server/modules/security/permission-policy.js.map +1 -0
  20. package/dist-server/server/modules/tasks/git-worktree.js +98 -0
  21. package/dist-server/server/modules/tasks/git-worktree.js.map +1 -0
  22. package/dist-server/server/modules/tasks/index.js +8 -0
  23. package/dist-server/server/modules/tasks/index.js.map +1 -0
  24. package/dist-server/server/modules/tasks/prompt-builder.js +85 -0
  25. package/dist-server/server/modules/tasks/prompt-builder.js.map +1 -0
  26. package/dist-server/server/modules/tasks/role-presets.js +94 -0
  27. package/dist-server/server/modules/tasks/role-presets.js.map +1 -0
  28. package/dist-server/server/modules/tasks/runners/claude-runner.js +109 -0
  29. package/dist-server/server/modules/tasks/runners/claude-runner.js.map +1 -0
  30. package/dist-server/server/modules/tasks/runners/codex-runner.js +67 -0
  31. package/dist-server/server/modules/tasks/runners/codex-runner.js.map +1 -0
  32. package/dist-server/server/modules/tasks/runners/spawn-runner.js +111 -0
  33. package/dist-server/server/modules/tasks/runners/spawn-runner.js.map +1 -0
  34. package/dist-server/server/modules/tasks/runners/types.js +5 -0
  35. package/dist-server/server/modules/tasks/runners/types.js.map +1 -0
  36. package/dist-server/server/modules/tasks/scheduler.js +69 -0
  37. package/dist-server/server/modules/tasks/scheduler.js.map +1 -0
  38. package/dist-server/server/modules/tasks/task-queue.js +81 -0
  39. package/dist-server/server/modules/tasks/task-queue.js.map +1 -0
  40. package/dist-server/server/modules/tasks/task-routes.js +195 -0
  41. package/dist-server/server/modules/tasks/task-routes.js.map +1 -0
  42. package/dist-server/server/modules/tasks/task-runner.js +187 -0
  43. package/dist-server/server/modules/tasks/task-runner.js.map +1 -0
  44. package/dist-server/server/modules/tasks/task-store.js +196 -0
  45. package/dist-server/server/modules/tasks/task-store.js.map +1 -0
  46. package/dist-server/server/modules/tasks/task-types.js +5 -0
  47. package/dist-server/server/modules/tasks/task-types.js.map +1 -0
  48. package/dist-server/server/modules/tasks/user-interaction.js +73 -0
  49. package/dist-server/server/modules/tasks/user-interaction.js.map +1 -0
  50. package/dist-server/server/routes/commands.js +25 -25
  51. package/dist-server/server/routes/git.js +17 -17
  52. package/dist-server/server/routes/live-view.js +46 -46
  53. package/dist-server/server/services/control-room.js +9 -1
  54. package/dist-server/server/services/control-room.js.map +1 -1
  55. package/dist-server/server/services/public-api-manifest.js +54 -54
  56. package/dist-server/server/services/public-api-manifest.js.map +1 -1
  57. package/dist-server/server/services/telegram/control-center.js +10 -10
  58. package/dist-server/server/services/telegram/control-center.js.map +1 -1
  59. package/dist-server/server/services/telegram/telegram-gateway.js +2 -2
  60. package/dist-server/server/services/telegram/telegram-gateway.js.map +1 -1
  61. package/dist-server/server/services/telegram/translations.js +5 -5
  62. package/dist-server/server/services/telegram/translations.js.map +1 -1
  63. package/package.json +224 -224
  64. package/scripts/fix-node-pty.js +67 -67
  65. package/scripts/github/create-v1.38-issues.mjs +351 -351
  66. package/scripts/github/create-vscode-workbench-issues.mjs +121 -121
  67. package/scripts/smoke/backend-resource-bounds.mjs +152 -152
  68. package/scripts/smoke/changes-panel-layout.mjs +48 -48
  69. package/scripts/smoke/chat-composer-fixed-layout.mjs +55 -55
  70. package/scripts/smoke/chat-message-timeline-order.mjs +41 -41
  71. package/scripts/smoke/chat-realtime-hydration.mjs +44 -44
  72. package/scripts/smoke/chat-session-provider-pools.mjs +35 -35
  73. package/scripts/smoke/chat-session-state.mjs +19 -19
  74. package/scripts/smoke/code-editor-theme.mjs +55 -55
  75. package/scripts/smoke/code-editor-vscode-engine.mjs +91 -91
  76. package/scripts/smoke/command-center-agent-writes.mjs +79 -79
  77. package/scripts/smoke/command-center-non-git.mjs +46 -46
  78. package/scripts/smoke/context-packet.mjs +43 -43
  79. package/scripts/smoke/control-room-ux-redesign.mjs +91 -91
  80. package/scripts/smoke/daemon-entrypoint.mjs +20 -20
  81. package/scripts/smoke/default-landing-routing.mjs +33 -33
  82. package/scripts/smoke/desktop-native-notifications.mjs +30 -30
  83. package/scripts/smoke/desktop-tray-icon.mjs +33 -33
  84. package/scripts/smoke/discord-release-workflow.mjs +24 -24
  85. package/scripts/smoke/git-install-update.mjs +255 -255
  86. package/scripts/smoke/handoff-artifact-protocol.mjs +50 -50
  87. package/scripts/smoke/live-view-diagnostics.mjs +53 -53
  88. package/scripts/smoke/live-view-environment.mjs +92 -92
  89. package/scripts/smoke/live-view-integration.mjs +450 -450
  90. package/scripts/smoke/mac-desktop-runtime.mjs +37 -37
  91. package/scripts/smoke/mobile-tunnel-guidance.mjs +29 -29
  92. package/scripts/smoke/mobile-ux.mjs +76 -76
  93. package/scripts/smoke/model-registry.mjs +36 -36
  94. package/scripts/smoke/multi-project-ui.mjs +45 -45
  95. package/scripts/smoke/multi-worker-slots.mjs +42 -42
  96. package/scripts/smoke/notification-center.mjs +87 -87
  97. package/scripts/smoke/notification-inapp-preference.mjs +23 -23
  98. package/scripts/smoke/notification-taxonomy.mjs +58 -58
  99. package/scripts/smoke/orchestration-api.mjs +172 -172
  100. package/scripts/smoke/orchestration-execution-dashboard.mjs +33 -33
  101. package/scripts/smoke/orchestration-live-run.mjs +176 -176
  102. package/scripts/smoke/orchestration-mobile-scroll.mjs +29 -29
  103. package/scripts/smoke/orchestration-model-sync.mjs +30 -30
  104. package/scripts/smoke/orchestration-permission-fallback.mjs +34 -34
  105. package/scripts/smoke/orchestration-runtime-guards.mjs +48 -48
  106. package/scripts/smoke/orchestration-user-facing-output.mjs +25 -25
  107. package/scripts/smoke/permission-policy.mjs +50 -50
  108. package/scripts/smoke/pixcode-workbench-1-48.mjs +167 -167
  109. package/scripts/smoke/provider-models-opencode-live.mjs +66 -66
  110. package/scripts/smoke/provider-rest-api.mjs +124 -124
  111. package/scripts/smoke/provider-selection-status.mjs +52 -52
  112. package/scripts/smoke/run-state-refresh.mjs +52 -52
  113. package/scripts/smoke/runtime-manager.mjs +99 -99
  114. package/scripts/smoke/shell-manual-disconnect.mjs +30 -30
  115. package/scripts/smoke/side-panel-editor-layout.mjs +34 -34
  116. package/scripts/smoke/static-root-routing.mjs +21 -21
  117. package/scripts/smoke/strict-handoff-compact.mjs +60 -60
  118. package/scripts/smoke/taskmaster-config.mjs +24 -24
  119. package/scripts/smoke/taskmaster-execution-telegram.mjs +3 -3
  120. package/scripts/smoke/taskmaster-onboarding.mjs +3 -3
  121. package/scripts/smoke/taskmaster-run-graph.mjs +3 -3
  122. package/scripts/smoke/telegram-control.mjs +331 -331
  123. package/scripts/smoke/tunnel-persistence.mjs +56 -56
  124. package/scripts/smoke/update-issue-progress.mjs +69 -69
  125. package/scripts/smoke/update-ux.mjs +55 -55
  126. package/scripts/smoke/v138-completion.mjs +132 -132
  127. package/scripts/smoke/v138-desktop-release-hardening.mjs +69 -69
  128. package/scripts/smoke/v138-diagnostics.mjs +63 -63
  129. package/scripts/smoke/v138-issue-planner.mjs +33 -33
  130. package/scripts/smoke/v143-remote-control.mjs +76 -76
  131. package/scripts/smoke/v144-production-loop.mjs +47 -47
  132. package/scripts/smoke/v145-platformization.mjs +46 -46
  133. package/scripts/smoke/v146-control-room-ui.mjs +150 -150
  134. package/scripts/smoke/version-modal-autoshow.mjs +29 -29
  135. package/scripts/smoke/vscode-workbench-layout.mjs +63 -63
  136. package/scripts/smoke/vscode-workbench-polish.mjs +461 -461
  137. package/scripts/smoke/workflow-fallback-replay.mjs +56 -56
  138. package/scripts/smoke/workflow-templates.mjs +43 -43
  139. package/scripts/smoke/workflow-trace-timeline.mjs +46 -46
  140. package/scripts/update-git-install.mjs +298 -298
  141. package/server/claude-sdk.js +927 -927
  142. package/server/cli.js +1106 -1106
  143. package/server/constants/config.js +4 -4
  144. package/server/cursor-cli.js +344 -344
  145. package/server/daemon/manager.js +563 -563
  146. package/server/daemon-manager.js +964 -964
  147. package/server/database/db.js +988 -988
  148. package/server/database/json-store.js +197 -197
  149. package/server/gemini-cli.js +550 -550
  150. package/server/gemini-response-handler.js +79 -79
  151. package/server/index.js +5654 -5671
  152. package/server/load-env.js +35 -35
  153. package/server/middleware/account-lockout.js +112 -112
  154. package/server/middleware/auth.js +277 -277
  155. package/server/middleware/rate-limiter.js +87 -87
  156. package/server/modules/providers/index.ts +2 -2
  157. package/server/modules/providers/list/claude/claude-auth.provider.ts +146 -146
  158. package/server/modules/providers/list/claude/claude-mcp.provider.ts +135 -135
  159. package/server/modules/providers/list/claude/claude-sessions.provider.ts +306 -306
  160. package/server/modules/providers/list/claude/claude.provider.ts +15 -15
  161. package/server/modules/providers/list/codex/codex-auth.provider.ts +117 -117
  162. package/server/modules/providers/list/codex/codex-mcp.provider.ts +135 -135
  163. package/server/modules/providers/list/codex/codex-sessions.provider.ts +319 -319
  164. package/server/modules/providers/list/codex/codex.provider.ts +15 -15
  165. package/server/modules/providers/list/cursor/cursor-auth.provider.ts +147 -147
  166. package/server/modules/providers/list/cursor/cursor-mcp.provider.ts +108 -108
  167. package/server/modules/providers/list/cursor/cursor-sessions.provider.ts +421 -421
  168. package/server/modules/providers/list/cursor/cursor.provider.ts +15 -15
  169. package/server/modules/providers/list/gemini/gemini-auth.provider.ts +173 -173
  170. package/server/modules/providers/list/gemini/gemini-mcp.provider.ts +110 -110
  171. package/server/modules/providers/list/gemini/gemini-sessions.provider.ts +227 -227
  172. package/server/modules/providers/list/gemini/gemini.provider.ts +15 -15
  173. package/server/modules/providers/list/opencode/opencode-auth.provider.ts +131 -131
  174. package/server/modules/providers/list/opencode/opencode-sessions.provider.ts +286 -286
  175. package/server/modules/providers/list/qwen/qwen-auth.provider.ts +146 -146
  176. package/server/modules/providers/list/qwen/qwen-sessions.provider.ts +265 -265
  177. package/server/modules/providers/provider.registry.ts +40 -40
  178. package/server/modules/providers/provider.routes.ts +982 -982
  179. package/server/modules/providers/services/mcp.service.ts +86 -86
  180. package/server/modules/providers/services/provider-auth.service.ts +26 -26
  181. package/server/modules/providers/services/sessions.service.ts +45 -45
  182. package/server/modules/providers/shared/base/abstract.provider.ts +20 -20
  183. package/server/modules/providers/shared/mcp/mcp.provider.ts +151 -151
  184. package/server/modules/providers/tests/mcp.test.ts +293 -293
  185. package/server/modules/{orchestration/security → security}/permission-policy.ts +401 -401
  186. package/server/modules/tasks/git-worktree.ts +102 -0
  187. package/server/modules/tasks/index.ts +9 -0
  188. package/server/modules/tasks/prompt-builder.ts +98 -0
  189. package/server/modules/tasks/role-presets.ts +113 -0
  190. package/server/modules/tasks/runners/claude-runner.ts +120 -0
  191. package/server/modules/tasks/runners/codex-runner.ts +80 -0
  192. package/server/modules/tasks/runners/spawn-runner.ts +122 -0
  193. package/server/modules/tasks/runners/types.ts +25 -0
  194. package/server/modules/tasks/scheduler.ts +75 -0
  195. package/server/modules/tasks/task-queue.ts +91 -0
  196. package/server/modules/tasks/task-routes.ts +245 -0
  197. package/server/modules/tasks/task-runner.ts +219 -0
  198. package/server/modules/tasks/task-store.ts +223 -0
  199. package/server/modules/tasks/task-types.ts +100 -0
  200. package/server/modules/tasks/user-interaction.ts +93 -0
  201. package/server/openai-codex.js +468 -468
  202. package/server/opencode-cli.js +491 -491
  203. package/server/opencode-response-handler.js +111 -111
  204. package/server/projects.js +3135 -3135
  205. package/server/qwen-code-cli.js +410 -410
  206. package/server/routes/agent.js +1462 -1462
  207. package/server/routes/auth.js +298 -298
  208. package/server/routes/codex.js +20 -20
  209. package/server/routes/commands.js +581 -581
  210. package/server/routes/cursor.js +61 -61
  211. package/server/routes/diagnostics.js +44 -44
  212. package/server/routes/gemini.js +25 -25
  213. package/server/routes/git.js +1822 -1822
  214. package/server/routes/live-view.js +434 -434
  215. package/server/routes/mcp-utils.js +13 -13
  216. package/server/routes/messages.js +97 -97
  217. package/server/routes/network.js +143 -143
  218. package/server/routes/platformization.js +231 -231
  219. package/server/routes/plugins.js +690 -690
  220. package/server/routes/production-agent-loop.js +90 -90
  221. package/server/routes/projects.js +918 -918
  222. package/server/routes/public-api.js +34 -34
  223. package/server/routes/qwen.js +27 -27
  224. package/server/routes/remote.js +56 -56
  225. package/server/routes/settings.js +321 -321
  226. package/server/routes/telegram.js +163 -163
  227. package/server/routes/user.js +125 -125
  228. package/server/routes/webhooks.js +63 -63
  229. package/server/services/control-room.js +111 -102
  230. package/server/services/diagnostics.js +165 -165
  231. package/server/services/external-access.js +403 -403
  232. package/server/services/install-jobs.js +715 -715
  233. package/server/services/live-view.js +956 -956
  234. package/server/services/managed-runtimes.js +493 -493
  235. package/server/services/model-registry.js +144 -144
  236. package/server/services/notification-orchestrator.js +365 -365
  237. package/server/services/notification-taxonomy.js +204 -204
  238. package/server/services/platformization.js +1052 -1052
  239. package/server/services/production-agent-loop.js +248 -248
  240. package/server/services/provider-cli-versions.js +149 -149
  241. package/server/services/provider-credentials.js +189 -189
  242. package/server/services/provider-models.js +396 -396
  243. package/server/services/public-api-manifest.js +181 -181
  244. package/server/services/qr-login.js +126 -126
  245. package/server/services/remote-connection.js +127 -127
  246. package/server/services/runtime-manager.js +323 -323
  247. package/server/services/startup-update.js +259 -259
  248. package/server/services/telegram/bot.js +393 -393
  249. package/server/services/telegram/control-center.js +2453 -2453
  250. package/server/services/telegram/telegram-gateway.js +314 -314
  251. package/server/services/telegram/telegram-http-client.js +201 -201
  252. package/server/services/telegram/translations.js +470 -470
  253. package/server/services/webhooks.js +216 -216
  254. package/server/sessionManager.js +225 -225
  255. package/server/setup-wizard.js +283 -283
  256. package/server/shared/interfaces.ts +54 -54
  257. package/server/shared/types.ts +172 -172
  258. package/server/shared/utils.ts +193 -193
  259. package/server/tsconfig.json +36 -36
  260. package/server/utils/colors.js +21 -21
  261. package/server/utils/commandParser.js +305 -305
  262. package/server/utils/frontmatter.js +18 -18
  263. package/server/utils/gitConfig.js +34 -34
  264. package/server/utils/plugin-loader.js +461 -461
  265. package/server/utils/plugin-process-manager.js +185 -185
  266. package/server/utils/port-access.js +227 -227
  267. package/server/utils/runtime-paths.js +37 -37
  268. package/server/utils/security-log.js +84 -84
  269. package/server/utils/url-detection.js +71 -71
  270. package/server/vite-daemon.js +79 -79
  271. package/shared/modelConstants.js +161 -161
  272. package/shared/networkHosts.js +22 -22
  273. package/dist/api-automation.html +0 -110
  274. package/dist/api-docs.html +0 -548
  275. package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  276. package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  277. package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  278. package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  279. package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  280. package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  281. package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  282. package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  283. package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  284. package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  285. package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  286. package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  287. package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  288. package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  289. package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  290. package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  291. package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  292. package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  293. package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  294. package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  295. package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  296. package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  297. package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  298. package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  299. package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  300. package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  301. package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  302. package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  303. package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  304. package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  305. package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  306. package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  307. package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  308. package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  309. package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  310. package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  311. package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  312. package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  313. package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  314. package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  315. package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  316. package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  317. package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  318. package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  319. package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  320. package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  321. package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  322. package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  323. package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  324. package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  325. package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  326. package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  327. package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  328. package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  329. package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  330. package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  331. package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  332. package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  333. package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  334. package/dist/assets/index-DWOW_Jn0.js +0 -877
  335. package/dist/assets/index-Dz1luE0u.css +0 -32
  336. package/dist/assets/index-ak1p_4ew.js +0 -11
  337. package/dist/assets/localMonaco-DFIbtDNp.js +0 -1
  338. package/dist/assets/vendor-codemirror-CIYNS698.js +0 -41
  339. package/dist/assets/vendor-react-DB6V5Fl1.js +0 -59
  340. package/dist/assets/vendor-xterm-C7tpxJl7.js +0 -9
  341. package/dist/clear-cache.html +0 -85
  342. package/dist/convert-icons.md +0 -53
  343. package/dist/docs.html +0 -308
  344. package/dist/favicon.png +0 -0
  345. package/dist/favicon.svg +0 -8
  346. package/dist/features.html +0 -133
  347. package/dist/generate-icons.js +0 -49
  348. package/dist/humans.txt +0 -15
  349. package/dist/icons/claude-ai-icon.svg +0 -1
  350. package/dist/icons/codex-white.svg +0 -3
  351. package/dist/icons/codex.svg +0 -3
  352. package/dist/icons/cursor-white.svg +0 -12
  353. package/dist/icons/cursor.svg +0 -1
  354. package/dist/icons/gemini-ai-icon.svg +0 -1
  355. package/dist/icons/icon-128x128.png +0 -0
  356. package/dist/icons/icon-128x128.svg +0 -9
  357. package/dist/icons/icon-144x144.png +0 -0
  358. package/dist/icons/icon-144x144.svg +0 -9
  359. package/dist/icons/icon-152x152.png +0 -0
  360. package/dist/icons/icon-152x152.svg +0 -9
  361. package/dist/icons/icon-192x192.png +0 -0
  362. package/dist/icons/icon-192x192.svg +0 -9
  363. package/dist/icons/icon-384x384.png +0 -0
  364. package/dist/icons/icon-384x384.svg +0 -9
  365. package/dist/icons/icon-512x512.png +0 -0
  366. package/dist/icons/icon-512x512.svg +0 -9
  367. package/dist/icons/icon-72x72.png +0 -0
  368. package/dist/icons/icon-72x72.svg +0 -9
  369. package/dist/icons/icon-96x96.png +0 -0
  370. package/dist/icons/icon-96x96.svg +0 -9
  371. package/dist/icons/icon-template.svg +0 -9
  372. package/dist/icons/opencode-logo-dark.svg +0 -1
  373. package/dist/icons/opencode-logo-light.svg +0 -1
  374. package/dist/icons/qwen-ai-icon.png +0 -0
  375. package/dist/icons/qwen-logo.svg +0 -15
  376. package/dist/index.html +0 -62
  377. package/dist/landing.html +0 -268
  378. package/dist/llms-full.txt +0 -119
  379. package/dist/llms.txt +0 -53
  380. package/dist/logo-128.png +0 -0
  381. package/dist/logo-256.png +0 -0
  382. package/dist/logo-32.png +0 -0
  383. package/dist/logo-512.png +0 -0
  384. package/dist/logo-64.png +0 -0
  385. package/dist/logo.png +0 -0
  386. package/dist/logo.svg +0 -12
  387. package/dist/manifest.json +0 -61
  388. package/dist/openapi.yaml +0 -1696
  389. package/dist/orchestration.html +0 -125
  390. package/dist/robots.txt +0 -4
  391. package/dist/screenshots/cli-selection.png +0 -0
  392. package/dist/screenshots/desktop-main.png +0 -0
  393. package/dist/screenshots/mobile-chat.png +0 -0
  394. package/dist/screenshots/tools-modal.png +0 -0
  395. package/dist/site.css +0 -692
  396. package/dist/sitemap.xml +0 -51
  397. package/dist/sw.js +0 -132
  398. package/dist-server/server/modules/orchestration/a2a/adapter-registry.js +0 -73
  399. package/dist-server/server/modules/orchestration/a2a/adapter-registry.js.map +0 -1
  400. package/dist-server/server/modules/orchestration/a2a/adapters/abstract-a2a.adapter.js +0 -17
  401. package/dist-server/server/modules/orchestration/a2a/adapters/abstract-a2a.adapter.js.map +0 -1
  402. package/dist-server/server/modules/orchestration/a2a/adapters/claude-code.adapter.js +0 -236
  403. package/dist-server/server/modules/orchestration/a2a/adapters/claude-code.adapter.js.map +0 -1
  404. package/dist-server/server/modules/orchestration/a2a/adapters/codex.adapter.js +0 -202
  405. package/dist-server/server/modules/orchestration/a2a/adapters/codex.adapter.js.map +0 -1
  406. package/dist-server/server/modules/orchestration/a2a/adapters/cursor.adapter.js +0 -205
  407. package/dist-server/server/modules/orchestration/a2a/adapters/cursor.adapter.js.map +0 -1
  408. package/dist-server/server/modules/orchestration/a2a/adapters/gemini.adapter.js +0 -205
  409. package/dist-server/server/modules/orchestration/a2a/adapters/gemini.adapter.js.map +0 -1
  410. package/dist-server/server/modules/orchestration/a2a/adapters/json-event.adapter.js +0 -84
  411. package/dist-server/server/modules/orchestration/a2a/adapters/json-event.adapter.js.map +0 -1
  412. package/dist-server/server/modules/orchestration/a2a/adapters/json-event.adapter.test.js +0 -43
  413. package/dist-server/server/modules/orchestration/a2a/adapters/json-event.adapter.test.js.map +0 -1
  414. package/dist-server/server/modules/orchestration/a2a/adapters/opencode.adapter.js +0 -205
  415. package/dist-server/server/modules/orchestration/a2a/adapters/opencode.adapter.js.map +0 -1
  416. package/dist-server/server/modules/orchestration/a2a/adapters/qwen.adapter.js +0 -205
  417. package/dist-server/server/modules/orchestration/a2a/adapters/qwen.adapter.js.map +0 -1
  418. package/dist-server/server/modules/orchestration/a2a/agent-card.js +0 -50
  419. package/dist-server/server/modules/orchestration/a2a/agent-card.js.map +0 -1
  420. package/dist-server/server/modules/orchestration/a2a/auth.middleware.js +0 -25
  421. package/dist-server/server/modules/orchestration/a2a/auth.middleware.js.map +0 -1
  422. package/dist-server/server/modules/orchestration/a2a/bus.js +0 -34
  423. package/dist-server/server/modules/orchestration/a2a/bus.js.map +0 -1
  424. package/dist-server/server/modules/orchestration/a2a/routes.js +0 -502
  425. package/dist-server/server/modules/orchestration/a2a/routes.js.map +0 -1
  426. package/dist-server/server/modules/orchestration/a2a/task-dispatcher.js +0 -295
  427. package/dist-server/server/modules/orchestration/a2a/task-dispatcher.js.map +0 -1
  428. package/dist-server/server/modules/orchestration/a2a/task-store.js +0 -144
  429. package/dist-server/server/modules/orchestration/a2a/task-store.js.map +0 -1
  430. package/dist-server/server/modules/orchestration/a2a/types.js +0 -6
  431. package/dist-server/server/modules/orchestration/a2a/types.js.map +0 -1
  432. package/dist-server/server/modules/orchestration/a2a/validator.js +0 -101
  433. package/dist-server/server/modules/orchestration/a2a/validator.js.map +0 -1
  434. package/dist-server/server/modules/orchestration/index.js +0 -27
  435. package/dist-server/server/modules/orchestration/index.js.map +0 -1
  436. package/dist-server/server/modules/orchestration/preview/port-watcher.js +0 -90
  437. package/dist-server/server/modules/orchestration/preview/port-watcher.js.map +0 -1
  438. package/dist-server/server/modules/orchestration/preview/preview-proxy.js +0 -58
  439. package/dist-server/server/modules/orchestration/preview/preview-proxy.js.map +0 -1
  440. package/dist-server/server/modules/orchestration/preview/types.js +0 -2
  441. package/dist-server/server/modules/orchestration/preview/types.js.map +0 -1
  442. package/dist-server/server/modules/orchestration/security/permission-policy.js.map +0 -1
  443. package/dist-server/server/modules/orchestration/tasks/orchestration-task-store.js +0 -34
  444. package/dist-server/server/modules/orchestration/tasks/orchestration-task-store.js.map +0 -1
  445. package/dist-server/server/modules/orchestration/tasks/orchestration-task.routes.js +0 -70
  446. package/dist-server/server/modules/orchestration/tasks/orchestration-task.routes.js.map +0 -1
  447. package/dist-server/server/modules/orchestration/tasks/orchestration-task.service.js +0 -181
  448. package/dist-server/server/modules/orchestration/tasks/orchestration-task.service.js.map +0 -1
  449. package/dist-server/server/modules/orchestration/tasks/orchestration-task.types.js +0 -2
  450. package/dist-server/server/modules/orchestration/tasks/orchestration-task.types.js.map +0 -1
  451. package/dist-server/server/modules/orchestration/tasks/task-run-graph.js +0 -100
  452. package/dist-server/server/modules/orchestration/tasks/task-run-graph.js.map +0 -1
  453. package/dist-server/server/modules/orchestration/workflows/approval-queue.js +0 -72
  454. package/dist-server/server/modules/orchestration/workflows/approval-queue.js.map +0 -1
  455. package/dist-server/server/modules/orchestration/workflows/built-in-workflows.js +0 -126
  456. package/dist-server/server/modules/orchestration/workflows/built-in-workflows.js.map +0 -1
  457. package/dist-server/server/modules/orchestration/workflows/context-packet.js +0 -89
  458. package/dist-server/server/modules/orchestration/workflows/context-packet.js.map +0 -1
  459. package/dist-server/server/modules/orchestration/workflows/handoff-artifact.js +0 -123
  460. package/dist-server/server/modules/orchestration/workflows/handoff-artifact.js.map +0 -1
  461. package/dist-server/server/modules/orchestration/workflows/workflow-fallback-policy.js +0 -114
  462. package/dist-server/server/modules/orchestration/workflows/workflow-fallback-policy.js.map +0 -1
  463. package/dist-server/server/modules/orchestration/workflows/workflow-replay.js +0 -177
  464. package/dist-server/server/modules/orchestration/workflows/workflow-replay.js.map +0 -1
  465. package/dist-server/server/modules/orchestration/workflows/workflow-runner.js +0 -1718
  466. package/dist-server/server/modules/orchestration/workflows/workflow-runner.js.map +0 -1
  467. package/dist-server/server/modules/orchestration/workflows/workflow-store.js +0 -76
  468. package/dist-server/server/modules/orchestration/workflows/workflow-store.js.map +0 -1
  469. package/dist-server/server/modules/orchestration/workflows/workflow-templates.js +0 -242
  470. package/dist-server/server/modules/orchestration/workflows/workflow-templates.js.map +0 -1
  471. package/dist-server/server/modules/orchestration/workflows/workflow-trace.js +0 -388
  472. package/dist-server/server/modules/orchestration/workflows/workflow-trace.js.map +0 -1
  473. package/dist-server/server/modules/orchestration/workflows/workflow.routes.js +0 -508
  474. package/dist-server/server/modules/orchestration/workflows/workflow.routes.js.map +0 -1
  475. package/dist-server/server/modules/orchestration/workflows/workflow.types.js +0 -2
  476. package/dist-server/server/modules/orchestration/workflows/workflow.types.js.map +0 -1
  477. package/dist-server/server/modules/orchestration/workflows/workspace-target.js +0 -100
  478. package/dist-server/server/modules/orchestration/workflows/workspace-target.js.map +0 -1
  479. package/dist-server/server/modules/orchestration/workspace/docker-workspace.js +0 -123
  480. package/dist-server/server/modules/orchestration/workspace/docker-workspace.js.map +0 -1
  481. package/dist-server/server/modules/orchestration/workspace/path-safety.js +0 -48
  482. package/dist-server/server/modules/orchestration/workspace/path-safety.js.map +0 -1
  483. package/dist-server/server/modules/orchestration/workspace/types.js +0 -11
  484. package/dist-server/server/modules/orchestration/workspace/types.js.map +0 -1
  485. package/dist-server/server/modules/orchestration/workspace/workspace-manager.js +0 -84
  486. package/dist-server/server/modules/orchestration/workspace/workspace-manager.js.map +0 -1
  487. package/dist-server/server/modules/orchestration/workspace/worktree-workspace.js +0 -97
  488. package/dist-server/server/modules/orchestration/workspace/worktree-workspace.js.map +0 -1
  489. package/server/modules/orchestration/a2a/adapter-registry.ts +0 -108
  490. package/server/modules/orchestration/a2a/adapters/abstract-a2a.adapter.ts +0 -63
  491. package/server/modules/orchestration/a2a/adapters/claude-code.adapter.ts +0 -286
  492. package/server/modules/orchestration/a2a/adapters/codex.adapter.ts +0 -244
  493. package/server/modules/orchestration/a2a/adapters/cursor.adapter.ts +0 -249
  494. package/server/modules/orchestration/a2a/adapters/gemini.adapter.ts +0 -248
  495. package/server/modules/orchestration/a2a/adapters/json-event.adapter.test.ts +0 -60
  496. package/server/modules/orchestration/a2a/adapters/json-event.adapter.ts +0 -101
  497. package/server/modules/orchestration/a2a/adapters/opencode.adapter.ts +0 -248
  498. package/server/modules/orchestration/a2a/adapters/qwen.adapter.ts +0 -248
  499. package/server/modules/orchestration/a2a/agent-card.ts +0 -55
  500. package/server/modules/orchestration/a2a/auth.middleware.ts +0 -29
  501. package/server/modules/orchestration/a2a/bus.ts +0 -46
  502. package/server/modules/orchestration/a2a/routes.ts +0 -586
  503. package/server/modules/orchestration/a2a/task-dispatcher.ts +0 -345
  504. package/server/modules/orchestration/a2a/task-store.ts +0 -178
  505. package/server/modules/orchestration/a2a/types.ts +0 -126
  506. package/server/modules/orchestration/a2a/validator.ts +0 -113
  507. package/server/modules/orchestration/index.ts +0 -99
  508. package/server/modules/orchestration/preview/port-watcher.ts +0 -112
  509. package/server/modules/orchestration/preview/preview-proxy.ts +0 -60
  510. package/server/modules/orchestration/preview/types.ts +0 -19
  511. package/server/modules/orchestration/tasks/orchestration-task-store.ts +0 -41
  512. package/server/modules/orchestration/tasks/orchestration-task.routes.ts +0 -81
  513. package/server/modules/orchestration/tasks/orchestration-task.service.ts +0 -201
  514. package/server/modules/orchestration/tasks/orchestration-task.types.ts +0 -40
  515. package/server/modules/orchestration/tasks/task-run-graph.ts +0 -155
  516. package/server/modules/orchestration/workflows/approval-queue.ts +0 -106
  517. package/server/modules/orchestration/workflows/built-in-workflows.ts +0 -127
  518. package/server/modules/orchestration/workflows/context-packet.ts +0 -186
  519. package/server/modules/orchestration/workflows/handoff-artifact.ts +0 -175
  520. package/server/modules/orchestration/workflows/workflow-fallback-policy.ts +0 -161
  521. package/server/modules/orchestration/workflows/workflow-replay.ts +0 -254
  522. package/server/modules/orchestration/workflows/workflow-runner.ts +0 -2062
  523. package/server/modules/orchestration/workflows/workflow-store.ts +0 -97
  524. package/server/modules/orchestration/workflows/workflow-templates.ts +0 -272
  525. package/server/modules/orchestration/workflows/workflow-trace.ts +0 -424
  526. package/server/modules/orchestration/workflows/workflow.routes.ts +0 -586
  527. package/server/modules/orchestration/workflows/workflow.types.ts +0 -111
  528. package/server/modules/orchestration/workflows/workspace-target.ts +0 -122
  529. package/server/modules/orchestration/workspace/docker-workspace.ts +0 -136
  530. package/server/modules/orchestration/workspace/path-safety.ts +0 -55
  531. package/server/modules/orchestration/workspace/types.ts +0 -52
  532. package/server/modules/orchestration/workspace/workspace-manager.ts +0 -102
  533. package/server/modules/orchestration/workspace/worktree-workspace.ts +0 -126
  534. /package/dist-server/server/modules/{orchestration/security → security}/permission-policy.js +0 -0
@@ -1,99 +1,99 @@
1
- #!/usr/bin/env node
2
-
3
- import assert from 'node:assert/strict';
4
- import fs from 'node:fs';
5
- import path from 'node:path';
6
-
7
- const root = process.cwd();
8
-
9
- function read(relativePath) {
10
- return fs.readFileSync(path.join(root, relativePath), 'utf8');
11
- }
12
-
13
- const managerSource = read('server/services/runtime-manager.js');
14
- assert.match(managerSource, /RUNTIME_DEFINITIONS/, 'Runtime manager should define a central runtime registry.');
15
- assert.match(managerSource, /node/, 'Runtime manager should include Node.js.');
16
- assert.match(managerSource, /php/, 'Runtime manager should include PHP.');
17
- assert.match(managerSource, /python/, 'Runtime manager should include Python.');
18
- assert.match(managerSource, /go/, 'Runtime manager should include Go.');
19
- assert.match(managerSource, /java/, 'Runtime manager should include Java.');
20
- assert.match(managerSource, /rust/, 'Runtime manager should include Rust.');
21
- assert.match(managerSource, /discoverRuntime/, 'Runtime manager should expose runtime discovery.');
22
- assert.match(managerSource, /resolveLiveViewRuntime/, 'Runtime manager should expose Live View runtime resolution.');
23
-
24
- const liveViewSource = read('server/services/live-view.js');
25
- assert.match(liveViewSource, /resolveLiveViewRuntime/, 'Live View should route runtime checks through the runtime manager.');
26
- assert.match(liveViewSource, /runtime:\s*session\.runtime/, 'Live View public session payload should expose runtime diagnostics.');
27
- assert.ok(
28
- liveViewSource.includes('target.runtime'),
29
- 'Live View start should keep the runtime manager result on the session.',
30
- );
31
-
32
- const {
33
- discoverRuntime,
34
- resolveLiveViewRuntime,
35
- runtimeManager,
36
- } = await import('../../server/services/runtime-manager.js');
37
-
38
- assert.equal(typeof runtimeManager.discover, 'function', 'Runtime manager should expose a discover method.');
39
-
40
- const nodeRuntime = await discoverRuntime('node');
41
- assert.equal(nodeRuntime.id, 'node');
42
- assert.equal(nodeRuntime.status, 'available', 'The current Node runtime should be detected as available.');
43
- assert.ok(nodeRuntime.path, 'Node runtime should include an executable path.');
44
- assert.match(nodeRuntime.version || '', /\d+\.\d+\.\d+/, 'Node runtime should include a version.');
45
-
46
- const missingPython = await discoverRuntime('python', {
47
- strictPath: true,
48
- env: {
49
- ...process.env,
50
- PATH: '',
51
- Path: '',
52
- },
53
- });
54
- assert.equal(missingPython.status, 'missing', 'Missing Python should produce a missing runtime status.');
55
- assert.match(missingPython.diagnostic.message, /Python/i, 'Missing Python diagnostics should name the runtime.');
56
- assert.match(missingPython.diagnostic.action, /python/i, 'Missing Python diagnostics should include an actionable install command.');
57
-
58
- const nodeLiveRuntime = await resolveLiveViewRuntime({
59
- id: 'npm-dev-vite',
60
- label: 'Vite dev server',
61
- framework: 'Vite',
62
- command: 'npm',
63
- args: ['run', 'dev'],
64
- displayCommand: 'npm run dev',
65
- packageManager: 'npm',
66
- }, {
67
- env: {
68
- ...process.env,
69
- PATH: '',
70
- Path: '',
71
- },
72
- preferManaged: true,
73
- });
74
- assert.equal(nodeLiveRuntime.runtime.id, 'node', 'JavaScript Live View commands should resolve to the Node runtime.');
75
- assert.equal(nodeLiveRuntime.managedRuntime?.id, 'npm', 'JavaScript Live View commands should keep the managed npm hook.');
76
- assert.equal(nodeLiveRuntime.available, true, 'Managed npm should keep JavaScript projects runnable when npm is missing.');
77
- assert.match(nodeLiveRuntime.reason, /Node package runner/i, 'Managed npm diagnostics should explain the package runner.');
78
-
79
- const phpLiveRuntime = await resolveLiveViewRuntime({
80
- id: 'php-built-in',
81
- label: 'PHP built-in server',
82
- framework: 'PHP',
83
- command: 'php',
84
- args: ['-S', '127.0.0.1:$PORT', '-t', '.'],
85
- displayCommand: 'php -S 127.0.0.1:$PORT -t .',
86
- }, {
87
- env: {
88
- ...process.env,
89
- PATH: '',
90
- Path: '',
91
- },
92
- preferManaged: true,
93
- });
94
- assert.equal(phpLiveRuntime.runtime.id, 'php', 'PHP Live View commands should resolve to the PHP runtime.');
95
- assert.equal(phpLiveRuntime.managedRuntime?.id, 'frankenphp', 'PHP Live View commands should keep the managed FrankenPHP hook.');
96
- assert.equal(phpLiveRuntime.available, true, 'Managed PHP should keep PHP projects runnable when php is missing.');
97
- assert.match(phpLiveRuntime.reason, /PHP runtime/i, 'Managed PHP diagnostics should explain the Pixcode runtime.');
98
-
99
- console.log('runtime manager smoke passed');
1
+ #!/usr/bin/env node
2
+
3
+ import assert from 'node:assert/strict';
4
+ import fs from 'node:fs';
5
+ import path from 'node:path';
6
+
7
+ const root = process.cwd();
8
+
9
+ function read(relativePath) {
10
+ return fs.readFileSync(path.join(root, relativePath), 'utf8');
11
+ }
12
+
13
+ const managerSource = read('server/services/runtime-manager.js');
14
+ assert.match(managerSource, /RUNTIME_DEFINITIONS/, 'Runtime manager should define a central runtime registry.');
15
+ assert.match(managerSource, /node/, 'Runtime manager should include Node.js.');
16
+ assert.match(managerSource, /php/, 'Runtime manager should include PHP.');
17
+ assert.match(managerSource, /python/, 'Runtime manager should include Python.');
18
+ assert.match(managerSource, /go/, 'Runtime manager should include Go.');
19
+ assert.match(managerSource, /java/, 'Runtime manager should include Java.');
20
+ assert.match(managerSource, /rust/, 'Runtime manager should include Rust.');
21
+ assert.match(managerSource, /discoverRuntime/, 'Runtime manager should expose runtime discovery.');
22
+ assert.match(managerSource, /resolveLiveViewRuntime/, 'Runtime manager should expose Live View runtime resolution.');
23
+
24
+ const liveViewSource = read('server/services/live-view.js');
25
+ assert.match(liveViewSource, /resolveLiveViewRuntime/, 'Live View should route runtime checks through the runtime manager.');
26
+ assert.match(liveViewSource, /runtime:\s*session\.runtime/, 'Live View public session payload should expose runtime diagnostics.');
27
+ assert.ok(
28
+ liveViewSource.includes('target.runtime'),
29
+ 'Live View start should keep the runtime manager result on the session.',
30
+ );
31
+
32
+ const {
33
+ discoverRuntime,
34
+ resolveLiveViewRuntime,
35
+ runtimeManager,
36
+ } = await import('../../server/services/runtime-manager.js');
37
+
38
+ assert.equal(typeof runtimeManager.discover, 'function', 'Runtime manager should expose a discover method.');
39
+
40
+ const nodeRuntime = await discoverRuntime('node');
41
+ assert.equal(nodeRuntime.id, 'node');
42
+ assert.equal(nodeRuntime.status, 'available', 'The current Node runtime should be detected as available.');
43
+ assert.ok(nodeRuntime.path, 'Node runtime should include an executable path.');
44
+ assert.match(nodeRuntime.version || '', /\d+\.\d+\.\d+/, 'Node runtime should include a version.');
45
+
46
+ const missingPython = await discoverRuntime('python', {
47
+ strictPath: true,
48
+ env: {
49
+ ...process.env,
50
+ PATH: '',
51
+ Path: '',
52
+ },
53
+ });
54
+ assert.equal(missingPython.status, 'missing', 'Missing Python should produce a missing runtime status.');
55
+ assert.match(missingPython.diagnostic.message, /Python/i, 'Missing Python diagnostics should name the runtime.');
56
+ assert.match(missingPython.diagnostic.action, /python/i, 'Missing Python diagnostics should include an actionable install command.');
57
+
58
+ const nodeLiveRuntime = await resolveLiveViewRuntime({
59
+ id: 'npm-dev-vite',
60
+ label: 'Vite dev server',
61
+ framework: 'Vite',
62
+ command: 'npm',
63
+ args: ['run', 'dev'],
64
+ displayCommand: 'npm run dev',
65
+ packageManager: 'npm',
66
+ }, {
67
+ env: {
68
+ ...process.env,
69
+ PATH: '',
70
+ Path: '',
71
+ },
72
+ preferManaged: true,
73
+ });
74
+ assert.equal(nodeLiveRuntime.runtime.id, 'node', 'JavaScript Live View commands should resolve to the Node runtime.');
75
+ assert.equal(nodeLiveRuntime.managedRuntime?.id, 'npm', 'JavaScript Live View commands should keep the managed npm hook.');
76
+ assert.equal(nodeLiveRuntime.available, true, 'Managed npm should keep JavaScript projects runnable when npm is missing.');
77
+ assert.match(nodeLiveRuntime.reason, /Node package runner/i, 'Managed npm diagnostics should explain the package runner.');
78
+
79
+ const phpLiveRuntime = await resolveLiveViewRuntime({
80
+ id: 'php-built-in',
81
+ label: 'PHP built-in server',
82
+ framework: 'PHP',
83
+ command: 'php',
84
+ args: ['-S', '127.0.0.1:$PORT', '-t', '.'],
85
+ displayCommand: 'php -S 127.0.0.1:$PORT -t .',
86
+ }, {
87
+ env: {
88
+ ...process.env,
89
+ PATH: '',
90
+ Path: '',
91
+ },
92
+ preferManaged: true,
93
+ });
94
+ assert.equal(phpLiveRuntime.runtime.id, 'php', 'PHP Live View commands should resolve to the PHP runtime.');
95
+ assert.equal(phpLiveRuntime.managedRuntime?.id, 'frankenphp', 'PHP Live View commands should keep the managed FrankenPHP hook.');
96
+ assert.equal(phpLiveRuntime.available, true, 'Managed PHP should keep PHP projects runnable when php is missing.');
97
+ assert.match(phpLiveRuntime.reason, /PHP runtime/i, 'Managed PHP diagnostics should explain the Pixcode runtime.');
98
+
99
+ console.log('runtime manager smoke passed');
@@ -1,30 +1,30 @@
1
- #!/usr/bin/env node
2
-
3
- import assert from 'node:assert/strict';
4
- import { readFileSync } from 'node:fs';
5
-
6
- const connectionSource = readFileSync('src/components/shell/hooks/useShellConnection.ts', 'utf8');
7
- const runtimeSource = readFileSync('src/components/shell/hooks/useShellRuntime.ts', 'utf8');
8
-
9
- assert.ok(
10
- connectionSource.includes('manualDisconnectRef'),
11
- 'Shell connection should track manual disconnects separately from socket closes.',
12
- );
13
- assert.ok(
14
- connectionSource.includes('manualDisconnectRef.current = true'),
15
- 'Manual disconnect should disable auto-reconnect.',
16
- );
17
- assert.ok(
18
- connectionSource.includes('manualDisconnectRef.current = false'),
19
- 'Explicit connect should re-enable connection attempts.',
20
- );
21
- assert.ok(
22
- connectionSource.includes('manualDisconnectRef.current'),
23
- 'Auto-connect effect should check the manual disconnect guard.',
24
- );
25
- assert.ok(
26
- runtimeSource.includes('disconnectFromShell(false)'),
27
- 'Internal project/session/restart disconnects should not set the manual disconnect guard.',
28
- );
29
-
30
- console.log('shell manual disconnect smoke passed');
1
+ #!/usr/bin/env node
2
+
3
+ import assert from 'node:assert/strict';
4
+ import { readFileSync } from 'node:fs';
5
+
6
+ const connectionSource = readFileSync('src/components/shell/hooks/useShellConnection.ts', 'utf8');
7
+ const runtimeSource = readFileSync('src/components/shell/hooks/useShellRuntime.ts', 'utf8');
8
+
9
+ assert.ok(
10
+ connectionSource.includes('manualDisconnectRef'),
11
+ 'Shell connection should track manual disconnects separately from socket closes.',
12
+ );
13
+ assert.ok(
14
+ connectionSource.includes('manualDisconnectRef.current = true'),
15
+ 'Manual disconnect should disable auto-reconnect.',
16
+ );
17
+ assert.ok(
18
+ connectionSource.includes('manualDisconnectRef.current = false'),
19
+ 'Explicit connect should re-enable connection attempts.',
20
+ );
21
+ assert.ok(
22
+ connectionSource.includes('manualDisconnectRef.current'),
23
+ 'Auto-connect effect should check the manual disconnect guard.',
24
+ );
25
+ assert.ok(
26
+ runtimeSource.includes('disconnectFromShell(false)'),
27
+ 'Internal project/session/restart disconnects should not set the manual disconnect guard.',
28
+ );
29
+
30
+ console.log('shell manual disconnect smoke passed');
@@ -1,34 +1,34 @@
1
- #!/usr/bin/env node
2
-
3
- import assert from 'node:assert/strict';
4
- import { readFileSync } from 'node:fs';
5
-
6
- const mainSource = readFileSync('src/components/main-content/view/MainContent.tsx', 'utf8');
7
- const editorSource = readFileSync('src/components/code-editor/view/EditorSidebar.tsx', 'utf8');
8
-
9
- assert.ok(
10
- mainSource.includes('SIDE_PANEL_MAX_WIDTH = 50'),
11
- 'Side panel split width should be capped at half of the main surface.',
12
- );
13
- assert.ok(
14
- mainSource.includes('dockEditorInsideFilesPanel'),
15
- 'Files tab should dock the editor inside the files side panel.',
16
- );
17
- assert.ok(
18
- mainSource.includes('showSidePanelSplit)'),
19
- 'Side panel split should remain active even when a file editor is open.',
20
- );
21
- assert.ok(
22
- mainSource.includes('!dockEditorInsideFilesPanel &&'),
23
- 'Global editor sidebar should not render when the editor is docked inside the files panel.',
24
- );
25
- assert.ok(
26
- mainSource.includes('max-w-[50%]'),
27
- 'The file list column inside the files panel should be capped at 50%.',
28
- );
29
- assert.ok(
30
- editorSource.includes("useFlexLayout ? 'flex-1' : ''"),
31
- 'EditorSidebar should fill inline docked space when fillSpace is enabled.',
32
- );
33
-
34
- console.log('side panel editor layout smoke passed');
1
+ #!/usr/bin/env node
2
+
3
+ import assert from 'node:assert/strict';
4
+ import { readFileSync } from 'node:fs';
5
+
6
+ const mainSource = readFileSync('src/components/main-content/view/MainContent.tsx', 'utf8');
7
+ const editorSource = readFileSync('src/components/code-editor/view/EditorSidebar.tsx', 'utf8');
8
+
9
+ assert.ok(
10
+ mainSource.includes('SIDE_PANEL_MAX_WIDTH = 50'),
11
+ 'Side panel split width should be capped at half of the main surface.',
12
+ );
13
+ assert.ok(
14
+ mainSource.includes('dockEditorInsideFilesPanel'),
15
+ 'Files tab should dock the editor inside the files side panel.',
16
+ );
17
+ assert.ok(
18
+ mainSource.includes('showSidePanelSplit)'),
19
+ 'Side panel split should remain active even when a file editor is open.',
20
+ );
21
+ assert.ok(
22
+ mainSource.includes('!dockEditorInsideFilesPanel &&'),
23
+ 'Global editor sidebar should not render when the editor is docked inside the files panel.',
24
+ );
25
+ assert.ok(
26
+ mainSource.includes('max-w-[50%]'),
27
+ 'The file list column inside the files panel should be capped at 50%.',
28
+ );
29
+ assert.ok(
30
+ editorSource.includes("useFlexLayout ? 'flex-1' : ''"),
31
+ 'EditorSidebar should fill inline docked space when fillSpace is enabled.',
32
+ );
33
+
34
+ console.log('side panel editor layout smoke passed');
@@ -1,21 +1,21 @@
1
- #!/usr/bin/env node
2
-
3
- import assert from 'node:assert/strict';
4
- import { readFileSync } from 'node:fs';
5
-
6
- const source = readFileSync('server/index.js', 'utf8');
7
- const distStatic = "app.use(express.static(path.join(APP_ROOT, 'dist')";
8
- const publicStatic = "app.use(express.static(path.join(APP_ROOT, 'public')";
9
-
10
- const distIndex = source.indexOf(distStatic);
11
- const publicIndex = source.indexOf(publicStatic);
12
-
13
- assert.ok(distIndex !== -1, 'dist static middleware is missing');
14
- assert.ok(publicIndex !== -1, 'public static middleware is missing');
15
- assert.ok(distIndex < publicIndex, 'dist static middleware must run before public');
16
- assert.ok(
17
- source.slice(publicIndex, publicIndex + 160).includes('index: false'),
18
- 'public static middleware must not serve public/index.html for /',
19
- );
20
-
21
- console.log('static root routing smoke passed');
1
+ #!/usr/bin/env node
2
+
3
+ import assert from 'node:assert/strict';
4
+ import { readFileSync } from 'node:fs';
5
+
6
+ const source = readFileSync('server/index.js', 'utf8');
7
+ const distStatic = "app.use(express.static(path.join(APP_ROOT, 'dist')";
8
+ const publicStatic = "app.use(express.static(path.join(APP_ROOT, 'public')";
9
+
10
+ const distIndex = source.indexOf(distStatic);
11
+ const publicIndex = source.indexOf(publicStatic);
12
+
13
+ assert.ok(distIndex !== -1, 'dist static middleware is missing');
14
+ assert.ok(publicIndex !== -1, 'public static middleware is missing');
15
+ assert.ok(distIndex < publicIndex, 'dist static middleware must run before public');
16
+ assert.ok(
17
+ source.slice(publicIndex, publicIndex + 160).includes('index: false'),
18
+ 'public static middleware must not serve public/index.html for /',
19
+ );
20
+
21
+ console.log('static root routing smoke passed');
@@ -1,60 +1,60 @@
1
- #!/usr/bin/env node
2
-
3
- import assert from 'node:assert/strict';
4
- import { readFileSync } from 'node:fs';
5
-
6
- const source = readFileSync('server/modules/orchestration/workflows/workflow-runner.ts', 'utf8');
7
- const types = readFileSync('server/modules/orchestration/workflows/workflow.types.ts', 'utf8');
8
- const panel = readFileSync('src/components/orchestration/workflows/WorkflowRunPanel.tsx', 'utf8');
9
-
10
- assert.ok(
11
- types.includes('internal?: boolean'),
12
- 'Workflow nodes/runs should carry an internal flag so init/compact packets stay out of user-facing output.',
13
- );
14
-
15
- assert.ok(
16
- source.includes('handoffInitPrompt('),
17
- 'Strict handoff should create an internal init prompt before each agent work step.',
18
- );
19
-
20
- assert.ok(
21
- source.includes('handoffCompactPrompt('),
22
- 'Strict handoff should create an internal compact prompt after each agent work step.',
23
- );
24
-
25
- assert.ok(
26
- source.includes("safeAgentNodeId(agent, index, 'init')"),
27
- 'Sequential handoff should create a per-agent init node.',
28
- );
29
-
30
- assert.ok(
31
- source.includes("safeAgentNodeId(agent, index, 'work')"),
32
- 'Sequential handoff should create a per-agent work node.',
33
- );
34
-
35
- assert.ok(
36
- source.includes("safeAgentNodeId(agent, index, 'compact')"),
37
- 'Sequential handoff should create a per-agent compact node.',
38
- );
39
-
40
- assert.ok(
41
- /inputs:\s*index === 0\s*\?\s*\[\]\s*:\s*\[safeAgentNodeId\(agents\[index - 1\], index - 1, 'compact'\)\]/m.test(source),
42
- 'Each init node after the first must depend on the previous agent compact node.',
43
- );
44
-
45
- assert.ok(
46
- /inputs:\s*\[initNodeId\]/m.test(source),
47
- 'Each work node must depend on its init node.',
48
- );
49
-
50
- assert.ok(
51
- /inputs:\s*\[workNodeId\]/m.test(source),
52
- 'Each compact node must depend on its work node.',
53
- );
54
-
55
- assert.ok(
56
- panel.includes('visibleNodeRuns'),
57
- 'Workflow UI should filter internal init/compact node runs from visible output.',
58
- );
59
-
60
- console.log('strict handoff compact smoke passed');
1
+ #!/usr/bin/env node
2
+
3
+ import assert from 'node:assert/strict';
4
+ import { readFileSync } from 'node:fs';
5
+
6
+ const source = readFileSync('server/modules/orchestration/workflows/workflow-runner.ts', 'utf8');
7
+ const types = readFileSync('server/modules/orchestration/workflows/workflow.types.ts', 'utf8');
8
+ const panel = readFileSync('src/components/orchestration/workflows/WorkflowRunPanel.tsx', 'utf8');
9
+
10
+ assert.ok(
11
+ types.includes('internal?: boolean'),
12
+ 'Workflow nodes/runs should carry an internal flag so init/compact packets stay out of user-facing output.',
13
+ );
14
+
15
+ assert.ok(
16
+ source.includes('handoffInitPrompt('),
17
+ 'Strict handoff should create an internal init prompt before each agent work step.',
18
+ );
19
+
20
+ assert.ok(
21
+ source.includes('handoffCompactPrompt('),
22
+ 'Strict handoff should create an internal compact prompt after each agent work step.',
23
+ );
24
+
25
+ assert.ok(
26
+ source.includes("safeAgentNodeId(agent, index, 'init')"),
27
+ 'Sequential handoff should create a per-agent init node.',
28
+ );
29
+
30
+ assert.ok(
31
+ source.includes("safeAgentNodeId(agent, index, 'work')"),
32
+ 'Sequential handoff should create a per-agent work node.',
33
+ );
34
+
35
+ assert.ok(
36
+ source.includes("safeAgentNodeId(agent, index, 'compact')"),
37
+ 'Sequential handoff should create a per-agent compact node.',
38
+ );
39
+
40
+ assert.ok(
41
+ /inputs:\s*index === 0\s*\?\s*\[\]\s*:\s*\[safeAgentNodeId\(agents\[index - 1\], index - 1, 'compact'\)\]/m.test(source),
42
+ 'Each init node after the first must depend on the previous agent compact node.',
43
+ );
44
+
45
+ assert.ok(
46
+ /inputs:\s*\[initNodeId\]/m.test(source),
47
+ 'Each work node must depend on its init node.',
48
+ );
49
+
50
+ assert.ok(
51
+ /inputs:\s*\[workNodeId\]/m.test(source),
52
+ 'Each compact node must depend on its work node.',
53
+ );
54
+
55
+ assert.ok(
56
+ panel.includes('visibleNodeRuns'),
57
+ 'Workflow UI should filter internal init/compact node runs from visible output.',
58
+ );
59
+
60
+ console.log('strict handoff compact smoke passed');
@@ -1,24 +1,24 @@
1
- #!/usr/bin/env node
2
-
3
- import assert from 'node:assert/strict';
4
- import { existsSync, readFileSync } from 'node:fs';
5
-
6
- const read = (path) => readFileSync(path, 'utf8');
7
-
8
- const serverIndex = read('server/index.js');
9
- const api = read('src/utils/api.js');
10
- const app = read('src/App.tsx');
11
- const settings = read('src/components/settings/view/Settings.tsx');
12
- const settingsSidebar = read('src/components/settings/view/SettingsSidebar.tsx');
13
-
14
- assert.doesNotMatch(serverIndex, /taskmasterRoutes|\/api\/taskmaster/, 'TaskMaster API route should not be mounted.');
15
- assert.doesNotMatch(api, /taskmaster:\s*\{|\/api\/taskmaster/, 'Frontend API client should not expose TaskMaster endpoints.');
16
- assert.doesNotMatch(app, /TaskMasterProvider/, 'App should not mount TaskMasterProvider.');
17
- assert.doesNotMatch(settings, /TasksSettingsTab|activeTab === 'tasks'/, 'Settings should not render the TaskMaster settings tab.');
18
- assert.doesNotMatch(settingsSidebar, /mainTabs\.tasks|id: 'tasks'/, 'Settings navigation should not include Tasks.');
19
- assert.ok(!existsSync('src/components/onboarding/view/subcomponents/TaskSystemStep.tsx'), 'TaskMaster onboarding step should be removed.');
20
- assert.ok(!existsSync('src/components/task-master'), 'TaskMaster component directory should be removed.');
21
- assert.ok(!existsSync('src/components/prd-editor'), 'TaskMaster PRD editor should be removed.');
22
- assert.ok(!existsSync('server/routes/taskmaster.js'), 'TaskMaster backend route file should be removed.');
23
-
24
- console.log('taskmaster removal smoke passed');
1
+ #!/usr/bin/env node
2
+
3
+ import assert from 'node:assert/strict';
4
+ import { existsSync, readFileSync } from 'node:fs';
5
+
6
+ const read = (path) => readFileSync(path, 'utf8');
7
+
8
+ const serverIndex = read('server/index.js');
9
+ const api = read('src/utils/api.js');
10
+ const app = read('src/App.tsx');
11
+ const settings = read('src/components/settings/view/Settings.tsx');
12
+ const settingsSidebar = read('src/components/settings/view/SettingsSidebar.tsx');
13
+
14
+ assert.doesNotMatch(serverIndex, /taskmasterRoutes|\/api\/taskmaster/, 'TaskMaster API route should not be mounted.');
15
+ assert.doesNotMatch(api, /taskmaster:\s*\{|\/api\/taskmaster/, 'Frontend API client should not expose TaskMaster endpoints.');
16
+ assert.doesNotMatch(app, /TaskMasterProvider/, 'App should not mount TaskMasterProvider.');
17
+ assert.doesNotMatch(settings, /TasksSettingsTab|activeTab === 'tasks'/, 'Settings should not render the TaskMaster settings tab.');
18
+ assert.doesNotMatch(settingsSidebar, /mainTabs\.tasks|id: 'tasks'/, 'Settings navigation should not include Tasks.');
19
+ assert.ok(!existsSync('src/components/onboarding/view/subcomponents/TaskSystemStep.tsx'), 'TaskMaster onboarding step should be removed.');
20
+ assert.ok(!existsSync('src/components/task-master'), 'TaskMaster component directory should be removed.');
21
+ assert.ok(!existsSync('src/components/prd-editor'), 'TaskMaster PRD editor should be removed.');
22
+ assert.ok(!existsSync('server/routes/taskmaster.js'), 'TaskMaster backend route file should be removed.');
23
+
24
+ console.log('taskmaster removal smoke passed');
@@ -1,3 +1,3 @@
1
- #!/usr/bin/env node
2
-
3
- import './taskmaster-config.mjs';
1
+ #!/usr/bin/env node
2
+
3
+ import './taskmaster-config.mjs';
@@ -1,3 +1,3 @@
1
- #!/usr/bin/env node
2
-
3
- import './taskmaster-config.mjs';
1
+ #!/usr/bin/env node
2
+
3
+ import './taskmaster-config.mjs';
@@ -1,3 +1,3 @@
1
- #!/usr/bin/env node
2
-
3
- import './taskmaster-config.mjs';
1
+ #!/usr/bin/env node
2
+
3
+ import './taskmaster-config.mjs';