crewly 1.0.12 → 1.1.1

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 (244) hide show
  1. package/config/constants.ts +6 -0
  2. package/config/roles/_common/memory-instructions.md +10 -1
  3. package/config/roles/architect/prompt.md +7 -0
  4. package/config/roles/backend-developer/prompt.md +7 -0
  5. package/config/roles/content-strategist/prompt.md +69 -0
  6. package/config/roles/designer/prompt.md +7 -0
  7. package/config/roles/developer/prompt.md +7 -0
  8. package/config/roles/frontend-developer/prompt.md +7 -0
  9. package/config/roles/fullstack-dev/prompt.md +7 -0
  10. package/config/roles/generalist/prompt.md +8 -1
  11. package/config/roles/orchestrator/prompt.md +16 -1
  12. package/config/roles/orchestrator/self-evolution.md +72 -0
  13. package/config/roles/product-manager/prompt.md +7 -0
  14. package/config/roles/qa/prompt.md +7 -0
  15. package/config/roles/qa-engineer/prompt.md +7 -0
  16. package/config/roles/sales/prompt.md +7 -0
  17. package/config/roles/support/prompt.md +7 -0
  18. package/config/roles/tpm/prompt.md +7 -0
  19. package/config/skills/agent/core/register-self/instructions.md +1 -1
  20. package/config/skills/agent/core/remember/instructions.md +3 -3
  21. package/config/skills/orchestrator/delegate-task/execute.sh +21 -1
  22. package/config/skills/orchestrator/delegate-task/instructions.md +1 -0
  23. package/config/skills/orchestrator/read-session-logs/execute.sh +14 -0
  24. package/config/skills/orchestrator/read-session-logs/instructions.md +33 -0
  25. package/config/skills/orchestrator/read-session-logs/skill.json +20 -0
  26. package/config/skills/orchestrator/read-system-logs/execute.sh +18 -0
  27. package/config/skills/orchestrator/read-system-logs/instructions.md +30 -0
  28. package/config/skills/orchestrator/read-system-logs/skill.json +20 -0
  29. package/config/skills/orchestrator/remember/instructions.md +1 -1
  30. package/config/skills/orchestrator/reply-slack/execute.sh +45 -2
  31. package/config/skills/orchestrator/reply-slack/instructions.md +30 -2
  32. package/config/skills/orchestrator/report-bug/execute.sh +49 -0
  33. package/config/skills/orchestrator/report-bug/instructions.md +30 -0
  34. package/config/skills/orchestrator/report-bug/skill.json +20 -0
  35. package/config/slack-app-manifest.json +37 -0
  36. package/dist/backend/backend/src/constants.d.ts +38 -2
  37. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  38. package/dist/backend/backend/src/constants.js +44 -4
  39. package/dist/backend/backend/src/constants.js.map +1 -1
  40. package/dist/backend/backend/src/controllers/index.d.ts.map +1 -1
  41. package/dist/backend/backend/src/controllers/index.js +6 -0
  42. package/dist/backend/backend/src/controllers/index.js.map +1 -1
  43. package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts +3 -0
  44. package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts.map +1 -0
  45. package/dist/backend/backend/src/controllers/messaging/messenger.routes.js +80 -0
  46. package/dist/backend/backend/src/controllers/messaging/messenger.routes.js.map +1 -0
  47. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts +14 -0
  48. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  49. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +74 -0
  50. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  51. package/dist/backend/backend/src/controllers/oauth/oauth.routes.d.ts +3 -0
  52. package/dist/backend/backend/src/controllers/oauth/oauth.routes.d.ts.map +1 -0
  53. package/dist/backend/backend/src/controllers/oauth/oauth.routes.js +127 -0
  54. package/dist/backend/backend/src/controllers/oauth/oauth.routes.js.map +1 -0
  55. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.d.ts.map +1 -1
  56. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js +20 -34
  57. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js.map +1 -1
  58. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  59. package/dist/backend/backend/src/controllers/slack/slack.controller.js +29 -0
  60. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  61. package/dist/backend/backend/src/controllers/system/scheduler.controller.d.ts.map +1 -1
  62. package/dist/backend/backend/src/controllers/system/scheduler.controller.js +73 -6
  63. package/dist/backend/backend/src/controllers/system/scheduler.controller.js.map +1 -1
  64. package/dist/backend/backend/src/controllers/task-management/assignments.controller.d.ts.map +1 -1
  65. package/dist/backend/backend/src/controllers/task-management/assignments.controller.js +9 -5
  66. package/dist/backend/backend/src/controllers/task-management/assignments.controller.js.map +1 -1
  67. package/dist/backend/backend/src/controllers/user/user.routes.d.ts +3 -0
  68. package/dist/backend/backend/src/controllers/user/user.routes.d.ts.map +1 -0
  69. package/dist/backend/backend/src/controllers/user/user.routes.js +45 -0
  70. package/dist/backend/backend/src/controllers/user/user.routes.js.map +1 -0
  71. package/dist/backend/backend/src/index.d.ts.map +1 -1
  72. package/dist/backend/backend/src/index.js +1 -1
  73. package/dist/backend/backend/src/index.js.map +1 -1
  74. package/dist/backend/backend/src/routes/modules/terminal.routes.d.ts.map +1 -1
  75. package/dist/backend/backend/src/routes/modules/terminal.routes.js +2 -0
  76. package/dist/backend/backend/src/routes/modules/terminal.routes.js.map +1 -1
  77. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +24 -2
  78. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  79. package/dist/backend/backend/src/services/agent/agent-registration.service.js +222 -101
  80. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  81. package/dist/backend/backend/src/services/agent/codex-runtime.service.d.ts +5 -1
  82. package/dist/backend/backend/src/services/agent/codex-runtime.service.d.ts.map +1 -1
  83. package/dist/backend/backend/src/services/agent/codex-runtime.service.js +11 -17
  84. package/dist/backend/backend/src/services/agent/codex-runtime.service.js.map +1 -1
  85. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts +21 -0
  86. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -1
  87. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js +157 -11
  88. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js.map +1 -1
  89. package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts +33 -2
  90. package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -1
  91. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js +388 -20
  92. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js.map +1 -1
  93. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts +1 -1
  94. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  95. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +25 -2
  96. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  97. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +17 -2
  98. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  99. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +133 -16
  100. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  101. package/dist/backend/backend/src/services/core/config.service.d.ts.map +1 -1
  102. package/dist/backend/backend/src/services/core/config.service.js +3 -2
  103. package/dist/backend/backend/src/services/core/config.service.js.map +1 -1
  104. package/dist/backend/backend/src/services/core/logger.service.d.ts +1 -0
  105. package/dist/backend/backend/src/services/core/logger.service.d.ts.map +1 -1
  106. package/dist/backend/backend/src/services/core/logger.service.js +22 -8
  107. package/dist/backend/backend/src/services/core/logger.service.js.map +1 -1
  108. package/dist/backend/backend/src/services/mcp-client.d.ts.map +1 -1
  109. package/dist/backend/backend/src/services/mcp-client.js +9 -4
  110. package/dist/backend/backend/src/services/mcp-client.js.map +1 -1
  111. package/dist/backend/backend/src/services/mcp-server.d.ts +4 -2
  112. package/dist/backend/backend/src/services/mcp-server.d.ts.map +1 -1
  113. package/dist/backend/backend/src/services/mcp-server.js +77 -18
  114. package/dist/backend/backend/src/services/mcp-server.js.map +1 -1
  115. package/dist/backend/backend/src/services/memory/memory.service.d.ts +1 -1
  116. package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
  117. package/dist/backend/backend/src/services/memory/memory.service.js +10 -1
  118. package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
  119. package/dist/backend/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
  120. package/dist/backend/backend/src/services/memory/project-memory.service.js +11 -2
  121. package/dist/backend/backend/src/services/memory/project-memory.service.js.map +1 -1
  122. package/dist/backend/backend/src/services/messaging/adapters/discord-messenger.adapter.d.ts +13 -0
  123. package/dist/backend/backend/src/services/messaging/adapters/discord-messenger.adapter.d.ts.map +1 -0
  124. package/dist/backend/backend/src/services/messaging/adapters/discord-messenger.adapter.js +45 -0
  125. package/dist/backend/backend/src/services/messaging/adapters/discord-messenger.adapter.js.map +1 -0
  126. package/dist/backend/backend/src/services/messaging/adapters/slack-messenger.adapter.d.ts +13 -0
  127. package/dist/backend/backend/src/services/messaging/adapters/slack-messenger.adapter.d.ts.map +1 -0
  128. package/dist/backend/backend/src/services/messaging/adapters/slack-messenger.adapter.js +27 -0
  129. package/dist/backend/backend/src/services/messaging/adapters/slack-messenger.adapter.js.map +1 -0
  130. package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.d.ts +13 -0
  131. package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.d.ts.map +1 -0
  132. package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.js +43 -0
  133. package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.js.map +1 -0
  134. package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts.map +1 -1
  135. package/dist/backend/backend/src/services/messaging/message-queue.service.js +17 -0
  136. package/dist/backend/backend/src/services/messaging/message-queue.service.js.map +1 -1
  137. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts +25 -0
  138. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts.map +1 -0
  139. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.js +2 -0
  140. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.js.map +1 -0
  141. package/dist/backend/backend/src/services/messaging/messenger-registry.service.d.ts +14 -0
  142. package/dist/backend/backend/src/services/messaging/messenger-registry.service.d.ts.map +1 -0
  143. package/dist/backend/backend/src/services/messaging/messenger-registry.service.js +20 -0
  144. package/dist/backend/backend/src/services/messaging/messenger-registry.service.js.map +1 -0
  145. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts +3 -1
  146. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
  147. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +15 -2
  148. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
  149. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts +5 -0
  150. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
  151. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js +42 -2
  152. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
  153. package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts +39 -0
  154. package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -1
  155. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +121 -1
  156. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
  157. package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.d.ts +4 -0
  158. package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.d.ts.map +1 -1
  159. package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.js +7 -3
  160. package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.js.map +1 -1
  161. package/dist/backend/backend/src/services/settings/settings.service.d.ts.map +1 -1
  162. package/dist/backend/backend/src/services/settings/settings.service.js +6 -0
  163. package/dist/backend/backend/src/services/settings/settings.service.js.map +1 -1
  164. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +2 -2
  165. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  166. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  167. package/dist/backend/backend/src/services/slack/slack.service.js +14 -0
  168. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  169. package/dist/backend/backend/src/services/user/user-identity.service.d.ts +42 -0
  170. package/dist/backend/backend/src/services/user/user-identity.service.d.ts.map +1 -0
  171. package/dist/backend/backend/src/services/user/user-identity.service.js +123 -0
  172. package/dist/backend/backend/src/services/user/user-identity.service.js.map +1 -0
  173. package/dist/backend/backend/src/services/workflow/message-scheduler.service.d.ts.map +1 -1
  174. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js +8 -1
  175. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js.map +1 -1
  176. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +21 -2
  177. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  178. package/dist/backend/backend/src/services/workflow/scheduler.service.js +109 -6
  179. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  180. package/dist/backend/backend/src/types/chat.types.d.ts.map +1 -1
  181. package/dist/backend/backend/src/types/chat.types.js +2 -3
  182. package/dist/backend/backend/src/types/chat.types.js.map +1 -1
  183. package/dist/backend/backend/src/types/index.d.ts +8 -0
  184. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  185. package/dist/backend/backend/src/types/index.js.map +1 -1
  186. package/dist/backend/backend/src/types/memory.types.d.ts +1 -1
  187. package/dist/backend/backend/src/types/memory.types.d.ts.map +1 -1
  188. package/dist/backend/backend/src/types/memory.types.js.map +1 -1
  189. package/dist/backend/backend/src/types/settings.types.d.ts +11 -0
  190. package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
  191. package/dist/backend/backend/src/types/settings.types.js +23 -1
  192. package/dist/backend/backend/src/types/settings.types.js.map +1 -1
  193. package/dist/backend/config/constants.d.ts +6 -0
  194. package/dist/backend/config/constants.d.ts.map +1 -1
  195. package/dist/backend/config/constants.js +6 -0
  196. package/dist/backend/config/constants.js.map +1 -1
  197. package/dist/backend/config/index.d.ts +3 -0
  198. package/dist/backend/config/index.d.ts.map +1 -1
  199. package/dist/cli/backend/src/constants.d.ts +38 -2
  200. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  201. package/dist/cli/backend/src/constants.js +44 -4
  202. package/dist/cli/backend/src/constants.js.map +1 -1
  203. package/dist/cli/backend/src/services/core/config.service.d.ts.map +1 -1
  204. package/dist/cli/backend/src/services/core/config.service.js +3 -2
  205. package/dist/cli/backend/src/services/core/config.service.js.map +1 -1
  206. package/dist/cli/backend/src/services/core/logger.service.d.ts +1 -0
  207. package/dist/cli/backend/src/services/core/logger.service.d.ts.map +1 -1
  208. package/dist/cli/backend/src/services/core/logger.service.js +22 -8
  209. package/dist/cli/backend/src/services/core/logger.service.js.map +1 -1
  210. package/dist/cli/backend/src/services/mcp-server.d.ts +4 -2
  211. package/dist/cli/backend/src/services/mcp-server.d.ts.map +1 -1
  212. package/dist/cli/backend/src/services/mcp-server.js +77 -18
  213. package/dist/cli/backend/src/services/mcp-server.js.map +1 -1
  214. package/dist/cli/backend/src/services/memory/memory.service.d.ts +1 -1
  215. package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
  216. package/dist/cli/backend/src/services/memory/memory.service.js +10 -1
  217. package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
  218. package/dist/cli/backend/src/services/memory/project-memory.service.d.ts.map +1 -1
  219. package/dist/cli/backend/src/services/memory/project-memory.service.js +11 -2
  220. package/dist/cli/backend/src/services/memory/project-memory.service.js.map +1 -1
  221. package/dist/cli/backend/src/types/chat.types.d.ts.map +1 -1
  222. package/dist/cli/backend/src/types/chat.types.js +2 -3
  223. package/dist/cli/backend/src/types/chat.types.js.map +1 -1
  224. package/dist/cli/backend/src/types/index.d.ts +8 -0
  225. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  226. package/dist/cli/backend/src/types/index.js.map +1 -1
  227. package/dist/cli/backend/src/types/memory.types.d.ts +1 -1
  228. package/dist/cli/backend/src/types/memory.types.d.ts.map +1 -1
  229. package/dist/cli/backend/src/types/memory.types.js.map +1 -1
  230. package/dist/cli/backend/src/types/settings.types.d.ts +11 -0
  231. package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
  232. package/dist/cli/backend/src/types/settings.types.js +23 -1
  233. package/dist/cli/backend/src/types/settings.types.js.map +1 -1
  234. package/dist/cli/cli/src/index.js +1 -0
  235. package/dist/cli/cli/src/index.js.map +1 -1
  236. package/dist/cli/config/constants.d.ts +6 -0
  237. package/dist/cli/config/constants.d.ts.map +1 -1
  238. package/dist/cli/config/constants.js +6 -0
  239. package/dist/cli/config/constants.js.map +1 -1
  240. package/dist/cli/config/index.d.ts +3 -0
  241. package/dist/cli/config/index.d.ts.map +1 -1
  242. package/frontend/dist/assets/{index-0a245b0d.js → index-45eeea99.js} +2 -2
  243. package/frontend/dist/index.html +1 -1
  244. package/package.json +1 -1
