p-spore 0.1.4 → 0.1.42

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 (393) hide show
  1. package/README.md +110 -15
  2. package/dist/agents/agent-manager.d.ts +3 -3
  3. package/dist/agents/agent-manager.d.ts.map +1 -1
  4. package/dist/agents/agent-manager.js +3 -2
  5. package/dist/agents/agent-manager.js.map +1 -1
  6. package/dist/application/agent-application.d.ts +29 -5
  7. package/dist/application/agent-application.d.ts.map +1 -1
  8. package/dist/application/agent-application.js +444 -14
  9. package/dist/application/agent-application.js.map +1 -1
  10. package/dist/articles/diff.d.ts +70 -0
  11. package/dist/articles/diff.d.ts.map +1 -0
  12. package/dist/articles/diff.js +330 -0
  13. package/dist/articles/diff.js.map +1 -0
  14. package/dist/articles/docx.d.ts +10 -0
  15. package/dist/articles/docx.d.ts.map +1 -0
  16. package/dist/articles/docx.js +219 -0
  17. package/dist/articles/docx.js.map +1 -0
  18. package/dist/articles/draft.d.ts +18 -0
  19. package/dist/articles/draft.d.ts.map +1 -0
  20. package/dist/articles/draft.js +88 -0
  21. package/dist/articles/draft.js.map +1 -0
  22. package/dist/articles/edits.d.ts +24 -0
  23. package/dist/articles/edits.d.ts.map +1 -0
  24. package/dist/articles/edits.js +54 -0
  25. package/dist/articles/edits.js.map +1 -0
  26. package/dist/articles/html.d.ts +10 -0
  27. package/dist/articles/html.d.ts.map +1 -0
  28. package/dist/articles/html.js +122 -0
  29. package/dist/articles/html.js.map +1 -0
  30. package/dist/articles/plain.d.ts +8 -0
  31. package/dist/articles/plain.d.ts.map +1 -0
  32. package/dist/articles/plain.js +69 -0
  33. package/dist/articles/plain.js.map +1 -0
  34. package/dist/articles/preview.d.ts +43 -0
  35. package/dist/articles/preview.d.ts.map +1 -0
  36. package/dist/articles/preview.js +90 -0
  37. package/dist/articles/preview.js.map +1 -0
  38. package/dist/articles/publish.d.ts +10 -0
  39. package/dist/articles/publish.d.ts.map +1 -0
  40. package/dist/articles/publish.js +54 -0
  41. package/dist/articles/publish.js.map +1 -0
  42. package/dist/articles/receipt.d.ts +16 -0
  43. package/dist/articles/receipt.d.ts.map +1 -0
  44. package/dist/articles/receipt.js +27 -0
  45. package/dist/articles/receipt.js.map +1 -0
  46. package/dist/articles/store.d.ts +78 -0
  47. package/dist/articles/store.d.ts.map +1 -0
  48. package/dist/articles/store.js +308 -0
  49. package/dist/articles/store.js.map +1 -0
  50. package/dist/articles/tool.d.ts +14 -0
  51. package/dist/articles/tool.d.ts.map +1 -0
  52. package/dist/articles/tool.js +175 -0
  53. package/dist/articles/tool.js.map +1 -0
  54. package/dist/articles/writer-context.d.ts +5 -0
  55. package/dist/articles/writer-context.d.ts.map +1 -0
  56. package/dist/articles/writer-context.js +56 -0
  57. package/dist/articles/writer-context.js.map +1 -0
  58. package/dist/articles/writer.d.ts +18 -0
  59. package/dist/articles/writer.d.ts.map +1 -0
  60. package/dist/articles/writer.js +79 -0
  61. package/dist/articles/writer.js.map +1 -0
  62. package/dist/articles/zip-write.d.ts +11 -0
  63. package/dist/articles/zip-write.d.ts.map +1 -0
  64. package/dist/articles/zip-write.js +63 -0
  65. package/dist/articles/zip-write.js.map +1 -0
  66. package/dist/bundled-skills/README.md +17 -0
  67. package/dist/bundled-skills/aegis-search/SKILL.md +59 -0
  68. package/dist/bundled-skills/aegis-search/bin/.gitkeep +0 -0
  69. package/dist/bundled-skills/article-canvas/SKILL.md +28 -0
  70. package/dist/bundled-skills/binaries.json +23 -0
  71. package/dist/bundled-skills/doc-extract/SKILL.md +56 -0
  72. package/dist/cli/main.d.ts.map +1 -1
  73. package/dist/cli/main.js +407 -54
  74. package/dist/cli/main.js.map +1 -1
  75. package/dist/config/config.d.ts +43 -0
  76. package/dist/config/config.d.ts.map +1 -1
  77. package/dist/config/config.js +150 -6
  78. package/dist/config/config.js.map +1 -1
  79. package/dist/daemon/daemon.d.ts.map +1 -1
  80. package/dist/daemon/daemon.js +80 -11
  81. package/dist/daemon/daemon.js.map +1 -1
  82. package/dist/desktop/application.d.ts +4 -0
  83. package/dist/desktop/application.d.ts.map +1 -0
  84. package/dist/desktop/application.js +1688 -0
  85. package/dist/desktop/application.js.map +1 -0
  86. package/dist/desktop/article-export.d.ts +12 -0
  87. package/dist/desktop/article-export.d.ts.map +1 -0
  88. package/dist/desktop/article-export.js +87 -0
  89. package/dist/desktop/article-export.js.map +1 -0
  90. package/dist/desktop/assets/pspore.png +0 -0
  91. package/dist/desktop/assets/pspore.svg +24 -0
  92. package/dist/desktop/conversation-smoke.d.ts +5 -0
  93. package/dist/desktop/conversation-smoke.d.ts.map +1 -0
  94. package/dist/desktop/conversation-smoke.js +93 -0
  95. package/dist/desktop/conversation-smoke.js.map +1 -0
  96. package/dist/desktop/daemon-bridge.d.ts.map +1 -1
  97. package/dist/desktop/daemon-bridge.js +62 -17
  98. package/dist/desktop/daemon-bridge.js.map +1 -1
  99. package/dist/desktop/ipc-contract.d.ts +124 -0
  100. package/dist/desktop/ipc-contract.d.ts.map +1 -1
  101. package/dist/desktop/ipc-contract.js +191 -12
  102. package/dist/desktop/ipc-contract.js.map +1 -1
  103. package/dist/desktop/local-path.d.ts +15 -0
  104. package/dist/desktop/local-path.d.ts.map +1 -0
  105. package/dist/desktop/local-path.js +59 -0
  106. package/dist/desktop/local-path.js.map +1 -0
  107. package/dist/desktop/main.d.ts +10 -1
  108. package/dist/desktop/main.d.ts.map +1 -1
  109. package/dist/desktop/main.js +122 -530
  110. package/dist/desktop/main.js.map +1 -1
  111. package/dist/desktop/native-startup.d.ts +4 -0
  112. package/dist/desktop/native-startup.d.ts.map +1 -0
  113. package/dist/desktop/native-startup.js +57 -0
  114. package/dist/desktop/native-startup.js.map +1 -0
  115. package/dist/desktop/preload.cjs +28 -1
  116. package/dist/desktop/renderer/article-panel.d.ts +45 -0
  117. package/dist/desktop/renderer/article-panel.d.ts.map +1 -0
  118. package/dist/desktop/renderer/article-panel.js +1126 -0
  119. package/dist/desktop/renderer/article-panel.js.map +1 -0
  120. package/dist/desktop/renderer/article-split.d.ts +32 -0
  121. package/dist/desktop/renderer/article-split.d.ts.map +1 -0
  122. package/dist/desktop/renderer/article-split.js +48 -0
  123. package/dist/desktop/renderer/article-split.js.map +1 -0
  124. package/dist/desktop/renderer/composer-file-references.d.ts +23 -0
  125. package/dist/desktop/renderer/composer-file-references.d.ts.map +1 -0
  126. package/dist/desktop/renderer/composer-file-references.js +51 -0
  127. package/dist/desktop/renderer/composer-file-references.js.map +1 -0
  128. package/dist/desktop/renderer/conversation.d.ts +23 -0
  129. package/dist/desktop/renderer/conversation.d.ts.map +1 -0
  130. package/dist/desktop/renderer/conversation.js +66 -0
  131. package/dist/desktop/renderer/conversation.js.map +1 -0
  132. package/dist/desktop/renderer/dom-reconcile.d.ts +15 -0
  133. package/dist/desktop/renderer/dom-reconcile.d.ts.map +1 -0
  134. package/dist/desktop/renderer/dom-reconcile.js +33 -0
  135. package/dist/desktop/renderer/dom-reconcile.js.map +1 -0
  136. package/dist/desktop/renderer/index.html +211 -34
  137. package/dist/desktop/renderer/indexing-view.d.ts +22 -0
  138. package/dist/desktop/renderer/indexing-view.d.ts.map +1 -0
  139. package/dist/desktop/renderer/indexing-view.js +115 -0
  140. package/dist/desktop/renderer/indexing-view.js.map +1 -0
  141. package/dist/desktop/renderer/markdown-view.d.ts +23 -0
  142. package/dist/desktop/renderer/markdown-view.d.ts.map +1 -0
  143. package/dist/desktop/renderer/markdown-view.js +436 -0
  144. package/dist/desktop/renderer/markdown-view.js.map +1 -0
  145. package/dist/desktop/renderer/motion.d.ts +67 -0
  146. package/dist/desktop/renderer/motion.d.ts.map +1 -0
  147. package/dist/desktop/renderer/motion.js +296 -0
  148. package/dist/desktop/renderer/motion.js.map +1 -0
  149. package/dist/desktop/renderer/renderer.js +1788 -151
  150. package/dist/desktop/renderer/renderer.js.map +1 -1
  151. package/dist/desktop/renderer/session-find.d.ts +18 -0
  152. package/dist/desktop/renderer/session-find.d.ts.map +1 -0
  153. package/dist/desktop/renderer/session-find.js +29 -0
  154. package/dist/desktop/renderer/session-find.js.map +1 -0
  155. package/dist/desktop/renderer/session-search.d.ts +30 -0
  156. package/dist/desktop/renderer/session-search.d.ts.map +1 -0
  157. package/dist/desktop/renderer/session-search.js +296 -0
  158. package/dist/desktop/renderer/session-search.js.map +1 -0
  159. package/dist/desktop/renderer/store.d.ts +33 -0
  160. package/dist/desktop/renderer/store.d.ts.map +1 -1
  161. package/dist/desktop/renderer/store.js +92 -19
  162. package/dist/desktop/renderer/store.js.map +1 -1
  163. package/dist/desktop/renderer/styles.css +910 -268
  164. package/dist/desktop/renderer/vendor/gsap.min.js +11 -0
  165. package/dist/desktop/renderer-diagnostics.d.ts +5 -0
  166. package/dist/desktop/renderer-diagnostics.d.ts.map +1 -0
  167. package/dist/desktop/renderer-diagnostics.js +47 -0
  168. package/dist/desktop/renderer-diagnostics.js.map +1 -0
  169. package/dist/desktop/security.d.ts +26 -1
  170. package/dist/desktop/security.d.ts.map +1 -1
  171. package/dist/desktop/security.js +26 -6
  172. package/dist/desktop/security.js.map +1 -1
  173. package/dist/desktop/smoke-fixture.d.ts.map +1 -1
  174. package/dist/desktop/smoke-fixture.js +77 -3
  175. package/dist/desktop/smoke-fixture.js.map +1 -1
  176. package/dist/desktop/splash/index.html +25 -0
  177. package/dist/desktop/splash/splash.d.ts +2 -0
  178. package/dist/desktop/splash/splash.d.ts.map +1 -0
  179. package/dist/desktop/splash/splash.js +8 -0
  180. package/dist/desktop/splash/splash.js.map +1 -0
  181. package/dist/desktop/splash/styles.css +24 -0
  182. package/dist/desktop/system-open.d.ts +16 -0
  183. package/dist/desktop/system-open.d.ts.map +1 -0
  184. package/dist/desktop/system-open.js +90 -0
  185. package/dist/desktop/system-open.js.map +1 -0
  186. package/dist/desktop/validation.d.ts.map +1 -1
  187. package/dist/desktop/validation.js +99 -21
  188. package/dist/desktop/validation.js.map +1 -1
  189. package/dist/desktop/window-security.d.ts +4 -0
  190. package/dist/desktop/window-security.d.ts.map +1 -0
  191. package/dist/desktop/window-security.js +26 -0
  192. package/dist/desktop/window-security.js.map +1 -0
  193. package/dist/documents/errors.d.ts +12 -0
  194. package/dist/documents/errors.d.ts.map +1 -0
  195. package/dist/documents/errors.js +12 -0
  196. package/dist/documents/errors.js.map +1 -0
  197. package/dist/documents/extract.d.ts +37 -0
  198. package/dist/documents/extract.d.ts.map +1 -0
  199. package/dist/documents/extract.js +90 -0
  200. package/dist/documents/extract.js.map +1 -0
  201. package/dist/documents/legacy-office.d.ts +23 -0
  202. package/dist/documents/legacy-office.d.ts.map +1 -0
  203. package/dist/documents/legacy-office.js +439 -0
  204. package/dist/documents/legacy-office.js.map +1 -0
  205. package/dist/documents/ole.d.ts +20 -0
  206. package/dist/documents/ole.d.ts.map +1 -0
  207. package/dist/documents/ole.js +189 -0
  208. package/dist/documents/ole.js.map +1 -0
  209. package/dist/documents/ooxml.d.ts +23 -0
  210. package/dist/documents/ooxml.d.ts.map +1 -0
  211. package/dist/documents/ooxml.js +197 -0
  212. package/dist/documents/ooxml.js.map +1 -0
  213. package/dist/documents/pdf.d.ts +20 -0
  214. package/dist/documents/pdf.d.ts.map +1 -0
  215. package/dist/documents/pdf.js +95 -0
  216. package/dist/documents/pdf.js.map +1 -0
  217. package/dist/documents/plain-text.d.ts +22 -0
  218. package/dist/documents/plain-text.d.ts.map +1 -0
  219. package/dist/documents/plain-text.js +57 -0
  220. package/dist/documents/plain-text.js.map +1 -0
  221. package/dist/documents/zip.d.ts +15 -0
  222. package/dist/documents/zip.d.ts.map +1 -0
  223. package/dist/documents/zip.js +137 -0
  224. package/dist/documents/zip.js.map +1 -0
  225. package/dist/domain/indexing.d.ts +60 -0
  226. package/dist/domain/indexing.d.ts.map +1 -0
  227. package/dist/domain/indexing.js +13 -0
  228. package/dist/domain/indexing.js.map +1 -0
  229. package/dist/domain/runtime.d.ts +133 -5
  230. package/dist/domain/runtime.d.ts.map +1 -1
  231. package/dist/gateway/local-gateway.d.ts +8 -0
  232. package/dist/gateway/local-gateway.d.ts.map +1 -1
  233. package/dist/gateway/local-gateway.js +105 -21
  234. package/dist/gateway/local-gateway.js.map +1 -1
  235. package/dist/indexing/index-service.d.ts +56 -0
  236. package/dist/indexing/index-service.d.ts.map +1 -0
  237. package/dist/indexing/index-service.js +262 -0
  238. package/dist/indexing/index-service.js.map +1 -0
  239. package/dist/kernel/loop.d.ts +10 -0
  240. package/dist/kernel/loop.d.ts.map +1 -1
  241. package/dist/kernel/loop.js +6 -2
  242. package/dist/kernel/loop.js.map +1 -1
  243. package/dist/kernel/reducer.d.ts.map +1 -1
  244. package/dist/kernel/reducer.js +17 -1
  245. package/dist/kernel/reducer.js.map +1 -1
  246. package/dist/kernel/state.d.ts +17 -4
  247. package/dist/kernel/state.d.ts.map +1 -1
  248. package/dist/kernel/state.js +2 -0
  249. package/dist/kernel/state.js.map +1 -1
  250. package/dist/pi/context-budget.d.ts +8 -0
  251. package/dist/pi/context-budget.d.ts.map +1 -0
  252. package/dist/pi/context-budget.js +62 -0
  253. package/dist/pi/context-budget.js.map +1 -0
  254. package/dist/pi/pi-runtime-adapter.d.ts +38 -3
  255. package/dist/pi/pi-runtime-adapter.d.ts.map +1 -1
  256. package/dist/pi/pi-runtime-adapter.js +551 -56
  257. package/dist/pi/pi-runtime-adapter.js.map +1 -1
  258. package/dist/plugins/bundled-skills.d.ts +56 -0
  259. package/dist/plugins/bundled-skills.d.ts.map +1 -0
  260. package/dist/plugins/bundled-skills.js +243 -0
  261. package/dist/plugins/bundled-skills.js.map +1 -0
  262. package/dist/plugins/extension-manager.d.ts +23 -1
  263. package/dist/plugins/extension-manager.d.ts.map +1 -1
  264. package/dist/plugins/extension-manager.js +117 -0
  265. package/dist/plugins/extension-manager.js.map +1 -1
  266. package/dist/plugins/types.d.ts +29 -0
  267. package/dist/plugins/types.d.ts.map +1 -1
  268. package/dist/plugins/workspace-skills.d.ts +36 -0
  269. package/dist/plugins/workspace-skills.d.ts.map +1 -0
  270. package/dist/plugins/workspace-skills.js +309 -0
  271. package/dist/plugins/workspace-skills.js.map +1 -0
  272. package/dist/policy/policy.d.ts.map +1 -1
  273. package/dist/policy/policy.js +22 -3
  274. package/dist/policy/policy.js.map +1 -1
  275. package/dist/protocol/client.d.ts +1 -0
  276. package/dist/protocol/client.d.ts.map +1 -1
  277. package/dist/protocol/client.js +49 -24
  278. package/dist/protocol/client.js.map +1 -1
  279. package/dist/protocol/limits.d.ts +69 -0
  280. package/dist/protocol/limits.d.ts.map +1 -0
  281. package/dist/protocol/limits.js +166 -0
  282. package/dist/protocol/limits.js.map +1 -0
  283. package/dist/protocol/schema.d.ts +6 -0
  284. package/dist/protocol/schema.d.ts.map +1 -1
  285. package/dist/protocol/schema.js.map +1 -1
  286. package/dist/protocol/server-frame-codec.d.ts +18 -0
  287. package/dist/protocol/server-frame-codec.d.ts.map +1 -0
  288. package/dist/protocol/server-frame-codec.js +211 -0
  289. package/dist/protocol/server-frame-codec.js.map +1 -0
  290. package/dist/service/legacy-daemon.d.ts +6 -0
  291. package/dist/service/legacy-daemon.d.ts.map +1 -0
  292. package/dist/service/legacy-daemon.js +42 -0
  293. package/dist/service/legacy-daemon.js.map +1 -0
  294. package/dist/service/service-launch.d.ts +10 -0
  295. package/dist/service/service-launch.d.ts.map +1 -0
  296. package/dist/service/service-launch.js +56 -0
  297. package/dist/service/service-launch.js.map +1 -0
  298. package/dist/service/system-service.d.ts +57 -0
  299. package/dist/service/system-service.d.ts.map +1 -0
  300. package/dist/service/system-service.js +263 -0
  301. package/dist/service/system-service.js.map +1 -0
  302. package/dist/sessions/session-catalog.d.ts +45 -0
  303. package/dist/sessions/session-catalog.d.ts.map +1 -0
  304. package/dist/sessions/session-catalog.js +270 -0
  305. package/dist/sessions/session-catalog.js.map +1 -0
  306. package/dist/sessions/session-file.d.ts +12 -0
  307. package/dist/sessions/session-file.d.ts.map +1 -0
  308. package/dist/sessions/session-file.js +47 -0
  309. package/dist/sessions/session-file.js.map +1 -0
  310. package/dist/settings/compaction-settings.d.ts +10 -0
  311. package/dist/settings/compaction-settings.d.ts.map +1 -0
  312. package/dist/settings/compaction-settings.js +8 -0
  313. package/dist/settings/compaction-settings.js.map +1 -0
  314. package/dist/settings/indexing-settings-service.d.ts +16 -0
  315. package/dist/settings/indexing-settings-service.d.ts.map +1 -0
  316. package/dist/settings/indexing-settings-service.js +57 -0
  317. package/dist/settings/indexing-settings-service.js.map +1 -0
  318. package/dist/settings/indexing-settings.d.ts +30 -0
  319. package/dist/settings/indexing-settings.d.ts.map +1 -0
  320. package/dist/settings/indexing-settings.js +58 -0
  321. package/dist/settings/indexing-settings.js.map +1 -0
  322. package/dist/settings/llm-settings-service.d.ts +6 -0
  323. package/dist/settings/llm-settings-service.d.ts.map +1 -1
  324. package/dist/settings/llm-settings-service.js +137 -12
  325. package/dist/settings/llm-settings-service.js.map +1 -1
  326. package/dist/settings/llm-settings.d.ts +68 -2
  327. package/dist/settings/llm-settings.d.ts.map +1 -1
  328. package/dist/settings/llm-settings.js +119 -17
  329. package/dist/settings/llm-settings.js.map +1 -1
  330. package/dist/settings/model-api.d.ts +10 -0
  331. package/dist/settings/model-api.d.ts.map +1 -0
  332. package/dist/settings/model-api.js +10 -0
  333. package/dist/settings/model-api.js.map +1 -0
  334. package/dist/storage/home.d.ts +1 -0
  335. package/dist/storage/home.d.ts.map +1 -1
  336. package/dist/storage/home.js +37 -2
  337. package/dist/storage/home.js.map +1 -1
  338. package/dist/tools/core-tools.d.ts +2 -0
  339. package/dist/tools/core-tools.d.ts.map +1 -1
  340. package/dist/tools/core-tools.js +91 -1
  341. package/dist/tools/core-tools.js.map +1 -1
  342. package/dist/ui/shared/activity.d.ts +2 -0
  343. package/dist/ui/shared/activity.d.ts.map +1 -1
  344. package/dist/ui/shared/activity.js +18 -4
  345. package/dist/ui/shared/activity.js.map +1 -1
  346. package/dist/ui/shared/full-message.d.ts +22 -0
  347. package/dist/ui/shared/full-message.d.ts.map +1 -0
  348. package/dist/ui/shared/full-message.js +40 -0
  349. package/dist/ui/shared/full-message.js.map +1 -0
  350. package/dist/ui/shared/local-links.d.ts +7 -0
  351. package/dist/ui/shared/local-links.d.ts.map +1 -0
  352. package/dist/ui/shared/local-links.js +24 -0
  353. package/dist/ui/shared/local-links.js.map +1 -0
  354. package/dist/ui/shared/markdown-stream.d.ts +25 -0
  355. package/dist/ui/shared/markdown-stream.d.ts.map +1 -0
  356. package/dist/ui/shared/markdown-stream.js +35 -0
  357. package/dist/ui/shared/markdown-stream.js.map +1 -0
  358. package/dist/ui/shared/markdown.d.ts +70 -0
  359. package/dist/ui/shared/markdown.d.ts.map +1 -0
  360. package/dist/ui/shared/markdown.js +434 -0
  361. package/dist/ui/shared/markdown.js.map +1 -0
  362. package/dist/ui/shared/presentation.d.ts +10 -2
  363. package/dist/ui/shared/presentation.d.ts.map +1 -1
  364. package/dist/ui/shared/presentation.js +83 -22
  365. package/dist/ui/shared/presentation.js.map +1 -1
  366. package/dist/ui/shared/protocol-state.d.ts +19 -0
  367. package/dist/ui/shared/protocol-state.d.ts.map +1 -1
  368. package/dist/ui/shared/protocol-state.js +188 -26
  369. package/dist/ui/shared/protocol-state.js.map +1 -1
  370. package/dist/ui/shared/virtual-list.d.ts +34 -0
  371. package/dist/ui/shared/virtual-list.d.ts.map +1 -0
  372. package/dist/ui/shared/virtual-list.js +143 -0
  373. package/dist/ui/shared/virtual-list.js.map +1 -0
  374. package/dist/ui/tui/commands.d.ts +1 -1
  375. package/dist/ui/tui/commands.d.ts.map +1 -1
  376. package/dist/ui/tui/commands.js +8 -3
  377. package/dist/ui/tui/commands.js.map +1 -1
  378. package/dist/ui/tui/store.d.ts +22 -1
  379. package/dist/ui/tui/store.d.ts.map +1 -1
  380. package/dist/ui/tui/store.js +50 -3
  381. package/dist/ui/tui/store.js.map +1 -1
  382. package/dist/ui/tui/tui-app.d.ts.map +1 -1
  383. package/dist/ui/tui/tui-app.js +231 -31
  384. package/dist/ui/tui/tui-app.js.map +1 -1
  385. package/dist/ui/tui/view.d.ts +7 -0
  386. package/dist/ui/tui/view.d.ts.map +1 -1
  387. package/dist/ui/tui/view.js +161 -57
  388. package/dist/ui/tui/view.js.map +1 -1
  389. package/dist/version.d.ts +1 -1
  390. package/dist/version.d.ts.map +1 -1
  391. package/dist/version.js +1 -1
  392. package/dist/version.js.map +1 -1
  393. package/package.json +13 -2
