crewx 0.9.0-rc.146 → 0.9.0-rc.148

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 (602) hide show
  1. package/bin/cli-commands.js +1 -38
  2. package/bin/crewx-lib.js +2 -271
  3. package/bin/crewx-ui.js +1 -79
  4. package/bin/crewx.js +2 -361
  5. package/bin/launcher-flags.js +1 -29
  6. package/crewx-host.js +1 -5
  7. package/dist/assets/{GitDiffEditor-BwFarVFb.js → GitDiffEditor-BSN6Y_VC.js} +7 -7
  8. package/dist/assets/{MarketPage-BpD0NYUK.js → MarketPage-BsyF4lHT.js} +3 -3
  9. package/dist/assets/{PromptTab-Tu6b3P4y.js → PromptTab-Bz8K4xe6.js} +4 -4
  10. package/dist/assets/abnfDiagram-VCTEODGH-jOB0PTtL.js +1 -0
  11. package/dist/assets/arc-D1U6k3PI.js +1 -0
  12. package/dist/assets/architectureDiagram-5GKGNRK7-CKrj6CjD.js +36 -0
  13. package/dist/assets/blockDiagram-I7D4REHJ-CsrL08vU.js +129 -0
  14. package/dist/assets/c4Diagram-7LVT6UL2-B6__C0zv.js +38 -0
  15. package/dist/assets/channel-BDzxlKQg.js +1 -0
  16. package/dist/assets/{chunk-KFBOBJHC-BYrlBCuI.js → chunk-2Q5K7J3B-K3cQ2LQu.js} +1 -1
  17. package/dist/assets/chunk-5VM5RSS4-C_TAFgcF.js +15 -0
  18. package/dist/assets/chunk-F27PBJKO-BvaJEuNR.js +1 -0
  19. package/dist/assets/chunk-IMKFNOWR-DfZsoY9N.js +231 -0
  20. package/dist/assets/{chunk-TMUBEWPD-C2ThtHoT.js → chunk-JWPE2WC7-BmM3R2Qi.js} +1 -1
  21. package/dist/assets/chunk-POPQ4Y6H-B55TF3Ru.js +1 -0
  22. package/dist/assets/chunk-SVP7TREG-BcroxwQx.js +88 -0
  23. package/dist/assets/chunk-TICWLB2K-BynR0cBD.js +206 -0
  24. package/dist/assets/chunk-XXDRQBXY-CQf2O4J0.js +1 -0
  25. package/dist/assets/classDiagram-ZZMXUADV-B7_IXJnx.js +1 -0
  26. package/dist/assets/classDiagram-v2-VYDZK3BY-B7_IXJnx.js +1 -0
  27. package/dist/assets/cose-bilkent-JH36ORCC-Dp2MnsYx.js +1 -0
  28. package/dist/assets/{cssMode-BWAH4ysa.js → cssMode-DdeH_0vH.js} +1 -1
  29. package/dist/assets/cynefin-OW5HDTMX-DNliLC8A.js +184 -0
  30. package/dist/assets/cynefinDiagram-5FMLGOSQ-BnLfHAtl.js +62 -0
  31. package/dist/assets/cytoscape.esm-C5JX3QLV.js +331 -0
  32. package/dist/assets/dagre-GXQ25YYZ-B0CRhoJf.js +4 -0
  33. package/dist/assets/defaultLocale-DX6XiGOO.js +1 -0
  34. package/dist/assets/diagram-S7CK7UJ4-BzUq9An4.js +30 -0
  35. package/dist/assets/diagram-UQ7AKVKN-Cv5FsMwC.js +41 -0
  36. package/dist/assets/diagram-VSXAHHWV-Dl2Tetll.js +3 -0
  37. package/dist/assets/diagram-VX7I27RA-DAQrZVis.js +24 -0
  38. package/dist/assets/diagram-Z3DM3KII-BZMduo9O.js +24 -0
  39. package/dist/assets/ebnfDiagram-PWID7BFC-CCeYs1d1.js +1 -0
  40. package/dist/assets/erDiagram-RLTQ6QDP-DCIqYkwg.js +99 -0
  41. package/dist/assets/flowDiagram-HODETNUW-D8Hr2R2I.js +168 -0
  42. package/dist/assets/{freemarker2-CMAHVUZM.js → freemarker2-r4wxApUP.js} +1 -1
  43. package/dist/assets/ganttDiagram-EL5Y4UJY-B7-IVgsn.js +292 -0
  44. package/dist/assets/gitGraphDiagram-WWUBYQGX-C2XfUQ-X.js +106 -0
  45. package/dist/assets/{handlebars-C7hjKQpn.js → handlebars-DFvpcIcO.js} +1 -1
  46. package/dist/assets/{html-DnzIZNCw.js → html-CkEv0wV6.js} +1 -1
  47. package/dist/assets/{htmlMode-CdSI_ksK.js → htmlMode-Cok83WI8.js} +1 -1
  48. package/dist/assets/infoDiagram-27XIBGKW-CjgZblHF.js +2 -0
  49. package/dist/assets/ishikawaDiagram-5VMMS53U-BqJ3iSpm.js +70 -0
  50. package/dist/assets/{javascript-B-eRihcq.js → javascript-DqZ8SfxZ.js} +1 -1
  51. package/dist/assets/journeyDiagram-3NMN7TZE-BfES-hav.js +139 -0
  52. package/dist/assets/{jsonMode-DA2SORt2.js → jsonMode-CYBonOK6.js} +1 -1
  53. package/dist/assets/{kanban-definition-QRCXZQQD-BsUkwhZS.js → kanban-definition-UXKFOSKX-BIXe0cHu.js} +9 -8
  54. package/dist/assets/katex-C5jXJg4s.js +257 -0
  55. package/dist/assets/layout-DISPlbn7.js +1 -0
  56. package/dist/assets/linear-DsVyj2jo.js +1 -0
  57. package/dist/assets/{liquid-D6WdELjd.js → liquid-CueKempV.js} +1 -1
  58. package/dist/assets/{main-DR8ltN55.js → main-B3kAPKS3.js} +708 -585
  59. package/dist/assets/main-DIIQkwB_.css +10 -0
  60. package/dist/assets/{mdx-BXouQmj9.js → mdx-p-ij4JD6.js} +1 -1
  61. package/dist/assets/mindmap-definition-YA3MSWOX-DynE6BvN.js +96 -0
  62. package/dist/assets/pegDiagram-XKGWAZYB-x1E0p7Dd.js +1 -0
  63. package/dist/assets/pieDiagram-E7YTZNPT-CFBXNhTu.js +39 -0
  64. package/dist/assets/{python-BSbm0gVv.js → python-DrB6dLZU.js} +1 -1
  65. package/dist/assets/quadrantDiagram-AXDQQJYC-DCv0fRJh.js +7 -0
  66. package/dist/assets/railroadDiagram-O6MQD6OU-DRav2Q1O.js +1 -0
  67. package/dist/assets/{razor-ROGZokQz.js → razor-BvwPLTzH.js} +1 -1
  68. package/dist/assets/requirementDiagram-BXWQKSXE-wXuJIaeL.js +84 -0
  69. package/dist/assets/sankeyDiagram-P5KCCOFB-CDP7F0M1.js +40 -0
  70. package/dist/assets/sequenceDiagram-WJ2MYXX4-CUXv2iLV.js +162 -0
  71. package/dist/assets/sizeCapture-INFHLROL-DalqgTJH.js +1 -0
  72. package/dist/assets/stateDiagram-D77RDMKH-DIcz8FK2.js +1 -0
  73. package/dist/assets/stateDiagram-v2-MP3YSRHH-CEyXMP6-.js +1 -0
  74. package/dist/assets/swimlanes-42K2YHIH-hFY13NxM.js +1 -0
  75. package/dist/assets/swimlanesDiagram-VR7AAH4N-DW_mSHHb.js +8 -0
  76. package/dist/assets/timeline-definition-24CTP7MA-DZQnc0bj.js +120 -0
  77. package/dist/assets/{transformers.web-Dla8T0ND.js → transformers.web-ViR5nI20.js} +1 -1
  78. package/dist/assets/{tsMode-CDAzNI0l.js → tsMode-BmFNF_cf.js} +1 -1
  79. package/dist/assets/{typescript-BtiDrkmJ.js → typescript-C_0hifHX.js} +1 -1
  80. package/dist/assets/vennDiagram-4TSXK5OY-DL9ah76F.js +34 -0
  81. package/dist/assets/wardleyDiagram-VM6X3IG4-D46bPUzE.js +78 -0
  82. package/dist/assets/{xml-C0Wa-K83.js → xml-DuK5jnlh.js} +1 -1
  83. package/dist/assets/xychartDiagram-S5SC5T6Z-BKe3G6QA.js +7 -0
  84. package/dist/assets/{yaml-DlIjsQR6.js → yaml-wUMNT_xW.js} +1 -1
  85. package/dist/index.html +3 -3
  86. package/dist/ui-build.json +1 -1
  87. package/dist-apps/apps/html-viewer/SKILL.md +68 -0
  88. package/dist-apps/apps/html-viewer/manifest.json +91 -0
  89. package/dist-apps/apps/html-viewer/ui/index.html +199 -0
  90. package/dist-apps/apps/html-viewer/ui/state.json +3 -0
  91. package/dist-apps/bundle-index.json +1 -1
  92. package/dist-server/__stubs__/ccusage-codex.js +1 -8
  93. package/dist-server/adapters/adapter.module.js +1 -35
  94. package/dist-server/adapters/adapter.service.js +1 -79
  95. package/dist-server/adapters/http-router.service.js +1 -91
  96. package/dist-server/app.module.js +1 -158
  97. package/dist-server/bootstrap/browser-open.js +1 -33
  98. package/dist-server/bootstrap/codex-writable-roots.js +1 -111
  99. package/dist-server/bootstrap/crewx-server.js +1 -115
  100. package/dist-server/bootstrap/env.js +1 -45
  101. package/dist-server/bootstrap/tls.js +1 -885
  102. package/dist-server/common/analytics.client.js +1 -180
  103. package/dist-server/common/analytics.module.js +1 -21
  104. package/dist-server/common/cache/provider-limit-cache.js +1 -474
  105. package/dist-server/common/cache-db.js +3 -221
  106. package/dist-server/common/cors.js +1 -15
  107. package/dist-server/common/crewx-workspace-root.js +1 -42
  108. package/dist-server/common/current-user.js +1 -14
  109. package/dist-server/common/decorator/cached.decorator.js +1 -35
  110. package/dist-server/common/decorator/skip-request-log.decorator.js +1 -8
  111. package/dist-server/common/decorators/project.decorator.js +1 -21
  112. package/dist-server/common/decorators/workspace.decorator.js +1 -24
  113. package/dist-server/common/device-id.js +1 -33
  114. package/dist-server/common/guard/request-log-metadata.guard.js +1 -58
  115. package/dist-server/common/interceptor/api-id-header.interceptor.js +1 -53
  116. package/dist-server/common/interceptor/http-logging.interceptor.js +1 -393
  117. package/dist-server/common/limits/defaults.js +1 -15
  118. package/dist-server/common/limits/limits-provider.js +1 -6
  119. package/dist-server/common/limits/limits.controller.js +1 -38
  120. package/dist-server/common/limits/limits.module.js +1 -24
  121. package/dist-server/common/limits/local-limits.provider.js +1 -27
  122. package/dist-server/common/mcp-app-sandbox-boundary.js +5 -188
  123. package/dist-server/common/mcp-app-sandbox-contract.js +1 -802
  124. package/dist-server/common/middleware/request-log-lifecycle.middleware.js +1 -65
  125. package/dist-server/common/middleware/workspace.middleware.js +1 -210
  126. package/dist-server/common/pending-instruction.js +1 -27
  127. package/dist-server/common/product-app-bundle.generated.js +1 -7
  128. package/dist-server/common/product-app-bundle.js +1 -54
  129. package/dist-server/common/repository.exception-filter.js +1 -48
  130. package/dist-server/common/request-log/request-log-context.js +1 -138
  131. package/dist-server/common/request-log/request-log-principal.js +1 -75
  132. package/dist-server/common/security/instruction-sanitizer.js +1 -191
  133. package/dist-server/common/security/secret-mask.js +1 -48
  134. package/dist-server/common/task-display-provider.js +1 -61
  135. package/dist-server/common/task-error-projection.js +1 -416
  136. package/dist-server/common/task-log/progress-steps.js +1 -70
  137. package/dist-server/common/task-log/provider-resume.js +1 -406
  138. package/dist-server/common/task-log/public-log-projection.fixtures.js +1 -153
  139. package/dist-server/common/task-log/public-log-projection.js +1 -196
  140. package/dist-server/common/task-log/public-log-projection.past-tool-use.fixtures.js +1 -242
  141. package/dist-server/common/task-log/stdout-json-fallback.js +1 -10
  142. package/dist-server/common/task-result-projection.js +1 -25
  143. package/dist-server/common/task-stop.js +1 -44
  144. package/dist-server/common/task-terminal-reason.js +1 -14
  145. package/dist-server/common/task-usage-accounting.js +1 -34
  146. package/dist-server/common/ui/derive-ui-actor.js +1 -39
  147. package/dist-server/common/ui/resolve-task-actor.js +1 -37
  148. package/dist-server/common/ui/ui-runtime-http-error.js +1 -48
  149. package/dist-server/common/validation.pipe.js +1 -79
  150. package/dist-server/common/workspace-context.store.js +1 -25
  151. package/dist-server/domain/account/account-auth-url.js +1 -17
  152. package/dist-server/domain/account/account-error.constants.js +1 -23
  153. package/dist-server/domain/account/account-error.exception-filter.js +1 -32
  154. package/dist-server/domain/account/account-profile.service.js +1 -106
  155. package/dist-server/domain/account/account-session.guard.js +1 -34
  156. package/dist-server/domain/account/account.controller.js +1 -244
  157. package/dist-server/domain/account/account.module.js +1 -95
  158. package/dist-server/domain/account/auth-json.store.js +1 -45
  159. package/dist-server/domain/account/auth-json.types.js +1 -2
  160. package/dist-server/domain/account/device-flow.service.js +1 -274
  161. package/dist-server/domain/account/token-refresh.service.js +1 -183
  162. package/dist-server/domain/agent/agent.controller.js +1 -124
  163. package/dist-server/domain/agent/agent.module.js +1 -27
  164. package/dist-server/domain/agent/agent.service.js +1 -1077
  165. package/dist-server/domain/agent/agent.types.js +1 -3
  166. package/dist-server/domain/agent/builtin-agent-loader.js +1 -47
  167. package/dist-server/domain/agent/dto/create-agent.dto.js +1 -94
  168. package/dist-server/domain/agent/dto/preview-prompt.dto.js +1 -77
  169. package/dist-server/domain/agent/dto/provider-meta.dto.js +1 -2
  170. package/dist-server/domain/agent/dto/remote-provider.dto.js +1 -82
  171. package/dist-server/domain/agent/dto/reorder-agents.dto.js +1 -51
  172. package/dist-server/domain/agent/dto/update-agent.dto.js +1 -94
  173. package/dist-server/domain/agent/provider.controller.js +1 -49
  174. package/dist-server/domain/agent/template-processor.service.js +1 -71
  175. package/dist-server/domain/agent-suggestion/agent-suggestion.controller.js +1 -104
  176. package/dist-server/domain/agent-suggestion/agent-suggestion.module.js +1 -27
  177. package/dist-server/domain/agent-suggestion/agent-suggestion.service.js +1 -582
  178. package/dist-server/domain/agent-suggestion/analysis/evidence-json.js +1 -14
  179. package/dist-server/domain/agent-suggestion/analysis/h1-evidence.js +2 -325
  180. package/dist-server/domain/agent-suggestion/analysis/h1-prompt.js +42 -207
  181. package/dist-server/domain/agent-suggestion/analysis/h3-rules.js +1 -85
  182. package/dist-server/domain/agent-suggestion/analysis/index.js +1 -22
  183. package/dist-server/domain/agent-suggestion/analysis/merge3.js +2 -192
  184. package/dist-server/domain/agent-suggestion/analysis/secret-redaction.js +1 -61
  185. package/dist-server/domain/agent-suggestion/analysis/types.js +1 -7
  186. package/dist-server/domain/agent-suggestion/dto/apply-batch.dto.js +1 -26
  187. package/dist-server/domain/agent-suggestion/dto/suggestion-response.dto.js +1 -2
  188. package/dist-server/domain/app/app-list.types.js +1 -9
  189. package/dist-server/domain/app/app.controller.js +1 -53
  190. package/dist-server/domain/app/app.module.js +1 -26
  191. package/dist-server/domain/app/app.service.js +1 -475
  192. package/dist-server/domain/app/dto/app-list.dto.js +1 -2
  193. package/dist-server/domain/app-dev/app-dev.controller.js +1 -342
  194. package/dist-server/domain/app-dev/app-dev.module.js +1 -27
  195. package/dist-server/domain/app-dev/app-dev.service.js +2 -1251
  196. package/dist-server/domain/auth/auth-cookie-policy.js +1 -61
  197. package/dist-server/domain/auth/auth.constants.js +1 -4
  198. package/dist-server/domain/auth/auth.controller.js +1 -233
  199. package/dist-server/domain/auth/auth.module.js +1 -49
  200. package/dist-server/domain/auth/decorators/public.decorator.js +1 -7
  201. package/dist-server/domain/auth/guards/base-auth.guard.js +1 -239
  202. package/dist-server/domain/auth/guards/csrf.guard.js +1 -58
  203. package/dist-server/domain/auth/guards/local-only.guard.js +1 -48
  204. package/dist-server/domain/auth/guards/shortcut-csrf.guard.js +1 -12
  205. package/dist-server/domain/auth/local-pairing.service.js +1 -148
  206. package/dist-server/domain/auth/local-secret.js +1 -251
  207. package/dist-server/domain/auth/local-transport-policy.js +1 -305
  208. package/dist-server/domain/auth/session-store.js +3 -176
  209. package/dist-server/domain/auth/sessions-db.js +2 -86
  210. package/dist-server/domain/auth/utils/ip.utils.js +1 -36
  211. package/dist-server/domain/board/board.controller.js +1 -115
  212. package/dist-server/domain/board/board.module.js +1 -26
  213. package/dist-server/domain/board/board.service.js +1 -747
  214. package/dist-server/domain/board/board.types.js +1 -2
  215. package/dist-server/domain/board/dto/create-board-batch.dto.js +1 -25
  216. package/dist-server/domain/board/dto/create-board.dto.js +1 -54
  217. package/dist-server/domain/board/dto/plan-board.dto.js +1 -24
  218. package/dist-server/domain/board/dto/update-board.dto.js +1 -31
  219. package/dist-server/domain/box/box.controller.js +1 -77
  220. package/dist-server/domain/box/box.module.js +1 -21
  221. package/dist-server/domain/box/box.service.js +1 -97
  222. package/dist-server/domain/box/dto/create-box.dto.js +1 -74
  223. package/dist-server/domain/cli/cli-local-only.guard.js +1 -46
  224. package/dist-server/domain/cli/cli.controller.js +4 -194
  225. package/dist-server/domain/cli/cli.module.js +1 -25
  226. package/dist-server/domain/cli/cli.service.js +3 -1568
  227. package/dist-server/domain/cli/dto/cli-auth-status-query.dto.js +1 -25
  228. package/dist-server/domain/cli/dto/login-cli.dto.js +1 -25
  229. package/dist-server/domain/cli/dto/update-cli.dto.js +1 -31
  230. package/dist-server/domain/cron/cron-bootstrap.service.js +1 -1048
  231. package/dist-server/domain/cron/cron-runtime-host.module.js +1 -41
  232. package/dist-server/domain/cron/cron-runtime-sync.port.js +1 -13
  233. package/dist-server/domain/cron/cron-runtime-sync.service.js +1 -259
  234. package/dist-server/domain/cron/cron.controller.js +1 -182
  235. package/dist-server/domain/cron/cron.module.js +1 -24
  236. package/dist-server/domain/cron/cron.service.js +1 -337
  237. package/dist-server/domain/cron/dto/cron.dto.js +1 -126
  238. package/dist-server/domain/doc/doc.controller.js +1 -307
  239. package/dist-server/domain/doc/doc.module.js +1 -24
  240. package/dist-server/domain/doc/doc.service.js +1 -560
  241. package/dist-server/domain/doc/dto/doc.dto.js +1 -74
  242. package/dist-server/domain/doc/image-constants.js +1 -23
  243. package/dist-server/domain/document/document.controller.js +1 -57
  244. package/dist-server/domain/document/document.module.js +1 -22
  245. package/dist-server/domain/document/document.service.js +7 -274
  246. package/dist-server/domain/document/dto/register-document.dto.js +1 -24
  247. package/dist-server/domain/env/dto/put-env.dto.js +1 -23
  248. package/dist-server/domain/env/env.controller.js +1 -71
  249. package/dist-server/domain/env/env.module.js +1 -22
  250. package/dist-server/domain/env/env.service.js +1 -234
  251. package/dist-server/domain/events/events.module.js +1 -31
  252. package/dist-server/domain/events/server-conversation.plugin.js +1 -51
  253. package/dist-server/domain/events/workspace-event.bus.js +1 -38
  254. package/dist-server/domain/events/workspace-event.types.js +1 -32
  255. package/dist-server/domain/events/workspace-events-test.controller.js +1 -97
  256. package/dist-server/domain/events/workspace-events.controller.js +1 -60
  257. package/dist-server/domain/fs/dto/mkdir-request.dto.js +1 -47
  258. package/dist-server/domain/fs/dto/mkdir-response.dto.js +1 -2
  259. package/dist-server/domain/fs/dto/quick-access.dto.js +1 -2
  260. package/dist-server/domain/fs/dto/tree-node.dto.js +1 -2
  261. package/dist-server/domain/fs/dto/tree-query.dto.js +1 -35
  262. package/dist-server/domain/fs/fs.controller.js +1 -63
  263. package/dist-server/domain/fs/fs.module.js +1 -22
  264. package/dist-server/domain/fs/fs.service.js +1 -304
  265. package/dist-server/domain/git/git.controller.js +1 -180
  266. package/dist-server/domain/git/git.module.js +1 -22
  267. package/dist-server/domain/git/git.service.js +1 -602
  268. package/dist-server/domain/goal/dto/goal.dto.js +1 -49
  269. package/dist-server/domain/goal/goal.controller.js +1 -86
  270. package/dist-server/domain/goal/goal.module.js +1 -22
  271. package/dist-server/domain/goal/goal.service.js +1 -197
  272. package/dist-server/domain/goal/parser/goal-md-parser.js +1 -166
  273. package/dist-server/domain/goal/parser/goal-md-serializer.js +5 -108
  274. package/dist-server/domain/health/health.controller.js +1 -74
  275. package/dist-server/domain/health/health.module.js +1 -22
  276. package/dist-server/domain/health/ui-asset-revision.service.js +1 -40
  277. package/dist-server/domain/knowledge/dto/graph-knowledge.dto.js +1 -27
  278. package/dist-server/domain/knowledge/dto/knowledge.dto.js +1 -71
  279. package/dist-server/domain/knowledge/knowledge.controller.js +1 -122
  280. package/dist-server/domain/knowledge/knowledge.module.js +1 -21
  281. package/dist-server/domain/knowledge/knowledge.service.js +1 -541
  282. package/dist-server/domain/market/__fixtures__/build-fixture.js +1 -118
  283. package/dist-server/domain/market/__fixtures__/marketplace-anonymous-install.contract.js +1 -36
  284. package/dist-server/domain/market/dto/add-registry.dto.js +1 -32
  285. package/dist-server/domain/market/dto/install-apply.dto.js +1 -23
  286. package/dist-server/domain/market/dto/install-cancel.dto.js +1 -25
  287. package/dist-server/domain/market/dto/install-market.dto.js +1 -30
  288. package/dist-server/domain/market/dto/install-plan.dto.js +1 -31
  289. package/dist-server/domain/market/dto/invite-accept.dto.js +1 -25
  290. package/dist-server/domain/market/dto/publish-plan.dto.js +1 -43
  291. package/dist-server/domain/market/dto/publish-run.dto.js +1 -18
  292. package/dist-server/domain/market/dto/publisher-funnel.dto.js +1 -72
  293. package/dist-server/domain/market/dto/publisher-invite.dto.js +1 -50
  294. package/dist-server/domain/market/dto/shr-response.dto.js +1 -20
  295. package/dist-server/domain/market/first-run-event.listener.js +1 -94
  296. package/dist-server/domain/market/install-error.exception-filter.js +1 -94
  297. package/dist-server/domain/market/install-id.validation.js +1 -4
  298. package/dist-server/domain/market/install-plan-expired.exception-filter.js +1 -28
  299. package/dist-server/domain/market/install.service.js +1 -889
  300. package/dist-server/domain/market/market.controller.js +1 -451
  301. package/dist-server/domain/market/market.module.js +1 -184
  302. package/dist-server/domain/market/market.service.js +3 -1808
  303. package/dist-server/domain/market/marketplace-api.client.js +1 -616
  304. package/dist-server/domain/market/marketplace-target.js +1 -35
  305. package/dist-server/domain/market/publish.controller.js +1 -64
  306. package/dist-server/domain/market/publish.service.js +1 -343
  307. package/dist-server/domain/market/publisher-invite-labels-ledger.service.js +2 -174
  308. package/dist-server/domain/market/publisher-invite.service.js +1 -323
  309. package/dist-server/domain/market/sharing-event.client.js +1 -263
  310. package/dist-server/domain/market/sharing-installs-ledger.service.js +1 -303
  311. package/dist-server/domain/market/sharing-updates.service.js +1 -67
  312. package/dist-server/domain/market/source-coordinate.js +1 -72
  313. package/dist-server/domain/market/template-installer.js +2 -1433
  314. package/dist-server/domain/mcp/app-debug-log.js +4 -254
  315. package/dist-server/domain/mcp/browser-session.store.js +5 -297
  316. package/dist-server/domain/mcp/chromex-blacklist.js +1 -26
  317. package/dist-server/domain/mcp/chromex-negotiate.controller.js +1 -77
  318. package/dist-server/domain/mcp/chromex-negotiate.dto.js +1 -95
  319. package/dist-server/domain/mcp/chromex-negotiate.service.js +3 -237
  320. package/dist-server/domain/mcp/crewx-tool.factory.js +1 -269
  321. package/dist-server/domain/mcp/default-apps/shared.js +1 -37
  322. package/dist-server/domain/mcp/dto/open-mcp-app.dto.js +1 -46
  323. package/dist-server/domain/mcp/html-viewer.controller.js +1 -98
  324. package/dist-server/domain/mcp/html-viewer.service.js +1 -415
  325. package/dist-server/domain/mcp/mcp-app-actions.js +1 -1032
  326. package/dist-server/domain/mcp/mcp-app-assets.js +1 -31
  327. package/dist-server/domain/mcp/mcp-app-resource-csp.interceptor.js +1 -85
  328. package/dist-server/domain/mcp/mcp-app-runtime.controller.js +1 -59
  329. package/dist-server/domain/mcp/mcp-app-runtime.service.js +1 -150
  330. package/dist-server/domain/mcp/mcp-app-sandbox.service.js +2 -937
  331. package/dist-server/domain/mcp/mcp-app-workspace-asset-catalog-resolver.js +1 -94
  332. package/dist-server/domain/mcp/mcp-apps.js +1 -2983
  333. package/dist-server/domain/mcp/mcp-auth.guard.js +1 -65
  334. package/dist-server/domain/mcp/mcp.constants.js +1 -22
  335. package/dist-server/domain/mcp/mcp.controller.js +1 -128
  336. package/dist-server/domain/mcp/mcp.dto.js +1 -12
  337. package/dist-server/domain/mcp/mcp.module.js +1 -70
  338. package/dist-server/domain/mcp/mcp.service.js +1 -1882
  339. package/dist-server/domain/mcp/product-app-bundle-assets.js +1 -65
  340. package/dist-server/domain/mcp/skill-backend.port.js +1 -1123
  341. package/dist-server/domain/mcp/tool-router.service.js +1 -120
  342. package/dist-server/domain/mcp/ui-content-channel.service.js +1 -220
  343. package/dist-server/domain/message/dto/list-messages.dto.js +1 -57
  344. package/dist-server/domain/message/dto/send-message.dto.js +1 -208
  345. package/dist-server/domain/message/message.controller.js +1 -186
  346. package/dist-server/domain/message/message.module.js +1 -27
  347. package/dist-server/domain/message/message.multipart.js +1 -295
  348. package/dist-server/domain/message/message.service.js +9 -773
  349. package/dist-server/domain/notification/dto/create-notification.dto.js +1 -79
  350. package/dist-server/domain/notification/dto/list-notifications.dto.js +1 -27
  351. package/dist-server/domain/notification/notification.controller.js +1 -135
  352. package/dist-server/domain/notification/notification.module.js +1 -34
  353. package/dist-server/domain/notification/notification.service.js +1 -65
  354. package/dist-server/domain/onboarding/onboarding.controller.js +1 -97
  355. package/dist-server/domain/onboarding/onboarding.module.js +1 -23
  356. package/dist-server/domain/onboarding/onboarding.service.js +1 -106
  357. package/dist-server/domain/onboarding/onboarding.types.js +1 -2
  358. package/dist-server/domain/onboarding/presets/custom.js +1 -10
  359. package/dist-server/domain/onboarding/presets/dev-team.js +1 -41
  360. package/dist-server/domain/onboarding/presets/index.js +1 -15
  361. package/dist-server/domain/onboarding/presets/marketing-team.js +1 -29
  362. package/dist-server/domain/onboarding/presets/planning-team.js +1 -29
  363. package/dist-server/domain/onboarding/presets/solo.js +1 -17
  364. package/dist-server/domain/planner/dto/planner.dto.js +1 -58
  365. package/dist-server/domain/planner/planner.controller.js +1 -74
  366. package/dist-server/domain/planner/planner.module.js +1 -22
  367. package/dist-server/domain/planner/planner.service.js +1 -272
  368. package/dist-server/domain/project/dto/create-project-ledger.dto.js +1 -89
  369. package/dist-server/domain/project/dto/create-project.dto.js +1 -46
  370. package/dist-server/domain/project/dto/update-project.dto.js +1 -60
  371. package/dist-server/domain/project/project-ledger.controller.js +1 -72
  372. package/dist-server/domain/project/project-ledger.service.js +1 -124
  373. package/dist-server/domain/project/project.controller.js +1 -129
  374. package/dist-server/domain/project/project.module.js +1 -24
  375. package/dist-server/domain/project/project.service.js +1 -173
  376. package/dist-server/domain/settings/local-ai-server/local-ai-server.controller.js +1 -96
  377. package/dist-server/domain/settings/local-ai-server/local-ai-server.dto.js +1 -37
  378. package/dist-server/domain/settings/local-ai-server/local-ai-server.network-policy.js +1 -416
  379. package/dist-server/domain/settings/local-ai-server/local-ai-server.service.js +1 -298
  380. package/dist-server/domain/settings/local-ai-server/local-ai-server.types.js +1 -10
  381. package/dist-server/domain/settings/request-log-maintenance.js +1 -131
  382. package/dist-server/domain/settings/request-log-maintenance.service.js +1 -208
  383. package/dist-server/domain/settings/request-log-maintenance.worker.js +1 -58
  384. package/dist-server/domain/settings/request-log-prune.js +6 -191
  385. package/dist-server/domain/settings/request-log-rollup.js +8 -373
  386. package/dist-server/domain/settings/request-log-store.js +3 -118
  387. package/dist-server/domain/settings/request-logs.controller.js +1 -81
  388. package/dist-server/domain/settings/request-logs.service.js +7 -300
  389. package/dist-server/domain/settings/request-logs.types.js +1 -5
  390. package/dist-server/domain/settings/settings.controller.js +1 -63
  391. package/dist-server/domain/settings/settings.module.js +1 -59
  392. package/dist-server/domain/settings/settings.service.js +1 -645
  393. package/dist-server/domain/settings/storage-retention.js +16 -980
  394. package/dist-server/domain/settings/storage-retention.worker.js +5 -327
  395. package/dist-server/domain/settings/storage.controller.js +1 -95
  396. package/dist-server/domain/settings/storage.service.js +1 -276
  397. package/dist-server/domain/settings/storage.types.js +1 -2
  398. package/dist-server/domain/system/desktop-control.guard.js +1 -67
  399. package/dist-server/domain/system/shortcut.service.js +1 -353
  400. package/dist-server/domain/system/shortcut.types.js +1 -8
  401. package/dist-server/domain/system/shutdown.dto.js +1 -22
  402. package/dist-server/domain/system/system.controller.js +5 -268
  403. package/dist-server/domain/system/system.module.js +1 -38
  404. package/dist-server/domain/system/system.service.js +1 -50
  405. package/dist-server/domain/system/task-ownership.js +1 -32
  406. package/dist-server/domain/system/update-gate.service.js +1 -234
  407. package/dist-server/domain/task/child-task-projection.js +1 -111
  408. package/dist-server/domain/task/dto/all-tasks.dto.js +1 -55
  409. package/dist-server/domain/task/dto/descendants.dto.js +1 -46
  410. package/dist-server/domain/task/dto/list-tasks.dto.js +1 -69
  411. package/dist-server/domain/task/dto/search-tasks.dto.js +1 -66
  412. package/dist-server/domain/task/dto/send-message.dto.js +1 -41
  413. package/dist-server/domain/task/dto/task-prompt.dto.js +1 -40
  414. package/dist-server/domain/task/dto/task-rating.dto.js +1 -33
  415. package/dist-server/domain/task/dto/task-status.dto.js +1 -34
  416. package/dist-server/domain/task/dto/workspace-usage.dto.js +1 -38
  417. package/dist-server/domain/task/prompt-composition.js +1 -443
  418. package/dist-server/domain/task/task-execution-path.js +1 -47
  419. package/dist-server/domain/task/task.constants.js +1 -5
  420. package/dist-server/domain/task/task.controller.js +1 -348
  421. package/dist-server/domain/task/task.module.js +1 -25
  422. package/dist-server/domain/task/task.service.js +3 -1871
  423. package/dist-server/domain/terminal/terminal-access-policy.js +1 -0
  424. package/dist-server/domain/terminal/terminal-audit.service.js +4 -78
  425. package/dist-server/domain/terminal/terminal-csp.js +1 -37
  426. package/dist-server/domain/terminal/terminal-local-only.guard.js +1 -56
  427. package/dist-server/domain/terminal/terminal-session.service.js +1 -372
  428. package/dist-server/domain/terminal/terminal-ticket.service.js +1 -108
  429. package/dist-server/domain/terminal/terminal-ws.service.js +1 -242
  430. package/dist-server/domain/terminal/terminal.controller.js +1 -96
  431. package/dist-server/domain/terminal/terminal.module.js +1 -36
  432. package/dist-server/domain/thread/dto/build-context.dto.js +1 -42
  433. package/dist-server/domain/thread/dto/highlight.dto.js +1 -114
  434. package/dist-server/domain/thread/dto/list-messages.dto.js +1 -49
  435. package/dist-server/domain/thread/dto/list-threads.dto.js +1 -117
  436. package/dist-server/domain/thread/dto/reorder-pins.dto.js +1 -22
  437. package/dist-server/domain/thread/dto/search-threads.dto.js +1 -13
  438. package/dist-server/domain/thread/dto/thread-label.dto.js +1 -104
  439. package/dist-server/domain/thread/dto/timeline-query.dto.js +1 -51
  440. package/dist-server/domain/thread/dto/update-thread.dto.js +1 -67
  441. package/dist-server/domain/thread/overdrive.types.js +1 -38
  442. package/dist-server/domain/thread/thread-highlight-flight.service.js +1 -53
  443. package/dist-server/domain/thread/thread-highlight-regeneration.service.js +1 -277
  444. package/dist-server/domain/thread/thread-highlight-trigger.service.js +1 -722
  445. package/dist-server/domain/thread/thread-highlight.constants.js +1 -5
  446. package/dist-server/domain/thread/thread-label.controller.js +1 -104
  447. package/dist-server/domain/thread/thread-label.service.js +1 -249
  448. package/dist-server/domain/thread/thread-preview.controller.js +1 -44
  449. package/dist-server/domain/thread/thread-title.backfill.js +1 -42
  450. package/dist-server/domain/thread/thread-title.types.js +1 -27
  451. package/dist-server/domain/thread/thread.controller.js +1 -291
  452. package/dist-server/domain/thread/thread.module.js +1 -40
  453. package/dist-server/domain/thread/thread.service.js +6 -1397
  454. package/dist-server/domain/token/token.controller.js +1 -73
  455. package/dist-server/domain/token/token.dto.js +1 -56
  456. package/dist-server/domain/token/token.module.js +1 -26
  457. package/dist-server/domain/token/token.service.js +3 -437
  458. package/dist-server/domain/usage/codex-rate-limits.client.js +2 -513
  459. package/dist-server/domain/usage/usage.controller.js +1 -190
  460. package/dist-server/domain/usage/usage.module.js +1 -22
  461. package/dist-server/domain/usage/usage.service.js +1 -1727
  462. package/dist-server/domain/usage/usage.types.js +1 -4
  463. package/dist-server/domain/usage-report/dto/usage-report.dto.js +1 -2
  464. package/dist-server/domain/usage-report/report-findings.js +1 -109
  465. package/dist-server/domain/usage-report/usage-report.controller.js +1 -72
  466. package/dist-server/domain/usage-report/usage-report.module.js +1 -23
  467. package/dist-server/domain/usage-report/usage-report.service.js +1 -140
  468. package/dist-server/domain/wbs/wbs.controller.js +1 -51
  469. package/dist-server/domain/wbs/wbs.module.js +1 -21
  470. package/dist-server/domain/wbs/wbs.service.js +1 -94
  471. package/dist-server/domain/wi/dto/create-wi.dto.js +1 -67
  472. package/dist-server/domain/wi/dto/update-wi-status.dto.js +1 -24
  473. package/dist-server/domain/wi/wi.controller.js +1 -112
  474. package/dist-server/domain/wi/wi.module.js +1 -22
  475. package/dist-server/domain/wi/wi.service.js +2 -620
  476. package/dist-server/domain/wi/wi.types.js +1 -2
  477. package/dist-server/domain/workflow/chat-card-proof.service.js +1 -97
  478. package/dist-server/domain/workflow/dto/thread-app-launch.dto.js +1 -49
  479. package/dist-server/domain/workflow/thread-app-launch.controller.js +1 -330
  480. package/dist-server/domain/workflow/ui-instance.controller.js +1 -1574
  481. package/dist-server/domain/workflow/workflow-approval-v2.js +1 -748
  482. package/dist-server/domain/workflow/workflow.controller.js +1 -165
  483. package/dist-server/domain/workflow/workflow.module.js +1 -80
  484. package/dist-server/domain/workflow/workflow.service.js +3 -1221
  485. package/dist-server/domain/workspace/dto/create-workspace.dto.js +1 -62
  486. package/dist-server/domain/workspace/dto/rename-workspace.dto.js +1 -27
  487. package/dist-server/domain/workspace/dto/switch-workspace.dto.js +1 -32
  488. package/dist-server/domain/workspace/dto/workspace-info.dto.js +1 -2
  489. package/dist-server/domain/workspace/workspace.controller.js +1 -126
  490. package/dist-server/domain/workspace/workspace.module.js +1 -24
  491. package/dist-server/domain/workspace/workspace.service.js +1 -362
  492. package/dist-server/main.js +1 -337
  493. package/dist-server/modules/crewx-pool.service.js +1 -724
  494. package/dist-server/modules/crewx.module.js +1 -59
  495. package/dist-server/modules/workspace-config.store.js +1 -111
  496. package/dist-server/repository/agent-suggestion.repository.js +1 -39
  497. package/dist-server/repository/base-sqlite.repository.js +1 -18
  498. package/dist-server/repository/box.repository.js +1 -99
  499. package/dist-server/repository/message.repository.js +1 -22
  500. package/dist-server/repository/notification.repository.js +1 -33
  501. package/dist-server/repository/project.repository.js +1 -61
  502. package/dist-server/repository/repository.module.js +1 -44
  503. package/dist-server/repository/request-log.repository.js +2 -103
  504. package/dist-server/repository/task.repository.js +9 -1001
  505. package/dist-server/repository/thread-label.repository.js +1 -86
  506. package/dist-server/repository/thread.repository.js +46 -887
  507. package/dist-server/repository/usage-limit-snapshot.repository.js +1 -24
  508. package/dist-server/repository/usage-report.repository.js +1 -27
  509. package/dist-server/shared/attachment-path.js +1 -50
  510. package/dist-server/shared/attachment-policy.js +1 -191
  511. package/dist-server/shared/crewx-home.js +1 -8
  512. package/dist-server/shared/crewx-state.js +1 -66
  513. package/dist-server/shared/doc-heading.js +1 -69
  514. package/dist-server/shared/marketplace-api.constants.js +1 -12
  515. package/dist-server/shared/thread-label.js +1 -8
  516. package/dist-server/shared/workflow-run.contract.js +1 -8
  517. package/dist-server/test-utils/compat-database.js +1 -30
  518. package/dist-server/test-utils/request-log-fixtures.js +6 -134
  519. package/dist-server/utils/tokenizer.js +1 -8
  520. package/package.json +26 -22
  521. package/packages/cli/dist/bootstrap/codex-writable-roots.js +1 -113
  522. package/packages/cli/dist/bootstrap/crewx-cli.js +1 -84
  523. package/packages/cli/dist/builtin.js +5 -132
  524. package/packages/cli/dist/commands/agent.js +4 -118
  525. package/packages/cli/dist/commands/cal.js +2 -44
  526. package/packages/cli/dist/commands/db.js +4 -602
  527. package/packages/cli/dist/commands/detached.js +15 -620
  528. package/packages/cli/dist/commands/doctor.js +4 -649
  529. package/packages/cli/dist/commands/emit-trailer.js +2 -33
  530. package/packages/cli/dist/commands/execute.js +15 -294
  531. package/packages/cli/dist/commands/hook/command-marker.js +1 -5
  532. package/packages/cli/dist/commands/hook/install.js +8 -189
  533. package/packages/cli/dist/commands/hook/paths.js +1 -94
  534. package/packages/cli/dist/commands/hook/status.js +1 -86
  535. package/packages/cli/dist/commands/hook/uninstall.js +1 -71
  536. package/packages/cli/dist/commands/hook-dispatch.js +2 -180
  537. package/packages/cli/dist/commands/init.js +31 -437
  538. package/packages/cli/dist/commands/kill.js +1 -11
  539. package/packages/cli/dist/commands/log.js +3 -96
  540. package/packages/cli/dist/commands/parse-agent-message.js +1 -52
  541. package/packages/cli/dist/commands/parse-common-flags.js +3 -212
  542. package/packages/cli/dist/commands/ps.js +2 -117
  543. package/packages/cli/dist/commands/publish.js +7 -283
  544. package/packages/cli/dist/commands/query.js +16 -292
  545. package/packages/cli/dist/commands/registry.js +1 -33
  546. package/packages/cli/dist/commands/resolve-prompt.js +3 -76
  547. package/packages/cli/dist/commands/resolve-recipient.js +3 -47
  548. package/packages/cli/dist/commands/restart.js +18 -172
  549. package/packages/cli/dist/commands/result.js +1 -209
  550. package/packages/cli/dist/commands/shortcut.js +4 -253
  551. package/packages/cli/dist/commands/slack.js +16 -560
  552. package/packages/cli/dist/commands/stop.js +8 -119
  553. package/packages/cli/dist/commands/write-output.js +1 -24
  554. package/packages/cli/dist/index.js +1 -8
  555. package/packages/cli/dist/logging.js +10 -87
  556. package/packages/cli/dist/main.js +6 -289
  557. package/packages/cli/dist/register-builtin-tools.js +1 -9
  558. package/packages/cli/dist/slack/file-download.js +1 -134
  559. package/packages/cli/dist/slack/markdown.js +1 -33
  560. package/packages/cli/dist/utils/env-defaults.js +1 -15
  561. package/packages/cli/dist/utils/inherited-trace.js +1 -65
  562. package/packages/cli/dist/utils/product-package-root.js +1 -39
  563. package/packages/cli/dist/utils/sdk-compat.js +1 -120
  564. package/packages/cli/dist/utils/version.js +1 -28
  565. package/packages/cli/package.json +3 -2
  566. package/server.js +2 -110
  567. package/dist/assets/arc-DqpOTUtv.js +0 -1
  568. package/dist/assets/architectureDiagram-UYN6MBPD-BNow2k_L.js +0 -36
  569. package/dist/assets/blockDiagram-ZHA2E4KO-C8zBve69.js +0 -121
  570. package/dist/assets/c4Diagram-6F5ED5ID-Cc1KiXtX.js +0 -10
  571. package/dist/assets/channel-DRq6aYdh.js +0 -1
  572. package/dist/assets/chunk-5HRBRIJM-C0k9ZAT-.js +0 -1
  573. package/dist/assets/chunk-7U56Z5CX-Z9uS6TDy.js +0 -220
  574. package/dist/assets/chunk-ASOPGD6M-BN6HHu0J.js +0 -1
  575. package/dist/assets/chunk-T2TOU4HS-i8SLlvIV.js +0 -164
  576. package/dist/assets/classDiagram-LNE6IOMH-DxYwZ1hr.js +0 -1
  577. package/dist/assets/classDiagram-v2-MQ7JQ4JX-DxYwZ1hr.js +0 -1
  578. package/dist/assets/cytoscape.esm-BiciSPf8.js +0 -331
  579. package/dist/assets/dagre-4EVJKHTY-Bbg5laLS.js +0 -4
  580. package/dist/assets/diagram-QW4FP2JN-CP7K9xmh.js +0 -24
  581. package/dist/assets/erDiagram-6RL3IURR-BWhKPrTY.js +0 -51
  582. package/dist/assets/flowDiagram-7ASYPVHJ-BIXDnV6d.js +0 -160
  583. package/dist/assets/ganttDiagram-NTVNEXSI-zdLUY4xX.js +0 -257
  584. package/dist/assets/gitGraph-YCYPL57B-BCOr73LU.js +0 -133
  585. package/dist/assets/gitGraphDiagram-NRZ2UAAF-CmV7iwwG.js +0 -65
  586. package/dist/assets/graph-BlwPajkw.js +0 -1
  587. package/dist/assets/infoDiagram-A4XQUW5V-d-Oe4BJ8.js +0 -2
  588. package/dist/assets/journeyDiagram-G5WM74LC-BTTrZl59.js +0 -139
  589. package/dist/assets/katex-DkKDou_j.js +0 -257
  590. package/dist/assets/layout-Bvwu4dCi.js +0 -1
  591. package/dist/assets/linear-B7g0AkMJ.js +0 -1
  592. package/dist/assets/main-CHTRJqcd.css +0 -10
  593. package/dist/assets/mindmap-definition-GWI6TPTV--Fx3cIso.js +0 -95
  594. package/dist/assets/pieDiagram-YF2LJOPJ-96nEqRLQ.js +0 -30
  595. package/dist/assets/quadrantDiagram-OS5C2QUG-DaPjN4y-.js +0 -7
  596. package/dist/assets/requirementDiagram-MIRIMTAZ-Rf044HhI.js +0 -52
  597. package/dist/assets/sankeyDiagram-Y46BX6SQ-DiCe9Xjb.js +0 -8
  598. package/dist/assets/sequenceDiagram-G6AWOVSC-mEYk003A.js +0 -122
  599. package/dist/assets/stateDiagram-MAYHULR4-Ci4WYula.js +0 -1
  600. package/dist/assets/stateDiagram-v2-4JROLMXI-Daw5Msh1.js +0 -1
  601. package/dist/assets/timeline-definition-U7ZMHBDA-vEh01Xjd.js +0 -61
  602. package/dist/assets/xychartDiagram-6QU3TZC5-BExthcqI.js +0 -7
