@geminixiang/mikan 1.0.0-beta.7 → 1.0.0-beta.70

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 (853) hide show
  1. package/CHANGELOG.md +1040 -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 +11 -8
  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 +166 -0
  13. package/dist/adapters/commands/login.js.map +1 -0
  14. package/dist/adapters/commands/manifest.d.ts +37 -0
  15. package/dist/adapters/commands/manifest.d.ts.map +1 -0
  16. package/dist/adapters/commands/manifest.js +155 -0
  17. package/dist/adapters/commands/manifest.js.map +1 -0
  18. package/dist/adapters/commands/model.d.ts +15 -0
  19. package/dist/adapters/commands/model.d.ts.map +1 -0
  20. package/dist/adapters/commands/model.js +153 -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 +41 -0
  24. package/dist/adapters/commands/new.js.map +1 -0
  25. package/dist/adapters/commands/registry.d.ts +5 -0
  26. package/dist/adapters/commands/registry.d.ts.map +1 -0
  27. package/dist/adapters/commands/registry.js +43 -0
  28. package/dist/adapters/commands/registry.js.map +1 -0
  29. package/dist/adapters/commands/sandbox.d.ts.map +1 -0
  30. package/dist/adapters/commands/sandbox.js +125 -0
  31. package/dist/adapters/commands/sandbox.js.map +1 -0
  32. package/dist/adapters/commands/session-view.d.ts.map +1 -0
  33. package/dist/{commands → adapters/commands}/session-view.js +23 -16
  34. package/dist/adapters/commands/session-view.js.map +1 -0
  35. package/dist/adapters/commands/types.d.ts +145 -0
  36. package/dist/adapters/commands/types.d.ts.map +1 -0
  37. package/dist/adapters/commands/types.js.map +1 -0
  38. package/dist/adapters/commands/utils.d.ts +14 -0
  39. package/dist/adapters/commands/utils.d.ts.map +1 -0
  40. package/dist/{commands → adapters/commands}/utils.js +18 -1
  41. package/dist/adapters/commands/utils.js.map +1 -0
  42. package/dist/adapters/discord/bot.d.ts +11 -8
  43. package/dist/adapters/discord/bot.d.ts.map +1 -1
  44. package/dist/adapters/discord/bot.js +223 -256
  45. package/dist/adapters/discord/bot.js.map +1 -1
  46. package/dist/adapters/discord/components.d.ts +28 -0
  47. package/dist/adapters/discord/components.d.ts.map +1 -0
  48. package/dist/adapters/discord/components.js +32 -0
  49. package/dist/adapters/discord/components.js.map +1 -0
  50. package/dist/adapters/discord/context.d.ts +2 -6
  51. package/dist/adapters/discord/context.d.ts.map +1 -1
  52. package/dist/adapters/discord/context.js +64 -218
  53. package/dist/adapters/discord/context.js.map +1 -1
  54. package/dist/adapters/discord/format.d.ts +3 -0
  55. package/dist/adapters/discord/format.d.ts.map +1 -0
  56. package/dist/adapters/discord/format.js +84 -0
  57. package/dist/adapters/discord/format.js.map +1 -0
  58. package/dist/adapters/discord/types.d.ts +8 -1
  59. package/dist/adapters/discord/types.d.ts.map +1 -1
  60. package/dist/adapters/discord/types.js.map +1 -1
  61. package/dist/adapters/github/bot.d.ts +102 -0
  62. package/dist/adapters/github/bot.d.ts.map +1 -0
  63. package/dist/adapters/github/bot.js +720 -0
  64. package/dist/adapters/github/bot.js.map +1 -0
  65. package/dist/adapters/github/client.d.ts +122 -0
  66. package/dist/adapters/github/client.d.ts.map +1 -0
  67. package/dist/adapters/github/client.js +301 -0
  68. package/dist/adapters/github/client.js.map +1 -0
  69. package/dist/adapters/github/context.d.ts +5 -0
  70. package/dist/adapters/github/context.d.ts.map +1 -0
  71. package/dist/adapters/github/context.js +101 -0
  72. package/dist/adapters/github/context.js.map +1 -0
  73. package/dist/adapters/github/github-ops.d.ts +78 -0
  74. package/dist/adapters/github/github-ops.d.ts.map +1 -0
  75. package/dist/adapters/github/github-ops.js +337 -0
  76. package/dist/adapters/github/github-ops.js.map +1 -0
  77. package/dist/adapters/github/ids.d.ts +34 -0
  78. package/dist/adapters/github/ids.d.ts.map +1 -0
  79. package/dist/adapters/github/ids.js +57 -0
  80. package/dist/adapters/github/ids.js.map +1 -0
  81. package/dist/adapters/github/repo.d.ts +33 -0
  82. package/dist/adapters/github/repo.d.ts.map +1 -0
  83. package/dist/adapters/github/repo.js +141 -0
  84. package/dist/adapters/github/repo.js.map +1 -0
  85. package/dist/adapters/github/tool-pack.d.ts +14 -0
  86. package/dist/adapters/github/tool-pack.d.ts.map +1 -0
  87. package/dist/adapters/github/tool-pack.js +55 -0
  88. package/dist/adapters/github/tool-pack.js.map +1 -0
  89. package/dist/adapters/github/tools/checks.d.ts +18 -0
  90. package/dist/adapters/github/tools/checks.d.ts.map +1 -0
  91. package/dist/adapters/github/tools/checks.js +86 -0
  92. package/dist/adapters/github/tools/checks.js.map +1 -0
  93. package/dist/adapters/github/tools/issue.d.ts +21 -0
  94. package/dist/adapters/github/tools/issue.d.ts.map +1 -0
  95. package/dist/adapters/github/tools/issue.js +48 -0
  96. package/dist/adapters/github/tools/issue.js.map +1 -0
  97. package/dist/adapters/github/tools/pr.d.ts +22 -0
  98. package/dist/adapters/github/tools/pr.d.ts.map +1 -0
  99. package/dist/adapters/github/tools/pr.js +48 -0
  100. package/dist/adapters/github/tools/pr.js.map +1 -0
  101. package/dist/adapters/github/tools/read.d.ts +21 -0
  102. package/dist/adapters/github/tools/read.d.ts.map +1 -0
  103. package/dist/adapters/github/tools/read.js +141 -0
  104. package/dist/adapters/github/tools/read.js.map +1 -0
  105. package/dist/adapters/github/tools/review-reply.d.ts +17 -0
  106. package/dist/adapters/github/tools/review-reply.d.ts.map +1 -0
  107. package/dist/adapters/github/tools/review-reply.js +38 -0
  108. package/dist/adapters/github/tools/review-reply.js.map +1 -0
  109. package/dist/adapters/github/tools/sync.d.ts +17 -0
  110. package/dist/adapters/github/tools/sync.d.ts.map +1 -0
  111. package/dist/adapters/github/tools/sync.js +34 -0
  112. package/dist/adapters/github/tools/sync.js.map +1 -0
  113. package/dist/adapters/github/types.d.ts +345 -0
  114. package/dist/adapters/github/types.d.ts.map +1 -0
  115. package/dist/adapters/github/types.js.map +1 -0
  116. package/dist/adapters/github/webhook.d.ts +20 -0
  117. package/dist/adapters/github/webhook.d.ts.map +1 -0
  118. package/dist/adapters/github/webhook.js +78 -0
  119. package/dist/adapters/github/webhook.js.map +1 -0
  120. package/dist/adapters/index.d.ts +12 -0
  121. package/dist/adapters/index.d.ts.map +1 -0
  122. package/dist/adapters/index.js +19 -0
  123. package/dist/adapters/index.js.map +1 -0
  124. package/dist/adapters/intake.d.ts +17 -6
  125. package/dist/adapters/intake.d.ts.map +1 -1
  126. package/dist/adapters/intake.js +96 -27
  127. package/dist/adapters/intake.js.map +1 -1
  128. package/dist/adapters/markdown-tables.d.ts +19 -0
  129. package/dist/adapters/markdown-tables.d.ts.map +1 -0
  130. package/dist/adapters/markdown-tables.js +152 -0
  131. package/dist/adapters/markdown-tables.js.map +1 -0
  132. package/dist/{platform-messages.d.ts → adapters/messages.d.ts} +3 -2
  133. package/dist/adapters/messages.d.ts.map +1 -0
  134. package/dist/{platform-messages.js → adapters/messages.js} +4 -1
  135. package/dist/adapters/messages.js.map +1 -0
  136. package/dist/adapters/progressive-renderer.d.ts +7 -0
  137. package/dist/adapters/progressive-renderer.d.ts.map +1 -0
  138. package/dist/adapters/progressive-renderer.js +443 -0
  139. package/dist/adapters/progressive-renderer.js.map +1 -0
  140. package/dist/adapters/shared.d.ts +37 -11
  141. package/dist/adapters/shared.d.ts.map +1 -1
  142. package/dist/adapters/shared.js +130 -24
  143. package/dist/adapters/shared.js.map +1 -1
  144. package/dist/adapters/slack/assistant.d.ts +73 -0
  145. package/dist/adapters/slack/assistant.d.ts.map +1 -0
  146. package/dist/adapters/slack/assistant.js +205 -0
  147. package/dist/adapters/slack/assistant.js.map +1 -0
  148. package/dist/adapters/slack/auto-reply-context.d.ts +21 -0
  149. package/dist/adapters/slack/auto-reply-context.d.ts.map +1 -0
  150. package/dist/adapters/slack/auto-reply-context.js +28 -0
  151. package/dist/adapters/slack/auto-reply-context.js.map +1 -0
  152. package/dist/adapters/slack/blocks.d.ts +14 -0
  153. package/dist/adapters/slack/blocks.d.ts.map +1 -1
  154. package/dist/adapters/slack/blocks.js +104 -148
  155. package/dist/adapters/slack/blocks.js.map +1 -1
  156. package/dist/adapters/slack/bot.d.ts +154 -21
  157. package/dist/adapters/slack/bot.d.ts.map +1 -1
  158. package/dist/adapters/slack/bot.js +1037 -484
  159. package/dist/adapters/slack/bot.js.map +1 -1
  160. package/dist/adapters/slack/context.d.ts +2 -6
  161. package/dist/adapters/slack/context.d.ts.map +1 -1
  162. package/dist/adapters/slack/context.js +11 -17
  163. package/dist/adapters/slack/context.js.map +1 -1
  164. package/dist/adapters/slack/jev-context.d.ts +30 -0
  165. package/dist/adapters/slack/jev-context.d.ts.map +1 -0
  166. package/dist/adapters/slack/jev-context.js +67 -0
  167. package/dist/adapters/slack/jev-context.js.map +1 -0
  168. package/dist/adapters/slack/markdown.d.ts +3 -0
  169. package/dist/adapters/slack/markdown.d.ts.map +1 -0
  170. package/dist/adapters/slack/markdown.js +48 -0
  171. package/dist/adapters/slack/markdown.js.map +1 -0
  172. package/dist/adapters/slack/persona.d.ts +15 -0
  173. package/dist/adapters/slack/persona.d.ts.map +1 -0
  174. package/dist/adapters/slack/persona.js +22 -0
  175. package/dist/adapters/slack/persona.js.map +1 -0
  176. package/dist/adapters/slack/response-lifecycle.d.ts +1 -1
  177. package/dist/adapters/slack/response-lifecycle.d.ts.map +1 -1
  178. package/dist/adapters/slack/response-lifecycle.js +261 -345
  179. package/dist/adapters/slack/response-lifecycle.js.map +1 -1
  180. package/dist/adapters/slack/session.d.ts.map +1 -1
  181. package/dist/adapters/slack/session.js +7 -11
  182. package/dist/adapters/slack/session.js.map +1 -1
  183. package/dist/adapters/slack/stream-limits.d.ts +35 -0
  184. package/dist/adapters/slack/stream-limits.d.ts.map +1 -0
  185. package/dist/adapters/slack/stream-limits.js +56 -0
  186. package/dist/adapters/slack/stream-limits.js.map +1 -0
  187. package/dist/adapters/slack/task-intent.d.ts +32 -0
  188. package/dist/adapters/slack/task-intent.d.ts.map +1 -0
  189. package/dist/adapters/slack/task-intent.js +72 -0
  190. package/dist/adapters/slack/task-intent.js.map +1 -0
  191. package/dist/adapters/slack/task-status.d.ts +7 -0
  192. package/dist/adapters/slack/task-status.d.ts.map +1 -0
  193. package/dist/adapters/slack/task-status.js +107 -0
  194. package/dist/adapters/slack/task-status.js.map +1 -0
  195. package/dist/adapters/slack/tool-pack.d.ts +11 -0
  196. package/dist/adapters/slack/tool-pack.d.ts.map +1 -0
  197. package/dist/adapters/slack/tool-pack.js +45 -0
  198. package/dist/adapters/slack/tool-pack.js.map +1 -0
  199. package/dist/adapters/slack/tools/blockkit.d.ts +14 -0
  200. package/dist/adapters/slack/tools/blockkit.d.ts.map +1 -0
  201. package/dist/adapters/slack/tools/blockkit.js +106 -0
  202. package/dist/adapters/slack/tools/blockkit.js.map +1 -0
  203. package/dist/adapters/slack/types.d.ts +73 -2
  204. package/dist/adapters/slack/types.d.ts.map +1 -1
  205. package/dist/adapters/slack/types.js.map +1 -1
  206. package/dist/adapters/slack/update-diagnostics.d.ts +14 -0
  207. package/dist/adapters/slack/update-diagnostics.d.ts.map +1 -0
  208. package/dist/adapters/slack/update-diagnostics.js +134 -0
  209. package/dist/adapters/slack/update-diagnostics.js.map +1 -0
  210. package/dist/adapters/telegram/bot.d.ts +10 -9
  211. package/dist/adapters/telegram/bot.d.ts.map +1 -1
  212. package/dist/adapters/telegram/bot.js +133 -202
  213. package/dist/adapters/telegram/bot.js.map +1 -1
  214. package/dist/adapters/telegram/context.d.ts +2 -6
  215. package/dist/adapters/telegram/context.d.ts.map +1 -1
  216. package/dist/adapters/telegram/context.js +53 -190
  217. package/dist/adapters/telegram/context.js.map +1 -1
  218. package/dist/adapters/telegram/types.d.ts +1 -1
  219. package/dist/adapters/telegram/types.d.ts.map +1 -1
  220. package/dist/adapters/telegram/types.js.map +1 -1
  221. package/dist/adapters/types.d.ts +144 -13
  222. package/dist/adapters/types.d.ts.map +1 -1
  223. package/dist/adapters/types.js.map +1 -1
  224. package/dist/adapters/web/admin/portal.d.ts +44 -0
  225. package/dist/adapters/web/admin/portal.d.ts.map +1 -0
  226. package/dist/adapters/web/admin/portal.js +3207 -0
  227. package/dist/adapters/web/admin/portal.js.map +1 -0
  228. package/dist/{web → adapters/web}/admin/provider-models.d.ts +1 -1
  229. package/dist/adapters/web/admin/provider-models.d.ts.map +1 -0
  230. package/dist/{web → adapters/web}/admin/provider-models.js +1 -1
  231. package/dist/adapters/web/admin/provider-models.js.map +1 -0
  232. package/dist/adapters/web/admin/types.d.ts +53 -0
  233. package/dist/adapters/web/admin/types.d.ts.map +1 -0
  234. package/dist/adapters/web/admin/types.js.map +1 -0
  235. package/dist/adapters/web/login/oauth.d.ts +5 -0
  236. package/dist/adapters/web/login/oauth.d.ts.map +1 -0
  237. package/dist/{web → adapters/web}/login/oauth.js +50 -85
  238. package/dist/adapters/web/login/oauth.js.map +1 -0
  239. package/dist/{web → adapters/web}/login/portal.d.ts +9 -3
  240. package/dist/adapters/web/login/portal.d.ts.map +1 -0
  241. package/dist/{web → adapters/web}/login/portal.js +161 -119
  242. package/dist/adapters/web/login/portal.js.map +1 -0
  243. package/dist/{web → adapters/web}/login/types.d.ts +1 -12
  244. package/dist/adapters/web/login/types.d.ts.map +1 -0
  245. package/dist/adapters/web/login/types.js.map +1 -0
  246. package/dist/adapters/web/portal-shell.d.ts +22 -0
  247. package/dist/adapters/web/portal-shell.d.ts.map +1 -0
  248. package/dist/{portal-shell.js → adapters/web/portal-shell.js} +78 -2
  249. package/dist/adapters/web/portal-shell.js.map +1 -0
  250. package/dist/{web → adapters/web}/server.d.ts +14 -8
  251. package/dist/adapters/web/server.d.ts.map +1 -0
  252. package/dist/{web → adapters/web}/server.js +14 -7
  253. package/dist/adapters/web/server.js.map +1 -0
  254. package/dist/adapters/web/session-view/portal.d.ts +20 -0
  255. package/dist/adapters/web/session-view/portal.d.ts.map +1 -0
  256. package/dist/{web → adapters/web}/session-view/portal.js +633 -162
  257. package/dist/adapters/web/session-view/portal.js.map +1 -0
  258. package/dist/{web → adapters/web}/session-view/types.d.ts +11 -6
  259. package/dist/adapters/web/session-view/types.d.ts.map +1 -0
  260. package/dist/adapters/web/session-view/types.js.map +1 -0
  261. package/dist/adapters/web/token-store.d.ts.map +1 -0
  262. package/dist/{web → adapters/web}/token-store.js +1 -1
  263. package/dist/adapters/web/token-store.js.map +1 -0
  264. package/dist/adapters/web/types.d.ts.map +1 -0
  265. package/dist/adapters/web/types.js.map +1 -0
  266. package/dist/cli/arg-grammar.d.ts +11 -0
  267. package/dist/cli/arg-grammar.d.ts.map +1 -0
  268. package/dist/cli/arg-grammar.js +50 -0
  269. package/dist/cli/arg-grammar.js.map +1 -0
  270. package/dist/cli/boot.d.ts +5 -0
  271. package/dist/cli/boot.d.ts.map +1 -0
  272. package/dist/cli/boot.js +90 -0
  273. package/dist/cli/boot.js.map +1 -0
  274. package/dist/cli/download.d.ts.map +1 -0
  275. package/dist/cli/download.js +88 -0
  276. package/dist/cli/download.js.map +1 -0
  277. package/dist/cli/office.d.ts +2 -0
  278. package/dist/cli/office.d.ts.map +1 -0
  279. package/dist/cli/office.js +181 -0
  280. package/dist/cli/office.js.map +1 -0
  281. package/dist/cli/onboard.d.ts +10 -0
  282. package/dist/cli/onboard.d.ts.map +1 -0
  283. package/dist/cli/onboard.js +225 -0
  284. package/dist/cli/onboard.js.map +1 -0
  285. package/dist/cli/process-lifecycle.d.ts +19 -0
  286. package/dist/cli/process-lifecycle.d.ts.map +1 -0
  287. package/dist/cli/process-lifecycle.js +67 -0
  288. package/dist/cli/process-lifecycle.js.map +1 -0
  289. package/dist/cli/sessions.d.ts +2 -0
  290. package/dist/cli/sessions.d.ts.map +1 -0
  291. package/dist/cli/sessions.js +88 -0
  292. package/dist/cli/sessions.js.map +1 -0
  293. package/dist/cli/types.d.ts +25 -0
  294. package/dist/cli/types.d.ts.map +1 -0
  295. package/dist/cli/types.js.map +1 -0
  296. package/dist/dream/index.d.ts +20 -0
  297. package/dist/dream/index.d.ts.map +1 -0
  298. package/dist/dream/index.js +264 -0
  299. package/dist/dream/index.js.map +1 -0
  300. package/dist/dream/types.d.ts +30 -0
  301. package/dist/dream/types.d.ts.map +1 -0
  302. package/dist/dream/types.js +2 -0
  303. package/dist/dream/types.js.map +1 -0
  304. package/dist/env-manifest.d.ts +38 -0
  305. package/dist/env-manifest.d.ts.map +1 -0
  306. package/dist/env-manifest.js +260 -0
  307. package/dist/env-manifest.js.map +1 -0
  308. package/dist/events/index.d.ts +172 -0
  309. package/dist/events/index.d.ts.map +1 -0
  310. package/dist/events/index.js +340 -0
  311. package/dist/events/index.js.map +1 -0
  312. package/dist/events/scheduler.d.ts +34 -0
  313. package/dist/events/scheduler.d.ts.map +1 -0
  314. package/dist/events/scheduler.js +231 -0
  315. package/dist/events/scheduler.js.map +1 -0
  316. package/dist/file-guards.d.ts +26 -0
  317. package/dist/file-guards.d.ts.map +1 -0
  318. package/dist/file-guards.js +133 -0
  319. package/dist/file-guards.js.map +1 -0
  320. package/dist/harness/execution-env.d.ts +19 -0
  321. package/dist/harness/execution-env.d.ts.map +1 -0
  322. package/dist/harness/execution-env.js +262 -0
  323. package/dist/harness/execution-env.js.map +1 -0
  324. package/dist/harness/execution-resolver.d.ts +25 -0
  325. package/dist/harness/execution-resolver.d.ts.map +1 -0
  326. package/dist/harness/execution-resolver.js +156 -0
  327. package/dist/harness/execution-resolver.js.map +1 -0
  328. package/dist/harness/index.d.ts +18 -13
  329. package/dist/harness/index.d.ts.map +1 -1
  330. package/dist/harness/index.js +11 -11
  331. package/dist/harness/index.js.map +1 -1
  332. package/dist/harness/jev.d.ts +86 -0
  333. package/dist/harness/jev.d.ts.map +1 -0
  334. package/dist/harness/jev.js +167 -0
  335. package/dist/harness/jev.js.map +1 -0
  336. package/dist/harness/mcp.d.ts +38 -0
  337. package/dist/harness/mcp.d.ts.map +1 -0
  338. package/dist/harness/mcp.js +304 -0
  339. package/dist/harness/mcp.js.map +1 -0
  340. package/dist/harness/models.d.ts +7 -4
  341. package/dist/harness/models.d.ts.map +1 -1
  342. package/dist/harness/models.js +54 -55
  343. package/dist/harness/models.js.map +1 -1
  344. package/dist/harness/open-connector.d.ts +25 -0
  345. package/dist/harness/open-connector.d.ts.map +1 -0
  346. package/dist/harness/open-connector.js +178 -0
  347. package/dist/harness/open-connector.js.map +1 -0
  348. package/dist/harness/presenter.d.ts +31 -0
  349. package/dist/harness/presenter.d.ts.map +1 -0
  350. package/dist/harness/presenter.js +859 -0
  351. package/dist/harness/presenter.js.map +1 -0
  352. package/dist/harness/prompt.d.ts +30 -0
  353. package/dist/harness/prompt.d.ts.map +1 -0
  354. package/dist/harness/prompt.js +429 -0
  355. package/dist/harness/prompt.js.map +1 -0
  356. package/dist/harness/runner.d.ts +2 -123
  357. package/dist/harness/runner.d.ts.map +1 -1
  358. package/dist/harness/runner.js +551 -416
  359. package/dist/harness/runner.js.map +1 -1
  360. package/dist/harness/session.d.ts +122 -0
  361. package/dist/harness/session.d.ts.map +1 -0
  362. package/dist/harness/session.js +581 -0
  363. package/dist/harness/session.js.map +1 -0
  364. package/dist/harness/skills.d.ts +17 -28
  365. package/dist/harness/skills.d.ts.map +1 -1
  366. package/dist/harness/skills.js +104 -39
  367. package/dist/harness/skills.js.map +1 -1
  368. package/dist/harness/subagent-profiles.d.ts +8 -0
  369. package/dist/harness/subagent-profiles.d.ts.map +1 -0
  370. package/dist/harness/subagent-profiles.js +284 -0
  371. package/dist/harness/subagent-profiles.js.map +1 -0
  372. package/dist/harness/subagent.d.ts +64 -0
  373. package/dist/harness/subagent.d.ts.map +1 -0
  374. package/dist/harness/subagent.js +687 -0
  375. package/dist/harness/subagent.js.map +1 -0
  376. package/dist/harness/tools/attach.d.ts.map +1 -0
  377. package/dist/{adapters/slack → harness}/tools/attach.js +1 -1
  378. package/dist/harness/tools/attach.js.map +1 -0
  379. package/dist/{tools → harness/tools}/event.d.ts +4 -33
  380. package/dist/harness/tools/event.d.ts.map +1 -0
  381. package/dist/harness/tools/event.js +175 -0
  382. package/dist/harness/tools/event.js.map +1 -0
  383. package/dist/harness/tools/generate-image.d.ts +23 -0
  384. package/dist/harness/tools/generate-image.d.ts.map +1 -0
  385. package/dist/harness/tools/generate-image.js +65 -0
  386. package/dist/harness/tools/generate-image.js.map +1 -0
  387. package/dist/harness/tools/host-fn-tool.d.ts +21 -0
  388. package/dist/harness/tools/host-fn-tool.d.ts.map +1 -0
  389. package/dist/harness/tools/host-fn-tool.js +32 -0
  390. package/dist/harness/tools/host-fn-tool.js.map +1 -0
  391. package/dist/harness/tools/index.d.ts +41 -0
  392. package/dist/harness/tools/index.d.ts.map +1 -0
  393. package/dist/harness/tools/index.js +51 -0
  394. package/dist/harness/tools/index.js.map +1 -0
  395. package/dist/harness/tools/jev.d.ts +21 -0
  396. package/dist/harness/tools/jev.d.ts.map +1 -0
  397. package/dist/harness/tools/jev.js +109 -0
  398. package/dist/harness/tools/jev.js.map +1 -0
  399. package/dist/harness/tools/pi-tools.d.ts +18 -0
  400. package/dist/harness/tools/pi-tools.d.ts.map +1 -0
  401. package/dist/harness/tools/pi-tools.js +84 -0
  402. package/dist/harness/tools/pi-tools.js.map +1 -0
  403. package/dist/harness/tools/react.d.ts.map +1 -0
  404. package/dist/{tools → harness/tools}/react.js +6 -17
  405. package/dist/harness/tools/react.js.map +1 -0
  406. package/dist/{tools → harness/tools}/sandbox.d.ts +4 -4
  407. package/dist/harness/tools/sandbox.d.ts.map +1 -0
  408. package/dist/{tools → harness/tools}/sandbox.js +12 -8
  409. package/dist/harness/tools/sandbox.js.map +1 -0
  410. package/dist/harness/tools/subagent.d.ts +88 -0
  411. package/dist/harness/tools/subagent.d.ts.map +1 -0
  412. package/dist/harness/tools/subagent.js +681 -0
  413. package/dist/harness/tools/subagent.js.map +1 -0
  414. package/dist/harness/tools/task.d.ts +20 -0
  415. package/dist/harness/tools/task.d.ts.map +1 -0
  416. package/dist/harness/tools/task.js +79 -0
  417. package/dist/harness/tools/task.js.map +1 -0
  418. package/dist/harness/tools/types.d.ts +29 -0
  419. package/dist/harness/tools/types.d.ts.map +1 -0
  420. package/dist/harness/tools/types.js +2 -0
  421. package/dist/harness/tools/types.js.map +1 -0
  422. package/dist/harness/types.d.ts +384 -25
  423. package/dist/harness/types.d.ts.map +1 -1
  424. package/dist/harness/types.js +1 -1
  425. package/dist/harness/types.js.map +1 -1
  426. package/dist/index.d.ts +33 -9
  427. package/dist/index.d.ts.map +1 -1
  428. package/dist/index.js +19 -6
  429. package/dist/index.js.map +1 -1
  430. package/dist/main.js +357 -198
  431. package/dist/main.js.map +1 -1
  432. package/dist/observability/index.d.ts +33 -0
  433. package/dist/observability/index.d.ts.map +1 -0
  434. package/dist/observability/index.js +257 -0
  435. package/dist/observability/index.js.map +1 -0
  436. package/dist/observability/instrument.js +14 -6
  437. package/dist/observability/instrument.js.map +1 -1
  438. package/dist/observability/otel.d.ts +10 -0
  439. package/dist/observability/otel.d.ts.map +1 -0
  440. package/dist/observability/otel.js +183 -0
  441. package/dist/observability/otel.js.map +1 -0
  442. package/dist/observability/sentry.d.ts +40 -7
  443. package/dist/observability/sentry.d.ts.map +1 -1
  444. package/dist/observability/sentry.js +176 -32
  445. package/dist/observability/sentry.js.map +1 -1
  446. package/dist/observability/types.d.ts +24 -3
  447. package/dist/observability/types.d.ts.map +1 -1
  448. package/dist/observability/types.js.map +1 -1
  449. package/dist/office/index.d.ts +139 -0
  450. package/dist/office/index.d.ts.map +1 -0
  451. package/dist/office/index.js +1084 -0
  452. package/dist/office/index.js.map +1 -0
  453. package/dist/office/projection.d.ts +42 -0
  454. package/dist/office/projection.d.ts.map +1 -0
  455. package/dist/office/projection.js +182 -0
  456. package/dist/office/projection.js.map +1 -0
  457. package/dist/office/types.d.ts +116 -0
  458. package/dist/office/types.d.ts.map +1 -0
  459. package/dist/office/types.js +2 -0
  460. package/dist/office/types.js.map +1 -0
  461. package/dist/runtime/conversation-runtime.d.ts +1 -1
  462. package/dist/runtime/conversation-runtime.d.ts.map +1 -1
  463. package/dist/runtime/conversation-runtime.js +423 -152
  464. package/dist/runtime/conversation-runtime.js.map +1 -1
  465. package/dist/runtime/session-lifecycle.d.ts +76 -0
  466. package/dist/runtime/session-lifecycle.d.ts.map +1 -0
  467. package/dist/runtime/session-lifecycle.js +404 -0
  468. package/dist/runtime/session-lifecycle.js.map +1 -0
  469. package/dist/runtime/types.d.ts +63 -15
  470. package/dist/runtime/types.d.ts.map +1 -1
  471. package/dist/runtime/types.js.map +1 -1
  472. package/dist/sandbox/cloudflare.d.ts +4 -0
  473. package/dist/sandbox/cloudflare.d.ts.map +1 -1
  474. package/dist/sandbox/cloudflare.js +54 -52
  475. package/dist/sandbox/cloudflare.js.map +1 -1
  476. package/dist/sandbox/container.d.ts +3 -0
  477. package/dist/sandbox/container.d.ts.map +1 -1
  478. package/dist/sandbox/container.js +19 -7
  479. package/dist/sandbox/container.js.map +1 -1
  480. package/dist/sandbox/host.d.ts +3 -0
  481. package/dist/sandbox/host.d.ts.map +1 -1
  482. package/dist/sandbox/host.js +44 -35
  483. package/dist/sandbox/host.js.map +1 -1
  484. package/dist/sandbox/identity.d.ts +42 -0
  485. package/dist/sandbox/identity.d.ts.map +1 -0
  486. package/dist/sandbox/identity.js +77 -0
  487. package/dist/sandbox/identity.js.map +1 -0
  488. package/dist/sandbox/index.d.ts +24 -6
  489. package/dist/sandbox/index.d.ts.map +1 -1
  490. package/dist/sandbox/index.js +77 -17
  491. package/dist/sandbox/index.js.map +1 -1
  492. package/dist/sandbox/provisioner.d.ts +139 -0
  493. package/dist/sandbox/provisioner.d.ts.map +1 -0
  494. package/dist/{provisioner.js → sandbox/provisioner.js} +377 -20
  495. package/dist/sandbox/provisioner.js.map +1 -0
  496. package/dist/sandbox/types.d.ts +43 -9
  497. package/dist/sandbox/types.d.ts.map +1 -1
  498. package/dist/sandbox/types.js.map +1 -1
  499. package/dist/sandbox/utils.d.ts +24 -0
  500. package/dist/sandbox/utils.d.ts.map +1 -1
  501. package/dist/sandbox/utils.js +92 -1
  502. package/dist/sandbox/utils.js.map +1 -1
  503. package/dist/sessions/chat-history-sync.d.ts +23 -0
  504. package/dist/sessions/chat-history-sync.d.ts.map +1 -0
  505. package/dist/sessions/{agent-memory-file-manager.js → chat-history-sync.js} +239 -175
  506. package/dist/sessions/chat-history-sync.js.map +1 -0
  507. package/dist/sessions/history-line.d.ts +29 -0
  508. package/dist/sessions/history-line.d.ts.map +1 -0
  509. package/dist/sessions/history-line.js +45 -0
  510. package/dist/sessions/history-line.js.map +1 -0
  511. package/dist/sessions/migrate-common.d.ts +43 -0
  512. package/dist/sessions/migrate-common.d.ts.map +1 -0
  513. package/dist/sessions/migrate-common.js +99 -0
  514. package/dist/sessions/migrate-common.js.map +1 -0
  515. package/dist/sessions/migrate-pi-084.d.ts +8 -0
  516. package/dist/sessions/migrate-pi-084.d.ts.map +1 -0
  517. package/dist/sessions/migrate-pi-084.js +302 -0
  518. package/dist/sessions/migrate-pi-084.js.map +1 -0
  519. package/dist/sessions/migrate-v3.d.ts +15 -0
  520. package/dist/sessions/migrate-v3.d.ts.map +1 -0
  521. package/dist/sessions/migrate-v3.js +419 -0
  522. package/dist/sessions/migrate-v3.js.map +1 -0
  523. package/dist/sessions/session-key.d.ts +33 -0
  524. package/dist/sessions/session-key.d.ts.map +1 -0
  525. package/dist/sessions/session-key.js +115 -0
  526. package/dist/sessions/session-key.js.map +1 -0
  527. package/dist/sessions/session-store.d.ts +61 -0
  528. package/dist/sessions/session-store.d.ts.map +1 -0
  529. package/dist/sessions/session-store.js +684 -0
  530. package/dist/sessions/session-store.js.map +1 -0
  531. package/dist/sessions/store.d.ts +17 -10
  532. package/dist/sessions/store.d.ts.map +1 -1
  533. package/dist/sessions/store.js +182 -47
  534. package/dist/sessions/store.js.map +1 -1
  535. package/dist/sessions/types.d.ts +74 -8
  536. package/dist/sessions/types.d.ts.map +1 -1
  537. package/dist/sessions/types.js +1 -1
  538. package/dist/sessions/types.js.map +1 -1
  539. package/dist/settings/apply.d.ts +16 -0
  540. package/dist/settings/apply.d.ts.map +1 -0
  541. package/dist/settings/apply.js +60 -0
  542. package/dist/settings/apply.js.map +1 -0
  543. package/dist/settings/index.d.ts +126 -0
  544. package/dist/settings/index.d.ts.map +1 -0
  545. package/dist/settings/index.js +422 -0
  546. package/dist/settings/index.js.map +1 -0
  547. package/dist/settings/migrate.d.ts +21 -0
  548. package/dist/settings/migrate.d.ts.map +1 -0
  549. package/dist/settings/migrate.js +86 -0
  550. package/dist/settings/migrate.js.map +1 -0
  551. package/dist/types.d.ts +330 -141
  552. package/dist/types.d.ts.map +1 -1
  553. package/dist/types.js +2 -2
  554. package/dist/types.js.map +1 -1
  555. package/dist/vault/index.d.ts +52 -2
  556. package/dist/vault/index.d.ts.map +1 -1
  557. package/dist/vault/index.js +218 -86
  558. package/dist/vault/index.js.map +1 -1
  559. package/dist/vault/types.d.ts +6 -2
  560. package/dist/vault/types.d.ts.map +1 -1
  561. package/dist/vault/types.js.map +1 -1
  562. package/package.json +79 -40
  563. package/dist/adapter.d.ts +0 -2
  564. package/dist/adapter.d.ts.map +0 -1
  565. package/dist/adapter.js +0 -2
  566. package/dist/adapter.js.map +0 -1
  567. package/dist/adapters/slack/tools/attach.d.ts.map +0 -1
  568. package/dist/adapters/slack/tools/attach.js.map +0 -1
  569. package/dist/adapters/streaming.d.ts +0 -18
  570. package/dist/adapters/streaming.d.ts.map +0 -1
  571. package/dist/adapters/streaming.js +0 -44
  572. package/dist/adapters/streaming.js.map +0 -1
  573. package/dist/adapters/telegram/html.d.ts +0 -3
  574. package/dist/adapters/telegram/html.d.ts.map +0 -1
  575. package/dist/adapters/telegram/html.js +0 -98
  576. package/dist/adapters/telegram/html.js.map +0 -1
  577. package/dist/agent-events.d.ts +0 -5
  578. package/dist/agent-events.d.ts.map +0 -1
  579. package/dist/agent-events.js +0 -26
  580. package/dist/agent-events.js.map +0 -1
  581. package/dist/agent.d.ts +0 -39
  582. package/dist/agent.d.ts.map +0 -1
  583. package/dist/agent.js +0 -1291
  584. package/dist/agent.js.map +0 -1
  585. package/dist/cli/ext-git.d.ts +0 -22
  586. package/dist/cli/ext-git.d.ts.map +0 -1
  587. package/dist/cli/ext-git.js +0 -76
  588. package/dist/cli/ext-git.js.map +0 -1
  589. package/dist/cli/ext.d.ts +0 -2
  590. package/dist/cli/ext.d.ts.map +0 -1
  591. package/dist/cli/ext.js +0 -217
  592. package/dist/cli/ext.js.map +0 -1
  593. package/dist/commands/admin.d.ts.map +0 -1
  594. package/dist/commands/admin.js.map +0 -1
  595. package/dist/commands/auto-reply.d.ts.map +0 -1
  596. package/dist/commands/auto-reply.js +0 -76
  597. package/dist/commands/auto-reply.js.map +0 -1
  598. package/dist/commands/extensions.d.ts +0 -14
  599. package/dist/commands/extensions.d.ts.map +0 -1
  600. package/dist/commands/extensions.js +0 -55
  601. package/dist/commands/extensions.js.map +0 -1
  602. package/dist/commands/login.d.ts +0 -5
  603. package/dist/commands/login.d.ts.map +0 -1
  604. package/dist/commands/login.js +0 -115
  605. package/dist/commands/login.js.map +0 -1
  606. package/dist/commands/model.d.ts +0 -10
  607. package/dist/commands/model.d.ts.map +0 -1
  608. package/dist/commands/model.js +0 -102
  609. package/dist/commands/model.js.map +0 -1
  610. package/dist/commands/new.d.ts.map +0 -1
  611. package/dist/commands/new.js +0 -25
  612. package/dist/commands/new.js.map +0 -1
  613. package/dist/commands/parse.d.ts +0 -7
  614. package/dist/commands/parse.d.ts.map +0 -1
  615. package/dist/commands/parse.js +0 -14
  616. package/dist/commands/parse.js.map +0 -1
  617. package/dist/commands/registry.d.ts +0 -5
  618. package/dist/commands/registry.d.ts.map +0 -1
  619. package/dist/commands/registry.js +0 -31
  620. package/dist/commands/registry.js.map +0 -1
  621. package/dist/commands/sandbox.d.ts.map +0 -1
  622. package/dist/commands/sandbox.js +0 -78
  623. package/dist/commands/sandbox.js.map +0 -1
  624. package/dist/commands/session-view.d.ts.map +0 -1
  625. package/dist/commands/session-view.js.map +0 -1
  626. package/dist/commands/types.d.ts +0 -66
  627. package/dist/commands/types.d.ts.map +0 -1
  628. package/dist/commands/types.js.map +0 -1
  629. package/dist/commands/utils.d.ts +0 -11
  630. package/dist/commands/utils.d.ts.map +0 -1
  631. package/dist/commands/utils.js.map +0 -1
  632. package/dist/config.d.ts +0 -78
  633. package/dist/config.d.ts.map +0 -1
  634. package/dist/config.js +0 -450
  635. package/dist/config.js.map +0 -1
  636. package/dist/download.d.ts.map +0 -1
  637. package/dist/download.js +0 -89
  638. package/dist/download.js.map +0 -1
  639. package/dist/events.d.ts +0 -43
  640. package/dist/events.d.ts.map +0 -1
  641. package/dist/events.js +0 -456
  642. package/dist/events.js.map +0 -1
  643. package/dist/execution-resolver.d.ts +0 -21
  644. package/dist/execution-resolver.d.ts.map +0 -1
  645. package/dist/execution-resolver.js +0 -170
  646. package/dist/execution-resolver.js.map +0 -1
  647. package/dist/harness/auth.d.ts +0 -16
  648. package/dist/harness/auth.d.ts.map +0 -1
  649. package/dist/harness/auth.js +0 -86
  650. package/dist/harness/auth.js.map +0 -1
  651. package/dist/harness/extensions/loader.d.ts +0 -86
  652. package/dist/harness/extensions/loader.d.ts.map +0 -1
  653. package/dist/harness/extensions/loader.js +0 -525
  654. package/dist/harness/extensions/loader.js.map +0 -1
  655. package/dist/harness/extensions/registry.d.ts +0 -23
  656. package/dist/harness/extensions/registry.d.ts.map +0 -1
  657. package/dist/harness/extensions/registry.js +0 -45
  658. package/dist/harness/extensions/registry.js.map +0 -1
  659. package/dist/harness/extensions/types.d.ts +0 -248
  660. package/dist/harness/extensions/types.d.ts.map +0 -1
  661. package/dist/harness/extensions/types.js.map +0 -1
  662. package/dist/harness/session-store.d.ts +0 -77
  663. package/dist/harness/session-store.d.ts.map +0 -1
  664. package/dist/harness/session-store.js +0 -248
  665. package/dist/harness/session-store.js.map +0 -1
  666. package/dist/harness/settings.d.ts +0 -47
  667. package/dist/harness/settings.d.ts.map +0 -1
  668. package/dist/harness/settings.js +0 -29
  669. package/dist/harness/settings.js.map +0 -1
  670. package/dist/model-registry.d.ts +0 -4
  671. package/dist/model-registry.d.ts.map +0 -1
  672. package/dist/model-registry.js +0 -7
  673. package/dist/model-registry.js.map +0 -1
  674. package/dist/platform-messages.d.ts.map +0 -1
  675. package/dist/platform-messages.js.map +0 -1
  676. package/dist/portal-shell.d.ts +0 -4
  677. package/dist/portal-shell.d.ts.map +0 -1
  678. package/dist/portal-shell.js.map +0 -1
  679. package/dist/provisioner.d.ts +0 -61
  680. package/dist/provisioner.d.ts.map +0 -1
  681. package/dist/provisioner.js.map +0 -1
  682. package/dist/runtime/agent-run-controller.d.ts +0 -31
  683. package/dist/runtime/agent-run-controller.d.ts.map +0 -1
  684. package/dist/runtime/agent-run-controller.js +0 -195
  685. package/dist/runtime/agent-run-controller.js.map +0 -1
  686. package/dist/sandbox/errors.d.ts +0 -6
  687. package/dist/sandbox/errors.d.ts.map +0 -1
  688. package/dist/sandbox/errors.js +0 -11
  689. package/dist/sandbox/errors.js.map +0 -1
  690. package/dist/sandbox/firecracker.d.ts +0 -15
  691. package/dist/sandbox/firecracker.d.ts.map +0 -1
  692. package/dist/sandbox/firecracker.js +0 -212
  693. package/dist/sandbox/firecracker.js.map +0 -1
  694. package/dist/sandbox/image.d.ts +0 -3
  695. package/dist/sandbox/image.d.ts.map +0 -1
  696. package/dist/sandbox/image.js +0 -27
  697. package/dist/sandbox/image.js.map +0 -1
  698. package/dist/sandbox/path-context.d.ts +0 -3
  699. package/dist/sandbox/path-context.d.ts.map +0 -1
  700. package/dist/sandbox/path-context.js +0 -20
  701. package/dist/sandbox/path-context.js.map +0 -1
  702. package/dist/sessions/agent-memory-file-manager.d.ts +0 -19
  703. package/dist/sessions/agent-memory-file-manager.d.ts.map +0 -1
  704. package/dist/sessions/agent-memory-file-manager.js.map +0 -1
  705. package/dist/sessions/metadata.d.ts +0 -3
  706. package/dist/sessions/metadata.d.ts.map +0 -1
  707. package/dist/sessions/metadata.js +0 -11
  708. package/dist/sessions/metadata.js.map +0 -1
  709. package/dist/sessions/policy.d.ts +0 -6
  710. package/dist/sessions/policy.d.ts.map +0 -1
  711. package/dist/sessions/policy.js +0 -23
  712. package/dist/sessions/policy.js.map +0 -1
  713. package/dist/store.d.ts +0 -46
  714. package/dist/store.d.ts.map +0 -1
  715. package/dist/store.js +0 -177
  716. package/dist/store.js.map +0 -1
  717. package/dist/tools/bash.d.ts +0 -10
  718. package/dist/tools/bash.d.ts.map +0 -1
  719. package/dist/tools/bash.js +0 -80
  720. package/dist/tools/bash.js.map +0 -1
  721. package/dist/tools/edit.d.ts +0 -11
  722. package/dist/tools/edit.d.ts.map +0 -1
  723. package/dist/tools/edit.js +0 -131
  724. package/dist/tools/edit.js.map +0 -1
  725. package/dist/tools/event.d.ts.map +0 -1
  726. package/dist/tools/event.js +0 -252
  727. package/dist/tools/event.js.map +0 -1
  728. package/dist/tools/index.d.ts +0 -24
  729. package/dist/tools/index.d.ts.map +0 -1
  730. package/dist/tools/index.js +0 -31
  731. package/dist/tools/index.js.map +0 -1
  732. package/dist/tools/react.d.ts.map +0 -1
  733. package/dist/tools/react.js.map +0 -1
  734. package/dist/tools/read.d.ts +0 -11
  735. package/dist/tools/read.d.ts.map +0 -1
  736. package/dist/tools/read.js +0 -134
  737. package/dist/tools/read.js.map +0 -1
  738. package/dist/tools/sandbox.d.ts.map +0 -1
  739. package/dist/tools/sandbox.js.map +0 -1
  740. package/dist/tools/truncate.d.ts +0 -33
  741. package/dist/tools/truncate.d.ts.map +0 -1
  742. package/dist/tools/truncate.js +0 -184
  743. package/dist/tools/truncate.js.map +0 -1
  744. package/dist/tools/types.d.ts +0 -54
  745. package/dist/tools/types.d.ts.map +0 -1
  746. package/dist/tools/types.js.map +0 -1
  747. package/dist/tools/write.d.ts +0 -10
  748. package/dist/tools/write.d.ts.map +0 -1
  749. package/dist/tools/write.js +0 -29
  750. package/dist/tools/write.js.map +0 -1
  751. package/dist/trigger.d.ts +0 -22
  752. package/dist/trigger.d.ts.map +0 -1
  753. package/dist/trigger.js +0 -100
  754. package/dist/trigger.js.map +0 -1
  755. package/dist/utils/date.d.ts +0 -10
  756. package/dist/utils/date.d.ts.map +0 -1
  757. package/dist/utils/date.js +0 -23
  758. package/dist/utils/date.js.map +0 -1
  759. package/dist/utils/env.d.ts +0 -3
  760. package/dist/utils/env.d.ts.map +0 -1
  761. package/dist/utils/env.js +0 -12
  762. package/dist/utils/env.js.map +0 -1
  763. package/dist/utils/file-guards.d.ts +0 -9
  764. package/dist/utils/file-guards.d.ts.map +0 -1
  765. package/dist/utils/file-guards.js +0 -59
  766. package/dist/utils/file-guards.js.map +0 -1
  767. package/dist/utils/fs-atomic.d.ts +0 -10
  768. package/dist/utils/fs-atomic.d.ts.map +0 -1
  769. package/dist/utils/fs-atomic.js +0 -45
  770. package/dist/utils/fs-atomic.js.map +0 -1
  771. package/dist/utils/html.d.ts +0 -2
  772. package/dist/utils/html.d.ts.map +0 -1
  773. package/dist/utils/html.js +0 -4
  774. package/dist/utils/html.js.map +0 -1
  775. package/dist/utils/http-body.d.ts +0 -10
  776. package/dist/utils/http-body.d.ts.map +0 -1
  777. package/dist/utils/http-body.js +0 -34
  778. package/dist/utils/http-body.js.map +0 -1
  779. package/dist/vault/routing.d.ts +0 -3
  780. package/dist/vault/routing.d.ts.map +0 -1
  781. package/dist/vault/routing.js +0 -13
  782. package/dist/vault/routing.js.map +0 -1
  783. package/dist/web/admin/portal.d.ts +0 -5
  784. package/dist/web/admin/portal.d.ts.map +0 -1
  785. package/dist/web/admin/portal.js +0 -2572
  786. package/dist/web/admin/portal.js.map +0 -1
  787. package/dist/web/admin/provider-models.d.ts.map +0 -1
  788. package/dist/web/admin/provider-models.js.map +0 -1
  789. package/dist/web/admin/store.d.ts +0 -13
  790. package/dist/web/admin/store.d.ts.map +0 -1
  791. package/dist/web/admin/store.js +0 -14
  792. package/dist/web/admin/store.js.map +0 -1
  793. package/dist/web/admin/types.d.ts +0 -30
  794. package/dist/web/admin/types.d.ts.map +0 -1
  795. package/dist/web/admin/types.js.map +0 -1
  796. package/dist/web/agent-events/portal.d.ts +0 -3
  797. package/dist/web/agent-events/portal.d.ts.map +0 -1
  798. package/dist/web/agent-events/portal.js +0 -18
  799. package/dist/web/agent-events/portal.js.map +0 -1
  800. package/dist/web/login/oauth.d.ts +0 -6
  801. package/dist/web/login/oauth.d.ts.map +0 -1
  802. package/dist/web/login/oauth.js.map +0 -1
  803. package/dist/web/login/portal.d.ts.map +0 -1
  804. package/dist/web/login/portal.js.map +0 -1
  805. package/dist/web/login/store.d.ts +0 -8
  806. package/dist/web/login/store.d.ts.map +0 -1
  807. package/dist/web/login/store.js +0 -15
  808. package/dist/web/login/store.js.map +0 -1
  809. package/dist/web/login/types.d.ts.map +0 -1
  810. package/dist/web/login/types.js.map +0 -1
  811. package/dist/web/request.d.ts +0 -3
  812. package/dist/web/request.d.ts.map +0 -1
  813. package/dist/web/request.js +0 -13
  814. package/dist/web/request.js.map +0 -1
  815. package/dist/web/server.d.ts.map +0 -1
  816. package/dist/web/server.js.map +0 -1
  817. package/dist/web/session-view/command.d.ts +0 -4
  818. package/dist/web/session-view/command.d.ts.map +0 -1
  819. package/dist/web/session-view/command.js +0 -7
  820. package/dist/web/session-view/command.js.map +0 -1
  821. package/dist/web/session-view/portal.d.ts +0 -13
  822. package/dist/web/session-view/portal.d.ts.map +0 -1
  823. package/dist/web/session-view/portal.js.map +0 -1
  824. package/dist/web/session-view/service.d.ts +0 -6
  825. package/dist/web/session-view/service.d.ts.map +0 -1
  826. package/dist/web/session-view/service.js +0 -498
  827. package/dist/web/session-view/service.js.map +0 -1
  828. package/dist/web/session-view/store.d.ts +0 -8
  829. package/dist/web/session-view/store.d.ts.map +0 -1
  830. package/dist/web/session-view/store.js +0 -15
  831. package/dist/web/session-view/store.js.map +0 -1
  832. package/dist/web/session-view/types.d.ts.map +0 -1
  833. package/dist/web/session-view/types.js.map +0 -1
  834. package/dist/web/token-store.d.ts.map +0 -1
  835. package/dist/web/token-store.js.map +0 -1
  836. package/dist/web/types.d.ts.map +0 -1
  837. package/dist/web/types.js.map +0 -1
  838. /package/dist/{commands → adapters/commands}/admin.d.ts +0 -0
  839. /package/dist/{commands → adapters/commands}/new.d.ts +0 -0
  840. /package/dist/{commands → adapters/commands}/sandbox.d.ts +0 -0
  841. /package/dist/{commands → adapters/commands}/session-view.d.ts +0 -0
  842. /package/dist/{commands → adapters/commands}/types.js +0 -0
  843. /package/dist/{harness/extensions → adapters/github}/types.js +0 -0
  844. /package/dist/{tools → adapters/web/admin}/types.js +0 -0
  845. /package/dist/{web/admin → adapters/web/login}/types.js +0 -0
  846. /package/dist/{web/login → adapters/web/session-view}/types.js +0 -0
  847. /package/dist/{web → adapters/web}/token-store.d.ts +0 -0
  848. /package/dist/{web → adapters/web}/types.d.ts +0 -0
  849. /package/dist/{web/session-view → adapters/web}/types.js +0 -0
  850. /package/dist/{download.d.ts → cli/download.d.ts} +0 -0
  851. /package/dist/{web → cli}/types.js +0 -0
  852. /package/dist/{adapters/slack → harness}/tools/attach.d.ts +0 -0
  853. /package/dist/{tools → harness/tools}/react.d.ts +0 -0
