@fased/fased 0.1.36 → 0.1.38

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 (240) hide show
  1. package/config/capability-catalog.json +241 -0
  2. package/config/dependency-ownership.json +130 -0
  3. package/config/official-channel-catalog.json +39 -0
  4. package/dist/agents/tools/web-fetch-utils.js +2 -1
  5. package/dist/agents/tools/web-fetch-visibility.js +3 -1
  6. package/dist/brand.js +1 -1
  7. package/dist/browser/pw-session.js +2 -1
  8. package/dist/browser/pw-tools-core.state.js +3 -2
  9. package/dist/browser/runtime-dependency.js +27 -0
  10. package/dist/build-info.json +3 -3
  11. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  12. package/dist/capabilities/catalog.js +228 -0
  13. package/dist/cli/components-cli.js +105 -0
  14. package/dist/cli/hooks-cli.js +1 -1
  15. package/dist/cli/plugins-cli.js +3 -3
  16. package/dist/cli/program/register.subclis.js +9 -0
  17. package/dist/cli/update-cli/update-command.js +1 -1
  18. package/dist/commands/doctor-capabilities.js +26 -0
  19. package/dist/commands/doctor.js +2 -0
  20. package/dist/control-ui/assets/{app-DXYMrRJ9.js → app-JBrTSsNu.js} +1480 -1465
  21. package/dist/control-ui/assets/{index-iGQkJE0l.js → index-H-2DWAnH.js} +3 -3
  22. package/dist/control-ui/index.html +1 -1
  23. package/dist/gateway/method-scopes.js +1 -0
  24. package/dist/gateway/server-methods/plugins-marketplace.js +1 -1
  25. package/dist/gateway/server-methods/services.js +8 -0
  26. package/dist/gateway/server-methods-list.js +1 -0
  27. package/dist/infra/optional-runtime-dependency.js +46 -0
  28. package/dist/media/image-ops.js +6 -1
  29. package/dist/media/input-files.js +11 -2
  30. package/dist/media/mime.js +6 -1
  31. package/dist/memory/sqlite-vec.js +7 -1
  32. package/dist/plugin-sdk/{accounts-VqAX3HJ0.js → accounts-BwkH5bTD.js} +1 -1
  33. package/dist/plugin-sdk/{accounts-Zgt0NP54.js → accounts-RT6y7n3H.js} +1 -1
  34. package/dist/plugin-sdk/{actions-lB3PCwsz.js → actions-BrU_JMqM.js} +2 -2
  35. package/dist/plugin-sdk/{actions-BI5QViLk.js → actions-CUdVHzeJ.js} +2 -2
  36. package/dist/plugin-sdk/{active-listener-DKZiSaRA.js → active-listener-CE8t5g6l.js} +1 -1
  37. package/dist/plugin-sdk/{active-listener-D6_pdTMC.js → active-listener-Dx1SEGDn.js} +1 -1
  38. package/dist/plugin-sdk/{audio-preflight-Dx8J7XhV.js → audio-preflight-BPK8t0tI.js} +22 -22
  39. package/dist/plugin-sdk/{audio-preflight-CeRstduc.js → audio-preflight-kCa_KGRH.js} +22 -22
  40. package/dist/plugin-sdk/{audit-BImNOQvk.js → audit-DxB2Kml5.js} +11 -11
  41. package/dist/plugin-sdk/{audit-CKWkq0Un.js → audit-sSeRDwJb.js} +11 -11
  42. package/dist/plugin-sdk/channel-plugin-common.js +3 -2
  43. package/dist/plugin-sdk/{chunk-skAJZWCT.js → chunk-KCxbJLsV.js} +1 -1
  44. package/dist/plugin-sdk/{chunk-Cjw4712g.js → chunk-M2d7r-Zt.js} +1 -1
  45. package/dist/plugin-sdk/{chunk-items-Df5811D0.js → chunk-items-DGHUeFuI.js} +1 -1
  46. package/dist/plugin-sdk/command-status.js +22 -22
  47. package/dist/plugin-sdk/{commands-registry-5J619bQ2.js → commands-registry-CdT-nl7v.js} +2 -2
  48. package/dist/plugin-sdk/{commands-registry-CoLAT03J.js → commands-registry-DoWdYAJd.js} +2 -2
  49. package/dist/plugin-sdk/{common-CSTxewqY.js → common-Cpw-vuuM.js} +1 -1
  50. package/dist/plugin-sdk/{common-BiF0sTnY.js → common-DJWrErdE.js} +1 -1
  51. package/dist/plugin-sdk/{config-BxVjLTIv.js → config-C0qggNKQ.js} +7 -7
  52. package/dist/plugin-sdk/{config-TFokWwvO.js → config-CgwTaper.js} +45 -2
  53. package/dist/plugin-sdk/{config-DXlISPlx.js → config-DtqAN2L3.js} +45 -2
  54. package/dist/plugin-sdk/discord.js +2 -1
  55. package/dist/plugin-sdk/{fetch-guard-DPMynms8.js → fetch-guard-BLdujDnt.js} +1 -1
  56. package/dist/plugin-sdk/{fetch-guard-COLmW2TM.js → fetch-guard-DTKgMN9f.js} +1 -1
  57. package/dist/plugin-sdk/{handle-action-C-UndB8E.js → handle-action-B61D85yo.js} +12 -12
  58. package/dist/plugin-sdk/{handle-action-hhufKxmU.js → handle-action-CjcxGzQD.js} +12 -12
  59. package/dist/plugin-sdk/index.js +22 -22
  60. package/dist/plugin-sdk/{login-DL1oBBfL.js → login-CB_nCjX3.js} +3 -3
  61. package/dist/plugin-sdk/{login-Dnxas1dI.js → login-CzUuDd1v.js} +3 -3
  62. package/dist/plugin-sdk/{login-qr-CVQsGWKq.js → login-qr-D7MEpFza.js} +3 -3
  63. package/dist/plugin-sdk/{login-qr-B343JNXJ.js → login-qr-DgxfBFVN.js} +3 -3
  64. package/dist/plugin-sdk/{manager-BytwRIfK.js → manager-9see0IX5.js} +8 -3
  65. package/dist/plugin-sdk/{manager-BZjd_PCt.js → manager-D2kZ0Cps.js} +8 -3
  66. package/dist/plugin-sdk/{markdown-tables-krKiU4cT.js → markdown-tables-CCSD52rA.js} +1 -1
  67. package/dist/plugin-sdk/{markdown-tables-9rJDQ1X-.js → markdown-tables-DWUNvLrc.js} +1 -1
  68. package/dist/plugin-sdk/{media-D7ZkWU-A.js → media-C7YT4DeU.js} +13 -4
  69. package/dist/plugin-sdk/{media-C6C2c9a4.js → media-Cxw-xLGU.js} +13 -4
  70. package/dist/plugin-sdk/{monitor-BsLMfn3U.js → monitor-6lkdOqhQ.js} +26 -26
  71. package/dist/plugin-sdk/{monitor-BCxkQBoh.js → monitor-C6Ohw9BA.js} +26 -26
  72. package/dist/plugin-sdk/{monitor-BzDW50H6.js → monitor-o20KTHIi.js} +29 -29
  73. package/dist/plugin-sdk/{monitor-CVQNDfhs.js → monitor-rOs3mUol.js} +27 -27
  74. package/dist/plugin-sdk/{openresponses-http-BB67Z4QM.js → openresponses-http-BJONnUdy.js} +22 -22
  75. package/dist/plugin-sdk/{openresponses-http-NE76GGhj.js → openresponses-http-DkWqYznu.js} +22 -22
  76. package/dist/plugin-sdk/{ssrf-u0Ul7okY.js → optional-runtime-dependency-szS49voX.js} +46 -2
  77. package/dist/plugin-sdk/{outbound-PGNWU6T-.js → outbound-BCxOxdi-.js} +6 -6
  78. package/dist/plugin-sdk/{outbound-BHWJD9q0.js → outbound-JIwQbpRY.js} +6 -6
  79. package/dist/plugin-sdk/{outbound-attachment-BVzfhqnk.js → outbound-attachment-C-jSFaEB.js} +1 -1
  80. package/dist/plugin-sdk/{outbound-attachment-ClMvNW17.js → outbound-attachment-D6tj5Y5H.js} +1 -1
  81. package/dist/plugin-sdk/{pi-embedded-runner-DQ6UPx6-.js → pi-embedded-runner-DqDy0MWN.js} +72 -60
  82. package/dist/plugin-sdk/{pi-model-discovery-D51L5E9I.js → pi-model-discovery-DadlvsZW.js} +1 -1
  83. package/dist/plugin-sdk/{pi-model-discovery-runtime-DxoFm4Vd.js → pi-model-discovery-runtime-C5ssE6EW.js} +1 -1
  84. package/dist/plugin-sdk/{pi-model-discovery-runtime-DRuh4PNV.js → pi-model-discovery-runtime-DAaOPt64.js} +2 -2
  85. package/dist/plugin-sdk/{pi-model-discovery-runtime-BTWgkx4x.js → pi-model-discovery-runtime-gd77b0UF.js} +2 -2
  86. package/dist/plugin-sdk/{pi-model-discovery-CkH5l9X5.js → pi-model-discovery-yifTIDIn.js} +1 -1
  87. package/dist/plugin-sdk/{pw-ai-DZs6uYRd.js → pw-ai-Boor5vYw.js} +6 -5
  88. package/dist/plugin-sdk/{pw-ai-Cn-EUPZK.js → pw-ai-sH1Pi-Fh.js} +6 -5
  89. package/dist/plugin-sdk/{registry-B4HvWzob.js → registry-DNkJsNsz.js} +4 -3
  90. package/dist/plugin-sdk/{replies-jDMUBsNO.js → replies-fvzN5wnU.js} +2 -2
  91. package/dist/plugin-sdk/{replies-B_LW9c9f.js → replies-zebgZCHX.js} +2 -2
  92. package/dist/plugin-sdk/{resolve-route-_YZHbS-z.js → resolve-route-CNhTJG_2.js} +1 -1
  93. package/dist/plugin-sdk/{resolve-route-DlHzggnG.js → resolve-route-DO0WR4nB.js} +1 -1
  94. package/dist/plugin-sdk/{resolve-utils-zBhVX3Vx.js → resolve-utils-bixHYDBj.js} +1 -1
  95. package/dist/plugin-sdk/{retry-policy-DGLs5ebP.js → retry-policy-BLYEgIwP.js} +1 -1
  96. package/dist/plugin-sdk/{retry-policy-DaodShGa.js → retry-policy-sM01QZT2.js} +1 -1
  97. package/dist/plugin-sdk/{runtime-Dd0sswuW.js → runtime-BPyuAmka.js} +4 -3
  98. package/dist/plugin-sdk/{paths-CBCpJ5bu.js → runtime-dependency-Csswyv5r.js} +27 -3
  99. package/dist/plugin-sdk/{paths-DW-U2r7Y.js → runtime-dependency-Deg_sw2k.js} +36 -12
  100. package/dist/plugin-sdk/sat-runtime.js +1 -0
  101. package/dist/plugin-sdk/{send-8remZhsH.js → send-B09HRfHN.js} +6 -6
  102. package/dist/plugin-sdk/{send-DaaAscWj.js → send-BBYcgXA4.js} +5 -5
  103. package/dist/plugin-sdk/{send-DFTB0cnx.js → send-BQXQA81e.js} +6 -6
  104. package/dist/plugin-sdk/{send-CtMVvMJs.js → send-BzFdvD_i.js} +6 -6
  105. package/dist/plugin-sdk/{send-Di9irjS-.js → send-C3u-F_8s.js} +6 -6
  106. package/dist/plugin-sdk/{send-Dl88ZKq2.js → send-D3836_UN.js} +6 -6
  107. package/dist/plugin-sdk/{send-ifgZCHVB.js → send-D7tr-EsH.js} +5 -5
  108. package/dist/plugin-sdk/{send-DvUpYh0d.js → send-DRGzRdI3.js} +6 -6
  109. package/dist/plugin-sdk/{send-D2jlPeKH.js → send-DfkPKz_0.js} +4 -4
  110. package/dist/plugin-sdk/{send-QSt6nbny.js → send-DsxFXrCO.js} +4 -4
  111. package/dist/plugin-sdk/{session-CknrceVU.js → session-DG_bYisw.js} +2 -2
  112. package/dist/plugin-sdk/{session-CyRTcJ8N.js → session-EIStzK0E.js} +2 -2
  113. package/dist/plugin-sdk/{skill-commands-DHxkTA0s.js → skill-commands-CkgGmWBS.js} +2 -2
  114. package/dist/plugin-sdk/{skill-commands-CLXAG5sU.js → skill-commands-hyZA0LE3.js} +2 -2
  115. package/dist/plugin-sdk/{slack-Br9c6Yzs.js → slack-BErIh0uj.js} +34 -34
  116. package/dist/plugin-sdk/{slack-BpJXkwxF.js → slack-CGTAN4UD.js} +34 -34
  117. package/dist/plugin-sdk/{slack-actions-8tLGt1Ht.js → slack-actions-BQawWGTJ.js} +11 -11
  118. package/dist/plugin-sdk/{slack-actions-CDSSRo8Y.js → slack-actions-DDMszx56.js} +11 -11
  119. package/dist/plugin-sdk/slack.js +2 -1
  120. package/dist/plugin-sdk/src/brand.d.ts +2 -2
  121. package/dist/plugin-sdk/src/browser/runtime-dependency.d.ts +3 -0
  122. package/dist/plugin-sdk/src/infra/optional-runtime-dependency.d.ts +6 -0
  123. package/dist/plugin-sdk/{ssrf-fG4UHKBw.js → ssrf-Cce6LubA.js} +41 -7
  124. package/dist/plugin-sdk/{status-DoxnzyMC.js → status-CCGFb0f2.js} +76 -64
  125. package/dist/plugin-sdk/{sticker-cache-zmJ39ByC.js → sticker-cache-CKAkkCoU.js} +3 -3
  126. package/dist/plugin-sdk/{sticker-cache-D7WcMYsF.js → sticker-cache-wxl1Me2i.js} +3 -3
  127. package/dist/plugin-sdk/{tables-CkxblF0u.js → tables-BD7H5ug-.js} +1 -1
  128. package/dist/plugin-sdk/{tables-RBtf8G4P.js → tables-CJE8kB35.js} +1 -1
  129. package/dist/plugin-sdk/{telegram-actions-DAeYXSLk.js → telegram-actions-BRUNEXMr.js} +25 -25
  130. package/dist/plugin-sdk/{telegram-actions-BDeS3ocd.js → telegram-actions-r86ntIKR.js} +25 -25
  131. package/dist/plugin-sdk/telegram.js +2 -1
  132. package/dist/plugin-sdk/{thread-bindings.lifecycle-DsB94WbE.js → thread-bindings.lifecycle-Djem8FWF.js} +2 -2
  133. package/dist/plugin-sdk/{thread-bindings.lifecycle-DMhV3TsR.js → thread-bindings.lifecycle-gmHv3hc7.js} +2 -2
  134. package/dist/plugin-sdk/{thread-bindings.state-DYWpy7hJ.js → thread-bindings.state-CNT2vxm3.js} +2 -2
  135. package/dist/plugin-sdk/{thread-bindings.state-DG5cBaRn.js → thread-bindings.state-D8kN2X6H.js} +2 -2
  136. package/dist/plugin-sdk/{web-DJwacWQo.js → web-02I0vmdu.js} +26 -26
  137. package/dist/plugin-sdk/{web-IJ4NoGPJ.js → web-CXz56wyu.js} +26 -26
  138. package/dist/plugin-sdk/{whatsapp-actions-DAY8hWpD.js → whatsapp-actions-68Mfs2dJ.js} +12 -12
  139. package/dist/plugin-sdk/{whatsapp-actions-6opfo-oB.js → whatsapp-actions-DRqtzvTO.js} +12 -12
  140. package/dist/plugin-sdk/whatsapp.js +2 -1
  141. package/dist/plugin-sdk/{wsl-B2euLEc2.js → wsl-DcM2PgSS.js} +3 -3
  142. package/dist/plugin-sdk/{wsl-B8eyviuv.js → wsl-PXrdWitE.js} +3 -3
  143. package/dist/plugins/update.js +1 -1
  144. package/dist/tts/tts-core.js +6 -1
  145. package/dist/wizard/onboarding.finalize.js +9 -0
  146. package/extensions/acpx/package.json +1 -1
  147. package/extensions/bluebubbles/package.json +1 -1
  148. package/extensions/copilot-proxy/package.json +1 -1
  149. package/extensions/diagnostics-otel/package.json +1 -1
  150. package/extensions/fased-federation/package.json +1 -1
  151. package/extensions/google-gemini-cli-auth/package.json +1 -1
  152. package/extensions/imessage/package.json +1 -1
  153. package/extensions/irc/package.json +1 -1
  154. package/extensions/line/package.json +1 -1
  155. package/extensions/llm-task/package.json +1 -1
  156. package/extensions/lobster/package.json +1 -1
  157. package/extensions/matrix/CHANGELOG.md +12 -0
  158. package/extensions/matrix/package.json +1 -1
  159. package/extensions/mattermost/package.json +1 -1
  160. package/extensions/memory-core/package.json +2 -2
  161. package/extensions/memory-lancedb/package.json +1 -1
  162. package/extensions/minimax-portal-auth/package.json +1 -1
  163. package/extensions/msteams/CHANGELOG.md +12 -0
  164. package/extensions/msteams/package.json +1 -1
  165. package/extensions/nextcloud-talk/package.json +1 -1
  166. package/extensions/nostr/CHANGELOG.md +12 -0
  167. package/extensions/nostr/package.json +1 -1
  168. package/extensions/open-prose/package.json +1 -1
  169. package/extensions/sat-mining/package.json +1 -1
  170. package/extensions/signal/package.json +1 -1
  171. package/extensions/synology-chat/package.json +1 -1
  172. package/extensions/tlon/package.json +1 -1
  173. package/extensions/twitch/CHANGELOG.md +12 -0
  174. package/extensions/twitch/package.json +1 -1
  175. package/extensions/voice-call/CHANGELOG.md +12 -0
  176. package/extensions/voice-call/package.json +1 -1
  177. package/extensions/zalo/CHANGELOG.md +12 -0
  178. package/extensions/zalo/package.json +1 -1
  179. package/extensions/zalouser/CHANGELOG.md +12 -0
  180. package/extensions/zalouser/package.json +1 -1
  181. package/package.json +22 -15
  182. package/extensions/feishu/fased.plugin.json +0 -10
  183. package/extensions/feishu/index.ts +0 -63
  184. package/extensions/feishu/package.json +0 -33
  185. package/extensions/feishu/skills/feishu-doc/SKILL.md +0 -211
  186. package/extensions/feishu/skills/feishu-doc/references/block-types.md +0 -103
  187. package/extensions/feishu/skills/feishu-drive/SKILL.md +0 -97
  188. package/extensions/feishu/skills/feishu-perm/SKILL.md +0 -119
  189. package/extensions/feishu/skills/feishu-wiki/SKILL.md +0 -111
  190. package/extensions/feishu/src/accounts.ts +0 -159
  191. package/extensions/feishu/src/bitable.ts +0 -713
  192. package/extensions/feishu/src/bot.ts +0 -979
  193. package/extensions/feishu/src/channel.ts +0 -359
  194. package/extensions/feishu/src/client.ts +0 -118
  195. package/extensions/feishu/src/config-schema.ts +0 -226
  196. package/extensions/feishu/src/dedup.ts +0 -54
  197. package/extensions/feishu/src/directory.ts +0 -177
  198. package/extensions/feishu/src/doc-schema.ts +0 -122
  199. package/extensions/feishu/src/docx.ts +0 -998
  200. package/extensions/feishu/src/drive-schema.ts +0 -46
  201. package/extensions/feishu/src/drive.ts +0 -232
  202. package/extensions/feishu/src/dynamic-agent.ts +0 -131
  203. package/extensions/feishu/src/external-keys.ts +0 -19
  204. package/extensions/feishu/src/media.ts +0 -447
  205. package/extensions/feishu/src/mention.ts +0 -133
  206. package/extensions/feishu/src/monitor.ts +0 -434
  207. package/extensions/feishu/src/onboarding.ts +0 -430
  208. package/extensions/feishu/src/outbound.ts +0 -56
  209. package/extensions/feishu/src/perm-schema.ts +0 -52
  210. package/extensions/feishu/src/perm.ts +0 -180
  211. package/extensions/feishu/src/policy.ts +0 -116
  212. package/extensions/feishu/src/probe.ts +0 -44
  213. package/extensions/feishu/src/reactions.ts +0 -160
  214. package/extensions/feishu/src/reply-dispatcher.ts +0 -239
  215. package/extensions/feishu/src/runtime.ts +0 -14
  216. package/extensions/feishu/src/send-result.ts +0 -29
  217. package/extensions/feishu/src/send-target.ts +0 -25
  218. package/extensions/feishu/src/send.ts +0 -313
  219. package/extensions/feishu/src/streaming-card.ts +0 -218
  220. package/extensions/feishu/src/targets.ts +0 -78
  221. package/extensions/feishu/src/tool-account.ts +0 -58
  222. package/extensions/feishu/src/tools-config.ts +0 -21
  223. package/extensions/feishu/src/types.ts +0 -81
  224. package/extensions/feishu/src/typing.ts +0 -80
  225. package/extensions/feishu/src/wiki-schema.ts +0 -55
  226. package/extensions/feishu/src/wiki.ts +0 -237
  227. package/extensions/googlechat/fased.plugin.json +0 -9
  228. package/extensions/googlechat/index.ts +0 -19
  229. package/extensions/googlechat/package.json +0 -37
  230. package/extensions/googlechat/src/accounts.ts +0 -147
  231. package/extensions/googlechat/src/actions.ts +0 -176
  232. package/extensions/googlechat/src/api.ts +0 -282
  233. package/extensions/googlechat/src/auth.ts +0 -137
  234. package/extensions/googlechat/src/channel.ts +0 -591
  235. package/extensions/googlechat/src/monitor.ts +0 -996
  236. package/extensions/googlechat/src/onboarding.ts +0 -344
  237. package/extensions/googlechat/src/runtime.ts +0 -14
  238. package/extensions/googlechat/src/targets.ts +0 -65
  239. package/extensions/googlechat/src/types.config.ts +0 -3
  240. package/extensions/googlechat/src/types.ts +0 -73
