crewly 1.20.143 → 1.20.145

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 (232) hide show
  1. package/config/constants.ts +59 -0
  2. package/config/index.ts +2 -0
  3. package/config/roles/orchestrator/prompt.md +9 -0
  4. package/config/skills/orchestrator/delegate-task/execute.sh +11 -0
  5. package/config/skills/orchestrator/delegate-task/execute.test.sh +38 -0
  6. package/config/skills/orchestrator/harness-login/SKILL.md +88 -0
  7. package/config/skills/orchestrator/harness-login/execute.sh +75 -0
  8. package/config/skills/orchestrator/harness-login/execute.test.sh +72 -0
  9. package/config/skills/orchestrator/reply-chat/SKILL.md +11 -1
  10. package/config/skills/orchestrator/reply-chat/execute.sh +13 -1
  11. package/config/skills/orchestrator/reply-slack/SKILL.md +1 -0
  12. package/config/skills/orchestrator/reply-slack/execute.sh +11 -2
  13. package/dist/backend/backend/src/constants.d.ts +55 -0
  14. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  15. package/dist/backend/backend/src/constants.js +36 -1
  16. package/dist/backend/backend/src/constants.js.map +1 -1
  17. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  18. package/dist/backend/backend/src/controllers/chat/chat.controller.js +36 -1
  19. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  20. package/dist/backend/backend/src/controllers/harness/harness.routes.d.ts +1 -0
  21. package/dist/backend/backend/src/controllers/harness/harness.routes.d.ts.map +1 -1
  22. package/dist/backend/backend/src/controllers/harness/harness.routes.js +3 -0
  23. package/dist/backend/backend/src/controllers/harness/harness.routes.js.map +1 -1
  24. package/dist/backend/backend/src/controllers/harness/owner-login.controller.d.ts +61 -0
  25. package/dist/backend/backend/src/controllers/harness/owner-login.controller.d.ts.map +1 -0
  26. package/dist/backend/backend/src/controllers/harness/owner-login.controller.js +133 -0
  27. package/dist/backend/backend/src/controllers/harness/owner-login.controller.js.map +1 -0
  28. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  29. package/dist/backend/backend/src/controllers/slack/slack.controller.js +69 -7
  30. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  31. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +4 -1
  32. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
  33. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +9 -2
  34. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
  35. package/dist/backend/backend/src/index.d.ts +8 -0
  36. package/dist/backend/backend/src/index.d.ts.map +1 -1
  37. package/dist/backend/backend/src/index.js +75 -3
  38. package/dist/backend/backend/src/index.js.map +1 -1
  39. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  40. package/dist/backend/backend/src/services/agent/agent-registration.service.js +28 -1
  41. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  42. package/dist/backend/backend/src/services/agent/codex-runtime.service.d.ts +11 -1
  43. package/dist/backend/backend/src/services/agent/codex-runtime.service.d.ts.map +1 -1
  44. package/dist/backend/backend/src/services/agent/codex-runtime.service.js +18 -0
  45. package/dist/backend/backend/src/services/agent/codex-runtime.service.js.map +1 -1
  46. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +12 -0
  47. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  48. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +18 -3
  49. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  50. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts +29 -0
  51. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  52. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +48 -0
  53. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  54. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  55. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +1 -1
  56. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  57. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +15 -0
  58. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  59. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +20 -0
  60. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  61. package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts +147 -5
  62. package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
  63. package/dist/backend/backend/src/services/harness/harness-relogin.service.js +210 -20
  64. package/dist/backend/backend/src/services/harness/harness-relogin.service.js.map +1 -1
  65. package/dist/backend/backend/src/services/harness/owner-login-request.d.ts +87 -0
  66. package/dist/backend/backend/src/services/harness/owner-login-request.d.ts.map +1 -0
  67. package/dist/backend/backend/src/services/harness/owner-login-request.js +191 -0
  68. package/dist/backend/backend/src/services/harness/owner-login-request.js.map +1 -0
  69. package/dist/backend/backend/src/services/orc/orc-reply-route.service.d.ts +217 -0
  70. package/dist/backend/backend/src/services/orc/orc-reply-route.service.d.ts.map +1 -0
  71. package/dist/backend/backend/src/services/orc/orc-reply-route.service.js +300 -0
  72. package/dist/backend/backend/src/services/orc/orc-reply-route.service.js.map +1 -0
  73. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +32 -2
  74. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
  75. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +59 -5
  76. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
  77. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +4 -2
  78. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
  79. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +6 -3
  80. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
  81. package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.d.ts +68 -9
  82. package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.d.ts.map +1 -1
  83. package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.js +121 -11
  84. package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.js.map +1 -1
  85. package/dist/backend/backend/src/services/system/auto-update.service.d.ts +292 -0
  86. package/dist/backend/backend/src/services/system/auto-update.service.d.ts.map +1 -0
  87. package/dist/backend/backend/src/services/system/auto-update.service.js +590 -0
  88. package/dist/backend/backend/src/services/system/auto-update.service.js.map +1 -0
  89. package/dist/backend/backend/src/services/system/auto-update.utils.d.ts +265 -0
  90. package/dist/backend/backend/src/services/system/auto-update.utils.d.ts.map +1 -0
  91. package/dist/backend/backend/src/services/system/auto-update.utils.js +397 -0
  92. package/dist/backend/backend/src/services/system/auto-update.utils.js.map +1 -0
  93. package/dist/backend/backend/src/services/system/version-check.service.d.ts +15 -1
  94. package/dist/backend/backend/src/services/system/version-check.service.d.ts.map +1 -1
  95. package/dist/backend/backend/src/services/system/version-check.service.js +21 -2
  96. package/dist/backend/backend/src/services/system/version-check.service.js.map +1 -1
  97. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +7 -1
  98. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  99. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +14 -2
  100. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  101. package/dist/backend/backend/src/services/v3/cascade-request-status.d.ts.map +1 -1
  102. package/dist/backend/backend/src/services/v3/cascade-request-status.js +16 -1
  103. package/dist/backend/backend/src/services/v3/cascade-request-status.js.map +1 -1
  104. package/dist/backend/backend/src/services/v3/request-completion.d.ts +128 -0
  105. package/dist/backend/backend/src/services/v3/request-completion.d.ts.map +1 -0
  106. package/dist/backend/backend/src/services/v3/request-completion.js +311 -0
  107. package/dist/backend/backend/src/services/v3/request-completion.js.map +1 -0
  108. package/dist/backend/backend/src/services/v3/request-decompose.subscriber.d.ts.map +1 -1
  109. package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js +3 -0
  110. package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js.map +1 -1
  111. package/dist/backend/backend/src/services/v3/request-status-update.subscriber.d.ts.map +1 -1
  112. package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js +17 -3
  113. package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js.map +1 -1
  114. package/dist/backend/backend/src/services/v3/v3-data.service.d.ts +8 -0
  115. package/dist/backend/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
  116. package/dist/backend/backend/src/services/v3/v3-data.service.js +11 -1
  117. package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -1
  118. package/dist/backend/backend/src/types/settings.types.d.ts +8 -0
  119. package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
  120. package/dist/backend/backend/src/types/settings.types.js +4 -0
  121. package/dist/backend/backend/src/types/settings.types.js.map +1 -1
  122. package/dist/backend/backend/src/utils/agent-reply-filter.utils.d.ts +75 -0
  123. package/dist/backend/backend/src/utils/agent-reply-filter.utils.d.ts.map +1 -0
  124. package/dist/backend/backend/src/utils/agent-reply-filter.utils.js +127 -0
  125. package/dist/backend/backend/src/utils/agent-reply-filter.utils.js.map +1 -0
  126. package/dist/backend/build-info.json +2 -2
  127. package/dist/backend/config/constants.d.ts +56 -0
  128. package/dist/backend/config/constants.d.ts.map +1 -1
  129. package/dist/backend/config/constants.js +57 -0
  130. package/dist/backend/config/constants.js.map +1 -1
  131. package/dist/backend/config/index.d.ts +2 -2
  132. package/dist/backend/config/index.d.ts.map +1 -1
  133. package/dist/backend/config/index.js +2 -2
  134. package/dist/backend/config/index.js.map +1 -1
  135. package/dist/cli/backend/src/constants.d.ts +55 -0
  136. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  137. package/dist/cli/backend/src/constants.js +36 -1
  138. package/dist/cli/backend/src/constants.js.map +1 -1
  139. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  140. package/dist/cli/backend/src/services/agent/agent-registration.service.js +28 -1
  141. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  142. package/dist/cli/backend/src/services/agent/codex-runtime.service.d.ts +11 -1
  143. package/dist/cli/backend/src/services/agent/codex-runtime.service.d.ts.map +1 -1
  144. package/dist/cli/backend/src/services/agent/codex-runtime.service.js +18 -0
  145. package/dist/cli/backend/src/services/agent/codex-runtime.service.js.map +1 -1
  146. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +12 -0
  147. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  148. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +18 -3
  149. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  150. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts +29 -0
  151. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  152. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +48 -0
  153. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  154. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  155. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +1 -1
  156. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  157. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +15 -0
  158. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  159. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +20 -0
  160. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  161. package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts +147 -5
  162. package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
  163. package/dist/cli/backend/src/services/harness/harness-relogin.service.js +210 -20
  164. package/dist/cli/backend/src/services/harness/harness-relogin.service.js.map +1 -1
  165. package/dist/cli/backend/src/services/harness/owner-login-request.d.ts +87 -0
  166. package/dist/cli/backend/src/services/harness/owner-login-request.d.ts.map +1 -0
  167. package/dist/cli/backend/src/services/harness/owner-login-request.js +191 -0
  168. package/dist/cli/backend/src/services/harness/owner-login-request.js.map +1 -0
  169. package/dist/cli/backend/src/services/orc/orc-reply-route.service.d.ts +217 -0
  170. package/dist/cli/backend/src/services/orc/orc-reply-route.service.d.ts.map +1 -0
  171. package/dist/cli/backend/src/services/orc/orc-reply-route.service.js +300 -0
  172. package/dist/cli/backend/src/services/orc/orc-reply-route.service.js.map +1 -0
  173. package/dist/cli/backend/src/services/system/auto-update.utils.d.ts +265 -0
  174. package/dist/cli/backend/src/services/system/auto-update.utils.d.ts.map +1 -0
  175. package/dist/cli/backend/src/services/system/auto-update.utils.js +397 -0
  176. package/dist/cli/backend/src/services/system/auto-update.utils.js.map +1 -0
  177. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +7 -1
  178. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  179. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +14 -2
  180. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  181. package/dist/cli/backend/src/services/v3/request-completion.d.ts +128 -0
  182. package/dist/cli/backend/src/services/v3/request-completion.d.ts.map +1 -0
  183. package/dist/cli/backend/src/services/v3/request-completion.js +311 -0
  184. package/dist/cli/backend/src/services/v3/request-completion.js.map +1 -0
  185. package/dist/cli/backend/src/services/v3/v3-data.service.d.ts +8 -0
  186. package/dist/cli/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
  187. package/dist/cli/backend/src/services/v3/v3-data.service.js +11 -1
  188. package/dist/cli/backend/src/services/v3/v3-data.service.js.map +1 -1
  189. package/dist/cli/backend/src/types/settings.types.d.ts +8 -0
  190. package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
  191. package/dist/cli/backend/src/types/settings.types.js +4 -0
  192. package/dist/cli/backend/src/types/settings.types.js.map +1 -1
  193. package/dist/cli/backend/src/utils/agent-reply-filter.utils.d.ts +75 -0
  194. package/dist/cli/backend/src/utils/agent-reply-filter.utils.d.ts.map +1 -0
  195. package/dist/cli/backend/src/utils/agent-reply-filter.utils.js +127 -0
  196. package/dist/cli/backend/src/utils/agent-reply-filter.utils.js.map +1 -0
  197. package/dist/cli/cli/src/commands/start.d.ts.map +1 -1
  198. package/dist/cli/cli/src/commands/start.js +14 -3
  199. package/dist/cli/cli/src/commands/start.js.map +1 -1
  200. package/dist/cli/cli/src/commands/update-status.d.ts +85 -0
  201. package/dist/cli/cli/src/commands/update-status.d.ts.map +1 -0
  202. package/dist/cli/cli/src/commands/update-status.js +162 -0
  203. package/dist/cli/cli/src/commands/update-status.js.map +1 -0
  204. package/dist/cli/cli/src/constants.d.ts +1 -1
  205. package/dist/cli/cli/src/constants.d.ts.map +1 -1
  206. package/dist/cli/cli/src/constants.js +1 -1
  207. package/dist/cli/cli/src/constants.js.map +1 -1
  208. package/dist/cli/cli/src/index.js +7 -0
  209. package/dist/cli/cli/src/index.js.map +1 -1
  210. package/dist/cli/cli/src/utils/backend-respawn.d.ts +50 -0
  211. package/dist/cli/cli/src/utils/backend-respawn.d.ts.map +1 -0
  212. package/dist/cli/cli/src/utils/backend-respawn.js +59 -0
  213. package/dist/cli/cli/src/utils/backend-respawn.js.map +1 -0
  214. package/dist/cli/config/constants.d.ts +56 -0
  215. package/dist/cli/config/constants.d.ts.map +1 -1
  216. package/dist/cli/config/constants.js +57 -0
  217. package/dist/cli/config/constants.js.map +1 -1
  218. package/dist/cli/config/index.d.ts +2 -2
  219. package/dist/cli/config/index.d.ts.map +1 -1
  220. package/dist/cli/config/index.js +2 -2
  221. package/dist/cli/config/index.js.map +1 -1
  222. package/frontend/dist/assets/{index-e05af897.js → index-71670b91.js} +22 -22
  223. package/frontend/dist/index.html +1 -1
  224. package/package.json +1 -1
  225. package/packages/crewly-agent/src/runtime/agent-runner.service.test.ts +39 -0
  226. package/packages/crewly-agent/src/runtime/agent-runner.service.ts +17 -17
  227. package/packages/crewly-agent/src/runtime/interactive-login-guard.test.ts +60 -0
  228. package/packages/crewly-agent/src/runtime/interactive-login-guard.ts +76 -0
  229. package/packages/crewly-agent/src/runtime/reply-tool-calls.test.ts +53 -0
  230. package/packages/crewly-agent/src/runtime/reply-tool-calls.ts +76 -0
  231. package/packages/crewly-agent/src/runtime/tool-registry.test.ts +8 -0
  232. package/packages/crewly-agent/src/runtime/tool-registry.ts +14 -0
