@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
@@ -1,32 +1,34 @@
1
- import { join } from "path";
2
- import { isRecord, parseJsonValue, readTextFileIfExists } from "../utils/file-guards.js";
3
- import { formatLocalTimestamp } from "../utils/date.js";
4
- import { atomicWritePrivateFile } from "../utils/fs-atomic.js";
1
+ import { CONTROL_INPUT_CUSTOM_TYPE } from "./types.js";
2
+ import { OFFICE_LOG_FILENAME, officeSessionsDir } from "../office/index.js";
3
+ import { SessionStore } from "./session-store.js";
4
+ import { join } from "node:path";
5
5
  import * as log from "../log.js";
6
- import { isPlatformHistorySession } from "./metadata.js";
7
- import { createManagedSessionFile, createManagedSessionFileAtPath, extractSessionSuffix, getChannelSessionDir, getThreadSessionFile, openManagedSession, resolveChannelSessionFile, tryResolveCurrentSession, tryResolveThreadSession, } from "./store.js";
6
+ import { parseJsonValue, readTextFileIfExists } from "../file-guards.js";
7
+ import { formatHistoryLine, stripHistoryLinePrefix } from "./history-line.js";
8
+ import { isPlatformHistorySession } from "./store.js";
9
+ import { isThreadSessionKey } from "./session-key.js";
10
+ import { archiveManagedSessionFile, createManagedSessionFile, createManagedSessionFileAtPath, extractSessionSuffix, getThreadSessionFile, openManagedSession, resolveChannelSessionFile, resolveParentSessionForThread, tryResolveCurrentSession, tryResolveThreadSession, } from "./store.js";
8
11
  const DEFAULT_RECENT_DAYS = 14;
9
12
  const DEFAULT_MAX_TOP_LEVEL_MESSAGES = 200;
10
13
  const CHAT_SYNC_CUSTOM_TYPE = "mikan.chat_sync";
11
- const BIWEEKLY_ROTATION_ANCHOR = new Date(2026, 0, 4); // Sunday
12
- const BIWEEKLY_MS = 14 * 24 * 60 * 60 * 1000;
14
+ import { errorMessage, isRecord } from "../unknown-values.js";
13
15
  export function hasMaterializedChatSession(options) {
14
- if (!options.sessionKey.includes(":")) {
16
+ if (!isThreadSessionKey(options.sessionKey)) {
15
17
  return resolveChannelSessionFile(options.conversationDir) !== null;
16
18
  }
17
19
  return (tryResolveThreadSession(getThreadSessionFile(options.conversationDir, options.sessionKey)) !==
18
20
  null);
19
21
  }
20
22
  export function registerThreadSession(options) {
21
- if (!options.sessionKey.includes(":"))
23
+ if (!isThreadSessionKey(options.sessionKey))
22
24
  return null;
23
25
  const threadFile = getThreadSessionFile(options.conversationDir, options.sessionKey);
24
26
  return (tryResolveThreadSession(threadFile) ??
25
- createManagedSessionFileAtPath(threadFile, options.cwd ?? options.conversationDir));
27
+ createManagedSessionFileAtPath(threadFile, options.cwd ?? options.conversationDir, resolveParentSessionForThread(options.conversationDir, extractSessionSuffix(options.sessionKey)) ?? undefined));
26
28
  }
27
29
  export async function waitForThreadSessionBootstrap(options) {
28
30
  const { parentSessionKey, sessionKey, hasThreadSession, isParentRunning, sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)), pollMs = 100, } = options;
29
- if (!sessionKey.includes(":"))
31
+ if (!isThreadSessionKey(sessionKey))
30
32
  return false;
31
33
  if (sessionKey === parentSessionKey)
32
34
  return false;
@@ -39,22 +41,22 @@ export async function waitForThreadSessionBootstrap(options) {
39
41
  }
40
42
  return waited;
41
43
  }