@@ -1,38 +1 @@
1
- /**
2
- * SSOT for CLI subcommand whitelist.
3
- *
4
- * These are all commands that the launcher routes to the CLI engine (packages/cli).
5
- * Must stay in sync with KNOWN_COMMANDS ∪ BUILTIN_COMMAND_NAMES ∪ NOT_YET_MIGRATED
6
- * in packages/cli/src/commands/registry.ts.
7
- *
8
- * Verified by bin/__tests__/crewx-entrypoint.test.ts SSOT assertion test.
9
- */
10
- export const CLI_SUBCOMMANDS = new Set([
11
- // Query / Execute
12
- 'q', 'query',
13
- 'x', 'execute',
14
-
15
- // Agent / Task
16
- 'agent',
17
- 'ps', 'stop', 'kill', 'result', 'log', 'restart',
18
-
19
- // Diagnostics / Init / DB
20
- 'doctor', 'init',
21
- 'db',
22
- 'help',
23
- 'shortcut',
24
- 'publish',
25
-
26
- // Built-in tools
27
- 'memory', 'search', 'doc', 'wbs', 'cron', 'workflow', 'skill', 'dreaming',
28
- 'wi', 'chromex', 'notify', 'app',
29
-
30
- // Hook platform
31
- 'hook', 'hook-dispatch',
32
-
33
- // Slack / Adapters
34
- 'slack', 'slack:files',
35
-
36
- // Not-yet-migrated
37
- 'template', 'templates', 'chat', 'mcp',
38
- ]);
1
+ const e=new Set(["q","query","x","execute","agent","ps","stop","kill","result","log","restart","doctor","init","db","help","shortcut","publish","memory","search","doc","wbs","cron","workflow","skill","dreaming","wi","chromex","notify","app","hook","hook-dispatch","slack","slack:files","template","templates","chat","mcp"]);export{e as CLI_SUBCOMMANDS};
package/bin/crewx-lib.js CHANGED
@@ -1,271 +1,2 @@
1
- /**
2
- * crewx launcher library — testable pure-logic functions extracted from crewx.js.
3
- */
4
- import { lstatSync, mkdirSync, readFileSync } from 'fs';
5
- import { homedir } from 'os';
6
- import { join } from 'path';
7
- import { getCrewxHome } from '@crewx/sdk';
8
- import { CLI_SUBCOMMANDS } from './cli-commands.js';
9
- import { buildHintMessage } from './launcher-flags.js';
10
-
11
- const PAIRING_CREDENTIAL_MODE = 0o600;
12
- const PAIRING_CREDENTIAL_NAME = 'pairing.token';
13
- const DEFAULT_PAIRING_ENDPOINT = 'http://localhost:8150';
14
- // Mirrors the WI-028 packages/built-in/shared/crewx-api-credential contract.
15
- const PAIRING_CREDENTIAL_PATTERN = /^crewxrt_pairing_[0-9a-f]{64}$/;
16
-
17
-
18
- function currentUid() {
19
- return process.platform === 'win32' || typeof process.getuid !== 'function'
20
- ? undefined
21
- : process.getuid();
22
- }
23
-
24
- /**
25
- * Return the canonical runtime credential path used by the local server.
26
- * The path is intentionally resolved through the SDK's shared home helper.
27
- *
28
- * @returns {string}
29
- */
30
- export function pairingCredentialPath() {
31
- return join(getCrewxHome(), 'auth', 'runtime', PAIRING_CREDENTIAL_NAME);
32
- }
33
-
34
- /**
35
- * Read the purpose-scoped pairing credential with the WI-028 file contract.
36
- * Missing, unreadable, or insecure files throw before any HTTP request can be
37
- * made. Error messages never include the credential value.
38
- *
39
- * @returns {string}
40
- */
41
- export function readPairingCredential() {
42
- const filePath = pairingCredentialPath();
43
- let fileStat;
44
- try {
45
- fileStat = lstatSync(filePath);
46
- } catch (error) {
47
- if (error?.code === 'ENOENT') {
48
- throw new Error('Pairing runtime credential is missing; start the CrewX server once to create pairing.token.');
49
- }
50
- throw new Error('Pairing runtime credential is not readable.');
51
- }
52
-
53
- if (!fileStat.isFile()) {
54
- throw new Error('Pairing runtime credential is not a regular file.');
55
- }
56
- if (process.platform !== 'win32' && (fileStat.mode & 0o777) !== PAIRING_CREDENTIAL_MODE) {
57
- throw new Error('Pairing runtime credential permissions are invalid; expected mode 0600.');
58
- }
59
- const uid = currentUid();
60
- if (uid !== undefined && fileStat.uid !== uid) {
61
- throw new Error('Pairing runtime credential must be owned by the current user.');
62
- }
63
-
64
- let credential;
65
- try {
66
- credential = readFileSync(filePath, 'utf8');
67
- } catch {
68
- throw new Error('Pairing runtime credential is not readable.');
69
- }
70
- if (!PAIRING_CREDENTIAL_PATTERN.test(credential)) {
71
- throw new Error('Pairing runtime credential has an invalid format.');
72
- }
73
- return credential;
74
- }
75
-
76
- /**
77
- * Resolve the server endpoint for `crewx pair`.
78
- * Explicit --port wins over CREWX_ENDPOINT, which wins over the local default.
79
- *
80
- * @param {{ port?: number, env?: NodeJS.ProcessEnv }} options
81
- * @returns {string}
82
- */
83
- export function resolvePairEndpoint({ port, env = process.env } = {}) {
84
- const rawEndpoint = port === undefined
85
- ? (env.CREWX_ENDPOINT?.trim() || DEFAULT_PAIRING_ENDPOINT)
86
- : `http://localhost:${port}`;
87
- let endpoint;
88
- try {
89
- endpoint = new URL(rawEndpoint);
90
- } catch {
91
- throw new Error('Invalid CrewX endpoint. Use an http:// or https:// URL.');
92
- }
93
- if (endpoint.protocol !== 'http:' && endpoint.protocol !== 'https:') {
94
- throw new Error('Invalid CrewX endpoint. Use an http:// or https:// URL.');
95
- }
96
- if (endpoint.username || endpoint.password || endpoint.search || endpoint.hash) {
97
- throw new Error('Invalid CrewX endpoint. Do not include credentials, query, or fragment data.');
98
- }
99
- return endpoint.toString().replace(/\/$/, '');
100
- }
101
-
102
-
103
- /**
104
- * Parse --port option from extra CLI args.
105
- * Backward-compatible thin wrapper; kept for existing callers.
106
- *
107
- * @param {string[]} extraArgs
108
- * @returns {{ port: number } | { error: string } | null}
109
- */
110
- export function parseWebPort(extraArgs) {
111
- const portIdx = extraArgs.indexOf('--port');
112
- if (portIdx === -1) return null;
113
- const portVal = Number(extraArgs[portIdx + 1]);
114
- if (!portVal || portVal < 1 || portVal > 65535) {
115
- return { error: 'Invalid port number. Use 1-65535.' };
116
- }
117
- return { port: portVal };
118
- }
119
-
120
- /**
121
- * Determine the route based on CLI arguments.
122
- *
123
- * Priority order:
124
- * 1. --help/-h, --version/-v → CLI (global options handled by CLI engine)
125
- * 2. Known CLI subcommand → CLI
126
- * 3. 'serve' verb → serve
127
- * 4. 'pair' verb → pair
128
- * 5. 'electron' verb → electron
129
- * 6. No arguments → web-default (browser auto-open)
130
- * 7. Unknown first argument → error with hint
131
- *
132
- * @param {string[]} args - process.argv.slice(2)
133
- * @returns {{ route: string, routeArgs: string[], error?: string }}
134
- */
135
- export function resolveRoute(args) {
136
- const firstArg = args[0];
137
-
138
- // 1. Global options → CLI engine handles them
139
- if (firstArg === '--help' || firstArg === '-h') {
140
- return { route: 'cli', routeArgs: args };
141
- }
142
- if (firstArg === '--version' || firstArg === '-v') {
143
- return { route: 'cli', routeArgs: args };
144
- }
145
-
146
- // 2. CLI subcommand whitelist → CLI engine
147
- if (firstArg !== undefined && CLI_SUBCOMMANDS.has(firstArg)) {
148
- return { route: 'cli', routeArgs: args };
149
- }
150
-
151
- // 3. New verb: serve
152
- if (firstArg === 'serve') {
153
- return { route: 'serve', routeArgs: args.slice(1) };
154
- }
155
-
156
- // 4. Local browser pairing code requester
157
- if (firstArg === 'pair') {
158
- return { route: 'pair', routeArgs: args.slice(1) };
159
- }
160
-
161
- // 5. New verb: electron
162
- if (firstArg === 'electron') {
163
- return { route: 'electron', routeArgs: args.slice(1) };
164
- }
165
-
166
- // 6. No arguments → web default
167
- if (firstArg === undefined) {
168
- return { route: 'web-default', routeArgs: [] };
169
- }
170
-
171
- // 6. Unknown → error with hint
172
- const hint = buildHintMessage(firstArg);
173
- const hintSuffix = hint ? `\n ${hint}` : '\n Run `crewx --help` for usage.';
174
- return {
175
- route: 'error',
176
- error: `Unknown command or option: "${firstArg}"${hintSuffix}`,
177
- routeArgs: args,
178
- };
179
- }
180
-
181
- /**
182
- * Ensure CrewX directories exist before any subcommand runs.
183
- * - ~/.crewx (crewx home) — config + DB (crewx.db)
184
- * - ~/crewx (crewx workspaces dir) — user-facing workspaces collection,
185
- * surfaced as "워크스페이스" Quick Access shortcut
186
- * in DirectoryPickerDialog (WKSUI001-NEW).
187
- *
188
- * The two are completely different directories — never conflate them.
189
- * Both calls are idempotent (mkdir recursive). Failures are warned to stderr
190
- * but never abort the launcher.
191
- */
192
- export function ensureCrewxDirs() {
193
- const crewxHome = join(homedir(), '.crewx'); // config/DB
194
- const crewxWorkspaces = join(homedir(), 'crewx'); // workspaces collection
195
-
196
- const crewxTls = join(crewxHome, 'tls');
197
-
198
- for (const dir of [crewxHome, crewxWorkspaces, crewxTls]) {
199
- try {
200
- mkdirSync(dir, { recursive: true });
201
- } catch (err) {
202
- console.warn(`[crewx] Failed to ensure ${dir}: ${err?.message ?? err}`);
203
- }
204
- }
205
- }
206
-
207
- /**
208
- * Forward signals to a child process for clean shutdown.
209
- *
210
- * Uses an `exited` flag (set by the child's 'exit' event) instead of
211
- * `child.killed`, because `child.killed` becomes `true` immediately after
212
- * calling `child.kill()` — even if the child process is still running.
213
- * This ensures the SIGKILL escalation timer can actually fire.
214
- *
215
- * On Windows, SIGTERM is equivalent to an immediate kill.
216
- *
217
- * @param {import('child_process').ChildProcess} child
218
- * @param {{ escalateKill?: boolean, detached?: boolean }} options
219
- */
220
- export function setupSignalForwarding(child, { escalateKill = false, detached = false } = {}) {
221
- let exited = false;
222
- let escalationScheduled = false;
223
-
224
- child.on('exit', () => {
225
- exited = true;
226
- });
227
-
228
- // When detached, the child runs in its own process group.
229
- // Use process.kill(-pid) to kill the entire group (Electron + GPU helpers).
230
- // When not detached, use child.kill() for single-process kill.
231
- const killChild = (signal) => {
232
- try {
233
- if (detached) {
234
- process.kill(-child.pid, signal);
235
- } else {
236
- child.kill(signal);
237
- }
238
- } catch {
239
- // Process or process group already terminated
240
- }
241
- };
242
-
243
- process.on('SIGINT', () => {
244
- if (!exited) {
245
- killChild('SIGTERM');
246
- if (escalateKill && !escalationScheduled) {
247
- escalationScheduled = true;
248
- setTimeout(() => {
249
- if (!exited) killChild('SIGKILL');
250
- }, 3000).unref();
251
- }
252
- }
253
- });
254
-
255
- process.on('SIGTERM', () => {
256
- if (!exited) killChild('SIGTERM');
257
- });
258
-
259
- process.on('SIGHUP', () => {
260
- if (!exited) killChild('SIGHUP');
261
- });
262
-
263
- // Clean up the child process group when the parent exits unexpectedly
264
- if (detached) {
265
- process.on('exit', () => {
266
- if (!exited) {
267
- try { process.kill(-child.pid, 'SIGKILL'); } catch {}
268
- }
269
- });
270
- }
271
- }
1
+ import{lstatSync as a,mkdirSync as l,readFileSync as f}from"fs";import{homedir as u}from"os";import{join as s}from"path";import{getCrewxHome as p}from"@crewx/sdk";import{CLI_SUBCOMMANDS as d}from"./cli-commands.js";import{buildHintMessage as w}from"./launcher-flags.js";const m=384;const h="pairing.token";const E="http://localhost:8150";const I=/^crewxrt_pairing_[0-9a-f]{64}$/;function g(){return process.platform==="win32"||typeof process.getuid!=="function"?void 0:process.getuid()}function x(){return s(p(),"auth","runtime",h)}function C(){const e=x();let r;try{r=a(e)}catch(o){if(o?.code==="ENOENT"){throw new Error("Pairing runtime credential is missing; start the CrewX server once to create pairing.token.")}throw new Error("Pairing runtime credential is not readable.")}if(!r.isFile()){throw new Error("Pairing runtime credential is not a regular file.")}if(process.platform!=="win32"&&(r.mode&511)!==m){throw new Error("Pairing runtime credential permissions are invalid; expected mode 0600.")}const n=g();if(n!==void 0&&r.uid!==n){throw new Error("Pairing runtime credential must be owned by the current user.")}let t;try{t=f(e,"utf8")}catch{throw new Error("Pairing runtime credential is not readable.")}if(!I.test(t)){throw new Error("Pairing runtime credential has an invalid format.")}return t}function T({port:e,env:r=process.env}={}){const n=e===void 0?r.CREWX_ENDPOINT?.trim()||E:`http://localhost:${e}`;let t;try{t=new URL(n)}catch{throw new Error("Invalid CrewX endpoint. Use an http:// or https:// URL.")}if(t.protocol!=="http:"&&t.protocol!=="https:"){throw new Error("Invalid CrewX endpoint. Use an http:// or https:// URL.")}if(t.username||t.password||t.search||t.hash){throw new Error("Invalid CrewX endpoint. Do not include credentials, query, or fragment data.")}return t.toString().replace(/\/$/,"")}function y(e){const r=e.indexOf("--port");if(r===-1)return null;const n=Number(e[r+1]);if(!n||n<1||n>65535){return{error:"Invalid port number. Use 1-65535."}}return{port:n}}function G(e){const r=e[0];if(r==="--help"||r==="-h"){return{route:"cli",routeArgs:e}}if(r==="--version"||r==="-v"){return{route:"cli",routeArgs:e}}if(r!==void 0&&d.has(r)){return{route:"cli",routeArgs:e}}if(r==="serve"){return{route:"serve",routeArgs:e.slice(1)}}if(r==="pair"){return{route:"pair",routeArgs:e.slice(1)}}if(r==="electron"){return{route:"electron",routeArgs:e.slice(1)}}if(r===void 0){return{route:"web-default",routeArgs:[]}}const n=w(r);const t=n?`
2
+ ${n}`:"\n Run `crewx --help` for usage.";return{route:"error",error:`Unknown command or option: "${r}"${t}`,routeArgs:e}}function L(){const e=s(u(),".crewx");const r=s(u(),"crewx");const n=s(e,"tls");for(const t of[e,r,n]){try{l(t,{recursive:true})}catch(o){console.warn(`[crewx] Failed to ensure ${t}: ${o?.message??o}`)}}}function U(e,{escalateKill:r=false,detached:n=false}={}){let t=false;let o=false;e.on("exit",()=>{t=true});const i=c=>{try{if(n){process.kill(-e.pid,c)}else{e.kill(c)}}catch{}};process.on("SIGINT",()=>{if(!t){i("SIGTERM");if(r&&!o){o=true;setTimeout(()=>{if(!t)i("SIGKILL")},3e3).unref()}}});process.on("SIGTERM",()=>{if(!t)i("SIGTERM")});process.on("SIGHUP",()=>{if(!t)i("SIGHUP")});if(n){process.on("exit",()=>{if(!t){try{process.kill(-e.pid,"SIGKILL")}catch{}}})}}export{L as ensureCrewxDirs,x as pairingCredentialPath,y as parseWebPort,C as readPairingCredential,T as resolvePairEndpoint,G as resolveRoute,U as setupSignalForwarding};
package/bin/crewx-ui.js CHANGED
@@ -1,80 +1,2 @@
1
1
  #!/usr/bin/env node