@@ -17,6 +17,12 @@
17
17
  * looks like a code), the retry keyword, or a reply to an unrecognised
18
18
  * login screen. Everything else goes through the normal chat path.
19
19
  * - The broker's `update` / `finished` events.
20
+ * - {@link HarnessReloginService.startOwnerLogin} — the owner asked for a
21
+ * login: 「重新登录 claude」 in the orc DM (parsed by
22
+ * {@link HarnessReloginService.handleOwnerReply}, no LLM involved) or the
23
+ * orchestrator's `harness-login` skill. Such a flow is *forced*: it runs
24
+ * even when the harness is still logged in (switching accounts), skips the
25
+ * silent API-key path, and answers in the conversation it was asked in.
20
26
  *
21
27
  * Rules:
22
28
  * - One flow per harness. Repeated detections only add stuck sessions. A
@@ -39,6 +45,9 @@ import { getHarnessService } from './harness.service.js';
39
45
  import { SILENT_HARNESS_LOGGER, isHarnessId, isTerminalLoginState, } from './harness.types.js';
40
46
  import { LOGIN_BROKER_EVENTS } from './login-broker.service.js';
41
47
  import { redactSecrets } from './login-rules.js';
48
+ import { parseOwnerLoginRequest } from './owner-login-request.js';
49
+ /** A detected expiry: not forced, standard wording, master-bot DM. */
50
+ const EXPIRY_FLOW = { trigger: 'expiry', switchAccount: false, replyTarget: null };
42
51
  /** Harnesses the coordinator can log in (they have a broker method). */
