charness 3.4.0 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/DEVELOPMENT.md +12 -1
  3. package/README.md +89 -6
  4. package/SETUP.md +199 -1
  5. package/dist/adapters/adapterEventRouting.d.ts +2 -2
  6. package/dist/adapters/adapterEventRouting.d.ts.map +1 -1
  7. package/dist/adapters/adapterEventRouting.js +4 -3
  8. package/dist/adapters/adapterEventRouting.js.map +1 -1
  9. package/dist/adapters/claudeCliAdapter.js +2 -2
  10. package/dist/adapters/claudeCliAdapter.js.map +1 -1
  11. package/dist/adapters/claudeConfigDir.d.ts +18 -0
  12. package/dist/adapters/claudeConfigDir.d.ts.map +1 -1
  13. package/dist/adapters/claudeJsonStreamAdapter.d.ts +82 -6
  14. package/dist/adapters/claudeJsonStreamAdapter.d.ts.map +1 -1
  15. package/dist/adapters/claudeJsonStreamAdapter.js +211 -14
  16. package/dist/adapters/claudeJsonStreamAdapter.js.map +1 -1
  17. package/dist/adapters/createAdapter.d.ts +14 -1
  18. package/dist/adapters/createAdapter.d.ts.map +1 -1
  19. package/dist/adapters/createAdapter.js +54 -2
  20. package/dist/adapters/createAdapter.js.map +1 -1
  21. package/dist/adapters/openCodeAdapter.d.ts +5 -0
  22. package/dist/adapters/openCodeAdapter.d.ts.map +1 -1
  23. package/dist/adapters/openCodeAdapter.js +7 -0
  24. package/dist/adapters/openCodeAdapter.js.map +1 -1
  25. package/dist/agentLogin/agentLogin.d.ts +18 -1
  26. package/dist/agentLogin/agentLogin.d.ts.map +1 -1
  27. package/dist/agentLogin/agentLogin.js +59 -18
  28. package/dist/agentLogin/agentLogin.js.map +1 -1
  29. package/dist/apiErrorRetry.d.ts +3 -1
  30. package/dist/apiErrorRetry.d.ts.map +1 -1
  31. package/dist/apiErrorRetry.js +11 -1
  32. package/dist/apiErrorRetry.js.map +1 -1
  33. package/dist/bot.d.ts.map +1 -1
  34. package/dist/bot.js +475 -105
  35. package/dist/bot.js.map +1 -1
  36. package/dist/cli/claudeProfiles.d.ts +1 -1
  37. package/dist/cli/claudeProfiles.d.ts.map +1 -1
  38. package/dist/cli/claudeProfiles.js +11 -6
  39. package/dist/cli/claudeProfiles.js.map +1 -1
  40. package/dist/connectors/jira/connector.d.ts +2 -0
  41. package/dist/connectors/jira/connector.d.ts.map +1 -1
  42. package/dist/connectors/jira/connector.js +5 -4
  43. package/dist/connectors/jira/connector.js.map +1 -1
  44. package/dist/connectors/telegram/commands/claudeAccounts.d.ts +6 -2
  45. package/dist/connectors/telegram/commands/claudeAccounts.d.ts.map +1 -1
  46. package/dist/connectors/telegram/commands/claudeAccounts.js +127 -28
  47. package/dist/connectors/telegram/commands/claudeAccounts.js.map +1 -1
  48. package/dist/connectors/telegram/commands/compaction.d.ts.map +1 -1
  49. package/dist/connectors/telegram/commands/compaction.js +39 -8
  50. package/dist/connectors/telegram/commands/compaction.js.map +1 -1
  51. package/dist/connectors/telegram/commands/fallbackChain.d.ts.map +1 -1
  52. package/dist/connectors/telegram/commands/fallbackChain.js +6 -2
  53. package/dist/connectors/telegram/commands/fallbackChain.js.map +1 -1
  54. package/dist/connectors/telegram/forumTopicCreated.d.ts +20 -0
  55. package/dist/connectors/telegram/forumTopicCreated.d.ts.map +1 -0
  56. package/dist/connectors/telegram/forumTopicCreated.js +16 -0
  57. package/dist/connectors/telegram/forumTopicCreated.js.map +1 -0
  58. package/dist/i18n/de.d.ts.map +1 -1
  59. package/dist/i18n/de.js +42 -1
  60. package/dist/i18n/de.js.map +1 -1
  61. package/dist/i18n/en.d.ts.map +1 -1
  62. package/dist/i18n/en.js +42 -1
  63. package/dist/i18n/en.js.map +1 -1
  64. package/dist/i18n/es.d.ts.map +1 -1
  65. package/dist/i18n/es.js +42 -1
  66. package/dist/i18n/es.js.map +1 -1
  67. package/dist/i18n/fr.d.ts.map +1 -1
  68. package/dist/i18n/fr.js +42 -1
  69. package/dist/i18n/fr.js.map +1 -1
  70. package/dist/i18n/hi.d.ts.map +1 -1
  71. package/dist/i18n/hi.js +42 -1
  72. package/dist/i18n/hi.js.map +1 -1
  73. package/dist/i18n/ja.d.ts.map +1 -1
  74. package/dist/i18n/ja.js +42 -1
  75. package/dist/i18n/ja.js.map +1 -1
  76. package/dist/i18n/ka.d.ts.map +1 -1
  77. package/dist/i18n/ka.js +42 -1
  78. package/dist/i18n/ka.js.map +1 -1
  79. package/dist/i18n/pt.d.ts.map +1 -1
  80. package/dist/i18n/pt.js +42 -1
  81. package/dist/i18n/pt.js.map +1 -1
  82. package/dist/i18n/ru.d.ts.map +1 -1
  83. package/dist/i18n/ru.js +42 -1
  84. package/dist/i18n/ru.js.map +1 -1
  85. package/dist/i18n/uk.d.ts.map +1 -1
  86. package/dist/i18n/uk.js +42 -1
  87. package/dist/i18n/uk.js.map +1 -1
  88. package/dist/i18n/uz.d.ts.map +1 -1
  89. package/dist/i18n/uz.js +42 -1
  90. package/dist/i18n/uz.js.map +1 -1
  91. package/dist/i18n/zh.d.ts.map +1 -1
  92. package/dist/i18n/zh.js +42 -1
  93. package/dist/i18n/zh.js.map +1 -1
  94. package/dist/i18n.d.ts +2 -0
  95. package/dist/i18n.d.ts.map +1 -1
  96. package/dist/i18n.js.map +1 -1
  97. package/dist/rateLimiter.d.ts +6 -0
  98. package/dist/rateLimiter.d.ts.map +1 -1
  99. package/dist/rateLimiter.js +9 -0
  100. package/dist/rateLimiter.js.map +1 -1
  101. package/dist/requests/wakeUpEngine.d.ts +4 -0
  102. package/dist/requests/wakeUpEngine.d.ts.map +1 -1
  103. package/dist/requests/wakeUpEngine.js +3 -3
  104. package/dist/requests/wakeUpEngine.js.map +1 -1
  105. package/dist/requests/wakeUpRules.d.ts +2 -1
  106. package/dist/requests/wakeUpRules.d.ts.map +1 -1
  107. package/dist/requests/wakeUpRules.js +3 -2
  108. package/dist/requests/wakeUpRules.js.map +1 -1
  109. package/dist/scheduler/mcpSurface.d.ts.map +1 -1
  110. package/dist/scheduler/mcpSurface.js +5 -3
  111. package/dist/scheduler/mcpSurface.js.map +1 -1
  112. package/dist/selfUpdate/updateMessages.d.ts +1 -1
  113. package/dist/selfUpdate/updateMessages.d.ts.map +1 -1
  114. package/dist/selfUpdate/updateMessages.js.map +1 -1
  115. package/dist/state.d.ts +67 -5
  116. package/dist/state.d.ts.map +1 -1
  117. package/dist/state.js +76 -7
  118. package/dist/state.js.map +1 -1
  119. package/dist/testTimings.d.ts +45 -0
  120. package/dist/testTimings.d.ts.map +1 -0
  121. package/dist/testTimings.js +89 -0
  122. package/dist/testTimings.js.map +1 -0
  123. package/dist/types.d.ts +49 -0
  124. package/dist/types.d.ts.map +1 -1
  125. package/dist/utils/adapterSwitchSessionIds.d.ts +5 -1
  126. package/dist/utils/adapterSwitchSessionIds.d.ts.map +1 -1
  127. package/dist/utils/adapterSwitchSessionIds.js +1 -1
  128. package/dist/utils/adapterSwitchSessionIds.js.map +1 -1
  129. package/dist/utils/adoptedToolList.d.ts +16 -21
  130. package/dist/utils/adoptedToolList.d.ts.map +1 -1
  131. package/dist/utils/adoptedToolList.js +18 -17
  132. package/dist/utils/adoptedToolList.js.map +1 -1
  133. package/dist/utils/anthropicApiKeyCheck.d.ts +19 -0
  134. package/dist/utils/anthropicApiKeyCheck.d.ts.map +1 -0
  135. package/dist/utils/anthropicApiKeyCheck.js +41 -0
  136. package/dist/utils/anthropicApiKeyCheck.js.map +1 -0
  137. package/dist/utils/claudeAccountPickerPlan.d.ts +6 -1
  138. package/dist/utils/claudeAccountPickerPlan.d.ts.map +1 -1
  139. package/dist/utils/claudeAccountPickerPlan.js +5 -1
  140. package/dist/utils/claudeAccountPickerPlan.js.map +1 -1
  141. package/dist/utils/claudeApiKeyHelper.d.ts +19 -0
  142. package/dist/utils/claudeApiKeyHelper.d.ts.map +1 -0
  143. package/dist/utils/claudeApiKeyHelper.js +32 -0
  144. package/dist/utils/claudeApiKeyHelper.js.map +1 -0
  145. package/dist/utils/claudeApiSpend.d.ts +73 -0
  146. package/dist/utils/claudeApiSpend.d.ts.map +1 -0
  147. package/dist/utils/claudeApiSpend.js +82 -0
  148. package/dist/utils/claudeApiSpend.js.map +1 -0
  149. package/dist/utils/claudeCompactHook.d.ts +11 -6
  150. package/dist/utils/claudeCompactHook.d.ts.map +1 -1
  151. package/dist/utils/claudeCompactHook.js +28 -11
  152. package/dist/utils/claudeCompactHook.js.map +1 -1
  153. package/dist/utils/claudeLimitSwitch.d.ts +2 -1
  154. package/dist/utils/claudeLimitSwitch.d.ts.map +1 -1
  155. package/dist/utils/claudeLimitSwitch.js +3 -2
  156. package/dist/utils/claudeLimitSwitch.js.map +1 -1
  157. package/dist/utils/claudeProfileUsageLines.d.ts +18 -3
  158. package/dist/utils/claudeProfileUsageLines.d.ts.map +1 -1
  159. package/dist/utils/claudeProfileUsageLines.js +23 -2
  160. package/dist/utils/claudeProfileUsageLines.js.map +1 -1
  161. package/dist/utils/claudeProfiles.d.ts +57 -2
  162. package/dist/utils/claudeProfiles.d.ts.map +1 -1
  163. package/dist/utils/claudeProfiles.js +96 -3
  164. package/dist/utils/claudeProfiles.js.map +1 -1
  165. package/dist/utils/claudeScheduledJobs.d.ts +49 -0
  166. package/dist/utils/claudeScheduledJobs.d.ts.map +1 -0
  167. package/dist/utils/claudeScheduledJobs.js +62 -0
  168. package/dist/utils/claudeScheduledJobs.js.map +1 -0
  169. package/dist/utils/claudeStreamJson.d.ts +35 -2
  170. package/dist/utils/claudeStreamJson.d.ts.map +1 -1
  171. package/dist/utils/claudeStreamJson.js +31 -8
  172. package/dist/utils/claudeStreamJson.js.map +1 -1
  173. package/dist/utils/claudeTranscriptContent.d.ts +8 -0
  174. package/dist/utils/claudeTranscriptContent.d.ts.map +1 -1
  175. package/dist/utils/claudeTranscriptContent.js +44 -0
  176. package/dist/utils/claudeTranscriptContent.js.map +1 -1
  177. package/dist/utils/claudeUsage.d.ts +22 -6
  178. package/dist/utils/claudeUsage.d.ts.map +1 -1
  179. package/dist/utils/claudeUsage.js +12 -5
  180. package/dist/utils/claudeUsage.js.map +1 -1
  181. package/dist/utils/claudeUsageRefresher.d.ts +6 -0
  182. package/dist/utils/claudeUsageRefresher.d.ts.map +1 -1
  183. package/dist/utils/claudeUsageRefresher.js +2 -2
  184. package/dist/utils/claudeUsageRefresher.js.map +1 -1
  185. package/dist/utils/compactOnIdle.d.ts +12 -0
  186. package/dist/utils/compactOnIdle.d.ts.map +1 -1
  187. package/dist/utils/compactOnIdle.js +15 -1
  188. package/dist/utils/compactOnIdle.js.map +1 -1
  189. package/dist/utils/doctorLine.d.ts +13 -0
  190. package/dist/utils/doctorLine.d.ts.map +1 -0
  191. package/dist/utils/doctorLine.js +18 -0
  192. package/dist/utils/doctorLine.js.map +1 -0
  193. package/dist/utils/effortPickerPlan.d.ts +1 -2
  194. package/dist/utils/effortPickerPlan.d.ts.map +1 -1
  195. package/dist/utils/effortPickerPlan.js.map +1 -1
  196. package/dist/utils/fallbackChain.d.ts +15 -8
  197. package/dist/utils/fallbackChain.d.ts.map +1 -1
  198. package/dist/utils/fallbackChain.js +30 -13
  199. package/dist/utils/fallbackChain.js.map +1 -1
  200. package/dist/utils/jsonStreamHost.d.ts +19 -7
  201. package/dist/utils/jsonStreamHost.d.ts.map +1 -1
  202. package/dist/utils/jsonStreamHost.js +25 -11
  203. package/dist/utils/jsonStreamHost.js.map +1 -1
  204. package/dist/utils/jsonStreamPendingWork.d.ts +44 -0
  205. package/dist/utils/jsonStreamPendingWork.d.ts.map +1 -0
  206. package/dist/utils/jsonStreamPendingWork.js +48 -0
  207. package/dist/utils/jsonStreamPendingWork.js.map +1 -0
  208. package/dist/utils/limitsBoardPlan.d.ts +4 -2
  209. package/dist/utils/limitsBoardPlan.d.ts.map +1 -1
  210. package/dist/utils/limitsBoardPlan.js +12 -5
  211. package/dist/utils/limitsBoardPlan.js.map +1 -1
  212. package/dist/utils/lostWork.d.ts +117 -0
  213. package/dist/utils/lostWork.d.ts.map +1 -0
  214. package/dist/utils/lostWork.js +187 -0
  215. package/dist/utils/lostWork.js.map +1 -0
  216. package/dist/utils/nativeWindows.d.ts +29 -0
  217. package/dist/utils/nativeWindows.d.ts.map +1 -0
  218. package/dist/utils/nativeWindows.js +50 -0
  219. package/dist/utils/nativeWindows.js.map +1 -0
  220. package/dist/utils/recvPreviewRedaction.d.ts +7 -2
  221. package/dist/utils/recvPreviewRedaction.d.ts.map +1 -1
  222. package/dist/utils/recvPreviewRedaction.js +10 -4
  223. package/dist/utils/recvPreviewRedaction.js.map +1 -1
  224. package/dist/utils/threadStatusReport.d.ts +12 -1
  225. package/dist/utils/threadStatusReport.d.ts.map +1 -1
  226. package/dist/utils/threadStatusReport.js +13 -4
  227. package/dist/utils/threadStatusReport.js.map +1 -1
  228. package/dist/utils/updateScreenPlan.d.ts +1 -1
  229. package/dist/utils/updateScreenPlan.d.ts.map +1 -1
  230. package/dist/utils/updateScreenPlan.js.map +1 -1
  231. package/package.json +2 -2
