crewly 1.14.0 → 1.15.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 (458) hide show
  1. package/README.md +28 -0
  2. package/config/constants.ts +57 -0
  3. package/config/index.ts +6 -2
  4. package/config/roles/architect/soul.md +31 -0
  5. package/config/roles/auditor/soul.md +30 -0
  6. package/config/roles/backend-developer/soul.md +30 -0
  7. package/config/roles/content-strategist/soul.md +29 -0
  8. package/config/roles/designer/soul.md +30 -0
  9. package/config/roles/developer/soul.md +4 -1
  10. package/config/roles/frontend-developer/soul.md +28 -0
  11. package/config/roles/fullstack-dev/soul.md +28 -0
  12. package/config/roles/generalist/soul.md +28 -0
  13. package/config/roles/ops/soul.md +31 -0
  14. package/config/roles/orchestrator/fragments/lifecycle.md +2 -22
  15. package/config/roles/orchestrator/fragments/recovery.md +1 -1
  16. package/config/roles/orchestrator/prompt.md +18 -49
  17. package/config/roles/orchestrator/soul.md +2 -1
  18. package/config/roles/product-manager/prompt.md +1 -1
  19. package/config/roles/product-manager/soul.md +30 -0
  20. package/config/roles/qa/soul.md +31 -0
  21. package/config/roles/qa-engineer/soul.md +31 -0
  22. package/config/roles/researcher/soul.md +4 -1
  23. package/config/roles/sales/soul.md +30 -0
  24. package/config/roles/support/soul.md +30 -0
  25. package/config/roles/team-leader/prompt.md +1 -1
  26. package/config/roles/team-leader/soul.md +32 -0
  27. package/config/roles/tpm/soul.md +31 -0
  28. package/config/roles/ux-designer/soul.md +31 -0
  29. package/config/skills/_common/lib.sh +124 -2
  30. package/config/skills/_common/lib.test.sh +68 -1
  31. package/config/skills/orchestrator/delegate-task/SKILL.md +17 -21
  32. package/config/skills/orchestrator/delegate-task/execute.sh +18 -9
  33. package/config/skills/orchestrator/delegate-task/execute.test.sh +1 -1
  34. package/config/skills/orchestrator/wiki-migrate/SKILL.md +33 -3
  35. package/config/skills/orchestrator/wiki-migrate/compact.jq +36 -0
  36. package/config/skills/orchestrator/wiki-migrate/execute.sh +35 -5
  37. package/config/skills/orchestrator/wiki-migrate/execute.test.sh +124 -0
  38. package/config/skills/team-leader/verify-output/execute.sh +14 -6
  39. package/config/skills/team-leader/verify-output/execute.test.sh +117 -0
  40. package/dist/backend/backend/src/constants.d.ts +100 -0
  41. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  42. package/dist/backend/backend/src/constants.js +88 -1
  43. package/dist/backend/backend/src/constants.js.map +1 -1
  44. package/dist/backend/backend/src/controllers/mission/mission-policy.controller.d.ts.map +1 -1
  45. package/dist/backend/backend/src/controllers/mission/mission-policy.controller.js +4 -6
  46. package/dist/backend/backend/src/controllers/mission/mission-policy.controller.js.map +1 -1
  47. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.d.ts +10 -0
  48. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.d.ts.map +1 -1
  49. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js +78 -16
  50. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js.map +1 -1
  51. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.d.ts.map +1 -1
  52. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js +11 -1
  53. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js.map +1 -1
  54. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +14 -0
  55. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
  56. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +59 -0
  57. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
  58. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.d.ts +9 -0
  59. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.d.ts.map +1 -1
  60. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js +14 -1
  61. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js.map +1 -1
  62. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  63. package/dist/backend/backend/src/controllers/team/team.controller.js +16 -1
  64. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  65. package/dist/backend/backend/src/index.d.ts +12 -0
  66. package/dist/backend/backend/src/index.d.ts.map +1 -1
  67. package/dist/backend/backend/src/index.js +195 -9
  68. package/dist/backend/backend/src/index.js.map +1 -1
  69. package/dist/backend/backend/src/middleware/api-token.middleware.d.ts +139 -0
  70. package/dist/backend/backend/src/middleware/api-token.middleware.d.ts.map +1 -0
  71. package/dist/backend/backend/src/middleware/api-token.middleware.js +301 -0
  72. package/dist/backend/backend/src/middleware/api-token.middleware.js.map +1 -0
  73. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  74. package/dist/backend/backend/src/routes/api.routes.js +3 -1
  75. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  76. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +68 -0
  77. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  78. package/dist/backend/backend/src/services/agent/agent-registration.service.js +280 -10
  79. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  80. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts +7 -0
  81. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -1
  82. package/dist/backend/backend/src/services/agent/claude-runtime.service.js +10 -1
  83. package/dist/backend/backend/src/services/agent/claude-runtime.service.js.map +1 -1
  84. package/dist/backend/backend/src/services/agent/codex-runtime.service.d.ts +8 -0
  85. package/dist/backend/backend/src/services/agent/codex-runtime.service.d.ts.map +1 -1
  86. package/dist/backend/backend/src/services/agent/codex-runtime.service.js +11 -1
  87. package/dist/backend/backend/src/services/agent/codex-runtime.service.js.map +1 -1
  88. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +36 -1
  89. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  90. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +66 -9
  91. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  92. package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts +7 -0
  93. package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -1
  94. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js +10 -1
  95. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js.map +1 -1
  96. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +197 -0
  97. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  98. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js +422 -3
  99. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  100. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts +27 -0
  101. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  102. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +50 -1
  103. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  104. package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts +1 -1
  105. package/dist/backend/backend/src/services/ai/prompt-modules/index.d.ts.map +1 -1
  106. package/dist/backend/backend/src/services/ai/prompt-modules/index.js +1 -1
  107. package/dist/backend/backend/src/services/ai/prompt-modules/index.js.map +1 -1
  108. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts +35 -0
  109. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
  110. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +73 -2
  111. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
  112. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +42 -0
  113. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
  114. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.js +33 -0
  115. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
  116. package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -1
  117. package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js +13 -1
  118. package/dist/backend/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -1
  119. package/dist/backend/backend/src/services/backup/backup-archive.service.d.ts +26 -2
  120. package/dist/backend/backend/src/services/backup/backup-archive.service.d.ts.map +1 -1
  121. package/dist/backend/backend/src/services/backup/backup-archive.service.js +91 -10
  122. package/dist/backend/backend/src/services/backup/backup-archive.service.js.map +1 -1
  123. package/dist/backend/backend/src/services/backup/backup-restore.service.d.ts +15 -2
  124. package/dist/backend/backend/src/services/backup/backup-restore.service.d.ts.map +1 -1
  125. package/dist/backend/backend/src/services/backup/backup-restore.service.js +100 -21
  126. package/dist/backend/backend/src/services/backup/backup-restore.service.js.map +1 -1
  127. package/dist/backend/backend/src/services/backup/backup.types.d.ts +85 -2
  128. package/dist/backend/backend/src/services/backup/backup.types.d.ts.map +1 -1
  129. package/dist/backend/backend/src/services/backup/backup.types.js +21 -0
  130. package/dist/backend/backend/src/services/backup/backup.types.js.map +1 -1
  131. package/dist/backend/backend/src/services/backup/project-file-filter.d.ts +35 -0
  132. package/dist/backend/backend/src/services/backup/project-file-filter.d.ts.map +1 -0
  133. package/dist/backend/backend/src/services/backup/project-file-filter.js +90 -0
  134. package/dist/backend/backend/src/services/backup/project-file-filter.js.map +1 -0
  135. package/dist/backend/backend/src/services/budget/team-budget-gate.service.d.ts +165 -0
  136. package/dist/backend/backend/src/services/budget/team-budget-gate.service.d.ts.map +1 -0
  137. package/dist/backend/backend/src/services/budget/team-budget-gate.service.js +364 -0
  138. package/dist/backend/backend/src/services/budget/team-budget-gate.service.js.map +1 -0
  139. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +29 -0
  140. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
  141. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +42 -0
  142. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
  143. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +16 -0
  144. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
  145. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +22 -0
  146. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
  147. package/dist/backend/backend/src/services/core/api-token.service.d.ts +78 -0
  148. package/dist/backend/backend/src/services/core/api-token.service.d.ts.map +1 -0
  149. package/dist/backend/backend/src/services/core/api-token.service.js +149 -0
  150. package/dist/backend/backend/src/services/core/api-token.service.js.map +1 -0
  151. package/dist/backend/backend/src/services/core/logger.service.d.ts +10 -1
  152. package/dist/backend/backend/src/services/core/logger.service.d.ts.map +1 -1
  153. package/dist/backend/backend/src/services/core/logger.service.js +18 -3
  154. package/dist/backend/backend/src/services/core/logger.service.js.map +1 -1
  155. package/dist/backend/backend/src/services/core/storage.service.d.ts +11 -0
  156. package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -1
  157. package/dist/backend/backend/src/services/core/storage.service.js +34 -0
  158. package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
  159. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts +7 -1
  160. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
  161. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +29 -7
  162. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -1
  163. package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation-monitor.service.d.ts +140 -0
  164. package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation-monitor.service.d.ts.map +1 -0
  165. package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation-monitor.service.js +346 -0
  166. package/dist/backend/backend/src/services/hierarchy/hierarchy-escalation-monitor.service.js.map +1 -0
  167. package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts +27 -3
  168. package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
  169. package/dist/backend/backend/src/services/monitoring/token-usage.service.js +42 -7
  170. package/dist/backend/backend/src/services/monitoring/token-usage.service.js.map +1 -1
  171. package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.d.ts +47 -0
  172. package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.d.ts.map +1 -1
  173. package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.js +67 -1
  174. package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.js.map +1 -1
  175. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +22 -15
  176. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
  177. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +24 -15
  178. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
  179. package/dist/backend/backend/src/services/session/pty/pty-session.d.ts +7 -1
  180. package/dist/backend/backend/src/services/session/pty/pty-session.d.ts.map +1 -1
  181. package/dist/backend/backend/src/services/session/pty/pty-session.js +9 -3
  182. package/dist/backend/backend/src/services/session/pty/pty-session.js.map +1 -1
  183. package/dist/backend/backend/src/services/session/session-handoff.service.d.ts +27 -0
  184. package/dist/backend/backend/src/services/session/session-handoff.service.d.ts.map +1 -1
  185. package/dist/backend/backend/src/services/session/session-handoff.service.js +110 -22
  186. package/dist/backend/backend/src/services/session/session-handoff.service.js.map +1 -1
  187. package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts.map +1 -1
  188. package/dist/backend/backend/src/services/skill/skill-catalog.service.js +7 -1
  189. package/dist/backend/backend/src/services/skill/skill-catalog.service.js.map +1 -1
  190. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +52 -0
  191. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  192. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +132 -6
  193. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  194. package/dist/backend/backend/src/services/v3/escalation-boot.d.ts +87 -0
  195. package/dist/backend/backend/src/services/v3/escalation-boot.d.ts.map +1 -0
  196. package/dist/backend/backend/src/services/v3/escalation-boot.js +128 -0
  197. package/dist/backend/backend/src/services/v3/escalation-boot.js.map +1 -0
  198. package/dist/backend/backend/src/services/v3/escalation.service.d.ts +1 -1
  199. package/dist/backend/backend/src/services/v3/escalation.service.d.ts.map +1 -1
  200. package/dist/backend/backend/src/services/v3/escalation.service.js +4 -4
  201. package/dist/backend/backend/src/services/v3/escalation.service.js.map +1 -1
  202. package/dist/backend/backend/src/services/v3/kr-completion.subscriber.d.ts +118 -0
  203. package/dist/backend/backend/src/services/v3/kr-completion.subscriber.d.ts.map +1 -0
  204. package/dist/backend/backend/src/services/v3/kr-completion.subscriber.js +277 -0
  205. package/dist/backend/backend/src/services/v3/kr-completion.subscriber.js.map +1 -0
  206. package/dist/backend/backend/src/services/v3/kr-tracking.service.d.ts.map +1 -1
  207. package/dist/backend/backend/src/services/v3/kr-tracking.service.js +3 -6
  208. package/dist/backend/backend/src/services/v3/kr-tracking.service.js.map +1 -1
  209. package/dist/backend/backend/src/services/v3/mission-executor.service.d.ts +5 -0
  210. package/dist/backend/backend/src/services/v3/mission-executor.service.d.ts.map +1 -1
  211. package/dist/backend/backend/src/services/v3/mission-executor.service.js +36 -0
  212. package/dist/backend/backend/src/services/v3/mission-executor.service.js.map +1 -1
  213. package/dist/backend/backend/src/services/v3/mission-paths.d.ts +69 -0
  214. package/dist/backend/backend/src/services/v3/mission-paths.d.ts.map +1 -0
  215. package/dist/backend/backend/src/services/v3/mission-paths.js +92 -0
  216. package/dist/backend/backend/src/services/v3/mission-paths.js.map +1 -0
  217. package/dist/backend/backend/src/services/v3/mission-period.service.d.ts.map +1 -1
  218. package/dist/backend/backend/src/services/v3/mission-period.service.js +1 -12
  219. package/dist/backend/backend/src/services/v3/mission-period.service.js.map +1 -1
  220. package/dist/backend/backend/src/services/v3/mission-reminder.service.d.ts +74 -2
  221. package/dist/backend/backend/src/services/v3/mission-reminder.service.d.ts.map +1 -1
  222. package/dist/backend/backend/src/services/v3/mission-reminder.service.js +251 -9
  223. package/dist/backend/backend/src/services/v3/mission-reminder.service.js.map +1 -1
  224. package/dist/backend/backend/src/services/v3/okr-cascade.service.d.ts +6 -4
  225. package/dist/backend/backend/src/services/v3/okr-cascade.service.d.ts.map +1 -1
  226. package/dist/backend/backend/src/services/v3/okr-cascade.service.js +11 -10
  227. package/dist/backend/backend/src/services/v3/okr-cascade.service.js.map +1 -1
  228. package/dist/backend/backend/src/services/v3/okr-review.service.d.ts +24 -0
  229. package/dist/backend/backend/src/services/v3/okr-review.service.d.ts.map +1 -1
  230. package/dist/backend/backend/src/services/v3/okr-review.service.js +63 -3
  231. package/dist/backend/backend/src/services/v3/okr-review.service.js.map +1 -1
  232. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.d.ts +17 -0
  233. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.d.ts.map +1 -1
  234. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js +62 -13
  235. package/dist/backend/backend/src/services/v3/tl-auto-verify.service.js.map +1 -1
  236. package/dist/backend/backend/src/services/v3/v3-data.service.d.ts +6 -2
  237. package/dist/backend/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
  238. package/dist/backend/backend/src/services/v3/v3-data.service.js +14 -9
  239. package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -1
  240. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +14 -0
  241. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
  242. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +31 -0
  243. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
  244. package/dist/backend/backend/src/services/wiki/wiki-reflect-trigger.service.d.ts +21 -0
  245. package/dist/backend/backend/src/services/wiki/wiki-reflect-trigger.service.d.ts.map +1 -1
  246. package/dist/backend/backend/src/services/wiki/wiki-reflect-trigger.service.js +53 -3
  247. package/dist/backend/backend/src/services/wiki/wiki-reflect-trigger.service.js.map +1 -1
  248. package/dist/backend/backend/src/types/event-bus.types.d.ts +4 -2
  249. package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
  250. package/dist/backend/backend/src/types/event-bus.types.js +15 -0
  251. package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
  252. package/dist/backend/backend/src/types/index.d.ts +16 -0
  253. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  254. package/dist/backend/backend/src/types/index.js.map +1 -1
  255. package/dist/backend/backend/src/types/v2/index.d.ts +1 -1
  256. package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -1
  257. package/dist/backend/backend/src/types/v2/index.js +1 -1
  258. package/dist/backend/backend/src/types/v2/index.js.map +1 -1
  259. package/dist/backend/backend/src/types/v2/mission.types.d.ts +41 -0
  260. package/dist/backend/backend/src/types/v2/mission.types.d.ts.map +1 -1
  261. package/dist/backend/backend/src/types/v2/mission.types.js +29 -0
  262. package/dist/backend/backend/src/types/v2/mission.types.js.map +1 -1
  263. package/dist/backend/backend/src/utils/network-exposure.utils.d.ts +67 -0
  264. package/dist/backend/backend/src/utils/network-exposure.utils.d.ts.map +1 -0
  265. package/dist/backend/backend/src/utils/network-exposure.utils.js +92 -0
  266. package/dist/backend/backend/src/utils/network-exposure.utils.js.map +1 -0
  267. package/dist/backend/build-info.json +2 -2
  268. package/dist/backend/config/constants.d.ts +53 -0
  269. package/dist/backend/config/constants.d.ts.map +1 -1
  270. package/dist/backend/config/constants.js +54 -0
  271. package/dist/backend/config/constants.js.map +1 -1
  272. package/dist/backend/config/index.d.ts +2 -2
  273. package/dist/backend/config/index.d.ts.map +1 -1
  274. package/dist/backend/config/index.js +6 -6
  275. package/dist/backend/config/index.js.map +1 -1
  276. package/dist/cli/backend/src/constants.d.ts +100 -0
  277. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  278. package/dist/cli/backend/src/constants.js +88 -1
  279. package/dist/cli/backend/src/constants.js.map +1 -1
  280. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +68 -0
  281. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  282. package/dist/cli/backend/src/services/agent/agent-registration.service.js +280 -10
  283. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  284. package/dist/cli/backend/src/services/agent/claude-runtime.service.d.ts +7 -0
  285. package/dist/cli/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -1
  286. package/dist/cli/backend/src/services/agent/claude-runtime.service.js +10 -1
  287. package/dist/cli/backend/src/services/agent/claude-runtime.service.js.map +1 -1
  288. package/dist/cli/backend/src/services/agent/codex-runtime.service.d.ts +8 -0
  289. package/dist/cli/backend/src/services/agent/codex-runtime.service.d.ts.map +1 -1
  290. package/dist/cli/backend/src/services/agent/codex-runtime.service.js +11 -1
  291. package/dist/cli/backend/src/services/agent/codex-runtime.service.js.map +1 -1
  292. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +36 -1
  293. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  294. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +66 -9
  295. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  296. package/dist/cli/backend/src/services/agent/gemini-runtime.service.d.ts +7 -0
  297. package/dist/cli/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -1
  298. package/dist/cli/backend/src/services/agent/gemini-runtime.service.js +10 -1
  299. package/dist/cli/backend/src/services/agent/gemini-runtime.service.js.map +1 -1
  300. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +197 -0
  301. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  302. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +422 -3
  303. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  304. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts +27 -0
  305. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  306. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +50 -1
  307. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  308. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts +35 -0
  309. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.d.ts.map +1 -1
  310. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js +73 -2
  311. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-assembly.service.js.map +1 -1
  312. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +42 -0
  313. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
  314. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js +33 -0
  315. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
  316. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.d.ts.map +1 -1
  317. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js +13 -1
  318. package/dist/cli/backend/src/services/ai/prompt-modules/recovery.module.js.map +1 -1
  319. package/dist/cli/backend/src/services/backup/backup-archive.service.d.ts +26 -2
  320. package/dist/cli/backend/src/services/backup/backup-archive.service.d.ts.map +1 -1
  321. package/dist/cli/backend/src/services/backup/backup-archive.service.js +91 -10
  322. package/dist/cli/backend/src/services/backup/backup-archive.service.js.map +1 -1
  323. package/dist/cli/backend/src/services/backup/backup-restore.service.d.ts +15 -2
  324. package/dist/cli/backend/src/services/backup/backup-restore.service.d.ts.map +1 -1
  325. package/dist/cli/backend/src/services/backup/backup-restore.service.js +100 -21
  326. package/dist/cli/backend/src/services/backup/backup-restore.service.js.map +1 -1
  327. package/dist/cli/backend/src/services/backup/backup.types.d.ts +85 -2
  328. package/dist/cli/backend/src/services/backup/backup.types.d.ts.map +1 -1
  329. package/dist/cli/backend/src/services/backup/backup.types.js +21 -0
  330. package/dist/cli/backend/src/services/backup/backup.types.js.map +1 -1
  331. package/dist/cli/backend/src/services/backup/project-file-filter.d.ts +35 -0
  332. package/dist/cli/backend/src/services/backup/project-file-filter.d.ts.map +1 -0
  333. package/dist/cli/backend/src/services/backup/project-file-filter.js +90 -0
  334. package/dist/cli/backend/src/services/backup/project-file-filter.js.map +1 -0
  335. package/dist/cli/backend/src/services/budget/team-budget-gate.service.d.ts +165 -0
  336. package/dist/cli/backend/src/services/budget/team-budget-gate.service.d.ts.map +1 -0
  337. package/dist/cli/backend/src/services/budget/team-budget-gate.service.js +364 -0
  338. package/dist/cli/backend/src/services/budget/team-budget-gate.service.js.map +1 -0
  339. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts +29 -0
  340. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
  341. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js +42 -0
  342. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
  343. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts +16 -0
  344. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
  345. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js +22 -0
  346. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
  347. package/dist/cli/backend/src/services/core/api-token.service.d.ts +78 -0
  348. package/dist/cli/backend/src/services/core/api-token.service.d.ts.map +1 -0
  349. package/dist/cli/backend/src/services/core/api-token.service.js +149 -0
  350. package/dist/cli/backend/src/services/core/api-token.service.js.map +1 -0
  351. package/dist/cli/backend/src/services/core/logger.service.d.ts +10 -1
  352. package/dist/cli/backend/src/services/core/logger.service.d.ts.map +1 -1
  353. package/dist/cli/backend/src/services/core/logger.service.js +18 -3
  354. package/dist/cli/backend/src/services/core/logger.service.js.map +1 -1
  355. package/dist/cli/backend/src/services/core/storage.service.d.ts +11 -0
  356. package/dist/cli/backend/src/services/core/storage.service.d.ts.map +1 -1
  357. package/dist/cli/backend/src/services/core/storage.service.js +34 -0
  358. package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
  359. package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts +27 -3
  360. package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
  361. package/dist/cli/backend/src/services/monitoring/token-usage.service.js +42 -7
  362. package/dist/cli/backend/src/services/monitoring/token-usage.service.js.map +1 -1
  363. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts +47 -0
  364. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts.map +1 -1
  365. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js +67 -1
  366. package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js.map +1 -1
  367. package/dist/cli/backend/src/services/session/pty/pty-session.d.ts +7 -1
  368. package/dist/cli/backend/src/services/session/pty/pty-session.d.ts.map +1 -1
  369. package/dist/cli/backend/src/services/session/pty/pty-session.js +9 -3
  370. package/dist/cli/backend/src/services/session/pty/pty-session.js.map +1 -1
  371. package/dist/cli/backend/src/services/session/session-handoff.service.d.ts +27 -0
  372. package/dist/cli/backend/src/services/session/session-handoff.service.d.ts.map +1 -1
  373. package/dist/cli/backend/src/services/session/session-handoff.service.js +110 -22
  374. package/dist/cli/backend/src/services/session/session-handoff.service.js.map +1 -1
  375. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +52 -0
  376. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  377. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +132 -6
  378. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  379. package/dist/cli/backend/src/services/v3/kr-tracking.service.d.ts.map +1 -1
  380. package/dist/cli/backend/src/services/v3/kr-tracking.service.js +3 -6
  381. package/dist/cli/backend/src/services/v3/kr-tracking.service.js.map +1 -1
  382. package/dist/cli/backend/src/services/v3/mission-executor.service.d.ts +5 -0
  383. package/dist/cli/backend/src/services/v3/mission-executor.service.d.ts.map +1 -1
  384. package/dist/cli/backend/src/services/v3/mission-executor.service.js +36 -0
  385. package/dist/cli/backend/src/services/v3/mission-executor.service.js.map +1 -1
  386. package/dist/cli/backend/src/services/v3/mission-paths.d.ts +69 -0
  387. package/dist/cli/backend/src/services/v3/mission-paths.d.ts.map +1 -0
  388. package/dist/cli/backend/src/services/v3/mission-paths.js +92 -0
  389. package/dist/cli/backend/src/services/v3/mission-paths.js.map +1 -0
  390. package/dist/cli/backend/src/services/v3/v3-data.service.d.ts +6 -2
  391. package/dist/cli/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
  392. package/dist/cli/backend/src/services/v3/v3-data.service.js +14 -9
  393. package/dist/cli/backend/src/services/v3/v3-data.service.js.map +1 -1
  394. package/dist/cli/backend/src/types/event-bus.types.d.ts +4 -2
  395. package/dist/cli/backend/src/types/event-bus.types.d.ts.map +1 -1
  396. package/dist/cli/backend/src/types/event-bus.types.js +15 -0
  397. package/dist/cli/backend/src/types/event-bus.types.js.map +1 -1
  398. package/dist/cli/backend/src/types/index.d.ts +16 -0
  399. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  400. package/dist/cli/backend/src/types/index.js.map +1 -1
  401. package/dist/cli/backend/src/types/v2/index.d.ts +1 -1
  402. package/dist/cli/backend/src/types/v2/index.d.ts.map +1 -1
  403. package/dist/cli/backend/src/types/v2/index.js +1 -1
  404. package/dist/cli/backend/src/types/v2/index.js.map +1 -1
  405. package/dist/cli/backend/src/types/v2/mission.types.d.ts +41 -0
  406. package/dist/cli/backend/src/types/v2/mission.types.d.ts.map +1 -1
  407. package/dist/cli/backend/src/types/v2/mission.types.js +29 -0
  408. package/dist/cli/backend/src/types/v2/mission.types.js.map +1 -1
  409. package/dist/cli/cli/src/commands/backup.d.ts +25 -0
  410. package/dist/cli/cli/src/commands/backup.d.ts.map +1 -1
  411. package/dist/cli/cli/src/commands/backup.js +120 -6
  412. package/dist/cli/cli/src/commands/backup.js.map +1 -1
  413. package/dist/cli/cli/src/commands/doctor.d.ts +58 -0
  414. package/dist/cli/cli/src/commands/doctor.d.ts.map +1 -0
  415. package/dist/cli/cli/src/commands/doctor.js +163 -0
  416. package/dist/cli/cli/src/commands/doctor.js.map +1 -0
  417. package/dist/cli/cli/src/commands/service.d.ts +68 -11
  418. package/dist/cli/cli/src/commands/service.d.ts.map +1 -1
  419. package/dist/cli/cli/src/commands/service.js +183 -51
  420. package/dist/cli/cli/src/commands/service.js.map +1 -1
  421. package/dist/cli/cli/src/commands/token.d.ts +53 -0
  422. package/dist/cli/cli/src/commands/token.d.ts.map +1 -0
  423. package/dist/cli/cli/src/commands/token.js +70 -0
  424. package/dist/cli/cli/src/commands/token.js.map +1 -0
  425. package/dist/cli/cli/src/index.js +40 -5
  426. package/dist/cli/cli/src/index.js.map +1 -1
  427. package/dist/cli/cli/src/scripts/check-native-toolchain.d.ts +21 -0
  428. package/dist/cli/cli/src/scripts/check-native-toolchain.d.ts.map +1 -0
  429. package/dist/cli/cli/src/scripts/check-native-toolchain.js +40 -0
  430. package/dist/cli/cli/src/scripts/check-native-toolchain.js.map +1 -0
  431. package/dist/cli/cli/src/utils/native-toolchain.d.ts +111 -0
  432. package/dist/cli/cli/src/utils/native-toolchain.d.ts.map +1 -0
  433. package/dist/cli/cli/src/utils/native-toolchain.js +146 -0
  434. package/dist/cli/cli/src/utils/native-toolchain.js.map +1 -0
  435. package/dist/cli/cli/src/utils/package-root.d.ts +55 -0
  436. package/dist/cli/cli/src/utils/package-root.d.ts.map +1 -0
  437. package/dist/cli/cli/src/utils/package-root.js +107 -0
  438. package/dist/cli/cli/src/utils/package-root.js.map +1 -0
  439. package/dist/cli/cli/src/utils/version-check.d.ts +18 -2
  440. package/dist/cli/cli/src/utils/version-check.d.ts.map +1 -1
  441. package/dist/cli/cli/src/utils/version-check.js +51 -4
  442. package/dist/cli/cli/src/utils/version-check.js.map +1 -1
  443. package/dist/cli/config/constants.d.ts +53 -0
  444. package/dist/cli/config/constants.d.ts.map +1 -1
  445. package/dist/cli/config/constants.js +54 -0
  446. package/dist/cli/config/constants.js.map +1 -1
  447. package/dist/cli/config/index.d.ts +2 -2
  448. package/dist/cli/config/index.d.ts.map +1 -1
  449. package/dist/cli/config/index.js +6 -6
  450. package/dist/cli/config/index.js.map +1 -1
  451. package/frontend/dist/assets/index-203224f9.js +4961 -0
  452. package/frontend/dist/assets/index-dcaf6c88.css +42 -0
  453. package/frontend/dist/index.html +2 -2
  454. package/package.json +3 -2
  455. package/config/constants.d.ts.map +0 -1
  456. package/config/index.d.ts.map +0 -1
  457. package/frontend/dist/assets/index-190a957f.js +0 -4961
  458. package/frontend/dist/assets/index-88feb412.css +0 -42