@@ -0,0 +1,241 @@
1
+ {
2
+ "entries": [
3
+ {
4
+ "id": "agent-core",
5
+ "label": "Fased Agent",
6
+ "category": "core",
7
+ "delivery": "core",
8
+ "docsPath": "/start/fased",
9
+ "surface": "Agent > Models",
10
+ "description": "Dashboard chat, Agent execution, tools, and model-provider clients."
11
+ },
12
+ {
13
+ "id": "tasks",
14
+ "label": "Tasks",
15
+ "category": "core",
16
+ "delivery": "core",
17
+ "docsPath": "/automation",
18
+ "surface": "Agent > Tasks",
19
+ "description": "Scheduled and recurring Agent work."
20
+ },
21
+ {
22
+ "id": "solana-wallets",
23
+ "label": "Solana Wallets",
24
+ "category": "crypto",
25
+ "delivery": "core",
26
+ "docsPath": "/plugins/crypto/wallet-page",
27
+ "surface": "Wallets",
28
+ "description": "Wallet creation, custody, policy, balances, and Solana actions."
29
+ },
30
+ {
31
+ "id": "sat-mining",
32
+ "label": "SAT Mining",
33
+ "category": "crypto",
34
+ "delivery": "core",
35
+ "pluginId": "sat-mining",
36
+ "docsPath": "/plugins/crypto/mining-page",
37
+ "surface": "Mining",
38
+ "description": "Bundled Satcoin mining runtime, readiness, capital, cycles, and history."
39
+ },
40
+ {
41
+ "id": "fased-network",
42
+ "label": "Fased Network",
43
+ "category": "crypto",
44
+ "delivery": "core",
45
+ "pluginId": "fased-federation",
46
+ "docsPath": "/start/federation",
47
+ "surface": "Fased Network",
48
+ "description": "Offers, requests, trust, bond, and Agent marketplace controls."
49
+ },
50
+ {
51
+ "id": "telegram",
52
+ "label": "Telegram",
53
+ "category": "channel",
54
+ "delivery": "npm-addon",
55
+ "packageName": "@fased/telegram",
56
+ "pluginId": "telegram",
57
+ "channelId": "telegram",
58
+ "docsPath": "/channels/telegram",
59
+ "surface": "Agent > Channels",
60
+ "restartRequired": true,
61
+ "description": "Telegram bot transport."
62
+ },
63
+ {
64
+ "id": "whatsapp",
65
+ "label": "WhatsApp",
66
+ "category": "channel",
67
+ "delivery": "npm-addon",
68
+ "packageName": "@fased/whatsapp",
69
+ "pluginId": "whatsapp",
70
+ "channelId": "whatsapp",
71
+ "docsPath": "/channels/whatsapp",
72
+ "surface": "Agent > Channels",
73
+ "restartRequired": true,
74
+ "description": "WhatsApp QR-linked transport."
75
+ },
76
+ {
77
+ "id": "discord",
78
+ "label": "Discord",
79
+ "category": "channel",
80
+ "delivery": "npm-addon",
81
+ "packageName": "@fased/discord",
82
+ "pluginId": "discord",
83
+ "channelId": "discord",
84
+ "docsPath": "/channels/discord",
85
+ "surface": "Agent > Channels",
86
+ "restartRequired": true,
87
+ "description": "Discord bot transport."
88
+ },
89
+ {
90
+ "id": "slack",
91
+ "label": "Slack",
92
+ "category": "channel",
93
+ "delivery": "npm-addon",
94
+ "packageName": "@fased/slack",
95
+ "pluginId": "slack",
96
+ "channelId": "slack",
97
+ "docsPath": "/channels/slack",
98
+ "surface": "Agent > Channels",
99
+ "restartRequired": true,
100
+ "description": "Slack Socket Mode transport."
101
+ },
102
+ {
103
+ "id": "feishu",
104
+ "label": "Feishu / Lark",
105
+ "category": "channel",
106
+ "delivery": "npm-addon",
107
+ "packageName": "@fased/feishu",
108
+ "pluginId": "feishu",
109
+ "channelId": "feishu",
110
+ "docsPath": "/channels/feishu",
111
+ "surface": "Agent > Channels",
112
+ "restartRequired": true,
113
+ "description": "Feishu and Lark enterprise messaging transport."
114
+ },
115
+ {
116
+ "id": "googlechat",
117
+ "label": "Google Chat",
118
+ "category": "channel",
119
+ "delivery": "npm-addon",
120
+ "packageName": "@fased/googlechat",
121
+ "pluginId": "googlechat",
122
+ "channelId": "googlechat",
123
+ "docsPath": "/channels/googlechat",
124
+ "surface": "Agent > Channels",
125
+ "restartRequired": true,
126
+ "description": "Google Workspace Chat webhook transport."
127
+ },
128
+ {
129
+ "id": "browser-runtime",
130
+ "label": "Browser Runtime",
131
+ "category": "runtime",
132
+ "delivery": "npm-addon",
133
+ "packageName": "@fased/browser-runtime",
134
+ "pluginId": "browser-runtime",
135
+ "restartRequired": true,
136
+ "docsPath": "/tools/browser",
137
+ "surface": "Services > Components",
138
+ "description": "Optional browser automation and readable-page extraction dependencies."
139
+ },
140
+ {
141
+ "id": "browser-binary",
142
+ "label": "Browser Application",
143
+ "category": "runtime",
144
+ "delivery": "external-runtime",
145
+ "externalKind": "browser",
146
+ "docsPath": "/tools/browser",
147
+ "surface": "Services > Browser",
148
+ "description": "Chrome, Chromium, Brave, Edge, remote CDP, or the extension relay."
149
+ },
150
+ {
151
+ "id": "ollama",
152
+ "label": "Ollama",
153
+ "category": "provider",
154
+ "delivery": "external-runtime",
155
+ "providerId": "ollama",
156
+ "externalKind": "model-server",
157
+ "docsPath": "/providers/ollama",
158
+ "surface": "Agent > Models",
159
+ "description": "External Ollama server and model weights connected through the bundled client."
160
+ },
161
+ {
162
+ "id": "lmstudio",
163
+ "label": "LM Studio",
164
+ "category": "provider",
165
+ "delivery": "external-runtime",
166
+ "providerId": "lmstudio",
167
+ "externalKind": "model-server",
168
+ "docsPath": "/providers/lmstudio",
169
+ "surface": "Agent > Models",
170
+ "description": "External LM Studio server and model weights connected through the bundled client."
171
+ },
172
+ {
173
+ "id": "vllm",
174
+ "label": "vLLM",
175
+ "category": "provider",
176
+ "delivery": "external-runtime",
177
+ "providerId": "vllm",
178
+ "externalKind": "model-server",
179
+ "docsPath": "/gateway/local-models",
180
+ "surface": "Agent > Models",
181
+ "description": "External vLLM server connected through the bundled provider client."
182
+ },
183
+ {
184
+ "id": "litellm",
185
+ "label": "LiteLLM",
186
+ "category": "provider",
187
+ "delivery": "external-runtime",
188
+ "providerId": "litellm",
189
+ "externalKind": "model-server",
190
+ "docsPath": "/gateway/local-models",
191
+ "surface": "Agent > Models",
192
+ "description": "External LiteLLM proxy connected through the bundled provider client."
193
+ },
194
+ {
195
+ "id": "local-memory-runtime",
196
+ "label": "Local Vector Memory",
197
+ "category": "runtime",
198
+ "delivery": "npm-addon",
199
+ "packageName": "@fased/local-memory-runtime",
200
+ "pluginId": "local-memory-runtime",
201
+ "restartRequired": true,
202
+ "docsPath": "/concepts/memory",
203
+ "surface": "Services > Components",
204
+ "description": "Optional native sqlite vector-search dependency."
205
+ },
206
+ {
207
+ "id": "local-memory-model",
208
+ "label": "Local Memory Embeddings",
209
+ "category": "runtime",
210
+ "delivery": "external-runtime",
211
+ "externalKind": "local-embeddings",
212
+ "docsPath": "/concepts/memory",
213
+ "surface": "Agent > Memory",
214
+ "description": "Optional node-llama-cpp runtime and GGUF embedding model."
215
+ },
216
+ {
217
+ "id": "media-runtime",
218
+ "label": "Media Runtime",
219
+ "category": "runtime",
220
+ "delivery": "npm-addon",
221
+ "packageName": "@fased/media-runtime",
222
+ "pluginId": "media-runtime",
223
+ "restartRequired": true,
224
+ "docsPath": "/nodes/media-understanding",
225
+ "surface": "Services > Components",
226
+ "description": "Optional image, file-type, and PDF processing dependencies."
227
+ },
228
+ {
229
+ "id": "speech-runtime",
230
+ "label": "Speech Runtime",
231
+ "category": "runtime",
232
+ "delivery": "npm-addon",
233
+ "packageName": "@fased/speech-runtime",
234
+ "pluginId": "speech-runtime",
235
+ "restartRequired": true,
236
+ "docsPath": "/tools/tts",
237
+ "surface": "Services > Components",
238
+ "description": "Optional local Edge TTS dependency."
239
+ }
240
+ ]
241
+ }
@@ -0,0 +1,130 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "groups": [
4
+ {
5
+ "id": "agent-core",
6
+ "label": "Agent Core",
7
+ "delivery": "core",
8
+ "target": "keep",
9
+ "dependencies": [
10
+ "@agentclientprotocol/sdk",
11
+ "@clack/prompts",
12
+ "@homebridge/ciao",
13
+ "@lydell/node-pty",
14
+ "@mariozechner/pi-agent-core",
15
+ "@mariozechner/pi-ai",
16
+ "@mariozechner/pi-coding-agent",
17
+ "@mariozechner/pi-tui",
18
+ "@modelcontextprotocol/sdk",
19
+ "@sinclair/typebox",
20
+ "ajv",
21
+ "chalk",
22
+ "chokidar",
23
+ "cli-highlight",
24
+ "commander",
25
+ "croner",
26
+ "dotenv",
27
+ "express",
28
+ "https-proxy-agent",
29
+ "ipaddr.js",
30
+ "jiti",
31
+ "json5",
32
+ "jszip",
33
+ "long",
34
+ "markdown-it",
35
+ "node-domexception",
36
+ "osc-progress",
37
+ "qrcode-terminal",
38
+ "tar",
39
+ "tslog",
40
+ "undici",
41
+ "ws",
42
+ "yaml",
43
+ "zod"
44
+ ]
45
+ },
46
+ {
47
+ "id": "crypto-core",
48
+ "label": "Wallet And Mining Core",
49
+ "delivery": "core",
50
+ "target": "keep",
51
+ "dependencies": ["@solana/web3.js"]
52
+ },
53
+ {
54
+ "id": "fased-network",
55
+ "label": "Fased Network",
56
+ "delivery": "core",
57
+ "target": "keep",
58
+ "dependencies": ["@fedify/fedify"]
59
+ },
60
+ {
61
+ "id": "provider-bedrock",
62
+ "label": "Amazon Bedrock Provider",
63
+ "delivery": "provider-addon",
64
+ "target": "extract",
65
+ "dependencies": []
66
+ },
67
+ {
68
+ "id": "provider-google",
69
+ "label": "Google Provider Compatibility",
70
+ "delivery": "provider-addon",
71
+ "target": "audit",
72
+ "dependencies": ["gaxios"]
73
+ },
74
+ {
75
+ "id": "advanced-channels",
76
+ "label": "Bundled LINE Channel",
77
+ "delivery": "channel-addon",
78
+ "target": "extract",
79
+ "dependencies": ["@line/bot-sdk"]
80
+ },
81
+ {
82
+ "id": "channel-feishu",
83
+ "label": "Feishu Channel",
84
+ "delivery": "channel-addon",
85
+ "target": "extract",
86
+ "packagePath": "extensions/feishu/package.json",
87
+ "dependencies": ["@larksuiteoapi/node-sdk", "@sinclair/typebox", "zod"]
88
+ },
89
+ {
90
+ "id": "channel-googlechat",
91
+ "label": "Google Chat Channel",
92
+ "delivery": "channel-addon",
93
+ "target": "extract",
94
+ "packagePath": "extensions/googlechat/package.json",
95
+ "dependencies": ["google-auth-library"]
96
+ },
97
+ {
98
+ "id": "browser-runtime",
99
+ "label": "Browser Runtime",
100
+ "delivery": "runtime-addon",
101
+ "target": "extract",
102
+ "packagePath": "extensions/runtime-browser/package.json",
103
+ "dependencies": ["@mozilla/readability", "linkedom", "playwright-core"]
104
+ },
105
+ {
106
+ "id": "media-runtime",
107
+ "label": "Media Runtime",
108
+ "delivery": "runtime-addon",
109
+ "target": "extract",
110
+ "packagePath": "extensions/runtime-media/package.json",
111
+ "dependencies": ["@napi-rs/canvas", "file-type", "pdfjs-dist", "sharp"]
112
+ },
113
+ {
114
+ "id": "speech-runtime",
115
+ "label": "Speech Runtime",
116
+ "delivery": "runtime-addon",
117
+ "target": "extract",
118
+ "packagePath": "extensions/runtime-speech/package.json",
119
+ "dependencies": ["node-edge-tts"]
120
+ },
121
+ {
122
+ "id": "local-memory",
123
+ "label": "Native Local Memory",
124
+ "delivery": "runtime-addon",
125
+ "target": "extract",
126
+ "packagePath": "extensions/runtime-local-memory/package.json",
127
+ "dependencies": ["sqlite-vec"]
128
+ }
129
+ ]
130
+ }
@@ -75,6 +75,45 @@
75
75
  "defaultChoice": "npm"
