@fastagent-sh/fastagent 0.24.4 → 0.26.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 (487) hide show
  1. package/README.md +54 -82
  2. package/dist/agent-api.d.ts +460 -0
  3. package/dist/agent-api.js +209 -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 +81 -0
  9. package/dist/authoring.js +245 -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 +116 -64
  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 +18 -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 +253 -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 +191 -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 +132 -16
  164. package/dist/cli/commands/login.d.ts +31 -2
  165. package/dist/cli/commands/login.js +416 -65
  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 +6 -4
  184. package/dist/cli/login-relay.js +19 -7
  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 +70 -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 +220 -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 +223 -202
  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 +52 -27
  260. package/dist/effect-port.d.ts +4 -4
  261. package/dist/effect-port.js +4 -4
  262. package/dist/env.d.ts +0 -13
  263. package/dist/env.js +1 -44
  264. package/dist/environment/apt.d.ts +4 -0
  265. package/dist/environment/apt.js +32 -0
  266. package/dist/environment/declare.d.ts +59 -0
  267. package/dist/environment/declare.js +210 -0
  268. package/dist/environment/mise.d.ts +51 -0
  269. package/dist/environment/mise.js +272 -0
  270. package/dist/feishu.d.ts +2 -2
  271. package/dist/feishu.js +2 -2
  272. package/dist/git.d.ts +13 -0
  273. package/dist/git.js +55 -0
  274. package/dist/harnesses/models/catalog.d.ts +20 -0
  275. package/dist/harnesses/models/catalog.js +254 -0
  276. package/dist/{engines/pi/auth.d.ts → harnesses/models/credentials.d.ts} +3 -3
  277. package/dist/{engines/pi/auth.js → harnesses/models/credentials.js} +3 -3
  278. package/dist/harnesses/models/environment.d.ts +48 -0
  279. package/dist/harnesses/models/environment.js +88 -0
  280. package/dist/harnesses/models/host.d.ts +30 -0
  281. package/dist/harnesses/models/host.js +97 -0
  282. package/dist/{engines/pi → harnesses/models}/login.d.ts +66 -70
  283. package/dist/harnesses/models/login.js +439 -0
  284. package/dist/harnesses/models/models.d.ts +84 -0
  285. package/dist/harnesses/models/models.js +197 -0
  286. package/dist/harnesses/pi-durable/agent.d.ts +42 -0
  287. package/dist/harnesses/pi-durable/agent.js +581 -0
  288. package/dist/harnesses/pi-durable/defaults.d.ts +28 -0
  289. package/dist/harnesses/pi-durable/defaults.js +26 -0
  290. package/dist/harnesses/pi-durable/define.d.ts +77 -0
  291. package/dist/harnesses/pi-durable/define.js +28 -0
  292. package/dist/harnesses/pi-durable/entries.d.ts +32 -0
  293. package/dist/harnesses/pi-durable/entries.js +126 -0
  294. package/dist/harnesses/pi-durable/events.d.ts +25 -0
  295. package/dist/harnesses/pi-durable/events.js +238 -0
  296. package/dist/harnesses/pi-durable/ids.d.ts +16 -0
  297. package/dist/harnesses/pi-durable/ids.js +55 -0
  298. package/dist/harnesses/pi-durable/messages.d.ts +41 -0
  299. package/dist/harnesses/pi-durable/messages.js +116 -0
  300. package/dist/harnesses/pi-durable/open.d.ts +95 -0
  301. package/dist/harnesses/pi-durable/open.js +330 -0
  302. package/dist/harnesses/pi-durable/reads.d.ts +30 -0
  303. package/dist/harnesses/pi-durable/reads.js +94 -0
  304. package/dist/harnesses/pi-durable/registry.d.ts +18 -0
  305. package/dist/harnesses/pi-durable/registry.js +56 -0
  306. package/dist/harnesses/pi-durable/release.d.ts +13 -0
  307. package/dist/harnesses/pi-durable/release.js +40 -0
  308. package/dist/harnesses/pi-durable/serve.d.ts +90 -0
  309. package/dist/harnesses/pi-durable/serve.js +186 -0
  310. package/dist/harnesses/pi-durable/sessions.d.ts +27 -0
  311. package/dist/harnesses/pi-durable/sessions.js +47 -0
  312. package/dist/harnesses/pi-durable/storage.d.ts +4 -0
  313. package/dist/harnesses/pi-durable/storage.js +49 -0
  314. package/dist/harnesses/pi-durable/stream.d.ts +20 -0
  315. package/dist/harnesses/pi-durable/stream.js +221 -0
  316. package/dist/harnesses/pi-durable/text.d.ts +30 -0
  317. package/dist/harnesses/pi-durable/text.js +292 -0
  318. package/dist/harnesses/pi-durable/wake.d.ts +11 -0
  319. package/dist/harnesses/pi-durable/wake.js +90 -0
  320. package/dist/http/client.d.ts +6 -0
  321. package/dist/http/client.js +256 -0
  322. package/dist/http/contract.d.ts +541 -0
  323. package/dist/http/contract.js +179 -0
  324. package/dist/http/server.d.ts +34 -0
  325. package/dist/http/server.js +194 -0
  326. package/dist/index.d.ts +19 -4
  327. package/dist/index.js +13 -5
  328. package/dist/lark.d.ts +2 -2
  329. package/dist/lark.js +2 -2
  330. package/dist/locked-file.d.ts +17 -0
  331. package/dist/{engines/pi/locked-file.js → locked-file.js} +16 -10
  332. package/dist/once.d.ts +6 -0
  333. package/dist/once.js +23 -0
  334. package/dist/paths.d.ts +36 -52
  335. package/dist/paths.js +66 -182
  336. package/dist/runtime.d.ts +25 -2
  337. package/dist/runtime.js +27 -0
  338. package/dist/scaffold/add-channel.d.ts +14 -27
  339. package/dist/scaffold/add-channel.js +82 -180
  340. package/dist/scaffold/init.d.ts +17 -18
  341. package/dist/scaffold/init.js +87 -99
  342. package/dist/scaffold/templates/SYSTEM.md +12 -0
  343. package/dist/scaffold/templates/env.example +4 -10
  344. package/dist/scaffold/templates/fastagent.config.ts +21 -33
  345. package/dist/scaffold/templates/gitignore +8 -1
  346. package/dist/scaffold/templates/skills/writing-great-skills/SKILL.md +1 -2
  347. package/dist/scaffold/templates.d.ts +9 -4
  348. package/dist/scaffold/templates.js +7 -5
  349. package/dist/scaffold/vendor-skill.d.ts +1 -4
  350. package/dist/scaffold/vendor-skill.js +5 -6
  351. package/dist/schedule/cron.d.ts +13 -0
  352. package/dist/schedule/cron.js +52 -0
  353. package/dist/schedule/eventbridge-cron.d.ts +17 -0
  354. package/dist/schedule/eventbridge-cron.js +88 -0
  355. package/dist/schedule/schedule.d.ts +23 -0
  356. package/dist/schedule/schedule.js +34 -0
  357. package/dist/schedule/scheduler.d.ts +34 -33
  358. package/dist/schedule/scheduler.js +251 -137
  359. package/dist/schedule/state.d.ts +4 -14
  360. package/dist/schedule/state.js +7 -7
  361. package/dist/schedule/wake-alarm.d.ts +22 -2
  362. package/dist/schedule/wake-alarm.js +66 -20
  363. package/dist/schedule/wakeups.d.ts +16 -15
  364. package/dist/schedule/wakeups.js +47 -45
  365. package/dist/service.d.ts +56 -169
  366. package/dist/service.js +91 -187
  367. package/dist/serving-command.d.ts +10 -0
  368. package/dist/serving-command.js +16 -0
  369. package/dist/sign-in-api.d.ts +147 -0
  370. package/dist/sign-in-api.js +9 -0
  371. package/dist/slack.d.ts +1 -1
  372. package/dist/slack.js +1 -1
  373. package/dist/{channels/kit/state.js → state-file.js} +6 -6
  374. package/dist/telegram.d.ts +1 -0
  375. package/dist/telegram.js +1 -0
  376. package/dist/tunnel.d.ts +3 -0
  377. package/dist/tunnel.js +14 -5
  378. package/dist/value-file.d.ts +40 -0
  379. package/dist/value-file.js +164 -0
  380. package/dist/version.d.ts +5 -0
  381. package/dist/version.js +14 -1
  382. package/package.json +18 -28
  383. package/dist/agent.d.ts +0 -106
  384. package/dist/agent.js +0 -21
  385. package/dist/channels/control.d.ts +0 -31
  386. package/dist/channels/control.js +0 -329
  387. package/dist/channels/define-channel.d.ts +0 -39
  388. package/dist/channels/define-channel.js +0 -9
  389. package/dist/channels/feishu/context-buffer.d.ts +0 -35
  390. package/dist/channels/feishu/context-buffer.js +0 -65
  391. package/dist/channels/feishu/scaffold/channel.websocket.ts +0 -31
  392. package/dist/channels/http.d.ts +0 -23
  393. package/dist/channels/http.js +0 -57
  394. package/dist/channels/lark/scaffold/channel.websocket.ts +0 -31
  395. package/dist/channels/slack/context-buffer.d.ts +0 -23
  396. package/dist/channels/slack/context-buffer.js +0 -37
  397. package/dist/channels/sse.d.ts +0 -4
  398. package/dist/channels/sse.js +0 -66
  399. package/dist/cli/commands/chat.d.ts +0 -3
  400. package/dist/cli/commands/chat.js +0 -14
  401. package/dist/cli/commands/routine-run.d.ts +0 -6
  402. package/dist/cli/commands/routine-run.js +0 -46
  403. package/dist/cli/commands/routine.d.ts +0 -25
  404. package/dist/cli/commands/routine.js +0 -122
  405. package/dist/cli/commands/tool.d.ts +0 -1
  406. package/dist/cli/commands/tool.js +0 -57
  407. package/dist/collect.d.ts +0 -63
  408. package/dist/collect.js +0 -90
  409. package/dist/core.d.ts +0 -13
  410. package/dist/core.js +0 -15
  411. package/dist/engines/pi/agent-models.d.ts +0 -83
  412. package/dist/engines/pi/agent-models.js +0 -120
  413. package/dist/engines/pi/agent-session-factory.d.ts +0 -121
  414. package/dist/engines/pi/agent-session-factory.js +0 -535
  415. package/dist/engines/pi/chat.d.ts +0 -3
  416. package/dist/engines/pi/chat.js +0 -8
  417. package/dist/engines/pi/config.d.ts +0 -71
  418. package/dist/engines/pi/config.js +0 -199
  419. package/dist/engines/pi/create.d.ts +0 -170
  420. package/dist/engines/pi/create.js +0 -343
  421. package/dist/engines/pi/definition.d.ts +0 -74
  422. package/dist/engines/pi/definition.js +0 -236
  423. package/dist/engines/pi/entry-images.d.ts +0 -14
  424. package/dist/engines/pi/entry-images.js +0 -23
  425. package/dist/engines/pi/invoke-session.d.ts +0 -18
  426. package/dist/engines/pi/invoke-session.js +0 -403
  427. package/dist/engines/pi/locked-file.d.ts +0 -9
  428. package/dist/engines/pi/login.js +0 -331
  429. package/dist/engines/pi/machine.d.ts +0 -53
  430. package/dist/engines/pi/machine.js +0 -137
  431. package/dist/engines/pi/models.d.ts +0 -200
  432. package/dist/engines/pi/models.js +0 -533
  433. package/dist/engines/pi/open.d.ts +0 -180
  434. package/dist/engines/pi/open.js +0 -270
  435. package/dist/engines/pi/openai-account-models.d.ts +0 -35
  436. package/dist/engines/pi/openai-account-models.js +0 -116
  437. package/dist/engines/pi/report.d.ts +0 -18
  438. package/dist/engines/pi/report.js +0 -59
  439. package/dist/engines/pi/retry-event.d.ts +0 -6
  440. package/dist/engines/pi/retry-event.js +0 -15
  441. package/dist/engines/pi/service.d.ts +0 -9
  442. package/dist/engines/pi/service.js +0 -14
  443. package/dist/engines/pi/session-builder.d.ts +0 -13
  444. package/dist/engines/pi/session-builder.js +0 -117
  445. package/dist/engines/pi/session-control.d.ts +0 -77
  446. package/dist/engines/pi/session-control.js +0 -908
  447. package/dist/engines/pi/session-effects.d.ts +0 -14
  448. package/dist/engines/pi/session-effects.js +0 -30
  449. package/dist/engines/pi/session-inheritance.d.ts +0 -21
  450. package/dist/engines/pi/session-inheritance.js +0 -204
  451. package/dist/engines/pi/session-markers.d.ts +0 -49
  452. package/dist/engines/pi/session-markers.js +0 -60
  453. package/dist/engines/pi/session-settings.d.ts +0 -67
  454. package/dist/engines/pi/session-settings.js +0 -119
  455. package/dist/engines/pi/session-store.d.ts +0 -69
  456. package/dist/engines/pi/session-store.js +0 -430
  457. package/dist/engines/pi/tool-context.d.ts +0 -45
  458. package/dist/engines/pi/tool-context.js +0 -31
  459. package/dist/engines/pi/tool.d.ts +0 -99
  460. package/dist/engines/pi/tool.js +0 -118
  461. package/dist/engines/pi/turn-kit.d.ts +0 -92
  462. package/dist/engines/pi/turn-kit.js +0 -288
  463. package/dist/engines/pi/wake-tool.d.ts +0 -9
  464. package/dist/engines/pi/wake-tool.js +0 -92
  465. package/dist/loader.d.ts +0 -41
  466. package/dist/loader.js +0 -116
  467. package/dist/node.d.ts +0 -3
  468. package/dist/node.js +0 -4
  469. package/dist/observe.d.ts +0 -6
  470. package/dist/observe.js +0 -47
  471. package/dist/pi.d.ts +0 -25
  472. package/dist/pi.js +0 -15
  473. package/dist/scaffold/templates/APPEND_SYSTEM.md +0 -12
  474. package/dist/scaffold/templates/tools/fetch-url.ts +0 -25
  475. package/dist/schedule/discover.d.ts +0 -17
  476. package/dist/schedule/discover.js +0 -61
  477. package/dist/schedule/routine.d.ts +0 -43
  478. package/dist/schedule/routine.js +0 -32
  479. package/dist/schedule/run.d.ts +0 -55
  480. package/dist/schedule/run.js +0 -146
  481. package/dist/secrets-gate.d.ts +0 -32
  482. package/dist/secrets-gate.js +0 -33
  483. package/dist/session-remote.d.ts +0 -47
  484. package/dist/session-remote.js +0 -460
  485. package/dist/session.d.ts +0 -466
  486. package/dist/session.js +0 -57
  487. /package/dist/{channels/kit/state.d.ts → state-file.d.ts} +0 -0