@@ -0,0 +1,139 @@
1
+ /**
2
+ * API token middleware.
3
+ *
4
+ * Gates `/api/*`, Socket.IO and raw WebSocket upgrades behind the shared
5
+ * API token for every caller that is NOT on loopback. Loopback callers
6
+ * (`127.0.0.1`, `::1`, `::ffff:127.0.0.1`) pass without a token — that is
7
+ * how local skills (`api_call` in `config/skills/_common/lib.sh`) and the
8
+ * local dashboard work with zero setup.
9
+ *
10
+ * The token can be presented as `Authorization: Bearer <token>`,
11
+ * `X-Crewly-Token: <token>`, a `crewly_token` cookie, or (WebSocket /
12
+ * dashboard deep link only) a `?token=` query parameter.
13
+ *
14
+ * `X-Forwarded-For` is honoured ONLY when `CREWLY_TRUST_PROXY=1`, otherwise
15
+ * any LAN caller could spoof a loopback origin.
16
+ *
17
+ * The existing `require-auth.middleware.ts` (HS256 JWT for chat-v2) is
18
+ * untouched; this module only re-uses its verifier so that `/ws/chat`
19
+ * clients holding a valid JWT keep working when `CREWLY_JWT_SECRET` is set.
20
+ *
21
+ * @module middleware/api-token
22
+ */
23
+ import type { Request, Response, NextFunction } from 'express';
24
+ import type { IncomingMessage, Server as HttpServer } from 'http';
25
+ /** Minimal request shape shared by Express requests and raw upgrade requests. */
26
+ export interface AddressableRequest {
27
+ headers: IncomingMessage['headers'];
28
+ socket?: {
29
+ remoteAddress?: string;
30
+ } | null;
31
+ url?: string;
32
+ }
33
+ /**
34
+ * Whether `X-Forwarded-For` should be trusted for loopback classification.
35
+ *
36
+ * @returns True when `CREWLY_TRUST_PROXY` is `1` or `true`
37
+ */
38
+ export declare function isProxyTrusted(): boolean;
39
+ /**
40
+ * Resolve the address a request originates from.
41
+ *
42
+ * @param req - Express request or raw upgrade request
43
+ * @returns Remote address string, or empty string when unknown
44
+ */
45
+ export declare function getClientAddress(req: AddressableRequest): string;
46
+ /**
47
+ * Whether an address is one of the loopback forms Node reports.
48
+ *
49
+ * @param address - Remote address
50
+ * @returns True for `127.0.0.1`, `::1` and `::ffff:127.0.0.1`
51
+ */
52
+ export declare function isLoopbackAddress(address: string): boolean;
53
+ /**
54
+ * Whether a request originates from loopback (honouring the proxy rule).
55
+ *
56
+ * @param req - Express request or raw upgrade request
57
+ * @returns True when the caller is local
58
+ */
59
+ export declare function isLoopbackRequest(req: AddressableRequest): boolean;
60
+ /**
61
+ * Extract the token a caller presented, if any.
62
+ *
63
+ * Order: `Authorization: Bearer`, `X-Crewly-Token`, `crewly_token` cookie,
64
+ * then (when `allowQuery`) the `?token=` query parameter.
65
+ *
66
+ * @param req - Request carrying headers and url
67
+ * @param allowQuery - Whether to consult the query string (WebSocket handshakes)
68
+ * @returns Presented token or null
69
+ */
70
+ export declare function extractPresentedToken(req: AddressableRequest, allowQuery: boolean): string | null;
71
+ /**
72
+ * Whether a request presented a valid API token.
73
+ *
74
+ * @param req - Request carrying headers and url
75
+ * @param allowQuery - Whether to consult the query string
76
+ * @returns True when the presented token matches
77
+ */
78
+ export declare function hasValidApiToken(req: AddressableRequest, allowQuery: boolean): boolean;
79
+ /**
80
+ * Express middleware: loopback passes, everyone else needs the API token.
81
+ *
82
+ * Mounted in front of `/api` in `backend/src/index.ts`. `/health`, static
83
+ * assets and the SPA shell are not under `/api` and stay open.
84
+ *
85
+ * @param req - Express request
86
+ * @param res - Express response
87
+ * @param next - Express next
88
+ */
89
+ export declare function apiTokenMiddleware(req: Request, res: Response, next: NextFunction): void;
90
+ /**
91
+ * Express middleware for owner-only decisions (OKR approve/reject).
92
+ *
93
+ * Requires the API token EVEN from loopback — agents on the box do not have
94
+ * it (the server strips `CREWLY_API_TOKEN` from agent PTY environments and
95
+ * the token file is 0600), the dashboard does. Any request carrying an
96
+ * `X-Agent-Session` header is refused outright with 403 so an agent cannot
97
+ * approve its own proposal even if it somehow obtained the token.
98
+ *
99
+ * On success `res.locals.ownerTokenFingerprint` holds the first 8 hex chars
100
+ * of sha256(token) for the audit trail.
101
+ *
102
+ * @param req - Express request
103
+ * @param res - Express response
104
+ * @param next - Express next
105
+ */
106
+ export declare function requireOwnerToken(req: Request, res: Response, next: NextFunction): void;
107
+ /**
108
+ * Decide whether a raw HTTP request (WebSocket upgrade or Engine.IO
109
+ * handshake) may proceed.
110
+ *
111
+ * Loopback passes. Otherwise the API token must be present (query `token`
112
+ * accepted here because browsers cannot set headers on WebSocket
113
+ * handshakes). `/ws/chat` additionally accepts a valid chat JWT when
114
+ * `CREWLY_JWT_SECRET` is configured, since that gateway has its own auth.
115
+ *
116
+ * @param req - Incoming HTTP request
117
+ * @returns True when the connection is allowed
118
+ */
119
+ export declare function isUpgradeAllowed(req: IncomingMessage): boolean;
120
+ /**
121
+ * Engine.IO `allowRequest` hook for the Socket.IO server. Covers both the
122
+ * polling handshake (which bypasses Express) and the WebSocket transport.
123
+ *
124
+ * @param req - Handshake request
125
+ * @param callback - Engine.IO callback `(err, success)`
126
+ */
127
+ export declare function socketIoAllowRequest(req: IncomingMessage, callback: (err: string | null | undefined, success: boolean) => void): void;
128
+ /**
129
+ * Install the WebSocket upgrade gate on an HTTP server.
130
+ *
131
+ * Wraps `httpServer.emit` (the same exclusive-handoff pattern the browser
132
+ * bridge and chat gateway use) so an unauthorised `upgrade` is answered
133
+ * with `401` and closed before ANY gateway sees it. Must be installed
134
+ * AFTER every gateway has attached so this wrapper is the outermost one.
135
+ *
136
+ * @param httpServer - Server whose upgrades to gate
137
+ */
138
+ export declare function installWebSocketGate(httpServer: HttpServer): void;
139
+ //# sourceMappingURL=api-token.middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-token.middleware.d.ts","sourceRoot":"","sources":["../../../../../backend/src/middleware/api-token.middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AAelE,iFAAiF;AACjF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAGxC;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CAShE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAElE;AAyBD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CA0BjG;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAEtF;AAgBD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAexF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAiBvF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAkB9D;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,eAAe,EACpB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,GACnE,IAAI,CASN;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAuBjE"}
@@ -0,0 +1,301 @@
1
+ /**
2
+ * API token middleware.
3
+ *
4
+ * Gates `/api/*`, Socket.IO and raw WebSocket upgrades behind the shared
5
+ * API token for every caller that is NOT on loopback. Loopback callers
6
+ * (`127.0.0.1`, `::1`, `::ffff:127.0.0.1`) pass without a token — that is
7
+ * how local skills (`api_call` in `config/skills/_common/lib.sh`) and the
8
+ * local dashboard work with zero setup.
9
+ *
10
+ * The token can be presented as `Authorization: Bearer <token>`,
11
+ * `X-Crewly-Token: <token>`, a `crewly_token` cookie, or (WebSocket /
12
+ * dashboard deep link only) a `?token=` query parameter.
13
+ *
14
+ * `X-Forwarded-For` is honoured ONLY when `CREWLY_TRUST_PROXY=1`, otherwise
15
+ * any LAN caller could spoof a loopback origin.
16
+ *
17
+ * The existing `require-auth.middleware.ts` (HS256 JWT for chat-v2) is
18
+ * untouched; this module only re-uses its verifier so that `/ws/chat`
19
+ * clients holding a valid JWT keep working when `CREWLY_JWT_SECRET` is set.
20
+ *
21
+ * @module middleware/api-token
22
+ */
23
+ import { API_SECURITY_CONSTANTS } from '../../../config/constants.js';
24
+ import { verifyApiToken, getApiTokenFingerprint } from '../services/core/api-token.service.js';
25
+ import { verifyHs256Token } from './require-auth.middleware.js';
26
+ import { LoggerService } from '../services/core/logger.service.js';
27
+ const logger = LoggerService.getInstance().createComponentLogger('ApiTokenMiddleware');
28
+ /** Path prefix of the chat-v2 WebSocket gateway (has its own JWT verifier). */
29
+ const CHAT_WS_PATH = '/ws/chat';
30
+ /** Header carrying the agent session identity (set by skill `api_call`). */
31
+ const AGENT_SESSION_HEADER = 'x-agent-session';
32
+ /**
33
+ * Whether `X-Forwarded-For` should be trusted for loopback classification.
34
+ *
35
+ * @returns True when `CREWLY_TRUST_PROXY` is `1` or `true`
36
+ */
37
+ export function isProxyTrusted() {
38
+ const raw = process.env[API_SECURITY_CONSTANTS.ENV.TRUST_PROXY];
39
+ return raw === '1' || raw === 'true';
40
+ }
41
+ /**
42
+ * Resolve the address a request originates from.
43
+ *
44
+ * @param req - Express request or raw upgrade request
45
+ * @returns Remote address string, or empty string when unknown
46
+ */
47
+ export function getClientAddress(req) {
48
+ if (isProxyTrusted()) {
49
+ const forwarded = req.headers['x-forwarded-for'];
50
+ const first = (Array.isArray(forwarded) ? forwarded[0] : forwarded)?.split(',')[0]?.trim();
51
+ if (first) {
52
+ return first;
53
+ }
54
+ }
55
+ return req.socket?.remoteAddress ?? '';
56
+ }
57
+ /**
58
+ * Whether an address is one of the loopback forms Node reports.
59
+ *
60
+ * @param address - Remote address
61
+ * @returns True for `127.0.0.1`, `::1` and `::ffff:127.0.0.1`
62
+ */
63
+ export function isLoopbackAddress(address) {
64
+ return API_SECURITY_CONSTANTS.LOOPBACK_ADDRESSES.includes(address);
65
+ }
66
+ /**
67
+ * Whether a request originates from loopback (honouring the proxy rule).
68
+ *
69
+ * @param req - Express request or raw upgrade request
70
+ * @returns True when the caller is local
71
+ */
72
+ export function isLoopbackRequest(req) {
73
+ return isLoopbackAddress(getClientAddress(req));
74
+ }
75
+ /**
76
+ * Parse a `Cookie` header into a name → value map.
77
+ *
78
+ * @param header - Raw cookie header
79
+ * @returns Parsed cookies (URL-decoded values)
80
+ */
81
+ function parseCookies(header) {
82
+ const out = {};
83
+ if (!header)
84
+ return out;
85
+ for (const part of header.split(';')) {
86
+ const eq = part.indexOf('=');
87
+ if (eq <= 0)
88
+ continue;
89
+ const name = part.slice(0, eq).trim();
90
+ const value = part.slice(eq + 1).trim();
91
+ try {
92
+ out[name] = decodeURIComponent(value);
93
+ }
94
+ catch {
95
+ out[name] = value;
96
+ }
97
+ }
98
+ return out;
99
+ }
100
+ /**
101
+ * Extract the token a caller presented, if any.
102
+ *
103
+ * Order: `Authorization: Bearer`, `X-Crewly-Token`, `crewly_token` cookie,
104
+ * then (when `allowQuery`) the `?token=` query parameter.
105
+ *
106
+ * @param req - Request carrying headers and url
107
+ * @param allowQuery - Whether to consult the query string (WebSocket handshakes)
108
+ * @returns Presented token or null
109
+ */
110
+ export function extractPresentedToken(req, allowQuery) {
111
+ const auth = req.headers.authorization;
112
+ if (typeof auth === 'string' && auth.startsWith('Bearer ')) {
113
+ const value = auth.slice('Bearer '.length).trim();
114
+ if (value)
115
+ return value;
116
+ }
117
+ const headerToken = req.headers[API_SECURITY_CONSTANTS.TOKEN_HEADER];
118
+ const headerValue = Array.isArray(headerToken) ? headerToken[0] : headerToken;
119
+ if (headerValue)
120
+ return headerValue.trim();
121
+ const cookies = parseCookies(req.headers.cookie);
122
+ const cookieValue = cookies[API_SECURITY_CONSTANTS.TOKEN_COOKIE];
123
+ if (cookieValue)
124
+ return cookieValue;
125
+ if (allowQuery && req.url) {
126
+ try {
127
+ const host = req.headers.host || 'localhost';
128
+ const queryValue = new URL(req.url, `http://${host}`).searchParams.get(API_SECURITY_CONSTANTS.TOKEN_QUERY_PARAM);
129
+ if (queryValue)
130
+ return queryValue;
131
+ }
132
+ catch {
133
+ // Malformed URL — treat as no token
134
+ }
135
+ }
136
+ return null;
137
+ }
138
+ /**
139
+ * Whether a request presented a valid API token.
140
+ *
141
+ * @param req - Request carrying headers and url
142
+ * @param allowQuery - Whether to consult the query string
143
+ * @returns True when the presented token matches
144
+ */
145
+ export function hasValidApiToken(req, allowQuery) {
146
+ return verifyApiToken(extractPresentedToken(req, allowQuery));
147
+ }
148
+ /**
149
+ * Send the standard 401 challenge.
150
+ *
151
+ * @param res - Express response
152
+ */
153
+ function sendUnauthorized(res) {
154
+ res.setHeader('WWW-Authenticate', API_SECURITY_CONSTANTS.AUTH_SCHEME);
155
+ res.status(401).json({
156
+ success: false,
157
+ error: API_SECURITY_CONSTANTS.ERRORS.UNAUTHORIZED,
158
+ hint: API_SECURITY_CONSTANTS.UNAUTHORIZED_HINT,
159
+ });
160
+ }
161
+ /**
162
+ * Express middleware: loopback passes, everyone else needs the API token.
163
+ *
164
+ * Mounted in front of `/api` in `backend/src/index.ts`. `/health`, static
165
+ * assets and the SPA shell are not under `/api` and stay open.
166
+ *
167
+ * @param req - Express request
168
+ * @param res - Express response
169
+ * @param next - Express next
170
+ */
171
+ export function apiTokenMiddleware(req, res, next) {
172
+ if (isLoopbackRequest(req)) {
173
+ next();
174
+ return;
175
+ }
176
+ if (hasValidApiToken(req, false)) {
177
+ next();
178
+ return;
179
+ }
180
+ logger.warn('Rejected unauthenticated non-loopback API request', {
181
+ address: getClientAddress(req),
182
+ method: req.method,
183
+ path: req.originalUrl,
184
+ });
185
+ sendUnauthorized(res);
186
+ }
187
+ /**
188
+ * Express middleware for owner-only decisions (OKR approve/reject).
189
+ *
190
+ * Requires the API token EVEN from loopback — agents on the box do not have
191
+ * it (the server strips `CREWLY_API_TOKEN` from agent PTY environments and
192
+ * the token file is 0600), the dashboard does. Any request carrying an
193
+ * `X-Agent-Session` header is refused outright with 403 so an agent cannot
194
+ * approve its own proposal even if it somehow obtained the token.
195
+ *
196
+ * On success `res.locals.ownerTokenFingerprint` holds the first 8 hex chars
197
+ * of sha256(token) for the audit trail.
198
+ *
199
+ * @param req - Express request
200
+ * @param res - Express response
201
+ * @param next - Express next
202
+ */
203
+ export function requireOwnerToken(req, res, next) {
204
+ const agentSession = req.headers[AGENT_SESSION_HEADER];
205
+ if (typeof agentSession === 'string' && agentSession.length > 0) {
206
+ res.status(403).json({
207
+ success: false,
208
+ error: API_SECURITY_CONSTANTS.ERRORS.OWNER_APPROVAL_REQUIRED,
209
+ hint: 'This decision must be made by the owner from the dashboard or with the API token, not by an agent session.',
210
+ });
211
+ return;
212
+ }
213
+ const presented = extractPresentedToken(req, false);
214
+ if (!verifyApiToken(presented)) {
215
+ sendUnauthorized(res);
216
+ return;
217
+ }
218
+ res.locals.ownerTokenFingerprint = getApiTokenFingerprint(presented);
219
+ next();
220
+ }
221
+ /**
222
+ * Decide whether a raw HTTP request (WebSocket upgrade or Engine.IO
223
+ * handshake) may proceed.
224
+ *
225
+ * Loopback passes. Otherwise the API token must be present (query `token`
226
+ * accepted here because browsers cannot set headers on WebSocket
227
+ * handshakes). `/ws/chat` additionally accepts a valid chat JWT when
228
+ * `CREWLY_JWT_SECRET` is configured, since that gateway has its own auth.
229
+ *
230
+ * @param req - Incoming HTTP request
231
+ * @returns True when the connection is allowed
232
+ */
233
+ export function isUpgradeAllowed(req) {
234
+ if (isLoopbackRequest(req))
235
+ return true;
236
+ if (hasValidApiToken(req, true))
237
+ return true;
238
+ const jwtSecret = process.env['CREWLY_JWT_SECRET'];
239
+ if (jwtSecret && req.url) {
240
+ try {
241
+ const host = req.headers.host || 'localhost';
242
+ const parsed = new URL(req.url, `http://${host}`);
243
+ if (parsed.pathname === CHAT_WS_PATH) {
244
+ const jwt = parsed.searchParams.get(API_SECURITY_CONSTANTS.TOKEN_QUERY_PARAM);
245
+ if (jwt && verifyHs256Token(jwt, jwtSecret)?.sub)
246
+ return true;
247
+ }
248
+ }
249
+ catch {
250
+ // fall through
251
+ }
252
+ }
253
+ return false;
254
+ }
255
+ /**
256
+ * Engine.IO `allowRequest` hook for the Socket.IO server. Covers both the
257
+ * polling handshake (which bypasses Express) and the WebSocket transport.
258
+ *
259
+ * @param req - Handshake request
260
+ * @param callback - Engine.IO callback `(err, success)`
261
+ */
262
+ export function socketIoAllowRequest(req, callback) {
263
+ if (isUpgradeAllowed(req)) {
264
+ callback(null, true);
265
+ return;
266
+ }
267
+ logger.warn('Rejected unauthenticated non-loopback Socket.IO handshake', {
268
+ address: getClientAddress(req),
269
+ });
270
+ callback(API_SECURITY_CONSTANTS.ERRORS.UNAUTHORIZED, false);
271
+ }
272
+ /**
273
+ * Install the WebSocket upgrade gate on an HTTP server.
274
+ *
275
+ * Wraps `httpServer.emit` (the same exclusive-handoff pattern the browser
276
+ * bridge and chat gateway use) so an unauthorised `upgrade` is answered
277
+ * with `401` and closed before ANY gateway sees it. Must be installed
278
+ * AFTER every gateway has attached so this wrapper is the outermost one.
279
+ *
280
+ * @param httpServer - Server whose upgrades to gate
281
+ */
282
+ export function installWebSocketGate(httpServer) {
283
+ const originalEmit = httpServer.emit.bind(httpServer);
284
+ httpServer.emit = (event, ...args) => {
285
+ if (event === 'upgrade') {
286
+ const request = args[0];
287
+ const socket = args[1];
288
+ if (!isUpgradeAllowed(request)) {
289
+ logger.warn('Rejected unauthenticated non-loopback WebSocket upgrade', {
290
+ address: getClientAddress(request),
291
+ path: request.url,
292
+ });
293
+ socket.write(`HTTP/1.1 401 Unauthorized\r\nWWW-Authenticate: ${API_SECURITY_CONSTANTS.AUTH_SCHEME}\r\nConnection: close\r\nContent-Length: 0\r\n\r\n`);
294
+ socket.destroy();
295
+ return true;
296
+ }
297
+ }
298
+ return originalEmit(event, ...args);
299
+ };
300
+ }
301
+ //# sourceMappingURL=api-token.middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-token.middleware.js","sourceRoot":"","sources":["../../../../../backend/src/middleware/api-token.middleware.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"api.routes.d.ts","sourceRoot":"","sources":["../../../../../backend/src/routes/api.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAyDjE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAmOpE"}
1
+ {"version":3,"file":"api.routes.d.ts","sourceRoot":"","sources":["../../../../../backend/src/routes/api.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAyDjE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAsOpE"}
@@ -35,7 +35,7 @@ import { createOnboardingRouter } from '../controllers/onboarding/onboarding.rou
35
35
  import { createOrchestratorOnboardingRouter } from '../controllers/orchestrator-onboarding/orchestrator-onboarding.routes.js';
36
36
  import { createDataRouter } from '../controllers/data/data.routes.js';
37
37
  import { createIntentTaskRouter } from '../controllers/intent-task/intent-task.routes.js';
38
- import { createTaskPoolRouter } from '../controllers/task-pool/task-pool.routes.js';
38
+ import { createTaskPoolRouter, createTaskScoreRouter } from '../controllers/task-pool/task-pool.routes.js';
39
39
  import { createRequestRouter } from '../controllers/request/request.routes.js';
40
40
  import { createReconcilerRouter } from '../controllers/reconciler/reconciler.routes.js';
41
41
  import { createTeamHealthRouter } from '../controllers/team-health/team-health.routes.js';
@@ -131,6 +131,8 @@ export function createApiRoutes(apiController) {
131
131
  router.use('/requests', createRequestRouter());
132
132
  // Task Pool routes for V2 work item pool management
133
133
  router.use('/task-pool', createTaskPoolRouter());
134
+ // Auditor quality scoring (`POST /api/tasks/score`, used by the score-task skill)
135
+ router.use('/tasks', createTaskScoreRouter());
134
136
  // Reconciler routes for status monitoring, manual trigger, and history
135
137
  router.use('/reconciler', createReconcilerRouter());
136
138
  // Team-Health-Watchdog (THW) — Layer 4 liveness aggregator routes
@@ -1 +1 @@
1
- {"version":3,"file":"api.routes.js","sourceRoot":"","sources":["../../../../../backend/src/routes/api.routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.routes.js","sourceRoot":"","sources":["../../../../../backend/src/routes/api.routes.ts"],"names":[],"mappings":"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"}
@@ -194,6 +194,14 @@ export declare class AgentRegistrationService {
194
194
  * Uses shorter intervals in test environment for faster tests.
195
195
  */
196
196
  private getCheckInterval;
197
+ /**
198
+ * Use the short test-environment cadence under Jest, otherwise the given
199
+ * production interval.
200
+ *
201
+ * @param productionMs - Interval to use outside the test environment
202
+ * @returns Interval in milliseconds
203
+ */
204
+ private testAwareInterval;
197
205
  /**
198
206
  * Update agent status with safe error handling (non-blocking).
199
207
  * Returns true if successful, false if failed.
@@ -214,6 +222,18 @@ export declare class AgentRegistrationService {
214
222
  * shape used by `getPromptFileForRole`).
215
223
  */
216
224
  private static readonly ROLE_DIR_ALIASES;
225
+ /**
226
+ * Assemble the orchestrator prompt at the *other* profile and log the
227
+ * module count + token estimate of both tiers side by side, so the
228
+ * operator can judge what `CREWLY_ORC_PROMPT_PROFILE=lite` would save (or
229
+ * did save) without diffing prompts by hand. Read-only and best-effort:
230
+ * a failure here never affects the prompt that was already assembled.
231
+ *
232
+ * @param assembler - The assembler used for the live prompt
233
+ * @param moduleConfig - Config the live prompt was assembled from
234
+ * @param liveReport - Report of the live (selected-profile) assembly
235
+ */
236
+ private logPromptProfileComparison;
217
237
  /**
218
238
  * Get prompt file path for a specific role
219
239
  * Uses the unified config/roles/{role}/prompt.md structure
@@ -271,6 +291,43 @@ export declare class AgentRegistrationService {
271
291
  * runtime exits before registration completes.
272
292
  */
273
293
  private sendRegistrationPromptAsync;
294
+ /**
295
+ * Poll the PTY screen until the runtime is idle at its input prompt
296
+ * (`RuntimeAgentService.isReadyForInput`) or the timeout elapses.
297
+ *
298
+ * On timeout we log a warning and return `false` but the caller still
299
+ * sends the instruction — a late instruction is recoverable (re-delivery,
300
+ * `POST /api/terminal/:s/deliver`), a never-sent one is not.
301
+ *
302
+ * @param sessionName - PTY session name
303
+ * @param runtimeType - Runtime whose prompt heuristics to use
304
+ * @param abortSignal - Aborts the wait when the runtime exits
305
+ * @param timeoutMs - Maximum time to wait (defaults to RUNTIME_INPUT_READY_TIMEOUT_MS)
306
+ * @returns true when the idle prompt was observed, false on timeout/abort
307
+ */
308
+ private waitForRuntimeInputReady;
309
+ /**
310
+ * Resolve how long an agent gets to register after its prompt is delivered.
311
+ * Mirrors the timeout selection used when the session is created.
312
+ *
313
+ * @param role - Agent role
314
+ * @param runtimeType - Agent runtime
315
+ * @returns Registration timeout in milliseconds
316
+ */
317
+ private resolveRegistrationTimeout;
318
+ /**
319
+ * After the registration instruction was delivered, wait the registration
320
+ * timeout for the agent to flip to `active`. If it does not, log an error
321
+ * (this used to be completely silent) and re-deliver the instruction once,
322
+ * gated again on the runtime being idle at its prompt.
323
+ *
324
+ * @param sessionName - PTY session name
325
+ * @param role - Agent role
326
+ * @param prompt - The full registration prompt (re-written to the prompt file)
327
+ * @param runtimeType - Agent runtime
328
+ * @param abortSignal - Aborts when the runtime exits
329
+ */
330
+ private redeliverIfUnregistered;
274
331
  /**
275
332
  * Step 3: Kill session and recreate completely
276
333
  * Most aggressive approach - completely recreates the session from scratch
@@ -349,6 +406,17 @@ export declare class AgentRegistrationService {
349
406
  * Fast registration polling with shorter intervals
350
407
  */
351
408
  private waitForRegistrationFast;
409
+ /**
410
+ * Resolve the orchestrator's working directory deterministically:
411
+ * `CREWLY_ORC_CWD` env → first stored project whose path exists → CREWLY_HOME.
412
+ *
413
+ * Never the package install dir or the server's `process.cwd()`: under
414
+ * systemd that is `/usr/lib/node_modules/crewly`, and the orchestrator
415
+ * would see a different filesystem depending on which code path started it.
416
+ *
417
+ * @returns Absolute directory to spawn the orchestrator PTY in
418
+ */
419
+ resolveOrchestratorCwd(): Promise<string>;
352
420
  /**
353
421
  * Create orchestrator session - extracted from the original tmux service
354
422
  */
@@ -1 +1 @@
1
- {"version":3,"file":"agent-registration.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/agent-registration.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-registration.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/agent-registration.service.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,iCAAiC,EAAE,MAAM,yDAAyD,CAAC;AAK5G,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EACN,gBAAgB,EAMhB,WAAW,EAQX,MAAM,oBAAoB,CAAC;AAyC5B,MAAM,WAAW,kBAAkB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;aACnB,QAAQ,EAAE,OAAO;gBAAjB,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM;CAc/D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAQzF;AAED;;;;;;;;;GASG;AACH,qBAAa,wBAAwB;IACpC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,WAAW,CAA6B;IAGhD,OAAO,CAAC,oBAAoB,CAA4G;IAGxI,OAAO,CAAC,4BAA4B,CAAsC;IAG1E,OAAO,CAAC,yBAAyB,CAA+C;IAGhF,OAAO,CAAC,kBAAkB,CAAkC;IAI5D,OAAO,CAAC,kBAAkB,CAKpB;IAKN,OAAO,CAAC,oBAAoB,CAAoC;IAIhE,OAAO,CAAC,mBAAmB,CAAuD;IAIlF,OAAO,CAAC,iBAAiB,CAAwD;IAEjF,0EAA0E;IAC1E,OAAO,CAAC,gBAAgB,CAA+E;IAEvG,qFAAqF;IACrF,OAAO,CAAC,eAAe,CAAmK;IAK1L,OAAO,CAAC,MAAM,KAAK,wBAAwB,GAE1C;gBAGA,kBAAkB,EAAE,OAAO,EAAE,+CAA+C;IAC5E,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,cAAc,EAAE,cAAc;IAmB/B;;;;OAIG;IACH,mBAAmB,CAAC,SAAS,EAAE;QAAE,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI;IAIpG;;;;OAIG;IACH,kBAAkB,CAAC,QAAQ,EAAE;QAAE,SAAS,CAAC,KAAK,EAAE,OAAO,gCAAgC,EAAE,uBAAuB,GAAG,OAAO,gCAAgC,EAAE,iBAAiB,CAAA;KAAE,GAAG,IAAI;IAItL;;;;;OAKG;IACH,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IASpD;;OAEG;YACW,gBAAgB;IA2B9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;;;;;;;OASG;YACW,yBAAyB;IA+BvC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,4BAA4B;IAsDpC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,6BAA6B;IA0KrC;;OAEG;IACH,OAAO,CAAC,eAAe;IAwBvB;;;;;;;;;OASG;YACW,mBAAmB;IA2DjC;;;;;;OAMG;YACW,iBAAiB;IAgB/B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;;;;;OAMG;IACH,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,iCAAiC,GAAG,SAAS;IAIvF;;;;;;;;OAQG;IACH,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAKtD;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;;OAGG;YACW,qBAAqB;IAkBnC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAKrC;IAEH;;;;;;;;;;OAUG;YACW,0BAA0B;IAqCxC;;;OAGG;YACW,oBAAoB;IAclC;;;OAGG;IACG,+BAA+B,CACpC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,MAAoD,EAC7D,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,GAAE,WAAuC,EACpD,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,wBAAwB,CAAC,EAAE,MAAM,EAAE,GACjC,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAkFF;;;OAGG;YACW,qBAAqB;IA8CnC;;;OAGG;YACW,mBAAmB;IAuKjC;;;;;;;;;;;OAWG;YACW,uBAAuB;IA0CrC;;;;;;;;;;;;OAYG;YACW,0BAA0B;IAyDxC;;;;OAIG;YACW,2BAA2B;IAwDzC;;;;;;;;;;;;;OAaG;YACW,wBAAwB;IA0DtC;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IAMlC;;;;;;;;;;;OAWG;YACW,uBAAuB;IAiDrC;;;OAGG;YACW,iBAAiB;IAmP/B;;;;;;;;;OASG;YACW,oBAAoB;IA0DlC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,0BAA0B;IAqDlC;;OAEG;YACW,sBAAsB;IAgapC;;;;;;;;;;;OAWG;YACW,eAAe;IAsC7B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;OAEG;YACW,mBAAmB;IA8BjC;;OAEG;YACW,sBAAsB;IAiCpC;;;;OAIG;YACW,mCAAmC;IAgJjD;;OAEG;YACW,uBAAuB;IA8BrC;;;;;;;;;OASG;IACG,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC;IA8B/C;;OAEG;YACW,yBAAyB;IA0BvC;;;;OAIG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAChC,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB;;;;WAIG;QACH,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB;;;;;WAKG;QACH,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;KACpC,GAAG,OAAO,CAAC;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAkDF;;;;OAIG;YACW,uBAAuB;IAskBrC;;;;;OAKG;IACG,qBAAqB,CAC1B,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,MAAkB,GACtB,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAuFF;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,kBAAkB,CACvB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,WAAW,GACvB,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IA+PF;;;;;;;;;;;OAWG;IACG,iBAAiB,CACtB,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAqD,EAChE,WAAW,CAAC,EAAE,WAAW,GACvB,OAAO,CAAC,OAAO,CAAC;IAsGnB;;;;;;;;;OASG;YACW,oBAAoB;IAqzBlC;;;;;;;;;;OAUG;YACW,sBAAsB;IAmDpC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,sBAAsB;IAyD9B;;;;;;;OAOG;YACW,sBAAsB;IA2BpC;;;;;;;;;;OAUG;IACH,yBAAyB,IAAI,IAAI;IAsBjC;;OAEG;IACH,wBAAwB,IAAI,IAAI;IAQhC;;;;;;;;OAQG;YACW,oBAAoB;IAqKlC;;;;;OAKG;IACH,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAK/C;;;;;;;OAOG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAuB5D;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IAkDxB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,mBAAmB;IA0B3B;;;;;;;;;OASG;YACW,qBAAqB;IA+BnC;;;;;OAKG;IACG,cAAc,CACnB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,GACT,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAyCF;;;;;;OAMG;IACG,gBAAgB,CACrB,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,GAAE,MAAa,GACpB,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE;YACN,KAAK,EAAE;gBACN,WAAW,EAAE,MAAM,CAAC;gBACpB,IAAI,CAAC,EAAE,MAAM,CAAC;gBACd,OAAO,EAAE,OAAO,CAAC;gBACjB,MAAM,EAAE,CAAC,OAAO,gBAAgB,CAAC,cAAc,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,cAAc,CAAC,CAAC;aAC/F,CAAC;YACF,SAAS,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAuCF;;;;;;;;;;;;;OAaG;YACW,kBAAkB;IAmLhC;;;;;;;;;OASG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAW3E"}