@@ -59,7 +59,7 @@ var __importStar = (this && this.__importStar) || (function () {
59
59
  };
60
60
  })();
61
61
  Object.defineProperty(exports, "__esModule", { value: true });
62
- exports.claudeEffortFlag = exports.claudeModelFlag = exports.stderrTailMaxChars = exports.stdoutOversizeWarnBytes = exports.fifoWriteRetryDelayMs = exports.fifoWriteMaxRetries = exports.fifoOpenRetryDelayMs = exports.fifoOpenMaxTries = exports.pidKillWaitTimeoutMs = exports.pidExitPollIntervalMs = exports.pidExitWaitTimeoutMs = exports.pidFilePollIntervalMs = exports.pidFileWaitTimeoutMs = exports.wrapperCdFailExitCode = exports.jsonStreamTmuxPrefix = exports.jsonStreamRootDirName = void 0;
62
+ exports.claudeEffortFlag = exports.claudeModelFlag = exports.claudeSessionStateEventsVariableName = exports.stderrTailMaxChars = exports.stdoutOversizeWarnBytes = exports.fifoWriteRetryDelayMs = exports.fifoWriteMaxRetries = exports.fifoOpenRetryDelayMs = exports.fifoOpenMaxTries = exports.pidKillWaitTimeoutMs = exports.pidExitPollIntervalMs = exports.pidExitWaitTimeoutMs = exports.pidFilePollIntervalMs = exports.pidFileWaitTimeoutMs = exports.wrapperCdFailExitCode = exports.jsonStreamTmuxPrefix = exports.jsonStreamRootDirName = void 0;
63
63
  exports.resolveJsonStreamRoot = resolveJsonStreamRoot;
