@aria-cli/tools 1.0.11 → 1.0.13
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-cjs/index.js +400 -436
- package/dist-cjs/network-runtime/index.js +8 -173
- package/package.json +6 -6
- package/dist-cjs/ask-user-interaction.js +0 -28
- package/dist-cjs/ask-user-interaction.js.map +0 -1
- package/dist-cjs/cache/web-cache.js +0 -71
- package/dist-cjs/cache/web-cache.js.map +0 -1
- package/dist-cjs/definitions/arion.js +0 -108
- package/dist-cjs/definitions/arion.js.map +0 -1
- package/dist-cjs/definitions/browser/browser.js +0 -422
- package/dist-cjs/definitions/browser/browser.js.map +0 -1
- package/dist-cjs/definitions/browser/index.js +0 -9
- package/dist-cjs/definitions/browser/index.js.map +0 -1
- package/dist-cjs/definitions/browser/pw-downloads.js +0 -118
- package/dist-cjs/definitions/browser/pw-downloads.js.map +0 -1
- package/dist-cjs/definitions/browser/pw-interactions.js +0 -214
- package/dist-cjs/definitions/browser/pw-interactions.js.map +0 -1
- package/dist-cjs/definitions/browser/pw-responses.js +0 -85
- package/dist-cjs/definitions/browser/pw-responses.js.map +0 -1
- package/dist-cjs/definitions/browser/pw-session.js +0 -327
- package/dist-cjs/definitions/browser/pw-session.js.map +0 -1
- package/dist-cjs/definitions/browser/pw-shared.js +0 -73
- package/dist-cjs/definitions/browser/pw-shared.js.map +0 -1
- package/dist-cjs/definitions/browser/pw-snapshot.js +0 -308
- package/dist-cjs/definitions/browser/pw-snapshot.js.map +0 -1
- package/dist-cjs/definitions/browser/pw-state.js +0 -71
- package/dist-cjs/definitions/browser/pw-state.js.map +0 -1
- package/dist-cjs/definitions/browser/types.js +0 -6
- package/dist-cjs/definitions/browser/types.js.map +0 -1
- package/dist-cjs/definitions/code-intelligence.js +0 -474
- package/dist-cjs/definitions/code-intelligence.js.map +0 -1
- package/dist-cjs/definitions/core.js +0 -134
- package/dist-cjs/definitions/core.js.map +0 -1
- package/dist-cjs/definitions/delegation.js +0 -516
- package/dist-cjs/definitions/delegation.js.map +0 -1
- package/dist-cjs/definitions/deploy.js +0 -69
- package/dist-cjs/definitions/deploy.js.map +0 -1
- package/dist-cjs/definitions/filesystem.js +0 -200
- package/dist-cjs/definitions/filesystem.js.map +0 -1
- package/dist-cjs/definitions/frg.js +0 -67
- package/dist-cjs/definitions/frg.js.map +0 -1
- package/dist-cjs/definitions/index.js +0 -44
- package/dist-cjs/definitions/index.js.map +0 -1
- package/dist-cjs/definitions/memory.js +0 -127
- package/dist-cjs/definitions/memory.js.map +0 -1
- package/dist-cjs/definitions/messaging.js +0 -632
- package/dist-cjs/definitions/messaging.js.map +0 -1
- package/dist-cjs/definitions/meta.js +0 -353
- package/dist-cjs/definitions/meta.js.map +0 -1
- package/dist-cjs/definitions/network.js +0 -163
- package/dist-cjs/definitions/network.js.map +0 -1
- package/dist-cjs/definitions/outlook.js +0 -281
- package/dist-cjs/definitions/outlook.js.map +0 -1
- package/dist-cjs/definitions/patch/apply-patch.js +0 -192
- package/dist-cjs/definitions/patch/apply-patch.js.map +0 -1
- package/dist-cjs/definitions/patch/fuzzy-match.js +0 -173
- package/dist-cjs/definitions/patch/fuzzy-match.js.map +0 -1
- package/dist-cjs/definitions/patch/index.js +0 -6
- package/dist-cjs/definitions/patch/index.js.map +0 -1
- package/dist-cjs/definitions/patch/patch-parser.js +0 -216
- package/dist-cjs/definitions/patch/patch-parser.js.map +0 -1
- package/dist-cjs/definitions/patch/sandbox-paths.js +0 -114
- package/dist-cjs/definitions/patch/sandbox-paths.js.map +0 -1
- package/dist-cjs/definitions/process/index.js +0 -9
- package/dist-cjs/definitions/process/index.js.map +0 -1
- package/dist-cjs/definitions/process/process-registry.js +0 -232
- package/dist-cjs/definitions/process/process-registry.js.map +0 -1
- package/dist-cjs/definitions/process/process.js +0 -390
- package/dist-cjs/definitions/process/process.js.map +0 -1
- package/dist-cjs/definitions/process/pty-keys.js +0 -260
- package/dist-cjs/definitions/process/pty-keys.js.map +0 -1
- package/dist-cjs/definitions/process/session-slug.js +0 -146
- package/dist-cjs/definitions/process/session-slug.js.map +0 -1
- package/dist-cjs/definitions/quip.js +0 -199
- package/dist-cjs/definitions/quip.js.map +0 -1
- package/dist-cjs/definitions/search.js +0 -64
- package/dist-cjs/definitions/search.js.map +0 -1
- package/dist-cjs/definitions/session-history.js +0 -73
- package/dist-cjs/definitions/session-history.js.map +0 -1
- package/dist-cjs/definitions/shell.js +0 -185
- package/dist-cjs/definitions/shell.js.map +0 -1
- package/dist-cjs/definitions/slack.js +0 -184
- package/dist-cjs/definitions/slack.js.map +0 -1
- package/dist-cjs/definitions/web.js +0 -113
- package/dist-cjs/definitions/web.js.map +0 -1
- package/dist-cjs/executors/apply-patch.js +0 -939
- package/dist-cjs/executors/apply-patch.js.map +0 -1
- package/dist-cjs/executors/arion.js +0 -126
- package/dist-cjs/executors/arion.js.map +0 -1
- package/dist-cjs/executors/code-intelligence.js +0 -926
- package/dist-cjs/executors/code-intelligence.js.map +0 -1
- package/dist-cjs/executors/deploy.js +0 -870
- package/dist-cjs/executors/deploy.js.map +0 -1
- package/dist-cjs/executors/filesystem.js +0 -1168
- package/dist-cjs/executors/filesystem.js.map +0 -1
- package/dist-cjs/executors/frg-freshness.js +0 -628
- package/dist-cjs/executors/frg-freshness.js.map +0 -1
- package/dist-cjs/executors/frg.js +0 -335
- package/dist-cjs/executors/frg.js.map +0 -1
- package/dist-cjs/executors/index.js +0 -144
- package/dist-cjs/executors/index.js.map +0 -1
- package/dist-cjs/executors/learning-meta.js +0 -1166
- package/dist-cjs/executors/learning-meta.js.map +0 -1
- package/dist-cjs/executors/lsp-client.js +0 -311
- package/dist-cjs/executors/lsp-client.js.map +0 -1
- package/dist-cjs/executors/memory.js +0 -797
- package/dist-cjs/executors/memory.js.map +0 -1
- package/dist-cjs/executors/meta.js +0 -227
- package/dist-cjs/executors/meta.js.map +0 -1
- package/dist-cjs/executors/process-registry.js +0 -470
- package/dist-cjs/executors/process-registry.js.map +0 -1
- package/dist-cjs/executors/pty-session-store.js +0 -35
- package/dist-cjs/executors/pty-session-store.js.map +0 -1
- package/dist-cjs/executors/pty.js +0 -313
- package/dist-cjs/executors/pty.js.map +0 -1
- package/dist-cjs/executors/restart.js +0 -156
- package/dist-cjs/executors/restart.js.map +0 -1
- package/dist-cjs/executors/search-freshness.js +0 -235
- package/dist-cjs/executors/search-freshness.js.map +0 -1
- package/dist-cjs/executors/search-types.js +0 -57
- package/dist-cjs/executors/search-types.js.map +0 -1
- package/dist-cjs/executors/search.js +0 -103
- package/dist-cjs/executors/search.js.map +0 -1
- package/dist-cjs/executors/self-diagnose.js +0 -435
- package/dist-cjs/executors/self-diagnose.js.map +0 -1
- package/dist-cjs/executors/session-history.js +0 -321
- package/dist-cjs/executors/session-history.js.map +0 -1
- package/dist-cjs/executors/shell-safety.js +0 -479
- package/dist-cjs/executors/shell-safety.js.map +0 -1
- package/dist-cjs/executors/shell.js +0 -1002
- package/dist-cjs/executors/shell.js.map +0 -1
- package/dist-cjs/executors/utils.js +0 -74
- package/dist-cjs/executors/utils.js.map +0 -1
- package/dist-cjs/executors/web.js +0 -548
- package/dist-cjs/executors/web.js.map +0 -1
- package/dist-cjs/extraction/content-extraction.js +0 -244
- package/dist-cjs/extraction/content-extraction.js.map +0 -1
- package/dist-cjs/extraction/index.js +0 -9
- package/dist-cjs/extraction/index.js.map +0 -1
- package/dist-cjs/headless-control-contract.js +0 -973
- package/dist-cjs/headless-control-contract.js.map +0 -1
- package/dist-cjs/index.js.map +0 -1
- package/dist-cjs/local-control-http-auth.js +0 -6
- package/dist-cjs/local-control-http-auth.js.map +0 -1
- package/dist-cjs/mcp/client.js +0 -186
- package/dist-cjs/mcp/client.js.map +0 -1
- package/dist-cjs/mcp/connection.js +0 -485
- package/dist-cjs/mcp/connection.js.map +0 -1
- package/dist-cjs/mcp/index.js +0 -31
- package/dist-cjs/mcp/index.js.map +0 -1
- package/dist-cjs/mcp/jsonrpc.js +0 -149
- package/dist-cjs/mcp/jsonrpc.js.map +0 -1
- package/dist-cjs/mcp/types.js +0 -9
- package/dist-cjs/mcp/types.js.map +0 -1
- package/dist-cjs/network-control-adapter.js +0 -78
- package/dist-cjs/network-control-adapter.js.map +0 -1
- package/dist-cjs/network-runtime/address-types.js +0 -169
- package/dist-cjs/network-runtime/address-types.js.map +0 -1
- package/dist-cjs/network-runtime/db-owner-fencing.js +0 -77
- package/dist-cjs/network-runtime/db-owner-fencing.js.map +0 -1
- package/dist-cjs/network-runtime/delivery-receipts.js +0 -277
- package/dist-cjs/network-runtime/delivery-receipts.js.map +0 -1
- package/dist-cjs/network-runtime/direct-endpoint-authority.js +0 -30
- package/dist-cjs/network-runtime/direct-endpoint-authority.js.map +0 -1
- package/dist-cjs/network-runtime/index.js.map +0 -1
- package/dist-cjs/network-runtime/local-control-contract.js +0 -634
- package/dist-cjs/network-runtime/local-control-contract.js.map +0 -1
- package/dist-cjs/network-runtime/node-store-contract.js +0 -39
- package/dist-cjs/network-runtime/node-store-contract.js.map +0 -1
- package/dist-cjs/network-runtime/pair-route-contract.js +0 -81
- package/dist-cjs/network-runtime/pair-route-contract.js.map +0 -1
- package/dist-cjs/network-runtime/peer-capabilities.js +0 -38
- package/dist-cjs/network-runtime/peer-capabilities.js.map +0 -1
- package/dist-cjs/network-runtime/peer-principal-ref.js +0 -16
- package/dist-cjs/network-runtime/peer-principal-ref.js.map +0 -1
- package/dist-cjs/network-runtime/peer-state-machine.js +0 -130
- package/dist-cjs/network-runtime/peer-state-machine.js.map +0 -1
- package/dist-cjs/network-runtime/protocol-schemas.js +0 -213
- package/dist-cjs/network-runtime/protocol-schemas.js.map +0 -1
- package/dist-cjs/network-runtime/runtime-bootstrap-contract.js +0 -64
- package/dist-cjs/network-runtime/runtime-bootstrap-contract.js.map +0 -1
- package/dist-cjs/outlook/desktop-session.js +0 -319
- package/dist-cjs/outlook/desktop-session.js.map +0 -1
- package/dist-cjs/policy.js +0 -156
- package/dist-cjs/policy.js.map +0 -1
- package/dist-cjs/providers/brave.js +0 -67
- package/dist-cjs/providers/brave.js.map +0 -1
- package/dist-cjs/providers/duckduckgo.js +0 -181
- package/dist-cjs/providers/duckduckgo.js.map +0 -1
- package/dist-cjs/providers/exa.js +0 -68
- package/dist-cjs/providers/exa.js.map +0 -1
- package/dist-cjs/providers/firecrawl.js +0 -60
- package/dist-cjs/providers/firecrawl.js.map +0 -1
- package/dist-cjs/providers/index.js +0 -18
- package/dist-cjs/providers/index.js.map +0 -1
- package/dist-cjs/providers/jina.js +0 -54
- package/dist-cjs/providers/jina.js.map +0 -1
- package/dist-cjs/providers/router.js +0 -101
- package/dist-cjs/providers/router.js.map +0 -1
- package/dist-cjs/providers/search-provider.js +0 -37
- package/dist-cjs/providers/search-provider.js.map +0 -1
- package/dist-cjs/providers/tavily.js +0 -59
- package/dist-cjs/providers/tavily.js.map +0 -1
- package/dist-cjs/quip/desktop-session.js +0 -354
- package/dist-cjs/quip/desktop-session.js.map +0 -1
- package/dist-cjs/registry/index.js +0 -7
- package/dist-cjs/registry/index.js.map +0 -1
- package/dist-cjs/registry/registry.js +0 -762
- package/dist-cjs/registry/registry.js.map +0 -1
- package/dist-cjs/runtime-socket-local-control-client.js +0 -368
- package/dist-cjs/runtime-socket-local-control-client.js.map +0 -1
- package/dist-cjs/security/dns-normalization.js +0 -23
- package/dist-cjs/security/dns-normalization.js.map +0 -1
- package/dist-cjs/security/dns-pinning.js +0 -161
- package/dist-cjs/security/dns-pinning.js.map +0 -1
- package/dist-cjs/security/external-content.js +0 -96
- package/dist-cjs/security/external-content.js.map +0 -1
- package/dist-cjs/security/ssrf.js +0 -222
- package/dist-cjs/security/ssrf.js.map +0 -1
- package/dist-cjs/slack/desktop-session.js +0 -367
- package/dist-cjs/slack/desktop-session.js.map +0 -1
- package/dist-cjs/tool-factory.js +0 -51
- package/dist-cjs/tool-factory.js.map +0 -1
- package/dist-cjs/types.js +0 -9
- package/dist-cjs/types.js.map +0 -1
- package/dist-cjs/utils/retry.js +0 -170
- package/dist-cjs/utils/retry.js.map +0 -1
- package/dist-cjs/utils/safe-parse-json.js +0 -165
- package/dist-cjs/utils/safe-parse-json.js.map +0 -1
- package/dist-cjs/utils/url.js +0 -24
- package/dist-cjs/utils/url.js.map +0 -1
|
@@ -1,367 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.extractCachedSlackDesktopState = extractCachedSlackDesktopState;
|
|
40
|
-
exports.extractWorkspaceHostFromAppHtml = extractWorkspaceHostFromAppHtml;
|
|
41
|
-
exports.extractLiveSlackTokenFromMultipartBody = extractLiveSlackTokenFromMultipartBody;
|
|
42
|
-
exports.createSlackDesktopClient = createSlackDesktopClient;
|
|
43
|
-
const node_crypto_1 = __importDefault(require("node:crypto"));
|
|
44
|
-
const node_child_process_1 = require("node:child_process");
|
|
45
|
-
const node_fs_1 = require("node:fs");
|
|
46
|
-
const node_os_1 = __importDefault(require("node:os"));
|
|
47
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
48
|
-
const node_util_1 = require("node:util");
|
|
49
|
-
const execFileAsync = (0, node_util_1.promisify)(node_child_process_1.execFile);
|
|
50
|
-
const SLACK_APP_SUPPORT_DIR = node_path_1.default.join(node_os_1.default.homedir(), "Library", "Application Support", "Slack");
|
|
51
|
-
const SLACK_LEVELDB_DIR = node_path_1.default.join(SLACK_APP_SUPPORT_DIR, "Local Storage", "leveldb");
|
|
52
|
-
const SLACK_COOKIE_DB_PATH = node_path_1.default.join(SLACK_APP_SUPPORT_DIR, "Cookies");
|
|
53
|
-
const SLACK_SAFE_STORAGE_SERVICE = "Slack Safe Storage";
|
|
54
|
-
const SLACK_APP_ORIGIN = "https://app.slack.com";
|
|
55
|
-
const DEFAULT_BOOTSTRAP_TIMEOUT_MS = 30_000;
|
|
56
|
-
const TEAM_ID_REGEX = /\bT[A-Z0-9]{8,}\b/g;
|
|
57
|
-
const TOKEN_REGEX = /\bxoxc-[A-Za-z0-9-]{20,}\b/g;
|
|
58
|
-
function extractCachedSlackDesktopState(levelDbText) {
|
|
59
|
-
const cachedToken = levelDbText.match(TOKEN_REGEX)?.[0] ?? null;
|
|
60
|
-
const teamIds = [];
|
|
61
|
-
const seen = new Set();
|
|
62
|
-
const localConfigSegments = [...levelDbText.matchAll(/localConfig_v2[\s\S]{0,8000}/g)].map((match) => match[0]);
|
|
63
|
-
const sources = localConfigSegments.length > 0 ? localConfigSegments : [levelDbText];
|
|
64
|
-
for (const source of sources) {
|
|
65
|
-
for (const teamId of source.match(TEAM_ID_REGEX) ?? []) {
|
|
66
|
-
if (seen.has(teamId))
|
|
67
|
-
continue;
|
|
68
|
-
seen.add(teamId);
|
|
69
|
-
teamIds.push(teamId);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return { cachedToken, teamIds };
|
|
73
|
-
}
|
|
74
|
-
function extractWorkspaceHostFromAppHtml(html) {
|
|
75
|
-
const enterpriseHosts = [...html.matchAll(/https:\/\/([A-Za-z0-9.-]+\.enterprise\.slack\.com)/g)]
|
|
76
|
-
.map((match) => match[1])
|
|
77
|
-
.filter(Boolean);
|
|
78
|
-
if (enterpriseHosts.length > 0) {
|
|
79
|
-
return enterpriseHosts[0] ?? null;
|
|
80
|
-
}
|
|
81
|
-
const workspaceHosts = [...html.matchAll(/https:\/\/([A-Za-z0-9.-]+\.slack\.com)/g)]
|
|
82
|
-
.map((match) => match[1])
|
|
83
|
-
.filter((host) => host !== "api.slack.com" && host !== "app.slack.com");
|
|
84
|
-
return workspaceHosts[0] ?? null;
|
|
85
|
-
}
|
|
86
|
-
function extractLiveSlackTokenFromMultipartBody(body) {
|
|
87
|
-
const match = body.match(/name="token"\r?\n\r?\n([^\r\n]+)/);
|
|
88
|
-
return match?.[1] ?? null;
|
|
89
|
-
}
|
|
90
|
-
function decryptChromiumCookieHex(cookieHex, safeStoragePassword) {
|
|
91
|
-
const encryptedValue = Buffer.from(cookieHex, "hex");
|
|
92
|
-
if (encryptedValue.length === 0) {
|
|
93
|
-
return "";
|
|
94
|
-
}
|
|
95
|
-
const versionPrefix = encryptedValue.subarray(0, 3).toString("utf8");
|
|
96
|
-
if (versionPrefix !== "v10" && versionPrefix !== "v11") {
|
|
97
|
-
return encryptedValue.toString("utf8");
|
|
98
|
-
}
|
|
99
|
-
const key = node_crypto_1.default.pbkdf2Sync(safeStoragePassword, "saltysalt", 1003, 16, "sha1");
|
|
100
|
-
const decipher = node_crypto_1.default.createDecipheriv("aes-128-cbc", key, Buffer.alloc(16, 0x20));
|
|
101
|
-
let decrypted = Buffer.concat([decipher.update(encryptedValue.subarray(3)), decipher.final()]);
|
|
102
|
-
const padLength = decrypted.at(-1) ?? 0;
|
|
103
|
-
if (padLength > 0 && padLength <= 16) {
|
|
104
|
-
decrypted = decrypted.subarray(0, decrypted.length - padLength);
|
|
105
|
-
}
|
|
106
|
-
// Chromium cookie DB version 24 prefixes SHA-256(host_key) before the plaintext value.
|
|
107
|
-
if (decrypted.length >= 32) {
|
|
108
|
-
decrypted = decrypted.subarray(32);
|
|
109
|
-
}
|
|
110
|
-
return decrypted.toString("utf8");
|
|
111
|
-
}
|
|
112
|
-
async function readSlackLevelDbText(levelDbDir = SLACK_LEVELDB_DIR) {
|
|
113
|
-
const entries = await node_fs_1.promises.readdir(levelDbDir);
|
|
114
|
-
const files = entries.filter((entry) => entry.endsWith(".ldb") || entry.endsWith(".log")).sort();
|
|
115
|
-
const chunks = await Promise.all(files.map(async (entry) => {
|
|
116
|
-
const fullPath = node_path_1.default.join(levelDbDir, entry);
|
|
117
|
-
return node_fs_1.promises.readFile(fullPath, "utf8").catch(async () => {
|
|
118
|
-
const bytes = await node_fs_1.promises.readFile(fullPath);
|
|
119
|
-
return bytes.toString("utf8");
|
|
120
|
-
});
|
|
121
|
-
}));
|
|
122
|
-
return chunks.join("\n");
|
|
123
|
-
}
|
|
124
|
-
async function readSeedCookies(cookieDbPath = SLACK_COOKIE_DB_PATH) {
|
|
125
|
-
const { stdout: passwordStdout } = await execFileAsync("security", [
|
|
126
|
-
"find-generic-password",
|
|
127
|
-
"-w",
|
|
128
|
-
"-s",
|
|
129
|
-
SLACK_SAFE_STORAGE_SERVICE,
|
|
130
|
-
]);
|
|
131
|
-
const safeStoragePassword = passwordStdout.trim();
|
|
132
|
-
const sql = [
|
|
133
|
-
"SELECT host_key, name, path, is_secure, is_httponly, hex(encrypted_value)",
|
|
134
|
-
"FROM cookies",
|
|
135
|
-
"WHERE host_key IN ('.slack.com', 'app.slack.com')",
|
|
136
|
-
"AND name IN ('b', 'd')",
|
|
137
|
-
"ORDER BY name",
|
|
138
|
-
].join(" ");
|
|
139
|
-
const { stdout } = await execFileAsync("sqlite3", ["-separator", "\t", cookieDbPath, sql]);
|
|
140
|
-
const cookies = stdout
|
|
141
|
-
.split("\n")
|
|
142
|
-
.map((line) => line.trim())
|
|
143
|
-
.filter(Boolean)
|
|
144
|
-
.map((line) => {
|
|
145
|
-
const [domain, name, cookiePath, secureFlag, httpOnlyFlag, encryptedHex] = line.split("\t");
|
|
146
|
-
if (!domain || !name || !encryptedHex) {
|
|
147
|
-
throw new Error(`Unexpected sqlite3 cookie row shape: ${line}`);
|
|
148
|
-
}
|
|
149
|
-
return {
|
|
150
|
-
name,
|
|
151
|
-
value: decryptChromiumCookieHex(encryptedHex ?? "", safeStoragePassword),
|
|
152
|
-
domain,
|
|
153
|
-
path: cookiePath || "/",
|
|
154
|
-
secure: secureFlag === "1",
|
|
155
|
-
httpOnly: httpOnlyFlag === "1",
|
|
156
|
-
};
|
|
157
|
-
});
|
|
158
|
-
if (cookies.length === 0) {
|
|
159
|
-
throw new Error("Slack Desktop auth cookies were not found in the local Chromium cookie store.");
|
|
160
|
-
}
|
|
161
|
-
return cookies;
|
|
162
|
-
}
|
|
163
|
-
async function waitForLiveSlackBootstrap(page, timeoutMs) {
|
|
164
|
-
return new Promise((resolve, reject) => {
|
|
165
|
-
const timer = setTimeout(() => {
|
|
166
|
-
page.off("request", handleRequest);
|
|
167
|
-
reject(new Error("Timed out while waiting for the live Slack Desktop API bootstrap request."));
|
|
168
|
-
}, timeoutMs);
|
|
169
|
-
const handleRequest = (request) => {
|
|
170
|
-
const requestUrl = request.url();
|
|
171
|
-
if (!requestUrl.includes("/api/")) {
|
|
172
|
-
return;
|
|
173
|
-
}
|
|
174
|
-
const liveToken = extractLiveSlackTokenFromMultipartBody(request.postData() ?? "");
|
|
175
|
-
if (!liveToken) {
|
|
176
|
-
return;
|
|
177
|
-
}
|
|
178
|
-
clearTimeout(timer);
|
|
179
|
-
page.off("request", handleRequest);
|
|
180
|
-
resolve({
|
|
181
|
-
workspaceHost: new URL(requestUrl).host,
|
|
182
|
-
liveToken,
|
|
183
|
-
});
|
|
184
|
-
};
|
|
185
|
-
page.on("request", handleRequest);
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
function normalizeRequestForm(liveToken, fields) {
|
|
189
|
-
const form = { token: liveToken };
|
|
190
|
-
for (const [key, value] of Object.entries(fields)) {
|
|
191
|
-
if (value === undefined)
|
|
192
|
-
continue;
|
|
193
|
-
if (typeof value === "string") {
|
|
194
|
-
form[key] = value;
|
|
195
|
-
continue;
|
|
196
|
-
}
|
|
197
|
-
if (typeof value === "number" || typeof value === "boolean") {
|
|
198
|
-
form[key] = String(value);
|
|
199
|
-
continue;
|
|
200
|
-
}
|
|
201
|
-
form[key] = JSON.stringify(value);
|
|
202
|
-
}
|
|
203
|
-
return form;
|
|
204
|
-
}
|
|
205
|
-
function normalizeChannelRef(channelRef) {
|
|
206
|
-
return channelRef.startsWith("#") ? channelRef.slice(1) : channelRef;
|
|
207
|
-
}
|
|
208
|
-
function looksLikeConversationId(channelRef) {
|
|
209
|
-
return /^[CDG][A-Z0-9]{8,}$/.test(channelRef);
|
|
210
|
-
}
|
|
211
|
-
function toSlackMessageView(message) {
|
|
212
|
-
return {
|
|
213
|
-
ts: typeof message.ts === "string" ? message.ts : "",
|
|
214
|
-
user: typeof message.user === "string"
|
|
215
|
-
? message.user
|
|
216
|
-
: typeof message.bot_id === "string"
|
|
217
|
-
? message.bot_id
|
|
218
|
-
: null,
|
|
219
|
-
text: typeof message.text === "string" ? message.text : "",
|
|
220
|
-
subtype: typeof message.subtype === "string" ? message.subtype : null,
|
|
221
|
-
threadTs: typeof message.thread_ts === "string" ? message.thread_ts : null,
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
async function createSlackDesktopClient(options) {
|
|
225
|
-
const cachedState = extractCachedSlackDesktopState(await readSlackLevelDbText());
|
|
226
|
-
const teamId = options?.teamId ?? cachedState.teamIds[0];
|
|
227
|
-
if (!teamId) {
|
|
228
|
-
throw new Error("No Slack workspace team id was discovered in the local Slack Desktop storage.");
|
|
229
|
-
}
|
|
230
|
-
const playwright = await Promise.resolve().then(() => __importStar(require("playwright")));
|
|
231
|
-
const browser = await playwright.chromium.launch({ headless: true });
|
|
232
|
-
const context = await browser.newContext();
|
|
233
|
-
await context.addCookies(await readSeedCookies());
|
|
234
|
-
const page = await context.newPage();
|
|
235
|
-
const bootstrapPromise = waitForLiveSlackBootstrap(page, options?.bootstrapTimeoutMs ?? DEFAULT_BOOTSTRAP_TIMEOUT_MS);
|
|
236
|
-
await page.goto(`${SLACK_APP_ORIGIN}/client/${teamId}`, {
|
|
237
|
-
waitUntil: "domcontentloaded",
|
|
238
|
-
timeout: options?.bootstrapTimeoutMs ?? DEFAULT_BOOTSTRAP_TIMEOUT_MS,
|
|
239
|
-
});
|
|
240
|
-
const bootstrap = await bootstrapPromise;
|
|
241
|
-
const invokeJsonApi = async (method, fields) => {
|
|
242
|
-
const response = await context.request.post(`https://${bootstrap.workspaceHost}/api/${method}`, {
|
|
243
|
-
form: normalizeRequestForm(bootstrap.liveToken, fields),
|
|
244
|
-
headers: {
|
|
245
|
-
Origin: SLACK_APP_ORIGIN,
|
|
246
|
-
Referer: `${SLACK_APP_ORIGIN}/client/${teamId}`,
|
|
247
|
-
},
|
|
248
|
-
});
|
|
249
|
-
const text = await response.text();
|
|
250
|
-
let json;
|
|
251
|
-
try {
|
|
252
|
-
json = JSON.parse(text);
|
|
253
|
-
}
|
|
254
|
-
catch {
|
|
255
|
-
throw new Error(`Slack API ${method} returned non-JSON response (HTTP ${response.status()}).`);
|
|
256
|
-
}
|
|
257
|
-
if (json.ok !== true) {
|
|
258
|
-
const errorCode = typeof json.error === "string" ? json.error : `http_${response.status()}`;
|
|
259
|
-
throw new Error(`Slack API ${method} failed: ${errorCode}`);
|
|
260
|
-
}
|
|
261
|
-
return json;
|
|
262
|
-
};
|
|
263
|
-
const resolveConversationId = async (channelRef) => {
|
|
264
|
-
const normalized = normalizeChannelRef(channelRef);
|
|
265
|
-
if (looksLikeConversationId(normalized)) {
|
|
266
|
-
return normalized;
|
|
267
|
-
}
|
|
268
|
-
let cursor;
|
|
269
|
-
for (let pageNumber = 0; pageNumber < 20; pageNumber += 1) {
|
|
270
|
-
const response = await invokeJsonApi("conversations.list", {
|
|
271
|
-
limit: 200,
|
|
272
|
-
exclude_archived: true,
|
|
273
|
-
types: "public_channel,private_channel,im,mpim",
|
|
274
|
-
cursor,
|
|
275
|
-
});
|
|
276
|
-
const channels = Array.isArray(response.channels) ? response.channels : [];
|
|
277
|
-
const match = channels.find((channel) => {
|
|
278
|
-
if (!channel || typeof channel !== "object")
|
|
279
|
-
return false;
|
|
280
|
-
const name = typeof channel.name === "string" ? channel.name : null;
|
|
281
|
-
const nameNormalized = typeof channel.name_normalized === "string" ? channel.name_normalized : null;
|
|
282
|
-
return name === normalized || nameNormalized === normalized.toLowerCase();
|
|
283
|
-
});
|
|
284
|
-
if (match && typeof match.id === "string") {
|
|
285
|
-
return match.id;
|
|
286
|
-
}
|
|
287
|
-
const responseMetadata = response.response_metadata && typeof response.response_metadata === "object"
|
|
288
|
-
? response.response_metadata
|
|
289
|
-
: undefined;
|
|
290
|
-
const nextCursor = responseMetadata && typeof responseMetadata.next_cursor === "string"
|
|
291
|
-
? responseMetadata.next_cursor.trim()
|
|
292
|
-
: "";
|
|
293
|
-
if (!nextCursor) {
|
|
294
|
-
break;
|
|
295
|
-
}
|
|
296
|
-
cursor = nextCursor;
|
|
297
|
-
}
|
|
298
|
-
throw new Error(`Slack conversation "${channelRef}" was not found. Use a channel id like C..., G..., or D... if the name cannot be resolved.`);
|
|
299
|
-
};
|
|
300
|
-
return {
|
|
301
|
-
getTeamId: () => teamId,
|
|
302
|
-
getWorkspaceHost: () => bootstrap.workspaceHost,
|
|
303
|
-
listMessages: async ({ channel, limit = 20, threadTs }) => {
|
|
304
|
-
const channelId = await resolveConversationId(channel);
|
|
305
|
-
const method = threadTs ? "conversations.replies" : "conversations.history";
|
|
306
|
-
const response = await invokeJsonApi(method, {
|
|
307
|
-
channel: channelId,
|
|
308
|
-
limit: Math.max(1, Math.min(limit, 100)),
|
|
309
|
-
...(threadTs ? { ts: threadTs } : {}),
|
|
310
|
-
});
|
|
311
|
-
const responseMetadata = response.response_metadata && typeof response.response_metadata === "object"
|
|
312
|
-
? response.response_metadata
|
|
313
|
-
: undefined;
|
|
314
|
-
const nextCursor = responseMetadata && typeof responseMetadata.next_cursor === "string"
|
|
315
|
-
? responseMetadata.next_cursor || null
|
|
316
|
-
: null;
|
|
317
|
-
const rawMessages = Array.isArray(response.messages) ? response.messages : [];
|
|
318
|
-
return {
|
|
319
|
-
teamId,
|
|
320
|
-
workspaceHost: bootstrap.workspaceHost,
|
|
321
|
-
channelId,
|
|
322
|
-
messages: rawMessages
|
|
323
|
-
.filter((message) => !!message && typeof message === "object")
|
|
324
|
-
.map(toSlackMessageView),
|
|
325
|
-
hasMore: response.has_more === true,
|
|
326
|
-
nextCursor,
|
|
327
|
-
};
|
|
328
|
-
},
|
|
329
|
-
sendMessage: async ({ channel, text, threadTs }) => {
|
|
330
|
-
const channelId = await resolveConversationId(channel);
|
|
331
|
-
const response = await invokeJsonApi("chat.postMessage", {
|
|
332
|
-
channel: channelId,
|
|
333
|
-
text,
|
|
334
|
-
...(threadTs ? { thread_ts: threadTs } : {}),
|
|
335
|
-
});
|
|
336
|
-
const ts = typeof response.ts === "string" ? response.ts : null;
|
|
337
|
-
if (!ts) {
|
|
338
|
-
throw new Error("Slack API chat.postMessage did not return a message timestamp.");
|
|
339
|
-
}
|
|
340
|
-
return {
|
|
341
|
-
teamId,
|
|
342
|
-
workspaceHost: bootstrap.workspaceHost,
|
|
343
|
-
channelId,
|
|
344
|
-
ts,
|
|
345
|
-
};
|
|
346
|
-
},
|
|
347
|
-
addReaction: async ({ channel, timestamp, name }) => {
|
|
348
|
-
const channelId = await resolveConversationId(channel);
|
|
349
|
-
await invokeJsonApi("reactions.add", {
|
|
350
|
-
channel: channelId,
|
|
351
|
-
timestamp,
|
|
352
|
-
name,
|
|
353
|
-
});
|
|
354
|
-
return {
|
|
355
|
-
teamId,
|
|
356
|
-
workspaceHost: bootstrap.workspaceHost,
|
|
357
|
-
channelId,
|
|
358
|
-
};
|
|
359
|
-
},
|
|
360
|
-
close: async () => {
|
|
361
|
-
await page.close().catch(() => undefined);
|
|
362
|
-
await context.close().catch(() => undefined);
|
|
363
|
-
await browser.close().catch(() => undefined);
|
|
364
|
-
},
|
|
365
|
-
};
|
|
366
|
-
}
|
|
367
|
-
//# sourceMappingURL=desktop-session.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"desktop-session.js","sourceRoot":"","sources":["../../src/slack/desktop-session.ts"],"names":[],"mappings":"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"}
|
package/dist-cjs/tool-factory.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @aria/tools - Tool factory function
|
|
4
|
-
*
|
|
5
|
-
* Creates Tool objects from Zod schemas with runtime validation.
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.tool = tool;
|
|
9
|
-
const zod_1 = require("zod");
|
|
10
|
-
/**
|
|
11
|
-
* Factory function for creating Tool objects from Zod schemas.
|
|
12
|
-
*
|
|
13
|
-
* Converts the Zod schema to JSON Schema 7 for LLM consumption,
|
|
14
|
-
* and wraps the execute handler with Zod validation.
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```ts
|
|
18
|
-
* const getWeather = tool({
|
|
19
|
-
* name: "get_weather",
|
|
20
|
-
* description: "Get weather for a city",
|
|
21
|
-
* parameters: z.object({ city: z.string(), units: z.enum(["F", "C"]) }),
|
|
22
|
-
* execute: async (input) => ({
|
|
23
|
-
* success: true,
|
|
24
|
-
* message: `Weather in ${input.city}: sunny`,
|
|
25
|
-
* }),
|
|
26
|
-
* });
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
function tool(options) {
|
|
30
|
-
const { name, description, parameters: zodSchema, execute, riskLevel = "safe", isReadOnly = true, category = "meta", loadingTier = "always", } = options;
|
|
31
|
-
// Convert Zod schema to JSON Schema 7 using Zod v4's built-in conversion
|
|
32
|
-
const jsonSchema = zod_1.z.toJSONSchema(zodSchema);
|
|
33
|
-
// Remove the $schema key since the Tool interface expects a plain JSONSchema7 object
|
|
34
|
-
// describing the parameters, not a full standalone schema document
|
|
35
|
-
delete jsonSchema.$schema;
|
|
36
|
-
return {
|
|
37
|
-
name,
|
|
38
|
-
description,
|
|
39
|
-
category,
|
|
40
|
-
parameters: jsonSchema,
|
|
41
|
-
riskLevel,
|
|
42
|
-
isReadOnly,
|
|
43
|
-
loadingTier,
|
|
44
|
-
execute: async (input, context) => {
|
|
45
|
-
// Validate input with Zod before calling the handler
|
|
46
|
-
const parsed = zodSchema.parse(input);
|
|
47
|
-
return execute(parsed, context);
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=tool-factory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-factory.js","sourceRoot":"","sources":["../src/tool-factory.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAqDH,oBAiCC;AAnFD,6BAAwB;AA+BxB;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,IAAI,CAAI,OAA8B;IACpD,MAAM,EACJ,IAAI,EACJ,WAAW,EACX,UAAU,EAAE,SAAS,EACrB,OAAO,EACP,SAAS,GAAG,MAAM,EAClB,UAAU,GAAG,IAAI,EACjB,QAAQ,GAAG,MAAM,EACjB,WAAW,GAAG,QAAQ,GACvB,GAAG,OAAO,CAAC;IAEZ,yEAAyE;IACzE,MAAM,UAAU,GAAG,OAAC,CAAC,YAAY,CAAC,SAAS,CAAgB,CAAC;IAE5D,qFAAqF;IACrF,mEAAmE;IACnE,OAAO,UAAU,CAAC,OAAO,CAAC;IAE1B,OAAO;QACL,IAAI;QACJ,WAAW;QACX,QAAQ;QACR,UAAU,EAAE,UAAU;QACtB,SAAS;QACT,UAAU;QACV,WAAW;QACX,OAAO,EAAE,KAAK,EAAE,KAAc,EAAE,OAAoB,EAAuB,EAAE;YAC3E,qDAAqD;YACrD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAM,CAAC;YAC3C,OAAO,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist-cjs/types.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @aria/tools - Tool system types
|
|
4
|
-
*
|
|
5
|
-
* Unified tool interface for all ARIA tools.
|
|
6
|
-
* All tools are LLM-callable with optional user confirmation.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
//# sourceMappingURL=types.js.map
|
package/dist-cjs/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
|
package/dist-cjs/utils/retry.js
DELETED
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.fetchWithRetry = fetchWithRetry;
|
|
37
|
-
exports.fetchWithSsrf = fetchWithSsrf;
|
|
38
|
-
function createAbortError() {
|
|
39
|
-
const err = new Error("AbortError");
|
|
40
|
-
err.name = "AbortError";
|
|
41
|
-
return err;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* AbortSignal-aware sleep that rejects immediately if the signal fires during the delay.
|
|
45
|
-
*/
|
|
46
|
-
function abortAwareSleep(ms, signal) {
|
|
47
|
-
if (signal?.aborted) {
|
|
48
|
-
return Promise.reject(createAbortError());
|
|
49
|
-
}
|
|
50
|
-
return new Promise((resolve, reject) => {
|
|
51
|
-
let settled = false;
|
|
52
|
-
let abortHandler;
|
|
53
|
-
const timer = setTimeout(() => {
|
|
54
|
-
if (settled)
|
|
55
|
-
return;
|
|
56
|
-
settled = true;
|
|
57
|
-
if (signal && abortHandler) {
|
|
58
|
-
signal.removeEventListener("abort", abortHandler);
|
|
59
|
-
}
|
|
60
|
-
resolve();
|
|
61
|
-
}, ms);
|
|
62
|
-
if (signal) {
|
|
63
|
-
abortHandler = () => {
|
|
64
|
-
if (settled)
|
|
65
|
-
return;
|
|
66
|
-
settled = true;
|
|
67
|
-
signal.removeEventListener("abort", abortHandler);
|
|
68
|
-
clearTimeout(timer);
|
|
69
|
-
reject(createAbortError());
|
|
70
|
-
};
|
|
71
|
-
signal.addEventListener("abort", abortHandler, { once: true });
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
function isAbortError(err) {
|
|
76
|
-
if (!(err instanceof Error))
|
|
77
|
-
return false;
|
|
78
|
-
const domErr = err;
|
|
79
|
-
return domErr.name === "AbortError" || err.message === "AbortError";
|
|
80
|
-
}
|
|
81
|
-
function getErrorCode(err) {
|
|
82
|
-
if (typeof err === "object" &&
|
|
83
|
-
err !== null &&
|
|
84
|
-
"code" in err &&
|
|
85
|
-
typeof err.code === "string") {
|
|
86
|
-
return err.code;
|
|
87
|
-
}
|
|
88
|
-
if (err instanceof Error && err.cause) {
|
|
89
|
-
const cause = err.cause;
|
|
90
|
-
if (typeof cause.code === "string") {
|
|
91
|
-
return cause.code;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return undefined;
|
|
95
|
-
}
|
|
96
|
-
async function fetchWithRetry(url, init, options) {
|
|
97
|
-
const maxAttempts = options?.maxAttempts ?? 3;
|
|
98
|
-
const baseDelayMs = options?.baseDelayMs ?? 1000;
|
|
99
|
-
const maxDelayMs = options?.maxDelayMs ?? 30000;
|
|
100
|
-
const retryableStatuses = options?.retryableStatuses ?? [429, 500, 502, 503, 504];
|
|
101
|
-
const retryableCodes = options?.retryableCodes ?? [
|
|
102
|
-
"ECONNRESET",
|
|
103
|
-
"ETIMEDOUT",
|
|
104
|
-
"EPIPE",
|
|
105
|
-
"ENETUNREACH",
|
|
106
|
-
"EHOSTUNREACH",
|
|
107
|
-
"ECONNREFUSED",
|
|
108
|
-
"EAI_AGAIN",
|
|
109
|
-
"UND_ERR_CONNECT_TIMEOUT",
|
|
110
|
-
"UND_ERR_SOCKET",
|
|
111
|
-
];
|
|
112
|
-
const doFetch = options?.fetchFn ?? fetch;
|
|
113
|
-
const signal = init.signal ?? null;
|
|
114
|
-
if (signal?.aborted) {
|
|
115
|
-
throw createAbortError();
|
|
116
|
-
}
|
|
117
|
-
let lastError;
|
|
118
|
-
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
119
|
-
try {
|
|
120
|
-
const response = await doFetch(url, init);
|
|
121
|
-
// Check for Cloudflare 403 challenge
|
|
122
|
-
if (response.status === 403 && response.headers.get("cf-mitigated") === "challenge") {
|
|
123
|
-
if (attempt < maxAttempts - 1) {
|
|
124
|
-
// Retry with simplified UA
|
|
125
|
-
const delay = Math.min(baseDelayMs * 2 ** attempt + Math.random() * 500, maxDelayMs);
|
|
126
|
-
await abortAwareSleep(delay, signal);
|
|
127
|
-
continue;
|
|
128
|
-
}
|
|
129
|
-
// Last attempt - throw
|
|
130
|
-
throw new Error(`Cloudflare challenge after ${maxAttempts} attempts: ${response.status}`);
|
|
131
|
-
}
|
|
132
|
-
// Check for retryable status codes
|
|
133
|
-
if (!response.ok && retryableStatuses.includes(response.status)) {
|
|
134
|
-
if (attempt < maxAttempts - 1) {
|
|
135
|
-
const delay = Math.min(baseDelayMs * 2 ** attempt + Math.random() * 500, maxDelayMs);
|
|
136
|
-
await abortAwareSleep(delay, signal);
|
|
137
|
-
continue;
|
|
138
|
-
}
|
|
139
|
-
// Last attempt - throw
|
|
140
|
-
throw new Error(`Request failed after ${maxAttempts} attempts: ${response.status}`);
|
|
141
|
-
}
|
|
142
|
-
return response;
|
|
143
|
-
}
|
|
144
|
-
catch (err) {
|
|
145
|
-
// Re-throw AbortError immediately — do not retry aborted requests
|
|
146
|
-
if (isAbortError(err)) {
|
|
147
|
-
throw err;
|
|
148
|
-
}
|
|
149
|
-
const code = getErrorCode(err);
|
|
150
|
-
if (code && retryableCodes.includes(code) && attempt < maxAttempts - 1) {
|
|
151
|
-
const delay = Math.min(baseDelayMs * 2 ** attempt + Math.random() * 500, maxDelayMs);
|
|
152
|
-
await abortAwareSleep(delay, signal);
|
|
153
|
-
continue;
|
|
154
|
-
}
|
|
155
|
-
lastError = err;
|
|
156
|
-
throw err;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
throw lastError ?? new Error("fetchWithRetry: unreachable");
|
|
160
|
-
}
|
|
161
|
-
async function fetchWithSsrf(url, init, retryOptions) {
|
|
162
|
-
const { fetchWithDnsPinning } = await Promise.resolve().then(() => __importStar(require("../security/dns-pinning.js")));
|
|
163
|
-
return fetchWithRetry(url, init, {
|
|
164
|
-
...retryOptions,
|
|
165
|
-
fetchFn: async (attemptUrl, attemptInit) => {
|
|
166
|
-
return fetchWithDnsPinning(attemptUrl, attemptInit);
|
|
167
|
-
},
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
//# sourceMappingURL=retry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"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"}
|