76
76
  }
77
77
  }
78
+ },
79
+ {
80
+ "name": "@fased/feishu",
81
+ "fased": {
82
+ "channel": {
83
+ "id": "feishu",
84
+ "label": "Feishu / Lark",
85
+ "selectionLabel": "Feishu/Lark",
86
+ "docsPath": "/channels/feishu",
87
+ "docsLabel": "feishu",
88
+ "blurb": "Feishu and Lark enterprise messaging with document and workspace tools.",
89
+ "aliases": ["lark"],
90
+ "order": 50,
91
+ "quickstartAllowFrom": true
92
+ },
93
+ "install": {
94
+ "npmSpec": "@fased/feishu",
95
+ "defaultChoice": "npm"
96
+ }
97
+ }
98
+ },
99
+ {
100
+ "name": "@fased/googlechat",
101
+ "fased": {
102
+ "channel": {
103
+ "id": "googlechat",
104
+ "label": "Google Chat",
105
+ "selectionLabel": "Google Chat (Chat API)",
106
+ "docsPath": "/channels/googlechat",
107
+ "docsLabel": "googlechat",
108
+ "blurb": "Google Workspace Chat app through verified HTTP webhooks.",
109
+ "aliases": ["gchat", "google-chat"],
110
+ "order": 60
111
+ },
112
+ "install": {
113
+ "npmSpec": "@fased/googlechat",
114
+ "defaultChoice": "npm"
115
+ }
116
+ }
78
117
  }
