@fastagent-sh/fastagent 0.24.4 → 0.25.0

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 (480) hide show
  1. package/README.md +53 -82
  2. package/dist/agent-api.d.ts +452 -0
  3. package/dist/agent-api.js +201 -0
  4. package/dist/answer-text.d.ts +8 -0
  5. package/dist/answer-text.js +18 -0
  6. package/dist/atomic-write.d.ts +2 -2
  7. package/dist/atomic-write.js +2 -2
  8. package/dist/authoring.d.ts +77 -0
  9. package/dist/authoring.js +238 -0
  10. package/dist/channel.d.ts +29 -15
  11. package/dist/channel.js +4 -1
  12. package/dist/channels/agentcore-protocol.d.ts +36 -50
  13. package/dist/channels/agentcore-protocol.js +3 -3
  14. package/dist/channels/agentcore-service.d.ts +8 -18
  15. package/dist/channels/agentcore-service.js +108 -127
  16. package/dist/channels/agentcore.d.ts +8 -24
  17. package/dist/channels/agentcore.js +32 -65
  18. package/dist/channels/body.d.ts +0 -16
  19. package/dist/channels/body.js +0 -25
  20. package/dist/channels/busy.js +6 -1
  21. package/dist/channels/context.d.ts +4 -0
  22. package/dist/channels/context.js +35 -0
  23. package/dist/channels/discover.d.ts +18 -20
  24. package/dist/channels/discover.js +41 -99
  25. package/dist/channels/feishu/feishu-api.d.ts +54 -4
  26. package/dist/channels/feishu/feishu-api.js +192 -149
  27. package/dist/channels/feishu/feishu.d.ts +3 -0
  28. package/dist/channels/feishu/feishu.js +117 -106
  29. package/dist/channels/feishu/history.d.ts +55 -0
  30. package/dist/channels/feishu/history.js +199 -0
  31. package/dist/channels/feishu/invoke-turn.d.ts +13 -11
  32. package/dist/channels/feishu/invoke-turn.js +9 -10
  33. package/dist/channels/feishu/model.d.ts +2 -1
  34. package/dist/channels/feishu/normalize.js +100 -0
  35. package/dist/channels/feishu/preview.d.ts +2 -2
  36. package/dist/channels/feishu/register-webhook.d.ts +1 -0
  37. package/dist/channels/feishu/register-webhook.js +3 -2
  38. package/dist/channels/feishu/scaffold/channel.ts +65 -46
  39. package/dist/channels/feishu/scaffold/feishu-send.ts +38 -33
  40. package/dist/channels/feishu/scaffold/feishu-threads.ts +25 -0
  41. package/dist/channels/feishu/setup-mode.d.ts +45 -25
  42. package/dist/channels/feishu/setup-mode.js +74 -23
  43. package/dist/channels/feishu/shared-api.d.ts +24 -6
  44. package/dist/channels/feishu/shared-api.js +30 -24
  45. package/dist/channels/kit/context-buffer.d.ts +11 -2
  46. package/dist/channels/kit/context-buffer.js +7 -4
  47. package/dist/channels/kit/delivery.d.ts +19 -3
  48. package/dist/channels/kit/delivery.js +74 -15
  49. package/dist/channels/kit/event-stream.js +2 -1
  50. package/dist/channels/kit/invoke-turn-kit.d.ts +41 -41
  51. package/dist/channels/kit/invoke-turn-kit.js +62 -71
  52. package/dist/channels/kit/place-history.d.ts +107 -0
  53. package/dist/channels/kit/place-history.js +182 -0
  54. package/dist/channels/kit/preview-kit.d.ts +9 -5
  55. package/dist/channels/kit/preview-kit.js +36 -15
  56. package/dist/channels/kit/room-threads.d.ts +46 -0
  57. package/dist/channels/kit/room-threads.js +81 -0
  58. package/dist/channels/kit/seen.js +1 -1
  59. package/dist/channels/kit/stop-command.d.ts +6 -3
  60. package/dist/channels/kit/stop-command.js +20 -18
  61. package/dist/channels/kit/thread-fork.d.ts +17 -0
  62. package/dist/channels/kit/thread-fork.js +43 -0
  63. package/dist/channels/kit/thread-participants.js +1 -1
  64. package/dist/channels/kit/transport.d.ts +5 -0
  65. package/dist/channels/kit/transport.js +5 -0
  66. package/dist/channels/kit/turn-runner.d.ts +10 -9
  67. package/dist/channels/kit/turn-runner.js +17 -19
  68. package/dist/channels/kit/turn-store.d.ts +5 -4
  69. package/dist/channels/kit/turn-store.js +5 -5
  70. package/dist/channels/lark/lark.d.ts +3 -0
  71. package/dist/channels/lark/lark.js +5 -0
  72. package/dist/channels/lark/onboard.d.ts +5 -3
  73. package/dist/channels/lark/onboard.js +14 -14
  74. package/dist/channels/lark/scaffold/channel.ts +67 -44
  75. package/dist/channels/lark/scaffold/lark-send.ts +38 -33
  76. package/dist/channels/lark/scaffold/lark-threads.ts +25 -0
  77. package/dist/channels/respond.d.ts +0 -4
  78. package/dist/channels/respond.js +1 -1
  79. package/dist/channels/router.d.ts +18 -0
  80. package/dist/channels/router.js +68 -0
  81. package/dist/channels/serve.d.ts +5 -70
  82. package/dist/channels/serve.js +105 -287
  83. package/dist/channels/slack/history.d.ts +42 -0
  84. package/dist/channels/slack/history.js +282 -0
  85. package/dist/channels/slack/invoke-turn.d.ts +12 -5
  86. package/dist/channels/slack/invoke-turn.js +7 -5
  87. package/dist/channels/slack/manifest.d.ts +1 -4
  88. package/dist/channels/slack/manifest.js +22 -10
  89. package/dist/channels/slack/model.d.ts +2 -1
  90. package/dist/channels/slack/onboard.d.ts +0 -2
  91. package/dist/channels/slack/onboard.js +2 -4
  92. package/dist/channels/slack/onboarding-state.d.ts +0 -2
  93. package/dist/channels/slack/onboarding-state.js +0 -1
  94. package/dist/channels/slack/parse.d.ts +0 -5
  95. package/dist/channels/slack/parse.js +1 -16
  96. package/dist/channels/slack/preview.d.ts +2 -3
  97. package/dist/channels/slack/preview.js +78 -52
  98. package/dist/channels/slack/register-webhook.d.ts +1 -0
  99. package/dist/channels/slack/register-webhook.js +6 -5
  100. package/dist/channels/slack/scaffold/channel.ts +23 -24
  101. package/dist/channels/slack/scaffold/slack-send.ts +50 -43
  102. package/dist/channels/slack/scaffold/slack-threads.ts +29 -0
  103. package/dist/channels/slack/setup-server.d.ts +19 -0
  104. package/dist/channels/slack/setup-server.js +113 -11
  105. package/dist/channels/slack/shared-api.d.ts +15 -4
  106. package/dist/channels/slack/shared-api.js +19 -14
  107. package/dist/channels/slack/slack-api.d.ts +61 -2
  108. package/dist/channels/slack/slack-api.js +28 -5
  109. package/dist/channels/slack/slack.js +97 -52
  110. package/dist/channels/slack/welcomed.js +1 -1
  111. package/dist/channels/telegram/context-buffer.d.ts +6 -1
  112. package/dist/channels/telegram/context-buffer.js +19 -0
  113. package/dist/channels/telegram/invoke-turn.d.ts +8 -4
  114. package/dist/channels/telegram/invoke-turn.js +7 -7
  115. package/dist/channels/telegram/parse.d.ts +7 -2
  116. package/dist/channels/telegram/parse.js +7 -0
  117. package/dist/channels/telegram/preview.d.ts +2 -2
  118. package/dist/channels/telegram/register-webhook.d.ts +1 -0
  119. package/dist/channels/telegram/register-webhook.js +3 -2
  120. package/dist/channels/telegram/scaffold/channel.ts +27 -28
  121. package/dist/channels/telegram/scaffold/telegram-send.ts +61 -108
  122. package/dist/channels/telegram/shared-api.d.ts +34 -0
  123. package/dist/channels/telegram/shared-api.js +79 -0
  124. package/dist/channels/telegram/telegram-api.d.ts +15 -5
  125. package/dist/channels/telegram/telegram-api.js +10 -6
  126. package/dist/channels/telegram/telegram.js +27 -21
  127. package/dist/channels/telegram/turn-store.js +1 -1
  128. package/dist/channels/{kit/turn-queue.d.ts → turn-queue.d.ts} +2 -2
  129. package/dist/channels/{kit/turn-queue.js → turn-queue.js} +10 -10
  130. package/dist/cli/add-feishu.d.ts +42 -12
  131. package/dist/cli/add-feishu.js +177 -124
  132. package/dist/cli/add-slack.d.ts +8 -3
  133. package/dist/cli/add-slack.js +115 -63
  134. package/dist/cli/auth-view.d.ts +10 -3
  135. package/dist/cli/auth-view.js +8 -6
  136. package/dist/cli/box-login.d.ts +17 -7
  137. package/dist/cli/box-login.js +46 -12
  138. package/dist/cli/commands/add.d.ts +15 -4
  139. package/dist/cli/commands/add.js +252 -143
  140. package/dist/cli/commands/auth.d.ts +6 -0
  141. package/dist/cli/commands/auth.js +50 -0
  142. package/dist/cli/commands/content.d.ts +6 -0
  143. package/dist/cli/commands/content.js +45 -0
  144. package/dist/cli/commands/deploy/agentcore.js +50 -77
  145. package/dist/cli/commands/deploy/docker.js +38 -39
  146. package/dist/cli/commands/deploy/fly.js +21 -18
  147. package/dist/cli/commands/deploy/host-login.d.ts +26 -0
  148. package/dist/cli/commands/deploy/host-login.js +90 -0
  149. package/dist/cli/commands/deploy/railway.js +21 -26
  150. package/dist/cli/commands/deploy/shared.d.ts +45 -17
  151. package/dist/cli/commands/deploy/shared.js +34 -15
  152. package/dist/cli/commands/deploy.d.ts +0 -4
  153. package/dist/cli/commands/deploy.js +237 -50
  154. package/dist/cli/commands/destroy.js +8 -6
  155. package/dist/cli/commands/dev.d.ts +0 -2
  156. package/dist/cli/commands/dev.js +20 -19
  157. package/dist/cli/commands/env.d.ts +12 -0
  158. package/dist/cli/commands/env.js +190 -0
  159. package/dist/cli/commands/info.js +95 -156
  160. package/dist/cli/commands/init.d.ts +2 -2
  161. package/dist/cli/commands/init.js +35 -33
  162. package/dist/cli/commands/invoke.d.ts +6 -0
  163. package/dist/cli/commands/invoke.js +131 -16
  164. package/dist/cli/commands/login.d.ts +31 -2
  165. package/dist/cli/commands/login.js +413 -64
  166. package/dist/cli/commands/logout.d.ts +4 -0
  167. package/dist/cli/commands/logout.js +53 -0
  168. package/dist/cli/commands/logs.js +8 -6
  169. package/dist/cli/commands/models.d.ts +2 -1
  170. package/dist/cli/commands/models.js +39 -37
  171. package/dist/cli/commands/schedules.d.ts +21 -0
  172. package/dist/cli/commands/schedules.js +143 -0
  173. package/dist/cli/commands/start.d.ts +11 -10
  174. package/dist/cli/commands/start.js +35 -62
  175. package/dist/cli/content-view.d.ts +9 -0
  176. package/dist/cli/content-view.js +26 -0
  177. package/dist/cli/fail.d.ts +9 -12
  178. package/dist/cli/fail.js +17 -14
  179. package/dist/cli/invoke-stream.d.ts +12 -3
  180. package/dist/cli/invoke-stream.js +85 -23
  181. package/dist/cli/kernel.d.ts +9 -2
  182. package/dist/cli/kernel.js +15 -6
  183. package/dist/cli/login-relay.d.ts +3 -2
  184. package/dist/cli/login-relay.js +18 -6
  185. package/dist/cli/models-view.d.ts +5 -1
  186. package/dist/cli/models-view.js +1 -1
  187. package/dist/cli/person.d.ts +10 -0
  188. package/dist/cli/person.js +23 -0
  189. package/dist/cli/program.js +421 -203
  190. package/dist/cli/serve.d.ts +13 -63
  191. package/dist/cli/serve.js +31 -121
  192. package/dist/cli/shared.d.ts +21 -48
  193. package/dist/cli/shared.js +68 -89
  194. package/dist/cli/ticket.d.ts +136 -0
  195. package/dist/cli/ticket.js +476 -0
  196. package/dist/client.d.ts +7 -0
  197. package/dist/client.js +2 -0
  198. package/dist/content/declare.d.ts +70 -0
  199. package/dist/content/declare.js +163 -0
  200. package/dist/content/file.d.ts +32 -0
  201. package/dist/content/file.js +119 -0
  202. package/dist/content/git.d.ts +41 -0
  203. package/dist/content/git.js +217 -0
  204. package/dist/content/mount.d.ts +2 -0
  205. package/dist/content/mount.js +15 -0
  206. package/dist/content/resolve.d.ts +52 -0
  207. package/dist/content/resolve.js +151 -0
  208. package/dist/content/source.d.ts +27 -0
  209. package/dist/content/source.js +53 -0
  210. package/dist/conversation-sessions.d.ts +26 -0
  211. package/dist/conversation-sessions.js +99 -0
  212. package/dist/declared-secrets.d.ts +19 -37
  213. package/dist/declared-secrets.js +16 -58
  214. package/dist/deploy/agentcore/destroy.d.ts +3 -3
  215. package/dist/deploy/agentcore/destroy.js +46 -28
  216. package/dist/deploy/agentcore/forwarder.js +105 -22
  217. package/dist/deploy/agentcore/logs.js +1 -1
  218. package/dist/deploy/agentcore/plan.d.ts +10 -24
  219. package/dist/deploy/agentcore/plan.js +31 -135
  220. package/dist/deploy/agentcore/run.d.ts +1 -1
  221. package/dist/deploy/agentcore/run.js +8 -5
  222. package/dist/deploy/agentcore/shell.d.ts +1 -1
  223. package/dist/deploy/agentcore/shell.js +5 -5
  224. package/dist/deploy/api.d.ts +34 -0
  225. package/dist/deploy/api.js +50 -0
  226. package/dist/deploy/box-shell.d.ts +6 -0
  227. package/dist/deploy/box-shell.js +7 -0
  228. package/dist/deploy/build-context.d.ts +7 -5
  229. package/dist/deploy/build-context.js +41 -35
  230. package/dist/deploy/channel-ingress.d.ts +6 -1
  231. package/dist/deploy/channel-ingress.js +18 -5
  232. package/dist/deploy/container.d.ts +22 -9
  233. package/dist/deploy/container.js +96 -55
  234. package/dist/deploy/docker/plan.d.ts +3 -2
  235. package/dist/deploy/docker/plan.js +13 -14
  236. package/dist/deploy/docker/run.d.ts +2 -2
  237. package/dist/deploy/docker/run.js +8 -4
  238. package/dist/deploy/fly/plan.d.ts +1 -1
  239. package/dist/deploy/fly/plan.js +12 -21
  240. package/dist/deploy/fly/run.d.ts +10 -6
  241. package/dist/deploy/fly/run.js +11 -6
  242. package/dist/deploy/hosts.d.ts +2 -1
  243. package/dist/deploy/hosts.js +2 -1
  244. package/dist/deploy/preflight.d.ts +21 -23
  245. package/dist/deploy/preflight.js +222 -201
  246. package/dist/deploy/railway/plan.d.ts +8 -6
  247. package/dist/deploy/railway/plan.js +15 -58
  248. package/dist/deploy/railway/run.d.ts +8 -3
  249. package/dist/deploy/railway/run.js +12 -8
  250. package/dist/deploy/residency.d.ts +5 -11
  251. package/dist/deploy/residency.js +0 -6
  252. package/dist/deploy/runner.d.ts +1 -1
  253. package/dist/deploy/runner.js +1 -1
  254. package/dist/deploy/secrets.d.ts +16 -2
  255. package/dist/deploy/secrets.js +33 -6
  256. package/dist/deploy/workspace.d.ts +11 -6
  257. package/dist/deploy/workspace.js +55 -38
  258. package/dist/dev-supervisor.d.ts +11 -2
  259. package/dist/dev-supervisor.js +51 -26
  260. package/dist/effect-port.d.ts +4 -4
  261. package/dist/effect-port.js +4 -4
  262. package/dist/environment/apt.d.ts +4 -0
  263. package/dist/environment/apt.js +32 -0
  264. package/dist/environment/declare.d.ts +59 -0
  265. package/dist/environment/declare.js +210 -0
  266. package/dist/environment/mise.d.ts +50 -0
  267. package/dist/environment/mise.js +268 -0
  268. package/dist/feishu.d.ts +2 -2
  269. package/dist/feishu.js +2 -2
  270. package/dist/git.d.ts +13 -0
  271. package/dist/git.js +55 -0
  272. package/dist/harnesses/models/catalog.d.ts +20 -0
  273. package/dist/harnesses/models/catalog.js +254 -0
  274. package/dist/{engines/pi/auth.d.ts → harnesses/models/credentials.d.ts} +3 -3
  275. package/dist/{engines/pi/auth.js → harnesses/models/credentials.js} +3 -3
  276. package/dist/harnesses/models/environment.d.ts +43 -0
  277. package/dist/harnesses/models/environment.js +82 -0
  278. package/dist/{engines/pi → harnesses/models}/login.d.ts +57 -26
  279. package/dist/{engines/pi → harnesses/models}/login.js +187 -79
  280. package/dist/harnesses/models/models.d.ts +83 -0
  281. package/dist/harnesses/models/models.js +158 -0
  282. package/dist/harnesses/pi-durable/agent.d.ts +42 -0
  283. package/dist/harnesses/pi-durable/agent.js +579 -0
  284. package/dist/harnesses/pi-durable/defaults.d.ts +28 -0
  285. package/dist/harnesses/pi-durable/defaults.js +26 -0
  286. package/dist/harnesses/pi-durable/define.d.ts +77 -0
  287. package/dist/harnesses/pi-durable/define.js +28 -0
  288. package/dist/harnesses/pi-durable/entries.d.ts +32 -0
  289. package/dist/harnesses/pi-durable/entries.js +126 -0
  290. package/dist/harnesses/pi-durable/events.d.ts +25 -0
  291. package/dist/harnesses/pi-durable/events.js +238 -0
  292. package/dist/harnesses/pi-durable/ids.d.ts +16 -0
  293. package/dist/harnesses/pi-durable/ids.js +55 -0
  294. package/dist/harnesses/pi-durable/messages.d.ts +41 -0
  295. package/dist/harnesses/pi-durable/messages.js +116 -0
  296. package/dist/harnesses/pi-durable/open.d.ts +88 -0
  297. package/dist/harnesses/pi-durable/open.js +329 -0
  298. package/dist/harnesses/pi-durable/reads.d.ts +30 -0
  299. package/dist/harnesses/pi-durable/reads.js +94 -0
  300. package/dist/harnesses/pi-durable/registry.d.ts +18 -0
  301. package/dist/harnesses/pi-durable/registry.js +56 -0
  302. package/dist/harnesses/pi-durable/release.d.ts +13 -0
  303. package/dist/harnesses/pi-durable/release.js +40 -0
  304. package/dist/harnesses/pi-durable/serve.d.ts +80 -0
  305. package/dist/harnesses/pi-durable/serve.js +156 -0
  306. package/dist/harnesses/pi-durable/sessions.d.ts +27 -0
  307. package/dist/harnesses/pi-durable/sessions.js +47 -0
  308. package/dist/harnesses/pi-durable/storage.d.ts +4 -0
  309. package/dist/harnesses/pi-durable/storage.js +49 -0
  310. package/dist/harnesses/pi-durable/stream.d.ts +20 -0
  311. package/dist/harnesses/pi-durable/stream.js +221 -0
  312. package/dist/harnesses/pi-durable/text.d.ts +30 -0
  313. package/dist/harnesses/pi-durable/text.js +292 -0
  314. package/dist/harnesses/pi-durable/wake.d.ts +4 -0
  315. package/dist/harnesses/pi-durable/wake.js +81 -0
  316. package/dist/http/client.d.ts +6 -0
  317. package/dist/http/client.js +256 -0
  318. package/dist/http/contract.d.ts +541 -0
  319. package/dist/http/contract.js +179 -0
  320. package/dist/http/server.d.ts +34 -0
  321. package/dist/http/server.js +194 -0
  322. package/dist/index.d.ts +17 -4
  323. package/dist/index.js +10 -5
  324. package/dist/lark.d.ts +2 -2
  325. package/dist/lark.js +2 -2
  326. package/dist/locked-file.d.ts +17 -0
  327. package/dist/{engines/pi/locked-file.js → locked-file.js} +16 -10
  328. package/dist/once.d.ts +6 -0
  329. package/dist/once.js +23 -0
  330. package/dist/paths.d.ts +36 -52
  331. package/dist/paths.js +66 -182
  332. package/dist/runtime.d.ts +25 -2
  333. package/dist/runtime.js +27 -0
  334. package/dist/scaffold/add-channel.d.ts +14 -27
  335. package/dist/scaffold/add-channel.js +82 -180
  336. package/dist/scaffold/init.d.ts +17 -18
  337. package/dist/scaffold/init.js +87 -99
  338. package/dist/scaffold/templates/SYSTEM.md +12 -0
  339. package/dist/scaffold/templates/env.example +4 -10
  340. package/dist/scaffold/templates/fastagent.config.ts +21 -33
  341. package/dist/scaffold/templates/gitignore +8 -1
  342. package/dist/scaffold/templates/skills/writing-great-skills/SKILL.md +1 -2
  343. package/dist/scaffold/templates.d.ts +9 -4
  344. package/dist/scaffold/templates.js +7 -5
  345. package/dist/scaffold/vendor-skill.d.ts +1 -4
  346. package/dist/scaffold/vendor-skill.js +5 -6
  347. package/dist/schedule/cron.d.ts +13 -0
  348. package/dist/schedule/cron.js +52 -0
  349. package/dist/schedule/eventbridge-cron.d.ts +17 -0
  350. package/dist/schedule/eventbridge-cron.js +88 -0
  351. package/dist/schedule/schedule.d.ts +23 -0
  352. package/dist/schedule/schedule.js +34 -0
  353. package/dist/schedule/scheduler.d.ts +34 -33
  354. package/dist/schedule/scheduler.js +251 -137
  355. package/dist/schedule/state.d.ts +4 -14
  356. package/dist/schedule/state.js +7 -7
  357. package/dist/schedule/wake-alarm.d.ts +22 -2
  358. package/dist/schedule/wake-alarm.js +66 -20
  359. package/dist/schedule/wakeups.d.ts +16 -15
  360. package/dist/schedule/wakeups.js +47 -45
  361. package/dist/service.d.ts +56 -169
  362. package/dist/service.js +91 -187
  363. package/dist/serving-command.d.ts +10 -0
  364. package/dist/serving-command.js +16 -0
  365. package/dist/slack.d.ts +1 -1
  366. package/dist/slack.js +1 -1
  367. package/dist/{channels/kit/state.js → state-file.js} +6 -6
  368. package/dist/telegram.d.ts +1 -0
  369. package/dist/telegram.js +1 -0
  370. package/dist/tunnel.d.ts +3 -0
  371. package/dist/tunnel.js +12 -4
  372. package/dist/value-file.d.ts +21 -0
  373. package/dist/value-file.js +108 -0
  374. package/dist/version.d.ts +5 -0
  375. package/dist/version.js +14 -1
  376. package/package.json +18 -28
  377. package/dist/agent.d.ts +0 -106
  378. package/dist/agent.js +0 -21
  379. package/dist/channels/control.d.ts +0 -31
  380. package/dist/channels/control.js +0 -329
  381. package/dist/channels/define-channel.d.ts +0 -39
  382. package/dist/channels/define-channel.js +0 -9
  383. package/dist/channels/feishu/context-buffer.d.ts +0 -35
  384. package/dist/channels/feishu/context-buffer.js +0 -65
  385. package/dist/channels/feishu/scaffold/channel.websocket.ts +0 -31
  386. package/dist/channels/http.d.ts +0 -23
  387. package/dist/channels/http.js +0 -57
  388. package/dist/channels/lark/scaffold/channel.websocket.ts +0 -31
  389. package/dist/channels/slack/context-buffer.d.ts +0 -23
  390. package/dist/channels/slack/context-buffer.js +0 -37
  391. package/dist/channels/sse.d.ts +0 -4
  392. package/dist/channels/sse.js +0 -66
  393. package/dist/cli/commands/chat.d.ts +0 -3
  394. package/dist/cli/commands/chat.js +0 -14
  395. package/dist/cli/commands/routine-run.d.ts +0 -6
  396. package/dist/cli/commands/routine-run.js +0 -46
  397. package/dist/cli/commands/routine.d.ts +0 -25
  398. package/dist/cli/commands/routine.js +0 -122
  399. package/dist/cli/commands/tool.d.ts +0 -1
  400. package/dist/cli/commands/tool.js +0 -57
  401. package/dist/collect.d.ts +0 -63
  402. package/dist/collect.js +0 -90
  403. package/dist/core.d.ts +0 -13
  404. package/dist/core.js +0 -15
  405. package/dist/engines/pi/agent-models.d.ts +0 -83
  406. package/dist/engines/pi/agent-models.js +0 -120
  407. package/dist/engines/pi/agent-session-factory.d.ts +0 -121
  408. package/dist/engines/pi/agent-session-factory.js +0 -535
  409. package/dist/engines/pi/chat.d.ts +0 -3
  410. package/dist/engines/pi/chat.js +0 -8
  411. package/dist/engines/pi/config.d.ts +0 -71
  412. package/dist/engines/pi/config.js +0 -199
  413. package/dist/engines/pi/create.d.ts +0 -170
  414. package/dist/engines/pi/create.js +0 -343
  415. package/dist/engines/pi/definition.d.ts +0 -74
  416. package/dist/engines/pi/definition.js +0 -236
  417. package/dist/engines/pi/entry-images.d.ts +0 -14
  418. package/dist/engines/pi/entry-images.js +0 -23
  419. package/dist/engines/pi/invoke-session.d.ts +0 -18
  420. package/dist/engines/pi/invoke-session.js +0 -403
  421. package/dist/engines/pi/locked-file.d.ts +0 -9
  422. package/dist/engines/pi/machine.d.ts +0 -53
  423. package/dist/engines/pi/machine.js +0 -137
  424. package/dist/engines/pi/models.d.ts +0 -200
  425. package/dist/engines/pi/models.js +0 -533
  426. package/dist/engines/pi/open.d.ts +0 -180
  427. package/dist/engines/pi/open.js +0 -270
  428. package/dist/engines/pi/openai-account-models.d.ts +0 -35
  429. package/dist/engines/pi/openai-account-models.js +0 -116
  430. package/dist/engines/pi/report.d.ts +0 -18
  431. package/dist/engines/pi/report.js +0 -59
  432. package/dist/engines/pi/retry-event.d.ts +0 -6
  433. package/dist/engines/pi/retry-event.js +0 -15
  434. package/dist/engines/pi/service.d.ts +0 -9
  435. package/dist/engines/pi/service.js +0 -14
  436. package/dist/engines/pi/session-builder.d.ts +0 -13
  437. package/dist/engines/pi/session-builder.js +0 -117
  438. package/dist/engines/pi/session-control.d.ts +0 -77
  439. package/dist/engines/pi/session-control.js +0 -908
  440. package/dist/engines/pi/session-effects.d.ts +0 -14
  441. package/dist/engines/pi/session-effects.js +0 -30
  442. package/dist/engines/pi/session-inheritance.d.ts +0 -21
  443. package/dist/engines/pi/session-inheritance.js +0 -204
  444. package/dist/engines/pi/session-markers.d.ts +0 -49
  445. package/dist/engines/pi/session-markers.js +0 -60
  446. package/dist/engines/pi/session-settings.d.ts +0 -67
  447. package/dist/engines/pi/session-settings.js +0 -119
  448. package/dist/engines/pi/session-store.d.ts +0 -69
  449. package/dist/engines/pi/session-store.js +0 -430
  450. package/dist/engines/pi/tool-context.d.ts +0 -45
  451. package/dist/engines/pi/tool-context.js +0 -31
  452. package/dist/engines/pi/tool.d.ts +0 -99
  453. package/dist/engines/pi/tool.js +0 -118
  454. package/dist/engines/pi/turn-kit.d.ts +0 -92
  455. package/dist/engines/pi/turn-kit.js +0 -288
  456. package/dist/engines/pi/wake-tool.d.ts +0 -9
  457. package/dist/engines/pi/wake-tool.js +0 -92
  458. package/dist/loader.d.ts +0 -41
  459. package/dist/loader.js +0 -116
  460. package/dist/node.d.ts +0 -3
  461. package/dist/node.js +0 -4
  462. package/dist/observe.d.ts +0 -6
  463. package/dist/observe.js +0 -47
  464. package/dist/pi.d.ts +0 -25
  465. package/dist/pi.js +0 -15
  466. package/dist/scaffold/templates/APPEND_SYSTEM.md +0 -12
  467. package/dist/scaffold/templates/tools/fetch-url.ts +0 -25
  468. package/dist/schedule/discover.d.ts +0 -17
  469. package/dist/schedule/discover.js +0 -61
  470. package/dist/schedule/routine.d.ts +0 -43
  471. package/dist/schedule/routine.js +0 -32
  472. package/dist/schedule/run.d.ts +0 -55
  473. package/dist/schedule/run.js +0 -146
  474. package/dist/secrets-gate.d.ts +0 -32
  475. package/dist/secrets-gate.js +0 -33
  476. package/dist/session-remote.d.ts +0 -47
  477. package/dist/session-remote.js +0 -460
  478. package/dist/session.d.ts +0 -466
  479. package/dist/session.js +0 -57
  480. /package/dist/{channels/kit/state.d.ts → state-file.d.ts} +0 -0
