openryoko 2026.5.13 → 2026.5.28

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 (184) hide show
  1. package/dist/package.json +1 -1
  2. package/dist/src/cli/__tests__/migrate.test.js +14 -0
  3. package/dist/src/cli/__tests__/migrate.test.js.map +1 -1
  4. package/dist/src/cli/migrate.js +9 -4
  5. package/dist/src/cli/migrate.js.map +1 -1
  6. package/dist/src/connectors/slack/__tests__/agents-canvas.test.js +133 -2
  7. package/dist/src/connectors/slack/__tests__/agents-canvas.test.js.map +1 -1
  8. package/dist/src/connectors/slack/__tests__/goal-extractor.test.js +40 -1
  9. package/dist/src/connectors/slack/__tests__/goal-extractor.test.js.map +1 -1
  10. package/dist/src/connectors/slack/__tests__/threads.test.d.ts +2 -0
  11. package/dist/src/connectors/slack/__tests__/threads.test.d.ts.map +1 -0
  12. package/dist/src/connectors/slack/__tests__/threads.test.js +61 -0
  13. package/dist/src/connectors/slack/__tests__/threads.test.js.map +1 -0
  14. package/dist/src/connectors/slack/__tests__/triage.test.js +26 -1
  15. package/dist/src/connectors/slack/__tests__/triage.test.js.map +1 -1
  16. package/dist/src/connectors/slack/agents-canvas.d.ts +2 -0
  17. package/dist/src/connectors/slack/agents-canvas.d.ts.map +1 -1
  18. package/dist/src/connectors/slack/agents-canvas.js +49 -10
  19. package/dist/src/connectors/slack/agents-canvas.js.map +1 -1
  20. package/dist/src/connectors/slack/goal-extractor.d.ts +10 -4
  21. package/dist/src/connectors/slack/goal-extractor.d.ts.map +1 -1
  22. package/dist/src/connectors/slack/goal-extractor.js +10 -81
  23. package/dist/src/connectors/slack/goal-extractor.js.map +1 -1
  24. package/dist/src/connectors/slack/index.d.ts +4 -0
  25. package/dist/src/connectors/slack/index.d.ts.map +1 -1
  26. package/dist/src/connectors/slack/index.js +16 -4
  27. package/dist/src/connectors/slack/index.js.map +1 -1
  28. package/dist/src/connectors/slack/threads.d.ts.map +1 -1
  29. package/dist/src/connectors/slack/threads.js +10 -2
  30. package/dist/src/connectors/slack/threads.js.map +1 -1
  31. package/dist/src/connectors/slack/triage.d.ts +5 -2
  32. package/dist/src/connectors/slack/triage.d.ts.map +1 -1
  33. package/dist/src/connectors/slack/triage.js +8 -81
  34. package/dist/src/connectors/slack/triage.js.map +1 -1
  35. package/dist/src/engines/__tests__/codex.test.d.ts +2 -0
  36. package/dist/src/engines/__tests__/codex.test.d.ts.map +1 -0
  37. package/dist/src/engines/__tests__/codex.test.js +85 -0
  38. package/dist/src/engines/__tests__/codex.test.js.map +1 -0
  39. package/dist/src/engines/codex.d.ts.map +1 -1
  40. package/dist/src/engines/codex.js +10 -2
  41. package/dist/src/engines/codex.js.map +1 -1
  42. package/dist/src/gateway/__tests__/costs.test.js +8 -8
  43. package/dist/src/gateway/__tests__/costs.test.js.map +1 -1
  44. package/dist/src/gateway/api.d.ts.map +1 -1
  45. package/dist/src/gateway/api.js +8 -1
  46. package/dist/src/gateway/api.js.map +1 -1
  47. package/dist/src/gateway/server.d.ts.map +1 -1
  48. package/dist/src/gateway/server.js +6 -0
  49. package/dist/src/gateway/server.js.map +1 -1
  50. package/dist/src/mcp/__tests__/current-conversation.test.d.ts +2 -0
  51. package/dist/src/mcp/__tests__/current-conversation.test.d.ts.map +1 -0
  52. package/dist/src/mcp/__tests__/current-conversation.test.js +55 -0
  53. package/dist/src/mcp/__tests__/current-conversation.test.js.map +1 -0
  54. package/dist/src/mcp/__tests__/resolver.test.d.ts +2 -0
  55. package/dist/src/mcp/__tests__/resolver.test.d.ts.map +1 -0
  56. package/dist/src/mcp/__tests__/resolver.test.js +24 -0
  57. package/dist/src/mcp/__tests__/resolver.test.js.map +1 -0
  58. package/dist/src/mcp/current-conversation.d.ts +13 -0
  59. package/dist/src/mcp/current-conversation.d.ts.map +1 -0
  60. package/dist/src/mcp/current-conversation.js +28 -0
  61. package/dist/src/mcp/current-conversation.js.map +1 -0
  62. package/dist/src/mcp/gateway-server.js +5 -1
  63. package/dist/src/mcp/gateway-server.js.map +1 -1
  64. package/dist/src/mcp/resolver.d.ts +6 -1
  65. package/dist/src/mcp/resolver.d.ts.map +1 -1
  66. package/dist/src/mcp/resolver.js +6 -3
  67. package/dist/src/mcp/resolver.js.map +1 -1
  68. package/dist/src/sessions/__tests__/slash-commands.test.d.ts +2 -0
  69. package/dist/src/sessions/__tests__/slash-commands.test.d.ts.map +1 -0
  70. package/dist/src/sessions/__tests__/slash-commands.test.js +32 -0
  71. package/dist/src/sessions/__tests__/slash-commands.test.js.map +1 -0
  72. package/dist/src/sessions/context.js +12 -7
  73. package/dist/src/sessions/context.js.map +1 -1
  74. package/dist/src/sessions/manager.d.ts +9 -0
  75. package/dist/src/sessions/manager.d.ts.map +1 -1
  76. package/dist/src/sessions/manager.js +21 -1
  77. package/dist/src/sessions/manager.js.map +1 -1
  78. package/dist/src/shared/__tests__/version.test.d.ts +2 -0
  79. package/dist/src/shared/__tests__/version.test.d.ts.map +1 -0
  80. package/dist/src/shared/__tests__/version.test.js +16 -0
  81. package/dist/src/shared/__tests__/version.test.js.map +1 -0
  82. package/dist/src/shared/oneShotCli.d.ts +14 -0
  83. package/dist/src/shared/oneShotCli.d.ts.map +1 -0
  84. package/dist/src/shared/oneShotCli.js +115 -0
  85. package/dist/src/shared/oneShotCli.js.map +1 -0
  86. package/dist/src/shared/types.d.ts +18 -2
  87. package/dist/src/shared/types.d.ts.map +1 -1
  88. package/dist/src/shared/version.d.ts +10 -2
  89. package/dist/src/shared/version.d.ts.map +1 -1
  90. package/dist/src/shared/version.js +19 -6
  91. package/dist/src/shared/version.js.map +1 -1
  92. package/dist/web/404.html +1 -1
  93. package/dist/web/__next.__PAGE__.txt +1 -1
  94. package/dist/web/__next._full.txt +1 -1
  95. package/dist/web/__next._head.txt +1 -1
  96. package/dist/web/__next._index.txt +1 -1
  97. package/dist/web/__next._tree.txt +1 -1
  98. package/dist/web/_next/static/chunks/01zi0k4uxn.73.js +1 -0
  99. package/dist/web/_not-found/__next._full.txt +1 -1
  100. package/dist/web/_not-found/__next._head.txt +1 -1
  101. package/dist/web/_not-found/__next._index.txt +1 -1
  102. package/dist/web/_not-found/__next._not-found.__PAGE__.txt +1 -1
  103. package/dist/web/_not-found/__next._not-found.txt +1 -1
  104. package/dist/web/_not-found/__next._tree.txt +1 -1
  105. package/dist/web/_not-found.html +1 -1
  106. package/dist/web/_not-found.txt +1 -1
  107. package/dist/web/chat/__next._full.txt +1 -1
  108. package/dist/web/chat/__next._head.txt +1 -1
  109. package/dist/web/chat/__next._index.txt +1 -1
  110. package/dist/web/chat/__next._tree.txt +1 -1
  111. package/dist/web/chat/__next.chat.__PAGE__.txt +1 -1
  112. package/dist/web/chat/__next.chat.txt +1 -1
  113. package/dist/web/chat.html +1 -1
  114. package/dist/web/chat.txt +1 -1
  115. package/dist/web/cron/__next._full.txt +1 -1
  116. package/dist/web/cron/__next._head.txt +1 -1
  117. package/dist/web/cron/__next._index.txt +1 -1
  118. package/dist/web/cron/__next._tree.txt +1 -1
  119. package/dist/web/cron/__next.cron.__PAGE__.txt +1 -1
  120. package/dist/web/cron/__next.cron.txt +1 -1
  121. package/dist/web/cron.html +1 -1
  122. package/dist/web/cron.txt +1 -1
  123. package/dist/web/index.html +1 -1
  124. package/dist/web/index.txt +1 -1
  125. package/dist/web/kanban/__next._full.txt +1 -1
  126. package/dist/web/kanban/__next._head.txt +1 -1
  127. package/dist/web/kanban/__next._index.txt +1 -1
  128. package/dist/web/kanban/__next._tree.txt +1 -1
  129. package/dist/web/kanban/__next.kanban.__PAGE__.txt +1 -1
  130. package/dist/web/kanban/__next.kanban.txt +1 -1
  131. package/dist/web/kanban.html +1 -1
  132. package/dist/web/kanban.txt +1 -1
  133. package/dist/web/logs/__next._full.txt +1 -1
  134. package/dist/web/logs/__next._head.txt +1 -1
  135. package/dist/web/logs/__next._index.txt +1 -1
  136. package/dist/web/logs/__next._tree.txt +1 -1
  137. package/dist/web/logs/__next.logs.__PAGE__.txt +1 -1
  138. package/dist/web/logs/__next.logs.txt +1 -1
  139. package/dist/web/logs.html +1 -1
  140. package/dist/web/logs.txt +1 -1
  141. package/dist/web/org/__next._full.txt +1 -1
  142. package/dist/web/org/__next._head.txt +1 -1
  143. package/dist/web/org/__next._index.txt +1 -1
  144. package/dist/web/org/__next._tree.txt +1 -1
  145. package/dist/web/org/__next.org.__PAGE__.txt +1 -1
  146. package/dist/web/org/__next.org.txt +1 -1
  147. package/dist/web/org.html +1 -1
  148. package/dist/web/org.txt +1 -1
  149. package/dist/web/sessions/__next._full.txt +1 -1
  150. package/dist/web/sessions/__next._head.txt +1 -1
  151. package/dist/web/sessions/__next._index.txt +1 -1
  152. package/dist/web/sessions/__next._tree.txt +1 -1
  153. package/dist/web/sessions/__next.sessions.__PAGE__.txt +1 -1
  154. package/dist/web/sessions/__next.sessions.txt +1 -1
  155. package/dist/web/sessions.html +1 -1
  156. package/dist/web/sessions.txt +1 -1
  157. package/dist/web/settings/__next._full.txt +2 -2
  158. package/dist/web/settings/__next._head.txt +1 -1
  159. package/dist/web/settings/__next._index.txt +1 -1
  160. package/dist/web/settings/__next._tree.txt +1 -1
  161. package/dist/web/settings/__next.settings.__PAGE__.txt +2 -2
  162. package/dist/web/settings/__next.settings.txt +1 -1
  163. package/dist/web/settings.html +1 -1
  164. package/dist/web/settings.txt +2 -2
  165. package/dist/web/skills/__next._full.txt +1 -1
  166. package/dist/web/skills/__next._head.txt +1 -1
  167. package/dist/web/skills/__next._index.txt +1 -1
  168. package/dist/web/skills/__next._tree.txt +1 -1
  169. package/dist/web/skills/__next.skills.__PAGE__.txt +1 -1
  170. package/dist/web/skills/__next.skills.txt +1 -1
  171. package/dist/web/skills.html +1 -1
  172. package/dist/web/skills.txt +1 -1
  173. package/package.json +1 -1
  174. package/template/config.default.yaml +10 -1
  175. package/template/migrations/2026.5.7/MIGRATION.md +5 -1
  176. package/template/migrations/2026.5.7/files/AGENTS.md +344 -0
  177. package/template/migrations/2026.5.7/files/CLAUDE.md +351 -0
  178. package/template/migrations/2026.5.7/files/skills/migrate/SKILL.md +161 -0
  179. package/template/migrations/2026.5.7/files/skills/onboarding/SKILL.md +153 -0
  180. package/template/skills/migrate/SKILL.md +2 -2
  181. package/dist/web/_next/static/chunks/0kceasmxfr3s1.js +0 -1
  182. /package/dist/web/_next/static/{2gkySyM5UoStZGUIrVpRy → bNLmW65Gsur_aLrJJh98i}/_buildManifest.js +0 -0
  183. /package/dist/web/_next/static/{2gkySyM5UoStZGUIrVpRy → bNLmW65Gsur_aLrJJh98i}/_clientMiddlewareManifest.js +0 -0
  184. /package/dist/web/_next/static/{2gkySyM5UoStZGUIrVpRy → bNLmW65Gsur_aLrJJh98i}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"threads.js","sourceRoot":"","sources":["../../../../src/connectors/slack/threads.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;QAChC,OAAO,YAAY,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;IAC/C,CAAC;IAED,gEAAgE;IAChE,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC;QACpD,OAAO,SAAS,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;IACrD,CAAC;IAED,6DAA6D;IAC7D,OAAO,SAAS,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAA4B;IAC5D,uEAAuE;IACvE,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;QAChC,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,KAAK,CAAC,EAAE,IAAI,IAAI;SAC5B,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,kEAAkE;IAClE,qEAAqE;IACrE,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE;QAC5D,CAAC,CAAC,KAAK,CAAC,SAAS;QACjB,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC;IAErB,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM;QACN,SAAS,EAAE,KAAK,CAAC,EAAE,IAAI,IAAI;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAsB,EAAE,UAAkB;IAC1E,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IACtB,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,IAAI,GAAG,IAAI,GAAG,UAAU,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"threads.js","sourceRoot":"","sources":["../../../../src/connectors/slack/threads.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;QAChC,sEAAsE;QACtE,iEAAiE;QACjE,kEAAkE;QAClE,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC;YACpD,OAAO,YAAY,KAAK,CAAC,IAAI,IAAI,SAAS,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAClE,CAAC;QACD,OAAO,YAAY,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;IAC/C,CAAC;IAED,gEAAgE;IAChE,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC;QACpD,OAAO,SAAS,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;IACrD,CAAC;IAED,6DAA6D;IAC7D,OAAO,SAAS,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAA4B;IAC5D,2EAA2E;IAC3E,4EAA4E;IAC5E,yCAAyC;IACzC,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;QAChC,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YAChF,SAAS,EAAE,KAAK,CAAC,EAAE,IAAI,IAAI;SAC5B,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,kEAAkE;IAClE,qEAAqE;IACrE,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,EAAE;QAC5D,CAAC,CAAC,KAAK,CAAC,SAAS;QACjB,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC;IAErB,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM;QACN,SAAS,EAAE,KAAK,CAAC,EAAE,IAAI,IAAI;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAsB,EAAE,UAAkB;IAC1E,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IACtB,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,IAAI,GAAG,IAAI,GAAG,UAAU,CAAC;AAClC,CAAC"}
@@ -9,11 +9,14 @@
9
9
  * engine from running on messages that don't actually want a reply.
10
10
  */
11
11
  import { spawn } from "node:child_process";
12
+ import { type OneShotEngine } from "../../shared/oneShotCli.js";
12
13
  import { type TriageDecision, type TriagePromptInput } from "./triage-prompt.js";
13
14
  export interface TriageRunnerOptions {
14
- /** Binary to invoke — defaults to "claude" */
15
+ /** CLI engine to use for triage. Defaults to "codex"; "claude" is supported. */
16
+ engine?: OneShotEngine;
17
+ /** Binary to invoke — defaults to the selected engine's CLI. */
15
18
  bin?: string;
16
- /** Model to use for the triage call (e.g. "claude-haiku-4-5") */
19
+ /** Model to use for the triage call (e.g. "claude-haiku-4-5" or "gpt-5-nano") */
17
20
  model?: string;
18
21
  /** Soft timeout before we fall back to the fail-open action */
19
22
  timeoutMs?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"triage.d.ts","sourceRoot":"","sources":["../../../../src/connectors/slack/triage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAI3C,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,mBAAmB;IAClC,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CACrC;AAUD;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,KAAK,EAAE,iBAAiB,EACxB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,cAAc,CAAC,CAyBzB"}
1
+ {"version":3,"file":"triage.d.ts","sourceRoot":"","sources":["../../../../src/connectors/slack/triage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,mBAAmB;IAClC,gFAAgF;IAChF,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,gEAAgE;IAChE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CACrC;AAQD;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,KAAK,EAAE,iBAAiB,EACxB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,cAAc,CAAC,CA4BzB"}
@@ -10,16 +10,13 @@
10
10
  */
11
11
  import { spawn } from "node:child_process";
12
12
  import { logger } from "../../shared/logger.js";
13
- import { resolveBin, formatSpawnError } from "../../shared/resolveBin.js";
14
- import { buildChildEnv } from "../../shared/childEnv.js";
13
+ import { defaultBinForEngine, defaultModelForEngine, invokeOneShot, } from "../../shared/oneShotCli.js";
15
14
  import { buildTriagePrompt, parseTriageDecision, } from "./triage-prompt.js";
16
- // Triage spawns the Claude CLI which has a 3–5s startup overhead before it
15
+ // Triage spawns a CLI which has a 3–5s startup overhead before it
17
16
  // even hits the API; combined with Haiku latency variance, an 8s budget was
18
17
  // causing routine timeouts in production. 30s gives headroom for slow days
19
18
  // while still being short enough that the user notices triage isn't free.
20
19
  const DEFAULT_TIMEOUT_MS = 30000;
21
- const DEFAULT_MODEL = "claude-haiku-4-5";
22
- const DEFAULT_BIN = "claude";
23
20
  /**
24
21
  * Run a triage decision. Never throws — on error returns a fail-open fallback
25
22
  * decision ("reply") so a failing triage cannot silently drop a real message.
@@ -28,17 +25,20 @@ const DEFAULT_BIN = "claude";
28
25
  */
29
26
  export async function runTriage(input, options = {}) {
30
27
  const prompt = buildTriagePrompt(input);
31
- const bin = options.bin || DEFAULT_BIN;
32
- const model = options.model || DEFAULT_MODEL;
28
+ const engine = options.engine ?? "codex";
29
+ const bin = options.bin || defaultBinForEngine(engine);
30
+ const model = options.model || defaultModelForEngine(engine);
33
31
  const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
34
32
  const spawnFn = options.spawnImpl || spawn;
35
33
  const failOpenAction = options.failOpenAction ?? "reply";
36
34
  try {
37
- const output = await invokeClaudeOneShot(prompt, {
35
+ const output = await invokeOneShot(prompt, {
36
+ engine,
38
37
  bin,
39
38
  model,
40
39
  timeoutMs,
41
40
  spawnFn,
41
+ label: "triage",
42
42
  });
43
43
  const decision = parseTriageDecision(output);
44
44
  if (!decision) {
@@ -52,77 +52,4 @@ export async function runTriage(input, options = {}) {
52
52
  return { action: failOpenAction, reason: "triage_error" };
53
53
  }
54
54
  }
55
- async function invokeClaudeOneShot(prompt, opts) {
56
- return new Promise((resolve, reject) => {
57
- const args = [
58
- "-p",
59
- "--output-format",
60
- "json",
61
- "--model",
62
- opts.model,
63
- "--dangerously-skip-permissions",
64
- prompt,
65
- ];
66
- const resolvedBin = resolveBin(opts.bin);
67
- const proc = opts.spawnFn(resolvedBin, args, {
68
- stdio: ["ignore", "pipe", "pipe"],
69
- env: buildChildEnv(),
70
- });
71
- let stdout = "";
72
- let stderr = "";
73
- let settled = false;
74
- const timer = setTimeout(() => {
75
- if (settled)
76
- return;
77
- settled = true;
78
- try {
79
- proc.kill("SIGTERM");
80
- }
81
- catch { /* ignore */ }
82
- reject(new Error(`triage timed out after ${opts.timeoutMs}ms`));
83
- }, opts.timeoutMs);
84
- proc.stdout?.on("data", (chunk) => {
85
- stdout += chunk.toString("utf8");
86
- });
87
- proc.stderr?.on("data", (chunk) => {
88
- stderr += chunk.toString("utf8");
89
- });
90
- proc.on("error", (err) => {
91
- if (settled)
92
- return;
93
- settled = true;
94
- clearTimeout(timer);
95
- reject(new Error(formatSpawnError("triage CLI", opts.bin, err)));
96
- });
97
- proc.on("close", (code) => {
98
- if (settled)
99
- return;
100
- settled = true;
101
- clearTimeout(timer);
102
- if (code !== 0) {
103
- reject(new Error(`claude exited ${code}: ${stderr.slice(0, 500)}`));
104
- return;
105
- }
106
- resolve(extractClaudeResult(stdout));
107
- });
108
- });
109
- }
110
- /**
111
- * Claude Code's `--output-format json` wraps the model's response in an
112
- * envelope like `{ "type": "result", "result": "...", ... }`. Strip that
113
- * if present; otherwise return the raw stdout unchanged.
114
- */
115
- function extractClaudeResult(stdout) {
116
- const trimmed = stdout.trim();
117
- if (!trimmed)
118
- return "";
119
- try {
120
- const parsed = JSON.parse(trimmed);
121
- if (parsed && typeof parsed === "object" && typeof parsed.result === "string") {
122
- return parsed.result;
123
- }
124
- }
125
- catch { /* fall through */ }
126
- return trimmed;
127
- }
128
55
  //# sourceMappingURL=triage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"triage.js","sourceRoot":"","sources":["../../../../src/connectors/slack/triage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"triage.js","sourceRoot":"","sources":["../../../../src/connectors/slack/triage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,GAEd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GAGpB,MAAM,oBAAoB,CAAC;AA0B5B,kEAAkE;AAClE,4EAA4E;AAC5E,2EAA2E;AAC3E,0EAA0E;AAC1E,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,KAAwB,EACxB,UAA+B,EAAE;IAEjC,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC;IACzC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC;IAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;IAC3C,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC;IAEzD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE;YACzC,MAAM;YACN,GAAG;YACH,KAAK;YACL,SAAS;YACT,OAAO;YACP,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,8CAA8C,cAAc,CAAC,WAAW,EAAE,iBAAiB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/H,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,4CAA4C,cAAc,CAAC,WAAW,EAAE,iBAAiB,GAAG,EAAE,CAAC,CAAC;QAC5G,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAC5D,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=codex.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.test.d.ts","sourceRoot":"","sources":["../../../../src/engines/__tests__/codex.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,85 @@
1
+ import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
2
+ import { EventEmitter } from "node:events";
3
+ import { CodexEngine } from "../codex.js";
4
+ // Mock child_process.spawn
5
+ vi.mock("node:child_process", () => ({
6
+ spawn: vi.fn(),
7
+ }));
8
+ import { spawn } from "node:child_process";
9
+ const mockSpawn = vi.mocked(spawn);
10
+ /** Creates a mock ChildProcess that emits events and has controllable stdout/stderr */
11
+ function createMockProcess() {
12
+ const proc = new EventEmitter();
13
+ proc.stdout = new EventEmitter();
14
+ proc.stderr = new EventEmitter();
15
+ proc.stdin = { end: vi.fn() };
16
+ proc.pid = 12345;
17
+ proc.exitCode = null;
18
+ proc.killed = false;
19
+ proc.kill = vi.fn(() => { proc.killed = true; });
20
+ return proc;
21
+ }
22
+ describe("CodexEngine", () => {
23
+ let engine;
24
+ beforeEach(() => {
25
+ engine = new CodexEngine();
26
+ });
27
+ afterEach(() => {
28
+ vi.restoreAllMocks();
29
+ });
30
+ describe("run() — agent_message handling", () => {
31
+ it("delivers only the final agent_message, not interim progress narration", async () => {
32
+ const proc = createMockProcess();
33
+ mockSpawn.mockReturnValue(proc);
34
+ const resultPromise = engine.run({ prompt: "what model are you?", cwd: "/tmp" });
35
+ // gpt-5.5 emits an interim "I'll do X first" message, then its real answer.
36
+ proc.stdout.emit("data", Buffer.from(JSON.stringify({ type: "thread.started", thread_id: "th-1" }) + "\n" +
37
+ JSON.stringify({ type: "item.completed", item: { type: "agent_message", text: "I'll check the boot files first, then answer." } }) + "\n" +
38
+ JSON.stringify({ type: "item.completed", item: { type: "agent_message", text: "I'm running on gpt-5.5." } }) + "\n" +
39
+ JSON.stringify({ type: "turn.completed" }) + "\n"));
40
+ proc.exitCode = 0;
41
+ proc.emit("close", 0);
42
+ const result = await resultPromise;
43
+ // Regression: interim agent_messages used to be concatenated into the reply.
44
+ expect(result.result).toBe("I'm running on gpt-5.5.");
45
+ expect(result.result).not.toContain("boot files");
46
+ expect(result.sessionId).toBe("th-1");
47
+ expect(result.error).toBeUndefined();
48
+ });
49
+ it("still surfaces every agent_message to onStream for live progress", async () => {
50
+ const proc = createMockProcess();
51
+ mockSpawn.mockReturnValue(proc);
52
+ const deltas = [];
53
+ const resultPromise = engine.run({
54
+ prompt: "hi",
55
+ cwd: "/tmp",
56
+ onStream: (d) => deltas.push(d),
57
+ });
58
+ proc.stdout.emit("data", Buffer.from(JSON.stringify({ type: "thread.started", thread_id: "th-2" }) + "\n" +
59
+ JSON.stringify({ type: "item.completed", item: { type: "agent_message", text: "working…" } }) + "\n" +
60
+ JSON.stringify({ type: "item.completed", item: { type: "agent_message", text: "done." } }) + "\n" +
61
+ JSON.stringify({ type: "turn.completed" }) + "\n"));
62
+ proc.exitCode = 0;
63
+ proc.emit("close", 0);
64
+ const result = await resultPromise;
65
+ expect(result.result).toBe("done.");
66
+ expect(deltas.filter((d) => d.type === "text").map((d) => d.content)).toEqual([
67
+ "working…",
68
+ "done.",
69
+ ]);
70
+ });
71
+ it("keeps a single agent_message intact", async () => {
72
+ const proc = createMockProcess();
73
+ mockSpawn.mockReturnValue(proc);
74
+ const resultPromise = engine.run({ prompt: "hi", cwd: "/tmp" });
75
+ proc.stdout.emit("data", Buffer.from(JSON.stringify({ type: "thread.started", thread_id: "th-3" }) + "\n" +
76
+ JSON.stringify({ type: "item.completed", item: { type: "agent_message", text: "single answer" } }) + "\n" +
77
+ JSON.stringify({ type: "turn.completed" }) + "\n"));
78
+ proc.exitCode = 0;
79
+ proc.emit("close", 0);
80
+ const result = await resultPromise;
81
+ expect(result.result).toBe("single answer");
82
+ });
83
+ });
84
+ });
85
+ //# sourceMappingURL=codex.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.test.js","sourceRoot":"","sources":["../../../../src/engines/__tests__/codex.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/engines/codex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAe,MAAM,oBAAoB,CAAC;AAUxG,qBAAa,WAAY,YAAW,mBAAmB;IACrD,IAAI,EAAG,OAAO,CAAU;IACxB,OAAO,CAAC,aAAa,CAAkC;IAEvD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,SAAgB,GAAG,IAAI;IAcrD,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAK7B,GAAG,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA2KrD,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,gBAAgB;IA4IxB,OAAO,CAAC,aAAa;CAYtB"}
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/engines/codex.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAe,MAAM,oBAAoB,CAAC;AAUxG,qBAAa,WAAY,YAAW,mBAAmB;IACrD,IAAI,EAAG,OAAO,CAAU;IACxB,OAAO,CAAC,aAAa,CAAkC;IAEvD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,SAAgB,GAAG,IAAI;IAcrD,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAK7B,GAAG,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAmLrD,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,gBAAgB;IA4IxB,OAAO,CAAC,aAAa;CAYtB"}
@@ -86,7 +86,13 @@ export class CodexEngine {
86
86
  onStream(parsed.delta);
87
87
  break;
88
88
  case "text":
89
- resultText += parsed.delta.content;
89
+ // Each codex "text" event is a *complete* agent_message, not a
90
+ // streaming delta. gpt-5.5 routinely emits an interim progress
91
+ // message ("I'll check X first…") before its tool calls and a
92
+ // separate final message afterwards. Keep only the latest so the
93
+ // interim narration doesn't leak into the delivered reply; live
94
+ // progress is still surfaced via onStream below.
95
+ resultText = parsed.delta.content;
90
96
  if (onStream)
91
97
  onStream(parsed.delta);
92
98
  break;
@@ -132,7 +138,9 @@ export class CodexEngine {
132
138
  threadId = parsed.threadId;
133
139
  break;
134
140
  case "text":
135
- resultText += parsed.delta.content;
141
+ // See the stdout handler above — keep only the final
142
+ // agent_message, never concatenate interim ones.
143
+ resultText = parsed.delta.content;
136
144
  break;
137
145
  case "usage":
138
146
  numTurns++;
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/engines/codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/engines/codex.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import { describe, it, expect } from 'vitest';
2
- import os from 'node:os';
3
- import path from 'node:path';
4
- import { mkdirSync } from 'node:fs';
5
- // Point initDb to a temp directory so tests don't touch the real database
6
- const tmpHome = path.join(os.tmpdir(), `jinn-test-${process.pid}`);
7
- mkdirSync(path.join(tmpHome, 'sessions'), { recursive: true });
8
- process.env.JINN_HOME = tmpHome;
1
+ import { describe, it, expect, vi } from 'vitest';
2
+ vi.hoisted(() => {
3
+ // Static ESM imports are evaluated before top-level test code. Set the
4
+ // instance home in a hoisted block so shared/path constants resolve to an
5
+ // isolated writable database instead of the user's real runtime DB.
6
+ process.env.RYOKO_HOME = `/tmp/openryoko-costs-test-${process.pid}`;
7
+ delete process.env.JINN_HOME;
8
+ });
9
9
  import { getCostSummary, getCostsByEmployee } from '../costs.js';
10
10
  describe('getCostSummary', () => {
11
11
  it('returns zero total when no sessions exist', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"costs.test.js","sourceRoot":"","sources":["../../../../src/gateway/__tests__/costs.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAA;AACxD,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEnC,0EAA0E;AAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,aAAa,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;AAClE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;AAC9D,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAA;AAE/B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhE,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QACtC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAA;QAC9C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;QACpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;QACrC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;QAC1C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"costs.test.js","sourceRoot":"","sources":["../../../../src/gateway/__tests__/costs.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEjD,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;IACd,uEAAuE;IACvE,0EAA0E;IAC1E,oEAAoE;IACpE,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,6BAA6B,OAAO,CAAC,GAAG,EAAE,CAAA;IACnE,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAA;AAC9B,CAAC,CAAC,CAAA;AAEF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhE,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QACtC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAA;QAC9C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;QACpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;QACrC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;QAC1C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/gateway/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,IAAI,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAMhF,OAAO,KAAK,EAAoC,UAAU,EAAmB,MAAM,oBAAoB,CAAC;AAExG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AA+C7D,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,UAAU,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,oBAAoB,EAAE,SAAS,CAAC,CAAC;IAChE,wBAAwB,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACrG;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAChG;;;;;;OAMG;IACH,2BAA2B,CAAC,EAAE,MAAM,IAAI,CAAC;IACzC;;;;OAIG;IACH,gCAAgC,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/C;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAgCpE;AAqOD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CA4jDf"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/gateway/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,IAAI,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAMhF,OAAO,KAAK,EAAoC,UAAU,EAAmB,MAAM,oBAAoB,CAAC;AAExG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AA+C7D,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,UAAU,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,oBAAoB,EAAE,SAAS,CAAC,CAAC;IAChE,wBAAwB,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACrG;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAChG;;;;;;OAMG;IACH,2BAA2B,CAAC,EAAE,MAAM,IAAI,CAAC;IACzC;;;;OAIG;IACH,gCAAgC,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/C;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAgCpE;AAqOD,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CA+jDf"}
@@ -1427,7 +1427,14 @@ Handle this as a priority request from a colleague.`;
1427
1427
  const body = _parsed.body;
1428
1428
  if (!body.channel || !body.text)
1429
1429
  return badRequest(res, "channel and text are required");
1430
- await connector.sendMessage({ channel: body.channel, thread: body.thread }, body.text);
1430
+ const hasThread = typeof body.thread === "string" && body.thread.trim().length > 0;
1431
+ const target = { channel: body.channel, thread: body.thread };
1432
+ if (hasThread) {
1433
+ await connector.replyMessage(target, body.text);
1434
+ }
1435
+ else {
1436
+ await connector.sendMessage(target, body.text);
1437
+ }
1431
1438
  return json(res, { status: "sent" });
1432
1439
  }
1433
1440
  // GET /api/connectors/whatsapp/qr — return current QR code as PNG data URL