@@ -1,59 +0,0 @@
1
- /**
2
- * Render assembly warnings to stderr — the one place both the CLI runners and the `chat` runtime show the non-fatal
3
- * definition/tool findings the loaders return as data.
4
- */
5
- import { relative } from "node:path";
6
- import { log } from "../../log.js";
7
- /** Stable identity of a definition's non-fatal findings — the dedup key below. */
8
- function findingsSignature(def) {
9
- const collisions = def.collisions.map((c) => `c:${c.name}:${c.winnerPath}:${c.loserPath}`);
10
- const diagnostics = def.diagnostics.map((d) => `d:${d.code}:${d.path}`);
11
- const shadowed = (def.shadowed ?? []).map((s) => `s:${s.what}:${s.winnerPath}:${s.loserPath}`);
12
- const ignored = (def.ignored ?? []).map((i) => `i:${i.path}`);
13
- return [...collisions, ...diagnostics, ...shadowed, ...ignored].sort().join("\n");
14
- }
15
- /** The last reported finding set PER DEFINITION DIR. */
16
- const lastFindings = new Map();
17
- /** THE door for definition findings: warns only when this dir's set CHANGED since the last report. */
18
- export function reportFindingsIfChanged(dir, def) {
19
- const sig = findingsSignature(def);
20
- if (lastFindings.get(dir) === sig)
21
- return;
22
- lastFindings.set(dir, sig);
23
- reportDefinitionWarnings(def);
24
- }
25
- export function reportDefinitionWarnings(def) {
26
- for (const c of def.collisions) {
27
- log.warn(`[fastagent] skill "${c.name}" collision — using ${c.winnerPath}, ignoring ${c.loserPath}`);
28
- }
29
- for (const s of def.shadowed ?? []) {
30
- log.warn(`[fastagent] ${s.what} is in two places — using ${s.winnerPath}, ignoring ${s.loserPath}`);
31
- }
32
- for (const i of def.ignored ?? []) {
33
- log.warn(`[fastagent] ${i.path} is ${i.reason}`);
34
- }
35
- for (const d of def.diagnostics) {
36
- log.warn(`[fastagent] ${d.code}: ${d.message} (${d.path})`);
37
- }
38
- }
39
- /** What the agent's system prompt is made of, as a report line: pi's default or `SYSTEM.md`, plus an addendum. */
40
- export function describePrompt(def) {
41
- const base = def.systemPrompt ? relative(def.dir, def.systemPrompt.path) : "pi's default";
42
- return def.appendSystemPrompt ? `${base} + ${relative(def.dir, def.appendSystemPrompt.path)}` : base;
43
- }
44
- const REACH = {
45
- tool_search: "loaded via tool_search",
46
- codemode: "codemode scripts only",
47
- hidden: "hidden",
48
- inactive: "inactive until an authored loader activates it",
49
- unreachable: "unreachable: pi's settings disable the built-in extension it needs",
50
- };
51
- /** The report line for the mounted tools the model is not given up front: each name with its way in. */
52
- export function describeIndirectTools(tools) {
53
- return tools.map((tool) => `${tool.name} (${REACH[tool.reach]})`).join(", ");
54
- }
55
- export function reportToolCollisions(collisions) {
56
- for (const c of collisions) {
57
- log.warn(`[fastagent] tool "${c.name}" (${c.source}) dropped — a default/config tool already uses that name`);
58
- }
59
- }
@@ -1,6 +0,0 @@
1
- import type { AgentSessionEvent } from "@earendil-works/pi-coding-agent";
2
- import type { RetryScheduledEvent } from "../../session.ts";
3
- /** Manual compaction retries are session-scoped; retries inside an invoke carry its runId. */
4
- export declare function toRetryScheduledEvent(event: Extract<AgentSessionEvent, {
5
- type: "auto_retry_start" | "summarization_retry_scheduled";
6
- }>, runId?: string): RetryScheduledEvent;
@@ -1,15 +0,0 @@
1
- /** Manual compaction retries are session-scoped; retries inside an invoke carry its runId. */
2
- export function toRetryScheduledEvent(event, runId) {
3
- return {
4
- type: "retry_scheduled",
5
- timestamp: Date.now(),
6
- ...(runId === undefined ? {} : { runId }),
7
- data: {
8
- operation: event.type === "auto_retry_start" ? "assistant" : "compaction",
9
- attempt: event.attempt,
10
- maxAttempts: event.maxAttempts,
11
- delayMs: event.delayMs,
12
- error: event.errorMessage,
13
- },
14
- };
15
- }
@@ -1,9 +0,0 @@
1
- /** `createAgentService` — the product as one call, with pi supplying the engine. */
2
- import { type AgentService, type MountAgentServiceOptions } from "../../service.ts";
3
- import type { CredentialSourceOptions } from "./auth.ts";
4
- export interface CreateAgentServiceOptions extends MountAgentServiceOptions, CredentialSourceOptions {
5
- model?: string;
6
- sessionsDir?: string;
7
- }
8
- /** Open an agent directory as a live service: one handler, mounted wherever you serve. */
9
- export declare function createAgentService(dir: string, options?: CreateAgentServiceOptions): Promise<AgentService>;
@@ -1,14 +0,0 @@
1
- /** `createAgentService` — the product as one call, with pi supplying the engine. */
2
- import { mountAgentService } from "../../service.js";
3
- import { createPiAgentFromDir } from "./open.js";
4
- /** Open an agent directory as a live service: one handler, mounted wherever you serve. */
5
- export async function createAgentService(dir, options = {}) {
6
- const opened = await createPiAgentFromDir(dir, {
7
- ...(options.model !== undefined ? { model: options.model } : {}),
8
- ...(options.authPath !== undefined ? { authPath: options.authPath } : {}),
9
- ...(options.credentialStore !== undefined ? { credentialStore: options.credentialStore } : {}),
10
- ...(options.sessionsDir !== undefined ? { sessionsDir: options.sessionsDir } : {}),
11
- serving: true, // a mounted service is long-running: the scheduler poller runs
12
- });
13
- return mountAgentService(opened, options);
14
- }
@@ -1,13 +0,0 @@
1
- import { type AgentSessionRuntime, SessionManager } from "@earendil-works/pi-coding-agent";
2
- export interface BuildSessionRuntimeOptions {
3
- /** Model spec override (the CLI --model flag). */
4
- model?: string;
5
- /** Credentials file override (the SDK `authPath` option; the CLI has only `FASTAGENT_AUTH_PATH`). */
6
- authPath?: string;
7
- }
8
- /**
9
- * Build pi's interactive runtime over the SAME assembly `dev`/`start` serve ({@link assembleFront}): model
10
- * registry, prompt, tools, skills, reasoning effort and credentials all come from it, so what differs is only the
11
- * session's shape (one resident runtime rather than one session per invoke).
12
- */
13
- export declare function buildAgentSessionRuntime(dir: string, options?: BuildSessionRuntimeOptions, sessionManager?: SessionManager): Promise<AgentSessionRuntime>;
@@ -1,117 +0,0 @@
1
- /**
2
- * The shared definition-aware session builder: open a directory's assembled agent as a resident pi
3
- * `AgentSessionRuntime`, running the SAME agent that `dev`/`start` serve.
4
- */
5
- import { existsSync, readFileSync } from "node:fs";
6
- import { resolve } from "node:path";
7
- import { SessionManager, SettingsManager, createAgentSessionRuntime, getAgentDir, } from "@earendil-works/pi-coding-agent";
8
- import { bindPiSession, definitionServices } from "./agent-session-factory.js";
9
- import { missingDefaultModel, resolveModel } from "./config.js";
10
- import { canonicalPath } from "./definition.js";
11
- import { reportToolCollisions } from "./report.js";
12
- import { assembleFront, resolveAgentAssembly } from "./open.js";
13
- import { resolvePlacement } from "../../paths.js";
14
- /**
15
- * Build pi's interactive runtime over the SAME assembly `dev`/`start` serve ({@link assembleFront}): model
16
- * registry, prompt, tools, skills, reasoning effort and credentials all come from it, so what differs is only the
17
- * session's shape (one resident runtime rather than one session per invoke).
18
- */
19
- export async function buildAgentSessionRuntime(dir, options = {}, sessionManager) {
20
- async function resolveAssembly() {
21
- const front = await resolveAgentAssembly(dir, options);
22
- // chat's TUI always starts a conversation, so it needs the default the served agent can do without.
23
- const modelSpec = front.modelSpec;
24
- if (!modelSpec)
25
- throw missingDefaultModel();
26
- reportToolCollisions(front.toolCollisions);
27
- const { assembly } = await assembleFront(front);
28
- // Read ONCE per runtime: a rebuild (/new, fork) keeps the startup snapshot, because config and tools stay in the
29
- // import cache and a half-refreshed agent is worse than a stale one. Restart chat to pick up edits.
30
- return { modelSpec, assembly, definition: await assembly.readDefinition() };
31
- }
32
- // The workspace, like serving's: where tools run and what session records are keyed to. Canonical, because pi's
33
- // process.cwd() fallback is a realpath and a symlinked workspace would otherwise mismatch it.
34
- const rootCwd = canonicalPath(resolvePlacement(dir).workspace);
35
- // pi calls the factory again on /new, /resume, switch, and fork; the assembly is built once.
36
- let assembly;
37
- const assemblyFor = (cwd) => {
38
- const activeCwd = canonicalPath(cwd);
39
- if (activeCwd !== rootCwd) {
40
- throw workspaceScopeError(activeCwd);
41
- }
42
- assembly ??= resolveAssembly();
43
- return assembly;
44
- };
45
- const createRuntime = async ({ cwd, sessionManager, sessionStartEvent }) => {
46
- const { modelSpec, assembly, definition } = await assemblyFor(cwd);
47
- // Per session, NOT memoized with the assembly.
48
- const modelRuntime = await assembly.createModelRuntime();
49
- const loaded = await definitionServices({ cwd, modelRuntime, definition, extensionPaths: assembly.extensionPaths });
50
- // ...while the SESSION keeps pi's own file-backed settings, so `/settings` in the TUI still saves. pi persists by
51
- // re-reading the file under its lock and writing only the fields that changed, so `packages` there is untouched.
52
- const services = { ...loaded, settingsManager: SettingsManager.create(cwd, loaded.agentDir) };
53
- // AFTER the services, because an extension may be what defines the model.
54
- const model = resolveModel(modelRuntime, modelSpec);
55
- // Serving and chat restore the same native transcript declarations.
56
- const result = await bindPiSession({
57
- services,
58
- sessionManager,
59
- sessionStartEvent,
60
- model,
61
- // Always set, never left for pi to fill: pi resolves an ABSENT level from the machine's settings, and the effort
62
- // is the definition's (`thinkingLevel` in fastagent.config.ts), like serving's.
63
- thinkingLevel: assembly.thinkingLevel,
64
- tools: assembly.tools,
65
- excludedToolNames: assembly.excludedToolNames,
66
- // A tool must see one spelling of the workspace, including when opened through a symlink.
67
- cwd: rootCwd,
68
- });
69
- return { ...result, services, diagnostics: services.diagnostics };
70
- };
71
- const runtime = await createAgentSessionRuntime(createRuntime, {
72
- cwd: rootCwd,
73
- agentDir: getAgentDir(),
74
- sessionManager: sessionManager ?? SessionManager.create(rootCwd),
75
- });
76
- enforceWorkspaceScopedSessionSwitches(runtime, rootCwd);
77
- return runtime;
78
- }
79
- function workspaceScopeError(targetCwd) {
80
- return new Error(`fastagent sessions are workspace-scoped: cannot switch to ${targetCwd}; open that workspace instead`);
81
- }
82
- function readSessionHeaderCwd(sessionPath) {
83
- const resolvedPath = resolve(sessionPath);
84
- if (!existsSync(resolvedPath))
85
- return undefined;
86
- for (const line of readFileSync(resolvedPath, "utf8").split(/\r?\n/)) {
87
- if (!line.trim())
88
- continue;
89
- try {
90
- const entry = JSON.parse(line);
91
- if (entry.type === "session")
92
- return typeof entry.cwd === "string" ? canonicalPath(entry.cwd) : undefined;
93
- }
94
- catch {
95
- // Ignore malformed lines the same way pi's session loader does; no header cwd → caller pins root.
96
- }
97
- }
98
- return undefined;
99
- }
100
- /** Keep resume/import inside the runtime's single workspace, deciding BEFORE delegating to pi. */
101
- function enforceWorkspaceScopedSessionSwitches(runtime, rootCwd) {
102
- const rejectForeignTarget = (sessionPath, cwdOverride) => {
103
- const target = cwdOverride !== undefined ? canonicalPath(cwdOverride) : readSessionHeaderCwd(sessionPath);
104
- if (target !== undefined && target !== rootCwd)
105
- throw workspaceScopeError(target);
106
- };
107
- const switchSession = runtime.switchSession.bind(runtime);
108
- runtime.switchSession = async (...args) => {
109
- rejectForeignTarget(args[0], args[1]?.cwdOverride);
110
- return switchSession(...args);
111
- };
112
- const importFromJsonl = runtime.importFromJsonl.bind(runtime);
113
- runtime.importFromJsonl = async (...args) => {
114
- rejectForeignTarget(args[0], args[1]);
115
- return importFromJsonl(...args);
116
- };
117
- }
@@ -1,77 +0,0 @@
1
- /**
2
- * The pi implementation of the session control plane. `createPiSessionControl` returns the neutral
3
- * `SessionControl` plus the {@link SessionObserver} to plug into the invoke pipeline
4
- * (`createPiAgent({ observer })`).
5
- *
6
- * It holds no durable state of its own: live truth comes from the event stream (plus the
7
- * {@link RunControls} a `run_started` carries), durable truth from {@link PiSessionRecordStore} —
8
- * which is also what performs every write, so how a record takes a property is not knowledge this
9
- * file has. What it owns is the vocabulary: capability gating, the lease, error codes, and the
10
- * events its own writes emit.
11
- *
12
- * Writes take the same lease as runs. Without boundary wiring they reject before acceptance with
13
- * `unsupported_capability` — a client gating on `capabilities()` never sends them.
14
- */
15
- import type { ThinkingLevel } from "@earendil-works/pi-agent-core";
16
- import { type Models } from "@earendil-works/pi-ai";
17
- import { type AgentCommand, type SessionControl, type SessionEvent } from "../../session.ts";
18
- import { type SessionObserver, type Lease } from "./turn-kit.ts";
19
- import type { AnyModel } from "./models.ts";
20
- import type { PiAgentSessionFactory } from "./invoke-session.ts";
21
- import type { PiSessionRecordStore } from "./session-store.ts";
22
- /** Per-subscriber backlog limits: event count and UTF-8 JSON bytes. Overflow freezes the accepted
23
- * prefix; the reader drains it before seeing done, then reconnects and backfills via entries(). */
24
- export declare const SUBSCRIBER_BUFFER_CAP = 10000;
25
- export declare const SUBSCRIBER_BUFFER_BYTES: number;
26
- /** What the plane's writes (`update` / `compact` / `fork` / `delete`) need — the SAME instances the
27
- * agent assembly uses: the lease (a write must not race a run), the model registry (validation +
28
- * allowedModels), and the session factory (compaction is a model call). Two writes create a record:
29
- * fork's `into`, and `update()` on an id that has none (through the store's `openOrCreate`, like an
30
- * invoke). Every other write needs a record that exists. */
31
- export interface PiBoundaryWiring {
32
- lease: Lease;
33
- models: Models;
34
- sessionFactory: PiAgentSessionFactory;
35
- /** The assembly's configured PAIR — what a session with no overrides runs on. One field because
36
- * model and thinking level are one setting: which levels exist is a property of the model, so a
37
- * wiring that could carry them apart could carry a pair no run uses. Must be what
38
- * {@link sessionFactory} was built with. No model when the agent sets no default: a session then runs on the model
39
- * it records, and `state()` of one that records none reports no model. */
40
- defaults: {
41
- model?: AnyModel;
42
- thinkingLevel: ThinkingLevel;
43
- };
44
- }
45
- export interface CreatePiSessionControlOptions {
46
- /** Read-only access to the durable session records (the same root the agent writes). */
47
- sessions: PiSessionRecordStore;
48
- /** Boundary-mutation wiring — the assembly's own parts. Absent → boundary commands are gated off
49
- * in `capabilities()` and rejected `unsupported_capability`. */
50
- boundary?: PiBoundaryWiring;
51
- /** The definition's names, as an async thunk because the definition is live: this must re-read it,
52
- * not close over a boot snapshot, or `commands()` would advertise a list the next turn no longer
53
- * runs.
54
- *
55
- * OPTIONAL because absence is a TRUE answer for the assembly that omits it: a hub over an L1
56
- * agent (`createPiAgent({ model, instructions, tools })`) has no definition and therefore no
57
- * names, and `[]` says exactly that. Wire it whenever the agent came from a DIRECTORY — there
58
- * `[]` would be a lie; the directory constructor (`createPiAgentFromDir`) always does. */
59
- commands?: () => Promise<AgentCommand[]>;
60
- /** Tap for the events the HUB ITSELF generates (boundary mutations: `state_changed`,
61
- * `compaction_*`) — those never pass through the data plane's observer seam, so a consumer
62
- * composing a full-vocabulary tap wires the run events via the observer AND this. Called after
63
- * the hub's own subscribers. */
64
- tap?: (session: string, event: SessionEvent) => void;
65
- }
66
- /**
67
- * Build the observation hub. Wire `observer` into the SAME agent assembly that serves the sessions:
68
- *
69
- * ```ts
70
- * const { control, observer } = createPiSessionControl({ sessions });
71
- * const agent = createPiAgent({ ..., sessions, observer });
72
- * ```
73
- */
74
- export declare function createPiSessionControl(options: CreatePiSessionControlOptions): {
75
- control: SessionControl;
76
- observer: SessionObserver;
77
- };