package/dist/session.d.ts DELETED
@@ -1,466 +0,0 @@
1
- /**
2
- * Session control plane — the engine-neutral serving extension beside Agent Handler (docs/design/session-control.md).
3
- */
4
- import type { ImageRef, Json, Prompt } from "./agent.ts";
5
- export interface SessionControl {
6
- capabilities(): SessionCapabilities;
7
- /** The names this agent exposes — what a composer's `/` completion LISTS. */
8
- commands(): Promise<AgentCommand[]>;
9
- sessions: SessionCollection;
10
- }
11
- export interface SessionCollection {
12
- /**
13
- * Every session this DEPLOYMENT holds — what a GUI shows as its conversation list, and the only call that is not
14
- * about ONE session. Deployment-level on purpose: a multi-tenant facade in front of one deployment MUST NOT expose
15
- * it, because it answers for every user at once. The one read that MAY reject: `[]` is a complete answer for a
16
- * deployment with no sessions, so it would be a lie for a store that cannot be enumerated. Every other read stays
17
- * TOTAL.
18
- */
19
- list(): Promise<SessionSummary[]>;
20
- /** Copy `from`'s history up to entry `at` into a session called `into`. */
21
- fork(options: {
22
- from: string;
23
- at: string;
24
- into: string;
25
- }): Promise<SessionResult>;
26
- get(session: string): Session;
27
- }
28
- /**
29
- * Can this id be ADDRESSED by a client? URL normalisation eats `""`, `.` and `..` before any router sees them, so a
30
- * request for `.` would answer about the collection instead. The rule lives in the contract because both sides
31
- * enforce it and must not drift: a transport refuses to send such an id, and an implementation refuses to MINT one.
32
- */
33
- export declare function isAddressableSession(session: string): boolean;
34
- /** One session, bound. */
35
- export interface Session {
36
- readonly id: string;
37
- state(): Promise<SessionState>;
38
- /**
39
- * `since` is an APPEND-ORDER position cursor: "every record appended after the one with this id", regardless of
40
- * branch structure.
41
- */
42
- entries(options?: {
43
- since?: string;
44
- }): Promise<SessionEntries>;
45
- /**
46
- * The bytes behind an {@link EntryImage.ref} this session published; `undefined` when this session holds no such
47
- * image. Total, like every read but `list()`.
48
- *
49
- * Over the wire, a `mimeType` other than `image/png`, `image/jpeg`, `image/gif` or `image/webp` reads back as
50
- * `application/octet-stream`: the transport will not serve a sender-declared type it cannot trust (the entry still
51
- * lists the declared one). pi normalizes an invoke's opening prompt images to those four; a `steer`/`followUp`
52
- * image and a tool result keep whatever type the sender declared, so `image/jpg`, a type with parameters, or
53
- * `image/svg+xml` sent that way reads back as `application/octet-stream` remotely.
54
- */
55
- image(ref: string): Promise<ImageRef | undefined>;
56
- events(): SessionEventStream;
57
- /**
58
- * Set durable session properties, applied by the session's next turn. An id with no record (nothing has written it
59
- * yet) takes them too: the write creates its record, and the session's first turn runs on them. Refused there:
60
- * `leafEntryId` (no entries to point at) and an id no client could address ({@link isAddressableSession}).
61
- */
62
- update(patch: SessionUpdate): Promise<SessionResult>;
63
- /**
64
- * Join the active run: delivered after the current turn's tool calls, before the next model call. `prompt.text`
65
- * must not be empty (`invalid_command`): a queued prompt is reported by its text ({@link PendingPrompts}). An
66
- * accepted result carries its {@link PromptDisposition}.
67
- */
68
- steer(prompt: Prompt): Promise<SessionResult>;
69
- /**
70
- * Queue for the active run, FIFO, delivered when it is otherwise idle. Same non-empty `text` rule and
71
- * {@link PromptDisposition} as `steer`.
72
- */
73
- followUp(prompt: Prompt): Promise<SessionResult>;
74
- /** Stop the active run — its queues, its retry delay, its cancellable tool work. */
75
- abort(): Promise<SessionResult>;
76
- /** Summarize the history at a session boundary. */
77
- compact(options?: {
78
- instructions?: string;
79
- }): Promise<SessionResult>;
80
- delete(): Promise<SessionResult>;
81
- }
82
- /** The durable properties {@link Session.update} sets. */
83
- export interface SessionUpdate {
84
- /** The display name `list()` reports — a label, not an identity: the id stays the Caller's. */
85
- name?: string;
86
- /** A FastAgent model spec, constrained to {@link SessionCapabilities.allowedModels}. */
87
- model?: string;
88
- /**
89
- * A string because supported levels are MODEL-dependent — the set for this session's current model is {@link
90
- * SessionState.availableThinkingLevels}.
91
- */
92
- thinkingLevel?: string;
93
- /**
94
- * Move the session's active leaf: the write verb for the tree `entries()` publishes, and how sibling branches come
95
- * to exist (the next turn hangs off it).
96
- */
97
- leafEntryId?: string;
98
- }
99
- export type SessionUpdateField = keyof SessionUpdate;
100
- /**
101
- * Every field name, as a value — what an implementation checks a patch against, and what a transport rejects an
102
- * unknown key by.
103
- */
104
- export declare const UPDATE_FIELDS: readonly ["name", "model", "thinkingLevel", "leafEntryId"];
105
- /** The wire form of the run actions — what a transport carries for {@link Session.steer} and its siblings. */
106
- export type SessionAction = {
107
- type: "steer";
108
- prompt: Prompt;
109
- } | {
110
- type: "follow_up";
111
- prompt: Prompt;
112
- } | {
113
- type: "abort";
114
- } | {
115
- type: "compact";
116
- instructions?: string;
117
- };
118
- /**
119
- * STATIC support declaration — sessionless, so nothing here may depend on a session. Two kinds of flag: GATES
120
- * (`steering`, `followUp`, `compaction`, `fork`, `delete`, `updatable`), which a client MUST check before calling —
121
- * calling past one rejects with {@link UNSUPPORTED_CAPABILITY_CODE} — and OBSERVATION QUALITY (`toolProgress`,
122
- * `usage`), which only say whether those events and state fields appear at all.
123
- */
124
- export interface SessionCapabilities {
125
- steering: boolean;
126
- followUp: boolean;
127
- compaction: boolean;
128
- fork: boolean;
129
- delete: boolean;
130
- /** Which {@link SessionUpdate} fields this deployment accepts. */
131
- updatable: SessionUpdateField[];
132
- /** The models `update({ model })` accepts, by `spec` — present iff `model` is updatable. */
133
- allowedModels?: ModelDescriptor[];
134
- toolProgress: boolean;
135
- usage: boolean;
136
- }
137
- /**
138
- * A model as a picker shows it, before any session runs on it. `thinkingLevels` is what `update({ thinkingLevel })`
139
- * accepts for a session on this model; `name` and `contextWindow` are absent when the model does not declare them.
140
- */
141
- export interface ModelDescriptor {
142
- /** What `update({ model })` takes. */
143
- spec: string;
144
- name?: string;
145
- thinkingLevels: string[];
146
- contextWindow?: number;
147
- }
148
- /** One name a client can offer the user. */
149
- export interface AgentCommand {
150
- name: string;
151
- description?: string;
152
- source: string;
153
- }
154
- /**
155
- * Stable `SessionResult.error.code` for a call, or an update field, the implementation does not support — the answer
156
- * to calling past a {@link SessionCapabilities} gate.
157
- */
158
- export declare const UNSUPPORTED_CAPABILITY_CODE = "unsupported_capability";
159
- /**
160
- * Stable `SessionResult.error.code` for a run action (`steer`/`follow_up`/`abort`) called while the session has no
161
- * active run.
162
- */
163
- export declare const NO_ACTIVE_RUN_CODE = "no_active_run";
164
- /** Stable `SessionResult.error.code` for a PAYLOAD that is invalid for this runtime. */
165
- export declare const INVALID_COMMAND_CODE = "invalid_command";
166
- /**
167
- * Stable `SessionResult.error.code` for a write that needs a record (fork's source, compact, delete) against an id
168
- * that has none, because nothing has written it yet. `update()` creates the record instead, and answers this code only
169
- * when a concurrent `delete()` removes the record between its read and its write.
170
- */
171
- export declare const NO_SUCH_SESSION_CODE = "no_such_session";
172
- /** Stable `SessionResult.error.code` for a write rejected BEFORE acceptance with nothing durable landed. */
173
- export declare const BOUNDARY_COMMAND_FAILED_CODE = "boundary_command_failed";
174
- /**
175
- * Stable `SessionResult.error.code` for `compact` on a session with no compactable history yet — a no-op, not a
176
- * failure, rejected before acceptance.
177
- */
178
- export declare const NOTHING_TO_COMPACT_CODE = "nothing_to_compact";
179
- /**
180
- * Stable `SessionResult.error.code` for a run action that reached an active run but could not take effect because the
181
- * run raced to settlement (or the engine refused it).
182
- */
183
- export declare const RUN_COMMAND_FAILED_CODE = "run_command_failed";
184
- /** What {@link SessionCollection.list} rejects with — the only read that can. `retryable: true`: the condition is
185
- * the store's availability, not the request. */
186
- export declare const SESSIONS_UNAVAILABLE_CODE = "sessions_unavailable";
187
- /**
188
- * Stable `SessionResult.error.code` for a multi-field {@link Session.update} that wrote some of its fields and then
189
- * failed — the ONE code that reports durable work behind an `ok: false`. The message names what landed, and a
190
- * `state_changed` event reporting the record as it now is precedes it.
191
- */
192
- export declare const PARTIAL_UPDATE_CODE = "partial_update";
193
- /**
194
- * Acceptance is not outcome: `ok: true` means admitted or applied, never that the run ultimately succeeded (outcomes
195
- * are `run_settled` events / the invoke terminal).
196
- *
197
- * `ok: false` means the command did not COMPLETE, which is not the same as "nothing happened". Every code except
198
- * {@link PARTIAL_UPDATE_CODE} is a rejection before acceptance with nothing durable landed; that one reports fields
199
- * that did land, because properties are separate journal entries and no engine here can roll them back. So the
200
- * question "may I send this again" is answered by `retryable`, never by `ok` — a client that blindly re-sends every
201
- * `ok: false` re-applies what a partial update already wrote.
202
- */
203
- export type SessionResult = {
204
- ok: true;
205
- runId?: string;
206
- disposition?: PromptDisposition;
207
- } | {
208
- ok: false;
209
- error: {
210
- code: string;
211
- message: string;
212
- retryable: boolean;
213
- };
214
- };
215
- /**
216
- * What became of an accepted `steer`/`followUp` prompt — present on exactly those results. `queued`: it waits in
217
- * {@link PendingPrompts} until the run takes it in. `handled`: the engine consumed it before the queue (in pi, a
218
- * definition extension's `input` handler), so it never enters the conversation, and no `queue_changed` or
219
- * `user_message` reports it.
220
- */
221
- export type PromptDisposition = "queued" | "handled";
222
- /** One session in {@link SessionControl.sessions} — a conversation-list row, not a session's contents. */
223
- export interface SessionSummary {
224
- session: string;
225
- /** Set by `update({ name })`; absent until then — a client showing a list falls back to `preview`. */
226
- name?: string;
227
- createdAt: number;
228
- updatedAt: number;
229
- messageCount: number;
230
- /** First user message, truncated — enough for a list row, not a transcript. */
231
- preview?: string;
232
- }
233
- export interface SessionState {
234
- /** Set by `update({ name })`, so a client that opens a session directly gets the same label the list showed. */
235
- name?: string;
236
- /** `compacting` refers to MANUAL compaction (`compact`) at a session boundary. */
237
- status: "idle" | "running" | "compacting";
238
- activeRunId?: string;
239
- /**
240
- * What this session will RUN with, not what was recorded. An id with no record reports what its first turn would run
241
- * on: the defaults, the level clamped to the model.
242
- */
243
- model?: string;
244
- thinkingLevel?: string;
245
- /** What `update({ thinkingLevel })` accepts for THIS session — re-read after a model change. */
246
- availableThinkingLevels?: string[];
247
- pending: PendingPrompts;
248
- /**
249
- * The NEWEST ANSWER's own numbers, not a running total: tokens and `cost` as the provider reported them for the
250
- * latest answer on the active path that carries usage (an aborted or failed answer does not, so it reports the one
251
- * before). `contextTokens` is how full the context is now, ABSENT when unknown (after a compaction or a context
252
- * edit, until the next answer); `contextWindow` is the running model's.
253
- */
254
- usage?: {
255
- inputTokens: number;
256
- outputTokens: number;
257
- cacheReadTokens?: number;
258
- cacheWriteTokens?: number;
259
- cost?: number;
260
- contextTokens?: number;
261
- contextWindow?: number;
262
- };
263
- leafEntryId?: string;
264
- }
265
- export interface SessionEntries {
266
- entries: SessionEntry[];
267
- leafEntryId?: string;
268
- }
269
- /**
270
- * A durable append-only session record. `kind` guarantees a minimum vocabulary of "user" | "assistant" | "tool";
271
- * engine-specific kinds beyond it MUST be skippable.
272
- */
273
- export interface SessionEntry {
274
- id: string;
275
- parentId?: string;
276
- timestamp: number;
277
- kind: string;
278
- data: Json;
279
- }
280
- /**
281
- * One image a message carried, as `data.images` lists it on a `user` or `tool` entry and on `user_message` (absent
282
- * when there are none). Bytes stay out: `entries()` is read on every open and reconnect, and one screenshot is
283
- * megabytes. `ref` is opaque; {@link Session.image} of the same session reads the bytes.
284
- */
285
- export type EntryImage = {
286
- ref: string;
287
- mimeType: string;
288
- };
289
- /**
290
- * A live event subscription, plus the ONE thing a reconnecting client cannot infer: when it started.
291
- *
292
- * Reconnect has to subscribe BEFORE it reads history, or an event landing between the read and the subscription is
293
- * lost — it is live-only (`state_changed`, `run_settled`), so no cursor brings it back. Subscribing first is not
294
- * enough on its own, because "the call returned" is not "the subscription exists": in process the registration
295
- * happens on the first pull, and over HTTP it happens on the server before the response headers. `ready` is that
296
- * boundary made waitable, so the recipe is subscribe → await ready → backfill, with no timing guess in it.
297
- *
298
- * ONE stream IS one subscription, which is what makes `ready` mean anything: readiness belongs to a subscription, so
299
- * a stream that could start several would be promising the second one something the first established. Iterating the
300
- * same stream twice is refused for that reason — call `events()` again, and get the readiness that goes with it.
301
- *
302
- * `ready` REJECTS when the subscription cannot be established at all: an unreachable endpoint, a refused token, or an
303
- * iteration cancelled before it registered. A stream nobody iterates never settles, matching the rule that an
304
- * iterator obtained but never driven is not subscribed.
305
- */
306
- export interface SessionEventStream extends AsyncIterable<SessionEvent> {
307
- ready: Promise<void>;
308
- }
309
- /**
310
- * Semantic-only: no sequence, no epoch, no session id — in-process the stream is lossless and ordered, and those
311
- * concerns belong to the transport envelope (design §13). Consumers MUST forward or ignore unknown event types; the
312
- * vocabulary is additive.
313
- */
314
- export interface SessionEvent<TType extends string = string, TData extends Json = Json> {
315
- type: TType;
316
- timestamp: number;
317
- /** Present on run-scoped events. */
318
- runId?: string;
319
- data: TData;
320
- }
321
- export type RunStartedEvent = SessionEvent<"run_started", Record<never, never>> & {
322
- runId: string;
323
- };
324
- export type RunSettledEvent = SessionEvent<"run_settled", {
325
- status: "completed" | "failed" | "aborted";
326
- error?: {
327
- code?: string;
328
- message: string;
329
- retryable: boolean;
330
- };
331
- }> & {
332
- runId: string;
333
- };
334
- export type MessageStartedEvent = SessionEvent<"message_started", Record<never, never>> & {
335
- runId: string;
336
- };
337
- /**
338
- * A user message entered the conversation: the run's opening prompt, a steer or follow-up leaving `pending`, or one an
339
- * extension sent. It reports after the message is recorded, so `entries()` already holds `entryId` with the same
340
- * `text` (a slash command expanded) and `images`, and before the answer to it starts. The one live event a backfill
341
- * can be deduplicated against exactly.
342
- */
343
- export type UserMessageEvent = SessionEvent<"user_message", {
344
- entryId: string;
345
- text: string;
346
- images?: EntryImage[];
347
- }> & {
348
- runId: string;
349
- };
350
- /**
351
- * A piece of the answer being written. The `thinking` deltas of one answer add up to its `assistant` entry's
352
- * `thinking`, as its `text` deltas add up to its `text`; redacted reasoning is streamed in neither.
353
- */
354
- export type MessageDeltaEvent = SessionEvent<"message_delta", {
355
- channel: "text" | "thinking";
356
- delta: string;
357
- }> & {
358
- runId: string;
359
- };
360
- /**
361
- * How an answer ended, when it did not end normally: absent on an answer that did. One value, carried live by its
362
- * `message_finished` and durably by its `assistant` entry, so a reopened conversation reads what a watcher saw.
363
- * `truncated` is an answer cut off at the output limit — a property of the answer, not of its run, which may still
364
- * complete. An answer whose entry a `context_edit { omitted }` targets (`failed` or `truncated`) is an attempt the
365
- * engine abandoned; a retry usually, but not always, follows it.
366
- */
367
- export type AnswerOutcome = {
368
- status: "failed" | "aborted" | "truncated";
369
- error?: {
370
- message: string;
371
- };
372
- };
373
- export type MessageFinishedEvent = SessionEvent<"message_finished", {
374
- outcome?: AnswerOutcome;
375
- }> & {
376
- runId: string;
377
- };
378
- export type ToolStartedEvent = SessionEvent<"tool_started", {
379
- id: string;
380
- name: string;
381
- args: Json;
382
- parentToolCallId?: string;
383
- }> & {
384
- runId: string;
385
- };
386
- /** Replace semantics: `partialResult` is the accumulated snapshot so far, not a delta. */
387
- export type ToolProgressEvent = SessionEvent<"tool_progress", {
388
- id: string;
389
- name: string;
390
- partialResult: Json;
391
- parentToolCallId?: string;
392
- }> & {
393
- runId: string;
394
- };
395
- /**
396
- * `terminate: true` when the call asked to end its run. Once every call answering one assistant message asks it, the
397
- * model is not called again for them, and the run ends there with no answer after its `tool` entries (which carry the
398
- * same flag) unless a queued steer or follow-up continues it. Whether the run ended is `run_settled`'s to say.
399
- */
400
- export type ToolFinishedEvent = SessionEvent<"tool_finished", {
401
- id: string;
402
- isError: boolean;
403
- content: Json;
404
- parentToolCallId?: string;
405
- terminate?: true;
406
- }> & {
407
- runId: string;
408
- };
409
- /**
410
- * The prompts queued on the active run, oldest first, as the engine queued them: plain text as sent, a slash command
411
- * already expanded (a `/skill:…` becomes the skill's text), without its images (its `user_message` carries them). A
412
- * prompt LEAVES its list when it enters the conversation as a user message: from then on it is in the record and in
413
- * every later model call (an abort can still end the run before the model answers it). Whatever is still listed when
414
- * the run settles never entered the conversation and is dropped with the run.
415
- */
416
- export type PendingPrompts = {
417
- steering: string[];
418
- followUp: string[];
419
- };
420
- /** The active run's queue changed (L1); `data` is the whole queue, not a delta. */
421
- export type QueueChangedEvent = SessionEvent<"queue_changed", PendingPrompts> & {
422
- runId: string;
423
- };
424
- /**
425
- * Durable session state changed (L2; no runId). An {@link Session.update} reports what it landed; where
426
- * `capabilities().usage` holds, a finished run or compaction reports the session's `usage` as it now reads, and an
427
- * update that moved `leafEntryId` or changed `model` carries it too (absent there: the session now has none).
428
- */
429
- export type StateChangedEvent = SessionEvent<"state_changed", {
430
- name?: string;
431
- model?: string;
432
- thinkingLevel?: string;
433
- leafEntryId?: string;
434
- usage?: SessionState["usage"];
435
- }>;
436
- /** Manual compaction bounds (L2): every `compaction_started` is closed by exactly one `compaction_finished`. */
437
- export type CompactionStartedEvent = SessionEvent<"compaction_started", Record<never, never>>;
438
- export type CompactionFinishedEvent = SessionEvent<"compaction_finished", {
439
- summary?: string;
440
- error?: string;
441
- aborted?: boolean;
442
- }>;
443
- /**
444
- * A transient provider failure scheduled a summarization retry backoff (auto-compaction / branch summaries inside a
445
- * run — `runId` present — or a manual `compact` at a boundary — no `runId`).
446
- */
447
- export type RetryScheduledEvent = SessionEvent<"retry_scheduled", {
448
- /**
449
- * "assistant" is an engine that retries the ANSWER request itself (pi's AgentSession does; pi's own session does;
450
- * a summarization call is the other two).
451
- */
452
- operation: "assistant" | "compaction" | "branch_summary";
453
- attempt: number;
454
- maxAttempts: number;
455
- delayMs: number;
456
- error: string;
457
- }>;
458
- /** The serving process failed outside a normal run outcome (fail visibly). */
459
- export type ServingErrorEvent = SessionEvent<"serving_error", {
460
- message: string;
461
- }>;
462
- /**
463
- * Every event the in-process observation plane emits today: L0, L1 `queue_changed`, and the L2 events
464
- * (`state_changed`, `compaction_*`, `retry_scheduled`).
465
- */
466
- export type KnownSessionEvent = RunStartedEvent | RunSettledEvent | MessageStartedEvent | UserMessageEvent | MessageDeltaEvent | MessageFinishedEvent | ToolStartedEvent | ToolProgressEvent | ToolFinishedEvent | QueueChangedEvent | StateChangedEvent | CompactionStartedEvent | CompactionFinishedEvent | RetryScheduledEvent;
package/dist/session.js DELETED
@@ -1,57 +0,0 @@
1
- /**
2
- * Can this id be ADDRESSED by a client? URL normalisation eats `""`, `.` and `..` before any router sees them, so a
3
- * request for `.` would answer about the collection instead. The rule lives in the contract because both sides
4
- * enforce it and must not drift: a transport refuses to send such an id, and an implementation refuses to MINT one.
5
- */
6
- export function isAddressableSession(session) {
7
- return session !== "" && session !== "." && session !== "..";
8
- }
9
- /**
10
- * Every field name, as a value — what an implementation checks a patch against, and what a transport rejects an
11
- * unknown key by.
12
- */
13
- export const UPDATE_FIELDS = [
14
- "name",
15
- "model",
16
- "thinkingLevel",
17
- "leafEntryId",
18
- ];
19
- /**
20
- * Stable `SessionResult.error.code` for a call, or an update field, the implementation does not support — the answer
21
- * to calling past a {@link SessionCapabilities} gate.
22
- */
23
- export const UNSUPPORTED_CAPABILITY_CODE = "unsupported_capability";
24
- /**
25
- * Stable `SessionResult.error.code` for a run action (`steer`/`follow_up`/`abort`) called while the session has no
26
- * active run.
27
- */
28
- export const NO_ACTIVE_RUN_CODE = "no_active_run";
29
- /** Stable `SessionResult.error.code` for a PAYLOAD that is invalid for this runtime. */
30
- export const INVALID_COMMAND_CODE = "invalid_command";
31
- /**
32
- * Stable `SessionResult.error.code` for a write that needs a record (fork's source, compact, delete) against an id
33
- * that has none, because nothing has written it yet. `update()` creates the record instead, and answers this code only
34
- * when a concurrent `delete()` removes the record between its read and its write.
35
- */
36
- export const NO_SUCH_SESSION_CODE = "no_such_session";
37
- /** Stable `SessionResult.error.code` for a write rejected BEFORE acceptance with nothing durable landed. */
38
- export const BOUNDARY_COMMAND_FAILED_CODE = "boundary_command_failed";
39
- /**
40
- * Stable `SessionResult.error.code` for `compact` on a session with no compactable history yet — a no-op, not a
41
- * failure, rejected before acceptance.
42
- */
43
- export const NOTHING_TO_COMPACT_CODE = "nothing_to_compact";
44
- /**
45
- * Stable `SessionResult.error.code` for a run action that reached an active run but could not take effect because the
46
- * run raced to settlement (or the engine refused it).
47
- */
48
- export const RUN_COMMAND_FAILED_CODE = "run_command_failed";
49
- /** What {@link SessionCollection.list} rejects with — the only read that can. `retryable: true`: the condition is
50
- * the store's availability, not the request. */
51
- export const SESSIONS_UNAVAILABLE_CODE = "sessions_unavailable";
52
- /**
53
- * Stable `SessionResult.error.code` for a multi-field {@link Session.update} that wrote some of its fields and then
54
- * failed — the ONE code that reports durable work behind an `ok: false`. The message names what landed, and a
55
- * `state_changed` event reporting the record as it now is precedes it.
56
- */
57
- export const PARTIAL_UPDATE_CODE = "partial_update";