cclawd 1.0.7 → 1.0.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.
- package/dist/{active-listener-DYmI7imH.js → active-listener-Dkhmfuwx.js} +2 -2
- package/dist/{api-key-rotation-DLU4jvSu.js → api-key-rotation-BOfI3cG3.js} +1 -1
- package/dist/{audio-preflight-C9TMbRb4.js → audio-preflight-CtkZ5SAs.js} +15 -15
- package/dist/{audio-transcription-runner-Q5zG_hYd.js → audio-transcription-runner-CbPqoiHX.js} +10 -10
- package/dist/{audit-membership-runtime-DhxSwFnF.js → audit-membership-runtime-hXUuer4x.js} +6 -6
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +35 -35
- package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
- package/dist/bundled/command-logger/handler.js +2 -2
- package/dist/bundled/session-memory/handler.js +35 -35
- package/dist/{channel-activity-Bx08UTAg.js → channel-activity-DWAER4wd.js} +2 -2
- package/dist/{commands-registry-llLVCTH9.js → commands-registry-BUyiA7nE.js} +2 -2
- package/dist/compact.runtime-DpcZpcTl.js +39 -0
- package/dist/{deliver-DJf2ZBpe.js → deliver-aHOaRbkt.js} +19 -19
- package/dist/deliver-runtime-D4bCsr6d.js +19 -0
- package/dist/deps-send-discord.runtime-BziKU-pE.js +19 -0
- package/dist/deps-send-imessage.runtime-CFRnDTqp.js +18 -0
- package/dist/deps-send-signal.runtime-BuOtABJm.js +17 -0
- package/dist/deps-send-slack.runtime-BOLqvMxW.js +17 -0
- package/dist/deps-send-telegram.runtime-DeEoFLv5.js +20 -0
- package/dist/deps-send-whatsapp.runtime-CG1uXYLY.js +43 -0
- package/dist/{diagnostic-BCCMF3O_.js → diagnostic-BdcXX9iJ.js} +2 -2
- package/dist/{env-aYXLHjfZ.js → env-lw2hsIUY.js} +1 -1
- package/dist/{fetch-bvgIiupu.js → fetch-C0iyt-Iz.js} +3 -3
- package/dist/{fetch-DCTUdr1U.js → fetch-D9NUULbj.js} +5 -5
- package/dist/{fetch-guard-CqpEmMQ2.js → fetch-guard-B5ZMnGaN.js} +2 -2
- package/dist/{frontmatter-DjZuS525.js → frontmatter-C_obXuTp.js} +3 -3
- package/dist/{github-copilot-token-CQmATy5E.js → github-copilot-token-8N63GdbE.js} +7 -7
- package/dist/{image-Q8E1-lZn.js → image-4x07m4Jl.js} +4 -4
- package/dist/image-runtime-smkMrIol.js +12 -0
- package/dist/{ir-CzM3SxId.js → ir-CsgNUpOU.js} +6 -6
- package/dist/llm-slug-generator.js +35 -35
- package/dist/{logger-ChbX1G7s.js → logger-CbUVl62f.js} +7 -7
- package/dist/{login-B0mtU11X.js → login-p_O59TVQ.js} +4 -4
- package/dist/{login-qr-DY_i60f5.js → login-qr-BCJpDsAy.js} +10 -10
- package/dist/{manager-FAQPC0uO.js → manager-CwYv8O3T.js} +12 -12
- package/dist/manager-runtime-D_jEoBr9.js +15 -0
- package/dist/{model-selection-wf3OY5DX.js → model-selection-Cv2Puf5z.js} +122 -122
- package/dist/{outbound-Bw0dOVS7.js → outbound-Chpiwybe.js} +6 -6
- package/dist/{outbound-attachment-1R6r9Pg_.js → outbound-attachment-BnAVJDLe.js} +2 -2
- package/dist/{paths-C0HLtPu0.js → paths-CehYKFsO.js} +7 -7
- package/dist/{paths-hfkBoC7i.js → paths-DkxwiA8g.js} +5 -5
- package/dist/{pi-embedded-BAHaY-Oh.js → pi-embedded-CJVNBk0y.js} +150 -150
- package/dist/pi-model-discovery-7IzK0Uc3.js +131 -0
- package/dist/pi-model-discovery-runtime-DABef3qy.js +12 -0
- package/dist/{pi-tools.before-tool-call.runtime-D_mthvtC.js → pi-tools.before-tool-call.runtime-BP2UvGJb.js} +10 -10
- package/dist/plugin-sdk/active-listener-CN-tMEvN.js +35 -0
- package/dist/plugin-sdk/api-key-rotation-CimGYMBc.js +176 -0
- package/dist/plugin-sdk/audio-preflight-C-xXBoE2.js +51 -0
- package/dist/plugin-sdk/audio-transcription-runner-CTIHpebA.js +2173 -0
- package/dist/plugin-sdk/audit-membership-runtime-BFatB2LJ.js +58 -0
- package/dist/plugin-sdk/channel-activity-DO0FEzyj.js +95 -0
- package/dist/plugin-sdk/channel-web-Da-__nUF.js +2238 -0
- package/dist/plugin-sdk/commands-registry-6no2NNrY.js +1118 -0
- package/dist/plugin-sdk/compact.runtime-CCoclu5e.js +35 -0
- package/dist/plugin-sdk/compat.js +35 -35
- package/dist/plugin-sdk/config-B9ODwgpz.js +37426 -0
- package/dist/plugin-sdk/deliver-B1fFpKjV.js +1757 -0
- package/dist/plugin-sdk/deliver-runtime-DB-VRMe1.js +15 -0
- package/dist/plugin-sdk/deps-send-discord.runtime-DklqycYG.js +15 -0
- package/dist/plugin-sdk/deps-send-imessage.runtime-Chs8zeon.js +14 -0
- package/dist/plugin-sdk/deps-send-signal.runtime-clW9aSJP.js +13 -0
- package/dist/plugin-sdk/deps-send-slack.runtime-BUx0LYY1.js +13 -0
- package/dist/plugin-sdk/deps-send-telegram.runtime-LECSHgMG.js +16 -0
- package/dist/plugin-sdk/deps-send-whatsapp.runtime-D2d65fw0.js +40 -0
- package/dist/plugin-sdk/diagnostic-CxIvS-C2.js +315 -0
- package/dist/plugin-sdk/dispatch-BqlR4dPx.js +105863 -0
- package/dist/plugin-sdk/env-b9k1PHMI.js +34 -0
- package/dist/plugin-sdk/fetch-PoxzAANT.js +326 -0
- package/dist/plugin-sdk/fetch-guard-4UVSZ0uS.js +164 -0
- package/dist/plugin-sdk/image-Ch6M4tnJ.js +2420 -0
- package/dist/plugin-sdk/image-runtime-CSh2o5wY.js +8 -0
- package/dist/plugin-sdk/ir-CugsqGH8.js +1312 -0
- package/dist/plugin-sdk/local-roots-adnEg9zb.js +217 -0
- package/dist/plugin-sdk/logger-D6zRubj0.js +1164 -0
- package/dist/plugin-sdk/login-CYvkQ0At.js +54 -0
- package/dist/plugin-sdk/login-qr-ll4NtaT5.js +316 -0
- package/dist/plugin-sdk/manager-CHy8IclH.js +3959 -0
- package/dist/plugin-sdk/manager-runtime-C70EkEr7.js +11 -0
- package/dist/plugin-sdk/outbound-Wzs2iN7X.js +216 -0
- package/dist/plugin-sdk/outbound-attachment-khXJwucX.js +17 -0
- package/dist/plugin-sdk/paths-BtVqCdw4.js +3063 -0
- package/dist/{pi-model-discovery-ItS07aJB.js → plugin-sdk/pi-model-discovery-Dh4ziodY.js} +2 -2
- package/dist/plugin-sdk/pi-model-discovery-runtime-b83Xe-HT.js +8 -0
- package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-C1z5CDBF.js +349 -0
- package/dist/{proxy-fetch-c1ZUFFcO.js → plugin-sdk/proxy-fetch-CJEmoBxi.js} +1 -1
- package/dist/plugin-sdk/pw-ai-Dj3Cvlzl.js +1990 -0
- package/dist/plugin-sdk/qmd-manager-egHUAseQ.js +1581 -0
- package/dist/plugin-sdk/resolve-outbound-target-BiICvIKs.js +38 -0
- package/dist/plugin-sdk/runtime-whatsapp-login.runtime-DNApufzW.js +9 -0
- package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-CBmtfIQ8.js +13 -0
- package/dist/plugin-sdk/send-CScblaI4.js +532 -0
- package/dist/plugin-sdk/send-CeHhnld6.js +407 -0
- package/dist/plugin-sdk/send-DP_c8JfR.js +3277 -0
- package/dist/plugin-sdk/send-Dc5fI6e8.js +495 -0
- package/dist/plugin-sdk/send-l-77_s1_.js +2507 -0
- package/dist/plugin-sdk/session-CkOKZaqa.js +166 -0
- package/dist/plugin-sdk/signal.js +2 -2
- package/dist/plugin-sdk/skill-commands-BohYCgkq.js +336 -0
- package/dist/plugin-sdk/slash-commands.runtime-DpLfVTM6.js +8 -0
- package/dist/plugin-sdk/slash-dispatch.runtime-CASMHwpm.js +35 -0
- package/dist/plugin-sdk/slash-skill-commands.runtime-D7rrJEci.js +9 -0
- package/dist/plugin-sdk/sqlite-CJE3X7Mv.js +1005 -0
- package/dist/plugin-sdk/subagent-registry-runtime-B1oo5bih.js +35 -0
- package/dist/plugin-sdk/tables-D5VgpTmm.js +53 -0
- package/dist/plugin-sdk/target-errors-C6zZ_OpA.js +191 -0
- package/dist/{tokens-BWDIKewp.js → plugin-sdk/tokens-DUnJnpMS.js} +1 -1
- package/dist/plugin-sdk/web-TfUM1nSi.js +39 -0
- package/dist/plugin-sdk/whatsapp-actions-DuWJ0j1r.js +71 -0
- package/dist/proxy-fetch-BOh1PLOW.js +54 -0
- package/dist/{pw-ai-Ok6KGelf.js → pw-ai-DwH5GpEO.js} +9 -9
- package/dist/{qmd-manager-DhfEz4Ar.js → qmd-manager-DEscZz5_.js} +6 -6
- package/dist/{query-expansion-GqNV2iIE.js → query-expansion-BErUY8P2.js} +4 -4
- package/dist/runtime-whatsapp-login.runtime-BI3U306v.js +13 -0
- package/dist/runtime-whatsapp-outbound.runtime-Bsc2uD09.js +17 -0
- package/dist/{send-DwAoiT2p.js → send-BDnOgWIp.js} +25 -25
- package/dist/{send-CS0ocZHl.js → send-C-Q_WPMf.js} +3 -3
- package/dist/{send-6R8b9zsj.js → send-DUibfNQD.js} +5 -5
- package/dist/{send-DPflcjM5.js → send-DtBvCnPQ.js} +6 -6
- package/dist/{send-CEg4P96c.js → send-ORtn50qg.js} +5 -5
- package/dist/{session-BoIID5UR.js → session-B7imi6T5.js} +7 -7
- package/dist/{skill-commands-DhdiziMs.js → skill-commands-B9brPuiL.js} +9 -9
- package/dist/slash-commands.runtime-Cf6ygfBp.js +12 -0
- package/dist/slash-dispatch.runtime-CsmvhO5K.js +39 -0
- package/dist/slash-skill-commands.runtime-CX7stIEP.js +13 -0
- package/dist/subagent-registry-runtime-B_S1nf7y.js +39 -0
- package/dist/{subsystem-C8z6w6xC.js → subsystem-DfXy5gUB.js} +14 -14
- package/dist/{tables-DQusRhkD.js → tables-CjQqTOdD.js} +1 -1
- package/dist/{target-errors-CfavnC9U.js → target-errors-BZE1mc-W.js} +1 -1
- package/dist/tokens-6ul2IrzG.js +50 -0
- package/dist/{web-CrcrTQ2c.js → web-Cd8yK1Zq.js} +39 -39
- package/dist/{whatsapp-actions-B0u0ZAme.js → whatsapp-actions-CYEzUMBI.js} +15 -15
- package/dist/{workspace-CWDYHR27.js → workspace-DGIcKCCW.js} +20 -20
- package/extensions/cclawd-mfa-auth/README.md +118 -0
- package/extensions/cclawd-mfa-auth/index.ts +382 -0
- package/extensions/cclawd-mfa-auth/openclaw.plugin.json +34 -0
- package/extensions/cclawd-mfa-auth/package.json +27 -0
- package/extensions/cclawd-mfa-auth/src/auth-manager.ts +536 -0
- package/extensions/cclawd-mfa-auth/src/config.ts +82 -0
- package/extensions/cclawd-mfa-auth/src/dabby-client.ts +200 -0
- package/extensions/cclawd-mfa-auth/src/notification-service.ts +417 -0
- package/extensions/cclawd-mfa-auth/src/polling-manager.ts +232 -0
- package/extensions/cclawd-mfa-auth/src/providers/base.ts +25 -0
- package/extensions/cclawd-mfa-auth/src/providers/qr-code.ts +98 -0
- package/extensions/cclawd-mfa-auth/src/sensitive-detector.ts +159 -0
- package/extensions/cclawd-mfa-auth/src/session-resolver.ts +159 -0
- package/extensions/cclawd-mfa-auth/src/types.ts +156 -0
- package/extensions/mfa-auth/index.ts +675 -1028
- package/extensions/mfa-auth/openclaw.plugin.json +1 -1
- package/extensions/mfa-auth/src/notification-service.ts +2 -8
- package/package.json +453 -453
- package/dist/compact.runtime-BEn3giMt.js +0 -39
- package/dist/deliver-runtime-DkQ3XzGv.js +0 -19
- package/dist/deps-send-discord.runtime-BLpqSj6s.js +0 -19
- package/dist/deps-send-imessage.runtime-BFzyYqvR.js +0 -18
- package/dist/deps-send-signal.runtime-DT0TYCy1.js +0 -17
- package/dist/deps-send-slack.runtime-BhaGFfMX.js +0 -17
- package/dist/deps-send-telegram.runtime-B6Cic9NX.js +0 -20
- package/dist/deps-send-whatsapp.runtime-WtEhIq2S.js +0 -43
- package/dist/image-runtime-B1LFYfQ2.js +0 -12
- package/dist/manager-runtime-Da7ME9vS.js +0 -15
- package/dist/pi-model-discovery-runtime-DjM7Z1fx.js +0 -12
- package/dist/runtime-whatsapp-login.runtime-D4BRhQkK.js +0 -13
- package/dist/runtime-whatsapp-outbound.runtime-DJPpS6g-.js +0 -17
- package/dist/slash-commands.runtime-Cu1lTjV9.js +0 -12
- package/dist/slash-dispatch.runtime-DRVJEF4l.js +0 -39
- package/dist/slash-skill-commands.runtime-C373PJjv.js +0 -13
- package/dist/subagent-registry-runtime-D7hWBo1G.js +0 -39
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import "./paths-BtVqCdw4.js";
|
|
2
|
+
import "./config-B9ODwgpz.js";
|
|
3
|
+
import { a as countPendingDescendantRuns, c as listSubagentRunsForRequester, d as shouldIgnorePostCompletionAnnounceForSession, i as countActiveDescendantRuns, l as replaceSubagentRunAfterSteer, o as countPendingDescendantRunsExcludingRun, s as isSubagentSessionRunActive, u as resolveRequesterForChildSession } from "./dispatch-BqlR4dPx.js";
|
|
4
|
+
import "./paths-eFexkPEh.js";
|
|
5
|
+
import "./github-copilot-token-Cxf8QYZb.js";
|
|
6
|
+
import "./logger-D6zRubj0.js";
|
|
7
|
+
import "./env-b9k1PHMI.js";
|
|
8
|
+
import "./send-DP_c8JfR.js";
|
|
9
|
+
import "./fetch-BSKpf2dM.js";
|
|
10
|
+
import "./channel-activity-DO0FEzyj.js";
|
|
11
|
+
import "./fetch-guard-4UVSZ0uS.js";
|
|
12
|
+
import "./local-roots-adnEg9zb.js";
|
|
13
|
+
import "./ir-CugsqGH8.js";
|
|
14
|
+
import "./render-CKf6NJ1M.js";
|
|
15
|
+
import "./tables-D5VgpTmm.js";
|
|
16
|
+
import "./send-l-77_s1_.js";
|
|
17
|
+
import "./target-errors-C6zZ_OpA.js";
|
|
18
|
+
import "./send-CeHhnld6.js";
|
|
19
|
+
import "./deliver-B1fFpKjV.js";
|
|
20
|
+
import "./diagnostic-CxIvS-C2.js";
|
|
21
|
+
import "./pi-model-discovery-Dh4ziodY.js";
|
|
22
|
+
import "./audio-transcription-runner-CTIHpebA.js";
|
|
23
|
+
import "./image-Ch6M4tnJ.js";
|
|
24
|
+
import "./api-key-rotation-CimGYMBc.js";
|
|
25
|
+
import "./proxy-fetch-CJEmoBxi.js";
|
|
26
|
+
import "./tokens-DUnJnpMS.js";
|
|
27
|
+
import "./commands-registry-6no2NNrY.js";
|
|
28
|
+
import "./skill-commands-BohYCgkq.js";
|
|
29
|
+
import "./send-CScblaI4.js";
|
|
30
|
+
import "./outbound-attachment-khXJwucX.js";
|
|
31
|
+
import "./send-Dc5fI6e8.js";
|
|
32
|
+
import "./sqlite-CJE3X7Mv.js";
|
|
33
|
+
import "./fetch-PoxzAANT.js";
|
|
34
|
+
import "./manager-CHy8IclH.js";
|
|
35
|
+
export { countActiveDescendantRuns, countPendingDescendantRuns, countPendingDescendantRunsExcludingRun, isSubagentSessionRunActive, listSubagentRunsForRequester, replaceSubagentRunAfterSteer, resolveRequesterForChildSession, shouldIgnorePostCompletionAnnounceForSession };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { r as markdownToIRWithMeta } from "./ir-CugsqGH8.js";
|
|
2
|
+
import { t as renderMarkdownWithMarkers } from "./render-CKf6NJ1M.js";
|
|
3
|
+
//#region src/markdown/tables.ts
|
|
4
|
+
const MARKDOWN_STYLE_MARKERS = {
|
|
5
|
+
bold: {
|
|
6
|
+
open: "**",
|
|
7
|
+
close: "**"
|
|
8
|
+
},
|
|
9
|
+
italic: {
|
|
10
|
+
open: "_",
|
|
11
|
+
close: "_"
|
|
12
|
+
},
|
|
13
|
+
strikethrough: {
|
|
14
|
+
open: "~~",
|
|
15
|
+
close: "~~"
|
|
16
|
+
},
|
|
17
|
+
code: {
|
|
18
|
+
open: "`",
|
|
19
|
+
close: "`"
|
|
20
|
+
},
|
|
21
|
+
code_block: {
|
|
22
|
+
open: "```\n",
|
|
23
|
+
close: "```"
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
function convertMarkdownTables(markdown, mode) {
|
|
27
|
+
if (!markdown || mode === "off") return markdown;
|
|
28
|
+
const { ir, hasTables } = markdownToIRWithMeta(markdown, {
|
|
29
|
+
linkify: false,
|
|
30
|
+
autolink: false,
|
|
31
|
+
headingStyle: "none",
|
|
32
|
+
blockquotePrefix: "",
|
|
33
|
+
tableMode: mode
|
|
34
|
+
});
|
|
35
|
+
if (!hasTables) return markdown;
|
|
36
|
+
return renderMarkdownWithMarkers(ir, {
|
|
37
|
+
styleMarkers: MARKDOWN_STYLE_MARKERS,
|
|
38
|
+
escapeText: (text) => text,
|
|
39
|
+
buildLink: (link, text) => {
|
|
40
|
+
const href = link.href.trim();
|
|
41
|
+
if (!href) return null;
|
|
42
|
+
if (!text.slice(link.start, link.end)) return null;
|
|
43
|
+
return {
|
|
44
|
+
start: link.start,
|
|
45
|
+
end: link.end,
|
|
46
|
+
open: "[",
|
|
47
|
+
close: `](${href})`
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
export { convertMarkdownTables as t };
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { Ts as detectMime, Vn as sanitizeToolResultImages } from "./config-B9ODwgpz.js";
|
|
2
|
+
import fs from "node:fs/promises";
|
|
3
|
+
//#region src/agents/tools/common.ts
|
|
4
|
+
var ToolInputError = class extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.status = 400;
|
|
8
|
+
this.name = "ToolInputError";
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
var ToolAuthorizationError = class extends ToolInputError {
|
|
12
|
+
constructor(message) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.status = 403;
|
|
15
|
+
this.name = "ToolAuthorizationError";
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
function createActionGate(actions) {
|
|
19
|
+
return (key, defaultValue = true) => {
|
|
20
|
+
const value = actions?.[key];
|
|
21
|
+
if (value === void 0) return defaultValue;
|
|
22
|
+
return value !== false;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function toSnakeCaseKey(key) {
|
|
26
|
+
return key.replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2").replace(/([a-z0-9])([A-Z])/g, "$1_$2").toLowerCase();
|
|
27
|
+
}
|
|
28
|
+
function readParamRaw(params, key) {
|
|
29
|
+
if (Object.hasOwn(params, key)) return params[key];
|
|
30
|
+
const snakeKey = toSnakeCaseKey(key);
|
|
31
|
+
if (snakeKey !== key && Object.hasOwn(params, snakeKey)) return params[snakeKey];
|
|
32
|
+
}
|
|
33
|
+
function readStringParam(params, key, options = {}) {
|
|
34
|
+
const { required = false, trim = true, label = key, allowEmpty = false } = options;
|
|
35
|
+
const raw = readParamRaw(params, key);
|
|
36
|
+
if (typeof raw !== "string") {
|
|
37
|
+
if (required) throw new ToolInputError(`${label} required`);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const value = trim ? raw.trim() : raw;
|
|
41
|
+
if (!value && !allowEmpty) {
|
|
42
|
+
if (required) throw new ToolInputError(`${label} required`);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
return value;
|
|
46
|
+
}
|
|
47
|
+
function readStringOrNumberParam(params, key, options = {}) {
|
|
48
|
+
const { required = false, label = key } = options;
|
|
49
|
+
const raw = readParamRaw(params, key);
|
|
50
|
+
if (typeof raw === "number" && Number.isFinite(raw)) return String(raw);
|
|
51
|
+
if (typeof raw === "string") {
|
|
52
|
+
const value = raw.trim();
|
|
53
|
+
if (value) return value;
|
|
54
|
+
}
|
|
55
|
+
if (required) throw new ToolInputError(`${label} required`);
|
|
56
|
+
}
|
|
57
|
+
function readNumberParam(params, key, options = {}) {
|
|
58
|
+
const { required = false, label = key, integer = false, strict = false } = options;
|
|
59
|
+
const raw = readParamRaw(params, key);
|
|
60
|
+
let value;
|
|
61
|
+
if (typeof raw === "number" && Number.isFinite(raw)) value = raw;
|
|
62
|
+
else if (typeof raw === "string") {
|
|
63
|
+
const trimmed = raw.trim();
|
|
64
|
+
if (trimmed) {
|
|
65
|
+
const parsed = strict ? Number(trimmed) : Number.parseFloat(trimmed);
|
|
66
|
+
if (Number.isFinite(parsed)) value = parsed;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (value === void 0) {
|
|
70
|
+
if (required) throw new ToolInputError(`${label} required`);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
return integer ? Math.trunc(value) : value;
|
|
74
|
+
}
|
|
75
|
+
function readStringArrayParam(params, key, options = {}) {
|
|
76
|
+
const { required = false, label = key } = options;
|
|
77
|
+
const raw = readParamRaw(params, key);
|
|
78
|
+
if (Array.isArray(raw)) {
|
|
79
|
+
const values = raw.filter((entry) => typeof entry === "string").map((entry) => entry.trim()).filter(Boolean);
|
|
80
|
+
if (values.length === 0) {
|
|
81
|
+
if (required) throw new ToolInputError(`${label} required`);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
return values;
|
|
85
|
+
}
|
|
86
|
+
if (typeof raw === "string") {
|
|
87
|
+
const value = raw.trim();
|
|
88
|
+
if (!value) {
|
|
89
|
+
if (required) throw new ToolInputError(`${label} required`);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
return [value];
|
|
93
|
+
}
|
|
94
|
+
if (required) throw new ToolInputError(`${label} required`);
|
|
95
|
+
}
|
|
96
|
+
function readReactionParams(params, options) {
|
|
97
|
+
const emojiKey = options.emojiKey ?? "emoji";
|
|
98
|
+
const removeKey = options.removeKey ?? "remove";
|
|
99
|
+
const remove = typeof params[removeKey] === "boolean" ? params[removeKey] : false;
|
|
100
|
+
const emoji = readStringParam(params, emojiKey, {
|
|
101
|
+
required: true,
|
|
102
|
+
allowEmpty: true
|
|
103
|
+
});
|
|
104
|
+
if (remove && !emoji) throw new ToolInputError(options.removeErrorMessage);
|
|
105
|
+
return {
|
|
106
|
+
emoji,
|
|
107
|
+
remove,
|
|
108
|
+
isEmpty: !emoji
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function jsonResult(payload) {
|
|
112
|
+
return {
|
|
113
|
+
content: [{
|
|
114
|
+
type: "text",
|
|
115
|
+
text: JSON.stringify(payload, null, 2)
|
|
116
|
+
}],
|
|
117
|
+
details: payload
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
async function imageResult(params) {
|
|
121
|
+
return await sanitizeToolResultImages({
|
|
122
|
+
content: [{
|
|
123
|
+
type: "text",
|
|
124
|
+
text: params.extraText ?? `MEDIA:${params.path}`
|
|
125
|
+
}, {
|
|
126
|
+
type: "image",
|
|
127
|
+
data: params.base64,
|
|
128
|
+
mimeType: params.mimeType
|
|
129
|
+
}],
|
|
130
|
+
details: {
|
|
131
|
+
path: params.path,
|
|
132
|
+
...params.details
|
|
133
|
+
}
|
|
134
|
+
}, params.label, params.imageSanitization);
|
|
135
|
+
}
|
|
136
|
+
async function imageResultFromFile(params) {
|
|
137
|
+
const buf = await fs.readFile(params.path);
|
|
138
|
+
const mimeType = await detectMime({ buffer: buf.slice(0, 256) }) ?? "image/png";
|
|
139
|
+
return await imageResult({
|
|
140
|
+
label: params.label,
|
|
141
|
+
path: params.path,
|
|
142
|
+
base64: buf.toString("base64"),
|
|
143
|
+
mimeType,
|
|
144
|
+
extraText: params.extraText,
|
|
145
|
+
details: params.details,
|
|
146
|
+
imageSanitization: params.imageSanitization
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Validate and parse an `availableTags` parameter from untrusted input.
|
|
151
|
+
* Returns `undefined` when the value is missing or not an array.
|
|
152
|
+
* Entries that lack a string `name` are silently dropped.
|
|
153
|
+
*/
|
|
154
|
+
function parseAvailableTags(raw) {
|
|
155
|
+
if (raw === void 0 || raw === null) return;
|
|
156
|
+
if (!Array.isArray(raw)) return;
|
|
157
|
+
const result = raw.filter((t) => typeof t === "object" && t !== null && typeof t.name === "string").map((t) => ({
|
|
158
|
+
...t.id !== void 0 && typeof t.id === "string" ? { id: t.id } : {},
|
|
159
|
+
name: t.name,
|
|
160
|
+
...typeof t.moderated === "boolean" ? { moderated: t.moderated } : {},
|
|
161
|
+
...t.emoji_id === null || typeof t.emoji_id === "string" ? { emoji_id: t.emoji_id } : {},
|
|
162
|
+
...t.emoji_name === null || typeof t.emoji_name === "string" ? { emoji_name: t.emoji_name } : {}
|
|
163
|
+
}));
|
|
164
|
+
return result.length ? result : void 0;
|
|
165
|
+
}
|
|
166
|
+
//#endregion
|
|
167
|
+
//#region src/infra/outbound/target-errors.ts
|
|
168
|
+
function missingTargetMessage(provider, hint) {
|
|
169
|
+
return `Delivering to ${provider} requires target${formatTargetHint(hint)}`;
|
|
170
|
+
}
|
|
171
|
+
function missingTargetError(provider, hint) {
|
|
172
|
+
return new Error(missingTargetMessage(provider, hint));
|
|
173
|
+
}
|
|
174
|
+
function ambiguousTargetMessage(provider, raw, hint) {
|
|
175
|
+
return `Ambiguous target "${raw}" for ${provider}. Provide a unique name or an explicit id.${formatTargetHint(hint, true)}`;
|
|
176
|
+
}
|
|
177
|
+
function ambiguousTargetError(provider, raw, hint) {
|
|
178
|
+
return new Error(ambiguousTargetMessage(provider, raw, hint));
|
|
179
|
+
}
|
|
180
|
+
function unknownTargetMessage(provider, raw, hint) {
|
|
181
|
+
return `Unknown target "${raw}" for ${provider}.${formatTargetHint(hint, true)}`;
|
|
182
|
+
}
|
|
183
|
+
function unknownTargetError(provider, raw, hint) {
|
|
184
|
+
return new Error(unknownTargetMessage(provider, raw, hint));
|
|
185
|
+
}
|
|
186
|
+
function formatTargetHint(hint, withLabel = false) {
|
|
187
|
+
if (!hint) return "";
|
|
188
|
+
return withLabel ? ` Hint: ${hint}` : ` ${hint}`;
|
|
189
|
+
}
|
|
190
|
+
//#endregion
|
|
191
|
+
export { ToolInputError as a, imageResultFromFile as c, readNumberParam as d, readReactionParams as f, readStringParam as h, ToolAuthorizationError as i, jsonResult as l, readStringOrNumberParam as m, missingTargetError as n, createActionGate as o, readStringArrayParam as p, unknownTargetError as r, imageResult as s, ambiguousTargetError as t, parseAvailableTags as u };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import "./paths-BtVqCdw4.js";
|
|
2
|
+
import { Ka as logWebSelfId, Wa as WA_WEB_AUTH_DIR, Ya as pickWebChannel, to as webAuthExists } from "./config-B9ODwgpz.js";
|
|
3
|
+
import "./dispatch-BqlR4dPx.js";
|
|
4
|
+
import "./paths-eFexkPEh.js";
|
|
5
|
+
import "./github-copilot-token-Cxf8QYZb.js";
|
|
6
|
+
import "./logger-D6zRubj0.js";
|
|
7
|
+
import "./env-b9k1PHMI.js";
|
|
8
|
+
import "./send-DP_c8JfR.js";
|
|
9
|
+
import "./fetch-BSKpf2dM.js";
|
|
10
|
+
import "./channel-activity-DO0FEzyj.js";
|
|
11
|
+
import "./fetch-guard-4UVSZ0uS.js";
|
|
12
|
+
import "./local-roots-adnEg9zb.js";
|
|
13
|
+
import "./ir-CugsqGH8.js";
|
|
14
|
+
import "./render-CKf6NJ1M.js";
|
|
15
|
+
import "./tables-D5VgpTmm.js";
|
|
16
|
+
import "./send-l-77_s1_.js";
|
|
17
|
+
import "./target-errors-C6zZ_OpA.js";
|
|
18
|
+
import "./send-CeHhnld6.js";
|
|
19
|
+
import "./deliver-B1fFpKjV.js";
|
|
20
|
+
import "./diagnostic-CxIvS-C2.js";
|
|
21
|
+
import "./pi-model-discovery-Dh4ziodY.js";
|
|
22
|
+
import "./audio-transcription-runner-CTIHpebA.js";
|
|
23
|
+
import "./image-Ch6M4tnJ.js";
|
|
24
|
+
import "./api-key-rotation-CimGYMBc.js";
|
|
25
|
+
import "./proxy-fetch-CJEmoBxi.js";
|
|
26
|
+
import "./tokens-DUnJnpMS.js";
|
|
27
|
+
import "./commands-registry-6no2NNrY.js";
|
|
28
|
+
import "./skill-commands-BohYCgkq.js";
|
|
29
|
+
import "./send-CScblaI4.js";
|
|
30
|
+
import "./outbound-attachment-khXJwucX.js";
|
|
31
|
+
import "./send-Dc5fI6e8.js";
|
|
32
|
+
import "./sqlite-CJE3X7Mv.js";
|
|
33
|
+
import "./fetch-PoxzAANT.js";
|
|
34
|
+
import "./manager-CHy8IclH.js";
|
|
35
|
+
import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-Da-__nUF.js";
|
|
36
|
+
import { t as sendMessageWhatsApp } from "./outbound-Wzs2iN7X.js";
|
|
37
|
+
import { i as waitForWaConnection, t as createWaSocket } from "./session-CkOKZaqa.js";
|
|
38
|
+
import { t as loginWeb } from "./login-CYvkQ0At.js";
|
|
39
|
+
export { WA_WEB_AUTH_DIR, createWaSocket, logWebSelfId, loginWeb, monitorWebChannel, monitorWebInbox, pickWebChannel, sendMessageWhatsApp, waitForWaConnection, webAuthExists };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import "./paths-BtVqCdw4.js";
|
|
2
|
+
import { Va as resolveWhatsAppAccount } from "./config-B9ODwgpz.js";
|
|
3
|
+
import "./paths-eFexkPEh.js";
|
|
4
|
+
import "./github-copilot-token-Cxf8QYZb.js";
|
|
5
|
+
import "./logger-D6zRubj0.js";
|
|
6
|
+
import "./env-b9k1PHMI.js";
|
|
7
|
+
import "./fetch-guard-4UVSZ0uS.js";
|
|
8
|
+
import "./local-roots-adnEg9zb.js";
|
|
9
|
+
import "./ir-CugsqGH8.js";
|
|
10
|
+
import "./render-CKf6NJ1M.js";
|
|
11
|
+
import "./tables-D5VgpTmm.js";
|
|
12
|
+
import { f as readReactionParams, h as readStringParam, i as ToolAuthorizationError, l as jsonResult, o as createActionGate } from "./target-errors-C6zZ_OpA.js";
|
|
13
|
+
import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-BiICvIKs.js";
|
|
14
|
+
import { r as sendReactionWhatsApp } from "./outbound-Wzs2iN7X.js";
|
|
15
|
+
//#region src/agents/tools/whatsapp-target-auth.ts
|
|
16
|
+
function resolveAuthorizedWhatsAppOutboundTarget(params) {
|
|
17
|
+
const account = resolveWhatsAppAccount({
|
|
18
|
+
cfg: params.cfg,
|
|
19
|
+
accountId: params.accountId
|
|
20
|
+
});
|
|
21
|
+
const resolution = resolveWhatsAppOutboundTarget({
|
|
22
|
+
to: params.chatJid,
|
|
23
|
+
allowFrom: account.allowFrom ?? [],
|
|
24
|
+
mode: "implicit"
|
|
25
|
+
});
|
|
26
|
+
if (!resolution.ok) throw new ToolAuthorizationError(`WhatsApp ${params.actionLabel} blocked: chatJid "${params.chatJid}" is not in the configured allowFrom list for account "${account.accountId}".`);
|
|
27
|
+
return {
|
|
28
|
+
to: resolution.to,
|
|
29
|
+
accountId: account.accountId
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
//#region src/agents/tools/whatsapp-actions.ts
|
|
34
|
+
async function handleWhatsAppAction(params, cfg) {
|
|
35
|
+
const action = readStringParam(params, "action", { required: true });
|
|
36
|
+
const isActionEnabled = createActionGate(cfg.channels?.whatsapp?.actions);
|
|
37
|
+
if (action === "react") {
|
|
38
|
+
if (!isActionEnabled("reactions")) throw new Error("WhatsApp reactions are disabled.");
|
|
39
|
+
const chatJid = readStringParam(params, "chatJid", { required: true });
|
|
40
|
+
const messageId = readStringParam(params, "messageId", { required: true });
|
|
41
|
+
const { emoji, remove, isEmpty } = readReactionParams(params, { removeErrorMessage: "Emoji is required to remove a WhatsApp reaction." });
|
|
42
|
+
const participant = readStringParam(params, "participant");
|
|
43
|
+
const accountId = readStringParam(params, "accountId");
|
|
44
|
+
const fromMeRaw = params.fromMe;
|
|
45
|
+
const fromMe = typeof fromMeRaw === "boolean" ? fromMeRaw : void 0;
|
|
46
|
+
const resolved = resolveAuthorizedWhatsAppOutboundTarget({
|
|
47
|
+
cfg,
|
|
48
|
+
chatJid,
|
|
49
|
+
accountId,
|
|
50
|
+
actionLabel: "reaction"
|
|
51
|
+
});
|
|
52
|
+
const resolvedEmoji = remove ? "" : emoji;
|
|
53
|
+
await sendReactionWhatsApp(resolved.to, messageId, resolvedEmoji, {
|
|
54
|
+
verbose: false,
|
|
55
|
+
fromMe,
|
|
56
|
+
participant: participant ?? void 0,
|
|
57
|
+
accountId: resolved.accountId
|
|
58
|
+
});
|
|
59
|
+
if (!remove && !isEmpty) return jsonResult({
|
|
60
|
+
ok: true,
|
|
61
|
+
added: emoji
|
|
62
|
+
});
|
|
63
|
+
return jsonResult({
|
|
64
|
+
ok: true,
|
|
65
|
+
removed: true
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
throw new Error(`Unsupported WhatsApp action: ${action}`);
|
|
69
|
+
}
|
|
70
|
+
//#endregion
|
|
71
|
+
export { handleWhatsAppAction };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { i as logWarn } from "./logger-CbUVl62f.js";
|
|
2
|
+
import { EnvHttpProxyAgent, ProxyAgent, fetch } from "undici";
|
|
3
|
+
//#region src/infra/net/proxy-fetch.ts
|
|
4
|
+
const PROXY_FETCH_PROXY_URL = Symbol.for("openclaw.proxyFetch.proxyUrl");
|
|
5
|
+
/**
|
|
6
|
+
* Create a fetch function that routes requests through the given HTTP proxy.
|
|
7
|
+
* Uses undici's ProxyAgent under the hood.
|
|
8
|
+
*/
|
|
9
|
+
function makeProxyFetch(proxyUrl) {
|
|
10
|
+
let agent = null;
|
|
11
|
+
const resolveAgent = () => {
|
|
12
|
+
if (!agent) agent = new ProxyAgent(proxyUrl);
|
|
13
|
+
return agent;
|
|
14
|
+
};
|
|
15
|
+
const proxyFetch = ((input, init) => fetch(input, {
|
|
16
|
+
...init,
|
|
17
|
+
dispatcher: resolveAgent()
|
|
18
|
+
}));
|
|
19
|
+
Object.defineProperty(proxyFetch, PROXY_FETCH_PROXY_URL, {
|
|
20
|
+
value: proxyUrl,
|
|
21
|
+
enumerable: false,
|
|
22
|
+
configurable: false,
|
|
23
|
+
writable: false
|
|
24
|
+
});
|
|
25
|
+
return proxyFetch;
|
|
26
|
+
}
|
|
27
|
+
function getProxyUrlFromFetch(fetchImpl) {
|
|
28
|
+
const proxyUrl = fetchImpl?.[PROXY_FETCH_PROXY_URL];
|
|
29
|
+
if (typeof proxyUrl !== "string") return;
|
|
30
|
+
const trimmed = proxyUrl.trim();
|
|
31
|
+
return trimmed ? trimmed : void 0;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Resolve a proxy-aware fetch from standard environment variables
|
|
35
|
+
* (HTTPS_PROXY, HTTP_PROXY, https_proxy, http_proxy).
|
|
36
|
+
* Respects NO_PROXY / no_proxy exclusions via undici's EnvHttpProxyAgent.
|
|
37
|
+
* Returns undefined when no proxy is configured.
|
|
38
|
+
* Gracefully returns undefined if the proxy URL is malformed.
|
|
39
|
+
*/
|
|
40
|
+
function resolveProxyFetchFromEnv() {
|
|
41
|
+
if (!(process.env.HTTPS_PROXY || process.env.HTTP_PROXY || process.env.https_proxy || process.env.http_proxy)?.trim()) return;
|
|
42
|
+
try {
|
|
43
|
+
const agent = new EnvHttpProxyAgent();
|
|
44
|
+
return ((input, init) => fetch(input, {
|
|
45
|
+
...init,
|
|
46
|
+
dispatcher: agent
|
|
47
|
+
}));
|
|
48
|
+
} catch (err) {
|
|
49
|
+
logWarn(`Proxy env var set but agent creation failed — falling back to direct fetch: ${err instanceof Error ? err.message : String(err)}`);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//#endregion
|
|
54
|
+
export { makeProxyFetch as n, resolveProxyFetchFromEnv as r, getProxyUrlFromFetch as t };
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { _ as writeFileFromPathWithinRoot } from "./paths-
|
|
2
|
-
import "./paths-
|
|
3
|
-
import { E as resolvePreferredOpenClawTmpDir } from "./subsystem-
|
|
4
|
-
import "./workspace-
|
|
5
|
-
import "./logger-
|
|
6
|
-
import { $i as assertBrowserNavigationRedirectChainAllowed, Ci as normalizeCdpHttpBaseForJsonEndpoints, Ei as withNoProxyForCdpUrl, Gi as resolveStrictExistingPathsWithinRoot, Hi as DEFAULT_TRACE_DIR, Ji as formatErrorMessage, Qi as assertBrowserNavigationAllowed, Si as getHeadersWithAuth, Ui as DEFAULT_UPLOAD_DIR, Zi as BrowserTabNotFoundError, bi as appendCdpPath, di as getChromeWebSocketUrl, ea as assertBrowserNavigationResultAllowed, nc as formatCliCommand, ta as withBrowserNavigationPolicy, vi as formatAriaSnapshot, wi as withCdpSocket, xi as fetchJson, yi as normalizeCdpWsUrl } from "./model-selection-
|
|
7
|
-
import "./github-copilot-token-
|
|
1
|
+
import { _ as writeFileFromPathWithinRoot } from "./paths-CehYKFsO.js";
|
|
2
|
+
import "./paths-DkxwiA8g.js";
|
|
3
|
+
import { E as resolvePreferredOpenClawTmpDir } from "./subsystem-DfXy5gUB.js";
|
|
4
|
+
import "./workspace-DGIcKCCW.js";
|
|
5
|
+
import "./logger-CbUVl62f.js";
|
|
6
|
+
import { $i as assertBrowserNavigationRedirectChainAllowed, Ci as normalizeCdpHttpBaseForJsonEndpoints, Ei as withNoProxyForCdpUrl, Gi as resolveStrictExistingPathsWithinRoot, Hi as DEFAULT_TRACE_DIR, Ji as formatErrorMessage, Qi as assertBrowserNavigationAllowed, Si as getHeadersWithAuth, Ui as DEFAULT_UPLOAD_DIR, Zi as BrowserTabNotFoundError, bi as appendCdpPath, di as getChromeWebSocketUrl, ea as assertBrowserNavigationResultAllowed, nc as formatCliCommand, ta as withBrowserNavigationPolicy, vi as formatAriaSnapshot, wi as withCdpSocket, xi as fetchJson, yi as normalizeCdpWsUrl } from "./model-selection-Cv2Puf5z.js";
|
|
7
|
+
import "./github-copilot-token-8N63GdbE.js";
|
|
8
8
|
import "./boolean-C7Ct_klp.js";
|
|
9
|
-
import "./env-
|
|
10
|
-
import "./frontmatter-
|
|
9
|
+
import "./env-lw2hsIUY.js";
|
|
10
|
+
import "./frontmatter-C_obXuTp.js";
|
|
11
11
|
import { t as markPwAiLoaded } from "./pw-ai-state-DQJ5aOuJ.js";
|
|
12
12
|
import fs from "node:fs/promises";
|
|
13
13
|
import path from "node:path";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { P as resolveAgentWorkspaceDir, c as materializeWindowsSpawnProgram, l as resolveWindowsSpawnProgram, v as writeFileWithinRoot } from "./paths-
|
|
2
|
-
import { c as resolveStateDir } from "./paths-
|
|
3
|
-
import { t as createSubsystemLogger } from "./subsystem-
|
|
4
|
-
import { tt as parseAgentSessionKey } from "./workspace-
|
|
5
|
-
import "./logger-
|
|
6
|
-
import { a as listSessionFilesForAgent, i as buildSessionEntry, r as requireNodeSqlite, t as extractKeywords, v as isFileMissingError, y as statRegularFile } from "./query-expansion-
|
|
1
|
+
import { P as resolveAgentWorkspaceDir, c as materializeWindowsSpawnProgram, l as resolveWindowsSpawnProgram, v as writeFileWithinRoot } from "./paths-CehYKFsO.js";
|
|
2
|
+
import { c as resolveStateDir } from "./paths-DkxwiA8g.js";
|
|
3
|
+
import { t as createSubsystemLogger } from "./subsystem-DfXy5gUB.js";
|
|
4
|
+
import { tt as parseAgentSessionKey } from "./workspace-DGIcKCCW.js";
|
|
5
|
+
import "./logger-CbUVl62f.js";
|
|
6
|
+
import { a as listSessionFilesForAgent, i as buildSessionEntry, r as requireNodeSqlite, t as extractKeywords, v as isFileMissingError, y as statRegularFile } from "./query-expansion-BErUY8P2.js";
|
|
7
7
|
import fs from "node:fs/promises";
|
|
8
8
|
import os from "node:os";
|
|
9
9
|
import path from "node:path";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { E as runTasksWithConcurrency, S as redactSensitiveText, o as resolveSessionTranscriptsDirForAgent } from "./paths-
|
|
2
|
-
import { t as createSubsystemLogger } from "./subsystem-
|
|
1
|
+
import { E as runTasksWithConcurrency, S as redactSensitiveText, o as resolveSessionTranscriptsDirForAgent } from "./paths-CehYKFsO.js";
|
|
2
|
+
import { t as createSubsystemLogger } from "./subsystem-DfXy5gUB.js";
|
|
3
3
|
import { createRequire } from "node:module";
|
|
4
4
|
import fs from "node:fs/promises";
|
|
5
5
|
import path from "node:path";
|
|
6
|
-
import
|
|
6
|
+
import syncFs from "node:fs";
|
|
7
7
|
import crypto from "node:crypto";
|
|
8
8
|
//#region src/memory/fs-utils.ts
|
|
9
9
|
function isFileMissingError(err) {
|
|
@@ -27,7 +27,7 @@ async function statRegularFile(absPath) {
|
|
|
27
27
|
//#region src/memory/internal.ts
|
|
28
28
|
function ensureDir(dir) {
|
|
29
29
|
try {
|
|
30
|
-
|
|
30
|
+
syncFs.mkdirSync(dir, { recursive: true });
|
|
31
31
|
} catch {}
|
|
32
32
|
return dir;
|
|
33
33
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import "./paths-CehYKFsO.js";
|
|
2
|
+
import "./paths-DkxwiA8g.js";
|
|
3
|
+
import "./subsystem-DfXy5gUB.js";
|
|
4
|
+
import "./workspace-DGIcKCCW.js";
|
|
5
|
+
import "./logger-CbUVl62f.js";
|
|
6
|
+
import "./model-selection-Cv2Puf5z.js";
|
|
7
|
+
import "./github-copilot-token-8N63GdbE.js";
|
|
8
|
+
import "./boolean-C7Ct_klp.js";
|
|
9
|
+
import "./env-lw2hsIUY.js";
|
|
10
|
+
import "./frontmatter-C_obXuTp.js";
|
|
11
|
+
import "./session-B7imi6T5.js";
|
|
12
|
+
import { t as loginWeb } from "./login-p_O59TVQ.js";
|
|
13
|
+
export { loginWeb };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import "./paths-CehYKFsO.js";
|
|
2
|
+
import "./paths-DkxwiA8g.js";
|
|
3
|
+
import "./subsystem-DfXy5gUB.js";
|
|
4
|
+
import "./workspace-DGIcKCCW.js";
|
|
5
|
+
import "./logger-CbUVl62f.js";
|
|
6
|
+
import "./model-selection-Cv2Puf5z.js";
|
|
7
|
+
import "./github-copilot-token-8N63GdbE.js";
|
|
8
|
+
import "./boolean-C7Ct_klp.js";
|
|
9
|
+
import "./env-lw2hsIUY.js";
|
|
10
|
+
import "./frontmatter-C_obXuTp.js";
|
|
11
|
+
import "./fetch-D9NUULbj.js";
|
|
12
|
+
import "./fetch-guard-B5ZMnGaN.js";
|
|
13
|
+
import "./ir-CsgNUpOU.js";
|
|
14
|
+
import "./render-IRnn-2gt.js";
|
|
15
|
+
import "./tables-CjQqTOdD.js";
|
|
16
|
+
import { n as sendPollWhatsApp, t as sendMessageWhatsApp } from "./outbound-Chpiwybe.js";
|
|
17
|
+
export { sendMessageWhatsApp, sendPollWhatsApp };
|