@agentforge/tools 0.16.85 → 0.16.86
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/index.cjs +117 -113
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +53 -48
- package/dist/index.d.ts +53 -48
- package/dist/index.js +116 -113
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { toolBuilder, ToolCategory, LogLevel, createLogger } from '@agentforge/core';
|
|
2
2
|
import { lookup } from 'dns/promises';
|
|
3
3
|
import net from 'net';
|
|
4
|
-
import
|
|
4
|
+
import axios11 from 'axios';
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
import * as cheerio from 'cheerio';
|
|
7
7
|
import { WebClient } from '@slack/web-api';
|
|
@@ -202,7 +202,7 @@ async function requestWithDestinationPolicy(config, policy = {}) {
|
|
|
202
202
|
for (let redirectCount = 0; ; redirectCount += 1) {
|
|
203
203
|
const validatedAddresses = await validateDestinationAllowed(currentUrl, effectivePolicy);
|
|
204
204
|
currentConfig.lookup = createPinnedLookup(validatedAddresses);
|
|
205
|
-
const response = await
|
|
205
|
+
const response = await axios11(currentConfig);
|
|
206
206
|
if (!isRedirectStatus(response.status)) return response;
|
|
207
207
|
if (effectivePolicy.allowRedirects === false) blockDestination(currentUrl, "redirect");
|
|
208
208
|
if (redirectCount >= maxRedirects) throw new DestinationPolicyError(currentUrl, "redirect", `Maximum redirect count (${maxRedirects}) exceeded for ${currentUrl}`);
|
|
@@ -713,7 +713,7 @@ var DuckDuckGoProvider = class {
|
|
|
713
713
|
async search(query, maxResults, timeout = DEFAULT_TIMEOUT) {
|
|
714
714
|
return retryWithBackoff(async () => {
|
|
715
715
|
try {
|
|
716
|
-
const response = await
|
|
716
|
+
const response = await axios11.get(
|
|
717
717
|
"https://api.duckduckgo.com/",
|
|
718
718
|
{
|
|
719
719
|
params: {
|
|
@@ -817,7 +817,7 @@ var SerperProvider = class {
|
|
|
817
817
|
}
|
|
818
818
|
return retryWithBackoff(async () => {
|
|
819
819
|
try {
|
|
820
|
-
const response = await
|
|
820
|
+
const response = await axios11.post(
|
|
821
821
|
"https://google.serper.dev/search",
|
|
822
822
|
{
|
|
823
823
|
q: query,
|
|
@@ -1251,7 +1251,7 @@ function createSearchConfluenceTool(getAuth, getAuthHeader2, logger19) {
|
|
|
1251
1251
|
logger19.info("search-confluence called", { query, limit });
|
|
1252
1252
|
try {
|
|
1253
1253
|
const { ATLASSIAN_SITE_URL } = getAuth();
|
|
1254
|
-
const response = await
|
|
1254
|
+
const response = await axios11.get(`${ATLASSIAN_SITE_URL}/wiki/rest/api/content/search`, {
|
|
1255
1255
|
headers: {
|
|
1256
1256
|
Authorization: getAuthHeader2(),
|
|
1257
1257
|
Accept: "application/json"
|
|
@@ -1313,7 +1313,7 @@ function createGetConfluencePageTool(getAuth, getAuthHeader2, logger19) {
|
|
|
1313
1313
|
logger19.info("get-confluence-page called", { page_id });
|
|
1314
1314
|
try {
|
|
1315
1315
|
const { ATLASSIAN_SITE_URL } = getAuth();
|
|
1316
|
-
const response = await
|
|
1316
|
+
const response = await axios11.get(`${ATLASSIAN_SITE_URL}/wiki/rest/api/content/${page_id}`, {
|
|
1317
1317
|
headers: {
|
|
1318
1318
|
Authorization: getAuthHeader2(),
|
|
1319
1319
|
Accept: "application/json"
|
|
@@ -1364,7 +1364,7 @@ function createListConfluenceSpacesTool(getAuth, getAuthHeader2, logger19) {
|
|
|
1364
1364
|
logger19.info("list-confluence-spaces called", { limit });
|
|
1365
1365
|
try {
|
|
1366
1366
|
const { ATLASSIAN_SITE_URL } = getAuth();
|
|
1367
|
-
const response = await
|
|
1367
|
+
const response = await axios11.get(`${ATLASSIAN_SITE_URL}/wiki/rest/api/space`, {
|
|
1368
1368
|
headers: {
|
|
1369
1369
|
Authorization: getAuthHeader2(),
|
|
1370
1370
|
Accept: "application/json"
|
|
@@ -1410,7 +1410,7 @@ function createGetSpacePagesTool(getAuth, getAuthHeader2, logger19) {
|
|
|
1410
1410
|
logger19.info("get-space-pages called", { space_key, limit });
|
|
1411
1411
|
try {
|
|
1412
1412
|
const { ATLASSIAN_SITE_URL } = getAuth();
|
|
1413
|
-
const response = await
|
|
1413
|
+
const response = await axios11.get(`${ATLASSIAN_SITE_URL}/wiki/rest/api/content`, {
|
|
1414
1414
|
headers: {
|
|
1415
1415
|
Authorization: getAuthHeader2(),
|
|
1416
1416
|
Accept: "application/json"
|
|
@@ -1484,7 +1484,7 @@ function createCreateConfluencePageTool(getAuth, getAuthHeader2, logger19) {
|
|
|
1484
1484
|
if (parent_page_id) {
|
|
1485
1485
|
pageData.ancestors = [{ id: parent_page_id }];
|
|
1486
1486
|
}
|
|
1487
|
-
const response = await
|
|
1487
|
+
const response = await axios11.post(
|
|
1488
1488
|
`${ATLASSIAN_SITE_URL}/wiki/rest/api/content`,
|
|
1489
1489
|
pageData,
|
|
1490
1490
|
{
|
|
@@ -1532,7 +1532,7 @@ function createUpdateConfluencePageTool(getAuth, getAuthHeader2, logger19) {
|
|
|
1532
1532
|
logger19.info("update-confluence-page called", { page_id, title });
|
|
1533
1533
|
try {
|
|
1534
1534
|
const { ATLASSIAN_SITE_URL } = getAuth();
|
|
1535
|
-
const getResponse = await
|
|
1535
|
+
const getResponse = await axios11.get(
|
|
1536
1536
|
`${ATLASSIAN_SITE_URL}/wiki/rest/api/content/${page_id}`,
|
|
1537
1537
|
{
|
|
1538
1538
|
headers: {
|
|
@@ -1542,7 +1542,7 @@ function createUpdateConfluencePageTool(getAuth, getAuthHeader2, logger19) {
|
|
|
1542
1542
|
}
|
|
1543
1543
|
);
|
|
1544
1544
|
const currentVersion = getResponse.data.version.number;
|
|
1545
|
-
const updateResponse = await
|
|
1545
|
+
const updateResponse = await axios11.put(
|
|
1546
1546
|
`${ATLASSIAN_SITE_URL}/wiki/rest/api/content/${page_id}`,
|
|
1547
1547
|
{
|
|
1548
1548
|
type: "page",
|
|
@@ -1603,7 +1603,7 @@ function createArchiveConfluencePageTool(getAuth, getAuthHeader2, logger19) {
|
|
|
1603
1603
|
});
|
|
1604
1604
|
try {
|
|
1605
1605
|
const { ATLASSIAN_SITE_URL } = getAuth();
|
|
1606
|
-
const getResponse = await
|
|
1606
|
+
const getResponse = await axios11.get(
|
|
1607
1607
|
`${ATLASSIAN_SITE_URL}/wiki/rest/api/content/${page_id}`,
|
|
1608
1608
|
{
|
|
1609
1609
|
headers: {
|
|
@@ -1614,7 +1614,7 @@ function createArchiveConfluencePageTool(getAuth, getAuthHeader2, logger19) {
|
|
|
1614
1614
|
);
|
|
1615
1615
|
const currentVersion = getResponse.data.version.number;
|
|
1616
1616
|
const pageData = getResponse.data;
|
|
1617
|
-
await
|
|
1617
|
+
await axios11.put(
|
|
1618
1618
|
`${ATLASSIAN_SITE_URL}/wiki/rest/api/content/${page_id}`,
|
|
1619
1619
|
{
|
|
1620
1620
|
version: { number: currentVersion + 1 },
|
|
@@ -2340,9 +2340,21 @@ function createTransformerTools(config = {}) {
|
|
|
2340
2340
|
createObjectOmitTool()
|
|
2341
2341
|
];
|
|
2342
2342
|
}
|
|
2343
|
+
var neo4jJsonValueSchema = z.lazy(() => z.union([
|
|
2344
|
+
z.string(),
|
|
2345
|
+
z.number().finite(),
|
|
2346
|
+
z.boolean(),
|
|
2347
|
+
z.null(),
|
|
2348
|
+
z.array(neo4jJsonValueSchema),
|
|
2349
|
+
z.record(z.string(), neo4jJsonValueSchema)
|
|
2350
|
+
])).describe("JSON-safe Neo4j property value");
|
|
2351
|
+
var neo4jPropertiesSchema = z.record(
|
|
2352
|
+
z.string(),
|
|
2353
|
+
neo4jJsonValueSchema
|
|
2354
|
+
);
|
|
2343
2355
|
var neo4jQuerySchema = z.object({
|
|
2344
2356
|
cypher: z.string().describe("Cypher query to execute"),
|
|
2345
|
-
parameters:
|
|
2357
|
+
parameters: neo4jPropertiesSchema.optional().describe("Query parameters for parameterized queries"),
|
|
2346
2358
|
database: z.string().optional().describe("Database name (defaults to configured database)")
|
|
2347
2359
|
});
|
|
2348
2360
|
var neo4jGetSchemaSchema = z.object({
|
|
@@ -2350,7 +2362,7 @@ var neo4jGetSchemaSchema = z.object({
|
|
|
2350
2362
|
});
|
|
2351
2363
|
var neo4jFindNodesSchema = z.object({
|
|
2352
2364
|
label: z.string().describe("Node label to search for"),
|
|
2353
|
-
properties:
|
|
2365
|
+
properties: neo4jPropertiesSchema.optional().describe("Properties to match (key-value pairs)"),
|
|
2354
2366
|
limit: z.number().default(100).describe("Maximum number of nodes to return"),
|
|
2355
2367
|
database: z.string().optional().describe("Database name (defaults to configured database)")
|
|
2356
2368
|
});
|
|
@@ -2380,7 +2392,7 @@ var neo4jVectorSearchWithEmbeddingSchema = z.object({
|
|
|
2380
2392
|
});
|
|
2381
2393
|
var neo4jCreateNodeWithEmbeddingSchema = z.object({
|
|
2382
2394
|
label: z.string().describe("Node label"),
|
|
2383
|
-
properties:
|
|
2395
|
+
properties: neo4jPropertiesSchema.describe("Node properties (key-value pairs)"),
|
|
2384
2396
|
textProperty: z.string().describe("Name of the property containing text to embed"),
|
|
2385
2397
|
embeddingProperty: z.string().default("embedding").describe("Name of the property to store the embedding vector"),
|
|
2386
2398
|
model: z.string().optional().describe("Embedding model to use (defaults to configured model)"),
|
|
@@ -2548,6 +2560,13 @@ async function initializeFromEnv() {
|
|
|
2548
2560
|
}
|
|
2549
2561
|
|
|
2550
2562
|
// src/data/neo4j/embeddings/utils.ts
|
|
2563
|
+
function withProviderErrorMetadata(error, message) {
|
|
2564
|
+
const wrappedError = new Error(message);
|
|
2565
|
+
if (!isRecord2(error)) return wrappedError;
|
|
2566
|
+
if (typeof error.code === "string") wrappedError.code = error.code;
|
|
2567
|
+
if (error.response !== void 0) wrappedError.response = error.response;
|
|
2568
|
+
return wrappedError;
|
|
2569
|
+
}
|
|
2551
2570
|
var DEFAULT_RETRY_CONFIG2 = {
|
|
2552
2571
|
maxRetries: 3,
|
|
2553
2572
|
initialDelay: 1e3,
|
|
@@ -2556,17 +2575,25 @@ var DEFAULT_RETRY_CONFIG2 = {
|
|
|
2556
2575
|
// 10 seconds
|
|
2557
2576
|
backoffMultiplier: 2
|
|
2558
2577
|
};
|
|
2578
|
+
function isRecord2(value) {
|
|
2579
|
+
return typeof value === "object" && value !== null;
|
|
2580
|
+
}
|
|
2559
2581
|
function isRetryableError2(error) {
|
|
2560
|
-
if (error
|
|
2582
|
+
if (!isRecord2(error)) return false;
|
|
2583
|
+
const response = isRecord2(error.response) ? error.response : void 0;
|
|
2584
|
+
const status = typeof response?.status === "number" ? response.status : void 0;
|
|
2585
|
+
const code = typeof error.code === "string" ? error.code : void 0;
|
|
2586
|
+
const message = typeof error.message === "string" ? error.message : void 0;
|
|
2587
|
+
if (code === "ECONNRESET" || code === "ETIMEDOUT" || code === "ENOTFOUND") {
|
|
2561
2588
|
return true;
|
|
2562
2589
|
}
|
|
2563
|
-
if (
|
|
2590
|
+
if (code === "ECONNABORTED" || message?.includes("timeout")) {
|
|
2564
2591
|
return true;
|
|
2565
2592
|
}
|
|
2566
|
-
if (
|
|
2593
|
+
if (status !== void 0 && status >= 500 && status < 600) {
|
|
2567
2594
|
return true;
|
|
2568
2595
|
}
|
|
2569
|
-
if (
|
|
2596
|
+
if (status === 429) {
|
|
2570
2597
|
return true;
|
|
2571
2598
|
}
|
|
2572
2599
|
return false;
|
|
@@ -2679,7 +2706,7 @@ var OpenAIEmbeddingProvider = class {
|
|
|
2679
2706
|
const modelToUse = model || this.defaultModel;
|
|
2680
2707
|
return retryWithBackoff2(async () => {
|
|
2681
2708
|
try {
|
|
2682
|
-
const response = await
|
|
2709
|
+
const response = await axios11.post(
|
|
2683
2710
|
`${this.baseURL}/embeddings`,
|
|
2684
2711
|
{
|
|
2685
2712
|
input: text,
|
|
@@ -2708,25 +2735,18 @@ var OpenAIEmbeddingProvider = class {
|
|
|
2708
2735
|
}
|
|
2709
2736
|
};
|
|
2710
2737
|
} catch (error) {
|
|
2711
|
-
let
|
|
2712
|
-
|
|
2713
|
-
|
|
2714
|
-
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
);
|
|
2720
|
-
} else if (error.response?.status === 400) {
|
|
2721
|
-
wrappedError = new Error(
|
|
2722
|
-
`OpenAI API error: ${error.response.data?.error?.message || "Bad request"}`
|
|
2723
|
-
);
|
|
2738
|
+
let message;
|
|
2739
|
+
const response = axios11.isAxiosError(error) ? error.response : void 0;
|
|
2740
|
+
if (response?.status === 401) {
|
|
2741
|
+
message = "Invalid OpenAI API key. Get your key at https://platform.openai.com/api-keys";
|
|
2742
|
+
} else if (response?.status === 429) {
|
|
2743
|
+
message = "OpenAI API rate limit exceeded. Please try again later or upgrade your plan.";
|
|
2744
|
+
} else if (response?.status === 400) {
|
|
2745
|
+
message = `OpenAI API error: ${response.data?.error?.message || "Bad request"}`;
|
|
2724
2746
|
} else {
|
|
2725
|
-
|
|
2747
|
+
message = `OpenAI embedding generation failed: ${error instanceof Error ? error.message : "Unknown error"}`;
|
|
2726
2748
|
}
|
|
2727
|
-
|
|
2728
|
-
if (error.response) wrappedError.response = error.response;
|
|
2729
|
-
throw wrappedError;
|
|
2749
|
+
throw withProviderErrorMetadata(error, message);
|
|
2730
2750
|
}
|
|
2731
2751
|
});
|
|
2732
2752
|
}
|
|
@@ -2743,7 +2763,7 @@ var OpenAIEmbeddingProvider = class {
|
|
|
2743
2763
|
const modelToUse = model || this.defaultModel;
|
|
2744
2764
|
return retryWithBackoff2(async () => {
|
|
2745
2765
|
try {
|
|
2746
|
-
const response = await
|
|
2766
|
+
const response = await axios11.post(
|
|
2747
2767
|
`${this.baseURL}/embeddings`,
|
|
2748
2768
|
{
|
|
2749
2769
|
input: texts,
|
|
@@ -2773,25 +2793,18 @@ var OpenAIEmbeddingProvider = class {
|
|
|
2773
2793
|
}
|
|
2774
2794
|
};
|
|
2775
2795
|
} catch (error) {
|
|
2776
|
-
let
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
);
|
|
2785
|
-
} else if (error.response?.status === 400) {
|
|
2786
|
-
wrappedError = new Error(
|
|
2787
|
-
`OpenAI API error: ${error.response.data?.error?.message || "Bad request"}`
|
|
2788
|
-
);
|
|
2796
|
+
let message;
|
|
2797
|
+
const response = axios11.isAxiosError(error) ? error.response : void 0;
|
|
2798
|
+
if (response?.status === 401) {
|
|
2799
|
+
message = "Invalid OpenAI API key. Get your key at https://platform.openai.com/api-keys";
|
|
2800
|
+
} else if (response?.status === 429) {
|
|
2801
|
+
message = "OpenAI API rate limit exceeded. Please try again later or upgrade your plan.";
|
|
2802
|
+
} else if (response?.status === 400) {
|
|
2803
|
+
message = `OpenAI API error: ${response.data?.error?.message || "Bad request"}`;
|
|
2789
2804
|
} else {
|
|
2790
|
-
|
|
2805
|
+
message = `OpenAI batch embedding generation failed: ${error instanceof Error ? error.message : "Unknown error"}`;
|
|
2791
2806
|
}
|
|
2792
|
-
|
|
2793
|
-
if (error.response) wrappedError.response = error.response;
|
|
2794
|
-
throw wrappedError;
|
|
2807
|
+
throw withProviderErrorMetadata(error, message);
|
|
2795
2808
|
}
|
|
2796
2809
|
});
|
|
2797
2810
|
}
|
|
@@ -2823,7 +2836,7 @@ var CohereEmbeddingProvider = class {
|
|
|
2823
2836
|
const modelToUse = model || this.defaultModel;
|
|
2824
2837
|
return retryWithBackoff2(async () => {
|
|
2825
2838
|
try {
|
|
2826
|
-
const response = await
|
|
2839
|
+
const response = await axios11.post(
|
|
2827
2840
|
`${this.baseUrl}/embed`,
|
|
2828
2841
|
{
|
|
2829
2842
|
texts,
|
|
@@ -2851,22 +2864,20 @@ var CohereEmbeddingProvider = class {
|
|
|
2851
2864
|
} : void 0
|
|
2852
2865
|
};
|
|
2853
2866
|
} catch (error) {
|
|
2854
|
-
if (
|
|
2867
|
+
if (axios11.isAxiosError(error)) {
|
|
2855
2868
|
const status = error.response?.status;
|
|
2856
|
-
const
|
|
2857
|
-
let
|
|
2869
|
+
const providerMessage = error.response?.data?.message || error.message;
|
|
2870
|
+
let message;
|
|
2858
2871
|
if (status === 401) {
|
|
2859
|
-
|
|
2872
|
+
message = `Cohere API authentication failed. Please check your COHERE_API_KEY. ${providerMessage}`;
|
|
2860
2873
|
} else if (status === 429) {
|
|
2861
|
-
|
|
2874
|
+
message = `Cohere API rate limit exceeded. ${providerMessage}`;
|
|
2862
2875
|
} else if (status === 400) {
|
|
2863
|
-
|
|
2876
|
+
message = `Cohere API request invalid: ${providerMessage}`;
|
|
2864
2877
|
} else {
|
|
2865
|
-
|
|
2878
|
+
message = `Cohere API error (${status}): ${providerMessage}`;
|
|
2866
2879
|
}
|
|
2867
|
-
|
|
2868
|
-
if (error.response) wrappedError.response = error.response;
|
|
2869
|
-
throw wrappedError;
|
|
2880
|
+
throw withProviderErrorMetadata(error, message);
|
|
2870
2881
|
}
|
|
2871
2882
|
throw error;
|
|
2872
2883
|
}
|
|
@@ -2891,7 +2902,7 @@ var HuggingFaceEmbeddingProvider = class {
|
|
|
2891
2902
|
const modelToUse = model || this.defaultModel;
|
|
2892
2903
|
return retryWithBackoff2(async () => {
|
|
2893
2904
|
try {
|
|
2894
|
-
const response = await
|
|
2905
|
+
const response = await axios11.post(
|
|
2895
2906
|
`${this.baseUrl}/${modelToUse}`,
|
|
2896
2907
|
{
|
|
2897
2908
|
inputs: text,
|
|
@@ -2913,24 +2924,22 @@ var HuggingFaceEmbeddingProvider = class {
|
|
|
2913
2924
|
dimensions: embedding.length
|
|
2914
2925
|
};
|
|
2915
2926
|
} catch (error) {
|
|
2916
|
-
if (
|
|
2927
|
+
if (axios11.isAxiosError(error)) {
|
|
2917
2928
|
const status = error.response?.status;
|
|
2918
2929
|
const message = error.response?.data?.error || error.message;
|
|
2919
|
-
let
|
|
2930
|
+
let messageText;
|
|
2920
2931
|
if (status === 401) {
|
|
2921
|
-
|
|
2932
|
+
messageText = `HuggingFace API authentication failed. Please check your HUGGINGFACE_API_KEY. ${message}`;
|
|
2922
2933
|
} else if (status === 429) {
|
|
2923
|
-
|
|
2934
|
+
messageText = `HuggingFace API rate limit exceeded. ${message}`;
|
|
2924
2935
|
} else if (status === 400) {
|
|
2925
|
-
|
|
2936
|
+
messageText = `HuggingFace API request invalid: ${message}`;
|
|
2926
2937
|
} else if (status === 503) {
|
|
2927
|
-
|
|
2938
|
+
messageText = `HuggingFace model is loading. Please retry in a moment. ${message}`;
|
|
2928
2939
|
} else {
|
|
2929
|
-
|
|
2940
|
+
messageText = `HuggingFace API error (${status}): ${message}`;
|
|
2930
2941
|
}
|
|
2931
|
-
|
|
2932
|
-
if (error.response) wrappedError.response = error.response;
|
|
2933
|
-
throw wrappedError;
|
|
2942
|
+
throw withProviderErrorMetadata(error, messageText);
|
|
2934
2943
|
}
|
|
2935
2944
|
throw error;
|
|
2936
2945
|
}
|
|
@@ -2940,7 +2949,7 @@ var HuggingFaceEmbeddingProvider = class {
|
|
|
2940
2949
|
const modelToUse = model || this.defaultModel;
|
|
2941
2950
|
return retryWithBackoff2(async () => {
|
|
2942
2951
|
try {
|
|
2943
|
-
const response = await
|
|
2952
|
+
const response = await axios11.post(
|
|
2944
2953
|
`${this.baseUrl}/${modelToUse}`,
|
|
2945
2954
|
{
|
|
2946
2955
|
inputs: texts,
|
|
@@ -2963,24 +2972,22 @@ var HuggingFaceEmbeddingProvider = class {
|
|
|
2963
2972
|
dimensions
|
|
2964
2973
|
};
|
|
2965
2974
|
} catch (error) {
|
|
2966
|
-
if (
|
|
2975
|
+
if (axios11.isAxiosError(error)) {
|
|
2967
2976
|
const status = error.response?.status;
|
|
2968
2977
|
const message = error.response?.data?.error || error.message;
|
|
2969
|
-
let
|
|
2978
|
+
let messageText;
|
|
2970
2979
|
if (status === 401) {
|
|
2971
|
-
|
|
2980
|
+
messageText = `HuggingFace API authentication failed. Please check your HUGGINGFACE_API_KEY. ${message}`;
|
|
2972
2981
|
} else if (status === 429) {
|
|
2973
|
-
|
|
2982
|
+
messageText = `HuggingFace API rate limit exceeded. ${message}`;
|
|
2974
2983
|
} else if (status === 400) {
|
|
2975
|
-
|
|
2984
|
+
messageText = `HuggingFace API request invalid: ${message}`;
|
|
2976
2985
|
} else if (status === 503) {
|
|
2977
|
-
|
|
2986
|
+
messageText = `HuggingFace model is loading. Please retry in a moment. ${message}`;
|
|
2978
2987
|
} else {
|
|
2979
|
-
|
|
2988
|
+
messageText = `HuggingFace API error (${status}): ${message}`;
|
|
2980
2989
|
}
|
|
2981
|
-
|
|
2982
|
-
if (error.response) wrappedError.response = error.response;
|
|
2983
|
-
throw wrappedError;
|
|
2990
|
+
throw withProviderErrorMetadata(error, messageText);
|
|
2984
2991
|
}
|
|
2985
2992
|
throw error;
|
|
2986
2993
|
}
|
|
@@ -3014,7 +3021,7 @@ var VoyageEmbeddingProvider = class {
|
|
|
3014
3021
|
const modelToUse = model || this.defaultModel;
|
|
3015
3022
|
return retryWithBackoff2(async () => {
|
|
3016
3023
|
try {
|
|
3017
|
-
const response = await
|
|
3024
|
+
const response = await axios11.post(
|
|
3018
3025
|
`${this.baseUrl}/embeddings`,
|
|
3019
3026
|
{
|
|
3020
3027
|
input: texts,
|
|
@@ -3041,22 +3048,20 @@ var VoyageEmbeddingProvider = class {
|
|
|
3041
3048
|
} : void 0
|
|
3042
3049
|
};
|
|
3043
3050
|
} catch (error) {
|
|
3044
|
-
if (
|
|
3051
|
+
if (axios11.isAxiosError(error)) {
|
|
3045
3052
|
const status = error.response?.status;
|
|
3046
3053
|
const message = error.response?.data?.message || error.message;
|
|
3047
|
-
let
|
|
3054
|
+
let messageText;
|
|
3048
3055
|
if (status === 401) {
|
|
3049
|
-
|
|
3056
|
+
messageText = `Voyage AI API authentication failed. Please check your VOYAGE_API_KEY. ${message}`;
|
|
3050
3057
|
} else if (status === 429) {
|
|
3051
|
-
|
|
3058
|
+
messageText = `Voyage AI API rate limit exceeded. ${message}`;
|
|
3052
3059
|
} else if (status === 400) {
|
|
3053
|
-
|
|
3060
|
+
messageText = `Voyage AI API request invalid: ${message}`;
|
|
3054
3061
|
} else {
|
|
3055
|
-
|
|
3062
|
+
messageText = `Voyage AI API error (${status}): ${message}`;
|
|
3056
3063
|
}
|
|
3057
|
-
|
|
3058
|
-
if (error.response) wrappedError.response = error.response;
|
|
3059
|
-
throw wrappedError;
|
|
3064
|
+
throw withProviderErrorMetadata(error, messageText);
|
|
3060
3065
|
}
|
|
3061
3066
|
throw error;
|
|
3062
3067
|
}
|
|
@@ -3080,7 +3085,7 @@ var OllamaEmbeddingProvider = class {
|
|
|
3080
3085
|
const modelToUse = model || this.defaultModel;
|
|
3081
3086
|
return retryWithBackoff2(async () => {
|
|
3082
3087
|
try {
|
|
3083
|
-
const response = await
|
|
3088
|
+
const response = await axios11.post(
|
|
3084
3089
|
`${this.baseUrl}/api/embeddings`,
|
|
3085
3090
|
{
|
|
3086
3091
|
model: modelToUse,
|
|
@@ -3099,22 +3104,20 @@ var OllamaEmbeddingProvider = class {
|
|
|
3099
3104
|
dimensions: embedding.length
|
|
3100
3105
|
};
|
|
3101
3106
|
} catch (error) {
|
|
3102
|
-
if (
|
|
3107
|
+
if (axios11.isAxiosError(error)) {
|
|
3103
3108
|
const status = error.response?.status;
|
|
3104
3109
|
const message = error.response?.data?.error || error.message;
|
|
3105
|
-
let
|
|
3110
|
+
let messageText;
|
|
3106
3111
|
if (error.code === "ECONNREFUSED") {
|
|
3107
|
-
|
|
3112
|
+
messageText = `Cannot connect to Ollama at ${this.baseUrl}. Make sure Ollama is running locally.`;
|
|
3108
3113
|
} else if (status === 404) {
|
|
3109
|
-
|
|
3114
|
+
messageText = "Ollama model not found. Pull it with: ollama pull <model-name>";
|
|
3110
3115
|
} else if (status === 400) {
|
|
3111
|
-
|
|
3116
|
+
messageText = `Ollama API request invalid: ${message}`;
|
|
3112
3117
|
} else {
|
|
3113
|
-
|
|
3118
|
+
messageText = `Ollama API error (${status}): ${message}`;
|
|
3114
3119
|
}
|
|
3115
|
-
|
|
3116
|
-
if (error.response) wrappedError.response = error.response;
|
|
3117
|
-
throw wrappedError;
|
|
3120
|
+
throw withProviderErrorMetadata(error, messageText);
|
|
3118
3121
|
}
|
|
3119
3122
|
throw error;
|
|
3120
3123
|
}
|
|
@@ -3706,7 +3709,7 @@ function createNeo4jFindNodesTool() {
|
|
|
3706
3709
|
parameters = { ...parameters, ...filterParams };
|
|
3707
3710
|
}
|
|
3708
3711
|
cypher += ` RETURN n LIMIT $limit`;
|
|
3709
|
-
parameters.limit = input.limit;
|
|
3712
|
+
parameters.limit = input.limit ?? 100;
|
|
3710
3713
|
const result = await session.run(cypher, parameters);
|
|
3711
3714
|
const formattedResults = formatResults(result.records);
|
|
3712
3715
|
return {
|
|
@@ -10646,11 +10649,11 @@ var AskHumanInputSchema = z.object({
|
|
|
10646
10649
|
});
|
|
10647
10650
|
var logLevel3 = process.env.LOG_LEVEL?.toLowerCase() || LogLevel.INFO;
|
|
10648
10651
|
var logger18 = createLogger("agentforge:tools:agent:ask-human", { level: logLevel3 });
|
|
10649
|
-
function
|
|
10652
|
+
function isRecord3(value) {
|
|
10650
10653
|
return typeof value === "object" && value !== null;
|
|
10651
10654
|
}
|
|
10652
10655
|
function resolveInterrupt(module) {
|
|
10653
|
-
if (!
|
|
10656
|
+
if (!isRecord3(module)) {
|
|
10654
10657
|
return void 0;
|
|
10655
10658
|
}
|
|
10656
10659
|
const candidate = module.interrupt;
|
|
@@ -10757,6 +10760,6 @@ function createAskHumanTool() {
|
|
|
10757
10760
|
}
|
|
10758
10761
|
var askHumanTool = createAskHumanTool();
|
|
10759
10762
|
|
|
10760
|
-
export { AskHumanInputSchema, CalculatorSchema, ConnectionManager, ConnectionState, CreditCardValidatorSchema, CurrentDateTimeSchema, DEFAULT_BATCH_SIZE, DEFAULT_CHUNK_SIZE, DEFAULT_DESTINATION_POLICY, DEFAULT_FILE_SYSTEM_POLICY, DEFAULT_RETRY_CONFIG2 as DEFAULT_RETRY_CONFIG, DateArithmeticSchema, DateComparisonSchema, DateDifferenceSchema, DateFormatterSchema, DestinationPolicyError, DuckDuckGoProvider, EmailValidatorSchema, EmbeddingManager, FileSystemPolicy, FileSystemPolicyError, HttpMethod, IpValidatorSchema, MAX_BATCH_SIZE, MathFunctionsSchema, MissingPeerDependencyError, OpenAIEmbeddingProvider, PhoneValidatorSchema, RandomNumberSchema, SchemaInspector, SerperProvider, StatisticsSchema, StringCaseConverterSchema, StringJoinSchema, StringLengthSchema, StringReplaceSchema, StringSplitSchema, StringSubstringSchema, StringTrimSchema, UrlValidatorSimpleSchema, UuidValidatorSchema, archiveConfluencePage, arrayFilter, arrayFilterSchema, arrayGroupBy, arrayGroupBySchema, arrayMap, arrayMapSchema, arraySort, arraySortSchema, askHumanTool, assertDestinationAllowed, benchmarkBatchExecution, benchmarkStreamingSelectMemory, buildDeleteQuery, buildInsertQuery, buildSelectQuery, buildUpdateQuery, calculator, checkPeerDependency, confluenceTools, createArrayFilterTool, createArrayGroupByTool, createArrayMapTool, createArraySortTool, createAskHumanTool, createCalculatorTool, createConfluencePage, createConfluenceTools, createCreditCardValidatorTool, createCsvGeneratorTool, createCsvParserTool, createCsvToJsonTool, createCsvTools, createCurrentDateTimeTool, createDateArithmeticTool, createDateComparisonTool, createDateDifferenceTool, createDateFormatterTool, createDateTimeTools, createDirectoryCreateTool, createDirectoryDeleteTool, createDirectoryListTool, createDirectoryOperationTools, createDuckDuckGoProvider, createEmailValidatorTool, createExtractImagesTool, createExtractLinksTool, createFileAppendTool, createFileDeleteTool, createFileExistsTool, createFileOperationTools, createFileReaderTool, createFileSearchTool, createFileSystemPolicy, createFileWriterTool, createHtmlParserTool, createHtmlParserTools, createHttpTools, createIpValidatorTool, createJsonMergeTool, createJsonParserTool, createJsonQueryTool, createJsonStringifyTool, createJsonToCsvTool, createJsonToXmlTool, createJsonTools, createJsonValidatorTool, createMathFunctionsTool, createMathOperationTools, createModelSafeToolPreset, createNeo4jCreateNodeWithEmbeddingTool, createNeo4jFindNodesTool, createNeo4jGetSchemaTool, createNeo4jQueryTool, createNeo4jTools, createNeo4jTraverseTool, createNeo4jVectorSearchTool, createNeo4jVectorSearchWithEmbeddingTool, createObjectOmitTool, createObjectPickTool, createPathBasenameTool, createPathDirnameTool, createPathExtensionTool, createPathJoinTool, createPathNormalizeTool, createPathParseTool, createPathRelativeTool, createPathResolveTool, createPathUtilityTools, createPhoneValidatorTool, createRandomNumberTool, createScraperTools, createSelectReadableStream, createSerperProvider, createSlackTools, createStatisticsTool, createStringCaseConverterTool, createStringJoinTool, createStringLengthTool, createStringReplaceTool, createStringSplitTool, createStringSubstringTool, createStringTrimTool, createStringUtilityTools, createTransformerTools, createUrlBuilderTool, createUrlQueryParserTool, createUrlValidatorSimpleTool, createUrlValidatorTool, createUrlValidatorTools, createUuidValidatorTool, createValidationTools, createWebScraperTool, createXmlGeneratorTool, createXmlParserTool, createXmlToJsonTool, createXmlTools, creditCardValidator, csvGenerator, csvGeneratorSchema, csvParser, csvParserSchema, csvToJson, csvToJsonSchema, csvTools, currentDateTime, dateArithmetic, dateComparison, dateDifference, dateFormatter, dateTimeTools, diffSchemas, directoryCreate, directoryCreateSchema, directoryDelete, directoryDeleteSchema, directoryList, directoryListSchema, directoryOperationTools, emailValidator, embeddingManager, executeBatchedTask, executeQuery2 as executeQuery, executeStreamingSelect, exportSchemaToJson, extractImages, extractImagesSchema, extractLinks, extractLinksSchema, fileAppend, fileAppendSchema, fileDelete, fileDeleteSchema, fileExists, fileExistsSchema, fileOperationTools, fileReader, fileReaderSchema, fileSearch, fileSearchSchema, fileWriter, fileWriterSchema, generateBatchEmbeddings, generateEmbedding, getCohereApiKey, getConfluencePage, getEmbeddingModel, getEmbeddingProvider, getHuggingFaceApiKey, getInstallationInstructions, getOllamaBaseUrl, getOpenAIApiKey, getPeerDependencyName, getSlackChannels, getSlackMessages, getSpacePages, getVendorTypeMap, getVoyageApiKey, htmlParser, htmlParserSchema, htmlParserTools, httpClient, httpGet, httpGetSchema, httpPost, httpPostSchema, httpRequestSchema, httpTools, importSchemaFromJson, initializeEmbeddings, initializeEmbeddingsWithConfig, initializeFromEnv, initializeNeo4jTools, ipValidator, isRetryableError2 as isRetryableError, jsonMerge, jsonMergeSchema, jsonParser, jsonParserSchema, jsonQuery, jsonQuerySchema, jsonStringify, jsonStringifySchema, jsonToCsv, jsonToCsvSchema, jsonToXml, jsonToXmlSchema, jsonTools, jsonValidator, jsonValidatorSchema, listConfluenceSpaces, mapColumnType, mapSchemaTypes, mathFunctions, mathOperationTools, neo4jCoreTools, neo4jCreateNodeWithEmbedding, neo4jCreateNodeWithEmbeddingSchema, neo4jFindNodes, neo4jFindNodesSchema, neo4jGetSchema, neo4jGetSchemaSchema, neo4jPool, neo4jQuery, neo4jQuerySchema, neo4jTools, neo4jTraverse, neo4jTraverseSchema, neo4jVectorSearch, neo4jVectorSearchSchema, neo4jVectorSearchWithEmbedding, neo4jVectorSearchWithEmbeddingSchema, notifySlack, objectOmit, objectOmitSchema, objectPick, objectPickSchema, pathBasename, pathBasenameSchema, pathDirname, pathDirnameSchema, pathExtension, pathExtensionSchema, pathJoin, pathJoinSchema, pathNormalize, pathNormalizeSchema, pathParse, pathParseSchema, pathRelative, pathRelativeSchema, pathResolve, pathResolveSchema, pathUtilityTools, phoneValidator, randomNumber, relationalDelete, relationalGetSchema, relationalInsert, relationalQuery, relationalSelect, relationalUpdate, requestWithDestinationPolicy, resolveFileSystemPolicy, retryWithBackoff2 as retryWithBackoff, scraperTools, searchConfluence, searchResultSchema, sendSlackMessage, slackTools, statistics, streamSelectChunks, stringCaseConverter, stringJoin, stringLength, stringReplace, stringSplit, stringSubstring, stringTrim, stringUtilityTools, transformerArraySchema, transformerObjectSchema, transformerTools, transformerValueSchema, updateConfluencePage, urlBuilder, urlBuilderSchema, urlQueryParser, urlQueryParserSchema, urlValidator, urlValidatorSchema, urlValidatorSimple, urlValidatorTools, uuidValidator, validateBatch, validateColumnTypes, validateColumnsExist, validateTableExists, validateText, validationTools, webScraper, webScraperSchema, webSearch, webSearchOutputSchema, webSearchSchema, withTransaction, xmlGenerator, xmlGeneratorSchema, xmlParser, xmlParserSchema, xmlToJson, xmlToJsonSchema, xmlTools };
|
|
10763
|
+
export { AskHumanInputSchema, CalculatorSchema, ConnectionManager, ConnectionState, CreditCardValidatorSchema, CurrentDateTimeSchema, DEFAULT_BATCH_SIZE, DEFAULT_CHUNK_SIZE, DEFAULT_DESTINATION_POLICY, DEFAULT_FILE_SYSTEM_POLICY, DEFAULT_RETRY_CONFIG2 as DEFAULT_RETRY_CONFIG, DateArithmeticSchema, DateComparisonSchema, DateDifferenceSchema, DateFormatterSchema, DestinationPolicyError, DuckDuckGoProvider, EmailValidatorSchema, EmbeddingManager, FileSystemPolicy, FileSystemPolicyError, HttpMethod, IpValidatorSchema, MAX_BATCH_SIZE, MathFunctionsSchema, MissingPeerDependencyError, OpenAIEmbeddingProvider, PhoneValidatorSchema, RandomNumberSchema, SchemaInspector, SerperProvider, StatisticsSchema, StringCaseConverterSchema, StringJoinSchema, StringLengthSchema, StringReplaceSchema, StringSplitSchema, StringSubstringSchema, StringTrimSchema, UrlValidatorSimpleSchema, UuidValidatorSchema, archiveConfluencePage, arrayFilter, arrayFilterSchema, arrayGroupBy, arrayGroupBySchema, arrayMap, arrayMapSchema, arraySort, arraySortSchema, askHumanTool, assertDestinationAllowed, benchmarkBatchExecution, benchmarkStreamingSelectMemory, buildDeleteQuery, buildInsertQuery, buildSelectQuery, buildUpdateQuery, calculator, checkPeerDependency, confluenceTools, createArrayFilterTool, createArrayGroupByTool, createArrayMapTool, createArraySortTool, createAskHumanTool, createCalculatorTool, createConfluencePage, createConfluenceTools, createCreditCardValidatorTool, createCsvGeneratorTool, createCsvParserTool, createCsvToJsonTool, createCsvTools, createCurrentDateTimeTool, createDateArithmeticTool, createDateComparisonTool, createDateDifferenceTool, createDateFormatterTool, createDateTimeTools, createDirectoryCreateTool, createDirectoryDeleteTool, createDirectoryListTool, createDirectoryOperationTools, createDuckDuckGoProvider, createEmailValidatorTool, createExtractImagesTool, createExtractLinksTool, createFileAppendTool, createFileDeleteTool, createFileExistsTool, createFileOperationTools, createFileReaderTool, createFileSearchTool, createFileSystemPolicy, createFileWriterTool, createHtmlParserTool, createHtmlParserTools, createHttpTools, createIpValidatorTool, createJsonMergeTool, createJsonParserTool, createJsonQueryTool, createJsonStringifyTool, createJsonToCsvTool, createJsonToXmlTool, createJsonTools, createJsonValidatorTool, createMathFunctionsTool, createMathOperationTools, createModelSafeToolPreset, createNeo4jCreateNodeWithEmbeddingTool, createNeo4jFindNodesTool, createNeo4jGetSchemaTool, createNeo4jQueryTool, createNeo4jTools, createNeo4jTraverseTool, createNeo4jVectorSearchTool, createNeo4jVectorSearchWithEmbeddingTool, createObjectOmitTool, createObjectPickTool, createPathBasenameTool, createPathDirnameTool, createPathExtensionTool, createPathJoinTool, createPathNormalizeTool, createPathParseTool, createPathRelativeTool, createPathResolveTool, createPathUtilityTools, createPhoneValidatorTool, createRandomNumberTool, createScraperTools, createSelectReadableStream, createSerperProvider, createSlackTools, createStatisticsTool, createStringCaseConverterTool, createStringJoinTool, createStringLengthTool, createStringReplaceTool, createStringSplitTool, createStringSubstringTool, createStringTrimTool, createStringUtilityTools, createTransformerTools, createUrlBuilderTool, createUrlQueryParserTool, createUrlValidatorSimpleTool, createUrlValidatorTool, createUrlValidatorTools, createUuidValidatorTool, createValidationTools, createWebScraperTool, createXmlGeneratorTool, createXmlParserTool, createXmlToJsonTool, createXmlTools, creditCardValidator, csvGenerator, csvGeneratorSchema, csvParser, csvParserSchema, csvToJson, csvToJsonSchema, csvTools, currentDateTime, dateArithmetic, dateComparison, dateDifference, dateFormatter, dateTimeTools, diffSchemas, directoryCreate, directoryCreateSchema, directoryDelete, directoryDeleteSchema, directoryList, directoryListSchema, directoryOperationTools, emailValidator, embeddingManager, executeBatchedTask, executeQuery2 as executeQuery, executeStreamingSelect, exportSchemaToJson, extractImages, extractImagesSchema, extractLinks, extractLinksSchema, fileAppend, fileAppendSchema, fileDelete, fileDeleteSchema, fileExists, fileExistsSchema, fileOperationTools, fileReader, fileReaderSchema, fileSearch, fileSearchSchema, fileWriter, fileWriterSchema, generateBatchEmbeddings, generateEmbedding, getCohereApiKey, getConfluencePage, getEmbeddingModel, getEmbeddingProvider, getHuggingFaceApiKey, getInstallationInstructions, getOllamaBaseUrl, getOpenAIApiKey, getPeerDependencyName, getSlackChannels, getSlackMessages, getSpacePages, getVendorTypeMap, getVoyageApiKey, htmlParser, htmlParserSchema, htmlParserTools, httpClient, httpGet, httpGetSchema, httpPost, httpPostSchema, httpRequestSchema, httpTools, importSchemaFromJson, initializeEmbeddings, initializeEmbeddingsWithConfig, initializeFromEnv, initializeNeo4jTools, ipValidator, isRetryableError2 as isRetryableError, jsonMerge, jsonMergeSchema, jsonParser, jsonParserSchema, jsonQuery, jsonQuerySchema, jsonStringify, jsonStringifySchema, jsonToCsv, jsonToCsvSchema, jsonToXml, jsonToXmlSchema, jsonTools, jsonValidator, jsonValidatorSchema, listConfluenceSpaces, mapColumnType, mapSchemaTypes, mathFunctions, mathOperationTools, neo4jCoreTools, neo4jCreateNodeWithEmbedding, neo4jCreateNodeWithEmbeddingSchema, neo4jFindNodes, neo4jFindNodesSchema, neo4jGetSchema, neo4jGetSchemaSchema, neo4jPool, neo4jQuery, neo4jQuerySchema, neo4jTools, neo4jTraverse, neo4jTraverseSchema, neo4jVectorSearch, neo4jVectorSearchSchema, neo4jVectorSearchWithEmbedding, neo4jVectorSearchWithEmbeddingSchema, notifySlack, objectOmit, objectOmitSchema, objectPick, objectPickSchema, pathBasename, pathBasenameSchema, pathDirname, pathDirnameSchema, pathExtension, pathExtensionSchema, pathJoin, pathJoinSchema, pathNormalize, pathNormalizeSchema, pathParse, pathParseSchema, pathRelative, pathRelativeSchema, pathResolve, pathResolveSchema, pathUtilityTools, phoneValidator, randomNumber, relationalDelete, relationalGetSchema, relationalInsert, relationalQuery, relationalSelect, relationalUpdate, requestWithDestinationPolicy, resolveFileSystemPolicy, retryWithBackoff2 as retryWithBackoff, scraperTools, searchConfluence, searchResultSchema, sendSlackMessage, slackTools, statistics, streamSelectChunks, stringCaseConverter, stringJoin, stringLength, stringReplace, stringSplit, stringSubstring, stringTrim, stringUtilityTools, transformerArraySchema, transformerObjectSchema, transformerTools, transformerValueSchema, updateConfluencePage, urlBuilder, urlBuilderSchema, urlQueryParser, urlQueryParserSchema, urlValidator, urlValidatorSchema, urlValidatorSimple, urlValidatorTools, uuidValidator, validateBatch, validateColumnTypes, validateColumnsExist, validateTableExists, validateText, validationTools, webScraper, webScraperSchema, webSearch, webSearchOutputSchema, webSearchSchema, withProviderErrorMetadata, withTransaction, xmlGenerator, xmlGeneratorSchema, xmlParser, xmlParserSchema, xmlToJson, xmlToJsonSchema, xmlTools };
|
|
10761
10764
|
//# sourceMappingURL=index.js.map
|
|
10762
10765
|
//# sourceMappingURL=index.js.map
|