squidclaw 3.3.1 → 3.3.3

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 (162) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{audio-preflight-BSsGMMaR.js → audio-preflight-B5XvcdFX.js} +4 -4
  3. package/dist/{audio-transcription-runner-BUC9KMTa.js → audio-transcription-runner-DUC0ItDY.js} +1 -1
  4. package/dist/build-info.json +3 -3
  5. package/dist/bundled/boot-md/handler.js +6 -6
  6. package/dist/bundled/session-memory/handler.js +6 -6
  7. package/dist/canvas-host/a2ui/a2ui.bundle.js +1 -1
  8. package/dist/{chrome-B-c9WuZW.js → chrome-BTwG9Gvh.js} +8 -8
  9. package/dist/{command-registry-8dFoJNwF.js → command-registry-okNPqigX.js} +4 -4
  10. package/dist/{completion-cli-DXKg2zHx.js → completion-cli-C_kX-zqx.js} +2 -2
  11. package/dist/{completion-cli-BLY0f3DS.js → completion-cli-DMPoKYSD.js} +1 -1
  12. package/dist/control-ui/assets/{index-BqxuPQOl.js → index-Bb5MB8jH.js} +358 -358
  13. package/dist/control-ui/assets/index-Bb5MB8jH.js.map +1 -0
  14. package/dist/control-ui/index.html +1 -1
  15. package/dist/{deliver-cyA5bLhi.js → deliver-DZCNXFM8.js} +1 -1
  16. package/dist/{deliver-runtime-BVu0kgJH.js → deliver-runtime-BJoBkkm_.js} +3 -3
  17. package/dist/{deps-send-whatsapp.runtime-BKbax18q.js → deps-send-whatsapp.runtime-CO3zaqTI.js} +7 -7
  18. package/dist/{doctor-completion-kjDYgxZk.js → doctor-completion-D6js0phx.js} +1 -1
  19. package/dist/{doctor-completion-B4EOgAHX.js → doctor-completion-Dzzgvaw-.js} +1 -1
  20. package/dist/entry.js +2 -2
  21. package/dist/{gateway-cli-7hy6G1el.js → gateway-cli-C_bDC15s.js} +1 -1
  22. package/dist/{gateway-cli-lvhI_G2p.js → gateway-cli-DZSjLGTJ.js} +1 -1
  23. package/dist/{image-DNaaTm7C.js → image-COAbpp2B.js} +1 -1
  24. package/dist/{image-runtime-DzKlwROz.js → image-runtime-Dkwf1-U3.js} +3 -3
  25. package/dist/index.js +1 -1
  26. package/dist/llm-slug-generator.js +6 -6
  27. package/dist/{onboard-CNVVt7F3.js → onboard-CaDp4p48.js} +1 -1
  28. package/dist/{onboard-BP7rTtCO.js → onboard-qnQqEy5h.js} +1 -1
  29. package/dist/{onboarding-DQa8M7Fx.js → onboarding-D1z3JAaB.js} +1 -1
  30. package/dist/{onboarding-LbGi6oDz.js → onboarding-mo7rwJC-.js} +1 -1
  31. package/dist/{onboarding.finalize-D6qUa-0y.js → onboarding.finalize-CWzwBDG8.js} +67 -21
  32. package/dist/{onboarding.finalize-CWcaxeIO.js → onboarding.finalize-D8igsmtY.js} +66 -20
  33. package/dist/{pi-embedded-B0Fw5lST.js → pi-embedded-BKtpY3e4.js} +24 -24
  34. package/dist/{pi-embedded-helpers-DL-PzuCP.js → pi-embedded-helpers-1Z1aUoto.js} +3 -3
  35. package/dist/plugin-sdk/{accounts-ByCKM_Y3.js → accounts-BChIl5as.js} +2 -2
  36. package/dist/plugin-sdk/{accounts-BLOLIF6Q.js → accounts-BhCAa-05.js} +2 -2
  37. package/dist/plugin-sdk/{accounts-BvzvDHNx.js → accounts-DKXGC2Vu.js} +3 -3
  38. package/dist/plugin-sdk/{active-listener-Ccj2fSCa.js → active-listener-TTbK9PGk.js} +2 -2
  39. package/dist/plugin-sdk/{api-key-rotation-0Xm0okk5.js → api-key-rotation-BqhYVBBK.js} +2 -2
  40. package/dist/plugin-sdk/{audio-preflight-B_pcDw8d.js → audio-preflight-DAf0ptAM.js} +26 -26
  41. package/dist/plugin-sdk/{audio-transcription-runner-u6tijzUS.js → audio-transcription-runner-CBASOlbc.js} +11 -11
  42. package/dist/plugin-sdk/{audit-membership-runtime-DHQDvH4u.js → audit-membership-runtime-Xl20kCBe.js} +2 -2
  43. package/dist/plugin-sdk/{channel-activity-BVUdxSNs.js → channel-activity-95JVLzNY.js} +3 -3
  44. package/dist/plugin-sdk/{channel-web-BX2s-JXF.js → channel-web-DCkC6Ydu.js} +18 -18
  45. package/dist/plugin-sdk/{chrome-6EkqVcyR.js → chrome-BlXpNOQu.js} +6 -6
  46. package/dist/plugin-sdk/{commands-registry-CDHo6SSs.js → commands-registry-C9y_w3eW.js} +4 -4
  47. package/dist/plugin-sdk/{common-Emz6EPQM.js → common-CEwMUbms.js} +2 -2
  48. package/dist/plugin-sdk/{config-CMjn_DSB.js → config-sMifxgre.js} +7 -7
  49. package/dist/plugin-sdk/{deliver-Cz6GluMN.js → deliver-2zt3NeFA.js} +10 -10
  50. package/dist/plugin-sdk/deliver-runtime-Dx0Sg-lg.js +32 -0
  51. package/dist/plugin-sdk/deps-send-discord.runtime-bKwjojX0.js +23 -0
  52. package/dist/plugin-sdk/deps-send-imessage.runtime-DcxfdKGE.js +22 -0
  53. package/dist/plugin-sdk/deps-send-signal.runtime-79rGat6V.js +21 -0
  54. package/dist/plugin-sdk/deps-send-slack.runtime-DfMO701H.js +19 -0
  55. package/dist/plugin-sdk/deps-send-telegram.runtime-Bnjwm6SU.js +24 -0
  56. package/dist/plugin-sdk/deps-send-whatsapp.runtime-CS50_Jgh.js +57 -0
  57. package/dist/plugin-sdk/{diagnostic-DhO2TqL_.js → diagnostic-CU_mni6m.js} +2 -2
  58. package/dist/plugin-sdk/{errors-9oVz7reJ.js → errors-CgRPdp3o.js} +1 -1
  59. package/dist/plugin-sdk/{fetch-guard-CGQ35-A_.js → fetch-guard-BxMLJbqt.js} +2 -2
  60. package/dist/plugin-sdk/{fs-safe-B26UxJny.js → fs-safe-5aQcM_qM.js} +3 -3
  61. package/dist/plugin-sdk/{image-DPgEp54d.js → image-BJXV9IMV.js} +6 -6
  62. package/dist/plugin-sdk/{image-ops-CbKrfi-N.js → image-ops-DovJMvdf.js} +2 -2
  63. package/dist/plugin-sdk/image-runtime-f-WKB3Bx.js +25 -0
  64. package/dist/plugin-sdk/imessage.js +2 -2
  65. package/dist/plugin-sdk/{ir-4JdLS2Hz.js → ir-DE2ewdq5.js} +7 -7
  66. package/dist/plugin-sdk/{local-roots-T6lXDGzr.js → local-roots-CIwDgpY2.js} +4 -4
  67. package/dist/plugin-sdk/{logger-Bg4vIUJn.js → logger-DIb2cGHp.js} +2 -2
  68. package/dist/plugin-sdk/{login-BNCjks0C.js → login-CLIcsAVy.js} +4 -4
  69. package/dist/plugin-sdk/{login-qr-CTjNgxhl.js → login-qr-BlxjA0vQ.js} +5 -5
  70. package/dist/plugin-sdk/{manager-D__CoDGL.js → manager-CpAGPHeX.js} +8 -8
  71. package/dist/plugin-sdk/manager-runtime-DAKJEbuY.js +15 -0
  72. package/dist/plugin-sdk/mattermost.js +3 -3
  73. package/dist/plugin-sdk/{outbound-DTQ-9Cjw.js → outbound-DDpRevO_.js} +5 -5
  74. package/dist/plugin-sdk/{outbound-attachment-CdHX9v0q.js → outbound-attachment-CVavq5II.js} +2 -2
  75. package/dist/plugin-sdk/{path-alias-guards-DSCFtpsd.js → path-alias-guards-BfpU4lAT.js} +1 -1
  76. package/dist/plugin-sdk/{paths-BQHqKGA8.js → paths-CK3lTJYw.js} +1 -1
  77. package/dist/plugin-sdk/{pi-embedded-helpers-B7nmCbf7.js → pi-embedded-helpers-Cb_h9zSJ.js} +16 -16
  78. package/dist/plugin-sdk/{pi-model-discovery-DyDwYiK3.js → pi-model-discovery-B3B3R7L9.js} +1 -1
  79. package/dist/plugin-sdk/pi-model-discovery-runtime-Bm4bHwpO.js +8 -0
  80. package/dist/plugin-sdk/{pi-tools.before-tool-call.runtime-D_f6TDo7.js → pi-tools.before-tool-call.runtime-DivpBAM0.js} +4 -4
  81. package/dist/plugin-sdk/{plugins-BSPvol4w.js → plugins-BlTrm4bw.js} +4 -4
  82. package/dist/plugin-sdk/{proxy-env-D-iVYTBk.js → proxy-env-Cdh-OQYk.js} +1 -1
  83. package/dist/plugin-sdk/{proxy-fetch-Cf3IUSDw.js → proxy-fetch-Dt5BedH8.js} +1 -1
  84. package/dist/plugin-sdk/{pw-ai-BO445UDA.js → pw-ai-DEDRpMlY.js} +9 -9
  85. package/dist/plugin-sdk/{qmd-manager-81ezWnIN.js → qmd-manager-Ct9rtJjd.js} +7 -7
  86. package/dist/plugin-sdk/{query-expansion-DxTmIU4K.js → query-expansion-OdwWuN1S.js} +4 -4
  87. package/dist/plugin-sdk/{redact-DfACyt0X.js → redact-9WsNyb7S.js} +1 -1
  88. package/dist/plugin-sdk/{reply-DJ3rbbnv.js → reply-wZhosbPd.js} +73 -73
  89. package/dist/plugin-sdk/{resolve-outbound-target-DtQd8TzZ.js → resolve-outbound-target-BJmCIkW_.js} +2 -2
  90. package/dist/plugin-sdk/{run-with-concurrency-CYcPpb5E.js → run-with-concurrency-EUEKeAa8.js} +1 -1
  91. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-D74eZbH7.js +10 -0
  92. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-BidSddX5.js +19 -0
  93. package/dist/plugin-sdk/{send-CGjI0pJn.js → send-0C4KdD-T.js} +7 -7
  94. package/dist/plugin-sdk/{send-D6nUI0S3.js → send-BGWGV_mz.js} +6 -6
  95. package/dist/plugin-sdk/{send-BPEn9L0o.js → send-BMWyVUhm.js} +13 -13
  96. package/dist/plugin-sdk/{send-B9GVkvTk.js → send-Drs4JqVD.js} +5 -5
  97. package/dist/plugin-sdk/{send-CZ6HDwDu.js → send-oo6mQbab.js} +8 -8
  98. package/dist/plugin-sdk/{session-Bwjlseuf.js → session-CXVARKFK.js} +3 -3
  99. package/dist/plugin-sdk/{skill-commands-BpB2Oe8e.js → skill-commands-CoqGFLfM.js} +4 -4
  100. package/dist/plugin-sdk/{skills-CaQpr1kx.js → skills-di-5uS9y.js} +6 -6
  101. package/dist/plugin-sdk/slash-commands.runtime-CseiMacz.js +13 -0
  102. package/dist/plugin-sdk/slash-dispatch.runtime-88gX6CLk.js +52 -0
  103. package/dist/plugin-sdk/slash-skill-commands.runtime-BNrQNIZ7.js +16 -0
  104. package/dist/plugin-sdk/{store-K6C7eOpg.js → store-Dn_E3uaN.js} +2 -2
  105. package/dist/plugin-sdk/subagent-registry-runtime-Cv8RHTjT.js +52 -0
  106. package/dist/plugin-sdk/{tables-CeWt6UjS.js → tables-_e9wMygc.js} +1 -1
  107. package/dist/plugin-sdk/{thinking-gpcjIDQZ.js → thinking-Cih_nxDY.js} +7 -7
  108. package/dist/plugin-sdk/{tokens-DAL_5WHL.js → tokens-CLE20fRI.js} +1 -1
  109. package/dist/plugin-sdk/{tool-images-l3TE_qXt.js → tool-images-D6a1Ua4p.js} +2 -2
  110. package/dist/plugin-sdk/web-C4tTN9Xu.js +56 -0
  111. package/dist/plugin-sdk/{whatsapp-actions-CbzdjX4B.js → whatsapp-actions-UAnHjKbE.js} +17 -17
  112. package/dist/plugin-sdk/whatsapp.js +50 -50
  113. package/dist/{program-DZxExBPG.js → program-Crlu6-Fd.js} +2 -2
  114. package/dist/{program-context-Cc5-MG37.js → program-context-BUiGRFn1.js} +6 -6
  115. package/dist/{prompt-select-styled-BmJHQFIe.js → prompt-select-styled-BeIW1IXq.js} +1 -1
  116. package/dist/{prompt-select-styled-CK2Ienpq.js → prompt-select-styled-DPnXlfvv.js} +1 -1
  117. package/dist/{pw-ai-DKk-nxfi.js → pw-ai-4QFtj-s9.js} +1 -1
  118. package/dist/{register.maintenance-Di-_iCcy.js → register.maintenance-BETLfpr3.js} +4 -4
  119. package/dist/{register.maintenance-zjqp4gVD.js → register.maintenance-DWquSvC1.js} +5 -5
  120. package/dist/{register.onboard-w_EDtQ3H.js → register.onboard-CJqPKqea.js} +2 -2
  121. package/dist/{register.onboard-D8V8BiRf.js → register.onboard-FYANtcb-.js} +2 -2
  122. package/dist/{register.setup-DkncXaAW.js → register.setup-DzAgPerh.js} +2 -2
  123. package/dist/{register.setup-CuD_ucSh.js → register.setup-_38deeF2.js} +2 -2
  124. package/dist/{register.subclis-D_k3jp2m.js → register.subclis-DX9OFUYu.js} +3 -3
  125. package/dist/{run-main-Czc9ESzd.js → run-main-BjSdMh29.js} +3 -3
  126. package/dist/{slash-dispatch.runtime-C6owhNFn.js → slash-dispatch.runtime-DxM7VUio.js} +6 -6
  127. package/dist/{subagent-registry-runtime-Chbfn_dG.js → subagent-registry-runtime-CrVeg8cq.js} +6 -6
  128. package/dist/{update-cli-XGRmAcuW.js → update-cli-Bh_QpVMZ.js} +4 -4
  129. package/dist/{update-cli-FbS4oJu1.js → update-cli-yUlN0mCs.js} +5 -5
  130. package/dist/{web-snD8T3x5.js → web-BmVAq-Dx.js} +6 -6
  131. package/extensions/acpx/node_modules/.bin/acpx +2 -2
  132. package/extensions/diagnostics-otel/node_modules/.bin/acorn +2 -2
  133. package/extensions/diffs/node_modules/.bin/playwright-core +2 -2
  134. package/extensions/googlechat/node_modules/.bin/squidclaw +2 -2
  135. package/extensions/matrix/node_modules/.bin/markdown-it +2 -2
  136. package/extensions/memory-core/node_modules/.bin/squidclaw +2 -2
  137. package/extensions/memory-lancedb/node_modules/.bin/arrow2csv +2 -2
  138. package/extensions/memory-lancedb/node_modules/.bin/openai +2 -2
  139. package/extensions/tlon/node_modules/.bin/tlon +2 -2
  140. package/package.json +1 -1
  141. package/dist/control-ui/assets/index-BqxuPQOl.js.map +0 -1
  142. package/dist/plugin-sdk/deliver-runtime-CjCJkoFM.js +0 -32
  143. package/dist/plugin-sdk/deps-send-discord.runtime-C4AEwjGl.js +0 -23
  144. package/dist/plugin-sdk/deps-send-imessage.runtime-DCdEe-_E.js +0 -22
  145. package/dist/plugin-sdk/deps-send-signal.runtime-BNO6SPmR.js +0 -21
  146. package/dist/plugin-sdk/deps-send-slack.runtime-BChVBURL.js +0 -19
  147. package/dist/plugin-sdk/deps-send-telegram.runtime-DyCorUw2.js +0 -24
  148. package/dist/plugin-sdk/deps-send-whatsapp.runtime-DoOYrpKa.js +0 -57
  149. package/dist/plugin-sdk/image-runtime-DN6PHT8G.js +0 -25
  150. package/dist/plugin-sdk/manager-runtime-B9aBGLrF.js +0 -15
  151. package/dist/plugin-sdk/pi-model-discovery-runtime-CN6ZaL0W.js +0 -8
  152. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-ai8hcGi_.js +0 -10
  153. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-BzvoaI1G.js +0 -19
  154. package/dist/plugin-sdk/slash-commands.runtime-BH06o3dH.js +0 -13
  155. package/dist/plugin-sdk/slash-dispatch.runtime-BotYesgY.js +0 -52
  156. package/dist/plugin-sdk/slash-skill-commands.runtime-CzPvxiUD.js +0 -16
  157. package/dist/plugin-sdk/subagent-registry-runtime-BbcgUYOO.js +0 -52
  158. package/dist/plugin-sdk/web-DZ7nBzZy.js +0 -56
  159. package/docs/reference/templates/IDENTITY.md +0 -14
  160. package/docs/reference/templates/USER.md +0 -9
  161. package/extensions/nostr/node_modules/.bin/tsc +0 -21
  162. package/extensions/nostr/node_modules/.bin/tsserver +0 -21