@@ -29,19 +29,43 @@ import { getTerminalGateway } from '../../websocket/terminal.gateway.js';
29
29
  import { PtyActivityTrackerService } from './pty-activity-tracker.service.js';
30
30
  import { RuntimeExitMonitorService } from './runtime-exit-monitor.service.js';
31
31
  import { stripAnsiCodes } from '../../utils/terminal-output.utils.js';
32
- import { CONTEXT_WINDOW_MONITOR_CONSTANTS, RUNTIME_COMPACT_COMMANDS, RUNTIME_TYPES, AGENT_SUSPEND_CONSTANTS, SESSION_COMMAND_DELAYS, } from '../../constants.js';
32
+ import { getSettingsService } from '../settings/settings.service.js';
33
+ import { CONTEXT_WINDOW_MONITOR_CONSTANTS, RUNTIME_COMPACT_COMMANDS, RUNTIME_TYPES, ORCHESTRATOR_SESSION_NAME, CREWLY_CONSTANTS, AGENT_SUSPEND_CONSTANTS, SESSION_COMMAND_DELAYS, } from '../../constants.js';
33
34
  // =============================================================================
34
35
  // Regex patterns for detecting context usage percentages in PTY output
35
36
  // =============================================================================
36
37
  /**
37
- * Patterns to match context window usage percentages from Claude Code output.
38
+ * Patterns to match context window usage percentages from PTY output.
38
39
  * Each pattern captures the percentage as group 1.
40
+ *
41
+ * Covers:
42
+ * - Claude Code: "85% context", "context: 85%", "85% ctx"
43
+ * - Gemini CLI: "85% context used", "context 85%"
44
+ * - Generic: "XX% of context"
39
45
  */
