crewly 1.8.9 → 1.8.11

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 (241) hide show
  1. package/config/constants.d.ts.map +1 -0
  2. package/config/index.d.ts.map +1 -0
  3. package/config/roles/_common/memory-instructions.md +6 -5
  4. package/config/roles/_common/wiki-instructions.md +49 -0
  5. package/config/roles/architect/prompt.md +2 -2
  6. package/config/roles/backend-developer/prompt.md +2 -2
  7. package/config/roles/designer/prompt.md +2 -2
  8. package/config/roles/developer/prompt.md +2 -2
  9. package/config/roles/frontend-developer/prompt.md +2 -2
  10. package/config/roles/fullstack-dev/prompt.md +2 -2
  11. package/config/roles/generalist/prompt.md +2 -2
  12. package/config/roles/ops/prompt.md +2 -2
  13. package/config/roles/orchestrator/prompt.md +135 -11
  14. package/config/roles/product-manager/prompt.md +2 -2
  15. package/config/roles/qa/prompt.md +2 -2
  16. package/config/roles/qa-engineer/prompt.md +2 -2
  17. package/config/roles/researcher/prompt.md +15 -6
  18. package/config/roles/sales/prompt.md +2 -2
  19. package/config/roles/support/prompt.md +2 -2
  20. package/config/roles/team-leader/prompt.md +17 -2
  21. package/config/roles/tpm/prompt.md +2 -2
  22. package/config/roles/ux-designer/prompt.md +2 -2
  23. package/config/skills/orchestrator/wiki-cleanup/SKILL.md +89 -0
  24. package/config/skills/orchestrator/wiki-cleanup/execute.sh +139 -0
  25. package/config/skills/orchestrator/wiki-lint/SKILL.md +75 -0
  26. package/config/skills/orchestrator/wiki-lint/execute.sh +66 -0
  27. package/config/skills/orchestrator/wiki-migrate/SKILL.md +103 -0
  28. package/config/skills/orchestrator/wiki-migrate/execute.sh +82 -0
  29. package/config/skills/orchestrator/wiki-process-queue/SKILL.md +9 -1
  30. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +169 -0
  31. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -0
  32. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +1779 -0
  33. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -0
  34. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +18 -0
  35. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
  36. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +63 -0
  37. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
  38. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.d.ts.map +1 -1
  39. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js +5 -1
  40. package/dist/backend/backend/src/controllers/task-pool/task-pool.routes.js.map +1 -1
  41. package/dist/backend/backend/src/controllers/wiki/wiki.controller.d.ts +109 -0
  42. package/dist/backend/backend/src/controllers/wiki/wiki.controller.d.ts.map +1 -1
  43. package/dist/backend/backend/src/controllers/wiki/wiki.controller.js +418 -4
  44. package/dist/backend/backend/src/controllers/wiki/wiki.controller.js.map +1 -1
  45. package/dist/backend/backend/src/controllers/wiki/wiki.routes.d.ts.map +1 -1
  46. package/dist/backend/backend/src/controllers/wiki/wiki.routes.js +11 -1
  47. package/dist/backend/backend/src/controllers/wiki/wiki.routes.js.map +1 -1
  48. package/dist/backend/backend/src/index.d.ts.map +1 -1
  49. package/dist/backend/backend/src/index.js +64 -0
  50. package/dist/backend/backend/src/index.js.map +1 -1
  51. package/dist/backend/backend/src/index.js.orc-bak-20260529 +3130 -0
  52. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts +513 -0
  53. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts.map +1 -0
  54. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js +1568 -0
  55. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js.map +1 -0
  56. package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.d.ts +86 -0
  57. package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.d.ts.map +1 -0
  58. package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.js +147 -0
  59. package/dist/backend/backend/src/services/agent/crewly-agent/agent-worker.js.map +1 -0
  60. package/dist/backend/backend/src/services/agent/crewly-agent/api-client.d.ts +68 -0
  61. package/dist/backend/backend/src/services/agent/crewly-agent/api-client.d.ts.map +1 -0
  62. package/dist/backend/backend/src/services/agent/crewly-agent/api-client.js +131 -0
  63. package/dist/backend/backend/src/services/agent/crewly-agent/api-client.js.map +1 -0
  64. package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.d.ts +130 -0
  65. package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.d.ts.map +1 -0
  66. package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.js +263 -0
  67. package/dist/backend/backend/src/services/agent/crewly-agent/audit-log.service.js.map +1 -0
  68. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.d.ts +74 -0
  69. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.d.ts.map +1 -0
  70. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.js +140 -0
  71. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.js.map +1 -0
  72. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.d.ts +29 -0
  73. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.d.ts.map +1 -0
  74. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js +279 -0
  75. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js.map +1 -0
  76. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts +340 -0
  77. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts.map +1 -0
  78. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js +1176 -0
  79. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js.map +1 -0
  80. package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.d.ts +79 -0
  81. package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.d.ts.map +1 -0
  82. package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.js +145 -0
  83. package/dist/backend/backend/src/services/agent/crewly-agent/deepseek-sse-transform.js.map +1 -0
  84. package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.d.ts +79 -0
  85. package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.d.ts.map +1 -0
  86. package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.js +218 -0
  87. package/dist/backend/backend/src/services/agent/crewly-agent/env-isolation.service.js.map +1 -0
  88. package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts +16 -0
  89. package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts.map +1 -0
  90. package/dist/backend/backend/src/services/agent/crewly-agent/index.js +16 -0
  91. package/dist/backend/backend/src/services/agent/crewly-agent/index.js.map +1 -0
  92. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.d.ts +135 -0
  93. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.d.ts.map +1 -0
  94. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.js +185 -0
  95. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.js.map +1 -0
  96. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts +141 -0
  97. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts.map +1 -0
  98. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js +310 -0
  99. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js.map +1 -0
  100. package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.d.ts +91 -0
  101. package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.d.ts.map +1 -0
  102. package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.js +143 -0
  103. package/dist/backend/backend/src/services/agent/crewly-agent/output-filter.service.js.map +1 -0
  104. package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.d.ts +103 -0
  105. package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.d.ts.map +1 -0
  106. package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.js +256 -0
  107. package/dist/backend/backend/src/services/agent/crewly-agent/prompt-guard.service.js.map +1 -0
  108. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts +143 -0
  109. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts.map +1 -0
  110. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js +264 -0
  111. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js.map +1 -0
  112. package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.d.ts +13 -0
  113. package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.d.ts.map +1 -0
  114. package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.js +91 -0
  115. package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.js.map +1 -0
  116. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts +135 -0
  117. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts.map +1 -0
  118. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js +1937 -0
  119. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js.map +1 -0
  120. package/dist/backend/backend/src/services/ai/prompt-builder.service.js +1 -1
  121. package/dist/backend/backend/src/services/autonomous/auto-assign.service.d.ts +429 -0
  122. package/dist/backend/backend/src/services/autonomous/auto-assign.service.d.ts.map +1 -0
  123. package/dist/backend/backend/src/services/autonomous/auto-assign.service.js +852 -0
  124. package/dist/backend/backend/src/services/autonomous/auto-assign.service.js.map +1 -0
  125. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts +171 -0
  126. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +1 -0
  127. package/dist/backend/backend/src/services/project/task-tracking.service.js +725 -0
  128. package/dist/backend/backend/src/services/project/task-tracking.service.js.map +1 -0
  129. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
  130. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +50 -0
  131. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
  132. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +19 -0
  133. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  134. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +45 -0
  135. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  136. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts.map +1 -1
  137. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js +34 -1
  138. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -1
  139. package/dist/backend/backend/src/services/v3/project-task-watcher.service.d.ts +118 -0
  140. package/dist/backend/backend/src/services/v3/project-task-watcher.service.d.ts.map +1 -0
  141. package/dist/backend/backend/src/services/v3/project-task-watcher.service.js +326 -0
  142. package/dist/backend/backend/src/services/v3/project-task-watcher.service.js.map +1 -0
  143. package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.d.ts +72 -0
  144. package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.d.ts.map +1 -0
  145. package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.js +186 -0
  146. package/dist/backend/backend/src/services/wiki/wiki-backlinks.service.js.map +1 -0
  147. package/dist/backend/backend/src/services/wiki/wiki-bookkeep-trigger.service.d.ts +4 -1
  148. package/dist/backend/backend/src/services/wiki/wiki-bookkeep-trigger.service.d.ts.map +1 -1
  149. package/dist/backend/backend/src/services/wiki/wiki-bookkeep-trigger.service.js +24 -1
  150. package/dist/backend/backend/src/services/wiki/wiki-bookkeep-trigger.service.js.map +1 -1
  151. package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.d.ts +74 -0
  152. package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.d.ts.map +1 -0
  153. package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.js +154 -0
  154. package/dist/backend/backend/src/services/wiki/wiki-chat-subscriber.service.js.map +1 -0
  155. package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.d.ts +160 -0
  156. package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.d.ts.map +1 -0
  157. package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.js +399 -0
  158. package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.js.map +1 -0
  159. package/dist/backend/backend/src/services/wiki/wiki-lint.service.d.ts +182 -0
  160. package/dist/backend/backend/src/services/wiki/wiki-lint.service.d.ts.map +1 -0
  161. package/dist/backend/backend/src/services/wiki/wiki-lint.service.js +505 -0
  162. package/dist/backend/backend/src/services/wiki/wiki-lint.service.js.map +1 -0
  163. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts +232 -0
  164. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts.map +1 -0
  165. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js +1416 -0
  166. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js.map +1 -0
  167. package/dist/backend/backend/src/services/wiki/wiki-recent.service.d.ts +51 -0
  168. package/dist/backend/backend/src/services/wiki/wiki-recent.service.d.ts.map +1 -0
  169. package/dist/backend/backend/src/services/wiki/wiki-recent.service.js +102 -0
  170. package/dist/backend/backend/src/services/wiki/wiki-recent.service.js.map +1 -0
  171. package/dist/backend/backend/src/services/wiki/wiki-reflect-trigger.service.d.ts +84 -0
  172. package/dist/backend/backend/src/services/wiki/wiki-reflect-trigger.service.d.ts.map +1 -0
  173. package/dist/backend/backend/src/services/wiki/wiki-reflect-trigger.service.js +156 -0
  174. package/dist/backend/backend/src/services/wiki/wiki-reflect-trigger.service.js.map +1 -0
  175. package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts +90 -0
  176. package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -0
  177. package/dist/backend/backend/src/services/wiki/wiki-search.service.js +190 -0
  178. package/dist/backend/backend/src/services/wiki/wiki-search.service.js.map +1 -0
  179. package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.d.ts +164 -0
  180. package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.d.ts.map +1 -0
  181. package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.js +675 -0
  182. package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.js.map +1 -0
  183. package/dist/backend/backend/src/services/workflow/cron-task.service.d.ts.map +1 -1
  184. package/dist/backend/backend/src/services/workflow/cron-task.service.js +65 -0
  185. package/dist/backend/backend/src/services/workflow/cron-task.service.js.map +1 -1
  186. package/dist/backend/backend/src/types/auto-assign.types.d.ts +271 -0
  187. package/dist/backend/backend/src/types/auto-assign.types.d.ts.map +1 -0
  188. package/dist/backend/backend/src/types/auto-assign.types.js +136 -0
  189. package/dist/backend/backend/src/types/auto-assign.types.js.map +1 -0
  190. package/dist/backend/backend/src/types/cron-task.types.d.ts +16 -1
  191. package/dist/backend/backend/src/types/cron-task.types.d.ts.map +1 -1
  192. package/dist/backend/backend/src/utils/esm-require.utils.d.ts +111 -0
  193. package/dist/backend/backend/src/utils/esm-require.utils.d.ts.map +1 -0
  194. package/dist/backend/backend/src/utils/esm-require.utils.js +124 -0
  195. package/dist/backend/backend/src/utils/esm-require.utils.js.map +1 -0
  196. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +220 -0
  197. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -0
  198. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js +37 -0
  199. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -0
  200. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.d.ts +56 -0
  201. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.d.ts.map +1 -0
  202. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.js +91 -0
  203. package/dist/cli/backend/src/services/knowledge/fts5-search-strategy.js.map +1 -0
  204. package/dist/cli/backend/src/services/knowledge/learnings-index.service.d.ts +159 -0
  205. package/dist/cli/backend/src/services/knowledge/learnings-index.service.d.ts.map +1 -0
  206. package/dist/cli/backend/src/services/knowledge/learnings-index.service.js +304 -0
  207. package/dist/cli/backend/src/services/knowledge/learnings-index.service.js.map +1 -0
  208. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.d.ts +115 -0
  209. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.d.ts.map +1 -0
  210. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.js +215 -0
  211. package/dist/cli/backend/src/services/knowledge/wiki-compiler.service.js.map +1 -0
  212. package/dist/cli/backend/src/services/memory/embedding-provider.d.ts +78 -0
  213. package/dist/cli/backend/src/services/memory/embedding-provider.d.ts.map +1 -0
  214. package/dist/cli/backend/src/services/memory/embedding-provider.js +179 -0
  215. package/dist/cli/backend/src/services/memory/embedding-provider.js.map +1 -0
  216. package/dist/cli/backend/src/services/memory/vector-store.service.d.ts +331 -0
  217. package/dist/cli/backend/src/services/memory/vector-store.service.d.ts.map +1 -0
  218. package/dist/cli/backend/src/services/memory/vector-store.service.js +814 -0
  219. package/dist/cli/backend/src/services/memory/vector-store.service.js.map +1 -0
  220. package/dist/cli/backend/src/services/project/task-tracking.service.d.ts +171 -0
  221. package/dist/cli/backend/src/services/project/task-tracking.service.d.ts.map +1 -0
  222. package/dist/cli/backend/src/services/project/task-tracking.service.js +725 -0
  223. package/dist/cli/backend/src/services/project/task-tracking.service.js.map +1 -0
  224. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +19 -0
  225. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  226. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +45 -0
  227. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  228. package/dist/cli/backend/src/types/auto-assign.types.d.ts +271 -0
  229. package/dist/cli/backend/src/types/auto-assign.types.d.ts.map +1 -0
  230. package/dist/cli/backend/src/types/auto-assign.types.js +136 -0
  231. package/dist/cli/backend/src/types/auto-assign.types.js.map +1 -0
  232. package/dist/cli/cli/src/index.js +0 -0
  233. package/frontend/dist/assets/{index-db3f5041.css → index-068bb4f6.css} +10 -1
  234. package/frontend/dist/assets/index-c24ceb15.js +4960 -0
  235. package/frontend/dist/index.html +2 -2
  236. package/package.json +1 -1
  237. package/config/skills/agent/core/query-knowledge/SKILL.md +0 -87
  238. package/config/skills/agent/core/query-knowledge/execute.sh +0 -30
  239. package/config/skills/orchestrator/query-knowledge/SKILL.md +0 -75
  240. package/config/skills/orchestrator/query-knowledge/execute.sh +0 -30
  241. package/frontend/dist/assets/index-cc115bb4.js +0 -4926
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crewly-agent-runtime.service.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * DeepSeek SSE Transform — extracts `reasoning_content` from DeepSeek-R1 streaming responses.
3
+ *
4
+ * **Why this exists:**
5
+ * DeepSeek-R1 (`deepseek-reasoner`) returns chain-of-thought as `delta.reasoning_content`
6
+ * inside each SSE chunk. The Vercel AI SDK's @ai-sdk/openai chat-completions parser
7
+ * (3.0.41) accumulates `reasoning_tokens` into `usage.reasoningTokens` (correct billing
8
+ * surface) but **does not** map `reasoning_content` text to any content-part or
9
+ * `reasoningText` field. Result: users pay for reasoning tokens but the reasoning
10
+ * text is silently dropped.
11
+ *
12
+ * **What this module does:**
13
+ * - Pure stream transformer: takes a DeepSeek SSE response body, tees it,
14
+ * passes one branch through unchanged (for AI SDK to consume normally),
15
+ * and parses the other branch to extract reasoning_content into an
16
+ * accumulator string.
17
+ * - Zero dependency on AI SDK internals — operates only on the raw SSE byte
18
+ * stream that AI SDK is about to consume.
19
+ *
20
+ * **Architectural note (Sam memo reconciliation):**
21
+ * Earlier scope memo referenced wrapping a "PR #425 translator output" layer.
22
+ * Verified: PR #425 is the frontend Settings UI fix; no Crewly-owned translator
23
+ * exists. The only seam Crewly owns between DeepSeek and the AI SDK is the
24
+ * `createOpenAI({ fetch })` upstream hook in model-manager.ts. This module is
25
+ * the body of that hook.
26
+ *
27
+ * **DeepClaude pattern reference (read-only):**
28
+ * Reasoning-content extraction approach borrowed conceptually from public
29
+ * DeepClaude pattern (HTTP proxy that splits R1 reasoning from final answer).
30
+ * **No code, no fork, no dependency** — pattern reference only, per Anthropic
31
+ * ToS guardrail flagged by Arch.
32
+ *
33
+ * @module services/agent/crewly-agent/deepseek-sse-transform
34
+ */
35
+ /**
36
+ * Result of teeing and parsing a DeepSeek SSE body.
37
+ *
38
+ * - `passthroughBody` is the un-tampered byte stream that should be handed
39
+ * to the consumer (AI SDK) as the response body.
40
+ * - `getReasoning()` returns the accumulated reasoning_content text once
41
+ * the underlying stream has fully drained. Calling it before drain
42
+ * returns whatever has been parsed so far.
43
+ */
44
+ export interface ParsedDeepseekSse {
45
+ passthroughBody: ReadableStream<Uint8Array>;
46
+ getReasoning(): string;
47
+ /** True once the parser has seen the SSE `[DONE]` sentinel or stream end. */
48
+ isDrained(): boolean;
49
+ }
50
+ /**
51
+ * Parse a single SSE event-block (one or more `data:` lines + a blank line).
52
+ *
53
+ * Returns the accumulated reasoning_content string from this block, or
54
+ * empty string if the block had no reasoning content. Returns `null` if
55
+ * the block is the `[DONE]` sentinel.
56
+ *
57
+ * @param block - One SSE event block (between blank-line delimiters)
58
+ * @returns reasoning_content string, or `null` if `[DONE]`
59
+ */
60
+ export declare function parseSseBlock(block: string): string | null;
61
+ /**
62
+ * Tee a DeepSeek SSE response body and parse one branch for reasoning_content
63
+ * while passing the other branch through to the AI SDK consumer unchanged.
64
+ *
65
+ * The parser runs as a fire-and-forget background reader on the cloned stream.
66
+ * It accumulates reasoning text into an internal buffer that the caller can
67
+ * read via `getReasoning()` after the consumer has drained the passthrough.
68
+ *
69
+ * **Stream safety:**
70
+ * - The tee is symmetric: backpressure on the consumer branch does not
71
+ * stall the parser branch (and vice versa) thanks to ReadableStream.tee()
72
+ * internal buffering.
73
+ * - Parser errors are caught and logged but never propagated to the consumer.
74
+ *
75
+ * @param body - Raw SSE response body from DeepSeek
76
+ * @returns Object with passthrough body and reasoning accumulator
77
+ */
78
+ export declare function teeAndParse(body: ReadableStream<Uint8Array>): ParsedDeepseekSse;
79
+ //# sourceMappingURL=deepseek-sse-transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepseek-sse-transform.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/deepseek-sse-transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAgBH;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IACjC,eAAe,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAC5C,YAAY,IAAI,MAAM,CAAC;IACvB,6EAA6E;IAC7E,SAAS,IAAI,OAAO,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAoB1D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,iBAAiB,CAqD/E"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * DeepSeek SSE Transform — extracts `reasoning_content` from DeepSeek-R1 streaming responses.
3
+ *
4
+ * **Why this exists:**
5
+ * DeepSeek-R1 (`deepseek-reasoner`) returns chain-of-thought as `delta.reasoning_content`
6
+ * inside each SSE chunk. The Vercel AI SDK's @ai-sdk/openai chat-completions parser
7
+ * (3.0.41) accumulates `reasoning_tokens` into `usage.reasoningTokens` (correct billing
8
+ * surface) but **does not** map `reasoning_content` text to any content-part or
9
+ * `reasoningText` field. Result: users pay for reasoning tokens but the reasoning
10
+ * text is silently dropped.
11
+ *
12
+ * **What this module does:**
13
+ * - Pure stream transformer: takes a DeepSeek SSE response body, tees it,
14
+ * passes one branch through unchanged (for AI SDK to consume normally),
15
+ * and parses the other branch to extract reasoning_content into an
16
+ * accumulator string.
17
+ * - Zero dependency on AI SDK internals — operates only on the raw SSE byte
18
+ * stream that AI SDK is about to consume.
19
+ *
20
+ * **Architectural note (Sam memo reconciliation):**
21
+ * Earlier scope memo referenced wrapping a "PR #425 translator output" layer.
22
+ * Verified: PR #425 is the frontend Settings UI fix; no Crewly-owned translator
23
+ * exists. The only seam Crewly owns between DeepSeek and the AI SDK is the
24
+ * `createOpenAI({ fetch })` upstream hook in model-manager.ts. This module is
25
+ * the body of that hook.
26
+ *
27
+ * **DeepClaude pattern reference (read-only):**
28
+ * Reasoning-content extraction approach borrowed conceptually from public
29
+ * DeepClaude pattern (HTTP proxy that splits R1 reasoning from final answer).
30
+ * **No code, no fork, no dependency** — pattern reference only, per Anthropic
31
+ * ToS guardrail flagged by Arch.
32
+ *
33
+ * @module services/agent/crewly-agent/deepseek-sse-transform
34
+ */
35
+ /**
36
+ * Parse a single SSE event-block (one or more `data:` lines + a blank line).
37
+ *
38
+ * Returns the accumulated reasoning_content string from this block, or
39
+ * empty string if the block had no reasoning content. Returns `null` if
40
+ * the block is the `[DONE]` sentinel.
41
+ *
42
+ * @param block - One SSE event block (between blank-line delimiters)
43
+ * @returns reasoning_content string, or `null` if `[DONE]`
44
+ */
45
+ export function parseSseBlock(block) {
46
+ const lines = block.split('\n');
47
+ let reasoning = '';
48
+ for (const line of lines) {
49
+ if (!line.startsWith('data:'))
50
+ continue;
51
+ const payload = line.slice(5).trim();
52
+ if (!payload)
53
+ continue;
54
+ if (payload === '[DONE]')
55
+ return null;
56
+ try {
57
+ const chunk = JSON.parse(payload);
58
+ const r = chunk.choices?.[0]?.delta?.reasoning_content;
59
+ if (typeof r === 'string') {
60
+ reasoning += r;
61
+ }
62
+ }
63
+ catch {
64
+ // Malformed JSON — skip silently; AI SDK consumer will surface
65
+ // any real error itself when it parses the same chunk.
66
+ }
67
+ }
68
+ return reasoning;
69
+ }
70
+ /**
71
+ * Tee a DeepSeek SSE response body and parse one branch for reasoning_content
72
+ * while passing the other branch through to the AI SDK consumer unchanged.
73
+ *
74
+ * The parser runs as a fire-and-forget background reader on the cloned stream.
75
+ * It accumulates reasoning text into an internal buffer that the caller can
76
+ * read via `getReasoning()` after the consumer has drained the passthrough.
77
+ *
78
+ * **Stream safety:**
79
+ * - The tee is symmetric: backpressure on the consumer branch does not
80
+ * stall the parser branch (and vice versa) thanks to ReadableStream.tee()
81
+ * internal buffering.
82
+ * - Parser errors are caught and logged but never propagated to the consumer.
83
+ *
84
+ * @param body - Raw SSE response body from DeepSeek
85
+ * @returns Object with passthrough body and reasoning accumulator
86
+ */
87
+ export function teeAndParse(body) {
88
+ const [consumerBranch, parserBranch] = body.tee();
89
+ let reasoning = '';
90
+ let drained = false;
91
+ // Background reader: drain parserBranch, parse SSE, accumulate reasoning.
92
+ // Errors are swallowed — consumer branch is independent and unaffected.
93
+ void (async () => {
94
+ const reader = parserBranch.getReader();
95
+ const decoder = new TextDecoder();
96
+ let buffer = '';
97
+ try {
98
+ while (true) {
99
+ const { done, value } = await reader.read();
100
+ if (done)
101
+ break;
102
+ buffer += decoder.decode(value, { stream: true });
103
+ // SSE event blocks are delimited by blank lines (\n\n).
104
+ let blankIdx;
105
+ while ((blankIdx = buffer.indexOf('\n\n')) >= 0) {
106
+ const block = buffer.slice(0, blankIdx);
107
+ buffer = buffer.slice(blankIdx + 2);
108
+ const result = parseSseBlock(block);
109
+ if (result === null) {
110
+ drained = true;
111
+ }
112
+ else if (result) {
113
+ reasoning += result;
114
+ }
115
+ }
116
+ }
117
+ // Flush trailing partial block (if SSE source ended mid-block — defensive)
118
+ if (buffer.trim()) {
119
+ const result = parseSseBlock(buffer);
120
+ if (result && result !== null)
121
+ reasoning += result;
122
+ }
123
+ }
124
+ catch (err) {
125
+ // Parser failures must not break consumer flow — log and exit.
126
+ // eslint-disable-next-line no-console
127
+ console.warn('[DeepSeek SSE Transform] parser branch error (consumer unaffected):', err);
128
+ }
129
+ finally {
130
+ drained = true;
131
+ try {
132
+ reader.releaseLock();
133
+ }
134
+ catch {
135
+ /* already released */
136
+ }
137
+ }
138
+ })();
139
+ return {
140
+ passthroughBody: consumerBranch,
141
+ getReasoning: () => reasoning,
142
+ isDrained: () => drained,
143
+ };
144
+ }
145
+ //# sourceMappingURL=deepseek-sse-transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepseek-sse-transform.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/deepseek-sse-transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAgCH;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,SAAS;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,IAAI,OAAO,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACtC,IAAI,CAAC;YACJ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAqB,CAAC;YACtD,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC;YACvD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC3B,SAAS,IAAI,CAAC,CAAC;YAChB,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,+DAA+D;YAC/D,uDAAuD;QACxD,CAAC;IACF,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,WAAW,CAAC,IAAgC;IAC3D,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAClD,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,0EAA0E;IAC1E,wEAAwE;IACxE,KAAK,CAAC,KAAK,IAAI,EAAE;QAChB,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC;YACJ,OAAO,IAAI,EAAE,CAAC;gBACb,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI;oBAAE,MAAM;gBAChB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClD,wDAAwD;gBACxD,IAAI,QAAgB,CAAC;gBACrB,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;oBACxC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;oBACpC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;oBACpC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;wBACrB,OAAO,GAAG,IAAI,CAAC;oBAChB,CAAC;yBAAM,IAAI,MAAM,EAAE,CAAC;wBACnB,SAAS,IAAI,MAAM,CAAC;oBACrB,CAAC;gBACF,CAAC;YACF,CAAC;YACD,2EAA2E;YAC3E,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBACnB,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACrC,IAAI,MAAM,IAAI,MAAM,KAAK,IAAI;oBAAE,SAAS,IAAI,MAAM,CAAC;YACpD,CAAC;QACF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,+DAA+D;YAC/D,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,qEAAqE,EAAE,GAAG,CAAC,CAAC;QAC1F,CAAC;gBAAS,CAAC;YACV,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,CAAC;gBACJ,MAAM,CAAC,WAAW,EAAE,CAAC;YACtB,CAAC;YAAC,MAAM,CAAC;gBACR,sBAAsB;YACvB,CAAC;QACF,CAAC;IACF,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO;QACN,eAAe,EAAE,cAAc;QAC/B,YAAY,EAAE,GAAG,EAAE,CAAC,SAAS;QAC7B,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO;KACxB,CAAC;AACH,CAAC"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Environment Isolation Service
3
+ *
4
+ * Strips sensitive environment variables (API keys, tokens, secrets) from
5
+ * child process environments when agents execute bash commands. Maintains
6
+ * an allowlist of safe variables and provides a mechanism to explicitly
7
+ * pass specific vars when needed.
8
+ *
9
+ * @module services/agent/crewly-agent/env-isolation.service
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const isolation = new EnvIsolationService();
14
+ * const safeEnv = isolation.createSafeEnv(process.env);
15
+ * // safeEnv has PATH, HOME, etc. but no ANTHROPIC_API_KEY
16
+ *
17
+ * const withOverrides = isolation.createSafeEnv(process.env, ['MY_CUSTOM_VAR']);
18
+ * // safeEnv + MY_CUSTOM_VAR explicitly included
19
+ * ```
20
+ */
21
+ /**
22
+ * Environment variables that are always safe to pass to child processes.
23
+ * These are essential for basic shell operation and don't contain secrets.
24
+ */
25
+ export declare const SAFE_ENV_ALLOWLIST: readonly string[];
26
+ /**
27
+ * Patterns that identify sensitive environment variable names.
28
+ * Variables matching these patterns are stripped from child processes.
29
+ */
30
+ export declare const SENSITIVE_ENV_PATTERNS: readonly RegExp[];
31
+ /**
32
+ * Service that creates sanitized environment objects for child processes.
33
+ */
34
+ export declare class EnvIsolationService {
35
+ private readonly allowlist;
36
+ private readonly sensitivePatterns;
37
+ /**
38
+ * Creates a new EnvIsolationService.
39
+ *
40
+ * @param additionalSafeVars - Extra variable names to always allow
41
+ * @param additionalSensitivePatterns - Extra patterns to block
42
+ */
43
+ constructor(additionalSafeVars?: string[], additionalSensitivePatterns?: RegExp[]);
44
+ /**
45
+ * Creates a safe environment object by filtering out sensitive variables.
46
+ *
47
+ * Strategy:
48
+ * 1. Start with all env vars
49
+ * 2. Keep vars on the allowlist
50
+ * 3. Remove vars matching sensitive patterns
51
+ * 4. Add explicitly requested vars (overrides)
52
+ *
53
+ * @param sourceEnv - Source environment (typically process.env)
54
+ * @param explicitVars - Variable names to explicitly include even if they'd be filtered
55
+ * @returns Sanitized environment object safe for child processes
56
+ */
57
+ createSafeEnv(sourceEnv: Record<string, string | undefined>, explicitVars?: string[]): Record<string, string>;
58
+ /**
59
+ * Checks if an environment variable name matches any sensitive pattern.
60
+ *
61
+ * @param varName - Environment variable name to check
62
+ * @returns True if the variable is considered sensitive
63
+ */
64
+ isSensitive(varName: string): boolean;
65
+ /**
66
+ * Returns the list of sensitive variable names found in the given environment.
67
+ * Useful for audit logging.
68
+ *
69
+ * @param sourceEnv - Environment to scan
70
+ * @returns Array of sensitive variable names found
71
+ */
72
+ findSensitiveVars(sourceEnv: Record<string, string | undefined>): string[];
73
+ /**
74
+ * Returns the current allowlist as an array.
75
+ * @returns Copy of the safe variable allowlist
76
+ */
77
+ getAllowlist(): string[];
78
+ }
79
+ //# sourceMappingURL=env-isolation.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-isolation.service.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/env-isolation.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAwEtC,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EA0C1C,CAAC;AAEX;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IAEtD;;;;;OAKG;gBAED,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAC7B,2BAA2B,CAAC,EAAE,MAAM,EAAE;IAQxC;;;;;;;;;;;;OAYG;IACH,aAAa,CACX,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC7C,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IA+BzB;;;;;OAKG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIrC;;;;;;OAMG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,EAAE;IAI1E;;;OAGG;IACH,YAAY,IAAI,MAAM,EAAE;CAGzB"}
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Environment Isolation Service
3
+ *
4
+ * Strips sensitive environment variables (API keys, tokens, secrets) from
5
+ * child process environments when agents execute bash commands. Maintains
6
+ * an allowlist of safe variables and provides a mechanism to explicitly
7
+ * pass specific vars when needed.
8
+ *
9
+ * @module services/agent/crewly-agent/env-isolation.service
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const isolation = new EnvIsolationService();
14
+ * const safeEnv = isolation.createSafeEnv(process.env);
15
+ * // safeEnv has PATH, HOME, etc. but no ANTHROPIC_API_KEY
16
+ *
17
+ * const withOverrides = isolation.createSafeEnv(process.env, ['MY_CUSTOM_VAR']);
18
+ * // safeEnv + MY_CUSTOM_VAR explicitly included
19
+ * ```
20
+ */
21
+ /**
22
+ * Environment variables that are always safe to pass to child processes.
23
+ * These are essential for basic shell operation and don't contain secrets.
24
+ */
25
+ export const SAFE_ENV_ALLOWLIST = [
26
+ // System essentials
27
+ 'PATH',
28
+ 'HOME',
29
+ 'USER',
30
+ 'LOGNAME',
31
+ 'SHELL',
32
+ 'TERM',
33
+ 'TERM_PROGRAM',
34
+ 'LANG',
35
+ 'LC_ALL',
36
+ 'LC_CTYPE',
37
+ 'TZ',
38
+ 'TMPDIR',
39
+ 'TEMP',
40
+ 'TMP',
41
+ // Node.js / runtime
42
+ 'NODE_ENV',
43
+ 'NODE_PATH',
44
+ 'NODE_OPTIONS',
45
+ 'NPM_CONFIG_PREFIX',
46
+ 'NVM_DIR',
47
+ 'NVM_BIN',
48
+ // Build tools
49
+ 'FORCE_COLOR',
50
+ 'NO_COLOR',
51
+ 'CI',
52
+ 'EDITOR',
53
+ 'VISUAL',
54
+ 'PAGER',
55
+ // Git (non-secret)
56
+ 'GIT_AUTHOR_NAME',
57
+ 'GIT_AUTHOR_EMAIL',
58
+ 'GIT_COMMITTER_NAME',
59
+ 'GIT_COMMITTER_EMAIL',
60
+ // Platform
61
+ 'HOSTNAME',
62
+ 'PWD',
63
+ 'OLDPWD',
64
+ 'SHLVL',
65
+ 'XDG_CONFIG_HOME',
66
+ 'XDG_DATA_HOME',
67
+ 'XDG_CACHE_HOME',
68
+ 'XDG_RUNTIME_DIR',
69
+ // macOS specifics
70
+ 'COMMAND_MODE',
71
+ '__CF_USER_TEXT_ENCODING',
72
+ // Python
73
+ 'PYTHONPATH',
74
+ 'VIRTUAL_ENV',
75
+ // Rust
76
+ 'CARGO_HOME',
77
+ 'RUSTUP_HOME',
78
+ // Go
79
+ 'GOPATH',
80
+ 'GOROOT',
81
+ // Java
82
+ 'JAVA_HOME',
83
+ // Homebrew
84
+ 'HOMEBREW_PREFIX',
85
+ 'HOMEBREW_CELLAR',
86
+ 'HOMEBREW_REPOSITORY',
87
+ ];
88
+ /**
89
+ * Patterns that identify sensitive environment variable names.
90
+ * Variables matching these patterns are stripped from child processes.
91
+ */
92
+ export const SENSITIVE_ENV_PATTERNS = [
93
+ /api[_-]?key/i,
94
+ /api[_-]?secret/i,
95
+ /api[_-]?token/i,
96
+ /secret[_-]?key/i,
97
+ /access[_-]?key/i,
98
+ /access[_-]?token/i,
99
+ /auth[_-]?token/i,
100
+ /bearer[_-]?token/i,
101
+ /private[_-]?key/i,
102
+ /password/i,
103
+ /passwd/i,
104
+ /credential/i,
105
+ /^AWS_SECRET/i,
106
+ /^AWS_SESSION/i,
107
+ /^ANTHROPIC_API/i,
108
+ /^OPENAI_API/i,
109
+ /^GOOGLE_API/i,
110
+ /^GOOGLE_APPLICATION_CREDENTIALS/i,
111
+ /^STRIPE_SECRET/i,
112
+ /^SUPABASE_SERVICE_ROLE/i,
113
+ /^DATABASE_URL$/i,
114
+ /^REDIS_URL$/i,
115
+ /^MONGODB_URI$/i,
116
+ /^GITHUB_TOKEN$/i,
117
+ /^GH_TOKEN$/i,
118
+ /^NPM_TOKEN$/i,
119
+ /^DOCKER_PASSWORD$/i,
120
+ /^DOCKER_AUTH$/i,
121
+ /connection[_-]?string/i,
122
+ /^SENTRY_DSN$/i,
123
+ /^DATADOG_API_KEY$/i,
124
+ /^SENDGRID_API_KEY$/i,
125
+ /^TWILIO_AUTH_TOKEN$/i,
126
+ /^SLACK_BOT_TOKEN$/i,
127
+ /^SLACK_TOKEN$/i,
128
+ /^DISCORD_TOKEN$/i,
129
+ /^WEBHOOK_SECRET$/i,
130
+ /^SIGNING_SECRET$/i,
131
+ /^ENCRYPTION_KEY$/i,
132
+ /^JWT_SECRET$/i,
133
+ /^SESSION_SECRET$/i,
134
+ ];
135
+ /**
136
+ * Service that creates sanitized environment objects for child processes.
137
+ */
138
+ export class EnvIsolationService {
139
+ allowlist;
140
+ sensitivePatterns;
141
+ /**
142
+ * Creates a new EnvIsolationService.
143
+ *
144
+ * @param additionalSafeVars - Extra variable names to always allow
145
+ * @param additionalSensitivePatterns - Extra patterns to block
146
+ */
147
+ constructor(additionalSafeVars, additionalSensitivePatterns) {
148
+ this.allowlist = new Set([...SAFE_ENV_ALLOWLIST, ...(additionalSafeVars || [])]);
149
+ this.sensitivePatterns = additionalSensitivePatterns
150
+ ? [...SENSITIVE_ENV_PATTERNS, ...additionalSensitivePatterns]
151
+ : SENSITIVE_ENV_PATTERNS;
152
+ }
153
+ /**
154
+ * Creates a safe environment object by filtering out sensitive variables.
155
+ *
156
+ * Strategy:
157
+ * 1. Start with all env vars
158
+ * 2. Keep vars on the allowlist
159
+ * 3. Remove vars matching sensitive patterns
160
+ * 4. Add explicitly requested vars (overrides)
161
+ *
162
+ * @param sourceEnv - Source environment (typically process.env)
163
+ * @param explicitVars - Variable names to explicitly include even if they'd be filtered
164
+ * @returns Sanitized environment object safe for child processes
165
+ */
166
+ createSafeEnv(sourceEnv, explicitVars) {
167
+ const safeEnv = {};
168
+ const explicitSet = new Set(explicitVars || []);
169
+ for (const [key, value] of Object.entries(sourceEnv)) {
170
+ if (value === undefined)
171
+ continue;
172
+ // Always include explicitly requested vars
173
+ if (explicitSet.has(key)) {
174
+ safeEnv[key] = value;
175
+ continue;
176
+ }
177
+ // Include if on allowlist
178
+ if (this.allowlist.has(key)) {
179
+ safeEnv[key] = value;
180
+ continue;
181
+ }
182
+ // Skip if matches a sensitive pattern
183
+ if (this.isSensitive(key)) {
184
+ continue;
185
+ }
186
+ // Default: include non-sensitive vars not on either list
187
+ safeEnv[key] = value;
188
+ }
189
+ return safeEnv;
190
+ }
191
+ /**
192
+ * Checks if an environment variable name matches any sensitive pattern.
193
+ *
194
+ * @param varName - Environment variable name to check
195
+ * @returns True if the variable is considered sensitive
196
+ */
197
+ isSensitive(varName) {
198
+ return this.sensitivePatterns.some((pattern) => pattern.test(varName));
199
+ }
200
+ /**
201
+ * Returns the list of sensitive variable names found in the given environment.
202
+ * Useful for audit logging.
203
+ *
204
+ * @param sourceEnv - Environment to scan
205
+ * @returns Array of sensitive variable names found
206
+ */
207
+ findSensitiveVars(sourceEnv) {
208
+ return Object.keys(sourceEnv).filter((key) => this.isSensitive(key));
209
+ }
210
+ /**
211
+ * Returns the current allowlist as an array.
212
+ * @returns Copy of the safe variable allowlist
213
+ */
214
+ getAllowlist() {
215
+ return Array.from(this.allowlist);
216
+ }
217
+ }
218
+ //# sourceMappingURL=env-isolation.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-isolation.service.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/env-isolation.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Crewly Agent Runtime — Barrel Export
3
+ *
4
+ * @module services/agent/crewly-agent
5
+ */
6
+ export { AgentRunnerService } from './agent-runner.service.js';
7
+ export { CrewlyAgentRuntimeService } from './crewly-agent-runtime.service.js';
8
+ export { CrewlyApiClient } from './api-client.js';
9
+ export { ModelManager } from './model-manager.js';
10
+ export { InProcessLogBuffer, type LogEntry } from './in-process-log-buffer.js';
11
+ export { createTools, getToolNames } from './tool-registry.js';
12
+ export { createAuditorTools, getAuditorToolNames } from './auditor-tools.js';
13
+ export { AuditTrailService } from './audit-trail.service.js';
14
+ export { RateLimiter, RATE_LIMITER_DEFAULTS, type RateLimiterConfig } from './rate-limiter.js';
15
+ export { type ModelProvider, type ModelConfig, type ConversationState, type CrewlyAgentConfig, type AgentRunResult, type ToolCallRecord, type ApiCallResult, type AuditEntry, type SecurityPolicy, type AuditLogFilters, MODEL_PROVIDERS, CREWLY_AGENT_DEFAULTS, WRITE_TOOLS, isModelProvider, isModelConfig, } from './types.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,KAAK,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Crewly Agent Runtime — Barrel Export
3
+ *
4
+ * @module services/agent/crewly-agent
5
+ */
6
+ export { AgentRunnerService } from './agent-runner.service.js';
7
+ export { CrewlyAgentRuntimeService } from './crewly-agent-runtime.service.js';
8
+ export { CrewlyApiClient } from './api-client.js';
9
+ export { ModelManager } from './model-manager.js';
10
+ export { InProcessLogBuffer } from './in-process-log-buffer.js';
11
+ export { createTools, getToolNames } from './tool-registry.js';
12
+ export { createAuditorTools, getAuditorToolNames } from './auditor-tools.js';
13
+ export { AuditTrailService } from './audit-trail.service.js';
14
+ export { RateLimiter, RATE_LIMITER_DEFAULTS } from './rate-limiter.js';
15
+ export { MODEL_PROVIDERS, CREWLY_AGENT_DEFAULTS, WRITE_TOOLS, isModelProvider, isModelConfig, } from './types.js';
16
+ //# sourceMappingURL=index.js.map