42
- export class AgentMemoryFileManager {
43
- constructor(options = {}) {
44
+ export class ChatHistorySync {
45
+ constructor(options) {
46
+ this.isCommandText = options.isCommandText;
44
47
  this.recentDays = options.recentDays ?? DEFAULT_RECENT_DAYS;
45
48
  this.maxTopLevelMessages = options.maxTopLevelMessages ?? DEFAULT_MAX_TOP_LEVEL_MESSAGES;
46
49
  this.now = options.now ?? (() => new Date());
47
50
  }
48
51
  async resolveSessionScope(options) {
49
52
  const cwd = options.cwd ?? options.conversationDir;
50
- const sessionDir = getChannelSessionDir(options.conversationDir);
51
- if (!options.sessionKey.includes(":")) {
52
- const contextFile = this.resolveTopLevelSessionFile({
53
+ const sessionDir = officeSessionsDir(options.conversationDir);
54
+ if (!isThreadSessionKey(options.sessionKey)) {
55
+ const contextFile = await this.resolveTopLevelSessionFile({
53
56
  conversationDir: options.conversationDir,
54
57
  sessionDir,
55
58
  cwd,
56
59
  currentMessageId: options.currentMessageId,
57
- rotateTopLevelSession: options.rotateTopLevelSession === true,
58
60
  });
59
61
  return { sessionDir, contextFile, threadRootMessage: null };
60
62
  }
@@ -66,152 +68,126 @@ export class AgentMemoryFileManager {
66
68
  currentMessageId: options.currentMessageId,
67
69
  });
68
70
  }
69
- syncSessionManager(options) {
71
+ async syncSessionManager(options) {
70
72
  const records = readConversationLog(options.conversationDir);
71
- syncSessionManagerFromLog(options.sessionManager, selectExistingSessionSyncMessages(records, {
72
- sessionKey: options.sessionKey.includes(":") ? options.sessionKey : null,
73
+ return syncSessionManagerFromLog(options.sessionManager, selectExistingSessionSyncMessages(records, {
74
+ sessionKey: isThreadSessionKey(options.sessionKey) ? options.sessionKey : null,
73
75
  excludeMessageId: options.currentMessageId,
74
- }), this.historyWindow());
76
+ isCommandText: this.isCommandText,
77
+ }), {
78
+ recentDays: this.recentDays,
79
+ maxMessages: this.maxTopLevelMessages,
80
+ now: this.now(),
81
+ });
75
82
  }
76
- resetSession(options) {
83
+ async resetSession(options) {
77
84
  const cwd = options.cwd ?? options.conversationDir;
78
- if (options.sessionKey.includes(":")) {
79
- return createManagedSessionFileAtPath(getThreadSessionFile(options.conversationDir, options.sessionKey), cwd);
85
+ const sessionFile = isThreadSessionKey(options.sessionKey)
86
+ ? resetThreadSessionFile(options.conversationDir, options.sessionKey, cwd)
87
+ : createManagedSessionFile(officeSessionsDir(options.conversationDir), cwd);
88
+ const records = readConversationLog(options.conversationDir);
89
+ const lastMessageId = latestSyncMessageId(records, {
90
+ sessionKey: isThreadSessionKey(options.sessionKey) ? options.sessionKey : null,
91
+ isCommandText: this.isCommandText,
92
+ });
93
+ const sessionManager = await openManagedSession(sessionFile, cwd);
94
+ try {
95
+ await sessionManager.appendCustomEntry(CHAT_SYNC_CUSTOM_TYPE, {
96
+ source: OFFICE_LOG_FILENAME,
97
+ messageCount: 0,
98
+ resetAt: this.now().toISOString(),
99
+ lastMessageId: lastMessageId ? lastMessageId : undefined,
100
+ });
80
101
  }
81
- return createManagedSessionFile(getChannelSessionDir(options.conversationDir), cwd);
102
+ finally {
103
+ await sessionManager.close();
104
+ }
105
+ return sessionFile;
82
106
  }
83
- resolveTopLevelSessionFile(options) {
84
- const records = readConversationLog(options.conversationDir);
107
+ async resolveTopLevelSessionFile(options) {
85
108
  const existing = tryResolveCurrentSession(options.sessionDir);
86
- if (existing && !isPlatformHistorySession(existing)) {
87
- if (!options.rotateTopLevelSession || !shouldRotateTopLevelSession(existing, this.now())) {
88
- syncSessionFromLog(existing, options.cwd, selectExistingSessionSyncMessages(records, {
89
- sessionKey: null,
90
- excludeMessageId: options.currentMessageId,
91
- }), this.historyWindow());
92
- return existing;
93
- }
94
- }
109
+ if (existing && !isPlatformHistorySession(existing))
110
+ return existing;
111
+ const records = readConversationLog(options.conversationDir);
95
112
  const sessionFile = createManagedSessionFile(options.sessionDir, options.cwd);
96
113
  const bootstrapRecords = selectRecentTopLevelMessages(records, {
97
114
  recentDays: this.recentDays,
98
115
  maxMessages: this.maxTopLevelMessages,
99
116
  now: this.now(),
100
117
  excludeMessageId: options.currentMessageId,
118
+ isCommandText: this.isCommandText,
101
119
  });
102
- bootstrapSessionFromLog(sessionFile, options.cwd, bootstrapRecords, latestSyncMessageId(records, {
120
+ await bootstrapSessionFromLog(sessionFile, options.cwd, bootstrapRecords, latestSyncMessageId(records, {
103
121
  sessionKey: null,
104
122
  excludeMessageId: options.currentMessageId,
123
+ isCommandText: this.isCommandText,
105
124
  }));
106
125
  return sessionFile;
107
126
  }
108
- historyWindow() {
109
- return { recentDays: this.recentDays, maxMessages: this.maxTopLevelMessages, now: this.now() };
110
- }
111
- resolveThreadSessionScope(options) {
127
+ async resolveThreadSessionScope(options) {
112
128
  const threadFile = getThreadSessionFile(options.conversationDir, options.sessionKey);
113
129
  const threadId = extractSessionSuffix(options.sessionKey);
114
130
  const records = readConversationLog(options.conversationDir);
115
131
  const threadRootMessage = buildThreadRootSeed(findLogRecordById(records, threadId)?.message);
116
132
  const existing = tryResolveThreadSession(threadFile);
117
133
  if (existing) {
118
- syncSessionFromLog(existing, options.cwd, selectExistingSessionSyncMessages(records, {
119
- sessionKey: options.sessionKey,
120
- excludeMessageId: options.currentMessageId,
121
- }), this.historyWindow());
122
134
  return { sessionDir: options.sessionDir, contextFile: existing, threadRootMessage };
123
135
  }
124
- createManagedSessionFileAtPath(threadFile, options.cwd);
136
+ createManagedSessionFileAtPath(threadFile, options.cwd, resolveParentSessionForThread(options.conversationDir, threadId) ?? undefined);
125
137
  const bootstrapRecords = selectThreadBootstrapMessages(records, threadId, {
126
138
  recentDays: this.recentDays,
127
139
  maxTopLevelMessages: this.maxTopLevelMessages,
128
140
  now: this.now(),
129
141
  excludeMessageId: options.currentMessageId,
142
+ isCommandText: this.isCommandText,
130
143
  });
131
- bootstrapSessionFromLog(threadFile, options.cwd, bootstrapRecords, latestSyncMessageId(records, {
144
+ await bootstrapSessionFromLog(threadFile, options.cwd, bootstrapRecords, latestSyncMessageId(records, {
132
145
  sessionKey: options.sessionKey,
133
146
  excludeMessageId: options.currentMessageId,
147
+ isCommandText: this.isCommandText,
134
148
  }));
135
149
  return { sessionDir: options.sessionDir, contextFile: threadFile, threadRootMessage };
136
150
  }
137
151
  }
138
- function shouldRotateTopLevelSession(sessionFile, now) {
139
- const timestamp = readSessionTimestamp(sessionFile);
140
- return timestamp !== null && biweeklyBucket(timestamp) !== biweeklyBucket(now);
141
- }
142
- function readSessionTimestamp(sessionFile) {
143
- const raw = readTextFileIfExists(sessionFile);
144
- if (raw === undefined)
145
- return null;
146
- const firstLine = raw.split("\n").find((line) => line.trim());
147
- if (!firstLine)
148
- return null;
152
+ function existingThreadParent(threadFile) {
153
+ let header;
149
154
  try {
150
- const header = parseJsonValue(firstLine, (value) => isRecord(value), (detail) => (detail === "unexpected JSON shape" ? "expected a JSON object" : detail));
151
- if (typeof header.timestamp !== "string")
152
- return null;
153
- const date = new Date(header.timestamp);
154
- return Number.isFinite(date.getTime()) ? date : null;
155
+ header = SessionStore.readHeader(threadFile);
155
156
  }
156
157
  catch {
157
- return null;
158
+ return undefined;
158
159
  }
160
+ const path = header?.parentSession;
161
+ if (!header || !path)
162
+ return undefined;
163
+ const id = header.parentSessionId ?? readParentSessionId(path);
164
+ return id ? { path, id } : undefined;
159
165
  }
160
- function biweeklyBucket(date) {
161
- const weekStart = sundayStart(date).getTime();
162
- const anchor = sundayStart(BIWEEKLY_ROTATION_ANCHOR).getTime();
163
- return Math.floor((weekStart - anchor) / BIWEEKLY_MS);
164
- }
165
- function sundayStart(date) {
166
- return new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay());
167
- }
168
- function readConversationLog(conversationDir) {
169
- const logFile = join(conversationDir, "log.jsonl");
170
- const raw = readTextFileIfExists(logFile);
171
- if (raw === undefined)
172
- return [];
173
- const lines = raw.trim().split("\n").filter(Boolean);
174
- const records = [];
175
- for (let i = 0; i < lines.length; i++) {
176
- try {
177
- const message = parseJsonValue(lines[i], (value) => isRecord(value), (detail) => (detail === "unexpected JSON shape" ? "expected a JSON object" : detail));
178
- records.push({ message, index: i });
179
- }
180
- catch (err) {
181
- log.logWarning(`Skipping malformed log entry at ${logFile}:${i + 1}`, err instanceof Error ? err.message : String(err));
182
- }
166
+ function readParentSessionId(parentPath) {
167
+ try {
168
+ return SessionStore.readHeader(parentPath)?.id;
183
169
  }
184
- return coalesceMessagingBotLogChunks(records);
185
- }
186
- function coalesceMessagingBotLogChunks(records) {
187
- const coalesced = [];
188
- for (const record of records) {
189
- const previous = coalesced.at(-1);
190
- if (previous && canCoalesceMessagingBotLogChunk(previous.message, record.message)) {
191
- previous.message.text = `${previous.message.text ?? ""}${record.message.text ?? ""}`;
192
- continue;
193
- }
194
- coalesced.push({ ...record, message: { ...record.message } });
170
+ catch {
171
+ return undefined;
195
172
  }
196
- return coalesced;
197
173
  }
198
- function canCoalesceMessagingBotLogChunk(previous, current) {
199
- return (previous.isMessagingBot === true &&
200
- current.isMessagingBot === true &&
201
- !!previous.ts &&
202
- previous.ts === current.ts &&
203
- previous.threadTs === current.threadTs &&
204
- previous.user === current.user);
174
+ function resetThreadSessionFile(conversationDir, sessionKey, cwd) {
175
+ const threadFile = getThreadSessionFile(conversationDir, sessionKey);
176
+ const parent = existingThreadParent(threadFile) ??
177
+ resolveParentSessionForThread(conversationDir, extractSessionSuffix(sessionKey)) ??
178
+ undefined;
179
+ archiveManagedSessionFile(threadFile);
180
+ return createManagedSessionFileAtPath(threadFile, cwd, parent);
205
181
  }
206
182
  function findLogRecordById(records, messageId) {
207
183
  for (let i = records.length - 1; i >= 0; i--) {
208
- if (records[i].message.ts === messageId)
184
+ if (records[i]?.message.ts === messageId)
209
185
  return records[i];
210
186
  }
211
187
  return undefined;
212
188
  }
213
189
  function selectRecentTopLevelMessages(records, options) {
214
- return selectRecentMessages(records.filter((record) => isTopLevelHistoryMessage(record.message, options.excludeMessageId)), options);
190
+ return selectRecentMessages(recordsBeforeCurrentMessage(records, options.excludeMessageId).filter((record) => isTopLevelHistoryMessage(record.message, options)), options);
215
191
  }
216
192
  function selectRecentMessages(records, options) {
217
193
  const sinceMs = options.now.getTime() - options.recentDays * 24 * 60 * 60 * 1000;
@@ -220,22 +196,24 @@ function selectRecentMessages(records, options) {
220
196
  .slice(-options.maxMessages);
221
197
  }
222
198
  function selectThreadBootstrapMessages(records, threadId, options) {
223
- const rootRecord = findLogRecordById(records, threadId);
199
+ const scopedRecords = recordsBeforeCurrentMessage(records, options.excludeMessageId);
200
+ const rootRecord = findLogRecordById(scopedRecords, threadId);
224
201
  const topLevelSource = rootRecord
225
- ? records.filter((record) => record.index <= rootRecord.index)
226
- : records;
202
+ ? scopedRecords.filter((record) => record.index <= rootRecord.index)
203
+ : scopedRecords;
227
204
  const topLevelRecords = selectRecentTopLevelMessages(topLevelSource, {
228
205
  recentDays: options.recentDays,
229
206
  maxMessages: options.maxTopLevelMessages,
230
207
  now: options.now,
231
208
  excludeMessageId: options.excludeMessageId,
209
+ isCommandText: options.isCommandText,
232
210
  });
233
- const threadRecords = records.filter((record) => isRenderableConversationMessage(record.message, options.excludeMessageId) &&
211
+ const threadRecords = scopedRecords.filter((record) => isRenderableConversationMessage(record.message, options) &&
234
212
  (record.message.ts === threadId || record.message.threadTs === threadId));
235
213
  return dedupeAndSortRecords([...topLevelRecords, ...threadRecords]);
236
214
  }
237
- function isTopLevelHistoryMessage(message, excludeMessageId) {
238
- if (!isRenderableConversationMessage(message, excludeMessageId))
215
+ function isTopLevelHistoryMessage(message, filter) {
216
+ if (!isRenderableConversationMessage(message, filter))
239
217
  return false;
240
218
  return !message.threadTs;
241
219
  }
@@ -247,29 +225,32 @@ function isRecentHistoryMessage(message, sinceMs) {
247
225
  }
248
226
  function selectExistingSessionSyncMessages(records, options) {
249
227
  const threadId = options.sessionKey ? extractSessionSuffix(options.sessionKey) : null;
250
- return dedupeAndSortRecords(records.filter((record) => {
251
- if (!isRenderableConversationMessage(record.message, options.excludeMessageId))
228
+ return dedupeAndSortRecords(recordsBeforeCurrentMessage(records, options.excludeMessageId).filter((record) => {
229
+ if (!isRenderableConversationMessage(record.message, options))
252
230
  return false;
253
231
  if (!threadId)
254
232
  return !record.message.threadTs;
255
233
  return record.message.ts === threadId || record.message.threadTs === threadId;
256
234
  }));
257
235
  }
236
+ function recordsBeforeCurrentMessage(records, currentMessageId) {
237
+ if (!currentMessageId)
238
+ return records;
239
+ const currentRecord = findLogRecordById(records, currentMessageId);
240
+ if (!currentRecord)
241
+ return records;
242
+ return records.filter((record) => record.index < currentRecord.index);
243
+ }
258
244
  function latestSyncMessageId(records, options) {
259
245
  return selectExistingSessionSyncMessages(records, options).at(-1)?.message.ts;
260
246
  }
261
- function isRenderableConversationMessage(message, excludeMessageId) {
262
- if (excludeMessageId && message.ts === excludeMessageId)
247
+ function isRenderableConversationMessage(message, filter) {
248
+ if (filter.excludeMessageId && message.ts === filter.excludeMessageId)
263
249
  return false;
264
- if (isChatCommandMessage(message))
250
+ if (!message.isMessagingBot && filter.isCommandText(message.text ?? ""))
265
251
  return false;
266
252
  return !!message.text?.trim();
267
253
  }
268
- function isChatCommandMessage(message) {
269
- const text = message.text?.trim() ?? "";
270
- return (!message.isMessagingBot &&
271
- /^\/(?:pi-[\w-]+|login|session|new|stop|model|sandbox|admin|auto-reply)(?:@\w+)?(?:\s|$)/i.test(text));
272
- }
273
254
  function dedupeAndSortRecords(records) {
274
255
  const byKey = new Map();
275
256
  for (const record of records) {
@@ -296,74 +277,95 @@ function sortTime(record) {
296
277
  }
297
278
  return record.index;
298
279
  }
299
- function bootstrapSessionFromLog(sessionFile, cwd, records, lastMessageId = records.at(-1)?.message.ts) {
280
+ async function bootstrapSessionFromLog(sessionFile, cwd, records, lastMessageId = records.at(-1)?.message.ts) {
300
281
  if (records.length === 0 && !lastMessageId)
301
282
  return;
302
- const sessionManager = openManagedSession(sessionFile, cwd);
303
- appendLogRecordsToSession(sessionManager, records);
304
- sessionManager.appendCustomEntry(CHAT_SYNC_CUSTOM_TYPE, {
305
- source: "log.jsonl",
306
- messageCount: records.length,
307
- lastMessageId,
308
- });
309
- forceRewriteSession(sessionManager, sessionFile);
310
- }
311
- function syncSessionFromLog(sessionFile, cwd, records, historyWindow) {
312
- if (records.length === 0)
313
- return;
314
- syncSessionManagerFromLog(openManagedSession(sessionFile, cwd), records, historyWindow);
283
+ const sessionManager = await openManagedSession(sessionFile, cwd);
284
+ try {
285
+ await appendLogRecordsToSession(sessionManager, records);
286
+ await sessionManager.appendCustomEntry(CHAT_SYNC_CUSTOM_TYPE, {
287
+ source: OFFICE_LOG_FILENAME,
288
+ messageCount: records.length,
289
+ lastMessageId,
290
+ });
291
+ }
292
+ finally {
293
+ await sessionManager.close();
294
+ }
315
295
  }
316
- function syncSessionManagerFromLog(sessionManager, records, historyWindow) {
296
+ async function syncSessionManagerFromLog(sessionManager, records, historyWindow) {
317
297
  if (records.length === 0)
318
- return;
319
- const existingEntries = sessionManager.getEntries();
298
+ return { appended: 0 };
299
+ const existingEntries = await sessionManager.getEntries();
300
+ const resetAt = getLatestChatSyncResetAt(existingEntries);
301
+ const controlledIds = new Set(existingEntries.flatMap((entry) => {
302
+ if (entry.type !== "custom" ||
303
+ entry.customType !== CONTROL_INPUT_CUSTOM_TYPE ||
304
+ !isRecord(entry.data))
305
+ return [];
306
+ return typeof entry.data.messageId === "string" ? [entry.data.messageId] : [];
307
+ }));
308
+ const eligibleRecords = records.filter((record) => !controlledIds.has(record.message.ts ?? "") && (!resetAt || isAfterReset(record, resetAt)));
320
309
  const lastSyncedMessageId = getLatestChatSyncMessageId(existingEntries);
321
310
  const lastSyncedIndex = lastSyncedMessageId
322
- ? records.findIndex((record) => record.message.ts === lastSyncedMessageId)
311
+ ? eligibleRecords.findIndex((record) => record.message.ts === lastSyncedMessageId)
323
312
  : -1;
324
- if (lastSyncedMessageId && lastSyncedIndex === -1)
325
- return;
326
- const syncCandidates = selectRecentMessages(records.slice(lastSyncedIndex + 1), historyWindow);
313
+ const syncCandidates = selectRecentMessages(eligibleRecords.slice(lastSyncedIndex + 1), historyWindow);
327
314
  if (syncCandidates.length === 0)
328
- return;
315
+ return { appended: 0 };
329
316
  const represented = buildRepresentedMessageCounts(existingEntries);
330
317
  const newRecords = syncCandidates.filter((record) => !consumeRepresentedLogMessage(record, represented));
331
318
  if (newRecords.length === 0)
332
- return;
333
- appendLogRecordsToSession(sessionManager, newRecords);
334
- sessionManager.appendCustomEntry(CHAT_SYNC_CUSTOM_TYPE, {
335
- source: "log.jsonl",
319
+ return { appended: 0 };
320
+ const lastMessageId = syncCandidates.at(-1)?.message.ts;
321
+ await appendLogRecordsToSession(sessionManager, newRecords);
322
+ await sessionManager.appendCustomEntry(CHAT_SYNC_CUSTOM_TYPE, {
323
+ source: OFFICE_LOG_FILENAME,
336
324
  messageCount: newRecords.length,
337
- lastMessageId: syncCandidates.at(-1)?.message.ts,
325
+ lastMessageId,
338
326
  });
327
+ return {
328
+ appended: newRecords.length,
329
+ lastMessageId,
330
+ };
339
331
  }
340
- function appendLogRecordsToSession(sessionManager, records) {
332
+ async function appendLogRecordsToSession(sessionManager, records) {
341
333
  for (const record of records) {
342
334
  const message = buildHistorySessionMessage(record.message);
343
335
  if (message)
344
- sessionManager.appendMessage(message);
336
+ await sessionManager.appendMessage(message);
345
337
  }
346
338
  }
347
- function forceRewriteSession(sessionManager, sessionFile) {
348
- const header = sessionManager.getHeader();
349
- if (!header)
350
- return;
351
- const content = [header, ...sessionManager.getEntries()]
352
- .map((entry) => JSON.stringify(entry))
353
- .join("\n");
354
- atomicWritePrivateFile(sessionFile, `${content}\n`);
355
- }
356
- function getLatestChatSyncMessageId(entries) {
357
- for (let i = entries.length - 1; i >= 0; i--) {
358
- const entry = entries[i];
359
- if (entry.type !== "custom" || entry.customType !== CHAT_SYNC_CUSTOM_TYPE)
360
- continue;
361
- if (!isRecord(entry.data))
362
- return undefined;
363
- return typeof entry.data.lastMessageId === "string" ? entry.data.lastMessageId : undefined;
339
+ function isChatSyncMarker(entry) {
340
+ return entry.type === "custom" && entry.customType === CHAT_SYNC_CUSTOM_TYPE;
341
+ }
342
+ function markerResetAt(entry) {
343
+ if (!isChatSyncMarker(entry))
344
+ return undefined;
345
+ if (!isRecord(entry.data) || typeof entry.data.resetAt !== "string")
346
+ return undefined;
347
+ const resetAt = new Date(entry.data.resetAt).getTime();
348
+ return Number.isFinite(resetAt) ? resetAt : undefined;
349
+ }
350
+ function getLatestChatSyncResetAt(entries) {
351
+ for (const entry of entries.toReversed()) {
352
+ const resetAt = markerResetAt(entry);
353
+ if (resetAt !== undefined)
354
+ return resetAt;
364
355
  }
365
356
  return undefined;
366
357
  }
358
+ function isAfterReset(record, resetAt) {
359
+ if (!record.message.date)
360
+ return false;
361
+ const messageTime = new Date(record.message.date).getTime();
362
+ return Number.isFinite(messageTime) && messageTime >= resetAt;
363
+ }
364
+ function getLatestChatSyncMessageId(entries) {
365
+ const marker = entries.toReversed().find(isChatSyncMarker);
366
+ const lastMessageId = isRecord(marker?.data) ? marker.data.lastMessageId : undefined;
367
+ return typeof lastMessageId === "string" ? lastMessageId : undefined;
368
+ }
367
369
  function buildRepresentedMessageCounts(entries) {
368
370
  const counts = new Map();
369
371
  for (const entry of entries) {
@@ -413,11 +415,7 @@ function getSessionMessageText(entry) {
413
415
  .map((part) => (part.type === "text" && "text" in part ? part.text : ""))
414
416
  .join("\n");
415
417
  }
416
- function normalizeComparableText(text) {
417
- return text
418
- .replace(/^\[[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}[+-][0-9]{2}:[0-9]{2}\]\s+\[[^\]]+\](?:\s+\[in-thread:[^\]]+\])?:\s*/, "")
419
- .trim();
420
- }
418
+ const normalizeComparableText = stripHistoryLinePrefix;
421
419
  function buildHistorySessionMessage(message) {
422
420
  const text = message.text?.trim();
423
421
  if (!text)
@@ -427,7 +425,7 @@ function buildHistorySessionMessage(message) {
427
425
  return {
428
426
  role: "user",
429
427
  content: [{ type: "text", text: formatHistoryMessage(message) }],
430
- ...(timestamp !== undefined ? { timestamp } : {}),
428
+ timestamp,
431
429
  };
432
430
  }
433
431
  return {
@@ -438,7 +436,7 @@ function buildHistorySessionMessage(message) {
438
436
  model: "platform-history",
439
437
  usage: zeroUsage(),
440
438
  stopReason: "stop",
441
- ...(timestamp !== undefined ? { timestamp } : {}),
439
+ timestamp,
442
440
  };
443
441
  }
444
442
  function buildThreadRootSeed(message) {
@@ -466,10 +464,11 @@ function parseMessageTimestamp(message) {
466
464
  return undefined;
467
465
  }
468
466
  function formatHistoryMessage(message) {
469
- const text = message.text?.trim() ?? "";
470
- const userLabel = message.userName || message.user || "unknown";
471
- const timestamp = message.date ? formatLocalTimestamp(new Date(message.date)) : null;
472
- return timestamp ? `[${timestamp}] [${userLabel}]: ${text}` : `[${userLabel}]: ${text}`;
467
+ return formatHistoryLine({
468
+ date: message.date ? new Date(message.date) : undefined,
469
+ userName: message.userName || message.user,
470
+ text: message.text?.trim() ?? "",
471
+ });
473
472
  }
474
473
  function zeroUsage() {
475
474
  return {
@@ -481,4 +480,46 @@ function zeroUsage() {
481
480
  cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
482
481
  };
483
482
  }
484
- //# sourceMappingURL=agent-memory-file-manager.js.map
483
+ function readConversationLog(conversationDir) {
484
+ const logFile = join(conversationDir, OFFICE_LOG_FILENAME);
485
+ const raw = readTextFileIfExists(logFile);
486
+ if (raw === undefined)
487
+ return [];
488
+ const records = [];
489
+ for (const [index, line] of raw.trim().split("\n").filter(Boolean).entries()) {
490
+ const message = parseLogLine(line, logFile, index + 1);
491
+ if (message)
492
+ records.push({ message, index });
493
+ }
494
+ return coalesceMessagingBotLogChunks(records);
495
+ }
496
+ function parseLogLine(line, logFile, lineNumber) {
497
+ try {
498
+ return parseJsonValue(line, (value) => isRecord(value), (detail, kind) => (kind === "shape" ? "expected a JSON object" : detail));
499
+ }
500
+ catch (err) {
501
+ log.logWarning(`Skipping malformed log entry at ${logFile}:${lineNumber}`, errorMessage(err));
502
+ return undefined;
503
+ }
504
+ }
505
+ function coalesceMessagingBotLogChunks(records) {
506
+ const coalesced = [];
507
+ for (const record of records) {
508
+ const previous = coalesced.at(-1);
509
+ if (previous && canCoalesceMessagingBotLogChunk(previous.message, record.message)) {
510
+ previous.message.text = `${previous.message.text ?? ""}${record.message.text ?? ""}`;
511
+ continue;
512
+ }
513
+ coalesced.push({ ...record, message: { ...record.message } });
514
+ }
515
+ return coalesced;
516
+ }
517
+ function canCoalesceMessagingBotLogChunk(previous, current) {
518
+ return (previous.isMessagingBot === true &&
519
+ current.isMessagingBot === true &&
520
+ !!previous.ts &&
521
+ previous.ts === current.ts &&
522
+ previous.threadTs === current.threadTs &&
523
+ previous.user === current.user);
524
+ }
525
+ //# sourceMappingURL=chat-history-sync.js.map