squidclaw 3.3.2 → 3.3.6
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.
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/a2ui.bundle.js +1 -1
- package/dist/{command-registry-DU59Zys9.js → command-registry-D-1yrjO5.js} +4 -4
- package/dist/{completion-cli-B58zTxLB.js → completion-cli-DDG6rQHB.js} +2 -2
- package/dist/{completion-cli-BLY0f3DS.js → completion-cli-YquOT8ke.js} +1 -1
- package/dist/control-ui/assets/{index-BqxuPQOl.js → index-Bb5MB8jH.js} +358 -358
- package/dist/control-ui/assets/index-Bb5MB8jH.js.map +1 -0
- package/dist/control-ui/index.html +1 -1
- package/dist/daemon-cli.js +6 -6
- package/dist/{doctor-completion-DRCOGhwS.js → doctor-completion-B63lREru.js} +1 -1
- package/dist/{doctor-completion-kjDYgxZk.js → doctor-completion-CoKUBmAB.js} +1 -1
- package/dist/entry.js +2 -2
- package/dist/{gateway-cli-DvWNtJxy.js → gateway-cli-BP1USKKw.js} +1 -1
- package/dist/{gateway-cli-lvhI_G2p.js → gateway-cli-CIhENRqY.js} +1 -1
- package/dist/index.js +1 -1
- package/dist/{onboard-BP7rTtCO.js → onboard-BYwFqDe-.js} +1 -1
- package/dist/{onboard-BwVAkxW0.js → onboard-gmbrf0mc.js} +1 -1
- package/dist/{onboarding-LbGi6oDz.js → onboarding-C7eyvBep.js} +1 -1
- package/dist/{onboarding-D_ImwR9D.js → onboarding-OrcdwciM.js} +1 -1
- package/dist/{onboarding.finalize-ClTc_ghC.js → onboarding.finalize-Bf3EExjS.js} +56 -13
- package/dist/{onboarding.finalize-CWcaxeIO.js → onboarding.finalize-DZBXbwYe.js} +55 -12
- package/dist/plugin-sdk/accounts-B9RVtSwn.js +35 -0
- package/dist/plugin-sdk/{accounts-BhCAa-05.js → accounts-BLOLIF6Q.js} +2 -2
- package/dist/plugin-sdk/{accounts-DKXGC2Vu.js → accounts-BvzvDHNx.js} +3 -3
- package/dist/plugin-sdk/{accounts-BChIl5as.js → accounts-ByCKM_Y3.js} +2 -2
- package/dist/plugin-sdk/accounts-Cnpikxly.js +288 -0
- package/dist/plugin-sdk/accounts-ZkT4ovw_.js +46 -0
- package/dist/plugin-sdk/{active-listener-TTbK9PGk.js → active-listener-CKD9GljM.js} +2 -2
- package/dist/plugin-sdk/active-listener-Ccj2fSCa.js +50 -0
- package/dist/plugin-sdk/{api-key-rotation-BqhYVBBK.js → api-key-rotation--boE2y8I.js} +2 -2
- package/dist/plugin-sdk/api-key-rotation-0Xm0okk5.js +181 -0
- package/dist/plugin-sdk/{audio-preflight-DAf0ptAM.js → audio-preflight-B_pcDw8d.js} +26 -26
- package/dist/plugin-sdk/audio-preflight-DQZ2WSG4.js +69 -0
- package/dist/plugin-sdk/audio-transcription-runner-C4aP5aYG.js +2176 -0
- package/dist/plugin-sdk/{audio-transcription-runner-CBASOlbc.js → audio-transcription-runner-u6tijzUS.js} +11 -11
- package/dist/plugin-sdk/{audit-membership-runtime-Xl20kCBe.js → audit-membership-runtime-DHQDvH4u.js} +2 -2
- package/dist/plugin-sdk/audit-membership-runtime-DPTwvWpd.js +58 -0
- package/dist/plugin-sdk/{channel-activity-95JVLzNY.js → channel-activity-BVUdxSNs.js} +3 -3
- package/dist/plugin-sdk/channel-activity-DAX5uVAX.js +94 -0
- package/dist/plugin-sdk/{channel-web-DCkC6Ydu.js → channel-web-BX2s-JXF.js} +18 -18
- package/dist/plugin-sdk/channel-web-CgS5ek7s.js +2256 -0
- package/dist/plugin-sdk/{chrome-BlXpNOQu.js → chrome-6EkqVcyR.js} +6 -6
- package/dist/plugin-sdk/chrome-BHzykCQ9.js +2415 -0
- package/dist/plugin-sdk/{commands-registry-C9y_w3eW.js → commands-registry-CDHo6SSs.js} +4 -4
- package/dist/plugin-sdk/commands-registry-CRVdcP1W.js +1125 -0
- package/dist/plugin-sdk/{common-CEwMUbms.js → common-Emz6EPQM.js} +2 -2
- package/dist/plugin-sdk/compat.js +50 -50
- package/dist/plugin-sdk/{config-sMifxgre.js → config-CMjn_DSB.js} +7 -7
- package/dist/plugin-sdk/config-DMdJidZc.js +17912 -0
- package/dist/plugin-sdk/{deliver-2zt3NeFA.js → deliver-Cz6GluMN.js} +10 -10
- package/dist/plugin-sdk/deliver-DMb_cOF7.js +1694 -0
- package/dist/plugin-sdk/deliver-runtime-CjCJkoFM.js +32 -0
- package/dist/plugin-sdk/deliver-runtime-D0qfBG05.js +32 -0
- package/dist/plugin-sdk/deps-send-discord.runtime-9igTHMx2.js +23 -0
- package/dist/plugin-sdk/deps-send-discord.runtime-C4AEwjGl.js +23 -0
- package/dist/plugin-sdk/deps-send-imessage.runtime-BFpdfthT.js +22 -0
- package/dist/plugin-sdk/deps-send-imessage.runtime-DCdEe-_E.js +22 -0
- package/dist/plugin-sdk/deps-send-signal.runtime-BNO6SPmR.js +21 -0
- package/dist/plugin-sdk/deps-send-signal.runtime-BqB_Ilh-.js +21 -0
- package/dist/plugin-sdk/deps-send-slack.runtime-BChVBURL.js +19 -0
- package/dist/plugin-sdk/deps-send-slack.runtime-o7IR7Ynh.js +19 -0
- package/dist/plugin-sdk/deps-send-telegram.runtime-7Xdhax8B.js +24 -0
- package/dist/plugin-sdk/deps-send-telegram.runtime-DyCorUw2.js +24 -0
- package/dist/plugin-sdk/deps-send-whatsapp.runtime-D6gMTFom.js +57 -0
- package/dist/plugin-sdk/deps-send-whatsapp.runtime-DoOYrpKa.js +57 -0
- package/dist/plugin-sdk/diagnostic-BidLPPBm.js +319 -0
- package/dist/plugin-sdk/{diagnostic-CU_mni6m.js → diagnostic-DhO2TqL_.js} +2 -2
- package/dist/plugin-sdk/{errors-CgRPdp3o.js → errors-9oVz7reJ.js} +1 -1
- package/dist/plugin-sdk/errors-s9jrwzSl.js +54 -0
- package/dist/plugin-sdk/fetch-guard-CEd4HUIR.js +156 -0
- package/dist/plugin-sdk/{fetch-guard-BxMLJbqt.js → fetch-guard-CGQ35-A_.js} +2 -2
- package/dist/plugin-sdk/{fs-safe-5aQcM_qM.js → fs-safe-B26UxJny.js} +3 -3
- package/dist/plugin-sdk/fs-safe-CZ2NvCjz.js +352 -0
- package/dist/plugin-sdk/image-BKaDODzM.js +2310 -0
- package/dist/plugin-sdk/{image-BJXV9IMV.js → image-DPgEp54d.js} +6 -6
- package/dist/plugin-sdk/{image-ops-DovJMvdf.js → image-ops-CbKrfi-N.js} +2 -2
- package/dist/plugin-sdk/image-ops-D0YKZqPy.js +584 -0
- package/dist/plugin-sdk/image-runtime-DN6PHT8G.js +25 -0
- package/dist/plugin-sdk/image-runtime-DxJgD-YS.js +25 -0
- package/dist/plugin-sdk/{ir-DE2ewdq5.js → ir-4JdLS2Hz.js} +7 -7
- package/dist/plugin-sdk/ir-D9fxXkgD.js +1296 -0
- package/dist/plugin-sdk/local-roots-HL9eBLUg.js +186 -0
- package/dist/plugin-sdk/{local-roots-CIwDgpY2.js → local-roots-T6lXDGzr.js} +4 -4
- package/dist/plugin-sdk/{logger-DIb2cGHp.js → logger-Bg4vIUJn.js} +2 -2
- package/dist/plugin-sdk/logger-D0ST0Irn.js +1163 -0
- package/dist/plugin-sdk/{login-CLIcsAVy.js → login-BNCjks0C.js} +4 -4
- package/dist/plugin-sdk/login-CUdm5Ct-.js +57 -0
- package/dist/plugin-sdk/login-qr-34QcLRte.js +320 -0
- package/dist/plugin-sdk/{login-qr-BlxjA0vQ.js → login-qr-CTjNgxhl.js} +5 -5
- package/dist/plugin-sdk/manager-DZ9Hn0Fe.js +3917 -0
- package/dist/plugin-sdk/{manager-CpAGPHeX.js → manager-D__CoDGL.js} +8 -8
- package/dist/plugin-sdk/manager-runtime-B9aBGLrF.js +15 -0
- package/dist/plugin-sdk/manager-runtime-DMEBebYo.js +15 -0
- package/dist/plugin-sdk/mattermost.js +3 -3
- package/dist/plugin-sdk/{outbound-DDpRevO_.js → outbound-DTQ-9Cjw.js} +5 -5
- package/dist/plugin-sdk/outbound-DTndjh8O.js +212 -0
- package/dist/plugin-sdk/outbound-attachment-BNMQOIcP.js +19 -0
- package/dist/plugin-sdk/{outbound-attachment-CVavq5II.js → outbound-attachment-CdHX9v0q.js} +2 -2
- package/dist/plugin-sdk/{path-alias-guards-BfpU4lAT.js → path-alias-guards-DSCFtpsd.js} +1 -1
- package/dist/plugin-sdk/path-alias-guards-DUn7Q6iW.js +43 -0
- package/dist/plugin-sdk/paths-6WIn8_si.js +166 -0
- package/dist/plugin-sdk/{paths-CK3lTJYw.js → paths-BQHqKGA8.js} +1 -1
- package/dist/plugin-sdk/{pi-embedded-helpers-Cb_h9zSJ.js → pi-embedded-helpers-B7nmCbf7.js} +16 -16
- package/dist/plugin-sdk/pi-embedded-helpers-BMA7JWLb.js +9627 -0
- package/dist/plugin-sdk/pi-model-discovery-B6gpdlWb.js +134 -0
- package/dist/plugin-sdk/{pi-model-discovery-B3B3R7L9.js → pi-model-discovery-DyDwYiK3.js} +1 -1
- package/dist/plugin-sdk/pi-model-discovery-runtime-CN6ZaL0W.js +8 -0
- package/dist/plugin-sdk/pi-model-discovery-runtime-Q6toTOMZ.js +8 -0
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CP4hHLJk.js +354 -0
- package/dist/plugin-sdk/{pi-tools.before-tool-call.runtime-DivpBAM0.js → pi-tools.before-tool-call.runtime-D_f6TDo7.js} +4 -4
- package/dist/plugin-sdk/{plugins-BlTrm4bw.js → plugins-BSPvol4w.js} +4 -4
- package/dist/plugin-sdk/plugins-CWIlxjXW.js +864 -0
- package/dist/plugin-sdk/{proxy-env-Cdh-OQYk.js → proxy-env-D-iVYTBk.js} +1 -1
- package/dist/plugin-sdk/{proxy-fetch-Dt5BedH8.js → proxy-fetch-Cf3IUSDw.js} +1 -1
- package/dist/plugin-sdk/proxy-fetch-tPMv_1eB.js +38 -0
- package/dist/plugin-sdk/{pw-ai-DEDRpMlY.js → pw-ai-BO445UDA.js} +9 -9
- package/dist/plugin-sdk/pw-ai-BSMHQrVM.js +1938 -0
- package/dist/plugin-sdk/{qmd-manager-Ct9rtJjd.js → qmd-manager-81ezWnIN.js} +7 -7
- package/dist/plugin-sdk/qmd-manager-DnMoZBC7.js +1448 -0
- package/dist/plugin-sdk/{query-expansion-OdwWuN1S.js → query-expansion-BCOK4OTO.js} +5 -5
- package/dist/plugin-sdk/query-expansion-DxTmIU4K.js +1011 -0
- package/dist/plugin-sdk/{redact-9WsNyb7S.js → redact-Bns9Du30.js} +1 -1
- package/dist/plugin-sdk/redact-DfACyt0X.js +319 -0
- package/dist/plugin-sdk/reply-C-WT0k-v.js +98763 -0
- package/dist/plugin-sdk/{reply-wZhosbPd.js → reply-DJ3rbbnv.js} +73 -73
- package/dist/plugin-sdk/resolve-outbound-target-C6GLRc_O.js +40 -0
- package/dist/plugin-sdk/{resolve-outbound-target-BJmCIkW_.js → resolve-outbound-target-DtQd8TzZ.js} +2 -2
- package/dist/plugin-sdk/run-with-concurrency-Baa7LYZD.js +2023 -0
- package/dist/plugin-sdk/{run-with-concurrency-EUEKeAa8.js → run-with-concurrency-CYcPpb5E.js} +1 -1
- package/dist/plugin-sdk/runtime-whatsapp-login.runtime-CUr_hlGk.js +10 -0
- package/dist/plugin-sdk/runtime-whatsapp-login.runtime-ai8hcGi_.js +10 -0
- package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-ByDLfLF3.js +19 -0
- package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-BzvoaI1G.js +19 -0
- package/dist/plugin-sdk/send-7do64QqA.js +2587 -0
- package/dist/plugin-sdk/{send-Drs4JqVD.js → send-B9GVkvTk.js} +5 -5
- package/dist/plugin-sdk/{send-BMWyVUhm.js → send-BPEn9L0o.js} +13 -13
- package/dist/plugin-sdk/send-Bjh-MMdN.js +503 -0
- package/dist/plugin-sdk/send-C9jI56cY.js +3135 -0
- package/dist/plugin-sdk/{send-0C4KdD-T.js → send-CGjI0pJn.js} +7 -7
- package/dist/plugin-sdk/send-CTsZjmvQ.js +540 -0
- package/dist/plugin-sdk/{send-oo6mQbab.js → send-CZ6HDwDu.js} +8 -8
- package/dist/plugin-sdk/{send-BGWGV_mz.js → send-D6nUI0S3.js} +6 -6
- package/dist/plugin-sdk/send-DiuYhmpi.js +414 -0
- package/dist/plugin-sdk/{session-CXVARKFK.js → session-Bwjlseuf.js} +3 -3
- package/dist/plugin-sdk/session-CiEv9qvh.js +169 -0
- package/dist/plugin-sdk/signal.js +2 -2
- package/dist/plugin-sdk/{skill-commands-CoqGFLfM.js → skill-commands-BpB2Oe8e.js} +4 -4
- package/dist/plugin-sdk/skill-commands-Cuzs_Puw.js +342 -0
- package/dist/plugin-sdk/{skills-di-5uS9y.js → skills-CaQpr1kx.js} +6 -6
- package/dist/plugin-sdk/skills-RHzhTtJf.js +1428 -0
- package/dist/plugin-sdk/slash-commands.runtime-BH06o3dH.js +13 -0
- package/dist/plugin-sdk/slash-commands.runtime-Dqev3QWp.js +13 -0
- package/dist/plugin-sdk/slash-dispatch.runtime-BotYesgY.js +52 -0
- package/dist/plugin-sdk/slash-dispatch.runtime-C_reWfLU.js +52 -0
- package/dist/plugin-sdk/slash-skill-commands.runtime-Cl5Y6y_v.js +16 -0
- package/dist/plugin-sdk/slash-skill-commands.runtime-CzPvxiUD.js +16 -0
- package/dist/plugin-sdk/ssrf-dGOzgEI_.js +202 -0
- package/dist/plugin-sdk/store-DQ2KuNGv.js +81 -0
- package/dist/plugin-sdk/{store-Dn_E3uaN.js → store-K6C7eOpg.js} +2 -2
- package/dist/plugin-sdk/subagent-registry-runtime-BbcgUYOO.js +52 -0
- package/dist/plugin-sdk/subagent-registry-runtime-Dhtf2h8u.js +52 -0
- package/dist/plugin-sdk/tables-B3jPS9G8.js +55 -0
- package/dist/plugin-sdk/{tables-_e9wMygc.js → tables-CeWt6UjS.js} +1 -1
- package/dist/plugin-sdk/target-errors-vzf_mLjC.js +195 -0
- package/dist/plugin-sdk/thinking-R15Mehif.js +1206 -0
- package/dist/plugin-sdk/{thinking-Cih_nxDY.js → thinking-gpcjIDQZ.js} +7 -7
- package/dist/plugin-sdk/{tokens-CLE20fRI.js → tokens-C-B2SvJW.js} +1 -1
- package/dist/plugin-sdk/tokens-DAL_5WHL.js +52 -0
- package/dist/plugin-sdk/{tool-images-D6a1Ua4p.js → tool-images-9Hn0F1o_.js} +2 -2
- package/dist/plugin-sdk/tool-images-l3TE_qXt.js +274 -0
- package/dist/plugin-sdk/web-C4irM2fl.js +56 -0
- package/dist/plugin-sdk/web-DZ7nBzZy.js +56 -0
- package/dist/plugin-sdk/{whatsapp-actions-UAnHjKbE.js → whatsapp-actions-CbzdjX4B.js} +17 -17
- package/dist/plugin-sdk/whatsapp-actions-DZHLwaea.js +80 -0
- package/dist/plugin-sdk/whatsapp.js +50 -50
- package/dist/plugin-sdk/zalo.js +2 -2
- package/dist/{program-B5Vn_UD_.js → program-D5HYdN0q.js} +2 -2
- package/dist/{program-context-Cc5-MG37.js → program-context-CWU-LWnL.js} +6 -6
- package/dist/{prompt-select-styled-DTnRirU4.js → prompt-select-styled-C_C2Ae8a.js} +1 -1
- package/dist/{prompt-select-styled-BmJHQFIe.js → prompt-select-styled-CjkK2AWX.js} +1 -1
- package/dist/{register.maintenance-Di-_iCcy.js → register.maintenance-BnT8sF7e.js} +4 -4
- package/dist/{register.maintenance-dpQRuXYm.js → register.maintenance-CVWvM_w8.js} +5 -5
- package/dist/{register.onboard-D8V8BiRf.js → register.onboard-B68iwPcU.js} +2 -2
- package/dist/{register.onboard-CI1dr2mE.js → register.onboard-Bx2xxYE0.js} +2 -2
- package/dist/{register.setup-Dsl5n4Uf.js → register.setup-BgRFFdoH.js} +2 -2
- package/dist/{register.setup-CuD_ucSh.js → register.setup-DkztcYGa.js} +2 -2
- package/dist/{register.subclis-C4twva8y.js → register.subclis-Bb6WLUhM.js} +3 -3
- package/dist/{run-main-6tdntESl.js → run-main-CApmG6CS.js} +3 -3
- package/dist/{update-cli-XGRmAcuW.js → update-cli-DoKsKvCz.js} +4 -4
- package/dist/{update-cli-CKvgxhEz.js → update-cli-VQSBFHlu.js} +5 -5
- package/extensions/acpx/node_modules/.bin/acpx +2 -2
- package/extensions/diffs/node_modules/.bin/playwright-core +2 -2
- package/extensions/googlechat/node_modules/.bin/squidclaw +4 -4
- package/extensions/matrix/node_modules/.bin/markdown-it +2 -2
- package/extensions/memory-core/node_modules/.bin/squidclaw +4 -4
- package/extensions/memory-lancedb/node_modules/.bin/openai +2 -2
- package/extensions/tlon/node_modules/.bin/tlon +2 -2
- package/package.json +1 -1
- package/dist/control-ui/assets/index-BqxuPQOl.js.map +0 -1
- package/dist/plugin-sdk/deliver-runtime-Dx0Sg-lg.js +0 -32
- package/dist/plugin-sdk/deps-send-discord.runtime-bKwjojX0.js +0 -23
- package/dist/plugin-sdk/deps-send-imessage.runtime-DcxfdKGE.js +0 -22
- package/dist/plugin-sdk/deps-send-signal.runtime-79rGat6V.js +0 -21
- package/dist/plugin-sdk/deps-send-slack.runtime-DfMO701H.js +0 -19
- package/dist/plugin-sdk/deps-send-telegram.runtime-Bnjwm6SU.js +0 -24
- package/dist/plugin-sdk/deps-send-whatsapp.runtime-CS50_Jgh.js +0 -57
- package/dist/plugin-sdk/image-runtime-f-WKB3Bx.js +0 -25
- package/dist/plugin-sdk/manager-runtime-DAKJEbuY.js +0 -15
- package/dist/plugin-sdk/pi-model-discovery-runtime-Bm4bHwpO.js +0 -8
- package/dist/plugin-sdk/runtime-whatsapp-login.runtime-D74eZbH7.js +0 -10
- package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-BidSddX5.js +0 -19
- package/dist/plugin-sdk/slash-commands.runtime-CseiMacz.js +0 -13
- package/dist/plugin-sdk/slash-dispatch.runtime-88gX6CLk.js +0 -52
- package/dist/plugin-sdk/slash-skill-commands.runtime-BNrQNIZ7.js +0 -16
- package/dist/plugin-sdk/subagent-registry-runtime-Cv8RHTjT.js +0 -52
- package/dist/plugin-sdk/web-C4tTN9Xu.js +0 -56
- package/docs/reference/templates/IDENTITY.md +0 -14
- package/docs/reference/templates/USER.md +0 -9
- package/extensions/diagnostics-otel/node_modules/.bin/acorn +0 -21
- package/extensions/memory-lancedb/node_modules/.bin/arrow2csv +0 -21
- package/extensions/nostr/node_modules/.bin/tsc +0 -21
- 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-
|
|
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>
|
package/dist/daemon-cli.js
CHANGED
|
@@ -3,7 +3,7 @@ import fs from "node:fs";
|
|
|
3
3
|
import os from "node:os";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { Logger } from "tslog";
|
|
6
|
-
import
|
|
6
|
+
import JSON5 from "json5";
|
|
7
7
|
import chalk, { Chalk } from "chalk";
|
|
8
8
|
import fs$1 from "node:fs/promises";
|
|
9
9
|
import { execFile, execFileSync, spawn } from "node:child_process";
|
|
@@ -407,7 +407,7 @@ function readLoggingConfig() {
|
|
|
407
407
|
try {
|
|
408
408
|
if (!fs.existsSync(configPath)) return;
|
|
409
409
|
const raw = fs.readFileSync(configPath, "utf-8");
|
|
410
|
-
const logging =
|
|
410
|
+
const logging = JSON5.parse(raw)?.logging;
|
|
411
411
|
if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
|
|
412
412
|
return logging;
|
|
413
413
|
} catch {
|
|
@@ -5582,7 +5582,7 @@ const defaultResolver = {
|
|
|
5582
5582
|
resolvedPath,
|
|
5583
5583
|
rootRealDir
|
|
5584
5584
|
}),
|
|
5585
|
-
parseJson: (raw) =>
|
|
5585
|
+
parseJson: (raw) => JSON5.parse(raw)
|
|
5586
5586
|
};
|
|
5587
5587
|
/**
|
|
5588
5588
|
* Resolves all $include directives in a parsed config object.
|
|
@@ -13076,7 +13076,7 @@ function resolveConfigPathForDeps(deps) {
|
|
|
13076
13076
|
function normalizeDeps(overrides = {}) {
|
|
13077
13077
|
return {
|
|
13078
13078
|
fs: overrides.fs ?? fs,
|
|
13079
|
-
json5: overrides.json5 ??
|
|
13079
|
+
json5: overrides.json5 ?? JSON5,
|
|
13080
13080
|
env: overrides.env ?? process.env,
|
|
13081
13081
|
homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
|
|
13082
13082
|
configPath: overrides.configPath ?? "",
|
|
@@ -13087,11 +13087,11 @@ function maybeLoadDotEnvForConfig(env) {
|
|
|
13087
13087
|
if (env !== process.env) return;
|
|
13088
13088
|
loadDotEnv({ quiet: true });
|
|
13089
13089
|
}
|
|
13090
|
-
function parseConfigJson5(raw, json5
|
|
13090
|
+
function parseConfigJson5(raw, json5 = JSON5) {
|
|
13091
13091
|
try {
|
|
13092
13092
|
return {
|
|
13093
13093
|
ok: true,
|
|
13094
|
-
parsed: json5
|
|
13094
|
+
parsed: json5.parse(raw)
|
|
13095
13095
|
};
|
|
13096
13096
|
} catch (err) {
|
|
13097
13097
|
return {
|
|
@@ -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-BQfLymzj.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-
|
|
4
|
+
import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-DDG6rQHB.js";
|
|
5
5
|
import { spawnSync } from "node:child_process";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
|
|
@@ -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-
|
|
4
|
+
import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-YquOT8ke.js";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { spawnSync } from "node:child_process";
|
|
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-
|
|
373
|
+
import("./program-D5HYdN0q.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-
|
|
392
|
+
if (!tryHandleRootVersionFastPath(process$1.argv) && !tryHandleRootHelpFastPath(process$1.argv)) import("./run-main-CApmG6CS.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-CQ6rCiGI.js";
|
|
154
154
|
import { a as resolveCommandSecretsFromActiveRuntimeSnapshot, i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-_Vk5eISV.js";
|
|
155
155
|
import "./onboarding.secret-input-h4sXfwga.js";
|
|
156
|
-
import { t as runOnboardingWizard } from "./onboarding-
|
|
156
|
+
import { t as runOnboardingWizard } from "./onboarding-OrcdwciM.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-BZeUZhYN.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--2bsadiu.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-
|
|
155
|
+
import { t as runOnboardingWizard } from "./onboarding-C7eyvBep.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";
|
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-
|
|
122
|
+
import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-CWU-LWnL.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,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-
|
|
11
|
+
import { t as runOnboardingWizard } from "./onboarding-C7eyvBep.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";
|
|
@@ -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-
|
|
11
|
+
import { t as runOnboardingWizard } from "./onboarding-OrcdwciM.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";
|
|
@@ -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-
|
|
331
|
+
const { finalizeOnboardingWizard } = await import("./onboarding.finalize-DZBXbwYe.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-
|
|
331
|
+
const { finalizeOnboardingWizard } = await import("./onboarding.finalize-Bf3EExjS.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-
|
|
116
|
-
import "./register.subclis-
|
|
117
|
-
import "./command-registry-
|
|
115
|
+
import { r as installCompletion } from "./completion-cli-DDG6rQHB.js";
|
|
116
|
+
import "./register.subclis-Bb6WLUhM.js";
|
|
117
|
+
import "./command-registry-D-1yrjO5.js";
|
|
118
118
|
import "./program-context-DKVuITe2.js";
|
|
119
119
|
import { n as gatewayInstallErrorHint, t as buildGatewayInstallPlan } from "./daemon-install-helpers-CJtiW2RE.js";
|
|
120
120
|
import "./runtime-guard-BPoq8vFM.js";
|
|
@@ -125,7 +125,7 @@ import { r as healthCommand } from "./health-CxqVSgKj.js";
|
|
|
125
125
|
import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BYEy341x.js";
|
|
126
126
|
import { t as resolveOnboardingSecretInputString } from "./onboarding.secret-input-h4sXfwga.js";
|
|
127
127
|
import { t as formatHealthCheckFailure } from "./health-format-eNDYxTNS.js";
|
|
128
|
-
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-
|
|
128
|
+
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-B63lREru.js";
|
|
129
129
|
import { t as runTui } from "./tui-DN34soFB.js";
|
|
130
130
|
import { spawn } from "node:child_process";
|
|
131
131
|
import os from "node:os";
|
|
@@ -529,22 +529,65 @@ 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
|
-
|
|
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
|
+
const agentInfo = [
|
|
541
|
+
`Agent: ${agentName} ${agentEmoji}`,
|
|
542
|
+
"Heartbeat interval: 30m (main)",
|
|
543
|
+
"Session store (main): " + sessionStorage,
|
|
544
|
+
"",
|
|
545
|
+
...channelConnections.length > 0 ? channelConnections : ["No channels configured"]
|
|
546
|
+
].join("\n");
|
|
547
|
+
await prompter.note(agentInfo, "Agent");
|
|
548
|
+
await prompter.note([
|
|
549
|
+
"Add nodes for extra features:",
|
|
550
|
+
"- macOS app (system + notifications)",
|
|
551
|
+
"- iOS app (camera/canvas)",
|
|
552
|
+
"- Android app (camera/canvas)"
|
|
553
|
+
].join("\n"), "Optional apps");
|
|
554
|
+
const controlUiInfo = [
|
|
555
|
+
`Web UI: ${links.httpUrl}`,
|
|
556
|
+
...settings.authMode === "token" && settings.gatewayToken ? [`Web UI (with token): ${authedUrl}`] : [],
|
|
557
|
+
`Gateway WS: ${links.wsUrl}`,
|
|
558
|
+
gatewayStatusLine,
|
|
559
|
+
"Docs: https://docs.squidclaw.dev/web/control-ui"
|
|
560
|
+
].filter(Boolean).join("\n");
|
|
561
|
+
await prompter.note(controlUiInfo, "Control UI");
|
|
562
|
+
await prompter.note([
|
|
563
|
+
"Gateway token: shared auth for the Gateway + Control UI.",
|
|
564
|
+
"Stored in: ~/.squidclaw/squidclaw.json (gateway.auth.token) or SQUIDCLAW_GATEWAY_TOKEN.",
|
|
565
|
+
`View token: ${formatCliCommand("squidclaw config get gateway.auth.token")}`,
|
|
566
|
+
`Generate token: ${formatCliCommand("squidclaw doctor --generate-gateway-token")}`,
|
|
567
|
+
"Web UI stores a copy in this browser's localStorage (squidclaw.control.settings.v1).",
|
|
568
|
+
`Open the dashboard anytime: ${formatCliCommand("squidclaw dashboard --no-open")}`,
|
|
569
|
+
"If prompted: paste the token into Control UI settings (or use the tokenized dashboard URL)."
|
|
570
|
+
].join("\n"), "Token");
|
|
571
|
+
const webSearchInfo = hasWebSearchKey ? [
|
|
533
572
|
"Web search is enabled, so your agent can look things up online when needed.",
|
|
534
573
|
"",
|
|
535
574
|
`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
|
|
575
|
+
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.`,
|
|
537
576
|
"Docs: https://docs.squidclaw.dev/tools/web"
|
|
538
|
-
]
|
|
539
|
-
"To enable web search,
|
|
540
|
-
"",
|
|
541
|
-
"Set it up interactively:",
|
|
577
|
+
] : [
|
|
578
|
+
"To enable web search, set up an API key:",
|
|
542
579
|
`- Run: ${formatCliCommand("squidclaw configure --section web")}`,
|
|
543
|
-
"-
|
|
580
|
+
"- Or set PERPLEXITY_API_KEY or BRAVE_API_KEY env var",
|
|
544
581
|
"",
|
|
545
|
-
"Alternative: set PERPLEXITY_API_KEY or BRAVE_API_KEY in the Gateway environment (no config changes).",
|
|
546
582
|
"Docs: https://docs.squidclaw.dev/tools/web"
|
|
547
|
-
]
|
|
583
|
+
];
|
|
584
|
+
await prompter.note(webSearchInfo.join("\n"), "Web search (optional)");
|
|
585
|
+
await prompter.note([
|
|
586
|
+
"This is the defining action that makes your agent you.",
|
|
587
|
+
"Please take your time.",
|
|
588
|
+
"The more you tell it, the better the experience will be.",
|
|
589
|
+
"We will send: \"Hey up, my Friend!\""
|
|
590
|
+
].join("\n"), "Start TUI (best option!)");
|
|
548
591
|
await prompter.note("What now: https://squidclaw.dev/showcase (\"What People Are Building\").", "What now");
|
|
549
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.");
|
|
550
593
|
return { launchedTui };
|
|
@@ -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-
|
|
114
|
+
import "./program-context-CWU-LWnL.js";
|
|
115
115
|
import "./note-CBt9wSWa.js";
|
|
116
|
-
import { r as installCompletion } from "./completion-cli-
|
|
116
|
+
import { r as installCompletion } from "./completion-cli-YquOT8ke.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-
|
|
125
|
+
import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-CoKUBmAB.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,22 +526,65 @@ 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
|
-
|
|
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
|
+
const agentInfo = [
|
|
538
|
+
`Agent: ${agentName} ${agentEmoji}`,
|
|
539
|
+
"Heartbeat interval: 30m (main)",
|
|
540
|
+
"Session store (main): " + sessionStorage,
|
|
541
|
+
"",
|
|
542
|
+
...channelConnections.length > 0 ? channelConnections : ["No channels configured"]
|
|
543
|
+
].join("\n");
|
|
544
|
+
await prompter.note(agentInfo, "Agent");
|
|
545
|
+
await prompter.note([
|
|
546
|
+
"Add nodes for extra features:",
|
|
547
|
+
"- macOS app (system + notifications)",
|
|
548
|
+
"- iOS app (camera/canvas)",
|
|
549
|
+
"- Android app (camera/canvas)"
|
|
550
|
+
].join("\n"), "Optional apps");
|
|
551
|
+
const controlUiInfo = [
|
|
552
|
+
`Web UI: ${links.httpUrl}`,
|
|
553
|
+
...settings.authMode === "token" && settings.gatewayToken ? [`Web UI (with token): ${authedUrl}`] : [],
|
|
554
|
+
`Gateway WS: ${links.wsUrl}`,
|
|
555
|
+
gatewayStatusLine,
|
|
556
|
+
"Docs: https://docs.squidclaw.dev/web/control-ui"
|
|
557
|
+
].filter(Boolean).join("\n");
|
|
558
|
+
await prompter.note(controlUiInfo, "Control UI");
|
|
559
|
+
await prompter.note([
|
|
560
|
+
"Gateway token: shared auth for the Gateway + Control UI.",
|
|
561
|
+
"Stored in: ~/.squidclaw/squidclaw.json (gateway.auth.token) or SQUIDCLAW_GATEWAY_TOKEN.",
|
|
562
|
+
`View token: ${formatCliCommand("squidclaw config get gateway.auth.token")}`,
|
|
563
|
+
`Generate token: ${formatCliCommand("squidclaw doctor --generate-gateway-token")}`,
|
|
564
|
+
"Web UI stores a copy in this browser's localStorage (squidclaw.control.settings.v1).",
|
|
565
|
+
`Open the dashboard anytime: ${formatCliCommand("squidclaw dashboard --no-open")}`,
|
|
566
|
+
"If prompted: paste the token into Control UI settings (or use the tokenized dashboard URL)."
|
|
567
|
+
].join("\n"), "Token");
|
|
568
|
+
const webSearchInfo = hasWebSearchKey ? [
|
|
530
569
|
"Web search is enabled, so your agent can look things up online when needed.",
|
|
531
570
|
"",
|
|
532
571
|
`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
|
|
572
|
+
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.`,
|
|
534
573
|
"Docs: https://docs.squidclaw.dev/tools/web"
|
|
535
|
-
]
|
|
536
|
-
"To enable web search,
|
|
537
|
-
"",
|
|
538
|
-
"Set it up interactively:",
|
|
574
|
+
] : [
|
|
575
|
+
"To enable web search, set up an API key:",
|
|
539
576
|
`- Run: ${formatCliCommand("squidclaw configure --section web")}`,
|
|
540
|
-
"-
|
|
577
|
+
"- Or set PERPLEXITY_API_KEY or BRAVE_API_KEY env var",
|
|
541
578
|
"",
|
|
542
|
-
"Alternative: set PERPLEXITY_API_KEY or BRAVE_API_KEY in the Gateway environment (no config changes).",
|
|
543
579
|
"Docs: https://docs.squidclaw.dev/tools/web"
|
|
544
|
-
]
|
|
580
|
+
];
|
|
581
|
+
await prompter.note(webSearchInfo.join("\n"), "Web search (optional)");
|
|
582
|
+
await prompter.note([
|
|
583
|
+
"This is the defining action that makes your agent you.",
|
|
584
|
+
"Please take your time.",
|
|
585
|
+
"The more you tell it, the better the experience will be.",
|
|
586
|
+
"We will send: \"Hey up, my Friend!\""
|
|
587
|
+
].join("\n"), "Start TUI (best option!)");
|
|
545
588
|
await prompter.note("What now: https://squidclaw.dev/showcase (\"What People Are Building\").", "What now");
|
|
546
589
|
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
590
|
return { launchedTui };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ot as normalizeAccountId } from "./run-with-concurrency-Baa7LYZD.js";
|
|
2
|
+
import { v as resolveAccountEntry, y as createAccountListHelpers } from "./accounts-Cnpikxly.js";
|
|
3
|
+
|
|
4
|
+
//#region src/imessage/accounts.ts
|
|
5
|
+
const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("imessage");
|
|
6
|
+
const listIMessageAccountIds = listAccountIds;
|
|
7
|
+
const resolveDefaultIMessageAccountId = resolveDefaultAccountId;
|
|
8
|
+
function resolveAccountConfig(cfg, accountId) {
|
|
9
|
+
return resolveAccountEntry(cfg.channels?.imessage?.accounts, accountId);
|
|
10
|
+
}
|
|
11
|
+
function mergeIMessageAccountConfig(cfg, accountId) {
|
|
12
|
+
const { accounts: _ignored, ...base } = cfg.channels?.imessage ?? {};
|
|
13
|
+
const account = resolveAccountConfig(cfg, accountId) ?? {};
|
|
14
|
+
return {
|
|
15
|
+
...base,
|
|
16
|
+
...account
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function resolveIMessageAccount(params) {
|
|
20
|
+
const accountId = normalizeAccountId(params.accountId);
|
|
21
|
+
const baseEnabled = params.cfg.channels?.imessage?.enabled !== false;
|
|
22
|
+
const merged = mergeIMessageAccountConfig(params.cfg, accountId);
|
|
23
|
+
const accountEnabled = merged.enabled !== false;
|
|
24
|
+
const configured = Boolean(merged.cliPath?.trim() || merged.dbPath?.trim() || merged.service || merged.region?.trim() || merged.allowFrom && merged.allowFrom.length > 0 || merged.groupAllowFrom && merged.groupAllowFrom.length > 0 || merged.dmPolicy || merged.groupPolicy || typeof merged.includeAttachments === "boolean" || merged.attachmentRoots && merged.attachmentRoots.length > 0 || merged.remoteAttachmentRoots && merged.remoteAttachmentRoots.length > 0 || typeof merged.mediaMaxMb === "number" || typeof merged.textChunkLimit === "number" || merged.groups && Object.keys(merged.groups).length > 0);
|
|
25
|
+
return {
|
|
26
|
+
accountId,
|
|
27
|
+
enabled: baseEnabled && accountEnabled,
|
|
28
|
+
name: merged.name?.trim() || void 0,
|
|
29
|
+
config: merged,
|
|
30
|
+
configured
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
//#endregion
|
|
35
|
+
export { resolveDefaultIMessageAccountId as n, resolveIMessageAccount as r, listIMessageAccountIds as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ot as normalizeAccountId } from "./run-with-concurrency-
|
|
2
|
-
import { v as resolveAccountEntry, y as createAccountListHelpers } from "./accounts-
|
|
1
|
+
import { ot as normalizeAccountId } from "./run-with-concurrency-CYcPpb5E.js";
|
|
2
|
+
import { v as resolveAccountEntry, y as createAccountListHelpers } from "./accounts-BvzvDHNx.js";
|
|
3
3
|
|
|
4
4
|
//#region src/imessage/accounts.ts
|
|
5
5
|
const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("imessage");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { at as DEFAULT_ACCOUNT_ID, ot as normalizeAccountId, st as normalizeOptionalAccountId } from "./run-with-concurrency-
|
|
2
|
-
import { Tr as formatCliCommand } from "./config-
|
|
3
|
-
import { B as success, G as getChildLogger, I as info, j as defaultRuntime, m as jidToE164, y as resolveUserPath } from "./logger-
|
|
1
|
+
import { at as DEFAULT_ACCOUNT_ID, ot as normalizeAccountId, st as normalizeOptionalAccountId } from "./run-with-concurrency-CYcPpb5E.js";
|
|
2
|
+
import { Tr as formatCliCommand } from "./config-CMjn_DSB.js";
|
|
3
|
+
import { B as success, G as getChildLogger, I as info, j as defaultRuntime, m as jidToE164, y as resolveUserPath } from "./logger-Bg4vIUJn.js";
|
|
4
4
|
import { o as resolveOAuthDir } from "./paths-Duwviem_.js";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import fs from "node:fs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ot as normalizeAccountId } from "./run-with-concurrency-
|
|
2
|
-
import { v as resolveAccountEntry, y as createAccountListHelpers } from "./accounts-
|
|
1
|
+
import { ot as normalizeAccountId } from "./run-with-concurrency-CYcPpb5E.js";
|
|
2
|
+
import { v as resolveAccountEntry, y as createAccountListHelpers } from "./accounts-BvzvDHNx.js";
|
|
3
3
|
|
|
4
4
|
//#region src/signal/accounts.ts
|
|
5
5
|
const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("signal");
|