2
- /**
3
- * crewx-ui launcher
4
- *
5
- * Usage:
6
- * npx crewx-ui → NestJS web server (default)
7
- * npx crewx-ui --electron → Electron dashboard (main window)
8
- * npx crewx-ui --overlay → Electron floating overlay
9
- */
10
- import { spawn } from 'child_process';
11
- import { fileURLToPath } from 'url';
12
- import { dirname, join } from 'path';
13
- import { createRequire } from 'module';
14
- import { ensureCrewxDirs } from './crewx-lib.js';
15
-
16
- const __filename = fileURLToPath(import.meta.url);
17
- const __dirname = dirname(__filename);
18
-
19
- ensureCrewxDirs();
20
-
21
- const args = process.argv.slice(2);
22
- const isElectron = args.includes('--electron');
23
- const isOverlay = args.includes('--overlay');
24
-
25
- function getElectronSpawnEnv() {
26
- const env = { ...process.env };
27
- delete env.ELECTRON_RUN_AS_NODE;
28
- env.NODE_ENV = 'production'; // Force production — prevents users from bypassing FREE limits via env
29
- return env;
30
- }
31
-
32
- if (isElectron || isOverlay) {
33
- // Electron mode: resolve binary path via require('electron')
34
- const require = createRequire(import.meta.url);
35
-
36
- let electronPath;
37
- try {
38
- electronPath = require('electron');
39
- } catch {
40
- console.error('');
41
- console.error(' ❌ Electron is not installed.');
42
- console.error('');
43
- console.error(' To use --electron or --overlay mode, install Electron:');
44
- console.error('');
45
- console.error(' npm install -g electron');
46
- console.error(' # or, in this project:');
47
- console.error(' npm install --save-dev electron');
48
- console.error('');
49
- process.exit(1);
50
- }
51
-
52
- const entryFile = isOverlay
53
- ? join(__dirname, '..', 'dist-electron', 'overlay.js')
54
- : join(__dirname, '..', 'dist-electron', 'main.js');
55
-
56
- const child = spawn(String(electronPath), [entryFile], {
57
- stdio: 'inherit',
58
- env: getElectronSpawnEnv(),
59
- });
60
-
61
- child.on('exit', (code) => process.exit(code ?? 0));
62
- child.on('error', (err) => {
63
- console.error('Failed to launch Electron:', err);
64
- process.exit(1);
65
- });
66
- } else {
67
- // Default: delegate to server.js (NestJS web server)
68
- const serverScript = join(__dirname, '..', 'server.js');
69
-
70
- const child = spawn(process.execPath, [serverScript, ...args], {
71
- stdio: 'inherit',
72
- env: { ...process.env, NODE_ENV: 'production' }, // Force production — prevents users from bypassing FREE limits via env
73
- });
74
-
75
- child.on('exit', (code) => process.exit(code ?? 0));
76
- child.on('error', (err) => {
77
- console.error('Failed to start server:', err);
78
- process.exit(1);
79
- });
80
- }
2
+ import{spawn as l}from"child_process";import{fileURLToPath as p}from"url";import{dirname as m,join as t}from"path";import{createRequire as d}from"module";import{ensureCrewxDirs as v}from"./crewx-lib.js";const u=p(import.meta.url);const s=m(u);v();const c=process.argv.slice(2);const E=c.includes("--electron");const a=c.includes("--overlay");function h(){const e={...process.env};delete e.ELECTRON_RUN_AS_NODE;e.NODE_ENV="production";return e}if(E||a){const e=d(import.meta.url);let r;try{r=e("electron")}catch{console.error("");console.error(" \u274C Electron is not installed.");console.error("");console.error(" To use --electron or --overlay mode, install Electron:");console.error("");console.error(" npm install -g electron");console.error(" # or, in this project:");console.error(" npm install --save-dev electron");console.error("");process.exit(1)}const o=a?t(s,"..","dist-electron","overlay.js"):t(s,"..","dist-electron","main.js");const i=l(String(r),[o],{stdio:"inherit",env:h()});i.on("exit",n=>process.exit(n??0));i.on("error",n=>{console.error("Failed to launch Electron:",n);process.exit(1)})}else{const e=t(s,"..","server.js");const r=l(process.execPath,[e,...c],{stdio:"inherit",env:{...process.env,NODE_ENV:"production"}});r.on("exit",o=>process.exit(o??0));r.on("error",o=>{console.error("Failed to start server:",o);process.exit(1)})}