@@ -8,7 +8,7 @@
8
8
  <link rel="icon" type="image/svg+xml" href="./favicon.svg" />
9
9
  <link rel="icon" type="image/png" sizes="32x32" href="./favicon-32.png" />
10
10
  <link rel="apple-touch-icon" sizes="180x180" href="./apple-touch-icon.png" />
11
- <script type="module" crossorigin src="./assets/index-BqxuPQOl.js"></script>
11
+ <script type="module" crossorigin src="./assets/index-Bb5MB8jH.js"></script>
12
12
  <link rel="stylesheet" crossorigin href="./assets/index-E0j6Tkrc.css">
13
13
  </head>
14
14
  <body>
@@ -8,7 +8,7 @@ import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-Cdk21t
8
8
  import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-D-K4oUXz.js";
9
9
  import { n as generateSecureUuid } from "./secure-random-CXrBi7Jq.js";
10
10
  import { r as parseTelegramTarget } from "./targets-BiE9e9-P.js";
11
- import { H as resolveMirroredTranscriptText, V as appendAssistantMessageToSessionTranscript, ct as parseInlineDirectives, i as isMessagingToolDuplicate } from "./pi-embedded-helpers-DL-PzuCP.js";
11
+ import { H as resolveMirroredTranscriptText, V as appendAssistantMessageToSessionTranscript, ct as parseInlineDirectives, i as isMessagingToolDuplicate } from "./pi-embedded-helpers-1Z1aUoto.js";
12
12
  import { i as getAgentScopedMediaLocalRoots } from "./fetch-COEkF6YP.js";