@@ -12,13 +12,17 @@ export class KernelLoop {
12
12
  snapshot() {
13
13
  return structuredClone(this.#state);
14
14
  }
15
+ /**
16
+ * Commits `event` and resolves with the resulting state. Like the effect
17
+ * runner's argument, that state is shared and must be treated as read-only.
18
+ */
15
19
  dispatch(event) {
16
20
  const operation = this.#tail.then(() => {
17
21
  const reduction = reduceKernel(this.#state, event);
18
22
  this.#state = reduction.state;
19
23
  for (const effect of reduction.effects)
20
24
  this.#startEffect(effect, reduction.state);
21
- return this.snapshot();
25
+ return this.#state;
22
26
  });
23
27
  this.#tail = operation.then(() => undefined, () => undefined);
24
28
  return operation;
@@ -32,7 +36,7 @@ export class KernelLoop {
32
36
  #startEffect(effect, state) {
33
37
  let task;
34
38
  task = Promise.resolve()
35
- .then(async () => this.#effectRunner(effect, structuredClone(state)))
39
+ .then(async () => this.#effectRunner(effect, state))
36
40
  .finally(() => this.#effectTasks.delete(task));
37
41
  this.#effectTasks.add(task);
38
42
  void task.catch(() => undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/kernel/loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAyD,MAAM,YAAY,CAAC;AAIvG,MAAM,OAAO,UAAU;IACrB,MAAM,CAAc;IACpB,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IACjB,aAAa,CAAqB;IAClC,YAAY,GAAG,IAAI,GAAG,EAAiB,CAAC;IAEjD,YAAY,YAAgC,EAAE,KAAK,GAAG,kBAAkB,EAAE;QACxE,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,QAAQ;QACN,OAAO,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,QAAQ,CAAC,KAAkB;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YACrC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC;YAC9B,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO;gBAAE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YACnF,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CACzB,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,KAAK,CAAC;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,YAAY,CAAC,MAAoB,EAAE,KAAkB;QACnD,IAAI,IAAoB,CAAC;QACzB,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE;aACrB,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;aACpE,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/kernel/loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAyD,MAAM,YAAY,CAAC;AAUvG,MAAM,OAAO,UAAU;IACrB,MAAM,CAAc;IACpB,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IACjB,aAAa,CAAqB;IAClC,YAAY,GAAG,IAAI,GAAG,EAAiB,CAAC;IAEjD,YAAY,YAAgC,EAAE,KAAK,GAAG,kBAAkB,EAAE;QACxE,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,QAAQ;QACN,OAAO,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,KAAkB;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YACrC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC;YAC9B,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO;gBAAE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YACnF,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CACzB,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,KAAK,CAAC;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,YAAY,CAAC,MAAoB,EAAE,KAAkB;QACnD,IAAI,IAAoB,CAAC;QACzB,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE;aACrB,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aACnD,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../../src/kernel/reducer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAqB,SAAS,EAAE,MAAM,YAAY,CAAC;AAEzF,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,SAAS,CA6G9E"}
1
+ {"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../../src/kernel/reducer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAqB,SAAS,EAAE,MAAM,YAAY,CAAC;AAEzF,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,SAAS,CAqH9E"}
@@ -1,5 +1,10 @@
1
1
  export function reduceKernel(state, event) {
2
2
  switch (event.type) {
3
+ case "indexing.status": {
4
+ const status = structuredClone(event.status);
5
+ const next = changed(state, { ...state, indexing: status });
6
+ return broadcast(next, event, "indexing.status", { status, revision: next.revision }, true);
7
+ }
3
8
  case "daemon.transition": {
4
9
  const next = changed(state, { ...state, daemon: structuredClone(event.daemon) });
5
10
  return broadcast(next, event, "daemon.state", { daemon: next.daemon, revision: next.revision }, true);
@@ -23,12 +28,15 @@ export function reduceKernel(state, event) {
23
28
  const next = snapshot
24
29
  ? changed(state, { ...state, sessions: { ...state.sessions, [snapshot.sessionId]: snapshot } })
25
30
  : state;
31
+ const session = snapshot === undefined
32
+ ? undefined
33
+ : event.publishTranscript === false ? withoutTranscript(snapshot) : snapshot;
26
34
  return broadcast(next, event, event.event.type, {
27
35
  sessionId: event.event.sessionId,
28
36
  upstreamSessionId: event.event.upstreamSessionId,
29
37
  ...event.event.payload,
30
38
  ...(snapshot ? { revision: next.revision } : {}),
31
- ...(snapshot && !event.event.transient ? { session: snapshot } : {}),
39
+ ...(session ? { session } : {}),
32
40
  }, !event.event.transient);
33
41
  }
34
42
  case "approval.requested": {
@@ -84,6 +92,14 @@ export function reduceKernel(state, event) {
84
92
  }
85
93
  }
86
94
  }
95
+ /**
96
+ * Session metadata without the transcript tail. Clients merge it into what they
97
+ * already hold, so status, usage and queue stay current at constant cost.
98
+ */
99
+ function withoutTranscript(view) {
100
+ const { messages, messageOffset, ...metadata } = view;
101
+ return metadata;
102
+ }
87
103
  function changed(previous, next) {
88
104
  return { ...next, revision: previous.revision + 1 };
89
105
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../src/kernel/reducer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../src/kernel/reducer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { AgentSnapshot, RuntimeEvent } from "../domain/runtime.js";
1
+ import { type IndexingStatus } from "../domain/indexing.js";
2
+ import type { RuntimeEvent, SessionView } from "../domain/runtime.js";
2
3
  import type { AgentMessage, AgentRecord } from "../agents/types.js";
3
4
  import type { RunRecord } from "../automation/types.js";
4
5
  import type { NotificationRecord } from "../notifications/notification-service.js";
@@ -15,7 +16,7 @@ export interface DaemonSnapshot {
15
16
  export interface KernelState {
16
17
  revision: number;
17
18
  daemon: DaemonSnapshot;
18
- sessions: Readonly<Record<string, AgentSnapshot>>;
19
+ sessions: Readonly<Record<string, SessionView>>;
19
20
  approvals: Readonly<Record<string, ApprovalRequest>>;
20
21
  runs: Readonly<Record<string, RunRecord>>;
21
22
  notifications: readonly NotificationRecord[];
@@ -23,6 +24,8 @@ export interface KernelState {
23
24
  agentMessages: readonly AgentMessage[];
24
25
  mcpServers: Readonly<Record<string, McpHealthRecord>>;
25
26
  resources: Readonly<Record<string, ResourceHealthRecord>>;
27
+ /** Progress of the daemon's continuous local document indexing. */
28
+ indexing: IndexingStatus;
26
29
  }
27
30
  interface EventMetadata {
28
31
  id: string;
@@ -31,18 +34,28 @@ interface EventMetadata {
31
34
  causationId?: string;
32
35
  }
33
36
  export type KernelEvent = (EventMetadata & {
37
+ type: "indexing.status";
38
+ status: IndexingStatus;
39
+ }) | (EventMetadata & {
34
40
  type: "daemon.transition";
35
41
  daemon: DaemonSnapshot;
36
42
  }) | (EventMetadata & {
37
43
  type: "session.snapshot";
38
- snapshot: AgentSnapshot;
44
+ snapshot: SessionView;
39
45
  }) | (EventMetadata & {
40
46
  type: "session.closed";
41
47
  sessionId: string;
42
48
  }) | (EventMetadata & {
43
49
  type: "runtime.received";
44
50
  event: RuntimeEvent;
45
- snapshot?: AgentSnapshot;
51
+ snapshot?: SessionView;
52
+ /**
53
+ * Whether the broadcast carries the transcript tail alongside the session
54
+ * metadata. Item-scoped events keep clients current on their own, so the
55
+ * tail only needs to ride along where it re-establishes the truth: when a
56
+ * message settles, a run ends, or the session is replaced.
57
+ */
58
+ publishTranscript?: boolean;
46
59
  }) | (EventMetadata & {
47
60
  type: "approval.requested";
48
61
  request: ApprovalRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/kernel/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/kernel/state.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { initialIndexingStatus } from "../domain/indexing.js";
1
2
  export function initialKernelState() {
2
3
  return {
3
4
  revision: 0,
@@ -10,6 +11,7 @@ export function initialKernelState() {
10
11
  agentMessages: [],
11
12
  mcpServers: {},
12
13
  resources: {},
14
+ indexing: initialIndexingStatus(),
13
15
  };
14
16
  }
15
17
  //# sourceMappingURL=state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/kernel/state.ts"],"names":[],"mappings":"AAwEA,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAC7B,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE;QACb,IAAI,EAAE,EAAE;QACR,aAAa,EAAE,EAAE;QACjB,MAAM,EAAE,EAAE;QACV,aAAa,EAAE,EAAE;QACjB,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/kernel/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAuB,MAAM,uBAAuB,CAAC;AAuFnF,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;QAC7B,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE;QACb,IAAI,EAAE,EAAE;QACR,aAAa,EAAE,EAAE;QACjB,MAAM,EAAE,EAAE;QACV,aAAa,EAAE,EAAE;QACjB,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,qBAAqB,EAAE;KAClC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { TextContent, ImageContent } from "@earendil-works/pi-ai";
2
+ /** A single read/MCP result must not consume most of a 100k context. */
3
+ export declare const MAX_TOOL_RESULT_CHARS = 24000;
4
+ /** Keep complete results locally; only the bounded excerpt enters model history. */
5
+ export declare function boundToolResult(content: (TextContent | ImageContent)[], artifactDirectory: string): Promise<(TextContent | ImageContent)[]>;
6
+ /** Fallback only: count non-ASCII text conservatively when no fresh usage exists. */
7
+ export declare function estimateTextTokens(text: string): number;
8
+ //# sourceMappingURL=context-budget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-budget.d.ts","sourceRoot":"","sources":["../../src/pi/context-budget.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGvE,wEAAwE;AACxE,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAI5C,oFAAoF;AACpF,wBAAsB,eAAe,CACnC,OAAO,EAAE,CAAC,WAAW,GAAG,YAAY,CAAC,EAAE,EACvC,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,CAAC,WAAW,GAAG,YAAY,CAAC,EAAE,CAAC,CAiCzC;AAUD,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIvD"}
@@ -0,0 +1,62 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { mkdir } from "node:fs/promises";
3
+ import { join } from "node:path";
4
+ import { atomicWriteFile } from "../storage/atomic.js";
5
+ /** A single read/MCP result must not consume most of a 100k context. */
6
+ export const MAX_TOOL_RESULT_CHARS = 24_000;
7
+ /** Pi's compaction serializes only the first 2000 characters of a tool result. */
8
+ const SUMMARY_TAIL_PREVIEW_CHARS = 512;
9
+ /** Keep complete results locally; only the bounded excerpt enters model history. */
10
+ export async function boundToolResult(content, artifactDirectory) {
11
+ const text = content.filter((block) => block.type === "text").map((block) => block.text).join("\n");
12
+ if (text.length <= MAX_TOOL_RESULT_CHARS)
13
+ return content;
14
+ const path = join(artifactDirectory, `${randomUUID()}.txt`);
15
+ let location;
16
+ try {
17
+ await mkdir(artifactDirectory, { recursive: true, mode: 0o700 });
18
+ await atomicWriteFile(path, text, 0o600);
19
+ location = `Full output: ${path}. Read selected lines with read offset/limit, or use shell to search/slice long lines; avoid loading the whole file.`;
20
+ }
21
+ catch (error) {
22
+ if (!(error instanceof Error) || !("code" in error) || typeof error.code !== "string")
23
+ throw error;
24
+ // The tool may have already changed files or sent a request. An artifact
25
+ // storage failure must not misreport its successful execution as a failure
26
+ // and encourage the model to repeat those side effects.
27
+ location = `Full output could not be saved (${error.code}). The tool already completed; do not repeat actions just to recreate this output.`;
28
+ }
29
+ // Keep the retrieval reference and a brief tail *before* the large excerpt.
30
+ // Otherwise Pi's own summary truncation would drop both and make a completed
31
+ // action's evidence unavailable to the next turn after compaction.
32
+ const prefix = `[pSpore: tool output excerpt; ${text.length} characters total. ${location}]\n\n[End of output preview]\n${safeSlice(text, Math.max(0, text.length - SUMMARY_TAIL_PREVIEW_CHARS), text.length)}\n\n[Beginning of output]\n`;
33
+ const marker = "\n\n[... middle omitted ...]\n\n";
34
+ const budget = Math.max(0, MAX_TOOL_RESULT_CHARS - prefix.length - marker.length);
35
+ const head = Math.floor(budget * 2 / 3);
36
+ const tail = text.length - (budget - head);
37
+ const excerpt = `${prefix}${safeSlice(text, 0, head)}${marker}${safeSlice(text, tail, text.length)}`;
38
+ // Keep images and their order; replace text blocks with one bounded excerpt.
39
+ let replaced = false;
40
+ return content.flatMap((block) => {
41
+ if (block.type !== "text")
42
+ return [block];
43
+ if (replaced)
44
+ return [];
45
+ replaced = true;
46
+ return [{ type: "text", text: excerpt }];
47
+ });
48
+ }
49
+ function safeSlice(text, start, end) {
50
+ return text.slice(splitsSurrogatePair(text, start) ? start + 1 : start, splitsSurrogatePair(text, end) ? end - 1 : end);
51
+ }
52
+ function splitsSurrogatePair(text, index) {
53
+ return /[\uD800-\uDBFF]/.test(text.charAt(index - 1)) && /[\uDC00-\uDFFF]/.test(text.charAt(index));
54
+ }
55
+ /** Fallback only: count non-ASCII text conservatively when no fresh usage exists. */
56
+ export function estimateTextTokens(text) {
57
+ let units = 0;
58
+ for (const character of text)
59
+ units += character.codePointAt(0) <= 0x7f ? 1 : 4;
60
+ return Math.ceil(units / 4);
61
+ }
62
+ //# sourceMappingURL=context-budget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-budget.js","sourceRoot":"","sources":["../../src/pi/context-budget.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  import type { Model } from "@earendil-works/pi-ai";
2
2
  import { ModelRuntime, type ToolDefinition } from "@earendil-works/pi-coding-agent";
3
- import type { Accepted, AgentHandle, AgentRuntimePort, AgentSessionSpec, AgentSnapshot, ModelRef, ResumeSessionSpec, RuntimeEvent, SessionId, ToolGate } from "../domain/runtime.js";
3
+ import type { Accepted, AgentHandle, AgentRuntimePort, AgentSessionSpec, ModelRef, ResumeSessionSpec, ArticleDraftView, RuntimeEvent, RuntimeMessage, SessionId, SessionMetadata, ToolGate, TranscriptMessageSlice, TranscriptPage } from "../domain/runtime.js";
4
+ import type { ArticleWriterModels } from "../articles/writer.js";
5
+ import type { AutoCompactionConfig } from "../config/config.js";
6
+ import type { SessionSkill } from "../plugins/types.js";
4
7
  type Clock = () => Date;
5
8
  type IdFactory = () => string;
6
9
  export interface PiRuntimeAdapterOptions {
@@ -8,28 +11,60 @@ export interface PiRuntimeAdapterOptions {
8
11
  sessionRoot: string;
9
12
  modelRuntime?: ModelRuntime;
10
13
  resolveModel?: (ref: ModelRef | undefined, runtime: ModelRuntime) => Model<string> | undefined;
11
- createTools?: (sessionId: SessionId) => readonly ToolDefinition[];
14
+ createTools?: (sessionId: SessionId, models: ArticleWriterModels) => readonly ToolDefinition[];
12
15
  createSkillPaths?: (sessionId: SessionId) => readonly string[] | Promise<readonly string[]>;
16
+ /**
17
+ * Skills already resolved outside Pi — the user's own workspace skills, which
18
+ * Pi's strict loader would drop for loose frontmatter. They join the path-based
19
+ * skills, which win any name collision.
20
+ */
21
+ createSkills?: (sessionId: SessionId) => readonly SessionSkill[] | Promise<readonly SessionSkill[]>;
13
22
  toolGate?: ToolGate;
14
23
  clock?: Clock;
15
24
  idFactory?: IdFactory;
25
+ autoCompaction?: AutoCompactionConfig;
16
26
  }
17
27
  export declare class PiRuntimeAdapter implements AgentRuntimePort {
18
28
  #private;
19
29
  private constructor();
20
30
  static create(options: PiRuntimeAdapterOptions): Promise<PiRuntimeAdapter>;
31
+ articlePreview(toolCallId: string): ArticleDraftView | undefined;
21
32
  create(spec: AgentSessionSpec): Promise<AgentHandle>;
22
33
  resume(spec: ResumeSessionSpec): Promise<AgentHandle>;
23
34
  prompt(sessionId: SessionId, input: string): Promise<Accepted>;
24
35
  steer(sessionId: SessionId, input: string): Promise<Accepted>;
25
36
  followUp(sessionId: SessionId, input: string): Promise<Accepted>;
37
+ promoteFollowUp(sessionId: SessionId, index: number): Promise<Accepted>;
26
38
  abort(sessionId: SessionId, _reason: string): Promise<void>;
27
39
  compact(sessionId: SessionId, instructions?: string): Promise<void>;
28
- snapshot(sessionId: SessionId): AgentSnapshot;
40
+ snapshot(sessionId: SessionId): SessionMetadata;
29
41
  subscribe(sessionId: SessionId, sink: (event: RuntimeEvent) => void): () => void;
30
42
  waitForIdle(sessionId: SessionId): Promise<void>;
31
43
  newSession(sessionId: SessionId): Promise<AgentHandle>;
32
44
  switchSession(sessionId: SessionId, sessionFile: string): Promise<AgentHandle>;
45
+ /**
46
+ * A slice of the persisted branch, which keeps entries a compaction has
47
+ * already dropped from the model's context. Only the requested slice is
48
+ * rendered to text: doing that for the whole branch is what made every
49
+ * streamed token cost as much as the conversation was long.
50
+ */
51
+ transcript(sessionId: SessionId, options: {
52
+ from?: number;
53
+ limit: number;
54
+ }): TranscriptPage;
55
+ /**
56
+ * One message's full text, sliced. The transcript on the wire is bounded per
57
+ * string, so a message longer than that ceiling arrives cut; this is how a
58
+ * client asks for the rest of it without widening the ceiling for everything.
59
+ */
60
+ transcriptMessage(sessionId: SessionId, options: {
61
+ id?: string;
62
+ index?: number;
63
+ offset?: number;
64
+ limit: number;
65
+ }): TranscriptMessageSlice;
66
+ /** The persisted branch's message entries, unrendered. */
67
+ branch(sessionId: SessionId): readonly RuntimeMessage[];
33
68
  fork(sessionId: SessionId, entryId: string, position?: "before" | "at"): Promise<AgentHandle>;
34
69
  dispose(sessionId: SessionId): Promise<void>;
35
70
  disposeAll(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"pi-runtime-adapter.d.ts","sourceRoot":"","sources":["../../src/pi/pi-runtime-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAIL,YAAY,EAOZ,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,iBAAiB,EACjB,YAAY,EAGZ,SAAS,EACT,QAAQ,EACT,MAAM,sBAAsB,CAAC;AAE9B,KAAK,KAAK,GAAG,MAAM,IAAI,CAAC;AACxB,KAAK,SAAS,GAAG,MAAM,MAAM,CAAC;AAE9B,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,GAAG,SAAS,EAAE,OAAO,EAAE,YAAY,KAAK,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC/F,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,SAAS,cAAc,EAAE,CAAC;IAClE,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAC5F,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAgBD,qBAAa,gBAAiB,YAAW,gBAAgB;;IAYvD,OAAO;WAcM,MAAM,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAa1E,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IASpD,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IAUrD,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IA8C9D,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAM7D,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAMhE,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASzE,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,aAAa;IAyC7C,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI;IAM1E,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAShD,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAStD,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAS9E,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAQ,GAAG,IAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IASnG,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CA6QlC"}
1
+ {"version":3,"file":"pi-runtime-adapter.d.ts","sourceRoot":"","sources":["../../src/pi/pi-runtime-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAKL,YAAY,EAaZ,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,QAAQ,EACR,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EAEZ,cAAc,EACd,SAAS,EACT,eAAe,EACf,QAAQ,EAGR,sBAAsB,EACtB,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKxD,KAAK,KAAK,GAAG,MAAM,IAAI,CAAC;AACxB,KAAK,SAAS,GAAG,MAAM,MAAM,CAAC;AAE9B,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,GAAG,SAAS,EAAE,OAAO,EAAE,YAAY,KAAK,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAC/F,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,mBAAmB,KAAK,SAAS,cAAc,EAAE,CAAC;IAC/F,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAC5F;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,SAAS,YAAY,EAAE,GAAG,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAC;IACpG,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACvC;AAiCD,qBAAa,gBAAiB,YAAW,gBAAgB;;IAevD,OAAO;WAgBM,MAAM,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAahF,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI1D,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IASpD,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IAUrD,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkG9D,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAW7D,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAWhE,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAsBvE,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3D,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzE,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,eAAe;IAuC/C,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI;IAM1E,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAShD,UAAU,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAStD,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IASpF;;;;;OAKG;IACH,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc;IAY3F;;;;OAIG;IACH,iBAAiB,CACf,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GACvE,sBAAsB;IAsBzB,0DAA0D;IAC1D,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,cAAc,EAAE;IAuBjD,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAQ,GAAG,IAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IASnG,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAghBlC"}