@geminixiang/mikan 1.0.0-beta.8 → 1.0.0-beta.80

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 (900) hide show
  1. package/CHANGELOG.md +1149 -0
  2. package/README.md +98 -38
  3. package/dist/adapters/commands/admin.d.ts.map +1 -0
  4. package/dist/{commands → adapters/commands}/admin.js +12 -9
  5. package/dist/adapters/commands/admin.js.map +1 -0
  6. package/dist/{commands → adapters/commands}/auto-reply.d.ts +0 -3
  7. package/dist/adapters/commands/auto-reply.d.ts.map +1 -0
  8. package/dist/adapters/commands/auto-reply.js +47 -0
  9. package/dist/adapters/commands/auto-reply.js.map +1 -0
  10. package/dist/adapters/commands/login.d.ts +6 -0
  11. package/dist/adapters/commands/login.d.ts.map +1 -0
  12. package/dist/adapters/commands/login.js +158 -0
  13. package/dist/adapters/commands/login.js.map +1 -0
  14. package/dist/adapters/commands/manifest.d.ts +17 -0
  15. package/dist/adapters/commands/manifest.d.ts.map +1 -0
  16. package/dist/adapters/commands/manifest.js +121 -0
  17. package/dist/adapters/commands/manifest.js.map +1 -0
  18. package/dist/adapters/commands/model.d.ts +9 -0
  19. package/dist/adapters/commands/model.d.ts.map +1 -0
  20. package/dist/adapters/commands/model.js +136 -0
  21. package/dist/adapters/commands/model.js.map +1 -0
  22. package/dist/adapters/commands/new.d.ts.map +1 -0
  23. package/dist/adapters/commands/new.js +39 -0
  24. package/dist/adapters/commands/new.js.map +1 -0
  25. package/dist/adapters/commands/registry.d.ts +4 -0
  26. package/dist/adapters/commands/registry.d.ts.map +1 -0
  27. package/dist/adapters/commands/registry.js +35 -0
  28. package/dist/adapters/commands/registry.js.map +1 -0
  29. package/dist/{commands → adapters/commands}/sandbox.d.ts +0 -1
  30. package/dist/adapters/commands/sandbox.d.ts.map +1 -0
  31. package/dist/adapters/commands/sandbox.js +125 -0
  32. package/dist/adapters/commands/sandbox.js.map +1 -0
  33. package/dist/adapters/commands/session-view.d.ts.map +1 -0
  34. package/dist/{commands → adapters/commands}/session-view.js +21 -16
  35. package/dist/adapters/commands/session-view.js.map +1 -0
  36. package/dist/adapters/commands/types.d.ts +105 -0
  37. package/dist/adapters/commands/types.d.ts.map +1 -0
  38. package/dist/adapters/commands/types.js.map +1 -0
  39. package/dist/adapters/commands/utils.d.ts +11 -0
  40. package/dist/adapters/commands/utils.d.ts.map +1 -0
  41. package/dist/{commands → adapters/commands}/utils.js +15 -1
  42. package/dist/adapters/commands/utils.js.map +1 -0
  43. package/dist/adapters/discord/bot.d.ts +10 -17
  44. package/dist/adapters/discord/bot.d.ts.map +1 -1
  45. package/dist/adapters/discord/bot.js +232 -297
  46. package/dist/adapters/discord/bot.js.map +1 -1
  47. package/dist/adapters/discord/components.d.ts +4 -0
  48. package/dist/adapters/discord/components.d.ts.map +1 -0
  49. package/dist/adapters/discord/components.js +9 -0
  50. package/dist/adapters/discord/components.js.map +1 -0
  51. package/dist/adapters/discord/context.d.ts +3 -7
  52. package/dist/adapters/discord/context.d.ts.map +1 -1
  53. package/dist/adapters/discord/context.js +55 -219
  54. package/dist/adapters/discord/context.js.map +1 -1
  55. package/dist/adapters/discord/format.d.ts +2 -0
  56. package/dist/adapters/discord/format.d.ts.map +1 -0
  57. package/dist/adapters/discord/format.js +47 -0
  58. package/dist/adapters/discord/format.js.map +1 -0
  59. package/dist/adapters/discord/types.d.ts +90 -1
  60. package/dist/adapters/discord/types.d.ts.map +1 -1
  61. package/dist/adapters/discord/types.js.map +1 -1
  62. package/dist/adapters/github/bot.d.ts +25 -9
  63. package/dist/adapters/github/bot.d.ts.map +1 -1
  64. package/dist/adapters/github/bot.js +326 -154
  65. package/dist/adapters/github/bot.js.map +1 -1
  66. package/dist/adapters/github/client.d.ts +35 -23
  67. package/dist/adapters/github/client.d.ts.map +1 -1
  68. package/dist/adapters/github/client.js +121 -28
  69. package/dist/adapters/github/client.js.map +1 -1
  70. package/dist/adapters/github/context.d.ts +3 -8
  71. package/dist/adapters/github/context.d.ts.map +1 -1
  72. package/dist/adapters/github/context.js +64 -131
  73. package/dist/adapters/github/context.js.map +1 -1
  74. package/dist/adapters/github/github-ops.d.ts +22 -0
  75. package/dist/adapters/github/github-ops.d.ts.map +1 -0
  76. package/dist/adapters/github/github-ops.js +277 -0
  77. package/dist/adapters/github/github-ops.js.map +1 -0
  78. package/dist/adapters/github/ids.d.ts +2 -23
  79. package/dist/adapters/github/ids.d.ts.map +1 -1
  80. package/dist/adapters/github/ids.js +6 -36
  81. package/dist/adapters/github/ids.js.map +1 -1
  82. package/dist/adapters/github/repo.d.ts +8 -0
  83. package/dist/adapters/github/repo.d.ts.map +1 -0
  84. package/dist/adapters/github/repo.js +92 -0
  85. package/dist/adapters/github/repo.js.map +1 -0
  86. package/dist/adapters/github/tool-pack.d.ts +4 -0
  87. package/dist/adapters/github/tool-pack.d.ts.map +1 -0
  88. package/dist/adapters/github/tool-pack.js +45 -0
  89. package/dist/adapters/github/tool-pack.js.map +1 -0
  90. package/dist/adapters/github/tools/checks.d.ts +14 -0
  91. package/dist/adapters/github/tools/checks.d.ts.map +1 -0
  92. package/dist/adapters/github/tools/checks.js +80 -0
  93. package/dist/adapters/github/tools/checks.js.map +1 -0
  94. package/dist/adapters/github/tools/issue.d.ts +18 -0
  95. package/dist/adapters/github/tools/issue.d.ts.map +1 -0
  96. package/dist/adapters/github/tools/issue.js +44 -0
  97. package/dist/adapters/github/tools/issue.js.map +1 -0
  98. package/dist/adapters/github/tools/pr.d.ts +17 -0
  99. package/dist/adapters/github/tools/pr.d.ts.map +1 -0
  100. package/dist/adapters/github/tools/pr.js +42 -0
  101. package/dist/adapters/github/tools/pr.js.map +1 -0
  102. package/dist/adapters/github/tools/read.d.ts +17 -0
  103. package/dist/adapters/github/tools/read.d.ts.map +1 -0
  104. package/dist/adapters/github/tools/read.js +134 -0
  105. package/dist/adapters/github/tools/read.js.map +1 -0
  106. package/dist/adapters/github/tools/review-reply.d.ts +14 -0
  107. package/dist/adapters/github/tools/review-reply.d.ts.map +1 -0
  108. package/dist/adapters/github/tools/review-reply.js +34 -0
  109. package/dist/adapters/github/tools/review-reply.js.map +1 -0
  110. package/dist/adapters/github/tools/sync.d.ts +13 -0
  111. package/dist/adapters/github/tools/sync.d.ts.map +1 -0
  112. package/dist/adapters/github/tools/sync.js +29 -0
  113. package/dist/adapters/github/tools/sync.js.map +1 -0
  114. package/dist/adapters/github/types.d.ts +197 -18
  115. package/dist/adapters/github/types.d.ts.map +1 -1
  116. package/dist/adapters/github/types.js.map +1 -1
  117. package/dist/adapters/github/webhook.d.ts +6 -0
  118. package/dist/adapters/github/webhook.d.ts.map +1 -0
  119. package/dist/adapters/github/webhook.js +62 -0
  120. package/dist/adapters/github/webhook.js.map +1 -0
  121. package/dist/adapters/intake.d.ts +4 -10
  122. package/dist/adapters/intake.d.ts.map +1 -1
  123. package/dist/adapters/intake.js +74 -31
  124. package/dist/adapters/intake.js.map +1 -1
  125. package/dist/adapters/markdown-tables.d.ts +8 -0
  126. package/dist/adapters/markdown-tables.d.ts.map +1 -0
  127. package/dist/adapters/markdown-tables.js +111 -0
  128. package/dist/adapters/markdown-tables.js.map +1 -0
  129. package/dist/{platform-messages.d.ts → adapters/messages.d.ts} +3 -2
  130. package/dist/adapters/messages.d.ts.map +1 -0
  131. package/dist/{platform-messages.js → adapters/messages.js} +4 -1
  132. package/dist/adapters/messages.js.map +1 -0
  133. package/dist/adapters/progressive-renderer.d.ts +7 -0
  134. package/dist/adapters/progressive-renderer.d.ts.map +1 -0
  135. package/dist/adapters/progressive-renderer.js +423 -0
  136. package/dist/adapters/progressive-renderer.js.map +1 -0
  137. package/dist/adapters/shared.d.ts +24 -53
  138. package/dist/adapters/shared.d.ts.map +1 -1
  139. package/dist/adapters/shared.js +140 -91
  140. package/dist/adapters/shared.js.map +1 -1
  141. package/dist/adapters/slack/assistant.d.ts +23 -0
  142. package/dist/adapters/slack/assistant.d.ts.map +1 -0
  143. package/dist/adapters/slack/assistant.js +109 -0
  144. package/dist/adapters/slack/assistant.js.map +1 -0
  145. package/dist/adapters/slack/auto-reply-context.d.ts +14 -0
  146. package/dist/adapters/slack/auto-reply-context.d.ts.map +1 -0
  147. package/dist/adapters/slack/auto-reply-context.js +21 -0
  148. package/dist/adapters/slack/auto-reply-context.js.map +1 -0
  149. package/dist/adapters/slack/blocks.d.ts +5 -0
  150. package/dist/adapters/slack/blocks.d.ts.map +1 -1
  151. package/dist/adapters/slack/blocks.js +84 -148
  152. package/dist/adapters/slack/blocks.js.map +1 -1
  153. package/dist/adapters/slack/bot.d.ts +51 -39
  154. package/dist/adapters/slack/bot.d.ts.map +1 -1
  155. package/dist/adapters/slack/bot.js +892 -567
  156. package/dist/adapters/slack/bot.js.map +1 -1
  157. package/dist/adapters/slack/context.d.ts +3 -9
  158. package/dist/adapters/slack/context.d.ts.map +1 -1
  159. package/dist/adapters/slack/context.js +8 -17
  160. package/dist/adapters/slack/context.js.map +1 -1
  161. package/dist/adapters/slack/jev-context.d.ts +17 -0
  162. package/dist/adapters/slack/jev-context.d.ts.map +1 -0
  163. package/dist/adapters/slack/jev-context.js +57 -0
  164. package/dist/adapters/slack/jev-context.js.map +1 -0
  165. package/dist/adapters/slack/markdown.d.ts +2 -0
  166. package/dist/adapters/slack/markdown.d.ts.map +1 -0
  167. package/dist/adapters/slack/markdown.js +43 -0
  168. package/dist/adapters/slack/markdown.js.map +1 -0
  169. package/dist/adapters/slack/persona.d.ts +6 -0
  170. package/dist/adapters/slack/persona.d.ts.map +1 -0
  171. package/dist/adapters/slack/persona.js +13 -0
  172. package/dist/adapters/slack/persona.js.map +1 -0
  173. package/dist/adapters/slack/response-lifecycle.d.ts +3 -4
  174. package/dist/adapters/slack/response-lifecycle.d.ts.map +1 -1
  175. package/dist/adapters/slack/response-lifecycle.js +221 -347
  176. package/dist/adapters/slack/response-lifecycle.js.map +1 -1
  177. package/dist/adapters/slack/session.d.ts +3 -2
  178. package/dist/adapters/slack/session.d.ts.map +1 -1
  179. package/dist/adapters/slack/session.js +9 -13
  180. package/dist/adapters/slack/session.js.map +1 -1
  181. package/dist/adapters/slack/stream-limits.d.ts +10 -0
  182. package/dist/adapters/slack/stream-limits.d.ts.map +1 -0
  183. package/dist/adapters/slack/stream-limits.js +22 -0
  184. package/dist/adapters/slack/stream-limits.js.map +1 -0
  185. package/dist/adapters/slack/task-intent.d.ts +19 -0
  186. package/dist/adapters/slack/task-intent.d.ts.map +1 -0
  187. package/dist/adapters/slack/task-intent.js +65 -0
  188. package/dist/adapters/slack/task-intent.js.map +1 -0
  189. package/dist/adapters/slack/task-status.d.ts +6 -0
  190. package/dist/adapters/slack/task-status.d.ts.map +1 -0
  191. package/dist/adapters/slack/task-status.js +100 -0
  192. package/dist/adapters/slack/task-status.js.map +1 -0
  193. package/dist/adapters/slack/tool-pack.d.ts +4 -0
  194. package/dist/adapters/slack/tool-pack.d.ts.map +1 -0
  195. package/dist/adapters/slack/tool-pack.js +40 -0
  196. package/dist/adapters/slack/tool-pack.js.map +1 -0
  197. package/dist/adapters/slack/tools/blockkit.d.ts +17 -0
  198. package/dist/adapters/slack/tools/blockkit.d.ts.map +1 -0
  199. package/dist/adapters/slack/tools/blockkit.js +98 -0
  200. package/dist/adapters/slack/tools/blockkit.js.map +1 -0
  201. package/dist/adapters/slack/types.d.ts +91 -5
  202. package/dist/adapters/slack/types.d.ts.map +1 -1
  203. package/dist/adapters/slack/types.js.map +1 -1
  204. package/dist/adapters/slack/update-diagnostics.d.ts +13 -0
  205. package/dist/adapters/slack/update-diagnostics.d.ts.map +1 -0
  206. package/dist/adapters/slack/update-diagnostics.js +128 -0
  207. package/dist/adapters/slack/update-diagnostics.js.map +1 -0
  208. package/dist/adapters/telegram/bot.d.ts +8 -18
  209. package/dist/adapters/telegram/bot.d.ts.map +1 -1
  210. package/dist/adapters/telegram/bot.js +114 -232
  211. package/dist/adapters/telegram/bot.js.map +1 -1
  212. package/dist/adapters/telegram/context.d.ts +3 -7
  213. package/dist/adapters/telegram/context.d.ts.map +1 -1
  214. package/dist/adapters/telegram/context.js +47 -191
  215. package/dist/adapters/telegram/context.js.map +1 -1
  216. package/dist/adapters/telegram/types.d.ts +24 -1
  217. package/dist/adapters/telegram/types.d.ts.map +1 -1
  218. package/dist/adapters/telegram/types.js.map +1 -1
  219. package/dist/adapters/types.d.ts +89 -16
  220. package/dist/adapters/types.d.ts.map +1 -1
  221. package/dist/adapters/types.js.map +1 -1
  222. package/dist/adapters/web/admin/client-assets.d.ts +4 -0
  223. package/dist/adapters/web/admin/client-assets.d.ts.map +1 -0
  224. package/dist/adapters/web/admin/client-assets.js +1766 -0
  225. package/dist/adapters/web/admin/client-assets.js.map +1 -0
  226. package/dist/adapters/web/admin/portal.d.ts +27 -0
  227. package/dist/adapters/web/admin/portal.d.ts.map +1 -0
  228. package/dist/adapters/web/admin/portal.js +1506 -0
  229. package/dist/adapters/web/admin/portal.js.map +1 -0
  230. package/dist/{web → adapters/web}/admin/provider-models.d.ts +1 -1
  231. package/dist/adapters/web/admin/provider-models.d.ts.map +1 -0
  232. package/dist/{web → adapters/web}/admin/provider-models.js +1 -1
  233. package/dist/adapters/web/admin/provider-models.js.map +1 -0
  234. package/dist/adapters/web/admin/types.d.ts +56 -0
  235. package/dist/adapters/web/admin/types.d.ts.map +1 -0
  236. package/dist/adapters/web/admin/types.js.map +1 -0
  237. package/dist/adapters/web/login/oauth.d.ts +4 -0
  238. package/dist/adapters/web/login/oauth.d.ts.map +1 -0
  239. package/dist/{web → adapters/web}/login/oauth.js +61 -100
  240. package/dist/adapters/web/login/oauth.js.map +1 -0
  241. package/dist/adapters/web/login/portal.d.ts +10 -0
  242. package/dist/adapters/web/login/portal.d.ts.map +1 -0
  243. package/dist/{web → adapters/web}/login/portal.js +169 -159
  244. package/dist/adapters/web/login/portal.js.map +1 -0
  245. package/dist/{web → adapters/web}/login/types.d.ts +1 -17
  246. package/dist/adapters/web/login/types.d.ts.map +1 -0
  247. package/dist/adapters/web/login/types.js.map +1 -0
  248. package/dist/adapters/web/portal-shell.d.ts +9 -0
  249. package/dist/adapters/web/portal-shell.d.ts.map +1 -0
  250. package/dist/{portal-shell.js → adapters/web/portal-shell.js} +73 -11
  251. package/dist/adapters/web/portal-shell.js.map +1 -0
  252. package/dist/adapters/web/server.d.ts +33 -0
  253. package/dist/adapters/web/server.d.ts.map +1 -0
  254. package/dist/{web → adapters/web}/server.js +15 -9
  255. package/dist/adapters/web/server.js.map +1 -0
  256. package/dist/adapters/web/session-view/portal.d.ts +19 -0
  257. package/dist/adapters/web/session-view/portal.d.ts.map +1 -0
  258. package/dist/{web → adapters/web}/session-view/portal.js +641 -181
  259. package/dist/adapters/web/session-view/portal.js.map +1 -0
  260. package/dist/{web → adapters/web}/session-view/types.d.ts +1 -6
  261. package/dist/adapters/web/session-view/types.d.ts.map +1 -0
  262. package/dist/adapters/web/session-view/types.js.map +1 -0
  263. package/dist/{web → adapters/web}/token-store.d.ts +0 -3
  264. package/dist/adapters/web/token-store.d.ts.map +1 -0
  265. package/dist/{web → adapters/web}/token-store.js +1 -3
  266. package/dist/adapters/web/token-store.js.map +1 -0
  267. package/dist/adapters/web/types.d.ts.map +1 -0
  268. package/dist/adapters/web/types.js.map +1 -0
  269. package/dist/cli/arg-grammar.d.ts +8 -0
  270. package/dist/cli/arg-grammar.d.ts.map +1 -0
  271. package/dist/cli/arg-grammar.js +47 -0
  272. package/dist/cli/arg-grammar.js.map +1 -0
  273. package/dist/cli/boot.d.ts +4 -0
  274. package/dist/cli/boot.d.ts.map +1 -0
  275. package/dist/cli/boot.js +81 -0
  276. package/dist/cli/boot.js.map +1 -0
  277. package/dist/cli/download.d.ts.map +1 -0
  278. package/dist/cli/download.js +84 -0
  279. package/dist/cli/download.js.map +1 -0
  280. package/dist/cli/office.d.ts +2 -0
  281. package/dist/cli/office.d.ts.map +1 -0
  282. package/dist/cli/office.js +151 -0
  283. package/dist/cli/office.js.map +1 -0
  284. package/dist/cli/onboard.d.ts +8 -0
  285. package/dist/cli/onboard.d.ts.map +1 -0
  286. package/dist/cli/onboard.js +195 -0
  287. package/dist/cli/onboard.js.map +1 -0
  288. package/dist/cli/process-lifecycle.d.ts +14 -0
  289. package/dist/cli/process-lifecycle.d.ts.map +1 -0
  290. package/dist/cli/process-lifecycle.js +61 -0
  291. package/dist/cli/process-lifecycle.js.map +1 -0
  292. package/dist/cli/sandbox.d.ts +3 -0
  293. package/dist/cli/sandbox.d.ts.map +1 -0
  294. package/dist/cli/sandbox.js +80 -0
  295. package/dist/cli/sandbox.js.map +1 -0
  296. package/dist/cli/sessions.d.ts +2 -0
  297. package/dist/cli/sessions.d.ts.map +1 -0
  298. package/dist/cli/sessions.js +78 -0
  299. package/dist/cli/sessions.js.map +1 -0
  300. package/dist/cli/types.d.ts +21 -0
  301. package/dist/cli/types.d.ts.map +1 -0
  302. package/dist/cli/types.js.map +1 -0
  303. package/dist/env-manifest.d.ts +17 -0
  304. package/dist/env-manifest.d.ts.map +1 -0
  305. package/dist/env-manifest.js +249 -0
  306. package/dist/env-manifest.js.map +1 -0
  307. package/dist/events/index.d.ts +122 -0
  308. package/dist/events/index.d.ts.map +1 -0
  309. package/dist/events/index.js +299 -0
  310. package/dist/events/index.js.map +1 -0
  311. package/dist/events/scheduler.d.ts +25 -0
  312. package/dist/events/scheduler.d.ts.map +1 -0
  313. package/dist/events/scheduler.js +223 -0
  314. package/dist/events/scheduler.js.map +1 -0
  315. package/dist/file-guards.d.ts +13 -0
  316. package/dist/file-guards.d.ts.map +1 -0
  317. package/dist/file-guards.js +104 -0
  318. package/dist/file-guards.js.map +1 -0
  319. package/dist/harness/execution-env.d.ts +4 -0
  320. package/dist/harness/execution-env.d.ts.map +1 -0
  321. package/dist/harness/execution-env.js +245 -0
  322. package/dist/harness/execution-env.js.map +1 -0
  323. package/dist/harness/execution-resolver.d.ts +23 -0
  324. package/dist/harness/execution-resolver.d.ts.map +1 -0
  325. package/dist/harness/execution-resolver.js +156 -0
  326. package/dist/harness/execution-resolver.js.map +1 -0
  327. package/dist/harness/http.d.ts +0 -12
  328. package/dist/harness/http.d.ts.map +1 -1
  329. package/dist/harness/http.js +0 -34
  330. package/dist/harness/http.js.map +1 -1
  331. package/dist/harness/index.d.ts +19 -17
  332. package/dist/harness/index.d.ts.map +1 -1
  333. package/dist/harness/index.js +12 -15
  334. package/dist/harness/index.js.map +1 -1
  335. package/dist/harness/jev.d.ts +67 -0
  336. package/dist/harness/jev.d.ts.map +1 -0
  337. package/dist/harness/jev.js +135 -0
  338. package/dist/harness/jev.js.map +1 -0
  339. package/dist/harness/mcp-result.d.ts +20 -0
  340. package/dist/harness/mcp-result.d.ts.map +1 -0
  341. package/dist/harness/mcp-result.js +179 -0
  342. package/dist/harness/mcp-result.js.map +1 -0
  343. package/dist/harness/mcp.d.ts +17 -0
  344. package/dist/harness/mcp.d.ts.map +1 -0
  345. package/dist/harness/mcp.js +243 -0
  346. package/dist/harness/mcp.js.map +1 -0
  347. package/dist/harness/models.d.ts +2 -19
  348. package/dist/harness/models.d.ts.map +1 -1
  349. package/dist/harness/models.js +42 -94
  350. package/dist/harness/models.js.map +1 -1
  351. package/dist/harness/open-connector.d.ts +12 -0
  352. package/dist/harness/open-connector.d.ts.map +1 -0
  353. package/dist/harness/open-connector.js +160 -0
  354. package/dist/harness/open-connector.js.map +1 -0
  355. package/dist/harness/presenter.d.ts +11 -0
  356. package/dist/harness/presenter.d.ts.map +1 -0
  357. package/dist/harness/presenter.js +824 -0
  358. package/dist/harness/presenter.js.map +1 -0
  359. package/dist/harness/prompt.d.ts +18 -0
  360. package/dist/harness/prompt.d.ts.map +1 -0
  361. package/dist/harness/prompt.js +403 -0
  362. package/dist/harness/prompt.js.map +1 -0
  363. package/dist/harness/runner.d.ts +2 -123
  364. package/dist/harness/runner.d.ts.map +1 -1
  365. package/dist/harness/runner.js +547 -415
  366. package/dist/harness/runner.js.map +1 -1
  367. package/dist/harness/session.d.ts +98 -0
  368. package/dist/harness/session.d.ts.map +1 -0
  369. package/dist/harness/session.js +645 -0
  370. package/dist/harness/session.js.map +1 -0
  371. package/dist/harness/skills.d.ts +7 -41
  372. package/dist/harness/skills.d.ts.map +1 -1
  373. package/dist/harness/skills.js +101 -55
  374. package/dist/harness/skills.js.map +1 -1
  375. package/dist/harness/subagent-profiles.d.ts +3 -0
  376. package/dist/harness/subagent-profiles.d.ts.map +1 -0
  377. package/dist/harness/subagent-profiles.js +260 -0
  378. package/dist/harness/subagent-profiles.js.map +1 -0
  379. package/dist/harness/subagent.d.ts +39 -0
  380. package/dist/harness/subagent.d.ts.map +1 -0
  381. package/dist/harness/subagent.js +618 -0
  382. package/dist/harness/subagent.js.map +1 -0
  383. package/dist/harness/tool-args.d.ts +2 -0
  384. package/dist/harness/tool-args.d.ts.map +1 -0
  385. package/dist/harness/tool-args.js +20 -0
  386. package/dist/harness/tool-args.js.map +1 -0
  387. package/dist/harness/tools/attach.d.ts +13 -0
  388. package/dist/harness/tools/attach.d.ts.map +1 -0
  389. package/dist/{adapters/slack → harness}/tools/attach.js +2 -2
  390. package/dist/harness/tools/attach.js.map +1 -0
  391. package/dist/harness/tools/event.d.ts +28 -0
  392. package/dist/harness/tools/event.d.ts.map +1 -0
  393. package/dist/harness/tools/event.js +166 -0
  394. package/dist/harness/tools/event.js.map +1 -0
  395. package/dist/harness/tools/generate-image.d.ts +20 -0
  396. package/dist/harness/tools/generate-image.d.ts.map +1 -0
  397. package/dist/harness/tools/generate-image.js +68 -0
  398. package/dist/harness/tools/generate-image.js.map +1 -0
  399. package/dist/harness/tools/host-fn-tool.d.ts +14 -0
  400. package/dist/harness/tools/host-fn-tool.d.ts.map +1 -0
  401. package/dist/harness/tools/host-fn-tool.js +39 -0
  402. package/dist/harness/tools/host-fn-tool.js.map +1 -0
  403. package/dist/harness/tools/index.d.ts +34 -0
  404. package/dist/harness/tools/index.d.ts.map +1 -0
  405. package/dist/harness/tools/index.js +49 -0
  406. package/dist/harness/tools/index.js.map +1 -0
  407. package/dist/harness/tools/jev-browser.d.ts +42 -0
  408. package/dist/harness/tools/jev-browser.d.ts.map +1 -0
  409. package/dist/harness/tools/jev-browser.js +547 -0
  410. package/dist/harness/tools/jev-browser.js.map +1 -0
  411. package/dist/harness/tools/jev.d.ts +15 -0
  412. package/dist/harness/tools/jev.d.ts.map +1 -0
  413. package/dist/harness/tools/jev.js +98 -0
  414. package/dist/harness/tools/jev.js.map +1 -0
  415. package/dist/harness/tools/pi-tools.d.ts +8 -0
  416. package/dist/harness/tools/pi-tools.d.ts.map +1 -0
  417. package/dist/harness/tools/pi-tools.js +55 -0
  418. package/dist/harness/tools/pi-tools.js.map +1 -0
  419. package/dist/harness/tools/react.d.ts +11 -0
  420. package/dist/harness/tools/react.d.ts.map +1 -0
  421. package/dist/harness/tools/react.js +24 -0
  422. package/dist/harness/tools/react.js.map +1 -0
  423. package/dist/harness/tools/sandbox.d.ts +24 -0
  424. package/dist/harness/tools/sandbox.d.ts.map +1 -0
  425. package/dist/{tools → harness/tools}/sandbox.js +15 -9
  426. package/dist/harness/tools/sandbox.js.map +1 -0
  427. package/dist/harness/tools/secret-redaction.d.ts +9 -0
  428. package/dist/harness/tools/secret-redaction.d.ts.map +1 -0
  429. package/dist/harness/tools/secret-redaction.js +44 -0
  430. package/dist/harness/tools/secret-redaction.js.map +1 -0
  431. package/dist/harness/tools/subagent.d.ts +51 -0
  432. package/dist/harness/tools/subagent.d.ts.map +1 -0
  433. package/dist/harness/tools/subagent.js +581 -0
  434. package/dist/harness/tools/subagent.js.map +1 -0
  435. package/dist/harness/tools/task.d.ts +22 -0
  436. package/dist/harness/tools/task.d.ts.map +1 -0
  437. package/dist/harness/tools/task.js +80 -0
  438. package/dist/harness/tools/task.js.map +1 -0
  439. package/dist/harness/tools/types.d.ts +14 -0
  440. package/dist/harness/tools/types.d.ts.map +1 -0
  441. package/dist/harness/tools/types.js.map +1 -0
  442. package/dist/harness/types.d.ts +345 -29
  443. package/dist/harness/types.d.ts.map +1 -1
  444. package/dist/harness/types.js +1 -1
  445. package/dist/harness/types.js.map +1 -1
  446. package/dist/index.d.ts +36 -9
  447. package/dist/index.d.ts.map +1 -1
  448. package/dist/index.js +19 -7
  449. package/dist/index.js.map +1 -1
  450. package/dist/log.d.ts +0 -1
  451. package/dist/log.d.ts.map +1 -1
  452. package/dist/log.js +3 -13
  453. package/dist/log.js.map +1 -1
  454. package/dist/main.js +300 -217
  455. package/dist/main.js.map +1 -1
  456. package/dist/memory-capture/index.d.ts +15 -0
  457. package/dist/memory-capture/index.d.ts.map +1 -0
  458. package/dist/memory-capture/index.js +199 -0
  459. package/dist/memory-capture/index.js.map +1 -0
  460. package/dist/memory-capture/types.d.ts +27 -0
  461. package/dist/memory-capture/types.d.ts.map +1 -0
  462. package/dist/memory-capture/types.js +2 -0
  463. package/dist/memory-capture/types.js.map +1 -0
  464. package/dist/observability/index.d.ts +30 -0
  465. package/dist/observability/index.d.ts.map +1 -0
  466. package/dist/observability/index.js +273 -0
  467. package/dist/observability/index.js.map +1 -0
  468. package/dist/observability/instrument.js +9 -6
  469. package/dist/observability/instrument.js.map +1 -1
  470. package/dist/observability/otel.d.ts +10 -0
  471. package/dist/observability/otel.d.ts.map +1 -0
  472. package/dist/observability/otel.js +182 -0
  473. package/dist/observability/otel.js.map +1 -0
  474. package/dist/observability/sentry.d.ts +32 -13
  475. package/dist/observability/sentry.d.ts.map +1 -1
  476. package/dist/observability/sentry.js +85 -58
  477. package/dist/observability/sentry.js.map +1 -1
  478. package/dist/observability/types.d.ts +30 -3
  479. package/dist/observability/types.d.ts.map +1 -1
  480. package/dist/observability/types.js.map +1 -1
  481. package/dist/office/index.d.ts +74 -0
  482. package/dist/office/index.d.ts.map +1 -0
  483. package/dist/office/index.js +971 -0
  484. package/dist/office/index.js.map +1 -0
  485. package/dist/office/projection.d.ts +11 -0
  486. package/dist/office/projection.d.ts.map +1 -0
  487. package/dist/office/projection.js +146 -0
  488. package/dist/office/projection.js.map +1 -0
  489. package/dist/office/types.d.ts +55 -0
  490. package/dist/office/types.d.ts.map +1 -0
  491. package/dist/office/types.js +2 -0
  492. package/dist/office/types.js.map +1 -0
  493. package/dist/runtime/conversation-runtime.d.ts +0 -1
  494. package/dist/runtime/conversation-runtime.d.ts.map +1 -1
  495. package/dist/runtime/conversation-runtime.js +375 -152
  496. package/dist/runtime/conversation-runtime.js.map +1 -1
  497. package/dist/runtime/session-lifecycle.d.ts +66 -0
  498. package/dist/runtime/session-lifecycle.d.ts.map +1 -0
  499. package/dist/runtime/session-lifecycle.js +393 -0
  500. package/dist/runtime/session-lifecycle.js.map +1 -0
  501. package/dist/runtime/types.d.ts +41 -17
  502. package/dist/runtime/types.d.ts.map +1 -1
  503. package/dist/runtime/types.js.map +1 -1
  504. package/dist/sandbox/cloudflare.d.ts +4 -0
  505. package/dist/sandbox/cloudflare.d.ts.map +1 -1
  506. package/dist/sandbox/cloudflare.js +59 -55
  507. package/dist/sandbox/cloudflare.js.map +1 -1
  508. package/dist/sandbox/container.d.ts +3 -0
  509. package/dist/sandbox/container.d.ts.map +1 -1
  510. package/dist/sandbox/container.js +39 -20
  511. package/dist/sandbox/container.js.map +1 -1
  512. package/dist/sandbox/host.d.ts +3 -0
  513. package/dist/sandbox/host.d.ts.map +1 -1
  514. package/dist/sandbox/host.js +42 -35
  515. package/dist/sandbox/host.js.map +1 -1
  516. package/dist/sandbox/identity.d.ts +13 -0
  517. package/dist/sandbox/identity.d.ts.map +1 -0
  518. package/dist/sandbox/identity.js +49 -0
  519. package/dist/sandbox/identity.js.map +1 -0
  520. package/dist/sandbox/index.d.ts +5 -15
  521. package/dist/sandbox/index.d.ts.map +1 -1
  522. package/dist/sandbox/index.js +5 -51
  523. package/dist/sandbox/index.js.map +1 -1
  524. package/dist/sandbox/layout.d.ts +7 -0
  525. package/dist/sandbox/layout.d.ts.map +1 -0
  526. package/dist/sandbox/layout.js +13 -0
  527. package/dist/sandbox/layout.js.map +1 -0
  528. package/dist/{provisioner.d.ts → sandbox/provisioner.d.ts} +41 -4
  529. package/dist/sandbox/provisioner.d.ts.map +1 -0
  530. package/dist/sandbox/provisioner.js +971 -0
  531. package/dist/sandbox/provisioner.js.map +1 -0
  532. package/dist/sandbox/registry.d.ts +12 -0
  533. package/dist/sandbox/registry.d.ts.map +1 -0
  534. package/dist/sandbox/registry.js +93 -0
  535. package/dist/sandbox/registry.js.map +1 -0
  536. package/dist/sandbox/types.d.ts +23 -25
  537. package/dist/sandbox/types.d.ts.map +1 -1
  538. package/dist/sandbox/types.js.map +1 -1
  539. package/dist/sandbox/utils.d.ts +21 -0
  540. package/dist/sandbox/utils.d.ts.map +1 -1
  541. package/dist/sandbox/utils.js +100 -8
  542. package/dist/sandbox/utils.js.map +1 -1
  543. package/dist/sessions/chat-history-sync.d.ts +17 -0
  544. package/dist/sessions/chat-history-sync.d.ts.map +1 -0
  545. package/dist/sessions/{agent-memory-file-manager.js → chat-history-sync.js} +224 -183
  546. package/dist/sessions/chat-history-sync.js.map +1 -0
  547. package/dist/sessions/history-line.d.ts +9 -0
  548. package/dist/sessions/history-line.d.ts.map +1 -0
  549. package/dist/sessions/history-line.js +25 -0
  550. package/dist/sessions/history-line.js.map +1 -0
  551. package/dist/sessions/migrate-common.d.ts +28 -0
  552. package/dist/sessions/migrate-common.d.ts.map +1 -0
  553. package/dist/sessions/migrate-common.js +80 -0
  554. package/dist/sessions/migrate-common.js.map +1 -0
  555. package/dist/sessions/migrate-pi-084.d.ts +7 -0
  556. package/dist/sessions/migrate-pi-084.d.ts.map +1 -0
  557. package/dist/sessions/migrate-pi-084.js +293 -0
  558. package/dist/sessions/migrate-pi-084.js.map +1 -0
  559. package/dist/sessions/migrate-v3.d.ts +7 -0
  560. package/dist/sessions/migrate-v3.d.ts.map +1 -0
  561. package/dist/sessions/migrate-v3.js +351 -0
  562. package/dist/sessions/migrate-v3.js.map +1 -0
  563. package/dist/sessions/session-key.d.ts +18 -0
  564. package/dist/sessions/session-key.d.ts.map +1 -0
  565. package/dist/sessions/session-key.js +88 -0
  566. package/dist/sessions/session-key.js.map +1 -0
  567. package/dist/sessions/session-store.d.ts +55 -0
  568. package/dist/sessions/session-store.d.ts.map +1 -0
  569. package/dist/sessions/session-store.js +635 -0
  570. package/dist/sessions/session-store.js.map +1 -0
  571. package/dist/sessions/store.d.ts +7 -61
  572. package/dist/sessions/store.d.ts.map +1 -1
  573. package/dist/sessions/store.js +126 -102
  574. package/dist/sessions/store.js.map +1 -1
  575. package/dist/sessions/types.d.ts +59 -8
  576. package/dist/sessions/types.d.ts.map +1 -1
  577. package/dist/sessions/types.js +2 -1
  578. package/dist/sessions/types.js.map +1 -1
  579. package/dist/settings/apply.d.ts +9 -0
  580. package/dist/settings/apply.d.ts.map +1 -0
  581. package/dist/settings/apply.js +31 -0
  582. package/dist/settings/apply.js.map +1 -0
  583. package/dist/settings/index.d.ts +76 -0
  584. package/dist/settings/index.d.ts.map +1 -0
  585. package/dist/settings/index.js +351 -0
  586. package/dist/settings/index.js.map +1 -0
  587. package/dist/settings/migrate.d.ts +16 -0
  588. package/dist/settings/migrate.d.ts.map +1 -0
  589. package/dist/settings/migrate.js +70 -0
  590. package/dist/settings/migrate.js.map +1 -0
  591. package/dist/types.d.ts +231 -173
  592. package/dist/types.d.ts.map +1 -1
  593. package/dist/types.js +1 -3
  594. package/dist/types.js.map +1 -1
  595. package/dist/unknown-values.d.ts +3 -0
  596. package/dist/unknown-values.d.ts.map +1 -0
  597. package/dist/unknown-values.js +7 -0
  598. package/dist/unknown-values.js.map +1 -0
  599. package/dist/vault/index.d.ts +35 -11
  600. package/dist/vault/index.d.ts.map +1 -1
  601. package/dist/vault/index.js +326 -115
  602. package/dist/vault/index.js.map +1 -1
  603. package/dist/vault/types.d.ts +5 -16
  604. package/dist/vault/types.d.ts.map +1 -1
  605. package/dist/vault/types.js.map +1 -1
  606. package/package.json +82 -41
  607. package/dist/adapter.d.ts +0 -2
  608. package/dist/adapter.d.ts.map +0 -1
  609. package/dist/adapter.js +0 -2
  610. package/dist/adapter.js.map +0 -1
  611. package/dist/adapters/slack/tools/attach.d.ts +0 -12
  612. package/dist/adapters/slack/tools/attach.d.ts.map +0 -1
  613. package/dist/adapters/slack/tools/attach.js.map +0 -1
  614. package/dist/adapters/streaming.d.ts +0 -18
  615. package/dist/adapters/streaming.d.ts.map +0 -1
  616. package/dist/adapters/streaming.js +0 -44
  617. package/dist/adapters/streaming.js.map +0 -1
  618. package/dist/adapters/telegram/html.d.ts +0 -3
  619. package/dist/adapters/telegram/html.d.ts.map +0 -1
  620. package/dist/adapters/telegram/html.js +0 -98
  621. package/dist/adapters/telegram/html.js.map +0 -1
  622. package/dist/agent-events.d.ts +0 -5
  623. package/dist/agent-events.d.ts.map +0 -1
  624. package/dist/agent-events.js +0 -26
  625. package/dist/agent-events.js.map +0 -1
  626. package/dist/agent.d.ts +0 -39
  627. package/dist/agent.d.ts.map +0 -1
  628. package/dist/agent.js +0 -1291
  629. package/dist/agent.js.map +0 -1
  630. package/dist/cli/ext-git.d.ts +0 -22
  631. package/dist/cli/ext-git.d.ts.map +0 -1
  632. package/dist/cli/ext-git.js +0 -76
  633. package/dist/cli/ext-git.js.map +0 -1
  634. package/dist/cli/ext.d.ts +0 -2
  635. package/dist/cli/ext.d.ts.map +0 -1
  636. package/dist/cli/ext.js +0 -217
  637. package/dist/cli/ext.js.map +0 -1
  638. package/dist/commands/admin.d.ts.map +0 -1
  639. package/dist/commands/admin.js.map +0 -1
  640. package/dist/commands/auto-reply.d.ts.map +0 -1
  641. package/dist/commands/auto-reply.js +0 -76
  642. package/dist/commands/auto-reply.js.map +0 -1
  643. package/dist/commands/extensions.d.ts +0 -14
  644. package/dist/commands/extensions.d.ts.map +0 -1
  645. package/dist/commands/extensions.js +0 -55
  646. package/dist/commands/extensions.js.map +0 -1
  647. package/dist/commands/login.d.ts +0 -5
  648. package/dist/commands/login.d.ts.map +0 -1
  649. package/dist/commands/login.js +0 -115
  650. package/dist/commands/login.js.map +0 -1
  651. package/dist/commands/model.d.ts +0 -10
  652. package/dist/commands/model.d.ts.map +0 -1
  653. package/dist/commands/model.js +0 -102
  654. package/dist/commands/model.js.map +0 -1
  655. package/dist/commands/new.d.ts.map +0 -1
  656. package/dist/commands/new.js +0 -25
  657. package/dist/commands/new.js.map +0 -1
  658. package/dist/commands/parse.d.ts +0 -7
  659. package/dist/commands/parse.d.ts.map +0 -1
  660. package/dist/commands/parse.js +0 -14
  661. package/dist/commands/parse.js.map +0 -1
  662. package/dist/commands/registry.d.ts +0 -5
  663. package/dist/commands/registry.d.ts.map +0 -1
  664. package/dist/commands/registry.js +0 -31
  665. package/dist/commands/registry.js.map +0 -1
  666. package/dist/commands/sandbox.d.ts.map +0 -1
  667. package/dist/commands/sandbox.js +0 -78
  668. package/dist/commands/sandbox.js.map +0 -1
  669. package/dist/commands/session-view.d.ts.map +0 -1
  670. package/dist/commands/session-view.js.map +0 -1
  671. package/dist/commands/types.d.ts +0 -66
  672. package/dist/commands/types.d.ts.map +0 -1
  673. package/dist/commands/types.js.map +0 -1
  674. package/dist/commands/utils.d.ts +0 -11
  675. package/dist/commands/utils.d.ts.map +0 -1
  676. package/dist/commands/utils.js.map +0 -1
  677. package/dist/config.d.ts +0 -78
  678. package/dist/config.d.ts.map +0 -1
  679. package/dist/config.js +0 -450
  680. package/dist/config.js.map +0 -1
  681. package/dist/download.d.ts.map +0 -1
  682. package/dist/download.js +0 -89
  683. package/dist/download.js.map +0 -1
  684. package/dist/events.d.ts +0 -43
  685. package/dist/events.d.ts.map +0 -1
  686. package/dist/events.js +0 -456
  687. package/dist/events.js.map +0 -1
  688. package/dist/execution-resolver.d.ts +0 -21
  689. package/dist/execution-resolver.d.ts.map +0 -1
  690. package/dist/execution-resolver.js +0 -170
  691. package/dist/execution-resolver.js.map +0 -1
  692. package/dist/harness/auth.d.ts +0 -16
  693. package/dist/harness/auth.d.ts.map +0 -1
  694. package/dist/harness/auth.js +0 -86
  695. package/dist/harness/auth.js.map +0 -1
  696. package/dist/harness/extensions/loader.d.ts +0 -86
  697. package/dist/harness/extensions/loader.d.ts.map +0 -1
  698. package/dist/harness/extensions/loader.js +0 -525
  699. package/dist/harness/extensions/loader.js.map +0 -1
  700. package/dist/harness/extensions/registry.d.ts +0 -23
  701. package/dist/harness/extensions/registry.d.ts.map +0 -1
  702. package/dist/harness/extensions/registry.js +0 -45
  703. package/dist/harness/extensions/registry.js.map +0 -1
  704. package/dist/harness/extensions/types.d.ts +0 -248
  705. package/dist/harness/extensions/types.d.ts.map +0 -1
  706. package/dist/harness/extensions/types.js.map +0 -1
  707. package/dist/harness/session-store.d.ts +0 -77
  708. package/dist/harness/session-store.d.ts.map +0 -1
  709. package/dist/harness/session-store.js +0 -248
  710. package/dist/harness/session-store.js.map +0 -1
  711. package/dist/harness/settings.d.ts +0 -47
  712. package/dist/harness/settings.d.ts.map +0 -1
  713. package/dist/harness/settings.js +0 -29
  714. package/dist/harness/settings.js.map +0 -1
  715. package/dist/model-registry.d.ts +0 -4
  716. package/dist/model-registry.d.ts.map +0 -1
  717. package/dist/model-registry.js +0 -7
  718. package/dist/model-registry.js.map +0 -1
  719. package/dist/platform-messages.d.ts.map +0 -1
  720. package/dist/platform-messages.js.map +0 -1
  721. package/dist/portal-shell.d.ts +0 -4
  722. package/dist/portal-shell.d.ts.map +0 -1
  723. package/dist/portal-shell.js.map +0 -1
  724. package/dist/provisioner.d.ts.map +0 -1
  725. package/dist/provisioner.js +0 -517
  726. package/dist/provisioner.js.map +0 -1
  727. package/dist/runtime/agent-run-controller.d.ts +0 -31
  728. package/dist/runtime/agent-run-controller.d.ts.map +0 -1
  729. package/dist/runtime/agent-run-controller.js +0 -195
  730. package/dist/runtime/agent-run-controller.js.map +0 -1
  731. package/dist/sandbox/errors.d.ts +0 -6
  732. package/dist/sandbox/errors.d.ts.map +0 -1
  733. package/dist/sandbox/errors.js +0 -11
  734. package/dist/sandbox/errors.js.map +0 -1
  735. package/dist/sandbox/firecracker.d.ts +0 -15
  736. package/dist/sandbox/firecracker.d.ts.map +0 -1
  737. package/dist/sandbox/firecracker.js +0 -212
  738. package/dist/sandbox/firecracker.js.map +0 -1
  739. package/dist/sandbox/image.d.ts +0 -3
  740. package/dist/sandbox/image.d.ts.map +0 -1
  741. package/dist/sandbox/image.js +0 -27
  742. package/dist/sandbox/image.js.map +0 -1
  743. package/dist/sandbox/path-context.d.ts +0 -3
  744. package/dist/sandbox/path-context.d.ts.map +0 -1
  745. package/dist/sandbox/path-context.js +0 -20
  746. package/dist/sandbox/path-context.js.map +0 -1
  747. package/dist/sessions/agent-memory-file-manager.d.ts +0 -19
  748. package/dist/sessions/agent-memory-file-manager.d.ts.map +0 -1
  749. package/dist/sessions/agent-memory-file-manager.js.map +0 -1
  750. package/dist/sessions/metadata.d.ts +0 -3
  751. package/dist/sessions/metadata.d.ts.map +0 -1
  752. package/dist/sessions/metadata.js +0 -11
  753. package/dist/sessions/metadata.js.map +0 -1
  754. package/dist/sessions/policy.d.ts +0 -6
  755. package/dist/sessions/policy.d.ts.map +0 -1
  756. package/dist/sessions/policy.js +0 -24
  757. package/dist/sessions/policy.js.map +0 -1
  758. package/dist/store.d.ts +0 -46
  759. package/dist/store.d.ts.map +0 -1
  760. package/dist/store.js +0 -177
  761. package/dist/store.js.map +0 -1
  762. package/dist/tools/bash.d.ts +0 -10
  763. package/dist/tools/bash.d.ts.map +0 -1
  764. package/dist/tools/bash.js +0 -80
  765. package/dist/tools/bash.js.map +0 -1
  766. package/dist/tools/edit.d.ts +0 -11
  767. package/dist/tools/edit.d.ts.map +0 -1
  768. package/dist/tools/edit.js +0 -131
  769. package/dist/tools/edit.js.map +0 -1
  770. package/dist/tools/event.d.ts +0 -56
  771. package/dist/tools/event.d.ts.map +0 -1
  772. package/dist/tools/event.js +0 -252
  773. package/dist/tools/event.js.map +0 -1
  774. package/dist/tools/index.d.ts +0 -24
  775. package/dist/tools/index.d.ts.map +0 -1
  776. package/dist/tools/index.js +0 -31
  777. package/dist/tools/index.js.map +0 -1
  778. package/dist/tools/react.d.ts +0 -15
  779. package/dist/tools/react.d.ts.map +0 -1
  780. package/dist/tools/react.js +0 -40
  781. package/dist/tools/react.js.map +0 -1
  782. package/dist/tools/read.d.ts +0 -11
  783. package/dist/tools/read.d.ts.map +0 -1
  784. package/dist/tools/read.js +0 -134
  785. package/dist/tools/read.js.map +0 -1
  786. package/dist/tools/sandbox.d.ts +0 -22
  787. package/dist/tools/sandbox.d.ts.map +0 -1
  788. package/dist/tools/sandbox.js.map +0 -1
  789. package/dist/tools/truncate.d.ts +0 -33
  790. package/dist/tools/truncate.d.ts.map +0 -1
  791. package/dist/tools/truncate.js +0 -184
  792. package/dist/tools/truncate.js.map +0 -1
  793. package/dist/tools/types.d.ts +0 -54
  794. package/dist/tools/types.d.ts.map +0 -1
  795. package/dist/tools/types.js.map +0 -1
  796. package/dist/tools/write.d.ts +0 -10
  797. package/dist/tools/write.d.ts.map +0 -1
  798. package/dist/tools/write.js +0 -29
  799. package/dist/tools/write.js.map +0 -1
  800. package/dist/trigger.d.ts +0 -22
  801. package/dist/trigger.d.ts.map +0 -1
  802. package/dist/trigger.js +0 -100
  803. package/dist/trigger.js.map +0 -1
  804. package/dist/utils/date.d.ts +0 -10
  805. package/dist/utils/date.d.ts.map +0 -1
  806. package/dist/utils/date.js +0 -23
  807. package/dist/utils/date.js.map +0 -1
  808. package/dist/utils/env.d.ts +0 -3
  809. package/dist/utils/env.d.ts.map +0 -1
  810. package/dist/utils/env.js +0 -12
  811. package/dist/utils/env.js.map +0 -1
  812. package/dist/utils/file-guards.d.ts +0 -9
  813. package/dist/utils/file-guards.d.ts.map +0 -1
  814. package/dist/utils/file-guards.js +0 -59
  815. package/dist/utils/file-guards.js.map +0 -1
  816. package/dist/utils/fs-atomic.d.ts +0 -10
  817. package/dist/utils/fs-atomic.d.ts.map +0 -1
  818. package/dist/utils/fs-atomic.js +0 -45
  819. package/dist/utils/fs-atomic.js.map +0 -1
  820. package/dist/utils/html.d.ts +0 -2
  821. package/dist/utils/html.d.ts.map +0 -1
  822. package/dist/utils/html.js +0 -4
  823. package/dist/utils/html.js.map +0 -1
  824. package/dist/utils/http-body.d.ts +0 -10
  825. package/dist/utils/http-body.d.ts.map +0 -1
  826. package/dist/utils/http-body.js +0 -34
  827. package/dist/utils/http-body.js.map +0 -1
  828. package/dist/vault/routing.d.ts +0 -3
  829. package/dist/vault/routing.d.ts.map +0 -1
  830. package/dist/vault/routing.js +0 -13
  831. package/dist/vault/routing.js.map +0 -1
  832. package/dist/web/admin/portal.d.ts +0 -5
  833. package/dist/web/admin/portal.d.ts.map +0 -1
  834. package/dist/web/admin/portal.js +0 -2572
  835. package/dist/web/admin/portal.js.map +0 -1
  836. package/dist/web/admin/provider-models.d.ts.map +0 -1
  837. package/dist/web/admin/provider-models.js.map +0 -1
  838. package/dist/web/admin/store.d.ts +0 -13
  839. package/dist/web/admin/store.d.ts.map +0 -1
  840. package/dist/web/admin/store.js +0 -14
  841. package/dist/web/admin/store.js.map +0 -1
  842. package/dist/web/admin/types.d.ts +0 -30
  843. package/dist/web/admin/types.d.ts.map +0 -1
  844. package/dist/web/admin/types.js.map +0 -1
  845. package/dist/web/agent-events/portal.d.ts +0 -3
  846. package/dist/web/agent-events/portal.d.ts.map +0 -1
  847. package/dist/web/agent-events/portal.js +0 -18
  848. package/dist/web/agent-events/portal.js.map +0 -1
  849. package/dist/web/login/oauth.d.ts +0 -6
  850. package/dist/web/login/oauth.d.ts.map +0 -1
  851. package/dist/web/login/oauth.js.map +0 -1
  852. package/dist/web/login/portal.d.ts +0 -17
  853. package/dist/web/login/portal.d.ts.map +0 -1
  854. package/dist/web/login/portal.js.map +0 -1
  855. package/dist/web/login/store.d.ts +0 -8
  856. package/dist/web/login/store.d.ts.map +0 -1
  857. package/dist/web/login/store.js +0 -15
  858. package/dist/web/login/store.js.map +0 -1
  859. package/dist/web/login/types.d.ts.map +0 -1
  860. package/dist/web/login/types.js.map +0 -1
  861. package/dist/web/request.d.ts +0 -3
  862. package/dist/web/request.d.ts.map +0 -1
  863. package/dist/web/request.js +0 -13
  864. package/dist/web/request.js.map +0 -1
  865. package/dist/web/server.d.ts +0 -28
  866. package/dist/web/server.d.ts.map +0 -1
  867. package/dist/web/server.js.map +0 -1
  868. package/dist/web/session-view/command.d.ts +0 -4
  869. package/dist/web/session-view/command.d.ts.map +0 -1
  870. package/dist/web/session-view/command.js +0 -7
  871. package/dist/web/session-view/command.js.map +0 -1
  872. package/dist/web/session-view/portal.d.ts +0 -13
  873. package/dist/web/session-view/portal.d.ts.map +0 -1
  874. package/dist/web/session-view/portal.js.map +0 -1
  875. package/dist/web/session-view/service.d.ts +0 -6
  876. package/dist/web/session-view/service.d.ts.map +0 -1
  877. package/dist/web/session-view/service.js +0 -498
  878. package/dist/web/session-view/service.js.map +0 -1
  879. package/dist/web/session-view/store.d.ts +0 -8
  880. package/dist/web/session-view/store.d.ts.map +0 -1
  881. package/dist/web/session-view/store.js +0 -15
  882. package/dist/web/session-view/store.js.map +0 -1
  883. package/dist/web/session-view/types.d.ts.map +0 -1
  884. package/dist/web/session-view/types.js.map +0 -1
  885. package/dist/web/token-store.d.ts.map +0 -1
  886. package/dist/web/token-store.js.map +0 -1
  887. package/dist/web/types.d.ts.map +0 -1
  888. package/dist/web/types.js.map +0 -1
  889. /package/dist/{commands → adapters/commands}/admin.d.ts +0 -0
  890. /package/dist/{commands → adapters/commands}/new.d.ts +0 -0
  891. /package/dist/{commands → adapters/commands}/session-view.d.ts +0 -0
  892. /package/dist/{commands → adapters/commands}/types.js +0 -0
  893. /package/dist/{harness/extensions → adapters/web/admin}/types.js +0 -0
  894. /package/dist/{tools → adapters/web/login}/types.js +0 -0
  895. /package/dist/{web/admin → adapters/web/session-view}/types.js +0 -0
  896. /package/dist/{web → adapters/web}/types.d.ts +0 -0
  897. /package/dist/{web/login → adapters/web}/types.js +0 -0
  898. /package/dist/{download.d.ts → cli/download.d.ts} +0 -0
  899. /package/dist/{web/session-view → cli}/types.js +0 -0
  900. /package/dist/{web → harness/tools}/types.js +0 -0
