crewly 1.20.207 → 1.20.209

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 (121) hide show
  1. package/dist/backend/backend/src/constants.d.ts +10 -0
  2. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  3. package/dist/backend/backend/src/constants.js +10 -0
  4. package/dist/backend/backend/src/constants.js.map +1 -1
  5. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  6. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +4 -0
  7. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  8. package/dist/backend/backend/src/controllers/session/session.controller.d.ts.map +1 -1
  9. package/dist/backend/backend/src/controllers/session/session.controller.js +2 -0
  10. package/dist/backend/backend/src/controllers/session/session.controller.js.map +1 -1
  11. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  12. package/dist/backend/backend/src/controllers/slack/slack.controller.js +29 -0
  13. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  14. package/dist/backend/backend/src/index.d.ts.map +1 -1
  15. package/dist/backend/backend/src/index.js +15 -1
  16. package/dist/backend/backend/src/index.js.map +1 -1
  17. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  18. package/dist/backend/backend/src/services/agent/agent-registration.service.js +12 -2
  19. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  20. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +9 -0
  21. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
  22. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +11 -0
  23. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
  24. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +10 -0
  25. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
  26. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +19 -0
  27. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
  28. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.d.ts +10 -0
  29. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.d.ts.map +1 -1
  30. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.js +16 -0
  31. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.js.map +1 -1
  32. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +10 -0
  33. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
  34. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js +21 -0
  35. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
  36. package/dist/backend/backend/src/services/session/input-ledger.d.ts +115 -0
  37. package/dist/backend/backend/src/services/session/input-ledger.d.ts.map +1 -0
  38. package/dist/backend/backend/src/services/session/input-ledger.js +144 -0
  39. package/dist/backend/backend/src/services/session/input-ledger.js.map +1 -0
  40. package/dist/backend/backend/src/services/session/session-command-helper.d.ts +26 -0
  41. package/dist/backend/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  42. package/dist/backend/backend/src/services/session/session-command-helper.js +167 -36
  43. package/dist/backend/backend/src/services/session/session-command-helper.js.map +1 -1
  44. package/dist/backend/backend/src/services/session/tui-input-guard.d.ts +65 -0
  45. package/dist/backend/backend/src/services/session/tui-input-guard.d.ts.map +1 -1
  46. package/dist/backend/backend/src/services/session/tui-input-guard.js +118 -0
  47. package/dist/backend/backend/src/services/session/tui-input-guard.js.map +1 -1
  48. package/dist/backend/backend/src/services/slack/slack-delivery-audit.service.d.ts +156 -0
  49. package/dist/backend/backend/src/services/slack/slack-delivery-audit.service.d.ts.map +1 -0
  50. package/dist/backend/backend/src/services/slack/slack-delivery-audit.service.js +259 -0
  51. package/dist/backend/backend/src/services/slack/slack-delivery-audit.service.js.map +1 -0
  52. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  53. package/dist/backend/backend/src/services/slack/slack-initializer.js +19 -0
  54. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  55. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.d.ts +14 -1
  56. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.d.ts.map +1 -1
  57. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js +13 -0
  58. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js.map +1 -1
  59. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  60. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +7 -1
  61. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  62. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +22 -1
  63. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  64. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +41 -4
  65. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  66. package/dist/backend/backend/src/types/slack.types.d.ts +48 -0
  67. package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
  68. package/dist/backend/backend/src/types/slack.types.js.map +1 -1
  69. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  70. package/dist/backend/backend/src/websocket/terminal.gateway.js +4 -1
  71. package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
  72. package/dist/backend/build-info.json +2 -2
  73. package/dist/cli/backend/src/constants.d.ts +10 -0
  74. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  75. package/dist/cli/backend/src/constants.js +10 -0
  76. package/dist/cli/backend/src/constants.js.map +1 -1
  77. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  78. package/dist/cli/backend/src/services/agent/agent-registration.service.js +12 -2
  79. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  80. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts +9 -0
  81. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
  82. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js +11 -0
  83. package/dist/cli/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
  84. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts +10 -0
  85. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
  86. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js +19 -0
  87. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
  88. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.d.ts +10 -0
  89. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.d.ts.map +1 -1
  90. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.js +16 -0
  91. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.js.map +1 -1
  92. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +10 -0
  93. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
  94. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js +21 -0
  95. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
  96. package/dist/cli/backend/src/services/session/input-ledger.d.ts +115 -0
  97. package/dist/cli/backend/src/services/session/input-ledger.d.ts.map +1 -0
  98. package/dist/cli/backend/src/services/session/input-ledger.js +144 -0
  99. package/dist/cli/backend/src/services/session/input-ledger.js.map +1 -0
  100. package/dist/cli/backend/src/services/session/session-command-helper.d.ts +26 -0
  101. package/dist/cli/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  102. package/dist/cli/backend/src/services/session/session-command-helper.js +167 -36
  103. package/dist/cli/backend/src/services/session/session-command-helper.js.map +1 -1
  104. package/dist/cli/backend/src/services/session/tui-input-guard.d.ts +65 -0
  105. package/dist/cli/backend/src/services/session/tui-input-guard.d.ts.map +1 -1
  106. package/dist/cli/backend/src/services/session/tui-input-guard.js +118 -0
  107. package/dist/cli/backend/src/services/session/tui-input-guard.js.map +1 -1
  108. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  109. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +7 -1
  110. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  111. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +22 -1
  112. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  113. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +41 -4
  114. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  115. package/dist/cli/backend/src/types/slack.types.d.ts +48 -0
  116. package/dist/cli/backend/src/types/slack.types.d.ts.map +1 -1
  117. package/dist/cli/backend/src/types/slack.types.js.map +1 -1
  118. package/dist/cli/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  119. package/dist/cli/backend/src/websocket/terminal.gateway.js +4 -1
  120. package/dist/cli/backend/src/websocket/terminal.gateway.js.map +1 -1
  121. package/package.json +1 -1