40
46
  const CONTEXT_PERCENT_PATTERNS = [
41
47
  /(\d{1,3})%\s*(?:of\s+)?context/i,
42
48
  /context[:\s]+(\d{1,3})%/i,
43
49
  /(\d{1,3})%\s*ctx/i,
44
50
  ];
51
+ /**
52
+ * Patterns to detect Gemini CLI token-count context display.
53
+ * Gemini CLI shows remaining context as token counts (e.g., "1M context left)",
54
+ * "500K context left)") rather than percentages.
55
+ *
56
+ * These patterns extract the numeric token count and unit suffix.
57
+ * Group 1: numeric value, Group 2: unit (K, M, or empty = raw number).
58
+ */
59
+ const GEMINI_CONTEXT_TOKEN_PATTERNS = [
60
+ /(\d+(?:\.\d+)?)\s*(K|M|k|m)?\s*(?:tokens?\s+)?context\s+left/i,
61
+ /(\d+(?:\.\d+)?)\s*(K|M|k|m)?\s*context\s+(?:tokens?\s+)?(?:left|remaining)/i,
62
+ ];
63
+ /**
64
+ * Known max context sizes for Gemini models (in tokens).
65
+ * Used to estimate context usage percentage from token counts.
66
+ * Conservative estimate: assume 1M tokens max (Gemini 2.0 Flash/Pro).
67
+ */
68
+ const GEMINI_DEFAULT_MAX_CONTEXT_TOKENS = 1_000_000;
45
69
  // =============================================================================