package/dist/main.js CHANGED
@@ -1,39 +1,56 @@
1
1
  #!/usr/bin/env node
2
2
  import "./observability/instrument.js";
3
- import { join, resolve } from "path";
4
- import { mkdirSync, statSync, writeFileSync } from "fs";
5
- import { homedir } from "os";
6
- import { fileURLToPath } from "url";
7
- import { dirname, join as pathJoin } from "path";
8
- import { DiscordMessagingBot } from "./adapters/discord/bot.js";
3
+ import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
4
+ import { dirname, join } from "node:path";
5
+ import { fileURLToPath } from "node:url";
9
6
  import { GithubMessagingBot } from "./adapters/github/bot.js";
7
+ import { createGithubToolPack } from "./adapters/github/tool-pack.js";
10
8
  import { TelegramMessagingBot } from "./adapters/telegram/bot.js";
11
9
  import { SlackMessagingBot as SlackMessagingBotClass } from "./adapters/slack/bot.js";
12
- import { downloadChannel } from "./download.js";
13
- import { EventsWatcher } from "./events.js";
10
+ import { createSlackToolPack } from "./adapters/slack/tool-pack.js";
11
+ import { SLACK_BLOCKKIT_TOOL } from "./adapters/slack/tools/blockkit.js";
12
+ import { GITHUB_CHECKS_TOOL } from "./adapters/github/tools/checks.js";
13
+ import { GITHUB_ISSUE_TOOL } from "./adapters/github/tools/issue.js";
14
+ import { GITHUB_PR_TOOL } from "./adapters/github/tools/pr.js";
15
+ import { GITHUB_READ_TOOL } from "./adapters/github/tools/read.js";
16
+ import { GITHUB_REVIEW_REPLY_TOOL } from "./adapters/github/tools/review-reply.js";
17
+ import { GITHUB_SYNC_TOOL } from "./adapters/github/tools/sync.js";
18
+ import { downloadChannel } from "./cli/download.js";
19
+ import { EventScheduler } from "./events/scheduler.js";
14
20
  import * as log from "./log.js";
