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

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 (856) hide show
  1. package/CHANGELOG.md +1052 -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 +420 -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 +293 -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 +85 -0
  411. package/dist/harness/tools/subagent.d.ts.map +1 -0
  412. package/dist/harness/tools/subagent.js +677 -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/log.d.ts.map +1 -1
  431. package/dist/log.js +4 -1
  432. package/dist/log.js.map +1 -1
  433. package/dist/main.js +357 -198
  434. package/dist/main.js.map +1 -1
  435. package/dist/observability/index.d.ts +33 -0
  436. package/dist/observability/index.d.ts.map +1 -0
  437. package/dist/observability/index.js +257 -0
  438. package/dist/observability/index.js.map +1 -0
  439. package/dist/observability/instrument.js +14 -6
  440. package/dist/observability/instrument.js.map +1 -1
  441. package/dist/observability/otel.d.ts +10 -0
  442. package/dist/observability/otel.d.ts.map +1 -0
  443. package/dist/observability/otel.js +183 -0
  444. package/dist/observability/otel.js.map +1 -0
  445. package/dist/observability/sentry.d.ts +40 -7
  446. package/dist/observability/sentry.d.ts.map +1 -1
  447. package/dist/observability/sentry.js +176 -32
  448. package/dist/observability/sentry.js.map +1 -1
  449. package/dist/observability/types.d.ts +24 -3
  450. package/dist/observability/types.d.ts.map +1 -1
  451. package/dist/observability/types.js.map +1 -1
  452. package/dist/office/index.d.ts +139 -0
  453. package/dist/office/index.d.ts.map +1 -0
  454. package/dist/office/index.js +1084 -0
  455. package/dist/office/index.js.map +1 -0
  456. package/dist/office/projection.d.ts +42 -0
  457. package/dist/office/projection.d.ts.map +1 -0
  458. package/dist/office/projection.js +182 -0
  459. package/dist/office/projection.js.map +1 -0
  460. package/dist/office/types.d.ts +116 -0
  461. package/dist/office/types.d.ts.map +1 -0
  462. package/dist/office/types.js +2 -0
  463. package/dist/office/types.js.map +1 -0
  464. package/dist/runtime/conversation-runtime.d.ts +1 -1
  465. package/dist/runtime/conversation-runtime.d.ts.map +1 -1
  466. package/dist/runtime/conversation-runtime.js +423 -152
  467. package/dist/runtime/conversation-runtime.js.map +1 -1
  468. package/dist/runtime/session-lifecycle.d.ts +76 -0
  469. package/dist/runtime/session-lifecycle.d.ts.map +1 -0
  470. package/dist/runtime/session-lifecycle.js +404 -0
  471. package/dist/runtime/session-lifecycle.js.map +1 -0
  472. package/dist/runtime/types.d.ts +63 -15
  473. package/dist/runtime/types.d.ts.map +1 -1
  474. package/dist/runtime/types.js.map +1 -1
  475. package/dist/sandbox/cloudflare.d.ts +4 -0
  476. package/dist/sandbox/cloudflare.d.ts.map +1 -1
  477. package/dist/sandbox/cloudflare.js +54 -52
  478. package/dist/sandbox/cloudflare.js.map +1 -1
  479. package/dist/sandbox/container.d.ts +3 -0
  480. package/dist/sandbox/container.d.ts.map +1 -1
  481. package/dist/sandbox/container.js +19 -7
  482. package/dist/sandbox/container.js.map +1 -1
  483. package/dist/sandbox/host.d.ts +3 -0
  484. package/dist/sandbox/host.d.ts.map +1 -1
  485. package/dist/sandbox/host.js +44 -35
  486. package/dist/sandbox/host.js.map +1 -1
  487. package/dist/sandbox/identity.d.ts +42 -0
  488. package/dist/sandbox/identity.d.ts.map +1 -0
  489. package/dist/sandbox/identity.js +77 -0
  490. package/dist/sandbox/identity.js.map +1 -0
  491. package/dist/sandbox/index.d.ts +24 -6
  492. package/dist/sandbox/index.d.ts.map +1 -1
  493. package/dist/sandbox/index.js +77 -17
  494. package/dist/sandbox/index.js.map +1 -1
  495. package/dist/sandbox/provisioner.d.ts +139 -0
  496. package/dist/sandbox/provisioner.d.ts.map +1 -0
  497. package/dist/{provisioner.js → sandbox/provisioner.js} +378 -24
  498. package/dist/sandbox/provisioner.js.map +1 -0
  499. package/dist/sandbox/types.d.ts +43 -9
  500. package/dist/sandbox/types.d.ts.map +1 -1
  501. package/dist/sandbox/types.js.map +1 -1
  502. package/dist/sandbox/utils.d.ts +24 -0
  503. package/dist/sandbox/utils.d.ts.map +1 -1
  504. package/dist/sandbox/utils.js +92 -1
  505. package/dist/sandbox/utils.js.map +1 -1
  506. package/dist/sessions/chat-history-sync.d.ts +23 -0
  507. package/dist/sessions/chat-history-sync.d.ts.map +1 -0
  508. package/dist/sessions/{agent-memory-file-manager.js → chat-history-sync.js} +239 -175
  509. package/dist/sessions/chat-history-sync.js.map +1 -0
  510. package/dist/sessions/history-line.d.ts +29 -0
  511. package/dist/sessions/history-line.d.ts.map +1 -0
  512. package/dist/sessions/history-line.js +45 -0
  513. package/dist/sessions/history-line.js.map +1 -0
  514. package/dist/sessions/migrate-common.d.ts +43 -0
  515. package/dist/sessions/migrate-common.d.ts.map +1 -0
  516. package/dist/sessions/migrate-common.js +99 -0
  517. package/dist/sessions/migrate-common.js.map +1 -0
  518. package/dist/sessions/migrate-pi-084.d.ts +8 -0
  519. package/dist/sessions/migrate-pi-084.d.ts.map +1 -0
  520. package/dist/sessions/migrate-pi-084.js +302 -0
  521. package/dist/sessions/migrate-pi-084.js.map +1 -0
  522. package/dist/sessions/migrate-v3.d.ts +15 -0
  523. package/dist/sessions/migrate-v3.d.ts.map +1 -0
  524. package/dist/sessions/migrate-v3.js +419 -0
  525. package/dist/sessions/migrate-v3.js.map +1 -0
  526. package/dist/sessions/session-key.d.ts +33 -0
  527. package/dist/sessions/session-key.d.ts.map +1 -0
  528. package/dist/sessions/session-key.js +115 -0
  529. package/dist/sessions/session-key.js.map +1 -0
  530. package/dist/sessions/session-store.d.ts +61 -0
  531. package/dist/sessions/session-store.d.ts.map +1 -0
  532. package/dist/sessions/session-store.js +684 -0
  533. package/dist/sessions/session-store.js.map +1 -0
  534. package/dist/sessions/store.d.ts +17 -10
  535. package/dist/sessions/store.d.ts.map +1 -1
  536. package/dist/sessions/store.js +182 -47
  537. package/dist/sessions/store.js.map +1 -1
  538. package/dist/sessions/types.d.ts +74 -8
  539. package/dist/sessions/types.d.ts.map +1 -1
  540. package/dist/sessions/types.js +1 -1
  541. package/dist/sessions/types.js.map +1 -1
  542. package/dist/settings/apply.d.ts +16 -0
  543. package/dist/settings/apply.d.ts.map +1 -0
  544. package/dist/settings/apply.js +60 -0
  545. package/dist/settings/apply.js.map +1 -0
  546. package/dist/settings/index.d.ts +126 -0
  547. package/dist/settings/index.d.ts.map +1 -0
  548. package/dist/settings/index.js +422 -0
  549. package/dist/settings/index.js.map +1 -0
  550. package/dist/settings/migrate.d.ts +21 -0
  551. package/dist/settings/migrate.d.ts.map +1 -0
  552. package/dist/settings/migrate.js +86 -0
  553. package/dist/settings/migrate.js.map +1 -0
  554. package/dist/types.d.ts +330 -141
  555. package/dist/types.d.ts.map +1 -1
  556. package/dist/types.js +2 -2
  557. package/dist/types.js.map +1 -1
  558. package/dist/vault/index.d.ts +52 -2
  559. package/dist/vault/index.d.ts.map +1 -1
  560. package/dist/vault/index.js +218 -86
  561. package/dist/vault/index.js.map +1 -1
  562. package/dist/vault/types.d.ts +6 -2
  563. package/dist/vault/types.d.ts.map +1 -1
  564. package/dist/vault/types.js.map +1 -1
  565. package/package.json +79 -40
  566. package/dist/adapter.d.ts +0 -2
  567. package/dist/adapter.d.ts.map +0 -1
  568. package/dist/adapter.js +0 -2
  569. package/dist/adapter.js.map +0 -1
  570. package/dist/adapters/slack/tools/attach.d.ts.map +0 -1
  571. package/dist/adapters/slack/tools/attach.js.map +0 -1
  572. package/dist/adapters/streaming.d.ts +0 -18
  573. package/dist/adapters/streaming.d.ts.map +0 -1
  574. package/dist/adapters/streaming.js +0 -44
  575. package/dist/adapters/streaming.js.map +0 -1
  576. package/dist/adapters/telegram/html.d.ts +0 -3
  577. package/dist/adapters/telegram/html.d.ts.map +0 -1
  578. package/dist/adapters/telegram/html.js +0 -98
  579. package/dist/adapters/telegram/html.js.map +0 -1
  580. package/dist/agent-events.d.ts +0 -5
  581. package/dist/agent-events.d.ts.map +0 -1
  582. package/dist/agent-events.js +0 -26
  583. package/dist/agent-events.js.map +0 -1
  584. package/dist/agent.d.ts +0 -39
  585. package/dist/agent.d.ts.map +0 -1
  586. package/dist/agent.js +0 -1291
  587. package/dist/agent.js.map +0 -1
  588. package/dist/cli/ext-git.d.ts +0 -22
  589. package/dist/cli/ext-git.d.ts.map +0 -1
  590. package/dist/cli/ext-git.js +0 -76
  591. package/dist/cli/ext-git.js.map +0 -1
  592. package/dist/cli/ext.d.ts +0 -2
  593. package/dist/cli/ext.d.ts.map +0 -1
  594. package/dist/cli/ext.js +0 -217
  595. package/dist/cli/ext.js.map +0 -1
  596. package/dist/commands/admin.d.ts.map +0 -1
  597. package/dist/commands/admin.js.map +0 -1
  598. package/dist/commands/auto-reply.d.ts.map +0 -1
  599. package/dist/commands/auto-reply.js +0 -76
  600. package/dist/commands/auto-reply.js.map +0 -1
  601. package/dist/commands/extensions.d.ts +0 -14
  602. package/dist/commands/extensions.d.ts.map +0 -1
  603. package/dist/commands/extensions.js +0 -55
  604. package/dist/commands/extensions.js.map +0 -1
  605. package/dist/commands/login.d.ts +0 -5
  606. package/dist/commands/login.d.ts.map +0 -1
  607. package/dist/commands/login.js +0 -115
  608. package/dist/commands/login.js.map +0 -1
  609. package/dist/commands/model.d.ts +0 -10
  610. package/dist/commands/model.d.ts.map +0 -1
  611. package/dist/commands/model.js +0 -102
  612. package/dist/commands/model.js.map +0 -1
  613. package/dist/commands/new.d.ts.map +0 -1
  614. package/dist/commands/new.js +0 -25
  615. package/dist/commands/new.js.map +0 -1
  616. package/dist/commands/parse.d.ts +0 -7
  617. package/dist/commands/parse.d.ts.map +0 -1
  618. package/dist/commands/parse.js +0 -14
  619. package/dist/commands/parse.js.map +0 -1
  620. package/dist/commands/registry.d.ts +0 -5
  621. package/dist/commands/registry.d.ts.map +0 -1
  622. package/dist/commands/registry.js +0 -31
  623. package/dist/commands/registry.js.map +0 -1
  624. package/dist/commands/sandbox.d.ts.map +0 -1
  625. package/dist/commands/sandbox.js +0 -78
  626. package/dist/commands/sandbox.js.map +0 -1
  627. package/dist/commands/session-view.d.ts.map +0 -1
  628. package/dist/commands/session-view.js.map +0 -1
  629. package/dist/commands/types.d.ts +0 -66
  630. package/dist/commands/types.d.ts.map +0 -1
  631. package/dist/commands/types.js.map +0 -1
  632. package/dist/commands/utils.d.ts +0 -11
  633. package/dist/commands/utils.d.ts.map +0 -1
  634. package/dist/commands/utils.js.map +0 -1
  635. package/dist/config.d.ts +0 -78
  636. package/dist/config.d.ts.map +0 -1
  637. package/dist/config.js +0 -450
  638. package/dist/config.js.map +0 -1
  639. package/dist/download.d.ts.map +0 -1
  640. package/dist/download.js +0 -89
  641. package/dist/download.js.map +0 -1
  642. package/dist/events.d.ts +0 -43
  643. package/dist/events.d.ts.map +0 -1
  644. package/dist/events.js +0 -456
  645. package/dist/events.js.map +0 -1
  646. package/dist/execution-resolver.d.ts +0 -21
  647. package/dist/execution-resolver.d.ts.map +0 -1
  648. package/dist/execution-resolver.js +0 -170
  649. package/dist/execution-resolver.js.map +0 -1
  650. package/dist/harness/auth.d.ts +0 -16
  651. package/dist/harness/auth.d.ts.map +0 -1
  652. package/dist/harness/auth.js +0 -86
  653. package/dist/harness/auth.js.map +0 -1
  654. package/dist/harness/extensions/loader.d.ts +0 -86
  655. package/dist/harness/extensions/loader.d.ts.map +0 -1
  656. package/dist/harness/extensions/loader.js +0 -525
  657. package/dist/harness/extensions/loader.js.map +0 -1
  658. package/dist/harness/extensions/registry.d.ts +0 -23
  659. package/dist/harness/extensions/registry.d.ts.map +0 -1
  660. package/dist/harness/extensions/registry.js +0 -45
  661. package/dist/harness/extensions/registry.js.map +0 -1
  662. package/dist/harness/extensions/types.d.ts +0 -248
  663. package/dist/harness/extensions/types.d.ts.map +0 -1
  664. package/dist/harness/extensions/types.js.map +0 -1
  665. package/dist/harness/session-store.d.ts +0 -77
  666. package/dist/harness/session-store.d.ts.map +0 -1
  667. package/dist/harness/session-store.js +0 -248
  668. package/dist/harness/session-store.js.map +0 -1
  669. package/dist/harness/settings.d.ts +0 -47
  670. package/dist/harness/settings.d.ts.map +0 -1
  671. package/dist/harness/settings.js +0 -29
  672. package/dist/harness/settings.js.map +0 -1
  673. package/dist/model-registry.d.ts +0 -4
  674. package/dist/model-registry.d.ts.map +0 -1
  675. package/dist/model-registry.js +0 -7
  676. package/dist/model-registry.js.map +0 -1
  677. package/dist/platform-messages.d.ts.map +0 -1
  678. package/dist/platform-messages.js.map +0 -1
  679. package/dist/portal-shell.d.ts +0 -4
  680. package/dist/portal-shell.d.ts.map +0 -1
  681. package/dist/portal-shell.js.map +0 -1
  682. package/dist/provisioner.d.ts +0 -61
  683. package/dist/provisioner.d.ts.map +0 -1
  684. package/dist/provisioner.js.map +0 -1
  685. package/dist/runtime/agent-run-controller.d.ts +0 -31
  686. package/dist/runtime/agent-run-controller.d.ts.map +0 -1
  687. package/dist/runtime/agent-run-controller.js +0 -195
  688. package/dist/runtime/agent-run-controller.js.map +0 -1
  689. package/dist/sandbox/errors.d.ts +0 -6
  690. package/dist/sandbox/errors.d.ts.map +0 -1
  691. package/dist/sandbox/errors.js +0 -11
  692. package/dist/sandbox/errors.js.map +0 -1
  693. package/dist/sandbox/firecracker.d.ts +0 -15
  694. package/dist/sandbox/firecracker.d.ts.map +0 -1
  695. package/dist/sandbox/firecracker.js +0 -212
  696. package/dist/sandbox/firecracker.js.map +0 -1
  697. package/dist/sandbox/image.d.ts +0 -3
  698. package/dist/sandbox/image.d.ts.map +0 -1
  699. package/dist/sandbox/image.js +0 -27
  700. package/dist/sandbox/image.js.map +0 -1
  701. package/dist/sandbox/path-context.d.ts +0 -3
  702. package/dist/sandbox/path-context.d.ts.map +0 -1
  703. package/dist/sandbox/path-context.js +0 -20
  704. package/dist/sandbox/path-context.js.map +0 -1
  705. package/dist/sessions/agent-memory-file-manager.d.ts +0 -19
  706. package/dist/sessions/agent-memory-file-manager.d.ts.map +0 -1
  707. package/dist/sessions/agent-memory-file-manager.js.map +0 -1
  708. package/dist/sessions/metadata.d.ts +0 -3
  709. package/dist/sessions/metadata.d.ts.map +0 -1
  710. package/dist/sessions/metadata.js +0 -11
  711. package/dist/sessions/metadata.js.map +0 -1
  712. package/dist/sessions/policy.d.ts +0 -6
  713. package/dist/sessions/policy.d.ts.map +0 -1
  714. package/dist/sessions/policy.js +0 -23
  715. package/dist/sessions/policy.js.map +0 -1
  716. package/dist/store.d.ts +0 -46
  717. package/dist/store.d.ts.map +0 -1
  718. package/dist/store.js +0 -177
  719. package/dist/store.js.map +0 -1
  720. package/dist/tools/bash.d.ts +0 -10
  721. package/dist/tools/bash.d.ts.map +0 -1
  722. package/dist/tools/bash.js +0 -80
  723. package/dist/tools/bash.js.map +0 -1
  724. package/dist/tools/edit.d.ts +0 -11
  725. package/dist/tools/edit.d.ts.map +0 -1
  726. package/dist/tools/edit.js +0 -131
  727. package/dist/tools/edit.js.map +0 -1
  728. package/dist/tools/event.d.ts.map +0 -1
  729. package/dist/tools/event.js +0 -252
  730. package/dist/tools/event.js.map +0 -1
  731. package/dist/tools/index.d.ts +0 -24
  732. package/dist/tools/index.d.ts.map +0 -1
  733. package/dist/tools/index.js +0 -31
  734. package/dist/tools/index.js.map +0 -1
  735. package/dist/tools/react.d.ts.map +0 -1
  736. package/dist/tools/react.js.map +0 -1
  737. package/dist/tools/read.d.ts +0 -11
  738. package/dist/tools/read.d.ts.map +0 -1
  739. package/dist/tools/read.js +0 -134
  740. package/dist/tools/read.js.map +0 -1
  741. package/dist/tools/sandbox.d.ts.map +0 -1
  742. package/dist/tools/sandbox.js.map +0 -1
  743. package/dist/tools/truncate.d.ts +0 -33
  744. package/dist/tools/truncate.d.ts.map +0 -1
  745. package/dist/tools/truncate.js +0 -184
  746. package/dist/tools/truncate.js.map +0 -1
  747. package/dist/tools/types.d.ts +0 -54
  748. package/dist/tools/types.d.ts.map +0 -1
  749. package/dist/tools/types.js.map +0 -1
  750. package/dist/tools/write.d.ts +0 -10
  751. package/dist/tools/write.d.ts.map +0 -1
  752. package/dist/tools/write.js +0 -29
  753. package/dist/tools/write.js.map +0 -1
  754. package/dist/trigger.d.ts +0 -22
  755. package/dist/trigger.d.ts.map +0 -1
  756. package/dist/trigger.js +0 -100
  757. package/dist/trigger.js.map +0 -1
  758. package/dist/utils/date.d.ts +0 -10
  759. package/dist/utils/date.d.ts.map +0 -1
  760. package/dist/utils/date.js +0 -23
  761. package/dist/utils/date.js.map +0 -1
  762. package/dist/utils/env.d.ts +0 -3
  763. package/dist/utils/env.d.ts.map +0 -1
  764. package/dist/utils/env.js +0 -12
  765. package/dist/utils/env.js.map +0 -1
  766. package/dist/utils/file-guards.d.ts +0 -9
  767. package/dist/utils/file-guards.d.ts.map +0 -1
  768. package/dist/utils/file-guards.js +0 -59
  769. package/dist/utils/file-guards.js.map +0 -1
  770. package/dist/utils/fs-atomic.d.ts +0 -10
  771. package/dist/utils/fs-atomic.d.ts.map +0 -1
  772. package/dist/utils/fs-atomic.js +0 -45
  773. package/dist/utils/fs-atomic.js.map +0 -1
  774. package/dist/utils/html.d.ts +0 -2
  775. package/dist/utils/html.d.ts.map +0 -1
  776. package/dist/utils/html.js +0 -4
  777. package/dist/utils/html.js.map +0 -1
  778. package/dist/utils/http-body.d.ts +0 -10
  779. package/dist/utils/http-body.d.ts.map +0 -1
  780. package/dist/utils/http-body.js +0 -34
  781. package/dist/utils/http-body.js.map +0 -1
  782. package/dist/vault/routing.d.ts +0 -3
  783. package/dist/vault/routing.d.ts.map +0 -1
  784. package/dist/vault/routing.js +0 -13
  785. package/dist/vault/routing.js.map +0 -1
  786. package/dist/web/admin/portal.d.ts +0 -5
  787. package/dist/web/admin/portal.d.ts.map +0 -1
  788. package/dist/web/admin/portal.js +0 -2572
  789. package/dist/web/admin/portal.js.map +0 -1
  790. package/dist/web/admin/provider-models.d.ts.map +0 -1
  791. package/dist/web/admin/provider-models.js.map +0 -1
  792. package/dist/web/admin/store.d.ts +0 -13
  793. package/dist/web/admin/store.d.ts.map +0 -1
  794. package/dist/web/admin/store.js +0 -14
  795. package/dist/web/admin/store.js.map +0 -1
  796. package/dist/web/admin/types.d.ts +0 -30
  797. package/dist/web/admin/types.d.ts.map +0 -1
  798. package/dist/web/admin/types.js.map +0 -1
  799. package/dist/web/agent-events/portal.d.ts +0 -3
  800. package/dist/web/agent-events/portal.d.ts.map +0 -1
  801. package/dist/web/agent-events/portal.js +0 -18
  802. package/dist/web/agent-events/portal.js.map +0 -1
  803. package/dist/web/login/oauth.d.ts +0 -6
  804. package/dist/web/login/oauth.d.ts.map +0 -1
  805. package/dist/web/login/oauth.js.map +0 -1
  806. package/dist/web/login/portal.d.ts.map +0 -1
  807. package/dist/web/login/portal.js.map +0 -1
  808. package/dist/web/login/store.d.ts +0 -8
  809. package/dist/web/login/store.d.ts.map +0 -1
  810. package/dist/web/login/store.js +0 -15
  811. package/dist/web/login/store.js.map +0 -1
  812. package/dist/web/login/types.d.ts.map +0 -1
  813. package/dist/web/login/types.js.map +0 -1
  814. package/dist/web/request.d.ts +0 -3
  815. package/dist/web/request.d.ts.map +0 -1
  816. package/dist/web/request.js +0 -13
  817. package/dist/web/request.js.map +0 -1
  818. package/dist/web/server.d.ts.map +0 -1
  819. package/dist/web/server.js.map +0 -1
  820. package/dist/web/session-view/command.d.ts +0 -4
  821. package/dist/web/session-view/command.d.ts.map +0 -1
  822. package/dist/web/session-view/command.js +0 -7
  823. package/dist/web/session-view/command.js.map +0 -1
  824. package/dist/web/session-view/portal.d.ts +0 -13
  825. package/dist/web/session-view/portal.d.ts.map +0 -1
  826. package/dist/web/session-view/portal.js.map +0 -1
  827. package/dist/web/session-view/service.d.ts +0 -6
  828. package/dist/web/session-view/service.d.ts.map +0 -1
  829. package/dist/web/session-view/service.js +0 -498
  830. package/dist/web/session-view/service.js.map +0 -1
  831. package/dist/web/session-view/store.d.ts +0 -8
  832. package/dist/web/session-view/store.d.ts.map +0 -1
  833. package/dist/web/session-view/store.js +0 -15
  834. package/dist/web/session-view/store.js.map +0 -1
  835. package/dist/web/session-view/types.d.ts.map +0 -1
  836. package/dist/web/session-view/types.js.map +0 -1
  837. package/dist/web/token-store.d.ts.map +0 -1
  838. package/dist/web/token-store.js.map +0 -1
  839. package/dist/web/types.d.ts.map +0 -1
  840. package/dist/web/types.js.map +0 -1
  841. /package/dist/{commands → adapters/commands}/admin.d.ts +0 -0
  842. /package/dist/{commands → adapters/commands}/new.d.ts +0 -0
  843. /package/dist/{commands → adapters/commands}/sandbox.d.ts +0 -0
  844. /package/dist/{commands → adapters/commands}/session-view.d.ts +0 -0
  845. /package/dist/{commands → adapters/commands}/types.js +0 -0
  846. /package/dist/{harness/extensions → adapters/github}/types.js +0 -0
  847. /package/dist/{tools → adapters/web/admin}/types.js +0 -0
  848. /package/dist/{web/admin → adapters/web/login}/types.js +0 -0
  849. /package/dist/{web/login → adapters/web/session-view}/types.js +0 -0
  850. /package/dist/{web → adapters/web}/token-store.d.ts +0 -0
  851. /package/dist/{web → adapters/web}/types.d.ts +0 -0
  852. /package/dist/{web/session-view → adapters/web}/types.js +0 -0
  853. /package/dist/{download.d.ts → cli/download.d.ts} +0 -0
  854. /package/dist/{web → cli}/types.js +0 -0
  855. /package/dist/{adapters/slack → harness}/tools/attach.d.ts +0 -0
  856. /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