@@ -14,7 +14,7 @@ import morgan from 'morgan';
14
14
  import os from 'os';
15
15
  import { fileURLToPath } from 'url';
16
16
  import { StorageService, TmuxService, SchedulerService, MessageSchedulerService, ActivityMonitorService, TeamActivityWebSocketService, TeamsJsonWatcherService, } from './services/index.js';
17
- import { getSessionBackend, getSessionBackendSync, getSessionStatePersistence, destroySessionBackend, PtySessionBackend, } from './services/session/index.js';
17
+ import { getSessionBackend, getSessionBackendSync, getSessionStatePersistence, destroySessionBackend, PtySessionBackend, SessionCommandHelper, } from './services/session/index.js';
18
18
  import { RuntimePidRegistry } from './services/session/runtime-pid-registry.service.js';
19
19
  import { removeCrewlyAgentFile, resolvePersistedSessions, selectAutoRestoreSessions } from './services/session/session-binding.js';
20
20
  import { ApiController } from './controllers/api.controller.js';
@@ -5587,6 +5587,16 @@ export class CrewlyServer {
5587
5587
  try {
5588
5588
  const queue = SubAgentMessageQueue.getInstance();
5589
5589
  const tell = (sessionName, text, sample) => this.tellAboutAgent(sessionName, text, { sample, kind: 'input-blocked', title: 'Orchestrator input blocked' });
5590
+ // Our Enter submitted pastes that were sitting in an agent's box: drop
5591
+ // their queued copies so a held retry does not deliver them twice.
5592
+ SessionCommandHelper.onOwnPasteSubmitted = (sessionName, messages) => {
5593
+ for (const m of messages)
5594
+ queue.remove(sessionName, m);
5595
+ };
5596
+ // An idle agent's box held text we cannot attribute for a long time.
5597
+ SessionCommandHelper.onStuckInput = (sessionName, info) => {
5598
+ InputBlockedRetryService.getInstance().noteStuckInput(sessionName, info.inputLength, info.forMs);
5599
+ };
5590
5600
  InputBlockedRetryService.getInstance().setDeps({
5591
5601
  hasQueued: (session) => queue.hasPending(session),
5592
5602
  isIdle: (session) => this.activityMonitorService.getObservedWorkingStatus(session) !== 'in_progress',
@@ -5594,6 +5604,10 @@ export class CrewlyServer {
5594
5604
  notify: async (notice) => {
5595
5605
  const minutes = Math.max(1, Math.round(notice.blockedForMs / 60000));
5596
5606
  // The kind of content, never the text: a box can hold a password.
5607
+ if (notice.state === 'stuck') {
5608
+ tell(notice.sessionName, `${notice.sessionName} is idle, but its input box has held ${notice.inputLength} characters for ${minutes} min that Crewly cannot match to its own messages, and nobody typed into its terminal since Crewly's last message. Crewly did not submit it. Check the agent's terminal: submit or clear what is in the box.`, undefined);
5609
+ return;
5610
+ }
5597
5611
  if (notice.state === 'busy') {
5598
5612
  tell(notice.sessionName, `Messages to ${notice.sessionName} have been held for ${minutes} min because it has looked mid-turn the whole time (spinner or "esc to interrupt" on screen). It may be stuck in a long or hung turn. Check its terminal; the messages go out as soon as it is idle.`, notice.message);
5599
5613
  return;