15
- import { startWebServer } from "./web/server.js";
16
- import { InMemoryAdminTokenStore } from "./web/admin/store.js";
17
- import { InMemoryLinkTokenStore } from "./web/login/store.js";
18
- import { InMemorySessionViewTokenStore } from "./web/session-view/store.js";
19
- import { DockerContainerManager } from "./provisioner.js";
20
- import { assertStateDirOutsideWorkspace, createGlobalSettingsFile, loadGlobalSettings, MissingGlobalSettingsError, } from "./config.js";
21
- import { configureHttpDispatcher, defaultAuthPath, defaultModelsJsonPath, parseHttpIdleTimeoutMs, } from "./harness/index.js";
22
- import { existsSync, readFileSync } from "fs";
23
- import { readEnv, setEnvAliases } from "./utils/env.js";
24
- import { ensureDirExists, isRecord, readJsonFileIfExists } from "./utils/file-guards.js";
25
- import { SandboxError, parseSandboxArg, validateSandbox, } from "./sandbox/index.js";
21
+ import { createProcessShutdownHandler, runShutdownSteps } from "./cli/process-lifecycle.js";
22
+ import { startWebServer } from "./adapters/web/server.js";
23
+ import { InMemoryAdminTokenStore } from "./adapters/web/admin/portal.js";
24
+ import { InMemoryLinkTokenStore } from "./adapters/web/login/portal.js";
25
+ import { InMemorySessionViewTokenStore } from "./adapters/web/session-view/portal.js";
26
+ import { DockerContainerManager } from "./sandbox/provisioner.js";
27
+ import { loadGlobalSettings, MissingGlobalSettingsError } from "./settings/index.js";
28
+ import { assertStateDirOutsideWorkspace } from "./file-guards.js";
29
+ import { resolveLinkBaseUrl } from "./env-manifest.js";
30
+ import { configureHttpDispatcher, parseHttpIdleTimeoutMs } from "./harness/http.js";
31
+ import { defaultModelsJsonPath } from "./harness/models.js";
32
+ import { readEnv, setEnvAliases } from "./env-manifest.js";
33
+ import { ensureDirExists, readJsonFileIfExists } from "./file-guards.js";
34
+ import { SandboxError } from "./sandbox/utils.js";
35
+ import { validateSandbox } from "./sandbox/registry.js";
36
+ import { helpText, resolveBoot } from "./cli/boot.js";
37
+ import { runOnboardCommand } from "./cli/onboard.js";
38
+ import { envReport, noPlatformsMessage, platformIsActive } from "./env-manifest.js";
26
39
  import { FileVaultManager } from "./vault/index.js";