43
52
  function hasBrokerLogin(harnessId) {
44
53
  return getBrokerLoginMethod(harnessId) !== undefined;
@@ -129,22 +138,40 @@ export function stripScreenReplyPrefix(reply) {
129
138
  }
130
139
  return null;
131
140
  }
141
+ /**
142
+ * First line of a login DM.
143
+ *
144
+ * @param harnessId - Harness
145
+ * @param waiting - Agents waiting on the login (expiry wording only)
146
+ * @param wording - Owner-requested / account switch
147
+ * @returns Slack mrkdwn line
148
+ */
149
+ function loginDmHeader(harnessId, waiting, wording) {
150
+ const name = displayName(harnessId);
151
+ if (!wording.ownerRequested)
152
+ return `*${name} 登录过期了。* ${describeWaitingAgents(waiting)}`;
153
+ return wording.switchAccount ? `*换账号登录 ${name}*` : `*登录 ${name}*`;
154
+ }
132
155
  /**
133
156
  * DM with the sign-in link (and Codex's one-time code on its own line).
134
157
  *
135
158
  * @param session - Broker session (never contains a secret)
136
159
  * @param waiting - Agents waiting on the login
160
+ * @param wording - Owner-requested / account-switch wording (default: expiry)
137
161
  * @returns Slack mrkdwn text
138
162
  */