64
64
  exports.resolveJsonStreamSessionDir = resolveJsonStreamSessionDir;
65
65
  exports.parseJsonStreamDirName = parseJsonStreamDirName;
@@ -174,6 +174,12 @@ function buildJsonStreamTmuxSessionName(key) {
174
174
  function parseJsonStreamTmuxSessionName(name) {
175
175
  return (0, tmuxSessionName_1.parseTmuxSessionName)(exports.jsonStreamTmuxPrefix, name);
176
176
  }
177
+ /**
178
+ * The CLI's opt-in to `system/session_state_changed` frames: `running` marks a turn at its START (72 ms after a
179
+ * finished background task empties its list, measured on 2.1.310), not at its first output after the API round-trip.
180
+ * Set by every wrapper beside the environment it starts claude with (`utils/jsonStreamPendingWork.ts`).
181
+ */
182
+ exports.claudeSessionStateEventsVariableName = 'CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS';
177
183
  /**
178
184
  * @description The `#!/bin/sh` host script (exact shape proven by the P1 probe
179
185
  * `p1-probe2.mjs`): background claude with its stdio rerouted to the host files,
@@ -185,19 +191,19 @@ function parseJsonStreamTmuxSessionName(name) {
185
191
  * (a tracker conversation, R32) claude gets exactly those variables instead —
186
192
  * `env -i`, so nothing of the tmux server's environment reaches it (no API key
187
193
  * either). A non-default Claude account profile adds `CLAUDE_CONFIG_DIR=<dir>` to
188
- * either `env` form (`utils/claudeProfiles.ts`); the default profile adds nothing,
189
- * so the wrapper of a topic that never picked an account is byte-identical to
190
- * the golden shape. The variable sits in the process environment — not only in
191
- * the CLI's own reading of it — so a child `claude` the agent starts inherits the
192
- * same account. All embedded strings are single-quoted; `claudePath` must be
193
- * ABSOLUTE (tmux server PATH differs).
194
+ * either `env` form (`utils/claudeProfiles.ts`); the default profile adds nothing.
195
+ * The variable sits in the process environment — not only in the CLI's own
196
+ * reading of it — so a child `claude` the agent starts inherits the same account.
197
+ * Both forms also set {@link claudeSessionStateEventsVariableName}. All embedded
198
+ * strings are single-quoted; `claudePath` must be ABSOLUTE (tmux server PATH differs).
194
199
  */
195
200
  function buildWrapperScript(claudePath, args, workDir, paths, environment = null, configDir = null) {
196
201
  const command = [claudePath, ...args].map(tmuxExec_1.shellSingleQuote).join(' ');
197
202
  const configDirAssignment = configDir === null ? [] : [(0, tmuxExec_1.shellSingleQuote)(`${claudeProfiles_1.claudeConfigDirVariableName}=${configDir}`)];
203
+ const ownAssignments = [(0, tmuxExec_1.shellSingleQuote)(`${exports.claudeSessionStateEventsVariableName}=1`), ...configDirAssignment];
198
204
  const envCommand = environment === null
199
- ? ['env', '-u', 'ANTHROPIC_API_KEY', ...configDirAssignment].join(' ')
200
- : ['env', '-i', ...Object.entries(environment).map(([name, value]) => (0, tmuxExec_1.shellSingleQuote)(`${name}=${value}`)), ...configDirAssignment].join(' ');
205
+ ? ['env', '-u', 'ANTHROPIC_API_KEY', ...ownAssignments].join(' ')
206
+ : ['env', '-i', ...Object.entries(environment).map(([name, value]) => (0, tmuxExec_1.shellSingleQuote)(`${name}=${value}`)), ...ownAssignments].join(' ');
201
207
  return `#!/bin/sh
202
208
  cd ${(0, tmuxExec_1.shellSingleQuote)(workDir)} || exit ${exports.wrapperCdFailExitCode}
203
209
  ${envCommand} ${command} \\
@@ -403,14 +409,22 @@ function readFileByteRange(filePath, startOffset, endOffset) {
403
409
  */
404
410
  function resolveAdoptedTail(persistedTail, claudeSessionId, stdoutSizeBytes) {
405
411
  if (persistedTail === null || persistedTail.sessionId !== claudeSessionId) {
406
- return { startOffset: stdoutSizeBytes, backgroundTaskIds: [], isTurnInFlight: false, outstandingToolUseIds: [], claudeCodeVersion: null };
412
+ return {
413
+ startOffset: stdoutSizeBytes, backgroundTasks: [], isTurnInFlight: false, outstandingToolUseIds: [], claudeCodeVersion: null,
414
+ notificationTurnPendingSinceMs: null, lastTurnEndedAtMs: null, scheduledJobs: [], isConfigDirSwitchPending: false,
415
+ };
407
416
  }
408
417
  return {
409
418
  startOffset: Math.min(persistedTail.offsetBytes, stdoutSizeBytes),
410
- backgroundTaskIds: persistedTail.backgroundTaskIds ?? [],
419
+ // A record written before the descriptions were kept has the ids alone.
420
+ backgroundTasks: persistedTail.backgroundTasks ?? (persistedTail.backgroundTaskIds ?? []).map((taskId) => ({ taskId, description: '' })),
411
421
  isTurnInFlight: persistedTail.isTurnInFlight ?? false,
412
422
  outstandingToolUseIds: persistedTail.outstandingToolUseIds ?? [],
413
423
  claudeCodeVersion: persistedTail.claudeCodeVersion ?? null,
424
+ notificationTurnPendingSinceMs: persistedTail.notificationTurnPendingSinceMs ?? null,
425
+ lastTurnEndedAtMs: persistedTail.lastTurnEndedAtMs ?? null,
426
+ scheduledJobs: persistedTail.scheduledJobs ?? [],
427
+ isConfigDirSwitchPending: persistedTail.isConfigDirSwitchPending ?? false,
414
428
  };
415
429
  }
416
430
  function createStdoutTailState(startOffsetBytes) {
@@ -1 +1 @@
1
- {"version":3,"file":"jsonStreamHost.js","sourceRoot":"","sources":["../../src/utils/jsonStreamHost.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiEH,sDAEC;AAeD,kEAEC;AAQD,wDAEC;AAED,8DAWC;AAGD,wEAEC;AAGD,wEAEC;AAoBD,gDAsBC;AAOD,gEAMC;AAUD,wDAEC;AAcD,oEAOC;AAUD,8DAaC;AASD,sCAaC;AAaD,kCAEC;AAED,4CAEC;AAGD,0CAOC;AAGD,wCAUC;AAUD,oDAQC;AAID,wCAWC;AAID,wCAOC;AAGD,kCAMC;AAID,8CAUC;AAyBD,gDAeC;AA4BD,sDAEC;AAmBD,sDASC;AAUD,sDAMC;AASD,kEAEC;AAWD,8DA0BC;AAvgBD,uCAAyB;AACzB,2CAA6B;AAC7B,mDAA+C;AAC/C,8CAAsD;AACtD,8CAA2E;AAE3E,uDAA+E;AAC/E,yCAA8C;AAC9C,qDAAgG;AAEhG,iFAAiF;AACpE,QAAA,qBAAqB,GAAG,YAAY,CAAC;AAElD;;oCAEoC;AACvB,QAAA,oBAAoB,GAAG,OAAO,CAAC;AAE5C;8EAC8E;AACjE,QAAA,qBAAqB,GAAG,EAAE,CAAC;AAExC,4EAA4E;AAC/D,QAAA,oBAAoB,GAAG,IAAI,CAAC;AAC5B,QAAA,qBAAqB,GAAG,GAAG,CAAC;AACzC,gIAAgI;AACnH,QAAA,oBAAoB,GAAG,IAAI,CAAC;AAC5B,QAAA,qBAAqB,GAAG,EAAE,CAAC;AACxC,0JAA0J;AAC7I,QAAA,oBAAoB,GAAG,IAAI,CAAC;AAEzC;;;qEAGqE;AACxD,QAAA,gBAAgB,GAAG,EAAE,CAAC;AACtB,QAAA,oBAAoB,GAAG,GAAG,CAAC;AAExC;6EAC6E;AAChE,QAAA,mBAAmB,GAAG,GAAG,CAAC;AAC1B,QAAA,qBAAqB,GAAG,EAAE,CAAC;AAExC;qEACqE;AACxD,QAAA,uBAAuB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzD,gFAAgF;AACnE,QAAA,kBAAkB,GAAG,GAAG,CAAC;AActC,sEAAsE;AACtE,SAAgB,qBAAqB,CAAC,OAAe;IACnD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,6BAAqB,CAAC,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,uFAAuF;AACvF,SAAS,aAAa,CAAC,GAAe;IACpC,OAAO,IAAA,sBAAS,EAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;AAC5C,CAAC;AAED,0DAA0D;AAC1D,SAAgB,2BAA2B,CAAC,OAAe,EAAE,GAAe;IAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AACvE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,IAAY;IACjD,OAAO,IAAA,2BAAc,EAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,yBAAyB,CAAC,GAAW;IACnD,OAAO;QACL,GAAG;QACH,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC;QACvC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC;QAC1C,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC;QACxC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC;QAC9B,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC;QACxC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC;QACzC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,SAAgB,8BAA8B,CAAC,GAAe;IAC5D,OAAO,IAAA,sCAAoB,EAAC,4BAAoB,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC;AAED,mFAAmF;AACnF,SAAgB,8BAA8B,CAAC,IAAY;IACzD,OAAO,IAAA,sCAAoB,EAAC,4BAAoB,EAAE,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,kBAAkB,CAChC,UAAkB,EAClB,IAAuB,EACvB,OAAe,EACf,KAA6B,EAC7B,cAAuD,IAAI,EAC3D,YAA2B,IAAI;IAE/B,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,2BAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtE,MAAM,mBAAmB,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAA,2BAAgB,EAAC,GAAG,4CAA2B,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC;IACxH,MAAM,UAAU,GAAG,WAAW,KAAK,IAAI;QACrC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACtE,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAA,2BAAgB,EAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjJ,OAAO;KACJ,IAAA,2BAAgB,EAAC,OAAO,CAAC,YAAY,6BAAqB;EAC7D,UAAU,IAAI,OAAO;QACf,IAAA,2BAAgB,EAAC,KAAK,CAAC,SAAS,CAAC,OAAO,IAAA,2BAAgB,EAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,IAAA,2BAAgB,EAAC,KAAK,CAAC,UAAU,CAAC;;gBAE5G,IAAA,2BAAgB,EAAC,KAAK,CAAC,OAAO,CAAC;;YAEnC,IAAA,2BAAgB,EAAC,KAAK,CAAC,YAAY,CAAC;CAC/C,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAgB,0BAA0B,CAAC,WAAmB;IAC5D,IAAI,CAAC;QACH,OAAO,IAAA,gDAA+B,EAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,yHAAyH;AAC5G,QAAA,eAAe,GAAG,SAAS,CAAC;AAC5B,QAAA,gBAAgB,GAAG,UAAU,CAAC;AAE3C;;;GAGG;AACH,SAAgB,sBAAsB,CAAC,MAAc,EAAE,IAAY;IACjE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,aAAa,IAAI,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAClF,CAAC;AAQD;;;;;GAKG;AACH,SAAgB,4BAA4B,CAAC,WAAmB;IAC9D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO,EAAE,KAAK,EAAE,sBAAsB,CAAC,MAAM,EAAE,uBAAe,CAAC,EAAE,MAAM,EAAE,sBAAsB,CAAC,MAAM,EAAE,wBAAgB,CAAC,EAAE,CAAC;IAC9H,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACvC,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,yBAAyB,CAC7C,QAAgB,EAChB,WAAmB,wBAAgB;IAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC;QACpD,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAK,CAA2B,CAAC,IAAI,KAAK,OAAO;gBAAE,MAAM,CAAC,CAAC;YAC3D,MAAM,IAAA,qBAAK,EAAC,4BAAoB,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,aAAa,CAAC,EAAU,EAAE,IAAY;IAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1C,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,OAAO,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,2BAAmB;gBAAE,MAAM,CAAC,CAAC;YAC9F,OAAO,IAAI,CAAC,CAAC;YACb,MAAM,IAAA,qBAAK,EAAC,6BAAqB,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,SAAS,WAAW,CAAC,QAAgB;IACnC,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChD,CAAC;AAED,SAAgB,WAAW,CAAC,OAAe;IACzC,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,SAAgB,gBAAgB,CAAC,YAAoB;IACnD,OAAO,WAAW,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC;AAED,oEAAoE;AACpE,SAAgB,eAAe,CAAC,GAAW;IACzC,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,yGAAyG;AAClG,KAAK,UAAU,cAAc,CAClC,GAAW,EACX,YAAoB,4BAAoB;IAExC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;YAAE,OAAO,KAAK,CAAC;QACzC,MAAM,IAAA,qBAAK,EAAC,6BAAqB,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAKD;;;;GAIG;AACI,KAAK,UAAU,oBAAoB,CACxC,GAAW,EACX,UAA4F,EAAE;IAE9F,MAAM,EAAE,aAAa,GAAG,4BAAoB,EAAE,aAAa,GAAG,4BAAoB,EAAE,IAAI,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC;IAC3J,IAAI,MAAM,cAAc,CAAC,GAAG,EAAE,aAAa,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9D,IAAI,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,qEAAqE,CAAC,CAAC;IAClG,OAAO,CAAC,MAAM,cAAc,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;AACzE,CAAC;AAED;6EAC6E;AACtE,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,YAAoB,4BAAoB;IAExC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,GAAG,CAAC;QAC7B,MAAM,IAAA,qBAAK,EAAC,6BAAqB,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED;0EAC0E;AAC1E,SAAgB,cAAc,CAAC,UAAkB,EAAE,WAAmB,0BAAkB;IACtF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACvD,OAAO,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,SAAgB,WAAW,CAAC,QAAgB;IAC1C,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;+EAC+E;AAC/E,SAAgB,iBAAiB,CAAC,QAAgB,EAAE,WAAmB,EAAE,SAAiB;IACxF,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAClE,OAAO,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACvE,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAYD;;;;;;;;;;;;GAYG;AACH,SAAgB,kBAAkB,CAChC,aAA0C,EAC1C,eAAuB,EACvB,eAAuB;IAEvB,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,CAAC,SAAS,KAAK,eAAe,EAAE,CAAC;QAC1E,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,qBAAqB,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAC5I,CAAC;IACD,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,EAAE,eAAe,CAAC;QACjE,iBAAiB,EAAE,aAAa,CAAC,iBAAiB,IAAI,EAAE;QACxD,cAAc,EAAE,aAAa,CAAC,cAAc,IAAI,KAAK;QACrD,qBAAqB,EAAE,aAAa,CAAC,qBAAqB,IAAI,EAAE;QAChE,iBAAiB,EAAE,aAAa,CAAC,iBAAiB,IAAI,IAAI;KAC3D,CAAC;AACJ,CAAC;AA4BD,SAAgB,qBAAqB,CAAC,gBAAwB;IAC5D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,8BAAa,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1G,CAAC;AAcD;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,KAAsB,EAAE,SAAiB;IAC7E,IAAI,SAAS,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QACpC,KAAK,CAAC,aAAa,GAAG,SAAS,CAAC;QAChC,KAAK,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC/B,KAAK,CAAC,OAAO,GAAG,IAAI,8BAAa,CAAC,MAAM,CAAC,CAAC;QAC1C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IACD,IAAI,SAAS,KAAK,KAAK,CAAC,aAAa;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAClF,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,qBAAqB,CAAC,KAAsB,EAAE,KAAa;IACzE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,oBAAoB,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7F,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACnD,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,MAAM,CAAC;IACpC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,2BAA2B,CAAC,KAAsB,EAAE,eAAuB;IACzF,OAAO,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AACvG,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,yBAAyB,CAC7C,cAAsB,EACtB,kBAAgD;IAEhD,IAAI,OAAoB,CAAC;IACzB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/E,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,iCAAiC,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAS;QACnC,MAAM,GAAG,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,IAAI,kBAAkB,CAAC,GAAG,CAAC;YAAE,SAAS;QAC9C,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9F,YAAY,IAAI,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,8CAA8C,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"jsonStreamHost.js","sourceRoot":"","sources":["../../src/utils/jsonStreamHost.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @description The json-stream "working" judgement for the agent's OWN pending work between turns: a background task
3
+ * (background Bash / Monitor / sub-agent), the turn a finished task is about to start, a session-only `CronCreate` job.
4
+ * A stop kills every one of them with the process, so each counts as working (lifecycle plan L-D2) — but only for a
5
+ * bounded time, so a forgotten task cannot pin a process forever.
6
+ *
7
+ * Measured on the real CLI (2.1.310): a background task's end writes `task_notification`, then empties the
8
+ * background list, then starts the task's own turn, whose first output comes only after the API round-trip (1.3 s on
9
+ * a small context, 3–5 s on a large one). The gap read as idle once, and the idle check stopped the process right as
10
+ * the agent was being woken to read its task's result.
11
+ */
12
+ /**
13
+ * How long a background task's notification holds the process for the turn it starts. The CLI starts that turn ~0.1 s
14
+ * after the notification; the grace only bounds a notification whose turn never shows (one folded into a running
15
+ * turn, a task stopped from inside a turn).
16
+ */
17
+ export declare const notificationTurnGraceMs = 30000;
18
+ /**
19
+ * How long pending work (background tasks, scheduled jobs) holds the process after the conversation's LAST turn
20
+ * ended. Every turn resets it — a watchdog that re-arms itself keeps its process for as long as it keeps looping — so
21
+ * only a task nobody heard from in that time (a forgotten dev server, a `sleep infinity`) is let go.
22
+ */
23
+ export declare const pendingWorkHoldDefaultMs: number;
24
+ /** @name PendingWorkInput @description The session state the pending-work judgement reads, with its clock. */
25
+ export interface PendingWorkInput {
26
+ now: number;
27
+ backgroundTaskCount: number;
28
+ scheduledJobCount: number;
29
+ /** When the conversation's last turn ended (the process start before its first turn). */
30
+ lastTurnEndedAt: number;
31
+ holdMs: number;
32
+ /** When a background task's notification announced its turn; `null` when none is pending. */
33
+ notificationTurnPendingSince: number | null;
34
+ }
35
+ /**
36
+ * @description The hold left for the pending background tasks / scheduled jobs: `null` when there are none, `0` once
37
+ * the hold is spent.
38
+ */
39
+ export declare function getPendingWorkHoldRemainingMs(input: PendingWorkInput): number | null;
40
+ /** @description Whether a background task's notification still announces a turn that has not shown yet (within the grace). */
41
+ export declare function checkIsNotificationTurnPending(input: Pick<PendingWorkInput, 'now' | 'notificationTurnPendingSince'>): boolean;
42
+ /** @description Whether the agent's own pending work must keep its process: tasks or jobs within the hold, or a task's turn on its way. */
43
+ export declare function checkHasPendingWork(input: PendingWorkInput): boolean;
44
+ //# sourceMappingURL=jsonStreamPendingWork.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonStreamPendingWork.d.ts","sourceRoot":"","sources":["../../src/utils/jsonStreamPendingWork.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAE9C;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,QAAqB,CAAC;AAG3D,8GAA8G;AAC9G,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yFAAyF;IACzF,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,4BAA4B,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAGpF;AAED,8HAA8H;AAC9H,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,GAAG,8BAA8B,CAAC,GAAG,OAAO,CAE7H;AAED,2IAA2I;AAC3I,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAGpE"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /**
3
+ * @description The json-stream "working" judgement for the agent's OWN pending work between turns: a background task
4
+ * (background Bash / Monitor / sub-agent), the turn a finished task is about to start, a session-only `CronCreate` job.
5
+ * A stop kills every one of them with the process, so each counts as working (lifecycle plan L-D2) — but only for a
6
+ * bounded time, so a forgotten task cannot pin a process forever.
7
+ *
8
+ * Measured on the real CLI (2.1.310): a background task's end writes `task_notification`, then empties the
9
+ * background list, then starts the task's own turn, whose first output comes only after the API round-trip (1.3 s on
10
+ * a small context, 3–5 s on a large one). The gap read as idle once, and the idle check stopped the process right as
11
+ * the agent was being woken to read its task's result.
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.pendingWorkHoldDefaultMs = exports.notificationTurnGraceMs = void 0;
15
+ exports.getPendingWorkHoldRemainingMs = getPendingWorkHoldRemainingMs;
16
+ exports.checkIsNotificationTurnPending = checkIsNotificationTurnPending;
17
+ exports.checkHasPendingWork = checkHasPendingWork;
18
+ /**
19
+ * How long a background task's notification holds the process for the turn it starts. The CLI starts that turn ~0.1 s
20
+ * after the notification; the grace only bounds a notification whose turn never shows (one folded into a running
21
+ * turn, a task stopped from inside a turn).
22
+ */
23
+ exports.notificationTurnGraceMs = 30_000;
24
+ /**
25
+ * How long pending work (background tasks, scheduled jobs) holds the process after the conversation's LAST turn
26
+ * ended. Every turn resets it — a watchdog that re-arms itself keeps its process for as long as it keeps looping — so
27
+ * only a task nobody heard from in that time (a forgotten dev server, a `sleep infinity`) is let go.
28
+ */
29
+ exports.pendingWorkHoldDefaultMs = 6 * 60 * 60 * 1000;
30
+ /**
31
+ * @description The hold left for the pending background tasks / scheduled jobs: `null` when there are none, `0` once
32
+ * the hold is spent.
33
+ */
34
+ function getPendingWorkHoldRemainingMs(input) {
35
+ if (input.backgroundTaskCount === 0 && input.scheduledJobCount === 0)
36
+ return null;
37
+ return Math.max(0, input.holdMs - (input.now - input.lastTurnEndedAt));
38
+ }
39
+ /** @description Whether a background task's notification still announces a turn that has not shown yet (within the grace). */
40
+ function checkIsNotificationTurnPending(input) {
41
+ return input.notificationTurnPendingSince !== null && input.now - input.notificationTurnPendingSince < exports.notificationTurnGraceMs;
42
+ }
43
+ /** @description Whether the agent's own pending work must keep its process: tasks or jobs within the hold, or a task's turn on its way. */
44
+ function checkHasPendingWork(input) {
45
+ const holdRemainingMs = getPendingWorkHoldRemainingMs(input);
46
+ return (holdRemainingMs !== null && holdRemainingMs > 0) || checkIsNotificationTurnPending(input);
47
+ }
48
+ //# sourceMappingURL=jsonStreamPendingWork.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonStreamPendingWork.js","sourceRoot":"","sources":["../../src/utils/jsonStreamPendingWork.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAiCH,sEAGC;AAGD,wEAEC;AAGD,kDAGC;AA7CD;;;;GAIG;AACU,QAAA,uBAAuB,GAAG,MAAM,CAAC;AAE9C;;;;GAIG;AACU,QAAA,wBAAwB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAe3D;;;GAGG;AACH,SAAgB,6BAA6B,CAAC,KAAuB;IACnE,IAAI,KAAK,CAAC,mBAAmB,KAAK,CAAC,IAAI,KAAK,CAAC,iBAAiB,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,8HAA8H;AAC9H,SAAgB,8BAA8B,CAAC,KAAqE;IAClH,OAAO,KAAK,CAAC,4BAA4B,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,4BAA4B,GAAG,+BAAuB,CAAC;AACjI,CAAC;AAED,2IAA2I;AAC3I,SAAgB,mBAAmB,CAAC,KAAuB;IACzD,MAAM,eAAe,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAC7D,OAAO,CAAC,eAAe,KAAK,IAAI,IAAI,eAAe,GAAG,CAAC,CAAC,IAAI,8BAA8B,CAAC,KAAK,CAAC,CAAC;AACpG,CAAC"}
@@ -3,10 +3,12 @@
3
3
  *
4
4
  * - the ROWS — one per signed-in Claude account (in `/accounts` order), then one per connected OpenCode provider (in
5
5
  * catalog order), each labelled `[✓ ]<program> · <account or provider>` and nothing else: the buttons carry no usage,
6
- * no reset and no model (the figures do not fit a phone's button). The `✓` marks the active row only — where the
6
+ * no reset and no model (the figures do not fit a phone's button) — only an account billed to API credits ends in
7
+ * ` 💳` (a tap on it spends money). The `✓` marks the active row only — where the
7
8
  * topic runs now, in General the default Claude account. A signed-out account is not listed.
8
9
  * - the USAGE BLOCK of the message above them — `Usage (% used)` and one line per signed-in Claude account that has
9
- * a figure or a limit, then per connected OpenCode provider that reports usage (the ChatGPT subscription), each
10
+ * a figure or a limit (an account billed to API credits always: `console — 💳 API · pay per use`), then per
11
+ * connected OpenCode provider that reports usage (the ChatGPT subscription), each
10
12
  * `<name> — <first usage line>` in exactly the wording `/accounts` prints under a row
11
13
  * (`formatClaudeProfileUsageLines`, the one renderer both screens share).
12
14
  *
@@ -1 +1 @@
1
- {"version":3,"file":"limitsBoardPlan.d.ts","sourceRoot":"","sources":["../../src/utils/limitsBoardPlan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAqB,KAAK,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAMtF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC5B,qFAAqF;IACrF,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,kGAAkG;IAClG,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,+HAA+H;IAC/H,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACnC,2DAA2D;IAC3D,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAOD,mGAAmG;AACnG,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,cAAc,EAAE,CAqB9E;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,6FAA6F;IAC7F,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAC7E,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAiBD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAc3E"}
1
+ {"version":3,"file":"limitsBoardPlan.d.ts","sourceRoot":"","sources":["../../src/utils/limitsBoardPlan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAqB,KAAK,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAMtF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC5B,qFAAqF;IACrF,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,kGAAkG;IAClG,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,+HAA+H;IAC/H,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACnC,2DAA2D;IAC3D,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAUD,mGAAmG;AACnG,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,cAAc,EAAE,CAsB9E;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,6FAA6F;IAC7F,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAC7E,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAiBD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAgB3E"}
@@ -4,10 +4,12 @@
4
4
  *
5
5
  * - the ROWS — one per signed-in Claude account (in `/accounts` order), then one per connected OpenCode provider (in
6
6
  * catalog order), each labelled `[✓ ]<program> · <account or provider>` and nothing else: the buttons carry no usage,
7
- * no reset and no model (the figures do not fit a phone's button). The `✓` marks the active row only — where the
7
+ * no reset and no model (the figures do not fit a phone's button) — only an account billed to API credits ends in
8
+ * ` 💳` (a tap on it spends money). The `✓` marks the active row only — where the
8
9
  * topic runs now, in General the default Claude account. A signed-out account is not listed.
9
10
  * - the USAGE BLOCK of the message above them — `Usage (% used)` and one line per signed-in Claude account that has
10
- * a figure or a limit, then per connected OpenCode provider that reports usage (the ChatGPT subscription), each
11
+ * a figure or a limit (an account billed to API credits always: `console — 💳 API · pay per use`), then per
12
+ * connected OpenCode provider that reports usage (the ChatGPT subscription), each
11
13
  * `<name> — <first usage line>` in exactly the wording `/accounts` prints under a row
12
14
  * (`formatClaudeProfileUsageLines`, the one renderer both screens share).
13
15
  *
@@ -24,9 +26,11 @@ const openCodeUsage_1 = require("./openCodeUsage");
24
26
  const activeMark = '✓ ';
25
27
  /** The ChatGPT subscription's name beside its provider id in the usage block: `openai (ChatGPT)`. */
26
28
  const chatGptBrandName = 'ChatGPT';
29
+ /** The mark after an account billed to API credits: every request on it costs money. */
30
+ const meteredMark = ' 💳';
27
31
  function buildRow(row) {
28
- const { program, ...rest } = row;
29
- return { ...rest, label: `${row.isActive ? activeMark : ''}${program} · ${row.id}` };
32
+ const { program, isMetered, ...rest } = row;
33
+ return { ...rest, label: `${row.isActive ? activeMark : ''}${program} · ${row.id}${isMetered ? meteredMark : ''}` };
30
34
  }
31
35
  /** @description The board's rows: signed-in Claude accounts, then connected OpenCode providers. */
32
36
  function buildLimitsBoardRows(input) {
@@ -40,6 +44,7 @@ function buildLimitsBoardRows(input) {
40
44
  id: profile.name,
41
45
  program: input.words.claude,
42
46
  isActive: current?.backend === 'claude' && current.profile === profile.name,
47
+ isMetered: profile.billing === 'api',
43
48
  }));
44
49
  }
45
50
  for (const providerId of (0, fallbackChain_1.listOpenCodeProviders)(input.detection.openCodeModels)) {
@@ -76,7 +81,9 @@ function formatLimitsUsageBlock(input) {
76
81
  for (const profile of input.detection.claudeProfiles) {
77
82
  if (profile.loggedIn === false)
78
83
  continue;
79
- const entry = formatUsageEntry(profile.name, (0, claudeProfileUsageLines_1.formatClaudeProfileUsageLines)(profile, input.timezone, input.nowMs));
84
+ const usageLines = (0, claudeProfileUsageLines_1.formatClaudeProfileUsageLines)(profile, input.timezone, input.nowMs);
85
+ // An account billed to API credits has no windows: its entry says how it pays, the used-up mark hangs under it.
86
+ const entry = formatUsageEntry(profile.name, profile.billing === 'api' ? [(0, i18n_1.t)('account.kind.api'), ...usageLines] : usageLines);
80
87
  if (entry !== null)
81
88
  entries.push(entry);
82
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"limitsBoardPlan.js","sourceRoot":"","sources":["../../src/utils/limitsBoardPlan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"limitsBoardPlan.js","sourceRoot":"","sources":["../../src/utils/limitsBoardPlan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * @description The agent's own pending work that a json-stream process took with it when it ended anyway: a crash,
3
+ * a process found gone after a restart, a `/model` / `/effort` / account re-spawn, or the pending-work hold running
4
+ * out (`utils/jsonStreamPendingWork.ts`). Nothing else would ever tell the agent — a background task's result, its
5
+ * `CronCreate` jobs and a finished task it had not read yet are gone with the process, so the agent would keep waiting
6
+ * for a notification that never comes. The bot tells it once, in a short prompt, and the topic gets one plain line.
7
+ *
8
+ * A turn the bot itself cut off (a re-spawn, a backend switch) is lost work too: nothing else re-prompts it. A turn a
9
+ * crash cut off is the request core's: it re-posts and wakes an open request (R21). An explicit release (`/quit`,
10
+ * `/new`) drops the record — the person ended that conversation.
11
+ */
12
+ import type { ClaudeBackgroundTask } from './claudeStreamJson';
13
+ import type { JsonStreamTailOffset } from '../types';
14
+ import type { Translate } from '../i18n';
15
+ /** @name LostWork @description What a process held when it ended: none of it survives the process. */
16
+ export interface LostWork {
17
+ backgroundTasks: ClaudeBackgroundTask[];
18
+ /** Session-only `CronCreate` jobs (one-shot jobs that already fired may still be counted). */
19
+ scheduledJobCount: number;
20
+ /** A background task had finished and its own turn — the agent reading the result — had not run yet. */
21
+ hasUnreadTaskResult: boolean;
22
+ /** The bot cut off the turn the agent was in the middle of (a re-spawn, a backend switch). */
23
+ wasTurnInFlight: boolean;
24
+ }
25
+ /**
26
+ * @name LostWorkReason
27
+ * @description Why the process ended with work pending:
28
+ * - `exited` — the CLI exited by itself (a crash, an OOM kill);
29
+ * - `foundDead` — the process was gone when the bot came back (a host reboot, a killed tmux server);
30
+ * - `restarted` — the bot re-spawned it for a model, effort or account change;
31
+ * - `holdExpired` — the idle stop after the pending-work hold ran out (no turn for that long);
32
+ * - `switched` — the conversation moved to another backend (a usage-limit fallback, the operator's switch).
33
+ */
34
+ export type LostWorkReason = 'exited' | 'foundDead' | 'restarted' | 'holdExpired' | 'switched';
35
+ /** @name LostWorkRecord @description A loss the agent has not been told about yet (persisted in `state.json`). */
36
+ export interface LostWorkRecord extends LostWork {
37
+ reason: LostWorkReason;
38
+ lostAt: number;
39
+ /**
40
+ * The part of this loss the agent of the backend the conversation moved to was told about first (a backend switch
41
+ * tells both agents): the parked conversation's agent checks that part before it starts anything again. Only that
42
+ * part — a loss merged in later (the cut-off work of the side being left) is this agent's alone.
43
+ */
44
+ otherAgentTold?: LostWork;
45
+ }
46
+ /**
47
+ * Within this long after an automatic resume, a second loss does not resume the conversation again: a process that
48
+ * keeps dying with work pending must not be restarted in a loop. The note then waits for the next message.
49
+ */
50
+ export declare const lostWorkResumeCooldownMs: number;
51
+ /** @description Whether any work was lost. */
52
+ export declare function checkHasLostWork(lostWork: LostWork): boolean;
53
+ /**
54
+ * @description Whether the loss holds background work the operator is told was stopped by a switch: background tasks,
55
+ * scheduled jobs or a finished task's unread result — a cut-off turn alone is no background work.
56
+ */
57
+ export declare function checkHasLostBackgroundWork(lostWork: LostWork | null): boolean;
58
+ /**
59
+ * @description What a process that is GONE held, by its persisted tail record — read for a process found dead at
60
+ * boot. A process that ended while the bot watched left no pending work in its record ({@link getTailRecordWithoutPendingWork}).
61
+ * A record of another conversation holds nothing of this one, and neither does a record written before the pending work
62
+ * was tracked (its bare `backgroundTaskIds` were never cleared after a crash: they may be weeks old) — only a record that
63
+ * carries the hold's start or an announced turn speaks for a process that was alive with work pending.
64
+ */
65
+ export declare function getLostWorkFromTailRecord(tail: JsonStreamTailOffset | null, claudeSessionId: string): LostWork;
66
+ /** @description The tail record of a process whose pending work was handled (told, or released): the rest as it was. */
67
+ export declare function getTailRecordWithoutPendingWork(tail: JsonStreamTailOffset): JsonStreamTailOffset;
68
+ /**
69
+ * @name LostWorkPlan
70
+ * @description `isAutoResume`: the bot resumes the conversation now with the note as its prompt. Otherwise the note
71
+ * rides the next prompt, and `isResumedByNextMessage` says whether that is the person's next message waking a stopped
72
+ * process (`false`: the process is alive, or an armed limit wait resumes it — the note rides that prompt).
73
+ */
74
+ export interface LostWorkPlan {
75
+ isAutoResume: boolean;
76
+ isResumedByNextMessage: boolean;
77
+ }
78
+ /**
79
+ * @description What the bot does about a loss. A spent hold means nobody heard from the work for hours: the agent is
80
+ * told on the next message, not woken (it would only re-arm the same forgotten task). An armed usage-limit wait has
81
+ * its own resume, whose nudge carries the note. A loss right after an automatic resume waits for a person. A
82
+ * conversation that answers only through a request (a tracker issue, `isRequestRequired`) is not resumed by a bare
83
+ * note it could not answer: the note rides its next request's prompt.
84
+ */
85
+ export declare function getLostWorkPlan(input: {
86
+ reason: LostWorkReason;
87
+ isLimitWaitArmed: boolean;
88
+ msSinceLastAutoResume: number | null;
89
+ isRequestRequired: boolean;
90
+ }): LostWorkPlan;
91
+ /**
92
+ * @description The plan of a loss whose note waits for the next prompt — no automatic resume, or one that failed: the
93
+ * person's next message resumes a STOPPED process; a live one (a re-spawn, a switch) or an armed limit wait's own
94
+ * resume hears it with the next prompt it gets.
95
+ */
96
+ export declare function getHeldLostWorkPlan(input: {
97
+ reason: LostWorkReason;
98
+ isLimitWaitArmed: boolean;
99
+ }): LostWorkPlan;
100
+ /**
101
+ * @description The note the agent gets — as the automatic resume's prompt, or ahead of the next prompt. English with
102
+ * the baked reply-language directive (`replyLanguage` is the topic's language endonym).
103
+ */
104
+ export declare function buildLostWorkNote(record: LostWorkRecord, replyLanguage: string): string;
105
+ /**
106
+ * @description One loss from two: a loss the agent was not told about yet stays, and a newer one adds to it — the
107
+ * tasks by id, the larger job count, the reason and time of the newer loss. The parts another agent was told first
108
+ * merge only with each other, never with the rest.
109
+ */
110
+ export declare function mergeLostWorkRecords(untold: LostWorkRecord | undefined, newer: LostWorkRecord): LostWorkRecord;
111
+ /**
112
+ * @description The ONE plain line a topic gets about a loss (never pinned: no action is needed from the person) —
113
+ * what ended, what was pending, and when the agent hears about it. `holdHours` names the pending-work hold for a
114
+ * `holdExpired` loss.
115
+ */
116
+ export declare function formatLostWorkTopicLine(record: LostWorkRecord, plan: LostWorkPlan, holdHours: number, translate: Translate): string;
117
+ //# sourceMappingURL=lostWork.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lostWork.d.ts","sourceRoot":"","sources":["../../src/utils/lostWork.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,sGAAsG;AACtG,MAAM,WAAW,QAAQ;IACvB,eAAe,EAAE,oBAAoB,EAAE,CAAC;IACxC,8FAA8F;IAC9F,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wGAAwG;IACxG,mBAAmB,EAAE,OAAO,CAAC;IAC7B,8FAA8F;IAC9F,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,UAAU,CAAC;AAE/F,kHAAkH;AAClH,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,cAAc,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAiB,CAAC;AAEvD,8CAA8C;AAC9C,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAE5D;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,OAAO,CAE7E;AAID;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,EAAE,eAAe,EAAE,MAAM,GAAG,QAAQ,CAW9G;AAED,wHAAwH;AACxH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,oBAAoB,GAAG,oBAAoB,CAGhG;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,MAAM,EAAE,cAAc,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,iBAAiB,EAAE,OAAO,CAAC;CAC5B,GAAG,YAAY,CAIf;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAA;CAAE,GAAG,YAAY,CAG9G;AAwBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAavF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,cAAc,CAW9G;AAyBD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,CAQnI"}