79
118
  ]
80
119
  }
@@ -1,3 +1,4 @@
1
+ import { loadLinkedom, loadReadability } from "../../browser/runtime-dependency.js";
1
2
  import { sanitizeHtml, stripInvisibleUnicode } from "./web-fetch-visibility.js";
2
3
 
3
4
  //#region src/agents/tools/web-fetch-utils.ts
@@ -6,7 +7,7 @@ const READABILITY_MAX_ESTIMATED_NESTING_DEPTH = 3e3;
6
7
  let readabilityDepsPromise;
7
8
  async function loadReadabilityDeps() {
8
9
  if (!readabilityDepsPromise) {
9
- readabilityDepsPromise = Promise.all([import("@mozilla/readability"), import("linkedom")]).then(([readability, linkedom]) => ({
10
+ readabilityDepsPromise = Promise.all([loadReadability(), loadLinkedom()]).then(([readability, linkedom]) => ({
10
11
  Readability: readability.Readability,
11
12
  parseHTML: linkedom.parseHTML
12
13
  }));
@@ -1,3 +1,5 @@
1
+ import { loadLinkedom } from "../../browser/runtime-dependency.js";
2
+
1
3
  //#region src/agents/tools/web-fetch-visibility.ts
2
4
  const HIDDEN_STYLE_PATTERNS = [
3
5
  ["display", /^\s*none\s*$/i],
@@ -100,7 +102,7 @@ async function sanitizeHtml(html) {
100
102
  let sanitized = html.replace(/<!--[\s\S]*?-->/g, "");
101
103
  let document;
102
104
  try {
103
- const { parseHTML } = await import("linkedom");
105
+ const { parseHTML } = await loadLinkedom();
104
106
  ({document} = parseHTML(sanitized));
105
107
  } catch {
106
108
  return sanitized;
package/dist/brand.js CHANGED
@@ -2,7 +2,7 @@
2
2
  const FASED_BRAND_NAME = "Fased";
3
3
  const FASED_AGENT_NAME = "Fased Agent";
4
4
  const FASED_CONTROL_NAME = "Fased Control";
5
- const FASED_PRODUCT_VERSION = "0.1.36";
5
+ const FASED_PRODUCT_VERSION = "0.1.38";
6
6
  const FASED_DISPLAY_VERSION = `v${FASED_PRODUCT_VERSION}`;
7
7
  function formatFasedDisplayLine() {
8
8
  return `${FASED_AGENT_NAME} ${FASED_DISPLAY_VERSION}`;
@@ -3,7 +3,7 @@ import { appendCdpPath, fetchJson, getHeadersWithAuth, withCdpSocket } from "./c
3
3
  import { assertBrowserNavigationAllowed, assertBrowserNavigationResultAllowed, withBrowserNavigationPolicy } from "./navigation-guard.js";
4
4
  import { normalizeCdpWsUrl } from "./cdp.js";
5
5
  import { getChromeWebSocketUrl } from "./chrome.js";
6
- import { chromium } from "playwright-core";
6
+ import { loadPlaywrightCore } from "./runtime-dependency.js";
7
7
 
8
8
  //#region src/browser/pw-session.ts
9
9
  const pageStates = new WeakMap();
@@ -205,6 +205,7 @@ async function connectBrowser(cdpUrl) {
205
205
  return await connecting;
206
206
  }
207
207
  const connectWithRetry = async () => {
208
+ const { chromium } = await loadPlaywrightCore();
208
209
  let lastErr;
209
210
  for (let attempt = 0; attempt < 3; attempt += 1) {
210
211
  try {
@@ -1,5 +1,5 @@
1
+ import { loadPlaywrightCore } from "./runtime-dependency.js";
1
2
  import { ensurePageState, getPageForTargetId } from "./pw-session.js";
2
- import { devices } from "playwright-core";
3
3
 
4
4
  //#region src/browser/pw-tools-core.state.ts
5
5
  async function withCdpSession(page, fn) {
@@ -117,7 +117,8 @@ async function setDeviceViaPlaywright(opts) {
117
117
  if (!name) {
118
118
  throw new Error("device name is required");
119
119
  }
120
- const descriptor = devices[name];
120
+ const { devices: playwrightDevices } = await loadPlaywrightCore();
121
+ const descriptor = playwrightDevices[name];
121
122
  if (!descriptor) {
122
123
  throw new Error(`Unknown device "${name}".`);
123
124
  }
@@ -0,0 +1,27 @@
1
+ import { importOptionalRuntimeDependency } from "../infra/optional-runtime-dependency.js";
2
+
3
+ //#region src/browser/runtime-dependency.ts
4
+ async function loadPlaywrightCore() {
5
+ return await importOptionalRuntimeDependency({
6
+ componentId: "browser-runtime",
7
+ packageName: "@fased/browser-runtime",
8
+ dependency: "playwright-core"
9
+ });
10
+ }
11
+ async function loadReadability() {
12
+ return await importOptionalRuntimeDependency({
13
+ componentId: "browser-runtime",
14
+ packageName: "@fased/browser-runtime",
15
+ dependency: "@mozilla/readability"
16
+ });
17
+ }
18
+ async function loadLinkedom() {
19
+ return await importOptionalRuntimeDependency({
20
+ componentId: "browser-runtime",
21
+ packageName: "@fased/browser-runtime",
22
+ dependency: "linkedom"
23
+ });
24
+ }
25
+
26
+ //#endregion
27
+ export { loadLinkedom, loadPlaywrightCore, loadReadability };
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.36",
3
- "commit": "ebeca5d94f9862be4209830435a42180a5abe3e5",
4
- "builtAt": "2026-07-10T13:41:37.971Z"
2
+ "version": "0.1.38",
3
+ "commit": "68d9d1e95f7fb0b92a327631dae5f0bb4221ec2f",
4
+ "builtAt": "2026-07-10T19:08:10.142Z"
5
5
  }
@@ -1 +1 @@
1
- 5363c344b9dfd36b8357f73255661b597de82164350ffaa54267f7ec7e58ac79
1
+ d91da5fc7935c5d64a96871c12c0f9f54ab7c949c1edb6d966a4df86dbf6f149