@@ -0,0 +1,684 @@
1
+ /**
2
+ * mikan-owned facade over Pi's current JSONL v4 SessionRepo.
3
+ *
4
+ * Pi owns entry, branch, value, transaction, and storage validation. mikan
5
+ * owns exact file paths, single-writer leases, lazy materialization, lineage
6
+ * metadata, and the stable inspection API consumed by platform runtimes.
7
+ * Older session generations are rejected and converted only by the offline
8
+ * `mikan sessions migrate` command.
9
+ */
10
+ import { closeSync, existsSync, fstatSync, ftruncateSync, mkdirSync, mkdtempSync, openSync, readFileSync, readSync, realpathSync, rmSync, statSync, writeFileSync, } from "node:fs";
11
+ import { tmpdir } from "node:os";
12
+ import { basename, dirname, join, resolve } from "node:path";
13
+ import { AgentHarness, branchTip, laneState, operationResult, createBranchSummaryMessage, createCompactionSummaryMessage, createCustomMessage, insertEntry, JsonlSessionRepo, MemorySessionRepo, setValue, TODO_CONTEXT, uuidv7, value, } from "@earendil-works/pi-agent-core";
14
+ import { NodeExecutionEnv } from "@earendil-works/pi-agent-core/node";
15
+ import { atomicWritePrivateFile } from "../file-guards.js";
16
+ import { CURRENT_SESSION_VERSION } from "./types.js";
17
+ import { loadMcpTools, formatMcpServerInstructions } from "../harness/mcp.js";
18
+ import * as log from "../log.js";
19
+ const MIKAN_METADATA = value("mikan", "metadata");
20
+ const activeWriterKeys = new Map();
21
+ function canonicalSessionPath(path) {
22
+ const absolute = resolve(path);
23
+ if (existsSync(absolute))
24
+ return realpathSync(absolute);
25
+ const parent = dirname(absolute);
26
+ mkdirSync(parent, { recursive: true });
27
+ return join(realpathSync(parent), basename(absolute));
28
+ }
29
+ function sessionWriterKey(path) {
30
+ if (!existsSync(path))
31
+ return `path:${path}`;
32
+ const stats = statSync(path);
33
+ return `inode:${stats.dev}:${stats.ino}:${stats.birthtimeMs}`;
34
+ }
35
+ function isStaleClaim(key, claimedPath) {
36
+ if (!key.startsWith("inode:"))
37
+ return false;
38
+ return sessionWriterKey(claimedPath) !== key;
39
+ }
40
+ function claimWriter(key, path) {
41
+ const claimedPath = activeWriterKeys.get(key);
42
+ if (claimedPath !== undefined && !isStaleClaim(key, claimedPath)) {
43
+ throw new Error(`Session file already has an active writer: ${path}`);
44
+ }
45
+ activeWriterKeys.set(key, path);
46
+ }
47
+ function acquireWriter(path) {
48
+ const canonical = canonicalSessionPath(path);
49
+ const key = sessionWriterKey(canonical);
50
+ claimWriter(key, canonical);
51
+ return { path: canonical, key };
52
+ }
53
+ function releaseWriter(key) {
54
+ activeWriterKeys.delete(key);
55
+ }
56
+ function promotePendingWriter(pathKey, path) {
57
+ const inodeKey = sessionWriterKey(path);
58
+ if (inodeKey === pathKey)
59
+ return pathKey;
60
+ claimWriter(inodeKey, path);
61
+ activeWriterKeys.delete(pathKey);
62
+ return inodeKey;
63
+ }
64
+ function toDurable(input) {
65
+ return input === undefined ? input : JSON.parse(JSON.stringify(input));
66
+ }
67
+ class SessionFormatError extends Error {
68
+ }
69
+ const HEADER_CHUNK_SIZE = 4096;
70
+ const MAX_HEADER_BYTES = 1024 * 1024;
71
+ function readHeaderLine(filePath) {
72
+ const fd = openSync(filePath, "r");
73
+ const chunks = [];
74
+ let total = 0;
75
+ try {
76
+ while (total < MAX_HEADER_BYTES) {
77
+ const chunk = Buffer.allocUnsafe(Math.min(HEADER_CHUNK_SIZE, MAX_HEADER_BYTES - total));
78
+ const bytesRead = readSync(fd, chunk, 0, chunk.length, null);
79
+ if (bytesRead === 0)
80
+ break;
81
+ const data = chunk.subarray(0, bytesRead);
82
+ const newline = data.indexOf(0x0a);
83
+ chunks.push(newline < 0 ? data : data.subarray(0, newline));
84
+ total += newline < 0 ? bytesRead : newline;
85
+ if (newline >= 0)
86
+ break;
87
+ }
88
+ }
89
+ finally {
90
+ closeSync(fd);
91
+ }
92
+ if (total >= MAX_HEADER_BYTES) {
93
+ throw new SessionFormatError(`Session file header exceeds ${MAX_HEADER_BYTES} bytes: ${filePath}`);
94
+ }
95
+ return Buffer.concat(chunks).toString("utf-8");
96
+ }
97
+ function parseCurrentHeader(filePath, firstLine) {
98
+ const trimmed = firstLine.trim();
99
+ if (!trimmed)
100
+ throw new SessionFormatError(`Session file has a blank header line: ${filePath}`);
101
+ let parsed;
102
+ try {
103
+ parsed = JSON.parse(trimmed);
104
+ }
105
+ catch {
106
+ throw new SessionFormatError(`Session file header is not valid JSON: ${filePath}`);
107
+ }
108
+ const record = parsed;
109
+ if (record.type === "session" || (record.kind === "header" && record.version === 4)) {
110
+ const generation = record.type === "session" ? "legacy v3" : "Pi 0.84 v4";
111
+ throw new SessionFormatError(`Session file uses the ${generation} format: ${filePath}. Run \`mikan sessions migrate\` before starting this mikan version.`);
112
+ }
113
+ if (record.kind !== "header" ||
114
+ record.v !== 4 ||
115
+ record.storageVersion !== 1 ||
116
+ typeof record.id !== "string" ||
117
+ typeof record.createdAt !== "number" ||
118
+ typeof record.cwd !== "string") {
119
+ throw new SessionFormatError(`Session file has an unrecognized header: ${filePath}`);
120
+ }
121
+ return parsed;
122
+ }
123
+ function metadataFromHeader(header, path) {
124
+ return {
125
+ id: header.id,
126
+ createdAt: header.createdAt,
127
+ storageVersion: header.storageVersion,
128
+ cwd: header.cwd,
129
+ path,
130
+ modifiedAt: 0,
131
+ ...(header.parentSessionId !== undefined ? { parentSessionId: header.parentSessionId } : {}),
132
+ ...(header.legacyParentSessionPath !== undefined
133
+ ? { legacyParentSessionPath: header.legacyParentSessionPath }
134
+ : {}),
135
+ };
136
+ }
137
+ /**
138
+ * Hand-rolled JSONL scan kept only for the synchronous `readHeader` path,
139
+ * which must read metadata without opening a Session. `open`/`inspect`
140
+ * instead read it via `session.getValue(MIKAN_METADATA, ...)` once a
141
+ * Session exists, so pi owns that decoding.
142
+ */
143
+ function parseMikanMetadata(filePath) {
144
+ let current;
145
+ for (const line of readFileSync(filePath, "utf-8").split("\n").slice(1)) {
146
+ for (const write of parseMetadataWrites(line)) {
147
+ if (write.op === "delete")
148
+ current = undefined;
149
+ else if (write.op === "set" && isMetadataRecord(write.value))
150
+ current = write.value;
151
+ }
152
+ }
153
+ return current;
154
+ }
155
+ function isMetadataRecord(input) {
156
+ return typeof input === "object" && input !== null && !Array.isArray(input);
157
+ }
158
+ function parseMetadataWrites(line) {
159
+ let transaction;
160
+ try {
161
+ transaction = JSON.parse(line);
162
+ }
163
+ catch {
164
+ return [];
165
+ }
166
+ const writes = Array.isArray(transaction) ? transaction : [transaction];
167
+ return writes.filter((write) => isMetadataRecord(write) &&
168
+ write.kind === "value" &&
169
+ write.namespace === "mikan" &&
170
+ write.key === "metadata");
171
+ }
172
+ function fileFingerprint(path) {
173
+ const fd = openSync(path, "r");
174
+ try {
175
+ const stats = fstatSync(fd);
176
+ return `${stats.dev}:${stats.ino}:${stats.size}:${stats.mtimeMs}`;
177
+ }
178
+ finally {
179
+ closeSync(fd);
180
+ }
181
+ }
182
+ function materializePendingFile(path, header, expectedFingerprint) {
183
+ const content = `${JSON.stringify(header)}\n`;
184
+ if (expectedFingerprint === null) {
185
+ mkdirSync(dirname(path), { recursive: true });
186
+ const fd = openSync(path, "wx", 0o600);
187
+ try {
188
+ writeFileSync(fd, content);
189
+ }
190
+ finally {
191
+ closeSync(fd);
192
+ }
193
+ return;
194
+ }
195
+ const fd = openSync(path, "r+");
196
+ try {
197
+ const stats = fstatSync(fd);
198
+ const actual = `${stats.dev}:${stats.ino}:${stats.size}:${stats.mtimeMs}`;
199
+ if (actual !== expectedFingerprint) {
200
+ throw new Error(`Session file changed before pending session materialization: ${path}`);
201
+ }
202
+ ftruncateSync(fd, 0);
203
+ writeFileSync(fd, content);
204
+ }
205
+ finally {
206
+ closeSync(fd);
207
+ }
208
+ }
209
+ function buildHeader(cwd, options) {
210
+ const metadata = options?.parentSession === undefined
211
+ ? undefined
212
+ : { parentSessionPath: options.parentSession };
213
+ return {
214
+ header: {
215
+ v: 4,
216
+ kind: "header",
217
+ id: options?.id ?? uuidv7(),
218
+ storageVersion: 1,
219
+ createdAt: Date.now(),
220
+ cwd,
221
+ ...(options?.parentSessionId !== undefined
222
+ ? { parentSessionId: options.parentSessionId }
223
+ : {}),
224
+ ...(options?.parentSession !== undefined
225
+ ? { legacyParentSessionPath: options.parentSession }
226
+ : {}),
227
+ },
228
+ ...(metadata !== undefined ? { metadata } : {}),
229
+ };
230
+ }
231
+ function headerView(header, metadata) {
232
+ const parentSession = typeof metadata?.parentSessionPath === "string"
233
+ ? metadata.parentSessionPath
234
+ : header.legacyParentSessionPath;
235
+ return {
236
+ type: "session",
237
+ version: CURRENT_SESSION_VERSION,
238
+ id: header.id,
239
+ timestamp: new Date(header.createdAt).toISOString(),
240
+ cwd: header.cwd,
241
+ ...(header.parentSessionId !== undefined ? { parentSessionId: header.parentSessionId } : {}),
242
+ ...(parentSession !== undefined ? { parentSession } : {}),
243
+ ...(metadata !== undefined ? { metadata } : {}),
244
+ };
245
+ }
246
+ async function openFileSession(path, header) {
247
+ const sessionRepo = new JsonlSessionRepo({
248
+ fileSystem: new NodeExecutionEnv({ cwd: process.cwd() }),
249
+ sessionsRoot: dirname(path),
250
+ });
251
+ try {
252
+ const session = await sessionRepo.open(metadataFromHeader(header, path), TODO_CONTEXT);
253
+ return { session, repo: sessionRepo };
254
+ }
255
+ catch (error) {
256
+ await sessionRepo.close(TODO_CONTEXT);
257
+ throw error;
258
+ }
259
+ }
260
+ /** Both inspection surfaces share one snapshot lifetime; neither claims the source writer. */
261
+ async function withSessionSnapshot(path, read) {
262
+ const resolvedPath = canonicalSessionPath(path);
263
+ const dir = mkdtempSync(join(tmpdir(), "mikan-session-inspect-"));
264
+ const snapshot = join(dir, basename(resolvedPath));
265
+ let opened;
266
+ try {
267
+ writeFileSync(snapshot, readFileSync(resolvedPath), { mode: 0o600, flag: "wx" });
268
+ const header = parseCurrentHeader(resolvedPath, readHeaderLine(snapshot));
269
+ opened = await openFileSession(snapshot, header);
270
+ return await read(opened.session, header);
271
+ }
272
+ finally {
273
+ try {
274
+ await opened?.session.close(TODO_CONTEXT);
275
+ }
276
+ finally {
277
+ try {
278
+ await opened?.repo.close(TODO_CONTEXT);
279
+ }
280
+ finally {
281
+ rmSync(dir, { recursive: true, force: true });
282
+ }
283
+ }
284
+ }
285
+ }
286
+ async function mainBranch(session, create) {
287
+ const existing = await session.branch("main", TODO_CONTEXT);
288
+ if (existing || !create)
289
+ return existing;
290
+ return session.createBranch("main", null, TODO_CONTEXT);
291
+ }
292
+ function isContextMessage(message) {
293
+ return (message.role !== "assistant" ||
294
+ (message.stopReason !== "error" &&
295
+ message.stopReason !== "aborted" &&
296
+ message.stopReason !== "deferred"));
297
+ }
298
+ function buildContext(entries) {
299
+ const compactionIndex = entries.findLastIndex((entry) => entry.type === "compaction");
300
+ const visibleEntries = entries.slice(Math.max(0, compactionIndex));
301
+ const messages = [];
302
+ for (const entry of visibleEntries) {
303
+ if (entry.type === "message") {
304
+ if (isContextMessage(entry.message))
305
+ messages.push(entry.message);
306
+ }
307
+ else if (entry.type === "compaction") {
308
+ messages.push(createCompactionSummaryMessage(entry.summary, entry.tokensBefore, entry.timestamp), ...entry.retainedTail.filter(isContextMessage));
309
+ }
310
+ else if (entry.type === "branch_summary" && entry.summary) {
311
+ messages.push(createBranchSummaryMessage(entry.summary, entry.fromId, entry.timestamp));
312
+ }
313
+ }
314
+ return { messages };
315
+ }
316
+ class CachedSessionInspection {
317
+ constructor(header, entries, name, branch, context) {
318
+ this.header = header;
319
+ this.entries = entries;
320
+ this.name = name;
321
+ this.branch = branch;
322
+ this.context = context;
323
+ }
324
+ getHeader() {
325
+ return structuredClone(this.header);
326
+ }
327
+ async getEntries() {
328
+ return structuredClone(this.entries);
329
+ }
330
+ async getSessionName() {
331
+ return this.name;
332
+ }
333
+ async getBranch(fromId) {
334
+ if (fromId === undefined)
335
+ return structuredClone(this.branch);
336
+ const byId = new Map(this.entries.map((entry) => [entry.id, entry]));
337
+ const result = [];
338
+ let current = byId.get(fromId);
339
+ while (current) {
340
+ result.push(current);
341
+ current = current.parentId === null ? undefined : byId.get(current.parentId);
342
+ }
343
+ return result.toReversed();
344
+ }
345
+ async buildSessionContext() {
346
+ return structuredClone(this.context);
347
+ }
348
+ }
349
+ export class SessionStore {
350
+ constructor(sessionFile, cwd, state, writerKey) {
351
+ this.sessionFile = sessionFile;
352
+ this.cwd = cwd;
353
+ this.state = state;
354
+ this.writerKey = writerKey;
355
+ this.mutationTail = Promise.resolve();
356
+ this.closed = false;
357
+ }
358
+ static async open(path, cwdOverride) {
359
+ const writer = acquireWriter(path);
360
+ const writerPath = writer.path;
361
+ try {
362
+ if (!existsSync(writerPath)) {
363
+ const cwd = cwdOverride ?? process.cwd();
364
+ const built = buildHeader(cwd);
365
+ return new SessionStore(writerPath, cwd, { kind: "pending", ...built, fingerprint: null }, writer.key);
366
+ }
367
+ const firstLine = readHeaderLine(writerPath);
368
+ if (firstLine.trim().length === 0) {
369
+ const cwd = cwdOverride ?? process.cwd();
370
+ const built = buildHeader(cwd);
371
+ return new SessionStore(writerPath, cwd, { kind: "pending", ...built, fingerprint: fileFingerprint(writerPath) }, writer.key);
372
+ }
373
+ const header = parseCurrentHeader(writerPath, firstLine);
374
+ const opened = await openFileSession(writerPath, header);
375
+ const metadata = (await opened.session.getValue(MIKAN_METADATA, TODO_CONTEXT))?.value;
376
+ return new SessionStore(writerPath, cwdOverride ?? header.cwd, { kind: "live", header, metadata, ...opened }, writer.key);
377
+ }
378
+ catch (error) {
379
+ releaseWriter(writer.key);
380
+ throw error;
381
+ }
382
+ }
383
+ /** Read native execution state without claiming the live file's writer. */
384
+ static async inspectExecution(path) {
385
+ return withSessionSnapshot(path, async (session) => {
386
+ const state = (await session.getValue(laneState("main"), TODO_CONTEXT))?.value;
387
+ const result = state?.lastOperationId
388
+ ? (await session.getValue(operationResult(state.lastOperationId), TODO_CONTEXT))?.value
389
+ : undefined;
390
+ return {
391
+ open: state?.currentOperationId != null,
392
+ started: state?.currentOperationId != null || state?.lastOperationId != null,
393
+ ...(result ? { result: { status: result.status, endedAt: result.endedAt } } : {}),
394
+ };
395
+ });
396
+ }
397
+ static async inspect(path) {
398
+ return withSessionSnapshot(path, async (session, header) => {
399
+ const metadata = (await session.getValue(MIKAN_METADATA, TODO_CONTEXT))?.value;
400
+ const entries = await session.findEntries({ order: "asc" }, TODO_CONTEXT);
401
+ const name = await session.getName(TODO_CONTEXT);
402
+ const branchObject = await mainBranch(session, false);
403
+ const branch = branchObject
404
+ ? await branchObject.findEntries({ order: "oldestFirst" }, TODO_CONTEXT)
405
+ : [];
406
+ const context = buildContext(branch);
407
+ return new CachedSessionInspection(headerView(header, metadata), entries, name, branch, context);
408
+ });
409
+ }
410
+ static async create(path, cwd, options) {
411
+ const writer = acquireWriter(path);
412
+ const writerPath = writer.path;
413
+ let leaseKey = writer.key;
414
+ let opened;
415
+ try {
416
+ const built = buildHeader(cwd, options);
417
+ mkdirSync(dirname(writerPath), { recursive: true });
418
+ writeFileSync(writerPath, `${JSON.stringify(built.header)}\n`, { mode: 0o600, flag: "wx" });
419
+ leaseKey = promotePendingWriter(leaseKey, writerPath);
420
+ opened = await openFileSession(writerPath, built.header);
421
+ if (built.metadata) {
422
+ await opened.session.setValue(MIKAN_METADATA, built.metadata, TODO_CONTEXT);
423
+ }
424
+ return new SessionStore(writerPath, cwd, { kind: "live", ...built, ...opened }, leaseKey);
425
+ }
426
+ catch (error) {
427
+ if (opened) {
428
+ await opened.session.close(TODO_CONTEXT).catch(() => undefined);
429
+ await opened.repo.close(TODO_CONTEXT).catch(() => undefined);
430
+ }
431
+ releaseWriter(leaseKey);
432
+ throw error;
433
+ }
434
+ }
435
+ static readHeader(path) {
436
+ let firstLine;
437
+ try {
438
+ firstLine = readHeaderLine(path);
439
+ }
440
+ catch {
441
+ return null;
442
+ }
443
+ if (firstLine.trim().length === 0)
444
+ return null;
445
+ try {
446
+ const header = parseCurrentHeader(path, firstLine);
447
+ return headerView(header, parseMikanMetadata(path));
448
+ }
449
+ catch (error) {
450
+ if (error instanceof SessionFormatError && /legacy v3|Pi 0\.84 v4/.test(error.message)) {
451
+ throw error;
452
+ }
453
+ return null;
454
+ }
455
+ }
456
+ static writeHeaderFile(path, cwd, options) {
457
+ mkdirSync(dirname(path), { recursive: true });
458
+ const built = buildHeader(cwd, options);
459
+ atomicWritePrivateFile(path, `${JSON.stringify(built.header)}\n`);
460
+ }
461
+ static inMemory(cwd = process.cwd()) {
462
+ const built = buildHeader(cwd);
463
+ return new SessionStore(null, cwd, { kind: "pending", ...built, fingerprint: null }, null);
464
+ }
465
+ getSessionFile() {
466
+ this.assertOpen();
467
+ return this.sessionFile ?? undefined;
468
+ }
469
+ isPersisted() {
470
+ this.assertOpen();
471
+ return this.sessionFile !== null;
472
+ }
473
+ getCwd() {
474
+ this.assertOpen();
475
+ return this.cwd;
476
+ }
477
+ getHeader() {
478
+ this.assertOpen();
479
+ return headerView(this.state.header, this.state.metadata);
480
+ }
481
+ getSessionId() {
482
+ this.assertOpen();
483
+ return this.state.header.id;
484
+ }
485
+ async getLeafId() {
486
+ this.assertOpen();
487
+ if (this.state.kind === "pending")
488
+ return null;
489
+ return (await mainBranch(this.state.session, false))?.getTipId(TODO_CONTEXT) ?? null;
490
+ }
491
+ async getEntry(id) {
492
+ this.assertOpen();
493
+ if (this.state.kind === "pending")
494
+ return undefined;
495
+ return this.state.session.getEntry(id, TODO_CONTEXT);
496
+ }
497
+ async getEntries() {
498
+ this.assertOpen();
499
+ if (this.state.kind === "pending")
500
+ return [];
501
+ return this.state.session.findEntries({ order: "asc" }, TODO_CONTEXT);
502
+ }
503
+ async getSessionName() {
504
+ this.assertOpen();
505
+ if (this.state.kind === "pending")
506
+ return undefined;
507
+ return this.state.session.getName(TODO_CONTEXT);
508
+ }
509
+ async getBranch(fromId) {
510
+ this.assertOpen();
511
+ if (this.state.kind === "pending")
512
+ return [];
513
+ if (fromId !== undefined) {
514
+ return this.state.session.scanBranch({ start: fromId, order: "oldestFirst" }, TODO_CONTEXT);
515
+ }
516
+ const branchObject = await mainBranch(this.state.session, false);
517
+ return branchObject ? branchObject.findEntries({ order: "oldestFirst" }, TODO_CONTEXT) : [];
518
+ }
519
+ async buildSessionContext() {
520
+ return buildContext(await this.getBranch());
521
+ }
522
+ /** Acquire host MCP capabilities under the same lifetime as the session writer. */
523
+ async connectMcp(servers, signal) {
524
+ return this.mutate(async () => {
525
+ if (this.mcp)
526
+ throw new Error("SessionStore already has MCP connections");
527
+ this.mcp = await loadMcpTools(servers, signal);
528
+ for (const error of this.mcp.errors) {
529
+ log.logWarning(`MCP server unavailable: ${error.server}`, error.error);
530
+ }
531
+ signal?.throwIfAborted();
532
+ return this.mcp.tools;
533
+ });
534
+ }
535
+ /** MCP guidance remains attached when the caller refreshes its per-turn prompt. */
536
+ withMcpInstructions(prompt) {
537
+ const instructions = formatMcpServerInstructions(this.mcp?.instructions ?? []);
538
+ return instructions ? `${prompt}\n\n${instructions}` : prompt;
539
+ }
540
+ /** Attach Pi's runtime to this store's sole writable Session. */
541
+ async createHarness(options) {
542
+ return this.mutate(async () => {
543
+ if (this.harness)
544
+ throw new Error("SessionStore already has an attached harness");
545
+ const { session } = await this.live();
546
+ const { harness } = await AgentHarness.create({ ...options, session }, TODO_CONTEXT);
547
+ this.harness = harness;
548
+ this.harnessLane = await harness.lane("main", TODO_CONTEXT);
549
+ return harness;
550
+ });
551
+ }
552
+ async appendMessage(message) {
553
+ return this.mutate(async () => {
554
+ if (this.harnessLane)
555
+ return this.harnessLane.appendMessage(toDurable(message), TODO_CONTEXT);
556
+ const branchObject = await mainBranch((await this.live()).session, true);
557
+ if (!branchObject)
558
+ throw new Error("Failed to create main session branch");
559
+ return branchObject.appendMessage(toDurable(message), TODO_CONTEXT);
560
+ });
561
+ }
562
+ async appendCustomEntry(customType, data) {
563
+ return this.mutate(async () => {
564
+ if (this.harnessLane) {
565
+ return this.harnessLane.appendCustomEntry(customType, toDurable(data), TODO_CONTEXT);
566
+ }
567
+ const branchObject = await mainBranch((await this.live()).session, true);
568
+ if (!branchObject)
569
+ throw new Error("Failed to create main session branch");
570
+ return branchObject.appendCustomEntry(customType, toDurable(data), TODO_CONTEXT);
571
+ });
572
+ }
573
+ async appendCustomMessageEntry(customType, content, display, details) {
574
+ return this.appendMessage(toDurable(createCustomMessage(customType, content, display, details, Date.now())));
575
+ }
576
+ async setSessionName(name) {
577
+ await this.mutate(async () => (await this.live()).session.setName(name.trim() || undefined, TODO_CONTEXT));
578
+ }
579
+ async appendCompaction(summary, retainedTail, tokensBefore, details) {
580
+ return this.mutate(async () => {
581
+ if (this.harness)
582
+ throw new Error("Compaction is owned by the attached Pi harness");
583
+ const { session } = await this.live();
584
+ const id = session.idGenerator.next();
585
+ await session.mutate(async (mutator, context) => {
586
+ const currentTip = await mutator.getValue(branchTip("main"), context);
587
+ await mutator.commit([
588
+ insertEntry({
589
+ type: "compaction",
590
+ id,
591
+ parentId: currentTip?.value ?? null,
592
+ summary,
593
+ retainedTail: toDurable(retainedTail),
594
+ tokensBefore,
595
+ fromHook: false,
596
+ ...(details !== undefined ? { details: toDurable(details) } : {}),
597
+ }),
598
+ setValue(branchTip("main"), id),
599
+ ], context);
600
+ }, TODO_CONTEXT);
601
+ return id;
602
+ });
603
+ }
604
+ async close() {
605
+ if (this.closePromise)
606
+ return this.closePromise;
607
+ this.closed = true;
608
+ this.closePromise = this.mutationTail
609
+ .then(async () => {
610
+ try {
611
+ await this.mcp?.dispose();
612
+ }
613
+ finally {
614
+ if (this.state.kind === "live") {
615
+ try {
616
+ if (this.harness)
617
+ await this.harness.close(TODO_CONTEXT);
618
+ else
619
+ await this.state.session.close(TODO_CONTEXT);
620
+ }
621
+ finally {
622
+ await this.state.repo?.close(TODO_CONTEXT);
623
+ }
624
+ }
625
+ }
626
+ })
627
+ .finally(() => {
628
+ if (this.writerKey !== null)
629
+ releaseWriter(this.writerKey);
630
+ });
631
+ return this.closePromise;
632
+ }
633
+ assertOpen() {
634
+ if (this.closed)
635
+ throw new Error("SessionStore is closed");
636
+ }
637
+ mutate(operation) {
638
+ this.assertOpen();
639
+ const result = this.mutationTail.then(operation);
640
+ this.mutationTail = result.then(() => undefined, () => undefined);
641
+ return result;
642
+ }
643
+ async live() {
644
+ if (this.state.kind === "live")
645
+ return this.state;
646
+ const pending = this.state;
647
+ const sessionFile = this.sessionFile;
648
+ if (sessionFile === null) {
649
+ const repo = new MemorySessionRepo();
650
+ const session = await repo.create({
651
+ id: pending.header.id,
652
+ ...(pending.header.parentSessionId !== undefined
653
+ ? { parentSessionId: pending.header.parentSessionId }
654
+ : {}),
655
+ }, TODO_CONTEXT);
656
+ const live = {
657
+ kind: "live",
658
+ header: pending.header,
659
+ metadata: pending.metadata,
660
+ session,
661
+ repo,
662
+ };
663
+ this.state = live;
664
+ return live;
665
+ }
666
+ materializePendingFile(sessionFile, pending.header, pending.fingerprint);
667
+ if (this.writerKey === null)
668
+ throw new Error("Pending session must have a writer lease");
669
+ this.writerKey = promotePendingWriter(this.writerKey, sessionFile);
670
+ const opened = await openFileSession(sessionFile, pending.header);
671
+ if (pending.metadata) {
672
+ await opened.session.setValue(MIKAN_METADATA, pending.metadata, TODO_CONTEXT);
673
+ }
674
+ const live = {
675
+ kind: "live",
676
+ header: pending.header,
677
+ metadata: pending.metadata,
678
+ ...opened,
679
+ };
680
+ this.state = live;
681
+ return live;
682
+ }
683
+ }
684
+ //# sourceMappingURL=session-store.js.map