@fased/fased 0.1.7 → 0.1.8

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 (200) hide show
  1. package/dist/{agents-BXU9IcWH.js → agents-DwCO6NnA.js} +8 -8
  2. package/dist/{attachment-normalize-x4Ux17as.js → attachment-normalize-BThHHmYi.js} +1 -1
  3. package/dist/{attachment-normalize-DKH1oE8s.js → attachment-normalize-pIK6rDHb.js} +1 -1
  4. package/dist/{audio-preflight-CvaoCA_8.js → audio-preflight-BmenqREC.js} +2 -2
  5. package/dist/{audio-preflight-DBgIlNKd.js → audio-preflight-CtzbNnfZ.js} +2 -2
  6. package/dist/{audio-preflight-BEQG8UFz.js → audio-preflight-Cu868f1k.js} +2 -2
  7. package/dist/{audio-preflight-BxGl0Qnk.js → audio-preflight-D62-CT4N.js} +1 -1
  8. package/dist/{audio-preflight-BdetVpLT.js → audio-preflight-DA8SrvM2.js} +1 -1
  9. package/dist/{audit-CuMeLD52.js → audit-BxHRQIN8.js} +1 -1
  10. package/dist/{audit-B-qrO0Wn.js → audit-CnK7wIm9.js} +1 -1
  11. package/dist/{auth-DFd6xNTa.js → auth-BMdDuztj.js} +5 -5
  12. package/dist/{auth-choice-C7OWIYZu.js → auth-choice-CHRs2Rw9.js} +1 -1
  13. package/dist/{auth-choice-DHR5p1_0.js → auth-choice-DBjNH_BP.js} +1 -1
  14. package/dist/{auth-choice-prompt-CT1bnaSn.js → auth-choice-prompt-DfXNL21h.js} +1 -1
  15. package/dist/{auth-choice-prompt-CRA7hqZR.js → auth-choice-prompt-Du2-OcAs.js} +1 -1
  16. package/dist/build-info.json +3 -3
  17. package/dist/bundled/boot-md/handler.js +2 -2
  18. package/dist/bundled/session-memory/handler.js +2 -2
  19. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  20. package/dist/{channel-web-BuE6HFqd.js → channel-web-BepAvz_s.js} +1 -1
  21. package/dist/{channel-web-CWkkek7A.js → channel-web-D77vS1iO.js} +1 -1
  22. package/dist/{channels-BjMs_PdQ.js → channels-B_BjON4x.js} +6 -6
  23. package/dist/{channels-cli-DFU1jl6H.js → channels-cli-Bpl1dmDv.js} +5 -5
  24. package/dist/{channels-cli-BhEfQtHV.js → channels-cli-DtbctFlt.js} +5 -5
  25. package/dist/{channels-hZ0HwkI-.js → channels-iZ-YYQTu.js} +6 -6
  26. package/dist/cli/daemon-cli.js +1 -1
  27. package/dist/{cli-CH7SWVF0.js → cli-BKsYOtC-.js} +2 -2
  28. package/dist/{cli-DzWCT00p.js → cli-DncjAPd-.js} +2 -2
  29. package/dist/{command-registry-Bjddtanz.js → command-registry-DCkbELqY.js} +9 -9
  30. package/dist/{completion-cli-BtcwDFkI.js → completion-cli-CDWe7E4Q.js} +2 -2
  31. package/dist/{completion-cli-BhApWwF3.js → completion-cli-D1YzzbFH.js} +1 -1
  32. package/dist/{config-cli-BzcLANMJ.js → config-cli-5wBMglIp.js} +1 -1
  33. package/dist/{config-cli--kWGlPId.js → config-cli-CKxgXXJn.js} +1 -1
  34. package/dist/{configure-CpmXNC6S.js → configure-BSagvCQi.js} +12 -12
  35. package/dist/{configure-DyRoNyva.js → configure-tjnZoHbH.js} +12 -12
  36. package/dist/control-ui/assets/app-wpJSg6bV.js.map +1 -1
  37. package/dist/{cron-cli-M5m8r5Ks.js → cron-cli-Cair4mxk.js} +2 -2
  38. package/dist/{cron-cli-E0sJDbQC.js → cron-cli-D8WuN_MW.js} +2 -2
  39. package/dist/{daemon-cli-YqLiZbHd.js → daemon-cli-Bk9izNkp.js} +1 -1
  40. package/dist/{daemon-cli-CpPhdBu_.js → daemon-cli-u83GPvJb.js} +1 -1
  41. package/dist/daemon-cli.js +1 -1
  42. package/dist/{deps-Bhe7tE5b.js → deps-CXL0cKfx.js} +1 -1
  43. package/dist/{deps-Cf8AO2Jl.js → deps-CkKBKwiW.js} +1 -1
  44. package/dist/entry.js +1 -1
  45. package/dist/extensionAPI.js +1 -1
  46. package/dist/{gateway-cli-Dyi-0jB7.js → gateway-cli-BecFFnkx.js} +27 -27
  47. package/dist/{gateway-cli-Bm4oEILk.js → gateway-cli-CIPA5kfD.js} +27 -27
  48. package/dist/{health-B0ocd5_7.js → health-C4tIs4co.js} +2 -2
  49. package/dist/{health-BR3YdW7e.js → health-CigJCcxc.js} +2 -2
  50. package/dist/{heartbeat-runner-DG4lxaMi.js → heartbeat-runner-BfNtAkhj.js} +1 -1
  51. package/dist/{heartbeat-runner-BxEr5p-B.js → heartbeat-runner-BxJRI-ok.js} +1 -1
  52. package/dist/{hooks-cli-CcYi6Meg.js → hooks-cli-DOPq-2S9.js} +3 -3
  53. package/dist/{hooks-cli-DAwTxXol.js → hooks-cli-DVDhSqfA.js} +3 -3
  54. package/dist/index.js +7 -7
  55. package/dist/{ipv4-B66XuVF2.js → ipv4-7GxPQU1a.js} +2 -2
  56. package/dist/{ipv4-D-YfF_6B.js → ipv4-B3Lf_nah.js} +2 -2
  57. package/dist/{lifecycle-BdgmCwOH.js → lifecycle-DyTUqkfI.js} +1 -1
  58. package/dist/{lifecycle-DYLCSzbm.js → lifecycle-duGb--MA.js} +1 -1
  59. package/dist/{list.auth-overview-DdJbVRca.js → list.auth-overview-DPErLb6u.js} +1 -1
  60. package/dist/{list.auth-overview-BvYVlQtn.js → list.auth-overview-Dm5I_0EV.js} +1 -1
  61. package/dist/llm-slug-generator.js +2 -2
  62. package/dist/{model-catalog-lQaOfBE-.js → model-catalog-B2p9s4Er.js} +6 -6
  63. package/dist/{models-cli-DHt1kVgh.js → models-cli-BF-p0H_t.js} +4 -4
  64. package/dist/{models-cli-DFD-1f3D.js → models-cli-C41-F2sc.js} +5 -5
  65. package/dist/{models-B9J_ISvy.js → models-qmUJnK7w.js} +4 -4
  66. package/dist/{node-cli-f8fszkMt.js → node-cli-BqxqWjp6.js} +2 -2
  67. package/dist/{node-cli-L1DolFeK.js → node-cli-vZn4fYEF.js} +2 -2
  68. package/dist/{onboard-DypY_GcI.js → onboard-CQL8Muxf.js} +6 -6
  69. package/dist/{onboard-channels-D70mVu4u.js → onboard-channels-61p02q6d.js} +2 -2
  70. package/dist/{onboard-channels-CNR5vpem.js → onboard-channels-BhdodRRF.js} +2 -2
  71. package/dist/{onboard-search-D1UMq97d.js → onboard-search-BstGI4Dp.js} +5 -5
  72. package/dist/{onboard-search-D7qJeTpU.js → onboard-search-DgmS5zLq.js} +5 -5
  73. package/dist/{onboard-BpMyfmxm.js → onboard-w2VmKfGS.js} +6 -6
  74. package/dist/{onboarding-IQNYxMZv.js → onboarding-BspKdGse.js} +7 -7
  75. package/dist/{onboarding-BN0l0fEG.js → onboarding-eTXlIMDl.js} +7 -7
  76. package/dist/{openresponses-http-OG-PTsfj.js → openresponses-http-BEAQXjSc.js} +1 -1
  77. package/dist/{openresponses-http-Ca_VkkUO.js → openresponses-http-CtIzhBuO.js} +2 -2
  78. package/dist/{openresponses-http-DRoxNJDn.js → openresponses-http-DyOJG_Ah.js} +2 -2
  79. package/dist/{openresponses-http-DmUn-sBq.js → openresponses-http-V_kiD0Nv.js} +1 -1
  80. package/dist/{openresponses-http-BWaEyxbw.js → openresponses-http-uJ_W4xvc.js} +2 -2
  81. package/dist/{parent-default-help-nQkLN59s.js → parent-default-help-BNl8PCBb.js} +1 -1
  82. package/dist/{parent-default-help-C4hFBYdp.js → parent-default-help-CzTYW-j9.js} +1 -1
  83. package/dist/{paths-u2LpgAgg.js → paths-Dy-XkwXd.js} +9 -9
  84. package/dist/{pi-embedded-Cgz0aF7F.js → pi-embedded-CVNzMh8u.js} +14 -14
  85. package/dist/{pi-embedded-C0-jaJQC.js → pi-embedded-CiKHoPuO.js} +5 -5
  86. package/dist/{plugin-registry-kvu2vTlI.js → plugin-registry-BNUW2v4j.js} +1 -1
  87. package/dist/{plugin-registry-BjAcamlw.js → plugin-registry-D_YGIUAK.js} +1 -1
  88. package/dist/plugin-sdk/{audio-preflight-NoLY3lFb.js → audio-preflight-Blpcv1f2.js} +1 -1
  89. package/dist/plugin-sdk/{audio-preflight-BXKoMvE4.js → audio-preflight-DxXxOX_-.js} +1 -1
  90. package/dist/plugin-sdk/channel-plugin-common.js +1 -1
  91. package/dist/plugin-sdk/{channel-web-CUD1tjTH.js → channel-web-Dkkw7jD3.js} +1 -1
  92. package/dist/plugin-sdk/command-status.js +1 -1
  93. package/dist/plugin-sdk/index.js +2 -2
  94. package/dist/plugin-sdk/{openresponses-http-BCtIUgJw.js → openresponses-http-C3sKJy0s.js} +1 -1
  95. package/dist/plugin-sdk/{openresponses-http-DGjl6tRS.js → openresponses-http-D2MCAX-U.js} +1 -1
  96. package/dist/plugin-sdk/{pi-model-discovery-runtime-CtHwbtuL.js → pi-model-discovery-runtime-CH-CO0X9.js} +1 -1
  97. package/dist/plugin-sdk/{registry-Cobn8xFK.js → registry-DM7FXZZa.js} +8 -8
  98. package/dist/plugin-sdk/{reply-CW_RclRx.js → reply-Cc_88l-g.js} +5 -5
  99. package/dist/plugin-sdk/src/brand.d.ts +2 -2
  100. package/dist/plugin-sdk/{status-BGqZJhO9.js → status-Nui317wc.js} +5 -5
  101. package/dist/plugin-sdk/{web-CAhsmUFC.js → web-PczC1Ak6.js} +2 -2
  102. package/dist/plugin-sdk/{web-BcubWWyi.js → web-_l4wf5nP.js} +1 -1
  103. package/dist/{plugins-cli-Dmll6xIT.js → plugins-cli-D81hxuh9.js} +5 -5
  104. package/dist/{plugins-cli-o9k6u4OW.js → plugins-cli-nknuRmvs.js} +5 -5
  105. package/dist/{program-6lOdYKR9.js → program-BQpiZH21.js} +7 -7
  106. package/dist/{program-context-C42FCMNW.js → program-context-B0x4BUV8.js} +24 -24
  107. package/dist/{prompt-select-styled-DlC6cyby.js → prompt-select-styled-BV1aj5gS.js} +4 -4
  108. package/dist/{prompt-select-styled-B2dC3tHt.js → prompt-select-styled-BtpiSheR.js} +4 -4
  109. package/dist/{pw-ai-CnqTC4jE.js → pw-ai-6QaP0hPt.js} +1 -1
  110. package/dist/{register.agent-DC6MKUEL.js → register.agent-BsmSx_pm.js} +9 -9
  111. package/dist/{register.agent-DnOZLI3p.js → register.agent-CO8q2hFB.js} +8 -8
  112. package/dist/{register.configure-CnGpcmyF.js → register.configure-Bq7iYj-x.js} +12 -12
  113. package/dist/{register.configure-Cd0rOLe3.js → register.configure-DfaqxWBT.js} +12 -12
  114. package/dist/{register.maintenance-BEpc0bUS.js → register.maintenance-D1iDNjQk.js} +9 -9
  115. package/dist/{register.maintenance-B0BE5jt1.js → register.maintenance-Q-UtYMNq.js} +8 -8
  116. package/dist/{register.message-CrN4JbEz.js → register.message-B8bjpucd.js} +3 -3
  117. package/dist/{register.message-BvvKjnSX.js → register.message-DljE3-Mf.js} +3 -3
  118. package/dist/{register.onboard-iqLNTLjC.js → register.onboard-BZTz7PYj.js} +14 -14
  119. package/dist/{register.onboard-Bwt9lm1m.js → register.onboard-CtolofNY.js} +14 -14
  120. package/dist/{register.setup-CB_R0h_V.js → register.setup-B4fpM_01.js} +14 -14
  121. package/dist/{register.setup-EmqOYKK2.js → register.setup-DVlK2U2T.js} +14 -14
  122. package/dist/{register.status-health-sessions-BoBTAeqV.js → register.status-health-sessions-QrAzuMof.js} +6 -6
  123. package/dist/{register.status-health-sessions-DClbfNjH.js → register.status-health-sessions-eOxTUk6p.js} +6 -6
  124. package/dist/{register.subclis-BF4_0JMU.js → register.subclis-BmxHrVY8.js} +16 -16
  125. package/dist/{reply-CX9VPlln.js → reply-D-tBbqAr.js} +6 -6
  126. package/dist/{run-main-CThaWUvV.js → run-main-CCbbX6Qw.js} +14 -14
  127. package/dist/{runtime-helper-grants-BufIO2tr.js → runtime-helper-grants-BfdCLaEe.js} +1 -1
  128. package/dist/{runtime-helper-grants-C0Mk9r5E.js → runtime-helper-grants-CCSEkpWg.js} +1 -1
  129. package/dist/{sandbox-cli-BReFF5oT.js → sandbox-cli-BhYOk9T3.js} +2 -2
  130. package/dist/{sandbox-cli-UBjaU6i2.js → sandbox-cli-C0BGxMgU.js} +2 -2
  131. package/dist/{security-cli-CkZVXeiw.js → security-cli-Cejk5K5y.js} +3 -3
  132. package/dist/{security-cli-DxaQKA7Y.js → security-cli-kV0FmrPZ.js} +3 -3
  133. package/dist/{server-umfRB3x2.js → server-Dxnx0w2b.js} +2 -2
  134. package/dist/{server-Cs8KPjZX.js → server-aQ9Lrqxm.js} +2 -2
  135. package/dist/{server-cron-pNyieu85.js → server-cron-Lrd-82-a.js} +2 -2
  136. package/dist/{server-cron-Zy8cb8ks.js → server-cron-MwapLJj6.js} +2 -2
  137. package/dist/{server-node-events-BW4Vf7BE.js → server-node-events-Byb1U0WO.js} +3 -3
  138. package/dist/{server-node-events-D1JnvYov.js → server-node-events-CJJ7DvNR.js} +3 -3
  139. package/dist/{status-BygLTNLr.js → status-BmRiaP4X.js} +1 -1
  140. package/dist/{status-y-sppr84.js → status-C2w0aknQ.js} +4 -4
  141. package/dist/{status-C6emRuFP.js → status-CZ0kM1xe.js} +4 -4
  142. package/dist/{status-il3OytTW.js → status-sghOLKoX.js} +1 -1
  143. package/dist/{tui-o8BG_MAy.js → tui-BmU34PW9.js} +1 -1
  144. package/dist/{tui-Bn8TEK1I.js → tui-ChKdGdIF.js} +1 -1
  145. package/dist/{tui-cli-BLed1oLd.js → tui-cli-CjtzTERS.js} +3 -3
  146. package/dist/{tui-cli-B5shx16M.js → tui-cli-qkfrOHyR.js} +3 -3
  147. package/dist/{update-cli-858O3DKh.js → update-cli-Bnaq9gX-.js} +9 -9
  148. package/dist/{update-cli-B9YL3uQz.js → update-cli-qeDwPrcW.js} +10 -10
  149. package/dist/{update-runner-Bm6TX818.js → update-runner-BKNdPQ9w.js} +1 -1
  150. package/dist/{update-runner-DvVKP6XV.js → update-runner-BzxFJ9rs.js} +1 -1
  151. package/dist/{web-7_9qLuyz.js → web-B9li-kqJ.js} +1 -1
  152. package/dist/{web-BdFDJyKO.js → web-BY54D29H.js} +3 -3
  153. package/dist/{web-Dy_9_uro.js → web-Ch89cdSv.js} +3 -3
  154. package/dist/{web-5lMv14Xu.js → web-DGRSjCdp.js} +2 -2
  155. package/dist/{web-C88SAD-E.js → web-dfcINNyN.js} +1 -1
  156. package/dist/{web-search-providers.runtime-BeOSV7m5.js → web-search-providers.runtime-DMmCCAlM.js} +1 -1
  157. package/dist/{web-search-providers.runtime-CaR9nIKX.js → web-search-providers.runtime-DTPUP8Hn.js} +1 -1
  158. package/extensions/acpx/package.json +1 -1
  159. package/extensions/bluebubbles/package.json +1 -1
  160. package/extensions/copilot-proxy/package.json +1 -1
  161. package/extensions/diagnostics-otel/package.json +1 -1
  162. package/extensions/discord/package.json +1 -1
  163. package/extensions/fased-federation/package.json +1 -1
  164. package/extensions/feishu/package.json +1 -1
  165. package/extensions/google-gemini-cli-auth/package.json +1 -1
  166. package/extensions/googlechat/package.json +1 -1
  167. package/extensions/imessage/package.json +1 -1
  168. package/extensions/irc/package.json +1 -1
  169. package/extensions/line/package.json +1 -1
  170. package/extensions/llm-task/package.json +1 -1
  171. package/extensions/lobster/package.json +1 -1
  172. package/extensions/matrix/CHANGELOG.md +6 -0
  173. package/extensions/matrix/package.json +1 -1
  174. package/extensions/mattermost/package.json +1 -1
  175. package/extensions/memory-core/package.json +1 -1
  176. package/extensions/memory-lancedb/package.json +1 -1
  177. package/extensions/minimax-portal-auth/package.json +1 -1
  178. package/extensions/msteams/CHANGELOG.md +6 -0
  179. package/extensions/msteams/package.json +1 -1
  180. package/extensions/nextcloud-talk/package.json +1 -1
  181. package/extensions/nostr/CHANGELOG.md +6 -0
  182. package/extensions/nostr/package.json +1 -1
  183. package/extensions/open-prose/package.json +1 -1
  184. package/extensions/sat-mining/package.json +1 -1
  185. package/extensions/signal/package.json +1 -1
  186. package/extensions/slack/package.json +1 -1
  187. package/extensions/synology-chat/package.json +1 -1
  188. package/extensions/telegram/package.json +1 -1
  189. package/extensions/tlon/package.json +1 -1
  190. package/extensions/twitch/CHANGELOG.md +6 -0
  191. package/extensions/twitch/package.json +1 -1
  192. package/extensions/voice-call/CHANGELOG.md +6 -0
  193. package/extensions/voice-call/package.json +1 -1
  194. package/extensions/whatsapp/package.json +1 -1
  195. package/extensions/zalo/CHANGELOG.md +6 -0
  196. package/extensions/zalo/package.json +1 -1
  197. package/extensions/zalouser/CHANGELOG.md +6 -0
  198. package/extensions/zalouser/package.json +1 -1
  199. package/package.json +2 -1
  200. package/scripts/fased-launcher-runtime.mjs +141 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/open-prose",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "private": true,