27
- import { runExtCommand } from "./cli/ext.js";
40
+ import { runOfficeCommand } from "./cli/office.js";
41
+ import { runSessionsCommand } from "./cli/sessions.js";
42
+ import { runSandboxCommand } from "./cli/sandbox.js";
43
+ import { buildContainerBindTranslator, createWorkspace, formatUnmigratedOfficesError, migrateLegacyOffices, OfficeRegistry, } from "./office/index.js";
28
44
  import { createConversationRuntime } from "./runtime/conversation-runtime.js";
29
- import { ChannelStore } from "./store.js";
30
- import * as Sentry from "@sentry/node";
45
+ import { captureError, shutdownObservability } from "./observability/index.js";
46
+ import { MemoryCapture } from "./memory-capture/index.js";
47
+ import { errorMessage, isRecord } from "./unknown-values.js";
31
48
  function getVersion() {
32
- // Try to find package.json in the dist directory or parent
49
+ const moduleDir = dirname(fileURLToPath(import.meta.url));
33
50
  const possiblePaths = [
34
- pathJoin(dirname(fileURLToPath(import.meta.url)), "package.json"),
35
- pathJoin(dirname(fileURLToPath(import.meta.url)), "..", "package.json"),
36
- pathJoin(process.cwd(), "package.json"),
51
+ join(moduleDir, "package.json"),
52
+ join(dirname(moduleDir), "package.json"),
53
+ join(process.cwd(), "package.json"),
37
54
  ];
38
55
  for (const pkgPath of possiblePaths) {
39
56
  const pkg = readJsonFileIfExists(pkgPath, (value) => isRecord(value), () => "Ignoring package.json while resolving version");
@@ -52,57 +69,16 @@ const GITHUB_APP_PRIVATE_KEY_PATH = readEnv("GITHUB_APP_PRIVATE_KEY_PATH");
52
69
  const GITHUB_INSTALLATION_ID = readEnv("GITHUB_INSTALLATION_ID");
53
70
  const GITHUB_REPOS = readEnv("GITHUB_REPOS");
54
71
  const GITHUB_POLL_INTERVAL = readEnv("GITHUB_POLL_INTERVAL");
55
- const LINK_URL = readEnv("LINK_URL");
72
+ const GITHUB_WEBHOOK_SECRET = readEnv("GITHUB_WEBHOOK_SECRET");
73
+ const LINK_BASE_URL = resolveLinkBaseUrl();
56
74
  const LINK_PORT_RAW = readEnv("LINK_PORT");
57
- const LINK_PORT = LINK_PORT_RAW ? parseInt(LINK_PORT_RAW, 10) : LINK_URL ? 8181 : undefined;
58
- function parseArgs() {
59
- const args = process.argv.slice(2);
60
- let sandbox = { type: "host" };
61
- let workingDir;
62
- let stateDirArg;
63
- let downloadChannelId;
64
- let showOnboard = false;
65
- let showVersion = false;
66
- for (let i = 0; i < args.length; i++) {
67
- const arg = args[i];
68
- if (arg === "--version" || arg === "-v" || arg === "-V") {
69
- showVersion = true;
70
- }
71
- else if (arg === "--onboard") {
72
- showOnboard = true;
73
- }
74
- else if (arg.startsWith("--sandbox=")) {
75
- sandbox = parseSandboxArg(arg.slice("--sandbox=".length));
76
- }
77
- else if (arg === "--sandbox") {
78
- sandbox = parseSandboxArg(args[++i] || "");
79
- }
80
- else if (arg.startsWith("--state-dir=")) {
81
- stateDirArg = arg.slice("--state-dir=".length);
82
- }
83
- else if (arg === "--state-dir") {
84
- stateDirArg = args[++i];
85
- }
86
- else if (arg.startsWith("--download=")) {
87
- downloadChannelId = arg.slice("--download=".length);
88
- }
89
- else if (arg === "--download") {
90
- downloadChannelId = args[++i];
91
- }
92
- else if (!arg.startsWith("-")) {
93
- workingDir = arg;
94
- }
95
- }
96
- return {
97
- workingDir: workingDir ? resolve(workingDir) : undefined,
98
- stateDir: stateDirArg ? resolve(stateDirArg) : undefined,
99
- sandbox,
100
- downloadChannel: downloadChannelId,
101
- showOnboard,
102
- showVersion,
103
- };
104
- }
75
+ const LINK_PORT = LINK_PORT_RAW ? parseInt(LINK_PORT_RAW, 10) : LINK_BASE_URL ? 8181 : undefined;
76
+ const OPENCONNECTOR_ENDPOINT = readEnv("OPENCONNECTOR_ENDPOINT");
77
+ const openConnector = OPENCONNECTOR_ENDPOINT
78
+ ? { url: OPENCONNECTOR_ENDPOINT }
79
+ : undefined;
105
80
  const WORLD_WRITABLE_MODE = 0o002;
81
+ const SHUTDOWN_DRAIN_TIMEOUT_MS = 5 * 60_000;
106
82
  function ensureSecureStateDir(path) {
107
83
  let stat;
108
84
  try {
@@ -157,96 +133,121 @@ function handleStartupError(error) {
157
133
  console.error(String(error));
158
134
  process.exit(1);
159
135
  }
160
- // `mikan ext …` manages extensions and exits; handle it before the normal
161
- // bot-mode argument parsing (which requires a workspace dir and tokens).
162
- if (process.argv[2] === "ext") {
163
- const code = await runExtCommand(process.argv.slice(3));
164
- process.exit(code);
165
- }
166
- let parsedArgs;
136
+ let plan;
167
137
  try {
168
- parsedArgs = parseArgs();
138
+ plan = resolveBoot();
169
139
  }
170
140
  catch (error) {
171
141
  handleStartupError(error);
172
142
  }
173
- // Global fetch: proxy support (HTTP_PROXY/HTTPS_PROXY/NO_PROXY) and idle
174
- // timeouts so a stalled LLM stream errors out instead of hanging a session.
143
+ if (plan.mode === "office") {
144
+ process.exit(runOfficeCommand(plan.officeArgs ?? []));
145
+ }
146
+ if (plan.mode === "sessions") {
147
+ process.exit(await runSessionsCommand(plan.sessionsArgs ?? []));
148
+ }
149
+ if (plan.mode === "sandbox") {
150
+ process.exit(await runSandboxCommand(plan.sandboxArgs ?? []));
151
+ }
175
152
  const httpIdleTimeoutMs = parseHttpIdleTimeoutMs(readEnv("HTTP_IDLE_TIMEOUT"));
176
153
  configureHttpDispatcher(httpIdleTimeoutMs);
177
- // Handle --version
178
- if (parsedArgs.showVersion) {
154
+ if (plan.mode === "help") {
155
+ console.log(helpText());
156
+ process.exit(0);
157
+ }
158
+ if (plan.mode === "env") {
159
+ console.log(envReport());
160
+ process.exit(0);
161
+ }
162
+ if (plan.mode === "version") {
179
163
  console.log(getVersion());
180
164
  process.exit(0);
181
165
  }
182
- // Handle --onboard mode
183
- if (parsedArgs.showOnboard) {
184
- const stateDir = parsedArgs.stateDir ?? join(homedir(), ".mikan");
166
+ if (plan.mode === "onboard") {
167
+ const stateDir = plan.stateDir;
185
168
  setEnvAliases("STATE_DIR", stateDir);
186
169
  ensureSecureStateDir(stateDir);
187
170
  try {
188
- const settingsPath = createGlobalSettingsFile(stateDir);
189
- console.log(`Created global settings at ${settingsPath}`);
190
- console.log("Review the file, then start mikan with your working directory.");
191
- process.exit(0);
171
+ process.exit(await runOnboardCommand(stateDir));
192
172
  }
193
173
  catch (err) {
194
- console.error(err instanceof Error ? err.message : String(err));
174
+ console.error(errorMessage(err));
195
175
  process.exit(1);
196
176
  }
197
177
  }
198
- // Handle --download mode (Slack only)
199
- if (parsedArgs.downloadChannel) {
178
+ if (plan.mode === "download" && plan.downloadChannel) {
200
179
  if (!SLACK_BOT_TOKEN) {
201
180
  console.error("Missing env: SLACK_BOT_TOKEN");
202
181
  process.exit(1);
203
182
  }
204
- await downloadChannel(parsedArgs.downloadChannel, SLACK_BOT_TOKEN);
183
+ await downloadChannel(plan.downloadChannel, SLACK_BOT_TOKEN);
205
184
  process.exit(0);
206
185
  }
207
- // Normal bot mode - require working dir
208
- if (!parsedArgs.workingDir) {
209
- console.error("Usage: mikan [--state-dir=<dir>] [--sandbox=host|container:<name>|image:<image>|firecracker:<vm-id>:<host-path>|cloudflare:<sandbox-id>] <working-directory>");
210
- console.error(" mikan --onboard [--state-dir=<dir>]");
211
- console.error(" mikan --download <channel-id>");
212
- process.exit(1);
213
- }
214
- const { workingDir, sandbox } = { workingDir: parsedArgs.workingDir, sandbox: parsedArgs.sandbox };
215
- const stateDir = parsedArgs.stateDir ?? join(homedir(), ".mikan");
186
+ const sandbox = plan.sandbox;
187
+ const stateDir = plan.stateDir;
188
+ const workingDir = plan.workingDir;
216
189
  setEnvAliases("STATE_DIR", stateDir);
217
190
  ensureSecureStateDir(stateDir);
191
+ if (!plan.workingDirExplicit) {
192
+ ensureDirExists(workingDir);
193
+ }
218
194
  try {
219
195
  assertStateDirOutsideWorkspace(stateDir, workingDir, sandbox.type);
220
196
  }
221
197
  catch (error) {
222
198
  handleStartupError(error);
223
199
  }
224
- // Validate platform tokens
225
- const hasSlack = !!(SLACK_APP_TOKEN && SLACK_BOT_TOKEN);
226
- const hasTelegram = !!TELEGRAM_BOT_TOKEN;
227
- const hasDiscord = !!DISCORD_BOT_TOKEN;
228
- const hasGithub = !!(GITHUB_APP_ID &&
229
- GITHUB_INSTALLATION_ID &&
230
- (GITHUB_APP_PRIVATE_KEY || GITHUB_APP_PRIVATE_KEY_PATH));
200
+ const hasSlack = platformIsActive("slack");
201
+ const hasTelegram = platformIsActive("telegram");
202
+ const hasDiscord = platformIsActive("discord");
203
+ const hasGithub = platformIsActive("github");
231
204
  if (!hasSlack && !hasTelegram && !hasDiscord && !hasGithub) {
232
- console.error("No platform tokens found. Set one of:\n" +
233
- " Slack: SLACK_APP_TOKEN + SLACK_BOT_TOKEN\n" +
234
- " Telegram: TELEGRAM_BOT_TOKEN\n" +
235
- " Discord: DISCORD_BOT_TOKEN\n" +
236
- " GitHub: GITHUB_APP_ID + GITHUB_INSTALLATION_ID + GITHUB_APP_PRIVATE_KEY(_PATH)");
205
+ console.error(noPlatformsMessage());
206
+ process.exit(1);
207
+ }
208
+ const enabledPlatforms = [
209
+ ...(hasSlack ? ["slack"] : []),
210
+ ...(hasTelegram ? ["telegram"] : []),
211
+ ...(hasDiscord ? ["discord"] : []),
212
+ ...(hasGithub ? ["github"] : []),
213
+ ];
214
+ const officeMigration = (() => {
215
+ try {
216
+ return migrateLegacyOffices({ workspaceRoot: workingDir, stateDir, enabledPlatforms });
217
+ }
218
+ catch (error) {
219
+ handleStartupError(error);
220
+ }
221
+ })();
222
+ if (officeMigration.unowned.length > 0 ||
223
+ officeMigration.failed.length > 0 ||
224
+ officeMigration.vaultConflicts.length > 0 ||
225
+ officeMigration.stateDirConflicts.length > 0) {
226
+ console.error(formatUnmigratedOfficesError(officeMigration));
237
227
  process.exit(1);
238
228
  }
229
+ if (officeMigration.migrated.length > 0 || officeMigration.recovered.length > 0) {
230
+ console.log(` Office layout migration: ${officeMigration.migrated.length} moved, ` +
231
+ `${officeMigration.recovered.length} recovered.`);
232
+ }
233
+ if (officeMigration.vaultKeysMigrated.length > 0) {
234
+ console.log(` Vault keys migrated to office keys: ${officeMigration.vaultKeysMigrated.length}.`);
235
+ }
236
+ if (officeMigration.stateDirsMigrated.length > 0) {
237
+ console.log(` Host state dirs migrated to office keys: ${officeMigration.stateDirsMigrated.length}.`);
238
+ }
239
239
  try {
240
240
  await validateSandbox(sandbox);
241
241
  }
242
242
  catch (error) {
243
243
  handleStartupError(error);
244
244
  }
245
+ const workspace = createWorkspace({ root: workingDir, stateDir });
245
246
  const vaultManager = new FileVaultManager(stateDir);
246
247
  if (vaultManager.isEnabled()) {
247
248
  console.log(sandbox.type === "container"
248
249
  ? " Vault system enabled. Container vault active."
249
- : sandbox.type === "image" || sandbox.type === "firecracker" || sandbox.type === "cloudflare"
250
+ : sandbox.type === "image" || sandbox.type === "cloudflare"
250
251
  ? " Vault system enabled. Conversation-scoped credential routing active."
251
252
  : " Vault system enabled. Host mode will not inject vault env.");
252
253
  }
@@ -258,11 +259,12 @@ const startupConfig = (() => {
258
259
  handleStartupError(error);
259
260
  }
260
261
  })();
261
- const sandboxLimits = startupConfig.sandboxCpus || startupConfig.sandboxMemory
262
- ? { cpus: startupConfig.sandboxCpus, memory: startupConfig.sandboxMemory }
262
+ const sandboxSettings = startupConfig.sandbox;
263
+ const sandboxLimits = sandboxSettings?.cpus || sandboxSettings?.memory
264
+ ? { cpus: sandboxSettings?.cpus, memory: sandboxSettings?.memory }
263
265
  : undefined;
264
- const sandboxBoostLimits = startupConfig.sandboxBoostCpus || startupConfig.sandboxBoostMemory
265
- ? { cpus: startupConfig.sandboxBoostCpus, memory: startupConfig.sandboxBoostMemory }
266
+ const sandboxBoostLimits = sandboxSettings?.boost?.cpus || sandboxSettings?.boost?.memory
267
+ ? { cpus: sandboxSettings?.boost?.cpus, memory: sandboxSettings?.boost?.memory }
266
268
  : undefined;
267
269
  const provisioner = sandbox.type === "image"
268
270
  ? new DockerContainerManager(sandbox.image, {
@@ -270,11 +272,20 @@ const provisioner = sandbox.type === "image"
270
272
  boostLimits: sandboxBoostLimits,
271
273
  })
272
274
  : undefined;
275
+ const registryOffices = new OfficeRegistry(stateDir).getOffices();
276
+ if (provisioner && registryOffices.length > 0) {
277
+ provisioner.armContainerLayoutMigration(buildContainerBindTranslator({
278
+ offices: registryOffices,
279
+ workspaceRoot: workingDir,
280
+ stateDir,
281
+ }));
282
+ }
283
+ const resourceController = sandbox.type === "image" ? provisioner : undefined;
273
284
  if (sandbox.type === "image") {
274
- ensureDirExists(join(workingDir, "skills"));
275
- ensureDirExists(join(workingDir, "events"));
285
+ ensureDirExists(workspace.skillsDir);
286
+ ensureDirExists(workspace.agentsDir);
276
287
  try {
277
- writeFileSync(join(workingDir, "MEMORY.md"), "", { flag: "wx" });
288
+ writeFileSync(workspace.memoryPath, "", { flag: "wx" });
278
289
  }
279
290
  catch (err) {
280
291
  if (err.code !== "EEXIST")
@@ -288,64 +299,83 @@ setInterval(() => linkTokenStore.purge(), 5 * 60 * 1000).unref();
288
299
  setInterval(() => sessionViewTokenStore.purge(), 5 * 60 * 1000).unref();
289
300
  setInterval(() => adminTokenStore.purge(), 5 * 60 * 1000).unref();
290
301
  function portalBaseUrl() {
291
- if (LINK_URL)
292
- return LINK_URL.replace(/\/+$/, "");
302
+ if (LINK_BASE_URL)
303
+ return LINK_BASE_URL;
293
304
  if (LINK_PORT)
294
305
  return `http://localhost:${LINK_PORT}`;
295
306
  return undefined;
296
307
  }
297
- /** Idle timeout for managed image containers (10 minutes) */
298
- const IMAGE_IDLE_TIMEOUT_MS = 10 * 60 * 1000;
308
+ const MANAGED_SANDBOX_IDLE_TIMEOUT_MS = 10 * 60 * 1000;
299
309
  if (provisioner) {
300
310
  await provisioner.reconcile();
301
- await provisioner.stopIdle(IMAGE_IDLE_TIMEOUT_MS);
302
- setInterval(() => provisioner.stopIdle(IMAGE_IDLE_TIMEOUT_MS), IMAGE_IDLE_TIMEOUT_MS).unref();
311
+ await provisioner.stopIdle(MANAGED_SANDBOX_IDLE_TIMEOUT_MS);
312
+ setInterval(() => provisioner.stopIdle(MANAGED_SANDBOX_IDLE_TIMEOUT_MS), MANAGED_SANDBOX_IDLE_TIMEOUT_MS).unref();
303
313
  }
304
- // Declared before the runtime so the notifier closure can capture them;
305
- // bots register below once their platforms initialize.
306
- const bots = [];
307
314
  const botsByPlatform = {};
308
- /**
309
- * Resolve which platform bot to use: an explicit platform, or the sole
310
- * running one. Mirrors event-file platform resolution.
311
- */
312
- function resolvePlatformBot(op, platform) {
313
- const available = Object.keys(botsByPlatform);
314
- const key = platform?.trim().toLowerCase() || (available.length === 1 ? available[0] : undefined);
315
- const bot = key ? botsByPlatform[key] : undefined;
315
+ function requireGithubBot(op) {
316
+ const bot = botsByPlatform.github;
316
317
  if (!bot) {
317
- throw new Error(platform
318
- ? `${op}: unknown platform '${platform}' (available: ${available.join(", ") || "none"})`
319
- : `${op}: multiple platforms active (${available.join(", ")}); specify platform`);
318
+ throw new Error(`${op}: the GitHub platform is not running`);
320
319
  }
321
- return [key, bot];
322
- }
323
- /** Extension `api.notify` backend: post into a conversation without a run. */
324
- const platformNotifier = async (conversationId, text, platform) => {
325
- const [key, bot] = resolvePlatformBot("notify", platform);
326
- await bot.postMessage(conversationId, text);
327
- log.logInfo(`[notify] posted to ${key}/${conversationId} (${text.length} chars)`);
328
- };
329
- /** Extension `api.react` backend: add a reaction to a message. */
330
- const platformReactor = async (conversationId, messageTs, emoji, platform) => {
331
- const [key, bot] = resolvePlatformBot("react", platform);
332
- if (!bot.addReaction) {
333
- throw new Error(`react: platform '${key}' does not support reactions`);
320
+ return bot;
321
+ }
322
+ function requireSlackBot(op) {
323
+ const bot = botsByPlatform.slack;
324
+ if (!bot) {
325
+ throw new Error(`${op}: the Slack platform is not running`);
334
326
  }
335
- await bot.addReaction(conversationId, messageTs, emoji);
336
- log.logInfo(`[react] :${emoji}: on ${key}/${conversationId}`);
337
- };
327
+ return bot;
328
+ }
329
+ function buildPlatformToolPackFactories() {
330
+ const factories = [];
331
+ if (hasSlack) {
332
+ const platformSlackOps = {
333
+ postBlocks: async (conversationId, { text, blocks, threadTs }) => {
334
+ const bot = requireSlackBot(SLACK_BLOCKKIT_TOOL);
335
+ const ts = threadTs
336
+ ? await bot.postInThreadBlocks(conversationId, threadTs, text, blocks)
337
+ : await bot.postMessageBlocks(conversationId, text, blocks);
338
+ bot.logBotResponse(conversationId, text, ts, threadTs, blocks);
339
+ return { ts };
340
+ },
341
+ updateBlocks: async (conversationId, { ts, text, blocks, threadTs }) => {
342
+ const bot = requireSlackBot(SLACK_BLOCKKIT_TOOL);
343
+ await bot.updateMessageBlocks(conversationId, ts, text, blocks);
344
+ bot.logBotResponse(conversationId, text, ts, threadTs, blocks);
345
+ },
346
+ ownsBlockKitMessage: (conversationId, ts, threadTs) => requireSlackBot(SLACK_BLOCKKIT_TOOL).ownsBlockKitMessage(conversationId, ts, threadTs),
347
+ };
348
+ factories.push(() => createSlackToolPack(platformSlackOps));
349
+ }
350
+ if (!hasGithub)
351
+ return factories;
352
+ const platformGithubOps = {
353
+ pushAndCreatePr: (conversationId, request) => requireGithubBot(GITHUB_PR_TOOL).ops.pushAndCreatePr(conversationId, request),
354
+ getChecks: (conversationId, branch) => requireGithubBot(GITHUB_CHECKS_TOOL).ops.getChecks(conversationId, branch),
355
+ getJobLog: (conversationId, jobId) => requireGithubBot(GITHUB_CHECKS_TOOL).ops.getJobLog(conversationId, jobId),
356
+ replyToReviewThread: (conversationId, commentId, body) => requireGithubBot(GITHUB_REVIEW_REPLY_TOOL).ops.replyToReviewThread(conversationId, commentId, body),
357
+ syncRepo: (conversationId, branch) => requireGithubBot(GITHUB_SYNC_TOOL).ops.syncRepo(conversationId, branch),
358
+ readGithub: (conversationId, request) => requireGithubBot(GITHUB_READ_TOOL).ops.readGithub(conversationId, request),
359
+ manageIssue: (conversationId, request) => requireGithubBot(GITHUB_ISSUE_TOOL).ops.manageIssue(conversationId, request),
360
+ };
361
+ factories.push(() => createGithubToolPack(platformGithubOps));
362
+ return factories;
363
+ }
364
+ let eventScheduler;
338
365
  const handler = createConversationRuntime({
339
- workingDir,
366
+ workspace,
367
+ eventScheduler: () => eventScheduler,
340
368
  sandbox,
341
369
  vaultManager,
342
370
  provisioner,
371
+ resourceController,
343
372
  linkTokenStore,
344
373
  sessionViewTokenStore,
345
374
  adminTokenStore,
375
+ openConnector,
346
376
  portalBaseUrl: portalBaseUrl(),
347
- platformNotifier,
348
- platformReactor,
377
+ platformToolPackFactories: buildPlatformToolPackFactories(),
378
+ memoryCapture: (models) => new MemoryCapture(models),
349
379
  });
350
380
  const sandboxDesc = sandbox.type === "host"
351
381
  ? "host"
@@ -353,35 +383,15 @@ const sandboxDesc = sandbox.type === "host"
353
383
  ? `container:${sandbox.container}`
354
384
  : sandbox.type === "image"
355
385
  ? `image:${sandbox.image}`
356
- : sandbox.type === "firecracker"
357
- ? `firecracker:${sandbox.vmId}`
358
- : `cloudflare:${sandbox.sandboxId}`;
386
+ : `cloudflare:${sandbox.sandboxId}`;
359
387
  log.logStartup(workingDir, sandboxDesc);
360
388
  logHarnessStartupSummary();
361
- /**
362
- * One-look confirmation of the harness runtime surface, aimed at upgrade
363
- * verification: config moved from ~/.pi to ~/.mikan with no fallback, so a
364
- * missing auth.json here is the first thing to check when runs fail.
365
- */
366
389
  function logHarnessStartupSummary() {
367
390
  const proxy = process.env.HTTPS_PROXY ??
368
391
  process.env.https_proxy ??
369
392
  process.env.HTTP_PROXY ??
370
393
  process.env.http_proxy;
371
394
  log.logInfo(`HTTP dispatcher: idle timeout ${httpIdleTimeoutMs}ms${proxy ? `, proxy ${proxy}` : ", no proxy"}`);
372
- const authPath = defaultAuthPath();
373
- if (existsSync(authPath)) {
374
- try {
375
- const providers = Object.keys(JSON.parse(readFileSync(authPath, "utf-8")));
376
- log.logInfo(`Harness auth: ${authPath} (providers: ${providers.join(", ") || "none"})`);
377
- }
378
- catch {
379
- log.logWarning(`Harness auth: ${authPath} exists but is not valid JSON`);
380
- }
381
- }
382
- else {
383
- log.logInfo(`Harness auth: ${authPath} missing — provider keys come from env vars only`);
384
- }
385
395
  const modelsPath = defaultModelsJsonPath();
386
396
  log.logInfo(existsSync(modelsPath)
387
397
  ? `Harness models.json: ${modelsPath}`
@@ -393,14 +403,11 @@ if (hasSlack) {
393
403
  if (!slackMessagingBotToken || !slackAppToken) {
394
404
  throw new Error("Slack startup requires both SLACK_APP_TOKEN and SLACK_BOT_TOKEN");
395
405
  }
396
- const sharedStore = new ChannelStore({ workingDir, botToken: slackMessagingBotToken });
397
406
  const slackMessagingBot = new SlackMessagingBotClass(handler, {
398
407
  appToken: slackAppToken,
399
408
  botToken: slackMessagingBotToken,
400
- workingDir,
401
- store: sharedStore,
409
+ workspace,
402
410
  });
403
- bots.push(slackMessagingBot);
404
411
  botsByPlatform.slack = slackMessagingBot;
405
412
  log.logInfo("Platform: Slack");
406
413
  }
@@ -411,9 +418,8 @@ if (hasTelegram) {
411
418
  }
412
419
  const telegramMessagingBot = new TelegramMessagingBot(handler, {
413
420
  token: telegramToken,
414
- workingDir,
421
+ workspace,
415
422
  });
416
- bots.push(telegramMessagingBot);
417
423
  botsByPlatform.telegram = telegramMessagingBot;
418
424
  log.logInfo("Platform: Telegram");
419
425
  }
@@ -422,11 +428,11 @@ if (hasDiscord) {
422
428
  if (!discordToken) {
423
429
  throw new Error("Discord startup requires DISCORD_BOT_TOKEN");
424
430
  }
431
+ const { DiscordMessagingBot } = await import("./adapters/discord/bot.js");
425
432
  const discordMessagingBot = new DiscordMessagingBot(handler, {
426
433
  token: discordToken,
427
- workingDir,
434
+ workspace,
428
435
  });
429
- bots.push(discordMessagingBot);
430
436
  botsByPlatform.discord = discordMessagingBot;
431
437
  log.logInfo("Platform: Discord");
432
438
  }
@@ -434,7 +440,6 @@ if (hasGithub) {
434
440
  if (!GITHUB_APP_ID || !GITHUB_INSTALLATION_ID) {
435
441
  throw new Error("GitHub startup requires GITHUB_APP_ID and GITHUB_INSTALLATION_ID");
436
442
  }
437
- // Env vars flatten PEM newlines to literal `\n`; a key file avoids that.
438
443
  const githubPrivateKey = GITHUB_APP_PRIVATE_KEY_PATH
439
444
  ? readFileSync(GITHUB_APP_PRIVATE_KEY_PATH, "utf-8")
440
445
  : GITHUB_APP_PRIVATE_KEY?.replace(/\\n/g, "\n");
@@ -453,15 +458,20 @@ if (hasGithub) {
453
458
  : [],
454
459
  pollIntervalMs: (Number.isFinite(pollIntervalSeconds) && pollIntervalSeconds > 0 ? pollIntervalSeconds : 60) *
455
460
  1000,
456
- workingDir,
461
+ workspace,
457
462
  syncStatePath: join(stateDir, "github-sync.json"),
458
463
  });
459
- bots.push(githubMessagingBot);
460
464
  botsByPlatform.github = githubMessagingBot;
461
465
  log.logInfo("Platform: GitHub");
462
466
  }
463
- if (LINK_PORT) {
464
- startWebServer({
467
+ const githubBotForWebhook = botsByPlatform.github;
468
+ if (GITHUB_WEBHOOK_SECRET && (!githubBotForWebhook || !LINK_PORT)) {
469
+ log.logWarning("GITHUB_WEBHOOK_SECRET is set but " +
470
+ (githubBotForWebhook ? "LINK_PORT is not" : "the GitHub platform is not enabled") +
471
+ " — the webhook endpoint will not be served");
472
+ }
473
+ const webServer = LINK_PORT
474
+ ? startWebServer({
465
475
  port: LINK_PORT,
466
476
  linkTokenStore,
467
477
  vaultManager,
@@ -472,28 +482,101 @@ if (LINK_PORT) {
472
482
  },
473
483
  sessionViewTokenStore,
474
484
  sessionViewInteractive: { handler, botsByPlatform },
475
- adminOptions: { adminTokenStore, workingDir, runtime: handler, sandbox, botsByPlatform },
485
+ adminOptions: {
486
+ adminTokenStore,
487
+ workspace,
488
+ runtime: handler,
489
+ sandbox,
490
+ botsByPlatform,
491
+ eventScheduler: () => eventScheduler,
492
+ },
493
+ githubWebhook: GITHUB_WEBHOOK_SECRET && githubBotForWebhook
494
+ ? {
495
+ secret: GITHUB_WEBHOOK_SECRET,
496
+ onPoke: () => githubBotForWebhook.requestPoll(),
497
+ }
498
+ : undefined,
499
+ })
500
+ : undefined;
501
+ function closeWebServer() {
502
+ if (!webServer)
503
+ return Promise.resolve();
504
+ return new Promise((resolve, reject) => {
505
+ webServer.close((error) => (error ? reject(error) : resolve()));
476
506
  });
477
507
  }
478
- // Start events watcher with explicit platform routing
479
- const eventsWatcher = new EventsWatcher(join(workingDir, "events"), botsByPlatform);
508
+ async function stopConversationIntake() {
509
+ const results = await Promise.allSettled([
510
+ ...Object.values(botsByPlatform).map((bot) => bot.stop()),
511
+ closeWebServer(),
512
+ ]);
513
+ const failures = results.flatMap((result) => result.status === "rejected" ? [result.reason] : []);
514
+ if (failures.length > 0)
515
+ throw new AggregateError(failures, "Failed to stop conversation intake");
516
+ }
517
+ async function waitForGracefulDrain(drain) {
518
+ let timeout;
519
+ const settled = await Promise.race([
520
+ drain.then(() => true),
521
+ new Promise((resolve) => {
522
+ timeout = setTimeout(() => resolve(false), SHUTDOWN_DRAIN_TIMEOUT_MS);
523
+ }),
524
+ ]);
525
+ if (timeout)
526
+ clearTimeout(timeout);
527
+ return settled;
528
+ }
529
+ async function drainConversationWork(intakeStop) {
530
+ const gracefulDrain = Promise.allSettled([intakeStop]);
531
+ if (!(await waitForGracefulDrain(gracefulDrain))) {
532
+ const runtimeResult = await Promise.allSettled([handler.shutdown(0)]);
533
+ const failures = [
534
+ new Error(`Conversation work did not drain within ${SHUTDOWN_DRAIN_TIMEOUT_MS}ms`),
535
+ ...runtimeResult.flatMap((result) => (result.status === "rejected" ? [result.reason] : [])),
536
+ ];
537
+ throw new AggregateError(failures, "Failed to drain conversation work");
538
+ }
539
+ const results = [
540
+ ...(await gracefulDrain),
541
+ ...(await Promise.allSettled([handler.shutdown(SHUTDOWN_DRAIN_TIMEOUT_MS)])),
542
+ ];
543
+ const failures = results.flatMap((result) => result.status === "rejected" ? [result.reason] : []);
544
+ if (failures.length > 0)
545
+ throw new AggregateError(failures, "Failed to drain conversation work");
546
+ }
547
+ eventScheduler = new EventScheduler(workspace, botsByPlatform);
480
548
  const slackMessagingBot = botsByPlatform.slack;
481
549
  if (slackMessagingBot) {
482
- slackMessagingBot.setEventsWatcher(eventsWatcher);
483
- }
484
- eventsWatcher.start();
485
- // Handle shutdown
486
- async function shutdown() {
487
- await handler.shutdown();
488
- eventsWatcher.stop();
489
- await Sentry.close(5000);
490
- process.exit(0);
550
+ slackMessagingBot.setEventScheduler(eventScheduler);
491
551
  }
492
- process.on("SIGINT", shutdown);
493
- process.on("SIGTERM", shutdown);
494
- // Start all bots
495
- await Promise.all(bots.map((bot) => bot.start().catch((err) => {
496
- log.logWarning("Failed to start bot", err instanceof Error ? err.message : String(err));
552
+ eventScheduler.start();
553
+ const shutdown = createProcessShutdownHandler({
554
+ stop: () => {
555
+ const intakeStop = stopConversationIntake();
556
+ return runShutdownSteps([
557
+ {
558
+ name: "event scheduler",
559
+ run: async () => {
560
+ eventScheduler?.stop();
561
+ },
562
+ },
563
+ { name: "conversation work", run: () => drainConversationWork(intakeStop) },
564
+ ]);
565
+ },
566
+ shutdownObservability: () => shutdownObservability(5000),
567
+ captureError,
568
+ warn: log.logWarning,
569
+ exit: (code) => process.exit(code),
570
+ });
571
+ process.on("SIGINT", () => void shutdown("SIGINT"));
572
+ process.on("SIGTERM", () => void shutdown("SIGTERM"));
573
+ await Promise.all(Object.values(botsByPlatform).map((bot) => bot.start().catch((err) => {
574
+ log.logWarning("Failed to start bot", errorMessage(err));
497
575
  process.exit(1);
498
576
  })));
577
+ if (provisioner) {
578
+ void provisioner.sweepContainerLayoutMigration().catch((err) => {
579
+ log.logWarning("Container layout sweep failed", errorMessage(err));
580
+ });
581
+ }
499
582
  //# sourceMappingURL=main.js.map