46
70
  // Service
47
71
  // =============================================================================
@@ -126,6 +150,7 @@ export class ContextWindowMonitorService {
126
150
  redThreshold: CONTEXT_WINDOW_MONITOR_CONSTANTS.RED_THRESHOLD_PERCENT,
127
151
  criticalThreshold: CONTEXT_WINDOW_MONITOR_CONSTANTS.CRITICAL_THRESHOLD_PERCENT,
128
152
  });
153
+ void this.refreshProactiveCompactSetting();
129
154
  this.checkTimer = setInterval(() => {
130
155
  this.performCheck();
131
156
  }, CONTEXT_WINDOW_MONITOR_CONSTANTS.CHECK_INTERVAL_MS);
@@ -191,6 +216,8 @@ export class ContextWindowMonitorService {
191
216
  compactAttempts: 0,
192
217
  compactInProgress: false,
193
218
  lastCompactAt: 0,
219
+ preCompactPercent: 0,
220
+ compactWaitTimer: null,
194
221
  };
195
222
  this.contextStates.set(sessionName, state);
196
223
  // Subscribe to PTY data
@@ -219,6 +246,12 @@ export class ContextWindowMonitorService {
219
246
  sub.unsubscribe();
220
247
  this.sessionSubscriptions.delete(sessionName);
221
248
  }