5
5
  "description": "OpenProse VM skill pack plugin (slash command + telemetry).",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/sat-mining",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "private": true,
5
5
  "description": "SAT mining plugin scaffold for FasedAgent",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/signal",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "private": true,
5
5
  "description": "FasedAgent Signal channel plugin",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/slack",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "private": true,
5
5
  "description": "FasedAgent Slack channel plugin",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/synology-chat",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "Synology Chat channel plugin for FasedAgent",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/telegram",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "private": true,
5
5
  "description": "FasedAgent Telegram channel plugin",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/tlon",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "FasedAgent Tlon/Urbit channel plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.8
4
+
5
+ ### Changes
6
+
7
+ - Version alignment with core FasedAgent release numbers.
8
+
3
9
  ## 0.1.7
4
10
 
5
11
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/twitch",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "FasedAgent Twitch channel plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.8
4
+
5
+ ### Changes
6
+
7
+ - Version alignment with core FasedAgent release numbers.
8
+
3
9
  ## 0.1.7
4
10
 
5
11
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/voice-call",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "FasedAgent voice-call plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/whatsapp",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "private": true,
5
5
  "description": "FasedAgent WhatsApp channel plugin",
6
6
  "type": "module",
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.8
4
+
5
+ ### Changes
6
+
7
+ - Version alignment with core FasedAgent release numbers.
8
+
3
9
  ## 0.1.7
