@axiom-lattice/core 2.1.26 → 2.1.27

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.js CHANGED
@@ -93,6 +93,7 @@ __export(index_exports, {
93
93
  checkEmptyContent: () => checkEmptyContent,
94
94
  clearEncryptionKeyCache: () => clearEncryptionKeyCache,
95
95
  createAgentTeam: () => createAgentTeam,
96
+ createExecuteSqlQueryTool: () => createExecuteSqlQueryTool,
96
97
  createFileData: () => createFileData,
97
98
  createInfoSqlTool: () => createInfoSqlTool,
98
99
  createListMetricsDataSourcesTool: () => createListMetricsDataSourcesTool,
@@ -695,11 +696,11 @@ var ToolLatticeManager = class _ToolLatticeManager extends BaseLatticeManager {
695
696
  * @param key Lattice键名
696
697
  * @param tool 已有的StructuredTool实例
697
698
  */
698
- registerExistingTool(key, tool46) {
699
+ registerExistingTool(key, tool47) {
699
700
  const config = {
700
- name: tool46.name,
701
- description: tool46.description,
702
- schema: tool46.schema,
701
+ name: tool47.name,
702
+ description: tool47.description,
703
+ schema: tool47.schema,
703
704
  // StructuredTool的schema已经是Zod兼容的
704
705
  needUserApprove: false
705
706
  // MCP工具默认不需要用户批准
@@ -707,7 +708,7 @@ var ToolLatticeManager = class _ToolLatticeManager extends BaseLatticeManager {
707
708
  const toolLattice = {
708
709
  key,
709
710
  config,
710
- client: tool46
711
+ client: tool47
711
712
  };
712
713
  this.register(key, toolLattice);
713
714
  }
@@ -733,7 +734,7 @@ var ToolLatticeManager = class _ToolLatticeManager extends BaseLatticeManager {
733
734
  };
734
735
  var toolLatticeManager = ToolLatticeManager.getInstance();
735
736
  var registerToolLattice = (key, config, executor) => toolLatticeManager.registerLattice(key, config, executor);
736
- var registerExistingTool = (key, tool46) => toolLatticeManager.registerExistingTool(key, tool46);
737
+ var registerExistingTool = (key, tool47) => toolLatticeManager.registerExistingTool(key, tool47);
737
738
  var getToolLattice = (key) => toolLatticeManager.getToolLattice(key);
738
739
  var getToolDefinition = (key) => toolLatticeManager.getToolDefinition(key);
739
740
  var getToolClient = (key) => toolLatticeManager.getToolClient(key);
@@ -1621,6 +1622,28 @@ var SemanticMetricsClient = class {
1621
1622
  }
1622
1623
  return data.data;
1623
1624
  }
1625
+ /**
1626
+ * Execute a custom SQL query
1627
+ * POST /metrics/query
1628
+ */
1629
+ async executeSqlQuery(request) {
1630
+ const response = await fetch(`${this.baseUrl}/metrics/query`, {
1631
+ method: "POST",
1632
+ headers: {
1633
+ ...this.getHeaders(),
1634
+ "Content-Type": "application/json"
1635
+ },
1636
+ body: JSON.stringify(request)
1637
+ });
1638
+ if (!response.ok) {
1639
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
1640
+ }
1641
+ const data = await response.json();
1642
+ if (data.code !== 200) {
1643
+ throw new Error(`API error: ${data.message}`);
1644
+ }
1645
+ return data.data;
1646
+ }
1624
1647
  /**
1625
1648
  * Get selected data sources for this configuration
1626
1649
  */
@@ -2993,8 +3016,105 @@ ${serverKeys.map(
2993
3016
  );
2994
3017
  };
2995
3018
 
2996
- // src/tool_lattice/code_eval/index.ts
3019
+ // src/tool_lattice/metrics/execute_sql_query.ts
2997
3020
  var import_zod14 = __toESM(require("zod"));
3021
+ var import_langchain12 = require("langchain");
3022
+ var EXECUTE_SQL_QUERY_DESCRIPTION = `Execute Custom SQL Query - Advanced Data Analysis Tool
3023
+
3024
+ Use this tool when you need to perform complex queries that cannot be achieved through the standard semantic metric query interface.
3025
+
3026
+ When to Use This Tool:
3027
+ - When you need custom aggregations, calculations, or joins
3028
+ - When the standard metric query patterns don't meet your requirements
3029
+ - When you need to query raw table data with custom filters
3030
+ - When you want to perform complex analytical queries (e.g., window functions, CTEs)
3031
+
3032
+ When NOT to Use This Tool:
3033
+ - For simple metric queries - use query_semantic_metric_data instead
3034
+ - When you haven't identified the correct datasource yet - use list_metrics_datasources first
3035
+
3036
+ Prerequisites:
3037
+ 1. Call list_metrics_datasources to get available datasource IDs
3038
+ 2. Call query_tables_list to see available tables and their structures
3039
+ 3. Call query_table_definition to understand table columns before writing SQL
3040
+
3041
+ SQL Query Guidelines:
3042
+ - Use named parameters with :paramName syntax (e.g., :year, :category)
3043
+ - Provide parameter values in the params object
3044
+ - Always use proper table and column names from table definitions
3045
+ - Include appropriate WHERE clauses to limit data
3046
+ - Use LIMIT to prevent returning too many rows
3047
+
3048
+ Example:
3049
+ {
3050
+ "serverKey": "production_metrics",
3051
+ "datasourceId": "1",
3052
+ "customSql": "SELECT \\"Code\\" AS period, SUM(\\"LineTotal\\") AS revenue FROM \\"MTC_VW_SalesRevenueCost\\" WHERE \\"Category\\" = :year GROUP BY \\"Code\\" ORDER BY \\"Code\\" ASC",
3053
+ "params": {
3054
+ "year": "2024"
3055
+ },
3056
+ "limit": 1000
3057
+ }`;
3058
+ var createExecuteSqlQueryTool = ({ serverKeys, serverDescriptions }) => {
3059
+ const availableServersText = serverKeys.length > 0 ? `
3060
+
3061
+ Available metrics servers:
3062
+ ${serverKeys.map(
3063
+ (key) => `- ${key}${serverDescriptions?.[key] ? `: ${serverDescriptions[key]}` : ""}`
3064
+ ).join("\n")}` : "";
3065
+ return (0, import_langchain12.tool)(
3066
+ async ({
3067
+ serverKey,
3068
+ datasourceId,
3069
+ customSql,
3070
+ params,
3071
+ limit
3072
+ }, _exeConfig) => {
3073
+ try {
3074
+ if (!serverKey) {
3075
+ return "Error: serverKey parameter is required. Available servers: " + serverKeys.join(", ");
3076
+ }
3077
+ if (!serverKeys.includes(serverKey)) {
3078
+ return `Error: serverKey "${serverKey}" is not in the allowed list: [${serverKeys.join(", ")}]`;
3079
+ }
3080
+ if (!datasourceId) {
3081
+ return "Error: datasourceId parameter is required.";
3082
+ }
3083
+ if (!customSql || customSql.trim().length === 0) {
3084
+ return "Error: customSql parameter is required and cannot be empty.";
3085
+ }
3086
+ const config = metricsServerManager.getConfig(serverKey);
3087
+ if (config.type !== "semantic") {
3088
+ return `Error: Server "${serverKey}" is not a semantic metrics server. This tool only works with semantic servers.`;
3089
+ }
3090
+ const client = metricsServerManager.getClient(serverKey);
3091
+ const result = await client.executeSqlQuery({
3092
+ datasourceId,
3093
+ customSql,
3094
+ params,
3095
+ limit: limit || 1e3
3096
+ });
3097
+ return JSON.stringify(result, null, 2);
3098
+ } catch (error) {
3099
+ return `Error executing SQL query: ${error instanceof Error ? error.message : String(error)}`;
3100
+ }
3101
+ },
3102
+ {
3103
+ name: "execute_sql_query",
3104
+ description: `${EXECUTE_SQL_QUERY_DESCRIPTION}${availableServersText}`,
3105
+ schema: import_zod14.default.object({
3106
+ serverKey: import_zod14.default.string().describe(`Target semantic metrics server. Choose from: ${serverKeys.join(", ")}`),
3107
+ datasourceId: import_zod14.default.string().describe("The data source ID to execute SQL against."),
3108
+ customSql: import_zod14.default.string().describe("Custom SQL query string with named parameters (e.g., :year, :category). Use double quotes for identifiers."),
3109
+ params: import_zod14.default.record(import_zod14.default.union([import_zod14.default.string(), import_zod14.default.number(), import_zod14.default.boolean()])).optional().describe("Optional parameters for the SQL query. Keys should match the :paramName placeholders in customSql."),
3110
+ limit: import_zod14.default.number().optional().describe("Maximum number of results to return (default: 1000).")
3111
+ })
3112
+ }
3113
+ );
3114
+ };
3115
+
3116
+ // src/tool_lattice/code_eval/index.ts
3117
+ var import_zod15 = __toESM(require("zod"));
2998
3118
 
2999
3119
  // src/sandbox_lattice/SandboxLatticeManager.ts
3000
3120
  var import_sandbox = require("@agent-infra/sandbox");
@@ -3233,7 +3353,7 @@ var getSandBoxManager = (key = "default") => {
3233
3353
  };
3234
3354
 
3235
3355
  // src/tool_lattice/code_eval/index.ts
3236
- var import_langchain12 = require("langchain");
3356
+ var import_langchain13 = require("langchain");
3237
3357
  var CODE_EVAL_DESCRIPTION = `Execute code in Python or JavaScript runtime.
3238
3358
 
3239
3359
  Args:
@@ -3243,7 +3363,7 @@ Args:
3243
3363
  Returns:
3244
3364
  Dict containing output, errors, and execution details`;
3245
3365
  var createCodeEvalTool = ({ isolatedLevel }) => {
3246
- return (0, import_langchain12.tool)(async (input, exe_config) => {
3366
+ return (0, import_langchain13.tool)(async (input, exe_config) => {
3247
3367
  try {
3248
3368
  const runConfig = exe_config.configurable?.runConfig;
3249
3369
  const sandboxManager = getSandBoxManager();
@@ -3284,16 +3404,16 @@ ${traceback.join("\n")}`);
3284
3404
  }, {
3285
3405
  name: "execute_code",
3286
3406
  description: CODE_EVAL_DESCRIPTION,
3287
- schema: import_zod14.default.object({
3288
- language: import_zod14.default.enum(["python", "javascript"]).describe("Programming language: 'python' or 'javascript'"),
3289
- code: import_zod14.default.string().describe("Code to execute")
3407
+ schema: import_zod15.default.object({
3408
+ language: import_zod15.default.enum(["python", "javascript"]).describe("Programming language: 'python' or 'javascript'"),
3409
+ code: import_zod15.default.string().describe("Code to execute")
3290
3410
  })
3291
3411
  });
3292
3412
  };
3293
3413
 
3294
3414
  // src/tool_lattice/code_execute_file/index.ts
3295
- var import_zod15 = __toESM(require("zod"));
3296
- var import_langchain13 = require("langchain");
3415
+ var import_zod16 = __toESM(require("zod"));
3416
+ var import_langchain14 = require("langchain");
3297
3417
  var path = __toESM(require("path"));
3298
3418
  var CODE_EXECUTE_FILE_DESCRIPTION = `Execute a code file from the sandbox filesystem. Only supports Python (.py) and JavaScript (.js, .mjs) files. Other file types are not supported. The tool reads the file content and executes it in an isolated sandbox environment. Language is automatically inferred from the file extension. Output is returned via stdout; errors appear in stderr and traceback.`;
3299
3419
  function inferLanguageFromPath(filePath) {
@@ -3306,7 +3426,7 @@ function inferLanguageFromPath(filePath) {
3306
3426
  return null;
3307
3427
  }
3308
3428
  var createCodeExecuteFileTool = ({ isolatedLevel }) => {
3309
- return (0, import_langchain13.tool)(
3429
+ return (0, import_langchain14.tool)(
3310
3430
  async (input, exe_config) => {
3311
3431
  try {
3312
3432
  const runConfig = exe_config.configurable?.runConfig;
@@ -3369,15 +3489,15 @@ ${traceback.join("\n")}`);
3369
3489
  {
3370
3490
  name: "execute_code_file",
3371
3491
  description: CODE_EXECUTE_FILE_DESCRIPTION,
3372
- schema: import_zod15.default.object({
3373
- file_path: import_zod15.default.string().describe("Path to the code file to execute (absolute path in sandbox filesystem). Only supports .py (Python) and .js/.mjs (JavaScript) files.")
3492
+ schema: import_zod16.default.object({
3493
+ file_path: import_zod16.default.string().describe("Path to the code file to execute (absolute path in sandbox filesystem). Only supports .py (Python) and .js/.mjs (JavaScript) files.")
3374
3494
  })
3375
3495
  }
3376
3496
  );
3377
3497
  };
3378
3498
 
3379
3499
  // src/tool_lattice/convert_to_markdown/index.ts
3380
- var import_zod16 = __toESM(require("zod"));
3500
+ var import_zod17 = __toESM(require("zod"));
3381
3501
  var CONVERT_TO_MARKDOWN_DESCRIPTION = `Convert a resource described by an http:, https:, file: or data: URI to markdown.
3382
3502
 
3383
3503
  Args:
@@ -3394,8 +3514,8 @@ registerToolLattice(
3394
3514
  name: "convert_to_markdown",
3395
3515
  description: CONVERT_TO_MARKDOWN_DESCRIPTION,
3396
3516
  needUserApprove: false,
3397
- schema: import_zod16.default.object({
3398
- uri: import_zod16.default.string().describe("The URI to convert.")
3517
+ schema: import_zod17.default.object({
3518
+ uri: import_zod17.default.string().describe("The URI to convert.")
3399
3519
  })
3400
3520
  },
3401
3521
  async (input, exe_config) => {
@@ -3418,15 +3538,15 @@ registerToolLattice(
3418
3538
  );
3419
3539
 
3420
3540
  // src/tool_lattice/browser/browser_navigate.ts
3421
- var import_zod17 = __toESM(require("zod"));
3422
- var import_langchain14 = require("langchain");
3541
+ var import_zod18 = __toESM(require("zod"));
3542
+ var import_langchain15 = require("langchain");
3423
3543
  var BROWSER_NAVIGATE_DESCRIPTION = `Navigate to a URL.
3424
3544
 
3425
3545
  Args:
3426
3546
  url (str): The URL to navigate to.
3427
3547
  `;
3428
3548
  var createBrowserNavigateTool = ({ isolatedLevel }) => {
3429
- return (0, import_langchain14.tool)(
3549
+ return (0, import_langchain15.tool)(
3430
3550
  async (input, exe_config) => {
3431
3551
  try {
3432
3552
  const runConfig = exe_config.configurable?.runConfig;
@@ -3446,23 +3566,23 @@ var createBrowserNavigateTool = ({ isolatedLevel }) => {
3446
3566
  {
3447
3567
  name: "browser_navigate",
3448
3568
  description: BROWSER_NAVIGATE_DESCRIPTION,
3449
- schema: import_zod17.default.object({
3450
- url: import_zod17.default.string().describe("The URL to navigate to.")
3569
+ schema: import_zod18.default.object({
3570
+ url: import_zod18.default.string().describe("The URL to navigate to.")
3451
3571
  })
3452
3572
  }
3453
3573
  );
3454
3574
  };
3455
3575
 
3456
3576
  // src/tool_lattice/browser/browser_click.ts
3457
- var import_zod18 = __toESM(require("zod"));
3458
- var import_langchain15 = require("langchain");
3577
+ var import_zod19 = __toESM(require("zod"));
3578
+ var import_langchain16 = require("langchain");
3459
3579
  var BROWSER_CLICK_DESCRIPTION = `Click an element on the page, before using the tool, use \`browser_get_clickable_elements\` to get the index of the element, but not call \`browser_get_clickable_elements\` multiple times.
3460
3580
 
3461
3581
  Args:
3462
3582
  index (int): Index of the element to click
3463
3583
  `;
3464
3584
  var createBrowserClickTool = ({ isolatedLevel }) => {
3465
- return (0, import_langchain15.tool)(
3585
+ return (0, import_langchain16.tool)(
3466
3586
  async (input, exe_config) => {
3467
3587
  try {
3468
3588
  const runConfig = exe_config.configurable?.runConfig;
@@ -3482,23 +3602,23 @@ var createBrowserClickTool = ({ isolatedLevel }) => {
3482
3602
  {
3483
3603
  name: "browser_click",
3484
3604
  description: BROWSER_CLICK_DESCRIPTION,
3485
- schema: import_zod18.default.object({
3486
- index: import_zod18.default.number().describe("Index of the element to click")
3605
+ schema: import_zod19.default.object({
3606
+ index: import_zod19.default.number().describe("Index of the element to click")
3487
3607
  })
3488
3608
  }
3489
3609
  );
3490
3610
  };
3491
3611
 
3492
3612
  // src/tool_lattice/browser/browser_get_text.ts
3493
- var import_zod19 = __toESM(require("zod"));
3494
- var import_langchain16 = require("langchain");
3613
+ var import_zod20 = __toESM(require("zod"));
3614
+ var import_langchain17 = require("langchain");
3495
3615
  var BROWSER_GET_TEXT_DESCRIPTION = `Get the text content of the current page.
3496
3616
 
3497
3617
  Args:
3498
3618
  None
3499
3619
  `;
3500
3620
  var createBrowserGetTextTool = ({ isolatedLevel }) => {
3501
- return (0, import_langchain16.tool)(
3621
+ return (0, import_langchain17.tool)(
3502
3622
  async (input, exe_config) => {
3503
3623
  try {
3504
3624
  const runConfig = exe_config.configurable?.runConfig;
@@ -3516,21 +3636,21 @@ var createBrowserGetTextTool = ({ isolatedLevel }) => {
3516
3636
  {
3517
3637
  name: "browser_get_text",
3518
3638
  description: BROWSER_GET_TEXT_DESCRIPTION,
3519
- schema: import_zod19.default.object({})
3639
+ schema: import_zod20.default.object({})
3520
3640
  }
3521
3641
  );
3522
3642
  };
3523
3643
 
3524
3644
  // src/tool_lattice/browser/browser_get_markdown.ts
3525
- var import_zod20 = __toESM(require("zod"));
3526
- var import_langchain17 = require("langchain");
3645
+ var import_zod21 = __toESM(require("zod"));
3646
+ var import_langchain18 = require("langchain");
3527
3647
  var BROWSER_GET_MARKDOWN_DESCRIPTION = `Get the markdown content of the current page.
3528
3648
 
3529
3649
  Args:
3530
3650
  None
3531
3651
  `;
3532
3652
  var createBrowserGetMarkdownTool = ({ isolatedLevel }) => {
3533
- return (0, import_langchain17.tool)(
3653
+ return (0, import_langchain18.tool)(
3534
3654
  async (input, exe_config) => {
3535
3655
  try {
3536
3656
  const runConfig = exe_config.configurable?.runConfig;
@@ -3548,21 +3668,21 @@ var createBrowserGetMarkdownTool = ({ isolatedLevel }) => {
3548
3668
  {
3549
3669
  name: "browser_get_markdown",
3550
3670
  description: BROWSER_GET_MARKDOWN_DESCRIPTION,
3551
- schema: import_zod20.default.object({})
3671
+ schema: import_zod21.default.object({})
3552
3672
  }
3553
3673
  );
3554
3674
  };
3555
3675
 
3556
3676
  // src/tool_lattice/browser/browser_evaluate.ts
3557
- var import_zod21 = __toESM(require("zod"));
3558
- var import_langchain18 = require("langchain");
3677
+ var import_zod22 = __toESM(require("zod"));
3678
+ var import_langchain19 = require("langchain");
3559
3679
  var BROWSER_EVALUATE_DESCRIPTION = `Execute JavaScript in the browser console.
3560
3680
 
3561
3681
  Args:
3562
3682
  script (str): JavaScript code to execute, () => { /* code */ }
3563
3683
  `;
3564
3684
  var createBrowserEvaluateTool = ({ isolatedLevel }) => {
3565
- return (0, import_langchain18.tool)(
3685
+ return (0, import_langchain19.tool)(
3566
3686
  async (input, exe_config) => {
3567
3687
  try {
3568
3688
  const runConfig = exe_config.configurable?.runConfig;
@@ -3582,16 +3702,16 @@ var createBrowserEvaluateTool = ({ isolatedLevel }) => {
3582
3702
  {
3583
3703
  name: "browser_evaluate",
3584
3704
  description: BROWSER_EVALUATE_DESCRIPTION,
3585
- schema: import_zod21.default.object({
3586
- script: import_zod21.default.string().describe("JavaScript code to execute, () => { /* code */ }")
3705
+ schema: import_zod22.default.object({
3706
+ script: import_zod22.default.string().describe("JavaScript code to execute, () => { /* code */ }")
3587
3707
  })
3588
3708
  }
3589
3709
  );
3590
3710
  };
3591
3711
 
3592
3712
  // src/tool_lattice/browser/browser_screenshot.ts
3593
- var import_zod22 = __toESM(require("zod"));
3594
- var import_langchain19 = require("langchain");
3713
+ var import_zod23 = __toESM(require("zod"));
3714
+ var import_langchain20 = require("langchain");
3595
3715
  var BROWSER_SCREENSHOT_DESCRIPTION = `Take a screenshot of the current page or a specific element.
3596
3716
 
3597
3717
  Args:
@@ -3604,7 +3724,7 @@ Args:
3604
3724
  highlight (bool): Highlight the element
3605
3725
  `;
3606
3726
  var createBrowserScreenshotTool = ({ isolatedLevel }) => {
3607
- return (0, import_langchain19.tool)(
3727
+ return (0, import_langchain20.tool)(
3608
3728
  async (input, exe_config) => {
3609
3729
  try {
3610
3730
  const runConfig = exe_config.configurable?.runConfig;
@@ -3656,29 +3776,29 @@ var createBrowserScreenshotTool = ({ isolatedLevel }) => {
3656
3776
  {
3657
3777
  name: "browser_screenshot",
3658
3778
  description: BROWSER_SCREENSHOT_DESCRIPTION,
3659
- schema: import_zod22.default.object({
3660
- name: import_zod22.default.string().optional().describe("Name for the screenshot"),
3661
- selector: import_zod22.default.string().optional().describe("CSS selector for element to screenshot"),
3662
- index: import_zod22.default.number().optional().describe("index of the element to screenshot"),
3663
- width: import_zod22.default.number().optional().describe("Width in pixels (default: viewport width)"),
3664
- height: import_zod22.default.number().optional().describe("Height in pixels (default: viewport height)"),
3665
- fullPage: import_zod22.default.boolean().optional().describe("Full page screenshot (default: false)"),
3666
- highlight: import_zod22.default.boolean().default(false).describe("Highlight the element")
3779
+ schema: import_zod23.default.object({
3780
+ name: import_zod23.default.string().optional().describe("Name for the screenshot"),
3781
+ selector: import_zod23.default.string().optional().describe("CSS selector for element to screenshot"),
3782
+ index: import_zod23.default.number().optional().describe("index of the element to screenshot"),
3783
+ width: import_zod23.default.number().optional().describe("Width in pixels (default: viewport width)"),
3784
+ height: import_zod23.default.number().optional().describe("Height in pixels (default: viewport height)"),
3785
+ fullPage: import_zod23.default.boolean().optional().describe("Full page screenshot (default: false)"),
3786
+ highlight: import_zod23.default.boolean().default(false).describe("Highlight the element")
3667
3787
  })
3668
3788
  }
3669
3789
  );
3670
3790
  };
3671
3791
 
3672
3792
  // src/tool_lattice/browser/browser_scroll.ts
3673
- var import_zod23 = __toESM(require("zod"));
3674
- var import_langchain20 = require("langchain");
3793
+ var import_zod24 = __toESM(require("zod"));
3794
+ var import_langchain21 = require("langchain");
3675
3795
  var BROWSER_SCROLL_DESCRIPTION = `Scroll the page.
3676
3796
 
3677
3797
  Args:
3678
3798
  amount (int): Pixels to scroll (positive for down, negative for up), if the amount is not provided, scroll to the bottom of the page
3679
3799
  `;
3680
3800
  var createBrowserScrollTool = ({ isolatedLevel }) => {
3681
- return (0, import_langchain20.tool)(
3801
+ return (0, import_langchain21.tool)(
3682
3802
  async (input, exe_config) => {
3683
3803
  try {
3684
3804
  const runConfig = exe_config.configurable?.runConfig;
@@ -3698,16 +3818,16 @@ var createBrowserScrollTool = ({ isolatedLevel }) => {
3698
3818
  {
3699
3819
  name: "browser_scroll",
3700
3820
  description: BROWSER_SCROLL_DESCRIPTION,
3701
- schema: import_zod23.default.object({
3702
- amount: import_zod23.default.number().optional().describe("Pixels to scroll (positive for down, negative for up)")
3821
+ schema: import_zod24.default.object({
3822
+ amount: import_zod24.default.number().optional().describe("Pixels to scroll (positive for down, negative for up)")
3703
3823
  })
3704
3824
  }
3705
3825
  );
3706
3826
  };
3707
3827
 
3708
3828
  // src/tool_lattice/browser/browser_form_input_fill.ts
3709
- var import_zod24 = __toESM(require("zod"));
3710
- var import_langchain21 = require("langchain");
3829
+ var import_zod25 = __toESM(require("zod"));
3830
+ var import_langchain22 = require("langchain");
3711
3831
  var BROWSER_FORM_INPUT_FILL_DESCRIPTION = `Fill out an input field, before using the tool, Either 'index' or 'selector' must be provided.
3712
3832
 
3713
3833
  Args:
@@ -3717,7 +3837,7 @@ Args:
3717
3837
  clear (bool): Whether to clear existing text before filling
3718
3838
  `;
3719
3839
  var createBrowserFormInputFillTool = ({ isolatedLevel }) => {
3720
- return (0, import_langchain21.tool)(
3840
+ return (0, import_langchain22.tool)(
3721
3841
  async (input, exe_config) => {
3722
3842
  try {
3723
3843
  const runConfig = exe_config.configurable?.runConfig;
@@ -3740,19 +3860,19 @@ var createBrowserFormInputFillTool = ({ isolatedLevel }) => {
3740
3860
  {
3741
3861
  name: "browser_form_input_fill",
3742
3862
  description: BROWSER_FORM_INPUT_FILL_DESCRIPTION,
3743
- schema: import_zod24.default.object({
3744
- selector: import_zod24.default.string().optional().describe("CSS selector for input field"),
3745
- index: import_zod24.default.number().optional().describe("Index of the element to fill"),
3746
- value: import_zod24.default.string().describe("Value to fill"),
3747
- clear: import_zod24.default.boolean().default(false).describe("Whether to clear existing text before filling")
3863
+ schema: import_zod25.default.object({
3864
+ selector: import_zod25.default.string().optional().describe("CSS selector for input field"),
3865
+ index: import_zod25.default.number().optional().describe("Index of the element to fill"),
3866
+ value: import_zod25.default.string().describe("Value to fill"),
3867
+ clear: import_zod25.default.boolean().default(false).describe("Whether to clear existing text before filling")
3748
3868
  })
3749
3869
  }
3750
3870
  );
3751
3871
  };
3752
3872
 
3753
3873
  // src/tool_lattice/browser/browser_select.ts
3754
- var import_zod25 = __toESM(require("zod"));
3755
- var import_langchain22 = require("langchain");
3874
+ var import_zod26 = __toESM(require("zod"));
3875
+ var import_langchain23 = require("langchain");
3756
3876
  var BROWSER_SELECT_DESCRIPTION = `Select an element on the page with index, Either 'index' or 'selector' must be provided.
3757
3877
 
3758
3878
  Args:
@@ -3761,7 +3881,7 @@ Args:
3761
3881
  value (str): Value to select
3762
3882
  `;
3763
3883
  var createBrowserSelectTool = ({ isolatedLevel }) => {
3764
- return (0, import_langchain22.tool)(
3884
+ return (0, import_langchain23.tool)(
3765
3885
  async (input, exe_config) => {
3766
3886
  try {
3767
3887
  const runConfig = exe_config.configurable?.runConfig;
@@ -3783,18 +3903,18 @@ var createBrowserSelectTool = ({ isolatedLevel }) => {
3783
3903
  {
3784
3904
  name: "browser_select",
3785
3905
  description: BROWSER_SELECT_DESCRIPTION,
3786
- schema: import_zod25.default.object({
3787
- index: import_zod25.default.number().optional().describe("Index of the element to select"),
3788
- selector: import_zod25.default.string().optional().describe("CSS selector for element to select"),
3789
- value: import_zod25.default.string().describe("Value to select")
3906
+ schema: import_zod26.default.object({
3907
+ index: import_zod26.default.number().optional().describe("Index of the element to select"),
3908
+ selector: import_zod26.default.string().optional().describe("CSS selector for element to select"),
3909
+ value: import_zod26.default.string().describe("Value to select")
3790
3910
  })
3791
3911
  }
3792
3912
  );
3793
3913
  };
3794
3914
 
3795
3915
  // src/tool_lattice/browser/browser_hover.ts
3796
- var import_zod26 = __toESM(require("zod"));
3797
- var import_langchain23 = require("langchain");
3916
+ var import_zod27 = __toESM(require("zod"));
3917
+ var import_langchain24 = require("langchain");
3798
3918
  var BROWSER_HOVER_DESCRIPTION = `Hover an element on the page, Either 'index' or 'selector' must be provided.
3799
3919
 
3800
3920
  Args:
@@ -3802,7 +3922,7 @@ Args:
3802
3922
  selector (str): CSS selector for element to hover
3803
3923
  `;
3804
3924
  var createBrowserHoverTool = ({ isolatedLevel }) => {
3805
- return (0, import_langchain23.tool)(
3925
+ return (0, import_langchain24.tool)(
3806
3926
  async (input, exe_config) => {
3807
3927
  try {
3808
3928
  const runConfig = exe_config.configurable?.runConfig;
@@ -3823,24 +3943,24 @@ var createBrowserHoverTool = ({ isolatedLevel }) => {
3823
3943
  {
3824
3944
  name: "browser_hover",
3825
3945
  description: BROWSER_HOVER_DESCRIPTION,
3826
- schema: import_zod26.default.object({
3827
- index: import_zod26.default.number().optional().describe("Index of the element to hover"),
3828
- selector: import_zod26.default.string().optional().describe("CSS selector for element to hover")
3946
+ schema: import_zod27.default.object({
3947
+ index: import_zod27.default.number().optional().describe("Index of the element to hover"),
3948
+ selector: import_zod27.default.string().optional().describe("CSS selector for element to hover")
3829
3949
  })
3830
3950
  }
3831
3951
  );
3832
3952
  };
3833
3953
 
3834
3954
  // src/tool_lattice/browser/browser_go_back.ts
3835
- var import_zod27 = __toESM(require("zod"));
3836
- var import_langchain24 = require("langchain");
3955
+ var import_zod28 = __toESM(require("zod"));
3956
+ var import_langchain25 = require("langchain");
3837
3957
  var BROWSER_GO_BACK_DESCRIPTION = `Go back to the previous page.
3838
3958
 
3839
3959
  Args:
3840
3960
  None
3841
3961
  `;
3842
3962
  var createBrowserGoBackTool = ({ isolatedLevel }) => {
3843
- return (0, import_langchain24.tool)(
3963
+ return (0, import_langchain25.tool)(
3844
3964
  async (input, exe_config) => {
3845
3965
  try {
3846
3966
  const runConfig = exe_config.configurable?.runConfig;
@@ -3858,21 +3978,21 @@ var createBrowserGoBackTool = ({ isolatedLevel }) => {
3858
3978
  {
3859
3979
  name: "browser_go_back",
3860
3980
  description: BROWSER_GO_BACK_DESCRIPTION,
3861
- schema: import_zod27.default.object({})
3981
+ schema: import_zod28.default.object({})
3862
3982
  }
3863
3983
  );
3864
3984
  };
3865
3985
 
3866
3986
  // src/tool_lattice/browser/browser_go_forward.ts
3867
- var import_zod28 = __toESM(require("zod"));
3868
- var import_langchain25 = require("langchain");
3987
+ var import_zod29 = __toESM(require("zod"));
3988
+ var import_langchain26 = require("langchain");
3869
3989
  var BROWSER_GO_FORWARD_DESCRIPTION = `Go forward to the next page.
3870
3990
 
3871
3991
  Args:
3872
3992
  None
3873
3993
  `;
3874
3994
  var createBrowserGoForwardTool = ({ isolatedLevel }) => {
3875
- return (0, import_langchain25.tool)(
3995
+ return (0, import_langchain26.tool)(
3876
3996
  async (input, exe_config) => {
3877
3997
  try {
3878
3998
  const runConfig = exe_config.configurable?.runConfig;
@@ -3890,21 +4010,21 @@ var createBrowserGoForwardTool = ({ isolatedLevel }) => {
3890
4010
  {
3891
4011
  name: "browser_go_forward",
3892
4012
  description: BROWSER_GO_FORWARD_DESCRIPTION,
3893
- schema: import_zod28.default.object({})
4013
+ schema: import_zod29.default.object({})
3894
4014
  }
3895
4015
  );
3896
4016
  };
3897
4017
 
3898
4018
  // src/tool_lattice/browser/browser_new_tab.ts
3899
- var import_zod29 = __toESM(require("zod"));
3900
- var import_langchain26 = require("langchain");
4019
+ var import_zod30 = __toESM(require("zod"));
4020
+ var import_langchain27 = require("langchain");
3901
4021
  var BROWSER_NEW_TAB_DESCRIPTION = `Open a new tab.
3902
4022
 
3903
4023
  Args:
3904
4024
  url (str): URL to open in the new tab
3905
4025
  `;
3906
4026
  var createBrowserNewTabTool = ({ isolatedLevel }) => {
3907
- return (0, import_langchain26.tool)(
4027
+ return (0, import_langchain27.tool)(
3908
4028
  async (input, exe_config) => {
3909
4029
  try {
3910
4030
  const runConfig = exe_config.configurable?.runConfig;
@@ -3924,23 +4044,23 @@ var createBrowserNewTabTool = ({ isolatedLevel }) => {
3924
4044
  {
3925
4045
  name: "browser_new_tab",
3926
4046
  description: BROWSER_NEW_TAB_DESCRIPTION,
3927
- schema: import_zod29.default.object({
3928
- url: import_zod29.default.string().describe("URL to open in the new tab")
4047
+ schema: import_zod30.default.object({
4048
+ url: import_zod30.default.string().describe("URL to open in the new tab")
3929
4049
  })
3930
4050
  }
3931
4051
  );
3932
4052
  };
3933
4053
 
3934
4054
  // src/tool_lattice/browser/browser_tab_list.ts
3935
- var import_zod30 = __toESM(require("zod"));
3936
- var import_langchain27 = require("langchain");
4055
+ var import_zod31 = __toESM(require("zod"));
4056
+ var import_langchain28 = require("langchain");
3937
4057
  var BROWSER_TAB_LIST_DESCRIPTION = `Get the list of tabs.
3938
4058
 
3939
4059
  Args:
3940
4060
  None
3941
4061
  `;
3942
4062
  var createBrowserTabListTool = ({ isolatedLevel }) => {
3943
- return (0, import_langchain27.tool)(
4063
+ return (0, import_langchain28.tool)(
3944
4064
  async (input, exe_config) => {
3945
4065
  try {
3946
4066
  const runConfig = exe_config.configurable?.runConfig;
@@ -3958,21 +4078,21 @@ var createBrowserTabListTool = ({ isolatedLevel }) => {
3958
4078
  {
3959
4079
  name: "browser_tab_list",
3960
4080
  description: BROWSER_TAB_LIST_DESCRIPTION,
3961
- schema: import_zod30.default.object({})
4081
+ schema: import_zod31.default.object({})
3962
4082
  }
3963
4083
  );
3964
4084
  };
3965
4085
 
3966
4086
  // src/tool_lattice/browser/browser_switch_tab.ts
3967
- var import_zod31 = __toESM(require("zod"));
3968
- var import_langchain28 = require("langchain");
4087
+ var import_zod32 = __toESM(require("zod"));
4088
+ var import_langchain29 = require("langchain");
3969
4089
  var BROWSER_SWITCH_TAB_DESCRIPTION = `Switch to a specific tab.
3970
4090
 
3971
4091
  Args:
3972
4092
  index (int): Tab index to switch to
3973
4093
  `;
3974
4094
  var createBrowserSwitchTabTool = ({ isolatedLevel }) => {
3975
- return (0, import_langchain28.tool)(
4095
+ return (0, import_langchain29.tool)(
3976
4096
  async (input, exe_config) => {
3977
4097
  try {
3978
4098
  const runConfig = exe_config.configurable?.runConfig;
@@ -3992,23 +4112,23 @@ var createBrowserSwitchTabTool = ({ isolatedLevel }) => {
3992
4112
  {
3993
4113
  name: "browser_switch_tab",
3994
4114
  description: BROWSER_SWITCH_TAB_DESCRIPTION,
3995
- schema: import_zod31.default.object({
3996
- index: import_zod31.default.number().describe("Tab index to switch to")
4115
+ schema: import_zod32.default.object({
4116
+ index: import_zod32.default.number().describe("Tab index to switch to")
3997
4117
  })
3998
4118
  }
3999
4119
  );
4000
4120
  };
4001
4121
 
4002
4122
  // src/tool_lattice/browser/browser_close_tab.ts
4003
- var import_zod32 = __toESM(require("zod"));
4004
- var import_langchain29 = require("langchain");
4123
+ var import_zod33 = __toESM(require("zod"));
4124
+ var import_langchain30 = require("langchain");
4005
4125
  var BROWSER_CLOSE_TAB_DESCRIPTION = `Close the current tab.
4006
4126
 
4007
4127
  Args:
4008
4128
  None
4009
4129
  `;
4010
4130
  var createBrowserCloseTabTool = ({ isolatedLevel }) => {
4011
- return (0, import_langchain29.tool)(
4131
+ return (0, import_langchain30.tool)(
4012
4132
  async (input, exe_config) => {
4013
4133
  try {
4014
4134
  const runConfig = exe_config.configurable?.runConfig;
@@ -4026,21 +4146,21 @@ var createBrowserCloseTabTool = ({ isolatedLevel }) => {
4026
4146
  {
4027
4147
  name: "browser_close_tab",
4028
4148
  description: BROWSER_CLOSE_TAB_DESCRIPTION,
4029
- schema: import_zod32.default.object({})
4149
+ schema: import_zod33.default.object({})
4030
4150
  }
4031
4151
  );
4032
4152
  };
4033
4153
 
4034
4154
  // src/tool_lattice/browser/browser_close.ts
4035
- var import_zod33 = __toESM(require("zod"));
4036
- var import_langchain30 = require("langchain");
4155
+ var import_zod34 = __toESM(require("zod"));
4156
+ var import_langchain31 = require("langchain");
4037
4157
  var BROWSER_CLOSE_DESCRIPTION = `Close the browser when the task is done and the browser is not needed anymore.
4038
4158
 
4039
4159
  Args:
4040
4160
  None
4041
4161
  `;
4042
4162
  var createBrowserCloseTool = ({ isolatedLevel }) => {
4043
- return (0, import_langchain30.tool)(
4163
+ return (0, import_langchain31.tool)(
4044
4164
  async (input, exe_config) => {
4045
4165
  try {
4046
4166
  const runConfig = exe_config.configurable?.runConfig;
@@ -4058,21 +4178,21 @@ var createBrowserCloseTool = ({ isolatedLevel }) => {
4058
4178
  {
4059
4179
  name: "browser_close",
4060
4180
  description: BROWSER_CLOSE_DESCRIPTION,
4061
- schema: import_zod33.default.object({})
4181
+ schema: import_zod34.default.object({})
4062
4182
  }
4063
4183
  );
4064
4184
  };
4065
4185
 
4066
4186
  // src/tool_lattice/browser/browser_press_key.ts
4067
- var import_zod34 = __toESM(require("zod"));
4068
- var import_langchain31 = require("langchain");
4187
+ var import_zod35 = __toESM(require("zod"));
4188
+ var import_langchain32 = require("langchain");
4069
4189
  var BROWSER_PRESS_KEY_DESCRIPTION = `Press a key on the keyboard.
4070
4190
 
4071
4191
  Args:
4072
4192
  key (str): Name of the key to press or a character to generate, such as Enter, Tab, Escape, Backspace, Delete, Insert, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, ArrowLeft, ArrowRight, ArrowUp, ArrowDown, PageUp, PageDown, Home, End, ShiftLeft, ShiftRight, ControlLeft, ControlRight, AltLeft, AltRight, MetaLeft, MetaRight, CapsLock, PrintScreen, ScrollLock, Pause, ContextMenu
4073
4193
  `;
4074
4194
  var createBrowserPressKeyTool = ({ isolatedLevel }) => {
4075
- return (0, import_langchain31.tool)(
4195
+ return (0, import_langchain32.tool)(
4076
4196
  async (input, exe_config) => {
4077
4197
  try {
4078
4198
  const runConfig = exe_config.configurable?.runConfig;
@@ -4092,8 +4212,8 @@ var createBrowserPressKeyTool = ({ isolatedLevel }) => {
4092
4212
  {
4093
4213
  name: "browser_press_key",
4094
4214
  description: BROWSER_PRESS_KEY_DESCRIPTION,
4095
- schema: import_zod34.default.object({
4096
- key: import_zod34.default.enum([
4215
+ schema: import_zod35.default.object({
4216
+ key: import_zod35.default.enum([
4097
4217
  "Enter",
4098
4218
  "Tab",
4099
4219
  "Escape",
@@ -4140,15 +4260,15 @@ var createBrowserPressKeyTool = ({ isolatedLevel }) => {
4140
4260
  };
4141
4261
 
4142
4262
  // src/tool_lattice/browser/browser_read_links.ts
4143
- var import_zod35 = __toESM(require("zod"));
4144
- var import_langchain32 = require("langchain");
4263
+ var import_zod36 = __toESM(require("zod"));
4264
+ var import_langchain33 = require("langchain");
4145
4265
  var BROWSER_READ_LINKS_DESCRIPTION = `Get all links on the current page.
4146
4266
 
4147
4267
  Args:
4148
4268
  None
4149
4269
  `;
4150
4270
  var createBrowserReadLinksTool = ({ isolatedLevel }) => {
4151
- return (0, import_langchain32.tool)(
4271
+ return (0, import_langchain33.tool)(
4152
4272
  async (input, exe_config) => {
4153
4273
  try {
4154
4274
  const runConfig = exe_config.configurable?.runConfig;
@@ -4166,21 +4286,21 @@ var createBrowserReadLinksTool = ({ isolatedLevel }) => {
4166
4286
  {
4167
4287
  name: "browser_read_links",
4168
4288
  description: BROWSER_READ_LINKS_DESCRIPTION,
4169
- schema: import_zod35.default.object({})
4289
+ schema: import_zod36.default.object({})
4170
4290
  }
4171
4291
  );
4172
4292
  };
4173
4293
 
4174
4294
  // src/tool_lattice/browser/browser_get_clickable_elements.ts
4175
- var import_zod36 = __toESM(require("zod"));
4176
- var import_langchain33 = require("langchain");
4295
+ var import_zod37 = __toESM(require("zod"));
4296
+ var import_langchain34 = require("langchain");
4177
4297
  var BROWSER_GET_CLICKABLE_ELEMENTS_DESCRIPTION = `Get the clickable or hoverable or selectable elements on the current page, don't call this tool multiple times.
4178
4298
 
4179
4299
  Args:
4180
4300
  None
4181
4301
  `;
4182
4302
  var createBrowserGetClickableElementsTool = ({ isolatedLevel }) => {
4183
- return (0, import_langchain33.tool)(
4303
+ return (0, import_langchain34.tool)(
4184
4304
  async (input, exe_config) => {
4185
4305
  try {
4186
4306
  const runConfig = exe_config.configurable?.runConfig;
@@ -4198,21 +4318,21 @@ var createBrowserGetClickableElementsTool = ({ isolatedLevel }) => {
4198
4318
  {
4199
4319
  name: "browser_get_clickable_elements",
4200
4320
  description: BROWSER_GET_CLICKABLE_ELEMENTS_DESCRIPTION,
4201
- schema: import_zod36.default.object({})
4321
+ schema: import_zod37.default.object({})
4202
4322
  }
4203
4323
  );
4204
4324
  };
4205
4325
 
4206
4326
  // src/tool_lattice/browser/browser_get_download_list.ts
4207
- var import_zod37 = __toESM(require("zod"));
4208
- var import_langchain34 = require("langchain");
4327
+ var import_zod38 = __toESM(require("zod"));
4328
+ var import_langchain35 = require("langchain");
4209
4329
  var BROWSER_GET_DOWNLOAD_LIST_DESCRIPTION = `Get the list of downloaded files.
4210
4330
 
4211
4331
  Args:
4212
4332
  None
4213
4333
  `;
4214
4334
  var createBrowserGetDownloadListTool = ({ isolatedLevel }) => {
4215
- return (0, import_langchain34.tool)(
4335
+ return (0, import_langchain35.tool)(
4216
4336
  async (input, exe_config) => {
4217
4337
  try {
4218
4338
  const runConfig = exe_config.configurable?.runConfig;
@@ -4230,14 +4350,14 @@ var createBrowserGetDownloadListTool = ({ isolatedLevel }) => {
4230
4350
  {
4231
4351
  name: "browser_get_download_list",
4232
4352
  description: BROWSER_GET_DOWNLOAD_LIST_DESCRIPTION,
4233
- schema: import_zod37.default.object({})
4353
+ schema: import_zod38.default.object({})
4234
4354
  }
4235
4355
  );
4236
4356
  };
4237
4357
 
4238
4358
  // src/tool_lattice/browser/get_info.ts
4239
- var import_zod38 = __toESM(require("zod"));
4240
- var import_langchain35 = require("langchain");
4359
+ var import_zod39 = __toESM(require("zod"));
4360
+ var import_langchain36 = require("langchain");
4241
4361
  var BROWSER_GET_INFO_DESCRIPTION = `Get information about browser, like CDP URL, viewport size, etc.
4242
4362
 
4243
4363
  Args:
@@ -4246,7 +4366,7 @@ Args:
4246
4366
  Returns:
4247
4367
  Dict containing browser information including CDP URL, viewport dimensions, and other browser metadata.`;
4248
4368
  var createBrowserGetInfoTool = ({ isolatedLevel }) => {
4249
- return (0, import_langchain35.tool)(
4369
+ return (0, import_langchain36.tool)(
4250
4370
  async (input, exe_config) => {
4251
4371
  try {
4252
4372
  const runConfig = exe_config.configurable?.runConfig;
@@ -4264,7 +4384,7 @@ var createBrowserGetInfoTool = ({ isolatedLevel }) => {
4264
4384
  {
4265
4385
  name: "browser_get_info",
4266
4386
  description: BROWSER_GET_INFO_DESCRIPTION,
4267
- schema: import_zod38.default.object({})
4387
+ schema: import_zod39.default.object({})
4268
4388
  }
4269
4389
  );
4270
4390
  };
@@ -4353,14 +4473,14 @@ var memory = new import_langgraph2.MemorySaver();
4353
4473
  registerCheckpointSaver("default", memory);
4354
4474
 
4355
4475
  // src/agent_lattice/builders/state.ts
4356
- var import_zod39 = require("@langchain/langgraph/zod");
4476
+ var import_zod40 = require("@langchain/langgraph/zod");
4357
4477
  var import_langgraph3 = require("@langchain/langgraph");
4358
4478
  var createReactAgentSchema = (schema) => {
4359
4479
  return schema ? import_langgraph3.MessagesZodState.extend(schema.shape) : void 0;
4360
4480
  };
4361
4481
 
4362
4482
  // src/agent_lattice/builders/ReActAgentGraphBuilder.ts
4363
- var import_langchain45 = require("langchain");
4483
+ var import_langchain46 = require("langchain");
4364
4484
 
4365
4485
  // src/deep_agent_new/backends/sandboxFiles.ts
4366
4486
  var import_sandbox2 = require("@agent-infra/sandbox");
@@ -4639,18 +4759,18 @@ var SandboxFilesystem = class {
4639
4759
  };
4640
4760
 
4641
4761
  // src/middlewares/codeEvalMiddleware.ts
4642
- var import_langchain36 = require("langchain");
4762
+ var import_langchain37 = require("langchain");
4643
4763
  function createCodeEvalMiddleware(params = { isolatedLevel: "global" }) {
4644
4764
  const codeEvalTool = createCodeEvalTool({ isolatedLevel: params.isolatedLevel });
4645
4765
  const codeExecuteFileTool = createCodeExecuteFileTool({ isolatedLevel: params.isolatedLevel });
4646
- return (0, import_langchain36.createMiddleware)({
4766
+ return (0, import_langchain37.createMiddleware)({
4647
4767
  name: "codeEvalMiddleware",
4648
4768
  tools: [codeEvalTool, codeExecuteFileTool, getToolClient("convert_to_markdown")]
4649
4769
  });
4650
4770
  }
4651
4771
 
4652
4772
  // src/middlewares/browserMiddleware.ts
4653
- var import_langchain37 = require("langchain");
4773
+ var import_langchain38 = require("langchain");
4654
4774
  function createBrowserMiddleware(params = { isolatedLevel: "global" }) {
4655
4775
  const isolatedLevel = params.isolatedLevel || "global";
4656
4776
  const tools = [
@@ -4677,18 +4797,18 @@ function createBrowserMiddleware(params = { isolatedLevel: "global" }) {
4677
4797
  createBrowserGetDownloadListTool({ isolatedLevel }),
4678
4798
  createBrowserGetInfoTool({ isolatedLevel })
4679
4799
  ];
4680
- return (0, import_langchain37.createMiddleware)({
4800
+ return (0, import_langchain38.createMiddleware)({
4681
4801
  name: "browserMiddleware",
4682
4802
  tools
4683
4803
  });
4684
4804
  }
4685
4805
 
4686
4806
  // src/middlewares/sqlMiddleware.ts
4687
- var import_langchain38 = require("langchain");
4807
+ var import_langchain39 = require("langchain");
4688
4808
  function createSqlMiddleware(params) {
4689
4809
  const { databaseKeys, databaseDescriptions } = params;
4690
4810
  if (!databaseKeys || databaseKeys.length === 0) {
4691
- return (0, import_langchain38.createMiddleware)({
4811
+ return (0, import_langchain39.createMiddleware)({
4692
4812
  name: "sqlMiddleware",
4693
4813
  tools: []
4694
4814
  });
@@ -4697,7 +4817,7 @@ function createSqlMiddleware(params) {
4697
4817
  databaseKeys,
4698
4818
  databaseDescriptions
4699
4819
  };
4700
- return (0, import_langchain38.createMiddleware)({
4820
+ return (0, import_langchain39.createMiddleware)({
4701
4821
  name: "sqlMiddleware",
4702
4822
  tools: [
4703
4823
  createListTablesSqlTool(toolParams),
@@ -4709,7 +4829,7 @@ function createSqlMiddleware(params) {
4709
4829
  }
4710
4830
 
4711
4831
  // src/middlewares/skillMiddleware.ts
4712
- var import_langchain42 = require("langchain");
4832
+ var import_langchain43 = require("langchain");
4713
4833
 
4714
4834
  // src/store_lattice/InMemoryThreadStore.ts
4715
4835
  var InMemoryThreadStore = class {
@@ -6099,11 +6219,11 @@ storeLatticeManager.registerLattice("default", "tenant", defaultTenantStore);
6099
6219
  storeLatticeManager.registerLattice("default", "userTenantLink", defaultUserTenantLinkStore);
6100
6220
 
6101
6221
  // src/tool_lattice/skill/load_skills.ts
6102
- var import_zod40 = __toESM(require("zod"));
6103
- var import_langchain39 = require("langchain");
6222
+ var import_zod41 = __toESM(require("zod"));
6223
+ var import_langchain40 = require("langchain");
6104
6224
  var LOAD_SKILLS_DESCRIPTION = `Load all available skills and return their metadata (name, description, license, compatibility, metadata, and subSkills) without the content. This tool returns skill information including hierarchical relationships (subSkills). Use this to discover what skills are available and their structure.`;
6105
6225
  var createLoadSkillsTool = ({ skills } = {}) => {
6106
- return (0, import_langchain39.tool)(
6226
+ return (0, import_langchain40.tool)(
6107
6227
  async (_input, _exe_config) => {
6108
6228
  try {
6109
6229
  const storeLattice = getStoreLattice("default", "skill");
@@ -6127,17 +6247,17 @@ var createLoadSkillsTool = ({ skills } = {}) => {
6127
6247
  {
6128
6248
  name: "load_skills",
6129
6249
  description: LOAD_SKILLS_DESCRIPTION,
6130
- schema: import_zod40.default.object({})
6250
+ schema: import_zod41.default.object({})
6131
6251
  }
6132
6252
  );
6133
6253
  };
6134
6254
 
6135
6255
  // src/tool_lattice/skill/load_skill_content.ts
6136
- var import_zod41 = __toESM(require("zod"));
6137
- var import_langchain40 = require("langchain");
6256
+ var import_zod42 = __toESM(require("zod"));
6257
+ var import_langchain41 = require("langchain");
6138
6258
  var LOAD_SKILL_CONTENT_DESCRIPTION = `Load a specific skill's content by name and return its full content including markdown body. This tool returns the complete skill content including frontmatter and markdown body. If the skill has resources, they will be listed at the end of the content with instructions on how to access them. Use this tool to get the complete skill content for a skill that you want to use.`;
6139
6259
  var createLoadSkillContentTool = () => {
6140
- return (0, import_langchain40.tool)(
6260
+ return (0, import_langchain41.tool)(
6141
6261
  async (input, _exe_config) => {
6142
6262
  try {
6143
6263
  const storeLattice = getStoreLattice("default", "skill");
@@ -6195,19 +6315,19 @@ ${content}`;
6195
6315
  {
6196
6316
  name: "load_skill_content",
6197
6317
  description: LOAD_SKILL_CONTENT_DESCRIPTION,
6198
- schema: import_zod41.default.object({
6199
- skill_name: import_zod41.default.string().describe("The name of the skill to load")
6318
+ schema: import_zod42.default.object({
6319
+ skill_name: import_zod42.default.string().describe("The name of the skill to load")
6200
6320
  })
6201
6321
  }
6202
6322
  );
6203
6323
  };
6204
6324
 
6205
6325
  // src/tool_lattice/skill/load_skill_resource.ts
6206
- var import_zod42 = __toESM(require("zod"));
6207
- var import_langchain41 = require("langchain");
6326
+ var import_zod43 = __toESM(require("zod"));
6327
+ var import_langchain42 = require("langchain");
6208
6328
  var LOAD_SKILL_RESOURCE_DESCRIPTION = `Load a specific resource file from a skill's resources directory. Use this tool when you need to access template files, example data, or other resources bundled with a skill. The resource paths are listed in the skill content when using the load_skill_content tool.`;
6209
6329
  var createLoadSkillResourceTool = () => {
6210
- return (0, import_langchain41.tool)(
6330
+ return (0, import_langchain42.tool)(
6211
6331
  async (input, _exe_config) => {
6212
6332
  try {
6213
6333
  const storeLattice = getStoreLattice("default", "skill");
@@ -6228,9 +6348,9 @@ var createLoadSkillResourceTool = () => {
6228
6348
  {
6229
6349
  name: "load_skill_resource",
6230
6350
  description: LOAD_SKILL_RESOURCE_DESCRIPTION,
6231
- schema: import_zod42.default.object({
6232
- skill_name: import_zod42.default.string().describe("The name of the skill containing the resource"),
6233
- resource_path: import_zod42.default.string().describe("The path to the resource relative to the skill's resources/ directory")
6351
+ schema: import_zod43.default.object({
6352
+ skill_name: import_zod43.default.string().describe("The name of the skill containing the resource"),
6353
+ resource_path: import_zod43.default.string().describe("The path to the resource relative to the skill's resources/ directory")
6234
6354
  })
6235
6355
  }
6236
6356
  );
@@ -6252,7 +6372,7 @@ function createSkillMiddleware(params = {}) {
6252
6372
  extraNote = DEFAULT_EXTRA_NOTE
6253
6373
  } = params;
6254
6374
  let latestSkills = [];
6255
- return (0, import_langchain42.createMiddleware)({
6375
+ return (0, import_langchain43.createMiddleware)({
6256
6376
  name: "skillMiddleware",
6257
6377
  tools: [
6258
6378
  createLoadSkillsTool({ skills: readAll ? void 0 : skills }),
@@ -6297,10 +6417,10 @@ ${extraNote}`;
6297
6417
  }
6298
6418
 
6299
6419
  // src/deep_agent_new/middleware/fs.ts
6300
- var import_langchain43 = require("langchain");
6420
+ var import_langchain44 = require("langchain");
6301
6421
  var import_langgraph4 = require("@langchain/langgraph");
6302
6422
  var import_v3 = require("zod/v3");
6303
- var import_zod43 = require("@langchain/langgraph/zod");
6423
+ var import_zod44 = require("@langchain/langgraph/zod");
6304
6424
 
6305
6425
  // src/deep_agent_new/backends/utils.ts
6306
6426
  var import_micromatch = __toESM(require("micromatch"));
@@ -6764,7 +6884,7 @@ function fileDataReducer(left, right) {
6764
6884
  return result;
6765
6885
  }
6766
6886
  var FilesystemStateSchema = import_v3.z.object({
6767
- files: (0, import_zod43.withLangGraph)(
6887
+ files: (0, import_zod44.withLangGraph)(
6768
6888
  import_v3.z.record(import_v3.z.string(), FileDataSchema).default({}),
6769
6889
  {
6770
6890
  reducer: {
@@ -6796,7 +6916,7 @@ var GLOB_TOOL_DESCRIPTION = "Find files matching a glob pattern (e.g., '**/*.py'
6796
6916
  var GREP_TOOL_DESCRIPTION = "Search for a regex pattern in files. Returns matching files and line numbers";
6797
6917
  function createLsTool(backend, options) {
6798
6918
  const { customDescription } = options;
6799
- return (0, import_langchain43.tool)(
6919
+ return (0, import_langchain44.tool)(
6800
6920
  async (input, config) => {
6801
6921
  const { runConfig } = config.configurable;
6802
6922
  const stateAndStore = {
@@ -6832,7 +6952,7 @@ function createLsTool(backend, options) {
6832
6952
  }
6833
6953
  function createReadFileTool(backend, options) {
6834
6954
  const { customDescription } = options;
6835
- return (0, import_langchain43.tool)(
6955
+ return (0, import_langchain44.tool)(
6836
6956
  async (input, config) => {
6837
6957
  const { runConfig } = config.configurable;
6838
6958
  const stateAndStore = {
@@ -6857,7 +6977,7 @@ function createReadFileTool(backend, options) {
6857
6977
  }
6858
6978
  function createWriteFileTool(backend, options) {
6859
6979
  const { customDescription } = options;
6860
- return (0, import_langchain43.tool)(
6980
+ return (0, import_langchain44.tool)(
6861
6981
  async (input, config) => {
6862
6982
  const { runConfig } = config.configurable;
6863
6983
  const stateAndStore = {
@@ -6871,7 +6991,7 @@ function createWriteFileTool(backend, options) {
6871
6991
  if (result.error) {
6872
6992
  return result.error;
6873
6993
  }
6874
- const message = new import_langchain43.ToolMessage({
6994
+ const message = new import_langchain44.ToolMessage({
6875
6995
  content: `Successfully wrote to '${file_path}'`,
6876
6996
  tool_call_id: config.toolCall?.id,
6877
6997
  name: "write_file",
@@ -6896,7 +7016,7 @@ function createWriteFileTool(backend, options) {
6896
7016
  }
6897
7017
  function createEditFileTool(backend, options) {
6898
7018
  const { customDescription } = options;
6899
- return (0, import_langchain43.tool)(
7019
+ return (0, import_langchain44.tool)(
6900
7020
  async (input, config) => {
6901
7021
  const { runConfig } = config.configurable;
6902
7022
  const stateAndStore = {
@@ -6915,7 +7035,7 @@ function createEditFileTool(backend, options) {
6915
7035
  if (result.error) {
6916
7036
  return result.error;
6917
7037
  }
6918
- const message = new import_langchain43.ToolMessage({
7038
+ const message = new import_langchain44.ToolMessage({
6919
7039
  content: `Successfully replaced ${result.occurrences} occurrence(s) in '${file_path}'`,
6920
7040
  tool_call_id: config.toolCall?.id,
6921
7041
  name: "edit_file",
@@ -6942,7 +7062,7 @@ function createEditFileTool(backend, options) {
6942
7062
  }
6943
7063
  function createGlobTool(backend, options) {
6944
7064
  const { customDescription } = options;
6945
- return (0, import_langchain43.tool)(
7065
+ return (0, import_langchain44.tool)(
6946
7066
  async (input, config) => {
6947
7067
  const { runConfig } = config.configurable;
6948
7068
  const stateAndStore = {
@@ -6970,7 +7090,7 @@ function createGlobTool(backend, options) {
6970
7090
  }
6971
7091
  function createGrepTool(backend, options) {
6972
7092
  const { customDescription } = options;
6973
- return (0, import_langchain43.tool)(
7093
+ return (0, import_langchain44.tool)(
6974
7094
  async (input, config) => {
6975
7095
  const { runConfig } = config.configurable;
6976
7096
  const stateAndStore = {
@@ -7038,7 +7158,7 @@ function createFilesystemMiddleware(options = {}) {
7038
7158
  customDescription: customToolDescriptions?.grep
7039
7159
  })
7040
7160
  ];
7041
- return (0, import_langchain43.createMiddleware)({
7161
+ return (0, import_langchain44.createMiddleware)({
7042
7162
  name: "FilesystemMiddleware",
7043
7163
  stateSchema: FilesystemStateSchema,
7044
7164
  tools,
@@ -7069,7 +7189,7 @@ ${systemPrompt}` : systemPrompt;
7069
7189
  if (writeResult.error) {
7070
7190
  return { message: msg, filesUpdate: null };
7071
7191
  }
7072
- const truncatedMessage = new import_langchain43.ToolMessage({
7192
+ const truncatedMessage = new import_langchain44.ToolMessage({
7073
7193
  content: `Tool result too large (${Math.round(
7074
7194
  msg.content.length / 4
7075
7195
  )} tokens). Content saved to ${evictPath}`,
@@ -7083,7 +7203,7 @@ ${systemPrompt}` : systemPrompt;
7083
7203
  }
7084
7204
  return { message: msg, filesUpdate: null };
7085
7205
  }
7086
- if (result instanceof import_langchain43.ToolMessage) {
7206
+ if (result instanceof import_langchain44.ToolMessage) {
7087
7207
  const processed = await processToolMessage(result);
7088
7208
  if (processed.filesUpdate) {
7089
7209
  return new import_langgraph4.Command({
@@ -7106,7 +7226,7 @@ ${systemPrompt}` : systemPrompt;
7106
7226
  };
7107
7227
  const processedMessages = [];
7108
7228
  for (const msg of update.messages) {
7109
- if (msg instanceof import_langchain43.ToolMessage) {
7229
+ if (msg instanceof import_langchain44.ToolMessage) {
7110
7230
  const processed = await processToolMessage(msg);
7111
7231
  processedMessages.push(processed.message);
7112
7232
  if (processed.filesUpdate) {
@@ -7133,11 +7253,11 @@ ${systemPrompt}` : systemPrompt;
7133
7253
  }
7134
7254
 
7135
7255
  // src/middlewares/metricsMiddleware.ts
7136
- var import_langchain44 = require("langchain");
7256
+ var import_langchain45 = require("langchain");
7137
7257
  function createMetricsMiddleware(params) {
7138
7258
  const { serverKeys, serverDescriptions } = params;
7139
7259
  if (!serverKeys || serverKeys.length === 0) {
7140
- return (0, import_langchain44.createMiddleware)({
7260
+ return (0, import_langchain45.createMiddleware)({
7141
7261
  name: "metricsMiddleware",
7142
7262
  tools: []
7143
7263
  });
@@ -7146,7 +7266,7 @@ function createMetricsMiddleware(params) {
7146
7266
  serverKeys,
7147
7267
  serverDescriptions
7148
7268
  };
7149
- return (0, import_langchain44.createMiddleware)({
7269
+ return (0, import_langchain45.createMiddleware)({
7150
7270
  name: "metricsMiddleware",
7151
7271
  tools: [
7152
7272
  createListMetricsDataSourcesTool(toolParams),
@@ -7154,7 +7274,8 @@ function createMetricsMiddleware(params) {
7154
7274
  createQueryMetricDefinitionTool(toolParams),
7155
7275
  createQuerySemanticMetricDataTool(toolParams),
7156
7276
  createQueryTablesListTool(toolParams),
7157
- createQueryTableDefinitionTool(toolParams)
7277
+ createQueryTableDefinitionTool(toolParams),
7278
+ createExecuteSqlQueryTool(toolParams)
7158
7279
  ]
7159
7280
  });
7160
7281
  }
@@ -7248,14 +7369,14 @@ var ReActAgentGraphBuilder = class {
7248
7369
  */
7249
7370
  build(agentLattice, params) {
7250
7371
  const tools = params.tools.map((t) => {
7251
- const tool46 = getToolClient(t.key);
7252
- return tool46;
7253
- }).filter((tool46) => tool46 !== void 0);
7372
+ const tool47 = getToolClient(t.key);
7373
+ return tool47;
7374
+ }).filter((tool47) => tool47 !== void 0);
7254
7375
  const stateSchema2 = createReactAgentSchema(params.stateSchema);
7255
7376
  const middlewareConfigs = params.middleware || [];
7256
7377
  const filesystemBackend = this.createFilesystemBackendFactory(middlewareConfigs);
7257
7378
  const middlewares = createCommonMiddlewares(middlewareConfigs, filesystemBackend);
7258
- return (0, import_langchain45.createAgent)({
7379
+ return (0, import_langchain46.createAgent)({
7259
7380
  model: params.model,
7260
7381
  tools,
7261
7382
  systemPrompt: params.prompt,
@@ -7268,11 +7389,11 @@ var ReActAgentGraphBuilder = class {
7268
7389
  };
7269
7390
 
7270
7391
  // src/deep_agent_new/agent.ts
7271
- var import_langchain49 = require("langchain");
7392
+ var import_langchain50 = require("langchain");
7272
7393
 
7273
7394
  // src/deep_agent_new/middleware/subagents.ts
7274
7395
  var import_v32 = require("zod/v3");
7275
- var import_langchain46 = require("langchain");
7396
+ var import_langchain47 = require("langchain");
7276
7397
  var import_langgraph6 = require("@langchain/langgraph");
7277
7398
  var import_messages = require("@langchain/core/messages");
7278
7399
 
@@ -7827,7 +7948,7 @@ function returnCommandWithStateUpdate(result, toolCallId) {
7827
7948
  update: {
7828
7949
  ...stateUpdate,
7829
7950
  messages: [
7830
- new import_langchain46.ToolMessage({
7951
+ new import_langchain47.ToolMessage({
7831
7952
  content: lastMessage?.content || "Task Failed to complete",
7832
7953
  tool_call_id: toolCallId,
7833
7954
  name: "task"
@@ -7852,10 +7973,10 @@ function getSubagents(options) {
7852
7973
  const generalPurposeMiddleware = [...defaultSubagentMiddleware];
7853
7974
  if (defaultInterruptOn) {
7854
7975
  generalPurposeMiddleware.push(
7855
- (0, import_langchain46.humanInTheLoopMiddleware)({ interruptOn: defaultInterruptOn })
7976
+ (0, import_langchain47.humanInTheLoopMiddleware)({ interruptOn: defaultInterruptOn })
7856
7977
  );
7857
7978
  }
7858
- const generalPurposeSubagent = (0, import_langchain46.createAgent)({
7979
+ const generalPurposeSubagent = (0, import_langchain47.createAgent)({
7859
7980
  model: defaultModel,
7860
7981
  systemPrompt: DEFAULT_SUBAGENT_PROMPT,
7861
7982
  tools: defaultTools,
@@ -7876,8 +7997,8 @@ function getSubagents(options) {
7876
7997
  const middleware = agentParams.middleware ? [...defaultSubagentMiddleware, ...agentParams.middleware] : [...defaultSubagentMiddleware];
7877
7998
  const interruptOn = agentParams.interruptOn || defaultInterruptOn;
7878
7999
  if (interruptOn)
7879
- middleware.push((0, import_langchain46.humanInTheLoopMiddleware)({ interruptOn }));
7880
- agents[agentParams.name] = (0, import_langchain46.createAgent)({
8000
+ middleware.push((0, import_langchain47.humanInTheLoopMiddleware)({ interruptOn }));
8001
+ agents[agentParams.name] = (0, import_langchain47.createAgent)({
7881
8002
  model: agentParams.model ?? defaultModel,
7882
8003
  systemPrompt: agentParams.systemPrompt,
7883
8004
  tools: agentParams.tools ?? defaultTools,
@@ -7906,7 +8027,7 @@ function createTaskTool(options) {
7906
8027
  generalPurposeAgent
7907
8028
  });
7908
8029
  const finalTaskDescription = taskDescription ? taskDescription : getTaskToolDescription(subagentDescriptions);
7909
- return (0, import_langchain46.tool)(
8030
+ return (0, import_langchain47.tool)(
7910
8031
  async (input, config) => {
7911
8032
  const { description, subagent_type } = input;
7912
8033
  try {
@@ -7936,7 +8057,7 @@ function createTaskTool(options) {
7936
8057
  return new import_langgraph6.Command({
7937
8058
  update: {
7938
8059
  messages: [
7939
- new import_langchain46.ToolMessage({
8060
+ new import_langchain47.ToolMessage({
7940
8061
  content: error instanceof Error ? error.message : "Task Failed to complete",
7941
8062
  tool_call_id: config.toolCall.id,
7942
8063
  name: "task"
@@ -7980,7 +8101,7 @@ function createSubAgentMiddleware(options) {
7980
8101
  generalPurposeAgent,
7981
8102
  taskDescription
7982
8103
  });
7983
- return (0, import_langchain46.createMiddleware)({
8104
+ return (0, import_langchain47.createMiddleware)({
7984
8105
  name: "subAgentMiddleware",
7985
8106
  tools: [taskTool],
7986
8107
  wrapModelCall: async (request, handler) => {
@@ -8000,11 +8121,11 @@ ${systemPrompt}` : systemPrompt;
8000
8121
  }
8001
8122
 
8002
8123
  // src/deep_agent_new/middleware/patch_tool_calls.ts
8003
- var import_langchain47 = require("langchain");
8124
+ var import_langchain48 = require("langchain");
8004
8125
  var import_messages2 = require("@langchain/core/messages");
8005
8126
  var import_langgraph7 = require("@langchain/langgraph");
8006
8127
  function createPatchToolCallsMiddleware() {
8007
- return (0, import_langchain47.createMiddleware)({
8128
+ return (0, import_langchain48.createMiddleware)({
8008
8129
  name: "patchToolCallsMiddleware",
8009
8130
  beforeAgent: async (state) => {
8010
8131
  const messages = state.messages;
@@ -8015,15 +8136,15 @@ function createPatchToolCallsMiddleware() {
8015
8136
  for (let i = 0; i < messages.length; i++) {
8016
8137
  const msg = messages[i];
8017
8138
  patchedMessages.push(msg);
8018
- if (import_langchain47.AIMessage.isInstance(msg) && msg.tool_calls != null) {
8139
+ if (import_langchain48.AIMessage.isInstance(msg) && msg.tool_calls != null) {
8019
8140
  for (const toolCall of msg.tool_calls) {
8020
8141
  const correspondingToolMsg = messages.slice(i).find(
8021
- (m) => import_langchain47.ToolMessage.isInstance(m) && m.tool_call_id === toolCall.id
8142
+ (m) => import_langchain48.ToolMessage.isInstance(m) && m.tool_call_id === toolCall.id
8022
8143
  );
8023
8144
  if (!correspondingToolMsg) {
8024
8145
  const toolMsg = `Tool call ${toolCall.name} with id ${toolCall.id} was cancelled - another message came in before it could be completed.`;
8025
8146
  patchedMessages.push(
8026
- new import_langchain47.ToolMessage({
8147
+ new import_langchain48.ToolMessage({
8027
8148
  content: toolMsg,
8028
8149
  name: toolCall.name,
8029
8150
  tool_call_id: toolCall.id
@@ -9136,8 +9257,8 @@ var MemoryBackend = class {
9136
9257
 
9137
9258
  // src/deep_agent_new/middleware/todos.ts
9138
9259
  var import_langgraph8 = require("@langchain/langgraph");
9139
- var import_zod44 = require("zod");
9140
- var import_langchain48 = require("langchain");
9260
+ var import_zod45 = require("zod");
9261
+ var import_langchain49 = require("langchain");
9141
9262
  var WRITE_TODOS_DESCRIPTION = `Use this tool to create and manage a structured task list for your current work session. This helps you track progress, organize complex tasks, and demonstrate thoroughness to the user.
9142
9263
  It also helps the user understand the progress of the task and overall progress of their requests.
9143
9264
  Only use this tool if you think it will be helpful in staying organized. If the user's request is trivial and takes less than 3 steps, it is better to NOT use this tool and just do the taks directly.
@@ -9364,20 +9485,20 @@ Writing todos takes time and tokens, use it when it is helpful for managing comp
9364
9485
  ## Important To-Do List Usage Notes to Remember
9365
9486
  - The \`write_todos\` tool should never be called multiple times in parallel.
9366
9487
  - Don't be afraid to revise the To-Do list as you go. New information may reveal new tasks that need to be done, or old tasks that are irrelevant.`;
9367
- var TodoStatus = import_zod44.z.enum(["pending", "in_progress", "completed"]).describe("Status of the todo");
9368
- var TodoSchema = import_zod44.z.object({
9369
- content: import_zod44.z.string().describe("Content of the todo item"),
9488
+ var TodoStatus = import_zod45.z.enum(["pending", "in_progress", "completed"]).describe("Status of the todo");
9489
+ var TodoSchema = import_zod45.z.object({
9490
+ content: import_zod45.z.string().describe("Content of the todo item"),
9370
9491
  status: TodoStatus
9371
9492
  });
9372
- var stateSchema = import_zod44.z.object({ todos: import_zod44.z.array(TodoSchema).default([]) });
9493
+ var stateSchema = import_zod45.z.object({ todos: import_zod45.z.array(TodoSchema).default([]) });
9373
9494
  function todoListMiddleware(options) {
9374
- const writeTodos = (0, import_langchain48.tool)(
9495
+ const writeTodos = (0, import_langchain49.tool)(
9375
9496
  ({ todos }, config) => {
9376
9497
  return new import_langgraph8.Command({
9377
9498
  update: {
9378
9499
  todos,
9379
9500
  messages: [
9380
- new import_langchain48.ToolMessage({
9501
+ new import_langchain49.ToolMessage({
9381
9502
  content: genUIMarkdown("todo_list", todos),
9382
9503
  tool_call_id: config.toolCall?.id
9383
9504
  })
@@ -9388,12 +9509,12 @@ function todoListMiddleware(options) {
9388
9509
  {
9389
9510
  name: "write_todos",
9390
9511
  description: options?.toolDescription ?? WRITE_TODOS_DESCRIPTION,
9391
- schema: import_zod44.z.object({
9392
- todos: import_zod44.z.array(TodoSchema).describe("List of todo items to update")
9512
+ schema: import_zod45.z.object({
9513
+ todos: import_zod45.z.array(TodoSchema).describe("List of todo items to update")
9393
9514
  })
9394
9515
  }
9395
9516
  );
9396
- return (0, import_langchain48.createMiddleware)({
9517
+ return (0, import_langchain49.createMiddleware)({
9397
9518
  name: "todoListMiddleware",
9398
9519
  stateSchema,
9399
9520
  tools: [writeTodos],
@@ -9445,13 +9566,13 @@ ${BASE_PROMPT}` : BASE_PROMPT;
9445
9566
  backend: filesystemBackend
9446
9567
  }),
9447
9568
  // Subagent middleware: Automatic conversation summarization when token limits are approached
9448
- (0, import_langchain49.summarizationMiddleware)({
9569
+ (0, import_langchain50.summarizationMiddleware)({
9449
9570
  model,
9450
9571
  trigger: { tokens: 17e4 },
9451
9572
  keep: { messages: 6 }
9452
9573
  }),
9453
9574
  // Subagent middleware: Anthropic prompt caching for improved performance
9454
- (0, import_langchain49.anthropicPromptCachingMiddleware)({
9575
+ (0, import_langchain50.anthropicPromptCachingMiddleware)({
9455
9576
  unsupportedModelBehavior: "ignore"
9456
9577
  }),
9457
9578
  // Subagent middleware: Patches tool calls for compatibility
@@ -9462,23 +9583,23 @@ ${BASE_PROMPT}` : BASE_PROMPT;
9462
9583
  generalPurposeAgent: false
9463
9584
  }),
9464
9585
  // Automatically summarizes conversation history when token limits are approached
9465
- (0, import_langchain49.summarizationMiddleware)({
9586
+ (0, import_langchain50.summarizationMiddleware)({
9466
9587
  model,
9467
9588
  trigger: { tokens: 17e4 },
9468
9589
  keep: { messages: 6 }
9469
9590
  }),
9470
9591
  // Enables Anthropic prompt caching for improved performance and reduced costs
9471
- (0, import_langchain49.anthropicPromptCachingMiddleware)({
9592
+ (0, import_langchain50.anthropicPromptCachingMiddleware)({
9472
9593
  unsupportedModelBehavior: "ignore"
9473
9594
  }),
9474
9595
  // Patches tool calls to ensure compatibility across different model providers
9475
9596
  createPatchToolCallsMiddleware()
9476
9597
  ];
9477
9598
  if (interruptOn) {
9478
- middleware.push((0, import_langchain49.humanInTheLoopMiddleware)({ interruptOn }));
9599
+ middleware.push((0, import_langchain50.humanInTheLoopMiddleware)({ interruptOn }));
9479
9600
  }
9480
9601
  middleware.push(...customMiddleware);
9481
- return (0, import_langchain49.createAgent)({
9602
+ return (0, import_langchain50.createAgent)({
9482
9603
  model,
9483
9604
  systemPrompt: finalSystemPrompt,
9484
9605
  tools,
@@ -9536,7 +9657,7 @@ var DeepAgentGraphBuilder = class {
9536
9657
  const tools = params.tools.map((t) => {
9537
9658
  const toolClient = getToolClient(t.key);
9538
9659
  return toolClient;
9539
- }).filter((tool46) => tool46 !== void 0);
9660
+ }).filter((tool47) => tool47 !== void 0);
9540
9661
  const subagents = params.subAgents.map((sa) => {
9541
9662
  if (sa.client) {
9542
9663
  return {
@@ -9575,7 +9696,7 @@ var DeepAgentGraphBuilder = class {
9575
9696
 
9576
9697
  // src/agent_team/agent_team.ts
9577
9698
  var import_v35 = require("zod/v3");
9578
- var import_langchain52 = require("langchain");
9699
+ var import_langchain53 = require("langchain");
9579
9700
 
9580
9701
  // src/agent_team/types.ts
9581
9702
  var TaskStatus = /* @__PURE__ */ ((TaskStatus3) => {
@@ -10011,13 +10132,13 @@ var InMemoryMailboxStore = class {
10011
10132
 
10012
10133
  // src/agent_team/middleware/team.ts
10013
10134
  var import_v34 = require("zod/v3");
10014
- var import_langchain51 = require("langchain");
10135
+ var import_langchain52 = require("langchain");
10015
10136
  var import_langgraph10 = require("@langchain/langgraph");
10016
10137
  var import_uuid = require("uuid");
10017
10138
 
10018
10139
  // src/agent_team/middleware/teammate_tools.ts
10019
10140
  var import_v33 = require("zod/v3");
10020
- var import_langchain50 = require("langchain");
10141
+ var import_langchain51 = require("langchain");
10021
10142
  var import_langgraph9 = require("@langchain/langgraph");
10022
10143
 
10023
10144
  // src/agent_team/middleware/formatMessages.ts
@@ -10042,7 +10163,7 @@ ${meta}${body}`;
10042
10163
  // src/agent_team/middleware/teammate_tools.ts
10043
10164
  function createTeammateTools(options) {
10044
10165
  const { teamId, agentId, taskListStore, mailboxStore } = options;
10045
- const claimTaskTool = (0, import_langchain50.tool)(
10166
+ const claimTaskTool = (0, import_langchain51.tool)(
10046
10167
  async (input) => {
10047
10168
  const task = await taskListStore.claimTaskById(
10048
10169
  teamId,
@@ -10072,7 +10193,7 @@ function createTeammateTools(options) {
10072
10193
  })
10073
10194
  }
10074
10195
  );
10075
- const completeTaskTool = (0, import_langchain50.tool)(
10196
+ const completeTaskTool = (0, import_langchain51.tool)(
10076
10197
  async (input) => {
10077
10198
  const task = await taskListStore.completeTask(
10078
10199
  teamId,
@@ -10099,7 +10220,7 @@ function createTeammateTools(options) {
10099
10220
  })
10100
10221
  }
10101
10222
  );
10102
- const failTaskTool = (0, import_langchain50.tool)(
10223
+ const failTaskTool = (0, import_langchain51.tool)(
10103
10224
  async (input) => {
10104
10225
  const task = await taskListStore.failTask(
10105
10226
  teamId,
@@ -10126,7 +10247,7 @@ function createTeammateTools(options) {
10126
10247
  })
10127
10248
  }
10128
10249
  );
10129
- const sendMessageTool = (0, import_langchain50.tool)(
10250
+ const sendMessageTool = (0, import_langchain51.tool)(
10130
10251
  async (input) => {
10131
10252
  await mailboxStore.sendMessage(
10132
10253
  teamId,
@@ -10164,7 +10285,7 @@ function createTeammateTools(options) {
10164
10285
  read: msg.read
10165
10286
  }));
10166
10287
  };
10167
- const readMessagesTool = (0, import_langchain50.tool)(
10288
+ const readMessagesTool = (0, import_langchain51.tool)(
10168
10289
  async (input, config) => {
10169
10290
  const formatAndMarkAsRead = async (msgs2) => {
10170
10291
  for (const msg of msgs2) {
@@ -10176,7 +10297,7 @@ function createTeammateTools(options) {
10176
10297
  if (msgs.length > 0) {
10177
10298
  const formatted2 = await formatAndMarkAsRead(msgs);
10178
10299
  const relevantMsgs2 = await getRelevantMessagesForState();
10179
- const toolMessage2 = new import_langchain50.ToolMessage({
10300
+ const toolMessage2 = new import_langchain51.ToolMessage({
10180
10301
  content: formatted2,
10181
10302
  tool_call_id: config.toolCall?.id,
10182
10303
  name: "read_messages"
@@ -10201,7 +10322,7 @@ function createTeammateTools(options) {
10201
10322
  });
10202
10323
  const relevantMsgs = await getRelevantMessagesForState();
10203
10324
  if (msgs.length === 0) {
10204
- const toolMessage2 = new import_langchain50.ToolMessage({
10325
+ const toolMessage2 = new import_langchain51.ToolMessage({
10205
10326
  content: "No unread messages.",
10206
10327
  tool_call_id: config.toolCall?.id,
10207
10328
  name: "read_messages"
@@ -10211,7 +10332,7 @@ function createTeammateTools(options) {
10211
10332
  });
10212
10333
  }
10213
10334
  const formatted = await formatAndMarkAsRead(msgs);
10214
- const toolMessage = new import_langchain50.ToolMessage({
10335
+ const toolMessage = new import_langchain51.ToolMessage({
10215
10336
  content: formatted,
10216
10337
  tool_call_id: config.toolCall?.id,
10217
10338
  name: "read_messages"
@@ -10226,7 +10347,7 @@ function createTeammateTools(options) {
10226
10347
  schema: import_v33.z.object({})
10227
10348
  }
10228
10349
  );
10229
- const checkTasksTool = (0, import_langchain50.tool)(
10350
+ const checkTasksTool = (0, import_langchain51.tool)(
10230
10351
  async () => {
10231
10352
  const tasks = await taskListStore.getAllTasks(teamId);
10232
10353
  return formatTaskSummary(tasks);
@@ -10237,7 +10358,7 @@ function createTeammateTools(options) {
10237
10358
  schema: import_v33.z.object({})
10238
10359
  }
10239
10360
  );
10240
- const broadcastMessageTool = (0, import_langchain50.tool)(
10361
+ const broadcastMessageTool = (0, import_langchain51.tool)(
10241
10362
  async (input) => {
10242
10363
  const allAgents = await mailboxStore.getRegisteredAgents(teamId);
10243
10364
  const recipients = allAgents.filter((a) => a !== agentId);
@@ -10422,7 +10543,7 @@ You have access to these tools:
10422
10543
  - \`read_messages\`: Read messages from team_lead or teammates
10423
10544
  - \`check_tasks\`: Get current status of all tasks in the team`;
10424
10545
  const assistantId = getTeammateAssistantId(ctx.teamId, spec.name);
10425
- agent = (0, import_langchain51.createAgent)({
10546
+ agent = (0, import_langchain52.createAgent)({
10426
10547
  model: spec.model ?? ctx.defaultModel,
10427
10548
  systemPrompt: teammatePrompt,
10428
10549
  tools: allTools,
@@ -10480,12 +10601,12 @@ async function spawnTeammate(options) {
10480
10601
  function createTeamMiddleware(options) {
10481
10602
  const { teamConfig, taskListStore, mailboxStore } = options;
10482
10603
  const defaultModel = teamConfig.model ?? "claude-sonnet-4-5-20250929";
10483
- const createTeamTool = (0, import_langchain51.tool)(
10604
+ const createTeamTool = (0, import_langchain52.tool)(
10484
10605
  async (input, config) => {
10485
10606
  const state = (0, import_langgraph10.getCurrentTaskInput)();
10486
10607
  if (state?.team?.teamId) {
10487
10608
  const existingId = state.team.teamId;
10488
- const msg = new import_langchain51.ToolMessage({
10609
+ const msg = new import_langchain52.ToolMessage({
10489
10610
  content: `A team is already active (id: ${existingId}). Use this team_id for \`check_tasks\`, \`read_messages\`, \`add_tasks\`, \`send_message\`, \`assign_task\`, \`set_task_status\`, and \`set_task_dependencies\`. Do not call \`create_team\` again unless you need a fresh team for a new objective.`,
10490
10611
  tool_call_id: config.toolCall?.id,
10491
10612
  name: "create_team"
@@ -10570,7 +10691,7 @@ Teammates are now working in the background. Keep calling \`check_tasks\` and \`
10570
10691
  \`\`\`json
10571
10692
  ${teamJson}
10572
10693
  \`\`\``;
10573
- const toolMessage = new import_langchain51.ToolMessage({
10694
+ const toolMessage = new import_langchain52.ToolMessage({
10574
10695
  content: summary,
10575
10696
  tool_call_id: config.toolCall?.id,
10576
10697
  name: "create_team"
@@ -10655,7 +10776,7 @@ After calling create_team, you MUST:
10655
10776
  if (state?.team?.teamId) return state.team.teamId;
10656
10777
  throw new Error("No team_id provided and no team in state. Call create_team first.");
10657
10778
  };
10658
- const addTasksTool = (0, import_langchain51.tool)(
10779
+ const addTasksTool = (0, import_langchain52.tool)(
10659
10780
  async (input, config) => {
10660
10781
  const teamId = resolveTeamId();
10661
10782
  const created = await taskListStore.addTasks(
@@ -10669,7 +10790,7 @@ After calling create_team, you MUST:
10669
10790
  }))
10670
10791
  );
10671
10792
  const summary = created.map((t) => `- ${t.id}: "${t.title}"`).join("\n");
10672
- return new import_langchain51.ToolMessage({
10793
+ return new import_langchain52.ToolMessage({
10673
10794
  content: `Added ${created.length} task(s) to team ${teamId}:
10674
10795
  ${summary}
10675
10796
  Sleeping teammates will wake up and claim these.`,
@@ -10720,20 +10841,20 @@ IMPORTANT: Assigning to a specific teammate
10720
10841
  })
10721
10842
  }
10722
10843
  );
10723
- const assignTaskTool = (0, import_langchain51.tool)(
10844
+ const assignTaskTool = (0, import_langchain52.tool)(
10724
10845
  async (input, config) => {
10725
10846
  const teamId = resolveTeamId();
10726
10847
  const task = await taskListStore.updateTask(teamId, input.task_id, {
10727
10848
  assignee: input.assignee
10728
10849
  });
10729
10850
  if (!task) {
10730
- return new import_langchain51.ToolMessage({
10851
+ return new import_langchain52.ToolMessage({
10731
10852
  content: `Task ${input.task_id} not found in team ${teamId}.`,
10732
10853
  tool_call_id: config.toolCall?.id,
10733
10854
  name: "assign_task"
10734
10855
  });
10735
10856
  }
10736
- return new import_langchain51.ToolMessage({
10857
+ return new import_langchain52.ToolMessage({
10737
10858
  content: `Task "${task.title}" (${task.id}) assigned to ${input.assignee}.`,
10738
10859
  tool_call_id: config.toolCall?.id,
10739
10860
  name: "assign_task"
@@ -10748,20 +10869,20 @@ IMPORTANT: Assigning to a specific teammate
10748
10869
  })
10749
10870
  }
10750
10871
  );
10751
- const setTaskStatusTool = (0, import_langchain51.tool)(
10872
+ const setTaskStatusTool = (0, import_langchain52.tool)(
10752
10873
  async (input, config) => {
10753
10874
  const teamId = resolveTeamId();
10754
10875
  const task = await taskListStore.updateTask(teamId, input.task_id, {
10755
10876
  status: input.status
10756
10877
  });
10757
10878
  if (!task) {
10758
- return new import_langchain51.ToolMessage({
10879
+ return new import_langchain52.ToolMessage({
10759
10880
  content: `Task ${input.task_id} not found in team ${teamId}.`,
10760
10881
  tool_call_id: config.toolCall?.id,
10761
10882
  name: "set_task_status"
10762
10883
  });
10763
10884
  }
10764
- return new import_langchain51.ToolMessage({
10885
+ return new import_langchain52.ToolMessage({
10765
10886
  content: `Task "${task.title}" (${task.id}) status set to ${input.status}.`,
10766
10887
  tool_call_id: config.toolCall?.id,
10767
10888
  name: "set_task_status"
@@ -10776,20 +10897,20 @@ IMPORTANT: Assigning to a specific teammate
10776
10897
  })
10777
10898
  }
10778
10899
  );
10779
- const setTaskDependenciesTool = (0, import_langchain51.tool)(
10900
+ const setTaskDependenciesTool = (0, import_langchain52.tool)(
10780
10901
  async (input, config) => {
10781
10902
  const teamId = resolveTeamId();
10782
10903
  const task = await taskListStore.updateTask(teamId, input.task_id, {
10783
10904
  dependencies: input.dependencies
10784
10905
  });
10785
10906
  if (!task) {
10786
- return new import_langchain51.ToolMessage({
10907
+ return new import_langchain52.ToolMessage({
10787
10908
  content: `Task ${input.task_id} not found in team ${teamId}.`,
10788
10909
  tool_call_id: config.toolCall?.id,
10789
10910
  name: "set_task_dependencies"
10790
10911
  });
10791
10912
  }
10792
- return new import_langchain51.ToolMessage({
10913
+ return new import_langchain52.ToolMessage({
10793
10914
  content: `Task "${task.title}" (${task.id}) dependencies set to [${input.dependencies.join(", ")}].`,
10794
10915
  tool_call_id: config.toolCall?.id,
10795
10916
  name: "set_task_dependencies"
@@ -10804,7 +10925,7 @@ IMPORTANT: Assigning to a specific teammate
10804
10925
  })
10805
10926
  }
10806
10927
  );
10807
- const checkTasksTool = (0, import_langchain51.tool)(
10928
+ const checkTasksTool = (0, import_langchain52.tool)(
10808
10929
  async (input, config) => {
10809
10930
  const teamId = resolveTeamId();
10810
10931
  const tasks = await taskListStore.getAllTasks(teamId);
@@ -10813,7 +10934,7 @@ IMPORTANT: Assigning to a specific teammate
10813
10934
  update: {
10814
10935
  tasks: tasksSnapshot,
10815
10936
  messages: [
10816
- new import_langchain51.ToolMessage({
10937
+ new import_langchain52.ToolMessage({
10817
10938
  content: formatTaskSummary(tasks),
10818
10939
  tool_call_id: config.toolCall?.id,
10819
10940
  name: "check_tasks"
@@ -10849,7 +10970,7 @@ Task Status Values:
10849
10970
  })
10850
10971
  }
10851
10972
  );
10852
- const sendMessageTool = (0, import_langchain51.tool)(
10973
+ const sendMessageTool = (0, import_langchain52.tool)(
10853
10974
  async (input, config) => {
10854
10975
  const teamId = resolveTeamId();
10855
10976
  await mailboxStore.sendMessage(
@@ -10859,7 +10980,7 @@ Task Status Values:
10859
10980
  input.content,
10860
10981
  "direct_message" /* DIRECT_MESSAGE */
10861
10982
  );
10862
- return new import_langchain51.ToolMessage({
10983
+ return new import_langchain52.ToolMessage({
10863
10984
  content: `Message sent to ${input.to}.`,
10864
10985
  tool_call_id: config.toolCall?.id,
10865
10986
  name: "send_message"
@@ -10874,7 +10995,7 @@ Task Status Values:
10874
10995
  })
10875
10996
  }
10876
10997
  );
10877
- const readMessagesTool = (0, import_langchain51.tool)(
10998
+ const readMessagesTool = (0, import_langchain52.tool)(
10878
10999
  async (input, config) => {
10879
11000
  const teamId = resolveTeamId();
10880
11001
  const formatAndMarkAsRead = async (msgs2) => {
@@ -10902,7 +11023,7 @@ Task Status Values:
10902
11023
  if (msgs.length > 0) {
10903
11024
  const formatted2 = await formatAndMarkAsRead(msgs);
10904
11025
  const allTeamMessages2 = await getAllTeamMessagesForState();
10905
- const toolMessage2 = new import_langchain51.ToolMessage({
11026
+ const toolMessage2 = new import_langchain52.ToolMessage({
10906
11027
  content: formatted2,
10907
11028
  tool_call_id: config.toolCall?.id,
10908
11029
  name: "read_messages"
@@ -10934,7 +11055,7 @@ Task Status Values:
10934
11055
  );
10935
11056
  const allTeamMessages = await getAllTeamMessagesForState();
10936
11057
  if (msgs.length === 0) {
10937
- const toolMessage2 = new import_langchain51.ToolMessage({
11058
+ const toolMessage2 = new import_langchain52.ToolMessage({
10938
11059
  content: "No unread messages from teammates.",
10939
11060
  tool_call_id: config.toolCall?.id,
10940
11061
  name: "read_messages"
@@ -10944,7 +11065,7 @@ Task Status Values:
10944
11065
  });
10945
11066
  }
10946
11067
  const formatted = await formatAndMarkAsRead(msgs);
10947
- const toolMessage = new import_langchain51.ToolMessage({
11068
+ const toolMessage = new import_langchain52.ToolMessage({
10948
11069
  content: formatted,
10949
11070
  tool_call_id: config.toolCall?.id,
10950
11071
  name: "read_messages"
@@ -10961,7 +11082,7 @@ Task Status Values:
10961
11082
  })
10962
11083
  }
10963
11084
  );
10964
- const disbandTeamTool = (0, import_langchain51.tool)(
11085
+ const disbandTeamTool = (0, import_langchain52.tool)(
10965
11086
  async (input, config) => {
10966
11087
  const teamId = resolveTeamId();
10967
11088
  await mailboxStore.broadcastMessage(
@@ -10971,7 +11092,7 @@ Task Status Values:
10971
11092
  "shutdown_request" /* SHUTDOWN_REQUEST */
10972
11093
  );
10973
11094
  await new Promise((r) => setTimeout(r, 2e3));
10974
- return new import_langchain51.ToolMessage({
11095
+ return new import_langchain52.ToolMessage({
10975
11096
  content: `Team ${teamId} has been disbanded. All teammates notified and resources cleaned up.`,
10976
11097
  tool_call_id: config.toolCall?.id,
10977
11098
  name: "disband_team"
@@ -10982,7 +11103,7 @@ Task Status Values:
10982
11103
  description: "Disband a team when all work is done. Before calling: (1) Call check_tasks to verify no tasks are still pending/in_progress; (2) if any are, discuss with the team via read_messages and broadcast_message/send_message whether to continue or stop/cancel them; (3) only after alignment (all tasks completed/failed or explicitly stopped), then call this tool. This will: 1) Send a shutdown message to all teammates, 2) Wait briefly for them to clean up, 3) Clear all tasks and messages. Omit team_id to use the active team from state."
10983
11104
  }
10984
11105
  );
10985
- const broadcastMessageTool = (0, import_langchain51.tool)(
11106
+ const broadcastMessageTool = (0, import_langchain52.tool)(
10986
11107
  async (input, config) => {
10987
11108
  const teamId = resolveTeamId();
10988
11109
  await mailboxStore.broadcastMessage(
@@ -10991,7 +11112,7 @@ Task Status Values:
10991
11112
  input.content,
10992
11113
  "broadcast" /* BROADCAST */
10993
11114
  );
10994
- return new import_langchain51.ToolMessage({
11115
+ return new import_langchain52.ToolMessage({
10995
11116
  content: `Broadcast message sent to all teammates.`,
10996
11117
  tool_call_id: config.toolCall?.id,
10997
11118
  name: "broadcast_message"
@@ -11005,7 +11126,7 @@ Task Status Values:
11005
11126
  })
11006
11127
  }
11007
11128
  );
11008
- return (0, import_langchain51.createMiddleware)({
11129
+ return (0, import_langchain52.createMiddleware)({
11009
11130
  name: "teamMiddleware",
11010
11131
  tools: [
11011
11132
  createTeamTool,
@@ -11113,7 +11234,7 @@ function createAgentTeam(config) {
11113
11234
  ];
11114
11235
  const systemPrompt = config.systemPrompt + "\n\n" + TEAM_LEAD_BASE_PROMPT;
11115
11236
  const stateSchema2 = createReactAgentSchema(TEAM_STATE_SCHEMA);
11116
- return (0, import_langchain52.createAgent)({
11237
+ return (0, import_langchain53.createAgent)({
11117
11238
  model: config.model ?? "claude-sonnet-4-5-20250929",
11118
11239
  systemPrompt,
11119
11240
  tools: [],
@@ -11143,7 +11264,7 @@ var TeamAgentGraphBuilder = class {
11143
11264
  const tools = params.tools.map((t) => {
11144
11265
  const toolClient = getToolClient(t.key);
11145
11266
  return toolClient;
11146
- }).filter((tool46) => tool46 !== void 0);
11267
+ }).filter((tool47) => tool47 !== void 0);
11147
11268
  const teammates = params.subAgents.map((sa) => {
11148
11269
  const baseConfig = sa.config;
11149
11270
  return {
@@ -13803,10 +13924,10 @@ var McpLatticeManager = class _McpLatticeManager extends BaseLatticeManager {
13803
13924
  }
13804
13925
  const tools = await this.getAllTools();
13805
13926
  console.log(`[MCP] Registering ${tools.length} tools to Tool Lattice...`);
13806
- for (const tool46 of tools) {
13807
- const toolKey = prefix ? `${prefix}_${tool46.name}` : tool46.name;
13808
- tool46.name = toolKey;
13809
- toolLatticeManager.registerExistingTool(toolKey, tool46);
13927
+ for (const tool47 of tools) {
13928
+ const toolKey = prefix ? `${prefix}_${tool47.name}` : tool47.name;
13929
+ tool47.name = toolKey;
13930
+ toolLatticeManager.registerExistingTool(toolKey, tool47);
13810
13931
  console.log(`[MCP] Registered tool: ${toolKey}`);
13811
13932
  }
13812
13933
  console.log(`[MCP] Successfully registered ${tools.length} tools to Tool Lattice`);
@@ -13945,6 +14066,7 @@ function clearEncryptionKeyCache() {
13945
14066
  checkEmptyContent,
13946
14067
  clearEncryptionKeyCache,
13947
14068
  createAgentTeam,
14069
+ createExecuteSqlQueryTool,
13948
14070
  createFileData,
13949
14071
  createInfoSqlTool,
13950
14072
  createListMetricsDataSourcesTool,