249
+ // Clear any dangling compact wait timer to prevent stale callbacks
250
+ const state = this.contextStates.get(sessionName);
251
+ if (state?.compactWaitTimer) {
252
+ clearTimeout(state.compactWaitTimer);
253
+ state.compactWaitTimer = null;
254
+ }
222
255
  this.contextStates.delete(sessionName);
223
256
  this.proactiveCompactLastTriggered.delete(sessionName);
224
257
  this.logger.debug('Stopped context window monitoring', { sessionName });
@@ -261,7 +294,7 @@ export class ContextWindowMonitorService {
261
294
  sub.buffer = sub.buffer.slice(-CONTEXT_WINDOW_MONITOR_CONSTANTS.MAX_BUFFER_SIZE);
262
295
  }
263
296
  // Try to extract context percentage from buffer
264
- const percent = this.extractContextPercent(sub.buffer);
297
+ const percent = this.extractContextPercent(sub.buffer, state.runtimeType);
265
298
  if (percent !== null) {
266
299
  this.updateContextUsage(sessionName, percent);
267
300
  // Clear buffer after successful extraction to avoid re-matching
@@ -271,10 +304,16 @@ export class ContextWindowMonitorService {
271
304
  /**
272
305
  * Extract context usage percentage from terminal output.
273
306
  *
307
+ * Tries percentage-based patterns first (Claude Code, generic), then
308
+ * Gemini CLI token-count patterns. Token counts are converted to an
309
+ * estimated usage percentage using GEMINI_DEFAULT_MAX_CONTEXT_TOKENS.
310
+ *
274
311
  * @param text - Cleaned terminal output text
312
+ * @param runtimeType - Optional runtime type for runtime-specific parsing
275
313
  * @returns The extracted percentage (0-100) or null if not found
276
314
  */
277
- extractContextPercent(text) {
315
+ extractContextPercent(text, runtimeType) {
316
+ // Try standard percentage patterns first (works for all runtimes)
278
317
  for (const pattern of CONTEXT_PERCENT_PATTERNS) {
279
318
  const match = pattern.exec(text);
280
319
  if (match) {
@@ -284,6 +323,23 @@ export class ContextWindowMonitorService {
284
323
  }
285
324
  }
286
325
  }
326
+ // Try Gemini token-count patterns ("500K context left", "1M context left")
327
+ for (const pattern of GEMINI_CONTEXT_TOKEN_PATTERNS) {
328
+ const match = pattern.exec(text);
329
+ if (match) {
330
+ const value = parseFloat(match[1]);
331
+ const unit = (match[2] || '').toUpperCase();
332
+ let tokensRemaining = value;
333
+ if (unit === 'K')
334
+ tokensRemaining = value * 1_000;
335
+ else if (unit === 'M')
336
+ tokensRemaining = value * 1_000_000;
337
+ if (tokensRemaining >= 0 && tokensRemaining <= GEMINI_DEFAULT_MAX_CONTEXT_TOKENS * 2) {
338
+ const usedPercent = Math.round(((GEMINI_DEFAULT_MAX_CONTEXT_TOKENS - tokensRemaining) / GEMINI_DEFAULT_MAX_CONTEXT_TOKENS) * 100);
339
+ return Math.max(0, Math.min(100, usedPercent));
340
+ }
341
+ }
342
+ }
287
343
  return null;
288
344
  }
289
345
  /**
@@ -454,6 +510,26 @@ export class ContextWindowMonitorService {
454
510
  * @param state - Context window state for the session to compact
455
511
  */
456
512
  async triggerCompact(state) {
513
+ // Do not compact while an agent is actively working. Runtime compact
514
+ // commands can interrupt generation and cause task loss.
515
+ // Keep this check fast-path synchronous when storage helpers are not
516
+ // available (common in tests/mocks) to preserve existing behavior.
517
+ let isBusy = false;
518
+ const canCheckMemberBusy = this.storageService
519
+ && typeof this.storageService.findMemberBySessionName === 'function';
520
+ const canCheckOrchestratorBusy = this.storageService
521
+ && typeof this.storageService.getOrchestratorStatus === 'function';
522
+ if (canCheckMemberBusy || canCheckOrchestratorBusy) {
523
+ isBusy = await this.isSessionBusyForCompact(state.sessionName);
524
+ }
525
+ if (isBusy) {
526
+ this.logger.info('Skipping compact: session is actively working', {
527
+ sessionName: state.sessionName,
528
+ runtimeType: state.runtimeType,
529
+ contextPercent: state.contextPercent,
530
+ });
531
+ return;
532
+ }
457
533
  const backend = this.sessionBackend || getSessionBackendSync();
458
534
  if (!backend) {
459
535
  this.logger.warn('Cannot trigger compact: session backend not available', {
@@ -479,6 +555,7 @@ export class ContextWindowMonitorService {
479
555
  state.compactInProgress = true;
480
556
  state.compactAttempts++;
481
557
  state.lastCompactAt = Date.now();
558
+ state.preCompactPercent = state.contextPercent;
482
559
  this.logger.info('Triggering context compaction', {
483
560
  sessionName: state.sessionName,
484
561
  runtimeType: state.runtimeType,
@@ -486,14 +563,39 @@ export class ContextWindowMonitorService {
486
563
  attempt: state.compactAttempts,
487
564
  contextPercent: state.contextPercent,
488
565
  });
489
- // Send Escape first to clear any in-progress input, then the compact command
490
- session.write('\x1b');
491
- await new Promise(resolve => setTimeout(resolve, 200));
566
+ // Claude/Codex: Escape can safely clear in-progress input.
567
+ // Gemini: Escape cancels the current request ("Request cancelled"), so skip it.
568
+ if (state.runtimeType !== RUNTIME_TYPES.GEMINI_CLI) {
569
+ session.write('\x1b');
570
+ await new Promise(resolve => setTimeout(resolve, 200));
571
+ }
492
572
  session.write(command + '\r');
573
+ // Clear any previous compact wait timer to avoid stale callbacks
574
+ if (state.compactWaitTimer) {
575
+ clearTimeout(state.compactWaitTimer);
576
+ }
493
577
  // After COMPACT_WAIT_MS, mark compact as no longer in progress
494
- // so further threshold evaluations can proceed
495
- setTimeout(() => {
578
+ // and verify that context usage actually decreased (post-compact verification).
579
+ state.compactWaitTimer = setTimeout(() => {
496
580
  state.compactInProgress = false;
581
+ state.compactWaitTimer = null;
582
+ // Post-compact verification: if context % did not decrease,
583
+ // reset compact tracking so the next threshold evaluation retries.
584
+ if (state.contextPercent >= state.preCompactPercent && state.level !== 'normal') {
585
+ this.logger.warn('Post-compact verification: context did not decrease', {
586
+ sessionName: state.sessionName,
587
+ preCompactPercent: state.preCompactPercent,
588
+ currentPercent: state.contextPercent,
589
+ level: state.level,
590
+ });
591
+ }
592
+ else if (state.contextPercent < state.preCompactPercent) {
593
+ this.logger.info('Post-compact verification: context decreased', {
594
+ sessionName: state.sessionName,
595
+ preCompactPercent: state.preCompactPercent,
596
+ currentPercent: state.contextPercent,
597
+ });
598
+ }
497
599
  }, CONTEXT_WINDOW_MONITOR_CONSTANTS.COMPACT_WAIT_MS);
498
600
  // Broadcast compact status to frontend
499
601
  const terminalGateway = getTerminalGateway();
@@ -508,6 +610,31 @@ export class ContextWindowMonitorService {
508
610
  });
509
611
  }
510
612
  }
613
+ /**
614
+ * Returns true when a session is currently marked as in-progress.
615
+ * Falls back to false on lookup errors so monitoring can continue.
616
+ */
617
+ async isSessionBusyForCompact(sessionName) {
618
+ if (!this.storageService) {
619
+ return false;
620
+ }
621
+ try {
622
+ if (sessionName === ORCHESTRATOR_SESSION_NAME) {
623
+ const orchestrator = await this.storageService.getOrchestratorStatus();
624
+ return orchestrator?.workingStatus === CREWLY_CONSTANTS.WORKING_STATUSES.IN_PROGRESS;
625
+ }
626
+ const memberInfo = await this.storageService.findMemberBySessionName(sessionName);
627
+ const workingStatus = memberInfo?.member?.workingStatus;
628
+ return workingStatus === CREWLY_CONSTANTS.WORKING_STATUSES.IN_PROGRESS;
629
+ }
630
+ catch (error) {
631
+ this.logger.debug('Failed to read working status before compact (non-fatal)', {
632
+ sessionName,
633
+ error: error instanceof Error ? error.message : String(error),
634
+ });
635
+ return false;
636
+ }
637
+ }
511
638
  /**
512
639
  * Trigger auto-recovery for a session at critical context usage.
513
640
  *
@@ -714,8 +841,12 @@ export class ContextWindowMonitorService {
714
841
  performCheck() {
715
842
  const now = Date.now();
716
843
  const staleThreshold = CONTEXT_WINDOW_MONITOR_CONSTANTS.STALE_DETECTION_THRESHOLD_MS;
717
- // Proactive compact based on cumulative output volume
718
- this.checkProactiveCompact(now);
844
+ // Proactive compact based on cumulative output volume (configurable)
845
+ if (this.proactiveCompactEnabled) {
846
+ this.checkProactiveCompact(now);
847
+ }
848
+ // Refresh cached setting in background so runtime config changes are picked up.
849
+ void this.refreshProactiveCompactSetting();
719
850
  for (const [sessionName, state] of this.contextStates) {
720
851
  const timeSinceLastDetection = now - state.lastDetectedAt;
721
852
  // Clean up stale states (no context % detected for a while)
@@ -757,6 +888,21 @@ export class ContextWindowMonitorService {
757
888
  }
758
889
  /** Timestamp of last proactive compact per session for cooldown tracking */
759
890
  proactiveCompactLastTriggered = new Map();
891
+ /** Cached toggle for proactive compact behavior (loaded from settings) */
892
+ proactiveCompactEnabled = true;
893
+ /**
894
+ * Refresh the cached proactive compact toggle from persisted settings.
895
+ * Non-fatal: any read failure keeps the previous cached value.
896
+ */
897
+ async refreshProactiveCompactSetting() {
898
+ try {
899
+ const settings = await getSettingsService().getSettings();
900
+ this.proactiveCompactEnabled = settings?.general?.enableProactiveCompact ?? true;
901
+ }
902
+ catch {
903
+ // Keep last known value on read failures.
904
+ }
905
+ }
760
906
  /**
761
907
  * Check all monitored sessions for cumulative output volume and trigger
762
908
  * proactive compact when the threshold is exceeded.
@@ -1 +1 @@
1
- {"version":3,"file":"context-window-monitor.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/context-window-monitor.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-window-monitor.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/context-window-monitor.service.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,12 @@ import { type RuntimeType } from '../../constants.js';
7
7
  */
8
8
  export declare class GeminiRuntimeService extends RuntimeAgentService {
9
9
  constructor(sessionHelper: SessionCommandHelper, projectRoot: string);
10
+ /**
11
+ * Gemini CLI can show an interactive trust gate on first launch:
12
+ * "Do you trust this folder?".
13
+ * Auto-accept the default "Trust folder" option so startup does not stall.
14
+ */
15
+ waitForRuntimeReady(sessionName: string, timeout: number, checkInterval?: number): Promise<boolean>;
10
16
  protected getRuntimeType(): RuntimeType;
11
17
  /**
12
18
  * Gemini CLI specific detection using '/' command
@@ -16,6 +22,7 @@ export declare class GeminiRuntimeService extends RuntimeAgentService {
16
22
  * Gemini CLI specific ready patterns
17
23
  */
18
24
  protected getRuntimeReadyPatterns(): string[];
25
+ private isGeminiTrustPrompt;
19
26
  /**
20
27
  * Gemini CLI specific exit patterns for runtime exit detection.
21
28
  *
@@ -39,7 +46,7 @@ export declare class GeminiRuntimeService extends RuntimeAgentService {
39
46
  * @param targetProjectPath - Optional target project path for MCP config.
40
47
  * Falls back to this.projectRoot if not provided.
41
48
  */
42
- postInitialize(sessionName: string, targetProjectPath?: string): Promise<void>;
49
+ postInitialize(sessionName: string, targetProjectPath?: string, additionalAllowlistPaths?: string[]): Promise<void>;
43
50
  /**
44
51
  * Ensure Gemini CLI MCP server configuration exists in the project directory.
45
52
  *
@@ -58,6 +65,11 @@ export declare class GeminiRuntimeService extends RuntimeAgentService {
58
65
  * @param projectPath - Project directory where `.env` will be created/updated
59
66
  */
60
67
  private ensureGeminiEnvFile;
68
+ /**
69
+ * Ensure Gemini trusted folders contain the required paths.
70
+ * Gemini blocks `/directory add` for paths that are not pre-trusted.
71
+ */
72
+ private ensureGeminiTrustedFolders;
61
73
  /**
62
74
  * Check if Gemini CLI is installed and configured
63
75
  */
@@ -81,9 +93,19 @@ export declare class GeminiRuntimeService extends RuntimeAgentService {
81
93
  success: boolean;
82
94
  message: string;
83
95
  }>;
96
+ /**
97
+ * Heuristic to detect text that is still sitting in Gemini's input box.
98
+ * This indicates the message was typed but Enter was not processed.
99
+ */
100
+ private isTextLikelyStuckAtPrompt;
101
+ /**
102
+ * Detect whether Gemini CLI output indicates a path is already allowlisted.
103
+ */
104
+ private isPathAlreadyAllowlisted;
84
105
  /**
85
106
  * Add multiple project paths to Gemini CLI allowlist
86
- * Efficiently adds all paths in sequence
107
+ * Attempts a single batched slash command first, then falls back to
108
+ * per-path commands for resiliency.
87
109
  */
88
110
  addMultipleProjectsToAllowlist(sessionName: string, projectPaths: string[]): Promise<{
89
111
  success: boolean;
@@ -94,5 +116,14 @@ export declare class GeminiRuntimeService extends RuntimeAgentService {
94
116
  error?: string;
95
117
  }>;
96
118
  }>;
119
+ /**
120
+ * Send a single batched `/directory add` command with comma-separated paths.
121
+ */
122
+ private addProjectsToAllowlistBatch;
123
+ /**
124
+ * Wait until Gemini's slash-command queue is idle and the prompt is ready
125
+ * for normal text input.
126
+ */
127
+ private waitForSlashQueueToDrain;
97
128
  }
98
129
  //# sourceMappingURL=gemini-runtime.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-runtime.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/gemini-runtime.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAA4D,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGhH;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,mBAAmB;gBAChD,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM;IAIpE,SAAS,CAAC,cAAc,IAAI,WAAW;IAIvC;;OAEG;cACa,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA+B5E;;OAEG;IACH,SAAS,CAAC,uBAAuB,IAAI,MAAM,EAAE;IAW7C;;;;;;;;OAQG;IACH,SAAS,CAAC,sBAAsB,IAAI,MAAM,EAAE;IAW5C;;OAEG;IACH,SAAS,CAAC,uBAAuB,IAAI,MAAM,EAAE;IAY7C;;;;;;;;OAQG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CpF;;;;;;;OAOG;IACG,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/D;;;;;;;OAOG;YACW,mBAAmB;IAoEjC;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC;QACxC,WAAW,EAAE,OAAO,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;IAgBF;;OAEG;IACG,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QAC7D,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;IAeF;;;OAGG;IACG,qBAAqB,CAC1B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;IAuFF;;;OAGG;IACG,8BAA8B,CACnC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACnE,CAAC;CAmDF"}
1
+ {"version":3,"file":"gemini-runtime.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/gemini-runtime.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAA4D,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGhH;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,mBAAmB;gBAChD,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM;IAIpE;;;;OAIG;IACG,mBAAmB,CACxB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,aAAa,GAAE,MAAa,GAC1B,OAAO,CAAC,OAAO,CAAC;IAwFnB,SAAS,CAAC,cAAc,IAAI,WAAW;IAIvC;;OAEG;cACa,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA+B5E;;OAEG;IACH,SAAS,CAAC,uBAAuB,IAAI,MAAM,EAAE;IAW7C,OAAO,CAAC,mBAAmB;IAK3B;;;;;;;;OAQG;IACH,SAAS,CAAC,sBAAsB,IAAI,MAAM,EAAE;IAW5C;;OAEG;IACH,SAAS,CAAC,uBAAuB,IAAI,MAAM,EAAE;IAY7C;;;;;;;;OAQG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6DzH;;;;;;;OAOG;IACG,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/D;;;;;;;OAOG;YACW,mBAAmB;IAoEjC;;;OAGG;YACW,0BAA0B;IA8CxC;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC;QACxC,WAAW,EAAE,OAAO,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;IAgBF;;OAEG;IACG,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QAC7D,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;IAeF;;;OAGG;IACG,qBAAqB,CAC1B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GACjB,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;IAyJF;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAajC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAQhC;;;;OAIG;IACG,8BAA8B,CACnC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACnE,CAAC;IAiFF;;OAEG;YACW,2BAA2B;IA6EzC;;;OAGG;YACW,wBAAwB;CAmCtC"}