13
13
  import { d as chunkMarkdownTextWithMode, h as resolveTextChunkLimit, l as chunkByParagraph, m as resolveChunkMode, s as resolveMarkdownTableMode, v as parseFenceSpans } from "./ir-RKRKj5a9.js";
14
14
  import { c as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-BMtxl7vL.js";
@@ -10,11 +10,11 @@ import "./thinking-BB_GM390.js";
10
10
  import "./tokens-Cdk21tF_.js";
11
11
  import "./plugins-D-K4oUXz.js";
12
12
  import "./accounts-pMDX8iho.js";
13
- import { t as deliverOutboundPayloads } from "./deliver-cyA5bLhi.js";
13
+ import { t as deliverOutboundPayloads } from "./deliver-DZCNXFM8.js";
14
14
  import "./accounts-DfrJiFJJ.js";
15
15
  import "./image-ops-QLLBkxzG.js";
16
- import "./pi-embedded-helpers-DL-PzuCP.js";
17
- import "./chrome-B-c9WuZW.js";
16
+ import "./pi-embedded-helpers-1Z1aUoto.js";
17
+ import "./chrome-BTwG9Gvh.js";
18
18
  import "./frontmatter-LLGh43CC.js";
19
19
  import "./skills-BjHeDO5V.js";
20
20
  import "./path-alias-guards-DgNuZPBA.js";
@@ -8,19 +8,19 @@ import "./github-copilot-token-B8Wx9FgQ.js";
8
8
  import "./legacy-names-CR_H5NWa.js";
9
9
  import "./thinking-BB_GM390.js";
10
10
  import "./tokens-Cdk21tF_.js";
11
- import "./pi-embedded-B0Fw5lST.js";
11
+ import "./pi-embedded-BKtpY3e4.js";
12
12
  import "./plugins-D-K4oUXz.js";
13
13
  import "./accounts-pMDX8iho.js";
14
14
  import "./send-CNzGOCHa.js";
15
15
  import "./send-DJcNRhf_.js";
16
- import "./deliver-cyA5bLhi.js";
16
+ import "./deliver-DZCNXFM8.js";
17
17
  import "./diagnostic-4Dbmo6KU.js";
18
18
  import "./accounts-DfrJiFJJ.js";
19
19
  import "./image-ops-QLLBkxzG.js";
20
20
  import "./send-pUHxPU20.js";
21
21
  import "./pi-model-discovery-DSuyTtRM.js";
22
- import "./pi-embedded-helpers-DL-PzuCP.js";
23
- import "./chrome-B-c9WuZW.js";
22
+ import "./pi-embedded-helpers-1Z1aUoto.js";
23
+ import "./chrome-BTwG9Gvh.js";
24
24
  import "./frontmatter-LLGh43CC.js";
25
25
  import "./skills-BjHeDO5V.js";
26
26
  import "./path-alias-guards-DgNuZPBA.js";
@@ -32,8 +32,8 @@ import "./store-C3iBzr-_.js";
32
32
  import "./accounts-BFS_qklA.js";
33
33
  import "./paths-7EEBmI5a.js";
34
34
  import "./tool-images-HRwkh81U.js";
35
- import "./image-DNaaTm7C.js";
36
- import "./audio-transcription-runner-BUC9KMTa.js";
35
+ import "./image-COAbpp2B.js";
36
+ import "./audio-transcription-runner-DUC0ItDY.js";
37
37
  import "./fetch-COEkF6YP.js";
38
38
  import "./fetch-guard-CcP28UT1.js";
39
39
  import "./api-key-rotation-DCBXT0v7.js";
@@ -55,6 +55,6 @@ import "./query-expansion-BMExPdLO.js";
55
55
  import { t as sendMessageWhatsApp } from "./outbound-ChkqJkiM.js";
56
56
  import "./session-DOFapRIv.js";
57
57
  import "./login-C1_lumKW.js";
58
- import "./web-snD8T3x5.js";
58
+ import "./web-BmVAq-Dx.js";
59
59
 
60
60
  export { sendMessageWhatsApp };
@@ -1,7 +1,7 @@
1
1
  import { t as resolveSquidClawPackageRoot } from "./squidclaw-root-CnE19yKj.js";
2
2
  import { r as resolveCliName } from "./command-format-z1t1m-Kx.js";
3
3
  import { t as note } from "./note-CBt9wSWa.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BLY0f3DS.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-DMPoKYSD.js";
5
5
  import path from "node:path";
6
6
  import { spawnSync } from "node:child_process";
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { r as resolveCliName } from "./command-format-D8-lYArk.js";
2
2
  import { t as resolveSquidClawPackageRoot } from "./squidclaw-root-JXyRbQLJ.js";
3
3
  import { t as note } from "./note-IoQo8Ol0.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-DXKg2zHx.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-C_kX-zqx.js";
5
5
  import { spawnSync } from "node:child_process";
6
6
  import path from "node:path";
7
7
 
package/dist/entry.js CHANGED
@@ -370,7 +370,7 @@ if (!isMainModule({
370
370
  }
371
371
  function tryHandleRootHelpFastPath(argv) {
372
372
  if (!isRootHelpInvocation(argv)) return false;
373
- import("./program-DZxExBPG.js").then(({ buildProgram }) => {
373
+ import("./program-Crlu6-Fd.js").then(({ buildProgram }) => {
374
374
  buildProgram().outputHelp();
375
375
  }).catch((error) => {
376
376
  console.error("[squidclaw] Failed to display help:", error instanceof Error ? error.stack ?? error.message : error);
@@ -389,7 +389,7 @@ if (!isMainModule({
389
389
  applyCliProfileEnv({ profile: parsed.profile });
390
390
  process$1.argv = parsed.argv;
391
391
  }
392
- if (!tryHandleRootVersionFastPath(process$1.argv) && !tryHandleRootHelpFastPath(process$1.argv)) import("./run-main-Czc9ESzd.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
392
+ if (!tryHandleRootVersionFastPath(process$1.argv) && !tryHandleRootHelpFastPath(process$1.argv)) import("./run-main-BjSdMh29.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
393
393
  console.error("[squidclaw] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
394
394
  process$1.exitCode = 1;
395
395
  });
@@ -153,7 +153,7 @@ import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t
153
153
  import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-DJ3rHgVO.js";
154
154
  import { a as resolveCommandSecretsFromActiveRuntimeSnapshot, i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-By5SpbLU.js";
155
155
  import "./onboarding.secret-input-ajPT5cjy.js";
156
- import { t as runOnboardingWizard } from "./onboarding-DQa8M7Fx.js";
156
+ import { t as runOnboardingWizard } from "./onboarding-D1z3JAaB.js";
157
157
  import { a as sendApnsAlert, c as parseMessageWithAttachments, d as shouldLogWs, f as summarizeAgentEventForWsLog, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, p as setGatewayWsLogStyle, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration, u as logWs } from "./push-apns-C4uEslA7.js";
158
158
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-BDpWdYq5.js";
159
159
  import { n as isNodeCommandAllowed, r as resolveNodeCommandAllowlist } from "./node-command-policy-X4KnAuD8.js";
@@ -152,7 +152,7 @@ import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t
152
152
  import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-e4ysObLI.js";
153
153
  import { a as resolveCommandSecretsFromActiveRuntimeSnapshot, i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-CHbuDvUV.js";
154
154
  import "./onboarding.secret-input-CW9tPVNP.js";
155
- import { t as runOnboardingWizard } from "./onboarding-LbGi6oDz.js";
155
+ import { t as runOnboardingWizard } from "./onboarding-mo7rwJC-.js";
156
156
  import { a as sendApnsAlert, c as parseMessageWithAttachments, d as shouldLogWs, f as summarizeAgentEventForWsLog, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, p as setGatewayWsLogStyle, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration, u as logWs } from "./push-apns-BH6u2jeD.js";
157
157
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-CDJE1jBL.js";
158
158
  import { n as isNodeCommandAllowed, r as resolveNodeCommandAllowlist } from "./node-command-policy-CPjB6YQt.js";
@@ -1,7 +1,7 @@
1
1
  import { g as resolveAgentModelPrimaryValue, h as resolveAgentModelFallbackValues } from "./run-with-concurrency-hJFK7PcO.js";
2
2
  import { f as isRecord, x as shortenHomeInString } from "./logger-D20iS3B-.js";
3
3
  import { Wn as applyConfigEnvVars, X as loadConfig, _ as normalizeProviders, b as resolveImplicitProviders, ir as resolveSquidClawAgentDir, j as requireApiKey, k as getApiKeyForModel, pr as normalizeSecretInput, v as resolveImplicitBedrockProvider, y as resolveImplicitCopilotProvider } from "./model-selection-Bjj4oU16.js";
4
- import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-DL-PzuCP.js";
4
+ import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-1Z1aUoto.js";
5
5
  import { n as redactToolDetail } from "./redact-BSwbgwaV.js";
6
6
  import fs from "node:fs/promises";
7
7
  import path from "node:path";
@@ -11,8 +11,8 @@ import "./plugins-D-K4oUXz.js";
11
11
  import "./accounts-pMDX8iho.js";
12
12
  import "./accounts-DfrJiFJJ.js";
13
13
  import "./image-ops-QLLBkxzG.js";
14
- import "./pi-embedded-helpers-DL-PzuCP.js";
15
- import "./chrome-B-c9WuZW.js";
14
+ import "./pi-embedded-helpers-1Z1aUoto.js";
15
+ import "./chrome-BTwG9Gvh.js";
16
16
  import "./frontmatter-LLGh43CC.js";
17
17
  import "./skills-BjHeDO5V.js";
18
18
  import "./path-alias-guards-DgNuZPBA.js";
@@ -24,6 +24,6 @@ import "./store-C3iBzr-_.js";
24
24
  import "./accounts-BFS_qklA.js";
25
25
  import "./paths-7EEBmI5a.js";
26
26
  import "./tool-images-HRwkh81U.js";
27
- import { t as describeImageWithModel } from "./image-DNaaTm7C.js";
27
+ import { t as describeImageWithModel } from "./image-COAbpp2B.js";
28
28
 
29
29
  export { describeImageWithModel };
package/dist/index.js CHANGED
@@ -119,7 +119,7 @@ import { t as isMainModule } from "./is-main-D5LnS2LP.js";
119
119
  import { t as ensureSquidClawCliOnPath } from "./path-env-kSxA2INU.js";
120
120
  import { t as assertSupportedRuntime } from "./runtime-guard-pMNmDPEU.js";
121
121
  import "./ports-CXjhFS7T.js";
122
- import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-Cc5-MG37.js";
122
+ import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-BUiGRFn1.js";
123
123
  import "./plugin-registry-FXXByNP3.js";
124
124
  import { n as resolveCliChannelOptions } from "./channel-options-DiLSWw11.js";
125
125
  import process$1 from "node:process";
@@ -8,19 +8,19 @@ import "./github-copilot-token-B8Wx9FgQ.js";
8
8
  import "./legacy-names-CR_H5NWa.js";
9
9
  import "./thinking-BB_GM390.js";
10
10
  import "./tokens-Cdk21tF_.js";
11
- import { t as runEmbeddedPiAgent } from "./pi-embedded-B0Fw5lST.js";
11
+ import { t as runEmbeddedPiAgent } from "./pi-embedded-BKtpY3e4.js";
12
12
  import "./plugins-D-K4oUXz.js";
13
13
  import "./accounts-pMDX8iho.js";
14
14
  import "./send-CNzGOCHa.js";
15
15
  import "./send-DJcNRhf_.js";
16
- import "./deliver-cyA5bLhi.js";
16
+ import "./deliver-DZCNXFM8.js";
17
17
  import "./diagnostic-4Dbmo6KU.js";
18
18
  import "./accounts-DfrJiFJJ.js";
19
19
  import "./image-ops-QLLBkxzG.js";
20
20
  import "./send-pUHxPU20.js";
21
21
  import "./pi-model-discovery-DSuyTtRM.js";
22
- import "./pi-embedded-helpers-DL-PzuCP.js";
23
- import "./chrome-B-c9WuZW.js";
22
+ import "./pi-embedded-helpers-1Z1aUoto.js";
23
+ import "./chrome-BTwG9Gvh.js";
24
24
  import "./frontmatter-LLGh43CC.js";
25
25
  import "./skills-BjHeDO5V.js";
26
26
  import "./path-alias-guards-DgNuZPBA.js";
@@ -32,8 +32,8 @@ import "./store-C3iBzr-_.js";
32
32
  import "./accounts-BFS_qklA.js";
33
33
  import "./paths-7EEBmI5a.js";
34
34
  import "./tool-images-HRwkh81U.js";
35
- import "./image-DNaaTm7C.js";
36
- import "./audio-transcription-runner-BUC9KMTa.js";
35
+ import "./image-COAbpp2B.js";
36
+ import "./audio-transcription-runner-DUC0ItDY.js";
37
37
  import "./fetch-COEkF6YP.js";
38
38
  import "./fetch-guard-CcP28UT1.js";
39
39
  import "./api-key-rotation-DCBXT0v7.js";
@@ -8,7 +8,7 @@ import { t as WizardCancelledError } from "./prompts-l_pUOv42.js";
8
8
  import { t as createClackPrompter } from "./clack-prompter-DU01bRlk.js";
9
9
  import { t as assertSupportedRuntime } from "./runtime-guard-BPoq8vFM.js";
10
10
  import { t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-Dgg-ogyc.js";
11
- import { t as runOnboardingWizard } from "./onboarding-DQa8M7Fx.js";
11
+ import { t as runOnboardingWizard } from "./onboarding-D1z3JAaB.js";
12
12
  import { n as logConfigUpdated } from "./logging-ZAeFsd9K.js";
13
13
  import { i as normalizeLegacyOnboardAuthChoice, r as isDeprecatedAuthChoice, t as ONBOARD_PROVIDER_AUTH_FLAGS } from "./onboard-provider-auth-flags-DjGs2ip7.js";
14
14
  import { t as applyOnboardingLocalWorkspaceConfig } from "./onboard-config-Dr7DjNAf.js";
@@ -8,7 +8,7 @@ import { t as assertSupportedRuntime } from "./runtime-guard-pMNmDPEU.js";
8
8
  import { t as WizardCancelledError } from "./prompts-knTF_LVq.js";
9
9
  import { t as createClackPrompter } from "./clack-prompter-Bx0vssUh.js";
10
10
  import { t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-Di8BSZyD.js";
11
- import { t as runOnboardingWizard } from "./onboarding-LbGi6oDz.js";
11
+ import { t as runOnboardingWizard } from "./onboarding-mo7rwJC-.js";
12
12
  import { n as logConfigUpdated } from "./logging-AGpu_2Pc.js";
13
13
  import { i as normalizeLegacyOnboardAuthChoice, r as isDeprecatedAuthChoice, t as ONBOARD_PROVIDER_AUTH_FLAGS } from "./onboard-provider-auth-flags-BpV7mEJN.js";
14
14
  import { t as applyOnboardingLocalWorkspaceConfig } from "./onboard-config-ClJAny4z.js";
@@ -328,7 +328,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
328
328
  mode
329
329
  });
330
330
  await writeConfigFile(nextConfig);
331
- const { finalizeOnboardingWizard } = await import("./onboarding.finalize-D6qUa-0y.js");
331
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-CWzwBDG8.js");
332
332
  const { launchedTui } = await finalizeOnboardingWizard({
333
333
  flow,
334
334
  opts,
@@ -328,7 +328,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
328
328
  mode
329
329
  });
330
330
  await writeConfigFile(nextConfig);
331
- const { finalizeOnboardingWizard } = await import("./onboarding.finalize-CWcaxeIO.js");
331
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-D8igsmtY.js");
332
332
  const { launchedTui } = await finalizeOnboardingWizard({
333
333
  flow,
334
334
  opts,
@@ -112,9 +112,9 @@ import "./cli-utils-BKqG4ZT-.js";
112
112
  import "./help-format-CpR5cEGe.js";
113
113
  import "./progress-DuhDspl6.js";
114
114
  import "./note-IoQo8Ol0.js";
115
- import { r as installCompletion } from "./completion-cli-DXKg2zHx.js";
116
- import "./register.subclis-D_k3jp2m.js";
117
- import "./command-registry-8dFoJNwF.js";
115
+ import { r as installCompletion } from "./completion-cli-C_kX-zqx.js";
116
+ import "./register.subclis-DX9OFUYu.js";
117
+ import "./command-registry-okNPqigX.js";
118
118
  import "./program-context-DKVuITe2.js";
119
119
  import { n as gatewayInstallErrorHint, t as buildGatewayInstallPlan } from "./daemon-install-helpers-CZDVO_MU.js";
120
120
  import "./runtime-guard-BPoq8vFM.js";
@@ -125,7 +125,7 @@ import { r as healthCommand } from "./health-L85P9rRI.js";
125
125
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-d6VtDSeo.js";
126
126
  import { t as resolveOnboardingSecretInputString } from "./onboarding.secret-input-ajPT5cjy.js";
127
127
  import { t as formatHealthCheckFailure } from "./health-format-eNDYxTNS.js";
128
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-B4EOgAHX.js";
128
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-Dzzgvaw-.js";
129
129
  import { t as runTui } from "./tui-BxsFozJB.js";
130
130
  import { spawn } from "node:child_process";
131
131
  import os from "node:os";
@@ -529,23 +529,69 @@ async function finalizeOnboardingWizard(options) {
529
529
  const webSearchKey = webSearchProvider === "perplexity" ? (nextConfig.tools?.web?.search?.perplexity?.apiKey ?? "").trim() : (nextConfig.tools?.web?.search?.apiKey ?? "").trim();
530
530
  const webSearchEnv = webSearchProvider === "perplexity" ? (process.env.PERPLEXITY_API_KEY ?? "").trim() : (process.env.BRAVE_API_KEY ?? "").trim();
531
531
  const hasWebSearchKey = Boolean(webSearchKey || webSearchEnv);
532
- await prompter.note(hasWebSearchKey ? [
533
- "Web search is enabled, so your agent can look things up online when needed.",
534
- "",
535
- `Provider: ${webSearchProvider === "perplexity" ? "Perplexity Search" : "Brave Search"}`,
536
- webSearchKey ? `API key: stored in config (tools.web.search.${webSearchProvider === "perplexity" ? "perplexity.apiKey" : "apiKey"}).` : `API key: provided via ${webSearchProvider === "perplexity" ? "PERPLEXITY_API_KEY" : "BRAVE_API_KEY"} env var (Gateway environment).`,
537
- "Docs: https://docs.squidclaw.dev/tools/web"
538
- ].join("\n") : [
539
- "To enable web search, your agent will need an API key for either Perplexity Search or Brave Search.",
540
- "",
541
- "Set it up interactively:",
542
- `- Run: ${formatCliCommand("squidclaw configure --section web")}`,
543
- "- Choose a provider and paste your API key",
544
- "",
545
- "Alternative: set PERPLEXITY_API_KEY or BRAVE_API_KEY in the Gateway environment (no config changes).",
546
- "Docs: https://docs.squidclaw.dev/tools/web"
547
- ].join("\n"), "Web search (optional)");
548
- await prompter.note("What now: https://squidclaw.dev/showcase (\"What People Are Building\").", "What now");
532
+ const agentName = nextConfig.agents?.main?.persona?.name ?? "Agent";
533
+ const agentEmoji = nextConfig.agents?.main?.persona?.emoji ?? "🐙";
534
+ const channelConnections = Object.entries(nextConfig.channels ?? {}).filter(([, config]) => config?.enabled).map(([name, config]) => {
535
+ if (name === "whatsapp" && config?.whatsapp?.phoneNumber) return `WhatsApp Channel: ${config.whatsapp.phoneNumber}`;
536
+ if (name === "telegram" && config?.telegram?.botToken) return `Telegram Channel: ${config.telegram.username ? `@${config.telegram.username}` : "Bot"} (${config.telegram.botToken.split(":")[0]})`;
537
+ return `${name.charAt(0).toUpperCase()}${name.slice(1)} Channel: configured`;
538
+ });
539
+ const sessionStorage = `${resolveUserPath(options.workspaceDir)}/.squidclaw/agents/main/sessions`;
540
+ console.log("\n" + "=".repeat(80));
541
+ console.log(`Agent: ${agentName} ${agentEmoji}`);
542
+ console.log("Heartbeat interval: 30m (main)");
543
+ console.log("Session store (main): " + sessionStorage);
544
+ console.log("");
545
+ if (channelConnections.length > 0) channelConnections.forEach((connection) => console.log(connection));
546
+ else console.log("No channels configured");
547
+ console.log("");
548
+ console.log("Optional apps");
549
+ console.log("- Add nodes for extra features:");
550
+ console.log(" - macOS app (system + notifications)");
551
+ console.log(" - iOS app (camera/canvas)");
552
+ console.log(" - Android app (camera/canvas)");
553
+ console.log("");
554
+ console.log("Control UI");
555
+ console.log(`Web UI: ${links.httpUrl}`);
556
+ if (settings.authMode === "token" && settings.gatewayToken) console.log(`Web UI (with token): ${authedUrl}`);
557
+ console.log(`Gateway WS: ${links.wsUrl}`);
558
+ console.log(gatewayStatusLine);
559
+ console.log("Docs: https://docs.squidclaw.dev/web/control-ui");
560
+ console.log("");
561
+ console.log("Token");
562
+ console.log("Gateway token: shared auth for the Gateway + Control UI.");
563
+ console.log("Stored in: ~/.squidclaw/squidclaw.json (gateway.auth.token) or SQUIDCLAW_GATEWAY_TOKEN.");
564
+ console.log(`View token: ${formatCliCommand("squidclaw config get gateway.auth.token")}`);
565
+ console.log(`Generate token: ${formatCliCommand("squidclaw doctor --generate-gateway-token")}`);
566
+ console.log("Web UI stores a copy in this browser's localStorage (squidclaw.control.settings.v1).");
567
+ console.log(`Open the dashboard anytime: ${formatCliCommand("squidclaw dashboard --no-open")}`);
568
+ console.log("If prompted: paste the token into Control UI settings (or use the tokenized dashboard URL).");
569
+ console.log("");
570
+ console.log("Web Search (optional)");
571
+ if (hasWebSearchKey) {
572
+ console.log("Web search is enabled, so your agent can look things up online when needed.");
573
+ console.log(`Provider: ${webSearchProvider === "perplexity" ? "Perplexity Search" : "Brave Search"}`);
574
+ console.log(webSearchKey ? `API key: stored in config (tools.web.search.${webSearchProvider === "perplexity" ? "perplexity.apiKey" : "apiKey"}).` : `API key: provided via ${webSearchProvider === "perplexity" ? "PERPLEXITY_API_KEY" : "BRAVE_API_KEY"} env var.`);
575
+ } else {
576
+ console.log("To enable web search, set up an API key:");
577
+ console.log(`- Run: ${formatCliCommand("squidclaw configure --section web")}`);
578
+ console.log("- Or set PERPLEXITY_API_KEY or BRAVE_API_KEY env var");
579
+ }
580
+ console.log("Docs: https://docs.squidclaw.dev/tools/web");
581
+ console.log("");
582
+ console.log("Start TUI (best option!)");
583
+ console.log("This is the defining action that makes your agent you.");
584
+ console.log("Please take your time.");
585
+ console.log("The more you tell it, the better the experience will be.");
586
+ console.log("We will send: \"Hey up, my Friend!\"");
587
+ console.log("");
588
+ console.log("Next Steps:");
589
+ console.log("- Hatch in TUI (recommended)");
590
+ console.log("- Open the Web UI");
591
+ console.log("- Do this later");
592
+ console.log("");
593
+ console.log("What now: https://squidclaw.dev/showcase");
594
+ console.log("=".repeat(80) + "\n");
549
595
  await prompter.outro(controlUiOpened ? "Onboarding complete. Dashboard opened; keep that tab to control SquidClaw." : "Onboarding complete. Use the dashboard link above to control SquidClaw.");
550
596
  return { launchedTui };
551
597
  }
@@ -111,9 +111,9 @@ import "./progress-BHN121Ps.js";
111
111
  import "./server-lifecycle-CL57-qY-.js";
112
112
  import "./stagger-DL-XRpny.js";
113
113
  import "./runtime-guard-pMNmDPEU.js";
114
- import "./program-context-Cc5-MG37.js";
114
+ import "./program-context-BUiGRFn1.js";
115
115
  import "./note-CBt9wSWa.js";
116
- import { r as installCompletion } from "./completion-cli-BLY0f3DS.js";
116
+ import { r as installCompletion } from "./completion-cli-DMPoKYSD.js";
117
117
  import { n as gatewayInstallErrorHint, t as buildGatewayInstallPlan } from "./daemon-install-helpers-a4pGEsbA.js";
118
118
  import { n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-Di8BSZyD.js";
119
119
  import { r as isSystemdUserServiceAvailable } from "./systemd-fP8tz4aL.js";
@@ -122,7 +122,7 @@ import { r as healthCommand } from "./health-TD-34Yp-.js";
122
122
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Bz7TCLpb.js";
123
123
  import { t as resolveOnboardingSecretInputString } from "./onboarding.secret-input-CW9tPVNP.js";
124
124
  import { t as formatHealthCheckFailure } from "./health-format-B3bJdIC6.js";
125
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-kjDYgxZk.js";
125
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-D6js0phx.js";
126
126
  import { t as runTui } from "./tui-ChZP3wJ7.js";
127
127
  import os from "node:os";
128
128
  import path from "node:path";
@@ -526,23 +526,69 @@ async function finalizeOnboardingWizard(options) {
526
526
  const webSearchKey = webSearchProvider === "perplexity" ? (nextConfig.tools?.web?.search?.perplexity?.apiKey ?? "").trim() : (nextConfig.tools?.web?.search?.apiKey ?? "").trim();
527
527
  const webSearchEnv = webSearchProvider === "perplexity" ? (process.env.PERPLEXITY_API_KEY ?? "").trim() : (process.env.BRAVE_API_KEY ?? "").trim();
528
528
  const hasWebSearchKey = Boolean(webSearchKey || webSearchEnv);
529
- await prompter.note(hasWebSearchKey ? [
530
- "Web search is enabled, so your agent can look things up online when needed.",
531
- "",
532
- `Provider: ${webSearchProvider === "perplexity" ? "Perplexity Search" : "Brave Search"}`,
533
- webSearchKey ? `API key: stored in config (tools.web.search.${webSearchProvider === "perplexity" ? "perplexity.apiKey" : "apiKey"}).` : `API key: provided via ${webSearchProvider === "perplexity" ? "PERPLEXITY_API_KEY" : "BRAVE_API_KEY"} env var (Gateway environment).`,
534
- "Docs: https://docs.squidclaw.dev/tools/web"
535
- ].join("\n") : [
536
- "To enable web search, your agent will need an API key for either Perplexity Search or Brave Search.",
537
- "",
538
- "Set it up interactively:",
539
- `- Run: ${formatCliCommand("squidclaw configure --section web")}`,
540
- "- Choose a provider and paste your API key",
541
- "",
542
- "Alternative: set PERPLEXITY_API_KEY or BRAVE_API_KEY in the Gateway environment (no config changes).",
543
- "Docs: https://docs.squidclaw.dev/tools/web"
544
- ].join("\n"), "Web search (optional)");
545
- await prompter.note("What now: https://squidclaw.dev/showcase (\"What People Are Building\").", "What now");
529
+ const agentName = nextConfig.agents?.main?.persona?.name ?? "Agent";
530
+ const agentEmoji = nextConfig.agents?.main?.persona?.emoji ?? "🐙";
531
+ const channelConnections = Object.entries(nextConfig.channels ?? {}).filter(([, config]) => config?.enabled).map(([name, config]) => {
532
+ if (name === "whatsapp" && config?.whatsapp?.phoneNumber) return `WhatsApp Channel: ${config.whatsapp.phoneNumber}`;
533
+ if (name === "telegram" && config?.telegram?.botToken) return `Telegram Channel: ${config.telegram.username ? `@${config.telegram.username}` : "Bot"} (${config.telegram.botToken.split(":")[0]})`;
534
+ return `${name.charAt(0).toUpperCase()}${name.slice(1)} Channel: configured`;
535
+ });
536
+ const sessionStorage = `${resolveUserPath(options.workspaceDir)}/.squidclaw/agents/main/sessions`;
537
+ console.log("\n" + "=".repeat(80));
538
+ console.log(`Agent: ${agentName} ${agentEmoji}`);
539
+ console.log("Heartbeat interval: 30m (main)");
540
+ console.log("Session store (main): " + sessionStorage);
541
+ console.log("");
542
+ if (channelConnections.length > 0) channelConnections.forEach((connection) => console.log(connection));
543
+ else console.log("No channels configured");
544
+ console.log("");
545
+ console.log("Optional apps");
546
+ console.log("- Add nodes for extra features:");
547
+ console.log(" - macOS app (system + notifications)");
548
+ console.log(" - iOS app (camera/canvas)");
549
+ console.log(" - Android app (camera/canvas)");
550
+ console.log("");
551
+ console.log("Control UI");
552
+ console.log(`Web UI: ${links.httpUrl}`);
553
+ if (settings.authMode === "token" && settings.gatewayToken) console.log(`Web UI (with token): ${authedUrl}`);
554
+ console.log(`Gateway WS: ${links.wsUrl}`);
555
+ console.log(gatewayStatusLine);
556
+ console.log("Docs: https://docs.squidclaw.dev/web/control-ui");
557
+ console.log("");
558
+ console.log("Token");
559
+ console.log("Gateway token: shared auth for the Gateway + Control UI.");
560
+ console.log("Stored in: ~/.squidclaw/squidclaw.json (gateway.auth.token) or SQUIDCLAW_GATEWAY_TOKEN.");
561
+ console.log(`View token: ${formatCliCommand("squidclaw config get gateway.auth.token")}`);
562
+ console.log(`Generate token: ${formatCliCommand("squidclaw doctor --generate-gateway-token")}`);
563
+ console.log("Web UI stores a copy in this browser's localStorage (squidclaw.control.settings.v1).");
564
+ console.log(`Open the dashboard anytime: ${formatCliCommand("squidclaw dashboard --no-open")}`);
565
+ console.log("If prompted: paste the token into Control UI settings (or use the tokenized dashboard URL).");
566
+ console.log("");
567
+ console.log("Web Search (optional)");
568
+ if (hasWebSearchKey) {
569
+ console.log("Web search is enabled, so your agent can look things up online when needed.");
570
+ console.log(`Provider: ${webSearchProvider === "perplexity" ? "Perplexity Search" : "Brave Search"}`);
571
+ console.log(webSearchKey ? `API key: stored in config (tools.web.search.${webSearchProvider === "perplexity" ? "perplexity.apiKey" : "apiKey"}).` : `API key: provided via ${webSearchProvider === "perplexity" ? "PERPLEXITY_API_KEY" : "BRAVE_API_KEY"} env var.`);
572
+ } else {
573
+ console.log("To enable web search, set up an API key:");
574
+ console.log(`- Run: ${formatCliCommand("squidclaw configure --section web")}`);
575
+ console.log("- Or set PERPLEXITY_API_KEY or BRAVE_API_KEY env var");
576
+ }
577
+ console.log("Docs: https://docs.squidclaw.dev/tools/web");
578
+ console.log("");
579
+ console.log("Start TUI (best option!)");
580
+ console.log("This is the defining action that makes your agent you.");
581
+ console.log("Please take your time.");
582
+ console.log("The more you tell it, the better the experience will be.");
583
+ console.log("We will send: \"Hey up, my Friend!\"");
584
+ console.log("");
585
+ console.log("Next Steps:");
586
+ console.log("- Hatch in TUI (recommended)");
587
+ console.log("- Open the Web UI");
588
+ console.log("- Do this later");
589
+ console.log("");
590
+ console.log("What now: https://squidclaw.dev/showcase");
591
+ console.log("=".repeat(80) + "\n");
546
592
  await prompter.outro(controlUiOpened ? "Onboarding complete. Dashboard opened; keep that tab to control SquidClaw." : "Onboarding complete. Use the dashboard link above to control SquidClaw.");
547
593
  return { launchedTui };
548
594
  }