139
- export function formatLinkDm(session, waiting) {
140
- const name = displayName(session.harnessId);
141
- const lines = [`*${name} 登录过期了。* ${describeWaitingAgents(waiting)}`, ''];
163
+ export function formatLinkDm(session, waiting, wording = {}) {
164
+ const lines = [loginDmHeader(session.harnessId, waiting, wording), ''];
142
165
  if (session.method === 'device') {
143
166
  lines.push('1. 在手机上打开这个链接:', session.url ?? '', '', '2. 输入这个验证码:', session.userCode ?? '', '');
167
+ if (wording.switchAccount)
168
+ lines.push('要换账号的话,先在打开的页面里切到要用的那个账号。');
144
169
  lines.push('在手机上完成登录就行,这边会自动继续。');
145
170
  }
146
171
  else {
147
172
  lines.push('1. 在手机上打开这个链接并授权:', session.url ?? '', '');
173
+ if (wording.switchAccount)
174
+ lines.push(' 要换账号的话,先在打开的页面里切到要用的那个账号再授权。', '');
148
175
  lines.push('2. 把授权后页面显示的代码直接回复在这里(只要代码)。', '');
149
176
  lines.push('Crewly 会自动填进去,agent 自己接着干。');
150
177
  }
@@ -155,12 +182,13 @@ export function formatLinkDm(session, waiting) {
155
182
  *
156
183
  * @param session - Broker session
157
184
  * @param waiting - Agents waiting on the login
185
+ * @param wording - Owner-requested / account-switch wording (default: expiry)
158
186
  * @returns Slack mrkdwn text
159
187
  */
160
- export function formatScreenDm(session, waiting) {
188
+ export function formatScreenDm(session, waiting, wording = {}) {
161
189
  const screen = safeForDm(session.screen, HARNESS_CONSTANTS.RELOGIN.DM_SCREEN_MAX_CHARS) || '(empty screen)';
162
190
  return [
163
- `*${displayName(session.harnessId)} 登录过期了。* ${describeWaitingAgents(waiting)}`,
191
+ loginDmHeader(session.harnessId, waiting, wording),
164
192
  '',
165
193
  'Crewly 已经启动了登录,但没认出它的界面。现在显示的是:',
166
194
  '```',
@@ -195,6 +223,48 @@ export function formatSuccessDm(harnessId, result) {
195
223
  }
196
224
  return text;
197
225
  }
226
+ /**
227
+ * One-line DM after an owner-requested login succeeded.
228
+ *
229
+ * @param harnessId - Harness
230
+ * @param result - Which agents were restarted onto the new login
231
+ * @returns Slack mrkdwn text
232
+ */
233
+ export function formatOwnerSuccessDm(harnessId, result) {
234
+ let text = `好了:${displayName(harnessId)} 已登录。`;
235
+ if (result.resumed.length > 0)
236
+ text += ` ${result.resumed.length} 个 agent 已重启,用上了新登录。`;
237
+ if (result.failed.length > 0)
238
+ text += ` 没能重启:${result.failed.join('、')}。`;
239
+ return text;
240
+ }
241
+ /** Harness names the owner can type, for the "which one?" reply. */
242
+ const WHICH_HARNESS_HINT = '回复「重新登录 claude」或「重新登录 codex」(要换账号就说「换个账号登录 claude」)。';
243
+ /**
244
+ * Reply to a login request that named no harness Crewly can log in.
245
+ *
246
+ * @param name - What the owner wrote, or null when they named none
247
+ * @returns Slack mrkdwn text
248
+ */
249
+ export function formatWhichHarnessDm(name) {
250
+ return name ? `Crewly 没有「${name}」这个编程助手。要登录哪个?${WHICH_HARNESS_HINT}` : `要登录哪个?${WHICH_HARNESS_HINT}`;
251
+ }
252
+ /**
253
+ * Reply for a harness that has no link login.
254
+ *
255
+ * @param harnessId - Harness without a broker login method
256
+ * @returns Slack mrkdwn text
257
+ */
258
+ export function formatNoBrokerLoginDm(harnessId) {
259
+ const name = displayName(harnessId);
260
+ if (harnessId === HARNESS_CONSTANTS.IDS.ANTIGRAVITY_CLI) {
261
+ return `${name} 用的是 Gemini API key,不走链接登录。在电脑上运行 \`crewly login antigravity\`,或者在 Crewly 设置页(Setup → 登录)填 key。`;
262
+ }
263
+ if (harnessId === HARNESS_CONSTANTS.IDS.GEMINI_CLI) {
264
+ return `${name} 只给企业版用,Crewly 没法帮它登录。${WHICH_HARNESS_HINT}`;
265
+ }
266
+ return `${name} 没有链接登录,Crewly 帮不了它。${WHICH_HARNESS_HINT}`;
267
+ }
198
268
  /**
199
269
  * DM after the login failed or timed out (sent once per failure).
200
270
  *
@@ -299,14 +369,91 @@ export class HarnessReloginService {
299
369
  return true;
300
370
  }
301
371
  /**
302
- * Offer an owner's Slack DM reply to the re-login flows.
372
+ * Offer an owner's Slack DM to the re-login coordinator.
373
+ *
374
+ * Consumed, in this order: the retry keyword (while a flow exists), a
375
+ * login code or screen reply for a running flow, and finally an owner
376
+ * login request (「重新登录 claude」, "relogin codex" — see
377
+ * {@link parseOwnerLoginRequest}), which starts a forced login answered in
378
+ * `target`.
303
379
  *
304
380
  * @param text - Reply text (never logged)
381
+ * @param target - Conversation the owner wrote in (answers go there)
305
382
  * @returns True when consumed; the caller must then NOT pass it on as a chat message
306
383
  */
307
- handleOwnerReply(text) {
308
- if (typeof text !== 'string' || this.flows.size === 0)
384
+ handleOwnerReply(text, target = null) {
385
+ if (typeof text !== 'string')
386
+ return false;
387
+ if (this.flows.size > 0 && this.consumeFlowReply(text))
388
+ return true;
389
+ const request = parseOwnerLoginRequest(text);
390
+ if (!request)
309
391
  return false;
392
+ void this.handleOwnerLoginRequest(request, target);
393
+ return true;
394
+ }
395
+ /**
396
+ * Start a login the owner asked for, through the broker: forced (runs
397
+ * even when the harness is still logged in — the owner may be switching
398
+ * accounts), no silent API key, answered in `replyTarget`. A flow already
399
+ * running for the harness is started over with a fresh link.
400
+ *
401
+ * @param harnessId - Harness to log in
402
+ * @param options - Account switch, reply target, who relayed the request
403
+ * @returns What happened (never throws)
404
+ */
405
+ startOwnerLogin(harnessId, options) {
406
+ if (!hasBrokerLogin(harnessId)) {
407
+ return { status: 'no_broker_login', harnessId, message: formatNoBrokerLoginDm(harnessId) };
408
+ }
409
+ const existing = this.flows.get(harnessId);
410
+ const stuck = existing ? new Set(existing.stuck) : new Set();
411
+ if (existing) {
412
+ this.clearScreenTimer(existing);
413
+ this.cancelOwnSession(existing);
414
+ if (this.flows.get(harnessId) === existing)
415
+ this.flows.delete(harnessId);
416
+ }
417
+ // The owner asked: a quiet period after the last login must not swallow it.
418
+ this.quietUntil.delete(harnessId);
419
+ this.logger.info('Owner-requested login started', {
420
+ harnessId,
421
+ requestedBy: options.requestedBy,
422
+ switchAccount: options.switchAccount === true,
423
+ restarted: Boolean(existing),
424
+ answersInThread: Boolean(options.replyTarget),
425
+ });
426
+ this.begin(harnessId, stuck, {
427
+ trigger: 'owner',
428
+ switchAccount: options.switchAccount === true,
429
+ replyTarget: options.replyTarget ?? null,
430
+ });
431
+ const dmAvailable = this.notifier ? (this.notifier.isAvailable?.() ?? true) : false;
432
+ return { status: existing ? 'restarted' : 'started', harnessId, dmAvailable };
433
+ }
434
+ /**
435
+ * Act on a parsed owner login request from the DM.
436
+ *
437
+ * @param request - Parsed request
438
+ * @param target - Conversation to answer in
439
+ */
440
+ async handleOwnerLoginRequest(request, target) {
441
+ if (request.kind === 'unknown') {
442
+ await this.notify(formatWhichHarnessDm(request.name), target);
443
+ return;
444
+ }
445
+ const result = this.startOwnerLogin(request.harnessId, { switchAccount: request.switchAccount, replyTarget: target, requestedBy: 'owner_dm' });
446
+ if (result.status === 'no_broker_login')
447
+ await this.notify(result.message, target);
448
+ }
449
+ /**
450
+ * Offer a DM to the running flows: the retry keyword, a login code, or a
451
+ * reply to an unrecognised screen.
452
+ *
453
+ * @param text - Reply text (never logged)
454
+ * @returns True when consumed
455
+ */
456
+ consumeFlowReply(text) {
310
457
  if (isRetryKeyword(text)) {
311
458
  const flows = [...this.flows.values()];
312
459
  const failed = flows.filter((flow) => flow.phase === 'failed');
@@ -420,8 +567,9 @@ export class HarnessReloginService {
420
567
  *
421
568
  * @param harnessId - Harness
422
569
  * @param stuck - Sessions known to be stuck
570
+ * @param options - Trigger, wording and reply target (default: a detected expiry)
423
571
  */
424
- begin(harnessId, stuck) {
572
+ begin(harnessId, stuck, options = EXPIRY_FLOW) {
425
573
  const flow = {
426
574
  harnessId,
427
575
  phase: 'running',
@@ -434,6 +582,9 @@ export class HarnessReloginService {
434
582
  lastRejection: null,
435
583
  screenTimer: null,
436
584
  cancelledByUs: false,
585
+ trigger: options.trigger,
586
+ switchAccount: options.switchAccount,
587
+ replyTarget: options.replyTarget,
437
588
  };
438
589
  // Registered synchronously: this is the per-harness debounce.
439
590
  this.flows.set(harnessId, flow);
@@ -445,6 +596,12 @@ export class HarnessReloginService {
445
596
  * @param flow - The flow
446
597
  */
447
598
  async run(flow) {
599
+ // The owner asked for this login (possibly to switch accounts): no
600
+ // "still logged in" check and no silent API key — they want the link.
601
+ if (flow.trigger === 'owner') {
602
+ this.startBrokerSession(flow);
603
+ return;
604
+ }
448
605
  // An agent's "401" is not proof the login expired — a bad API key or
449
606
  // text typed into the sign-in screen gives one too. Starting a login
450
607
  // then *logs the harness out* (`codex login` clears its credentials):
@@ -464,6 +621,14 @@ export class HarnessReloginService {
464
621
  return;
465
622
  if (this.flows.get(flow.harnessId) !== flow)
466
623
  return;
624
+ this.startBrokerSession(flow);
625
+ }
626
+ /**
627
+ * Start (or adopt) the harness's broker login session for a flow.
628
+ *
629
+ * @param flow - The flow
630
+ */
631
+ startBrokerSession(flow) {
467
632
  const method = getBrokerLoginMethod(flow.harnessId);
468
633
  if (!method)
469
634
  return;
@@ -475,14 +640,14 @@ export class HarnessReloginService {
475
640
  const reason = error instanceof Error ? error.message : String(error);
476
641
  this.logger.warn('Re-login: could not start the login', { harnessId: flow.harnessId, error: reason });
477
642
  flow.phase = 'failed';
478
- await this.dm(flow, formatFailureDm(flow.harnessId, `Crewly 没能启动登录(${reason})`));
643
+ void this.dm(flow, formatFailureDm(flow.harnessId, `Crewly 没能启动登录(${reason})`));
479
644
  return;
480
645
  }
481
646
  flow.sessionId = session.id;
482
647
  flow.startedAt = Date.parse(session.startedAt) || this.now();
483
648
  flow.screenTimer = setTimeout(() => void this.sendScreenIfUnrecognised(flow), HARNESS_CONSTANTS.RELOGIN.UNRECOGNISED_SCREEN_MS);
484
649
  flow.screenTimer.unref?.();
485
- this.logger.info('Re-login broker session started', { harnessId: flow.harnessId, sessionId: session.id, method: method.id });
650
+ this.logger.info('Re-login broker session started', { harnessId: flow.harnessId, sessionId: session.id, method: method.id, trigger: flow.trigger });
486
651
  // The broker may hand back a session that already shows its link.
487
652
  if (isTerminalLoginState(session.state))
488
653
  this.handleFinished(session);
@@ -543,7 +708,7 @@ export class HarnessReloginService {
543
708
  if (flow.dm !== 'link' && linkReady) {
544
709
  flow.dm = 'link';
545
710
  this.clearScreenTimer(flow);
546
- void this.dm(flow, formatLinkDm(session, this.waitingAgents(flow)));
711
+ void this.dm(flow, formatLinkDm(session, this.waitingAgents(flow), this.wordingOf(flow)));
547
712
  return;
548
713
  }
549
714
  if (flow.replied && session.state === 'awaiting_user' && session.message && session.message !== flow.lastRejection) {
@@ -613,8 +778,10 @@ export class HarnessReloginService {
613
778
  for (const name of result.resumed)
614
779
  this.mutedScreens.add(name);
615
780
  this.logger.info('Re-login finished', { harnessId: flow.harnessId, resumed: result.resumed.length, failed: result.failed.length });
616
- if (notify)
617
- await this.dm(flow, formatSuccessDm(flow.harnessId, result));
781
+ if (notify) {
782
+ const text = flow.trigger === 'owner' ? formatOwnerSuccessDm(flow.harnessId, result) : formatSuccessDm(flow.harnessId, result);
783
+ await this.dm(flow, text);
784
+ }
618
785
  }
619
786
  /**
620
787
  * Start a flow over (retry keyword or re-reminder).
@@ -626,7 +793,20 @@ export class HarnessReloginService {
626
793
  this.cancelOwnSession(flow);
627
794
  if (this.flows.get(flow.harnessId) === flow)
628
795
  this.flows.delete(flow.harnessId);
629
- this.begin(flow.harnessId, new Set(flow.stuck));
796
+ this.begin(flow.harnessId, new Set(flow.stuck), {
797
+ trigger: flow.trigger,
798
+ switchAccount: flow.switchAccount,
799
+ replyTarget: flow.replyTarget,
800
+ });
801
+ }
802
+ /**
803
+ * DM wording for a flow.
804
+ *
805
+ * @param flow - The flow
806
+ * @returns Owner-requested / account-switch flags
807
+ */
808
+ wordingOf(flow) {
809
+ return { ownerRequested: flow.trigger === 'owner', switchAccount: flow.switchAccount };
630
810
  }
631
811
  /**
632
812
  * Cancel the flow's live broker session, marking it as cancelled by the
@@ -659,7 +839,7 @@ export class HarnessReloginService {
659
839
  return;
660
840
  flow.dm = 'screen';
661
841
  this.logger.warn('Re-login: login screen not recognised, sending it to the owner', { harnessId: flow.harnessId, sessionId: session.id });
662
- await this.dm(flow, formatScreenDm(session, this.waitingAgents(flow)));
842
+ await this.dm(flow, formatScreenDm(session, this.waitingAgents(flow), this.wordingOf(flow)));
663
843
  }
664
844
  /**
665
845
  * Agents waiting on a flow: the stuck ones, else every session of the harness.
@@ -685,18 +865,28 @@ export class HarnessReloginService {
685
865
  */
686
866
  async dm(flow, text) {
687
867
  flow.lastDmAt = this.now();
868
+ await this.notify(text, flow.replyTarget, flow.harnessId);
869
+ }
870
+ /**
871
+ * Send a message to the owner (logs when no notifier is wired; never logs the text).
872
+ *
873
+ * @param text - DM text
874
+ * @param target - Conversation to answer in (null = master-bot DM)
875
+ * @param harnessId - Harness, for logs
876
+ */
877
+ async notify(text, target, harnessId) {
688
878
  if (!this.notifier) {
689
- this.logger.warn('Re-login: no Slack DM path to the owner; finish the login from Setup', { harnessId: flow.harnessId });
879
+ this.logger.warn('Re-login: no Slack DM path to the owner; finish the login from Setup', { harnessId });
690
880
  return;
691
881
  }
692
882
  try {
693
- const delivered = await this.notifier.sendToOwner(text);
883
+ const delivered = await this.notifier.sendToOwner(text, target);
694
884
  if (!delivered)
695
- this.logger.warn('Re-login: the owner DM was not delivered', { harnessId: flow.harnessId });
885
+ this.logger.warn('Re-login: the owner DM was not delivered', { harnessId });
696
886
  }
697
887
  catch (error) {
698
888
  this.logger.warn('Re-login: sending the owner DM failed', {
699
- harnessId: flow.harnessId,
889
+ harnessId,
700
890
  error: error instanceof Error ? error.message : String(error),
701
891
  });
702
892
  }
@@ -1 +1 @@
1
- {"version":3,"file":"harness-relogin.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/harness/harness-relogin.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"harness-relogin.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/harness/harness-relogin.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Owner login requests — recognising "log harness X in" in plain words.
3
+ *
4
+ * Two consumers:
5
+ * - {@link parseOwnerLoginRequest}: the Slack DM interceptor. An owner who
6
+ * writes 「重新登录 claude」, 「换个账号登录 claude」 or "relogin codex" in the
7
+ * orchestrator's DM gets the login flow directly, without the LLM. The
8
+ * match is deliberately strict — the whole message must be the request —
9
+ * so a sentence that merely mentions a login still goes to the orc.
10
+ * - {@link isOwnerLoginRequestEvidence}: the orchestrator's `harness-login`
11
+ * skill. The orc may start a login only when a real owner message asked for
12
+ * one; this is the evidence check over the owner's recent messages.
13
+ *
14
+ * Incident 2026-09-26: the orc ran `claude setup-token` in its one-shot bash
15
+ * tool (the process died with the call, every pasted code went stale) and
16
+ * then claimed several times that it had sent a new link. The broker-backed
17
+ * flow started from here keeps the login alive in its own PTY.
18
+ *
19
+ * @module services/harness/owner-login-request
20
+ */
21
+ import type { HarnessId } from './harness.types.js';
22
+ /** A recognised owner login request. */
23
+ export type OwnerLoginRequest =
24
+ /** A known harness (it may still have no broker login — Antigravity, Gemini). */
25
+ {
26
+ kind: 'harness';
27
+ harnessId: HarnessId;
28
+ switchAccount: boolean;
29
+ }
30
+ /** A login request without a harness Crewly knows; `name` is what was written, or null. */
31
+ | {
32
+ kind: 'unknown';
33
+ name: string | null;
34
+ switchAccount: boolean;
35
+ };
36
+ /**
37
+ * Normalise a DM for matching: drop Slack mention/link markup, collapse
38
+ * whitespace, lower-case, trim.
39
+ *
40
+ * @param text - Raw message text
41
+ * @returns Normalised text
42
+ */
43
+ export declare function normaliseLoginText(text: string): string;
44
+ /**
45
+ * Resolve a harness name or alias as written by a person.
46
+ *
47
+ * @param name - e.g. "claude code", "Claude", "agy", "codex cli"
48
+ * @returns The harness id, or null
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * resolveHarnessName('claude code'); // 'claude-code'
53
+ * ```
54
+ */
55
+ export declare function resolveHarnessName(name: string): HarnessId | null;
56
+ /**
57
+ * Recognise an owner's DM that asks Crewly to log a harness in (or switch
58
+ * its account). The whole message must be the request; anything longer or
59
+ * different returns null and is handled by the orchestrator as usual.
60
+ *
61
+ * @param text - Owner DM text
62
+ * @returns The request, or null when the message is not a login request
63
+ *
64
+ * @example
65
+ * ```ts
66
+ * parseOwnerLoginRequest('换个账号登录 claude');
67
+ * // { kind: 'harness', harnessId: 'claude-code', switchAccount: true }
68
+ * parseOwnerLoginRequest('重新登录');
69
+ * // { kind: 'unknown', name: null, switchAccount: false }
70
+ * ```
71
+ */
72
+ export declare function parseOwnerLoginRequest(text: string): OwnerLoginRequest | null;
73
+ /**
74
+ * Whether one owner message asks for a (re-)login of a harness. Mirrors the
75
+ * install-skill approval check: the orchestrator's claim is not trusted, the
76
+ * owner's own words are.
77
+ *
78
+ * Counts a message with a login verb that either names this harness or names
79
+ * none (「不 我要重新登陆一个账号」 in a conversation about Claude). A message
80
+ * naming only other harnesses, or a status question, does not count.
81
+ *
82
+ * @param message - Owner message text
83
+ * @param harnessId - Harness the orchestrator wants to log in
84
+ * @returns True when the message is evidence for that login
85
+ */
86
+ export declare function isOwnerLoginRequestEvidence(message: string, harnessId: HarnessId): boolean;
87
+ //# sourceMappingURL=owner-login-request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-login-request.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/harness/owner-login-request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wCAAwC;AACxC,MAAM,MAAM,iBAAiB;AAC5B,iFAAiF;AAC/E;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE;AACnE,2FAA2F;GACzF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,CAAC;AAoEpE;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQvD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAMjE;AAmBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAmB7E;AAUD;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAO1F"}