4
10
 
5
11
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/zalo",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "FasedAgent Zalo channel plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.8
4
+
5
+ ### Changes
6
+
7
+ - Version alignment with core FasedAgent release numbers.
8
+
3
9
  ## 0.1.7
4
10
 
5
11
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/zalouser",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "FasedAgent Zalo Personal Account plugin via zca-cli",
5
5
  "type": "module",
6
6
  "dependencies": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fased/fased",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "Fased Agent self-hosted AI gateway with channels, tools, plugins, and operator modules",
5
5
  "keywords": [
6
6
  "ai-agent",
@@ -37,6 +37,7 @@
37
37
  "dist/",
38
38
  "docs/",
39
39
  "extensions/",
40
+ "scripts/fased-launcher-runtime.mjs",
40
41
  "skills/"
41
42
  ],
42
43
  "type": "module",
@@ -0,0 +1,141 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import fs from "node:fs";
3
+ import module from "node:module";
4
+ import path from "node:path";
5
+ import process from "node:process";
6
+
7
+ const defaultRequire = module.createRequire(import.meta.url);
8
+
9
+ export const parseNodeVersion = (version) => {
10
+ const match = String(version ?? "").match(/^v?(\d+)\.(\d+)\.(\d+)/);
11
+ if (!match) {
12
+ return null;
13
+ }
14
+ return {
15
+ major: Number.parseInt(match[1], 10),
16
+ minor: Number.parseInt(match[2], 10),
17
+ patch: Number.parseInt(match[3], 10),
18
+ };
19
+ };
20
+
21
+ export const nodeVersionAllowed = (version) => {
22
+ const parsed = parseNodeVersion(version);
23
+ if (!parsed) {
24
+ return false;
25
+ }
26
+ if (parsed.major > 22) {
27
+ return true;
28
+ }
29
+ return parsed.major === 22 && parsed.minor >= 14;
30
+ };
31
+
32
+ export const currentNodeCanRunFased = ({
33
+ nodeVersion = process.versions?.node,
34
+ requireFn = defaultRequire,
35
+ } = {}) => {
36
+ if (!nodeVersionAllowed(nodeVersion)) {
37
+ return false;
38
+ }
39
+ try {
40
+ requireFn("node:sqlite");
41
+ return true;
42
+ } catch {
43
+ return false;
44
+ }
45
+ };
46
+
47
+ export const nodeCandidateCanRunFased = (candidate, { spawnSyncImpl = spawnSync } = {}) => {
48
+ const probe = [
49
+ "const v=process.versions.node.split('.').map(Number);",
50
+ "if (!(v[0] > 22 || (v[0] === 22 && v[1] >= 14))) process.exit(1);",
51
+ "require('node:sqlite');",
52
+ ].join("");
53
+ const result = spawnSyncImpl(candidate, ["-e", probe], { stdio: "ignore" });
54
+ return result.status === 0;
55
+ };
56
+
57
+ export const compareNodeVersionDesc = (a, b) => {
58
+ const av = parseNodeVersion(a) ?? { major: 0, minor: 0, patch: 0 };
59
+ const bv = parseNodeVersion(b) ?? { major: 0, minor: 0, patch: 0 };
60
+ return bv.major - av.major || bv.minor - av.minor || bv.patch - av.patch;
61
+ };
62
+
63
+ export const collectNvmNodeCandidates = ({
64
+ env = process.env,
65
+ fsImpl = fs,
66
+ pathImpl = path,
67
+ } = {}) => {
68
+ const versionsDir = env.HOME ? pathImpl.join(env.HOME, ".nvm", "versions", "node") : "";
69
+ if (!versionsDir) {
70
+ return [];
71
+ }
72
+ let entries = [];
73
+ try {
74
+ entries = fsImpl.readdirSync(versionsDir, { withFileTypes: true });
75
+ } catch {
76
+ return [];
77
+ }
78
+ return entries
79
+ .filter((entry) => entry.isDirectory() && parseNodeVersion(entry.name))
80
+ .map((entry) => entry.name)
81
+ .toSorted(compareNodeVersionDesc)
82
+ .map((versionDir) => pathImpl.join(versionsDir, versionDir, "bin", "node"));
83
+ };
84
+
85
+ export const uniqueNodeCandidates = ({
86
+ env = process.env,
87
+ execPath = process.execPath,
88
+ fsImpl = fs,
89
+ pathImpl = path,
90
+ } = {}) => {
91
+ const candidates = [
92
+ env.FASED_NODE,
93
+ ...collectNvmNodeCandidates({ env, fsImpl, pathImpl }),
94
+ "/opt/homebrew/bin/node",
95
+ "/usr/local/bin/node",
96
+ "/usr/bin/node",
97
+ ].filter((candidate) => typeof candidate === "string" && candidate.trim());
98
+ const seen = new Set();
99
+ const out = [];
100
+ for (const candidate of candidates) {
101
+ const normalized = pathImpl.resolve(candidate);
102
+ if (normalized === execPath || seen.has(normalized)) {
103
+ continue;
104
+ }
105
+ seen.add(normalized);
106
+ if (fsImpl.existsSync(normalized)) {
107
+ out.push(normalized);
108
+ }
109
+ }
110
+ return out;
111
+ };
112
+
113
+ export const reexecWithSupportedNodeIfNeeded = ({
114
+ argv = process.argv,
115
+ env = process.env,
116
+ execPath = process.execPath,
117
+ exit = (code) => process.exit(code),
118
+ fsImpl = fs,
119
+ nodeVersion = process.versions?.node,
120
+ pathImpl = path,
121
+ requireFn = defaultRequire,
122
+ selfPath,
123
+ spawnSyncImpl = spawnSync,
124
+ } = {}) => {
125
+ if (env.FASED_RUNTIME_REEXEC === "1" || currentNodeCanRunFased({ nodeVersion, requireFn })) {
126
+ return;
127
+ }
128
+ for (const candidate of uniqueNodeCandidates({ env, execPath, fsImpl, pathImpl })) {
129
+ if (!nodeCandidateCanRunFased(candidate, { spawnSyncImpl })) {
130
+ continue;
131
+ }
132
+ const result = spawnSyncImpl(candidate, [selfPath, ...argv.slice(2)], {
133
+ stdio: "inherit",
134
+ env: { ...env, FASED_RUNTIME_REEXEC: "1" },
135
+ });
136
+ if (result.error) {
137
+ continue;
138
+ }
139
+ exit(result.status ?? 1);
140
+ }
141
+ };