wave-agent-sdk 0.16.7 → 0.16.9

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.
Files changed (83) hide show
  1. package/dist/agent.d.ts.map +1 -1
  2. package/dist/agent.js +0 -2
  3. package/dist/constants/tools.d.ts +0 -1
  4. package/dist/constants/tools.d.ts.map +1 -1
  5. package/dist/constants/tools.js +0 -1
  6. package/dist/managers/aiManager.d.ts +0 -8
  7. package/dist/managers/aiManager.d.ts.map +1 -1
  8. package/dist/managers/aiManager.js +0 -45
  9. package/dist/managers/mcpManager.d.ts +5 -0
  10. package/dist/managers/mcpManager.d.ts.map +1 -1
  11. package/dist/managers/mcpManager.js +107 -12
  12. package/dist/managers/toolManager.d.ts +0 -6
  13. package/dist/managers/toolManager.d.ts.map +1 -1
  14. package/dist/managers/toolManager.js +1 -28
  15. package/dist/prompts/index.d.ts.map +1 -1
  16. package/dist/prompts/index.js +1 -12
  17. package/dist/services/authService.d.ts +10 -0
  18. package/dist/services/authService.d.ts.map +1 -1
  19. package/dist/services/authService.js +45 -0
  20. package/dist/services/configurationService.d.ts.map +1 -1
  21. package/dist/services/configurationService.js +8 -14
  22. package/dist/services/pluginLoader.d.ts.map +1 -1
  23. package/dist/services/pluginLoader.js +2 -2
  24. package/dist/telemetry/instrumentation.d.ts +5 -2
  25. package/dist/telemetry/instrumentation.d.ts.map +1 -1
  26. package/dist/telemetry/instrumentation.js +8 -4
  27. package/dist/tools/buildTool.d.ts +0 -2
  28. package/dist/tools/buildTool.d.ts.map +1 -1
  29. package/dist/tools/buildTool.js +0 -2
  30. package/dist/tools/cronCreateTool.d.ts.map +1 -1
  31. package/dist/tools/cronCreateTool.js +0 -1
  32. package/dist/tools/cronDeleteTool.d.ts.map +1 -1
  33. package/dist/tools/cronDeleteTool.js +0 -1
  34. package/dist/tools/cronListTool.d.ts.map +1 -1
  35. package/dist/tools/cronListTool.js +0 -1
  36. package/dist/tools/enterWorktreeTool.d.ts.map +1 -1
  37. package/dist/tools/enterWorktreeTool.js +0 -1
  38. package/dist/tools/exitWorktreeTool.d.ts.map +1 -1
  39. package/dist/tools/exitWorktreeTool.js +0 -1
  40. package/dist/tools/taskManagementTools.d.ts.map +1 -1
  41. package/dist/tools/taskManagementTools.js +0 -4
  42. package/dist/tools/types.d.ts +0 -15
  43. package/dist/tools/types.d.ts.map +1 -1
  44. package/dist/tools/webFetchTool.d.ts.map +1 -1
  45. package/dist/tools/webFetchTool.js +0 -1
  46. package/dist/types/mcp.d.ts +3 -1
  47. package/dist/types/mcp.d.ts.map +1 -1
  48. package/dist/utils/configValidator.d.ts +1 -8
  49. package/dist/utils/configValidator.d.ts.map +1 -1
  50. package/dist/utils/configValidator.js +0 -17
  51. package/dist/utils/mcpUtils.d.ts.map +1 -1
  52. package/dist/utils/mcpUtils.js +0 -1
  53. package/package.json +1 -1
  54. package/src/agent.ts +0 -2
  55. package/src/constants/tools.ts +0 -1
  56. package/src/managers/aiManager.ts +0 -48
  57. package/src/managers/mcpManager.ts +122 -16
  58. package/src/managers/toolManager.ts +1 -32
  59. package/src/prompts/index.ts +0 -13
  60. package/src/services/authService.ts +56 -0
  61. package/src/services/configurationService.ts +8 -18
  62. package/src/services/pluginLoader.ts +2 -2
  63. package/src/telemetry/instrumentation.ts +12 -4
  64. package/src/tools/buildTool.ts +0 -4
  65. package/src/tools/cronCreateTool.ts +0 -1
  66. package/src/tools/cronDeleteTool.ts +0 -1
  67. package/src/tools/cronListTool.ts +0 -1
  68. package/src/tools/enterWorktreeTool.ts +0 -1
  69. package/src/tools/exitWorktreeTool.ts +0 -1
  70. package/src/tools/taskManagementTools.ts +0 -4
  71. package/src/tools/types.ts +0 -15
  72. package/src/tools/webFetchTool.ts +0 -1
  73. package/src/types/mcp.ts +8 -1
  74. package/src/utils/configValidator.ts +0 -31
  75. package/src/utils/mcpUtils.ts +0 -1
  76. package/dist/tools/toolSearchTool.d.ts +0 -15
  77. package/dist/tools/toolSearchTool.d.ts.map +0 -1
  78. package/dist/tools/toolSearchTool.js +0 -200
  79. package/dist/utils/isDeferredTool.d.ts +0 -19
  80. package/dist/utils/isDeferredTool.d.ts.map +0 -1
  81. package/dist/utils/isDeferredTool.js +0 -31
  82. package/src/tools/toolSearchTool.ts +0 -245
  83. package/src/utils/isDeferredTool.ts +0 -36
@@ -367,7 +367,7 @@ export class ConfigurationService {
367
367
  resolvedBaseURL = undefined;
368
368
  }
369
369
  // Resolve custom headers from environment: env (settings.json) > process.env
370
- const envCustomHeaders = process.env.WAVE_CUSTOM_HEADERS || process.env.WAVE_CUSTOM_HEADERS || "";
370
+ const envCustomHeaders = process.env.WAVE_CUSTOM_HEADERS || "";
371
371
  const parsedEnvHeaders = parseCustomHeaders(envCustomHeaders);
372
372
  // Merge headers: env headers < options < override
373
373
  const resolvedHeaders = {
@@ -393,16 +393,10 @@ export class ConfigurationService {
393
393
  * @returns Resolved model configuration with defaults
394
394
  */
395
395
  resolveModelConfig(model, fastModel, maxTokens, permissionMode) {
396
- // Resolve agent model: override > options > env (settings.json) > process.env
397
- const resolvedAgentModel = model ||
398
- this.options.model ||
399
- process.env.WAVE_MODEL ||
400
- process.env.WAVE_MODEL;
401
- // Resolve fast model: override > options > env (settings.json) > process.env
402
- const resolvedFastModel = fastModel ||
403
- this.options.fastModel ||
404
- process.env.WAVE_FAST_MODEL ||
405
- process.env.WAVE_FAST_MODEL;
396
+ // Resolve agent model: override > options > process.env (includes settings.json env)
397
+ const resolvedAgentModel = model || this.options.model || process.env.WAVE_MODEL;
398
+ // Resolve fast model: override > options > process.env (includes settings.json env)
399
+ const resolvedFastModel = fastModel || this.options.fastModel || process.env.WAVE_FAST_MODEL;
406
400
  // Validate required fields
407
401
  if (!resolvedAgentModel) {
408
402
  throw new ConfigurationError(CONFIG_ERRORS.MISSING_MODEL, "model", {
@@ -450,7 +444,7 @@ export class ConfigurationService {
450
444
  return this.options.maxInputTokens;
451
445
  }
452
446
  // Try env (settings.json) first, then process.env
453
- const envMaxInputTokens = process.env.WAVE_MAX_INPUT_TOKENS || process.env.WAVE_MAX_INPUT_TOKENS;
447
+ const envMaxInputTokens = process.env.WAVE_MAX_INPUT_TOKENS;
454
448
  if (envMaxInputTokens) {
455
449
  const parsed = parseInt(envMaxInputTokens, 10);
456
450
  if (!isNaN(parsed)) {
@@ -538,7 +532,7 @@ export class ConfigurationService {
538
532
  return this.options.maxTokens;
539
533
  }
540
534
  // Try env (settings.json) first, then process.env
541
- const envMaxOutputTokens = process.env.WAVE_MAX_OUTPUT_TOKENS || process.env.WAVE_MAX_OUTPUT_TOKENS;
535
+ const envMaxOutputTokens = process.env.WAVE_MAX_OUTPUT_TOKENS;
542
536
  if (envMaxOutputTokens) {
543
537
  const parsed = parseInt(envMaxOutputTokens, 10);
544
538
  if (!isNaN(parsed) && parsed > 0) {
@@ -560,7 +554,7 @@ export class ConfigurationService {
560
554
  getConfiguredModels() {
561
555
  const models = new Set();
562
556
  // Add current model from options or environment
563
- const currentModel = this.options.model || process.env.WAVE_MODEL || process.env.WAVE_MODEL;
557
+ const currentModel = this.options.model || process.env.WAVE_MODEL;
564
558
  if (currentModel) {
565
559
  models.add(currentModel);
566
560
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pluginLoader.d.ts","sourceRoot":"","sources":["../../src/services/pluginLoader.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,KAAK,EACL,SAAS,EACT,SAAS,EACT,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAC;AAIpC,qBAAa,YAAY;IACvB;;;OAGG;WACU,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA6CtE;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAK7D;;;OAGG;WACU,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAuC7D;;OAEG;WACU,aAAa,CACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAUjC;;OAEG;WACU,aAAa,CACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAUjC;;OAEG;WACU,eAAe,CAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC;IAgBhD;;OAEG;WACU,UAAU,CACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,EAAE,CAAC;IA2BnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAgBhC"}
1
+ {"version":3,"file":"pluginLoader.d.ts","sourceRoot":"","sources":["../../src/services/pluginLoader.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,KAAK,EACL,SAAS,EACT,SAAS,EACT,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,4BAA4B,CAAC;AAGpC,qBAAa,YAAY;IACvB;;;OAGG;WACU,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA6CtE;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAK7D;;;OAGG;WACU,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAuC7D;;OAEG;WACU,aAAa,CACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAUjC;;OAEG;WACU,aAAa,CACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAWjC;;OAEG;WACU,eAAe,CAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC;IAgBhD;;OAEG;WACU,UAAU,CACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,EAAE,CAAC;IA2BnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAgBhC"}
@@ -3,7 +3,6 @@ import * as path from "path";
3
3
  import { scanCommandsDirectory } from "../utils/customCommands.js";
4
4
  import { parseSkillFile } from "../utils/skillParser.js";
5
5
  import { parseAgentFile, } from "../utils/subagentParser.js";
6
- import { resolveMcpConfig } from "../managers/mcpManager.js";
7
6
  import { logger } from "../utils/globalLogger.js";
8
7
  export class PluginLoader {
9
8
  /**
@@ -112,7 +111,8 @@ export class PluginLoader {
112
111
  const mcpPath = path.join(pluginPath, ".mcp.json");
113
112
  try {
114
113
  const content = await fs.readFile(mcpPath, "utf-8");
115
- return resolveMcpConfig(JSON.parse(content));
114
+ // Return raw config — let McpManager resolve templates and capture originalUrl
115
+ return JSON.parse(content);
116
116
  }
117
117
  catch {
118
118
  return undefined;
@@ -63,8 +63,11 @@ export declare function getCurrentConfig(): TelemetryConfig | undefined;
63
63
  export declare function isInitialized(): boolean;
64
64
  export { JsonlSpanExporter, JsonlLogExporter };
65
65
  /**
66
- * Get telemetry attributes based on the authenticated SSO user.
67
- * Returns user.id and user.email when SSO authenticated, empty object otherwise.
66
+ * Get telemetry attributes for the current session.
67
+ *
68
+ * Priority:
69
+ * 1. SSO authenticated → server-provided user.id + user.email
70
+ * 2. Not authenticated → persistent anonymous ID from ~/.wave/config.json
68
71
  */
69
72
  export declare function getTelemetryAttributes(): Record<string, string>;
70
73
  //# sourceMappingURL=instrumentation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/telemetry/instrumentation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,eAAe,EAGhB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AA2JjC;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GACxC,eAAe,CAmBjB;AAwCD;;GAEG;AACH,cAAM,iBAAkB,YAAW,YAAY;IAC7C,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,CAAC,EAAE,MAAM;IAI7B,MAAM,CACJ,KAAK,EAAE,YAAY,EAAE,EACrB,cAAc,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GACjD,IAAI;IAwBP,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B;AAED;;GAEG;AACH,cAAM,gBAAiB,YAAW,iBAAiB;IACjD,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,CAAC,EAAE,MAAM;IAI7B,MAAM,CACJ,IAAI,EAAE,iBAAiB,EAAE,EACzB,cAAc,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GACjD,IAAI;IAuBP,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CA8Ef;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBvD;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,cAAc,oBAAoB,CAAC,GAAG,SAAS,CAE5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,eAAe,GAAG,SAAS,CAE9D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAGD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;AAE/C;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAc/D"}
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/telemetry/instrumentation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,eAAe,EAGhB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AA8JjC;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GACxC,eAAe,CAmBjB;AAwCD;;GAEG;AACH,cAAM,iBAAkB,YAAW,YAAY;IAC7C,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,CAAC,EAAE,MAAM;IAI7B,MAAM,CACJ,KAAK,EAAE,YAAY,EAAE,EACrB,cAAc,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GACjD,IAAI;IAwBP,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B;AAED;;GAEG;AACH,cAAM,gBAAiB,YAAW,iBAAiB;IACjD,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,CAAC,EAAE,MAAM;IAI7B,MAAM,CACJ,IAAI,EAAE,iBAAiB,EAAE,EACzB,cAAc,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GACjD,IAAI;IAuBP,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CA8Ef;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBvD;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,cAAc,oBAAoB,CAAC,GAAG,SAAS,CAE5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,eAAe,GAAG,SAAS,CAE9D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAGD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;AAE/C;;;;;;GAMG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgB/D"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { logger } from "../utils/globalLogger.js";
8
8
  import * as fs from "node:fs";
9
- import { AuthService } from "../services/authService.js";
9
+ import { AuthService, getOrCreateAnonymousId, } from "../services/authService.js";
10
10
  // Lazy-loaded OTEL modules — only imported when telemetry is initialized
11
11
  let sdkNode;
12
12
  let api;
@@ -371,8 +371,11 @@ export function isInitialized() {
371
371
  // Export JSONL exporters for testing
372
372
  export { JsonlSpanExporter, JsonlLogExporter };
373
373
  /**
374
- * Get telemetry attributes based on the authenticated SSO user.
375
- * Returns user.id and user.email when SSO authenticated, empty object otherwise.
374
+ * Get telemetry attributes for the current session.
375
+ *
376
+ * Priority:
377
+ * 1. SSO authenticated → server-provided user.id + user.email
378
+ * 2. Not authenticated → persistent anonymous ID from ~/.wave/config.json
376
379
  */
377
380
  export function getTelemetryAttributes() {
378
381
  try {
@@ -388,5 +391,6 @@ export function getTelemetryAttributes() {
388
391
  catch {
389
392
  // AuthService not available or not authenticated
390
393
  }
391
- return {};
394
+ // Fallback to anonymous ID
395
+ return { "user.id": getOrCreateAnonymousId() };
392
396
  }
@@ -14,8 +14,6 @@ export interface ToolDef {
14
14
  isSubagent?: boolean;
15
15
  }) => string);
16
16
  formatCompactParams?: (params: Record<string, unknown>, context: ToolContext) => string;
17
- shouldDefer?: boolean;
18
- alwaysLoad?: boolean;
19
17
  additionalProperties?: boolean;
20
18
  }
21
19
  export declare function buildTool(def: ToolDef): ToolPlugin;
@@ -1 +1 @@
1
- {"version":3,"file":"buildTool.d.ts","sourceRoot":"","sources":["../../src/tools/buildTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,CACP,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,KACjB,OAAO,CAAC,UAAU,CAAC,CAAC;IACzB,MAAM,CAAC,EACH,MAAM,GACN,CAAC,CAAC,IAAI,CAAC,EAAE;QACP,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;QAC7C,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,KAAK,MAAM,CAAC,CAAC;IAClB,mBAAmB,CAAC,EAAE,CACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,WAAW,KACjB,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAiClD"}
1
+ {"version":3,"file":"buildTool.d.ts","sourceRoot":"","sources":["../../src/tools/buildTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,CACP,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,KACjB,OAAO,CAAC,UAAU,CAAC,CAAC;IACzB,MAAM,CAAC,EACH,MAAM,GACN,CAAC,CAAC,IAAI,CAAC,EAAE;QACP,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;QAC7C,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,KAAK,MAAM,CAAC,CAAC;IAClB,mBAAmB,CAAC,EAAE,CACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,WAAW,KACjB,MAAM,CAAC;IACZ,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CA+BlD"}
@@ -27,7 +27,5 @@ export function buildTool(def) {
27
27
  execute: def.execute,
28
28
  prompt: promptFn,
29
29
  formatCompactParams: def.formatCompactParams,
30
- shouldDefer: def.shouldDefer ?? false,
31
- alwaysLoad: def.alwaysLoad ?? false,
32
30
  };
33
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cronCreateTool.d.ts","sourceRoot":"","sources":["../../src/tools/cronCreateTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAgDjE,eAAO,MAAM,cAAc,EAAE,UAiH5B,CAAC"}
1
+ {"version":3,"file":"cronCreateTool.d.ts","sourceRoot":"","sources":["../../src/tools/cronCreateTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAgDjE,eAAO,MAAM,cAAc,EAAE,UAgH5B,CAAC"}
@@ -43,7 +43,6 @@ Recurring tasks auto-expire after ${DEFAULT_MAX_AGE_DAYS} days — they fire one
43
43
  Returns a job ID you can pass to CronDelete.`;
44
44
  export const cronCreateTool = {
45
45
  name: CRON_CREATE_TOOL_NAME,
46
- shouldDefer: true,
47
46
  config: {
48
47
  type: "function",
49
48
  function: {
@@ -1 +1 @@
1
- {"version":3,"file":"cronDeleteTool.d.ts","sourceRoot":"","sources":["../../src/tools/cronDeleteTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAOjE,eAAO,MAAM,cAAc,EAAE,UA4C5B,CAAC"}
1
+ {"version":3,"file":"cronDeleteTool.d.ts","sourceRoot":"","sources":["../../src/tools/cronDeleteTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAOjE,eAAO,MAAM,cAAc,EAAE,UA2C5B,CAAC"}
@@ -3,7 +3,6 @@ const CRON_DELETE_DESCRIPTION = "Cancel a scheduled cron job by ID";
3
3
  const CRON_DELETE_PROMPT = `Cancel a cron job previously scheduled with CronCreate. Removes it from both the in-memory session store and durable file storage (if applicable).`;
4
4
  export const cronDeleteTool = {
5
5
  name: CRON_DELETE_TOOL_NAME,
6
- shouldDefer: true,
7
6
  config: {
8
7
  type: "function",
9
8
  function: {
@@ -1 +1 @@
1
- {"version":3,"file":"cronListTool.d.ts","sourceRoot":"","sources":["../../src/tools/cronListTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAOjE,eAAO,MAAM,YAAY,EAAE,UAwC1B,CAAC"}
1
+ {"version":3,"file":"cronListTool.d.ts","sourceRoot":"","sources":["../../src/tools/cronListTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAOjE,eAAO,MAAM,YAAY,EAAE,UAuC1B,CAAC"}
@@ -3,7 +3,6 @@ const CRON_LIST_DESCRIPTION = "List scheduled cron jobs";
3
3
  const CRON_LIST_PROMPT = `List all cron jobs scheduled via CronCreate in this session.`;
4
4
  export const cronListTool = {
5
5
  name: CRON_LIST_TOOL_NAME,
6
- shouldDefer: true,
7
6
  config: {
8
7
  type: "function",
9
8
  function: {
@@ -1 +1 @@
1
- {"version":3,"file":"enterWorktreeTool.d.ts","sourceRoot":"","sources":["../../src/tools/enterWorktreeTool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAetE,eAAO,MAAM,0BAA0B,qxCA0BtC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,UAsI/B,CAAC"}
1
+ {"version":3,"file":"enterWorktreeTool.d.ts","sourceRoot":"","sources":["../../src/tools/enterWorktreeTool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAetE,eAAO,MAAM,0BAA0B,qxCA0BtC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,UAqI/B,CAAC"}
@@ -36,7 +36,6 @@ export const ENTER_WORKTREE_TOOL_PROMPT = `Use this tool ONLY when the user expl
36
36
  `;
37
37
  export const enterWorktreeTool = {
38
38
  name: ENTER_WORKTREE_TOOL_NAME,
39
- shouldDefer: true,
40
39
  config: {
41
40
  type: "function",
42
41
  function: {
@@ -1 +1 @@
1
- {"version":3,"file":"exitWorktreeTool.d.ts","sourceRoot":"","sources":["../../src/tools/exitWorktreeTool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAYtE,eAAO,MAAM,yBAAyB,gvDA4BrC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,UAkM9B,CAAC"}
1
+ {"version":3,"file":"exitWorktreeTool.d.ts","sourceRoot":"","sources":["../../src/tools/exitWorktreeTool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAYtE,eAAO,MAAM,yBAAyB,gvDA4BrC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,UAiM9B,CAAC"}
@@ -37,7 +37,6 @@ If called outside an EnterWorktree session, the tool is a **no-op**: it reports
37
37
  `;
38
38
  export const exitWorktreeTool = {
39
39
  name: EXIT_WORKTREE_TOOL_NAME,
40
- shouldDefer: true,
41
40
  config: {
42
41
  type: "function",
43
42
  function: {
@@ -1 +1 @@
1
- {"version":3,"file":"taskManagementTools.d.ts","sourceRoot":"","sources":["../../src/tools/taskManagementTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AASjE,eAAO,MAAM,cAAc,EAAE,UAqI5B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,UA0DzB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,UAiW5B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,UAmE1B,CAAC"}
1
+ {"version":3,"file":"taskManagementTools.d.ts","sourceRoot":"","sources":["../../src/tools/taskManagementTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AASjE,eAAO,MAAM,cAAc,EAAE,UAoI5B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,UAyDzB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,UAgW5B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,UAkE1B,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import { TASK_CREATE_TOOL_NAME, TASK_GET_TOOL_NAME, TASK_UPDATE_TOOL_NAME, TASK_LIST_TOOL_NAME, } from "../constants/tools.js";
2
2
  export const taskCreateTool = {
3
3
  name: TASK_CREATE_TOOL_NAME,
4
- shouldDefer: true,
5
4
  config: {
6
5
  type: "function",
7
6
  function: {
@@ -124,7 +123,6 @@ NOTE that you should not use this tool if there is only one trivial task to do.
124
123
  };
125
124
  export const taskGetTool = {
126
125
  name: TASK_GET_TOOL_NAME,
127
- shouldDefer: true,
128
126
  config: {
129
127
  type: "function",
130
128
  function: {
@@ -181,7 +179,6 @@ Returns full task details:
181
179
  };
182
180
  export const taskUpdateTool = {
183
181
  name: TASK_UPDATE_TOOL_NAME,
184
- shouldDefer: true,
185
182
  config: {
186
183
  type: "function",
187
184
  function: {
@@ -481,7 +478,6 @@ Set up task dependencies:
481
478
  };
482
479
  export const taskListTool = {
483
480
  name: TASK_LIST_TOOL_NAME,
484
- shouldDefer: true,
485
481
  config: {
486
482
  type: "function",
487
483
  function: {
@@ -19,21 +19,6 @@ export interface ToolPlugin {
19
19
  workdir?: string;
20
20
  isSubagent?: boolean;
21
21
  }) => string;
22
- /**
23
- * When true, this tool is deferred — it's not sent to the API until the model
24
- * discovers it via ToolSearch. MCP tools are always deferred.
25
- */
26
- shouldDefer?: boolean;
27
- /**
28
- * When true, this tool is never deferred — its full schema always appears in
29
- * the initial prompt even when tool search is enabled.
30
- */
31
- alwaysLoad?: boolean;
32
- /**
33
- * When true, this is an MCP tool (auto-set by McpManager). MCP tools are
34
- * always deferred unless they have alwaysLoad: true.
35
- */
36
- isMcp?: boolean;
37
22
  }
38
23
  export interface ToolResult {
39
24
  success: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"webFetchTool.d.ts","sourceRoot":"","sources":["../../src/tools/webFetchTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAoGtE,eAAO,MAAM,YAAY,EAAE,UAqL1B,CAAC"}
1
+ {"version":3,"file":"webFetchTool.d.ts","sourceRoot":"","sources":["../../src/tools/webFetchTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAoGtE,eAAO,MAAM,YAAY,EAAE,UAoL1B,CAAC"}
@@ -77,7 +77,6 @@ const GITHUB_URL_ERROR = "For GitHub URLs, please use the 'gh' CLI via the Bash
77
77
  // --- Tool ---
78
78
  export const webFetchTool = {
79
79
  name: WEB_FETCH_TOOL_NAME,
80
- shouldDefer: true,
81
80
  config: {
82
81
  type: "function",
83
82
  function: {
@@ -22,7 +22,9 @@ export interface McpTool {
22
22
  export interface McpServerStatus {
23
23
  name: string;
24
24
  config: McpServerConfig;
25
- status: "disconnected" | "connected" | "connecting" | "error";
25
+ /** Pre-resolution URL with template variables (e.g. ${WAVE_SSO_TOKEN}) preserved for safe display */
26
+ originalUrl?: string;
27
+ status: "disconnected" | "connected" | "connecting" | "reconnecting" | "error";
26
28
  tools?: McpTool[];
27
29
  toolCount?: number;
28
30
  capabilities?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/types/mcp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,cAAc,GAAG,WAAW,GAAG,YAAY,GAAG,OAAO,CAAC;IAC9D,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/types/mcp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,qGAAqG;IACrG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EACF,cAAc,GACd,WAAW,GACX,YAAY,GACZ,cAAc,GACd,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -2,7 +2,7 @@
2
2
  * Configuration validator utilities for Agent Constructor Configuration
3
3
  * Validates configuration values for correctness and security
4
4
  */
5
- import { GatewayConfig, ModelConfig } from "../types/index.js";
5
+ import { GatewayConfig } from "../types/index.js";
6
6
  export declare class ConfigValidator {
7
7
  /**
8
8
  * Validates gateway configuration
@@ -16,12 +16,6 @@ export declare class ConfigValidator {
16
16
  * @throws ConfigurationError if invalid
17
17
  */
18
18
  static validateMaxInputTokens(maxInputTokens: number): void;
19
- /**
20
- * Validates model configuration (basic validation)
21
- * @param config - Model configuration object
22
- * @throws ConfigurationError if invalid
23
- */
24
- static validateModelConfig(config: ModelConfig): void;
25
19
  }
26
20
  /**
27
21
  * Static configuration validator instance
@@ -30,6 +24,5 @@ export declare class ConfigValidator {
30
24
  export declare const configValidator: {
31
25
  validateGatewayConfig: typeof ConfigValidator.validateGatewayConfig;
32
26
  validateMaxInputTokens: typeof ConfigValidator.validateMaxInputTokens;
33
- validateModelConfig: (config: ModelConfig) => void;
34
27
  };
35
28
  //# sourceMappingURL=configValidator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"configValidator.d.ts","sourceRoot":"","sources":["../../src/utils/configValidator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,aAAa,EACb,WAAW,EAGZ,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,eAAe;IAC1B;;;;OAIG;IACH,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IA2CzD;;;;OAIG;IACH,MAAM,CAAC,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IA0B3D;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;CAsBtD;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe;;;kCAGI,WAAW;CAE1C,CAAC"}
1
+ {"version":3,"file":"configValidator.d.ts","sourceRoot":"","sources":["../../src/utils/configValidator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,aAAa,EAGd,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,eAAe;IAC1B;;;;OAIG;IACH,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IA2CzD;;;;OAIG;IACH,MAAM,CAAC,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;CAyB5D;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe;;;CAG3B,CAAC"}
@@ -49,22 +49,6 @@ export class ConfigValidator {
49
49
  throw new ConfigurationError(CONFIG_ERRORS.INVALID_WAVE_MAX_INPUT_TOKENS, "maxInputTokens", maxInputTokens);
50
50
  }
51
51
  }
52
- /**
53
- * Validates model configuration (basic validation)
54
- * @param config - Model configuration object
55
- * @throws ConfigurationError if invalid
56
- */
57
- static validateModelConfig(config) {
58
- const { model, fastModel } = config;
59
- if (!model || typeof model !== "string" || model.trim() === "") {
60
- throw new ConfigurationError("Agent model must be a non-empty string.", "model", model);
61
- }
62
- if (!fastModel ||
63
- typeof fastModel !== "string" ||
64
- fastModel.trim() === "") {
65
- throw new ConfigurationError("Fast model must be a non-empty string.", "fastModel", fastModel);
66
- }
67
- }
68
52
  }
69
53
  /**
70
54
  * Static configuration validator instance
@@ -73,5 +57,4 @@ export class ConfigValidator {
73
57
  export const configValidator = {
74
58
  validateGatewayConfig: ConfigValidator.validateGatewayConfig,
75
59
  validateMaxInputTokens: ConfigValidator.validateMaxInputTokens,
76
- validateModelConfig: (config) => ConfigValidator.validateModelConfig(config),
77
60
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mcpUtils.d.ts","sourceRoot":"","sources":["../../src/utils/mcpUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AA8ClE;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,GACjB,0BAA0B,CAgB5B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE,WAAW,KAClB,OAAO,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD,CAAC,GACD,UAAU,CAyBZ;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,EAAE,GACzB,eAAe,GAAG,SAAS,CAK7B"}
1
+ {"version":3,"file":"mcpUtils.d.ts","sourceRoot":"","sources":["../../src/utils/mcpUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAc,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AA8ClE;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,GACjB,0BAA0B,CAgB5B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE,WAAW,KAClB,OAAO,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD,CAAC,GACD,UAAU,CAwBZ;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,EAAE,GACzB,eAAe,GAAG,SAAS,CAK7B"}
@@ -57,7 +57,6 @@ export function createMcpToolPlugin(mcpTool, serverName, executeTool) {
57
57
  return {
58
58
  name: prefixedName,
59
59
  config: mcpToolToOpenAITool(mcpTool, serverName),
60
- isMcp: true, // MCP tools are always deferred
61
60
  async execute(args, context) {
62
61
  try {
63
62
  const result = await executeTool(prefixedName, args, context);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wave-agent-sdk",
3
- "version": "0.16.7",
3
+ "version": "0.16.9",
4
4
  "description": "SDK for building AI-powered development tools and agents",
5
5
  "keywords": [
6
6
  "ai",
package/src/agent.ts CHANGED
@@ -456,13 +456,11 @@ export class Agent {
456
456
  private resolveAndValidateConfig(): void {
457
457
  // Resolve configuration from constructor args and environment variables (including settings.json)
458
458
  const gatewayConfig = this.getGatewayConfig();
459
- const modelConfig = this.getModelConfig();
460
459
  const maxInputTokens = this.getMaxInputTokens();
461
460
 
462
461
  // Validate resolved configuration
463
462
  configValidator.validateGatewayConfig(gatewayConfig);
464
463
  configValidator.validateMaxInputTokens(maxInputTokens);
465
- configValidator.validateModelConfig(modelConfig);
466
464
  }
467
465
 
468
466
  /** Private initialization method, handles async initialization logic */
@@ -21,4 +21,3 @@ export const CRON_LIST_TOOL_NAME = "CronList";
21
21
  export const WEB_FETCH_TOOL_NAME = "WebFetch";
22
22
  export const ENTER_WORKTREE_TOOL_NAME = "EnterWorktree";
23
23
  export const EXIT_WORKTREE_TOOL_NAME = "ExitWorktree";
24
- export const TOOL_SEARCH_TOOL_NAME = "ToolSearch";
@@ -66,8 +66,6 @@ export class AIManager {
66
66
  private modelOverride?: string;
67
67
  private consecutiveCompactionFailures: number = 0;
68
68
  private readonly maxTurns?: number;
69
- /** Tracks which deferred tools have been discovered via ToolSearch */
70
- private discoveredTools = new Set<string>();
71
69
 
72
70
  // Service overrides
73
71
  constructor(
@@ -203,7 +201,6 @@ export class AIManager {
203
201
  availableSkills,
204
202
  workdir: this.getWorkdir(),
205
203
  isSubagent: !!this.subagentType,
206
- discoveredTools: this.discoveredTools,
207
204
  });
208
205
  }
209
206
 
@@ -1060,11 +1057,6 @@ export class AIManager {
1060
1057
  toolArgs,
1061
1058
  toolResult,
1062
1059
  );
1063
-
1064
- // Track discovered tools from ToolSearch results
1065
- if (toolName === "ToolSearch" && toolResult.success) {
1066
- this.trackDiscoveredTools(toolResult.content);
1067
- }
1068
1060
  } catch (toolError) {
1069
1061
  const errorMessage =
1070
1062
  toolError instanceof Error
@@ -1533,44 +1525,4 @@ export class AIManager {
1533
1525
  logger?.error("PostToolUse hook execution failed:", error);
1534
1526
  }
1535
1527
  }
1536
-
1537
- /**
1538
- * Parse ToolSearch result content to extract discovered tool names.
1539
- * ToolSearch returns content like "ToolName: description\nParameters: {...}"
1540
- * or shortResult like "Discovered tools: ToolA, ToolB".
1541
- */
1542
- private trackDiscoveredTools(content: string): void {
1543
- // Try to extract tool names from shortResult-style content
1544
- const discoveredMatch = content.match(/Discovered tools?: ([\w-, ]+)/);
1545
- if (discoveredMatch) {
1546
- const names = discoveredMatch[1]!
1547
- .split(",")
1548
- .map((n) => n.trim())
1549
- .filter(Boolean);
1550
- for (const name of names) {
1551
- this.discoveredTools.add(name);
1552
- }
1553
- logger?.debug("Discovered tools:", names);
1554
- return;
1555
- }
1556
-
1557
- // Fallback: extract tool names from "ToolName: description" pattern
1558
- const lines = content.split("\n");
1559
- const nonToolKeywords = new Set([
1560
- "parameters",
1561
- "description",
1562
- "result",
1563
- "error",
1564
- "content",
1565
- "type",
1566
- "properties",
1567
- "required",
1568
- ]);
1569
- for (const line of lines) {
1570
- const toolMatch = line.match(/^([\w-]+):/);
1571
- if (toolMatch && !nonToolKeywords.has(toolMatch[1]!.toLowerCase())) {
1572
- this.discoveredTools.add(toolMatch[1]!);
1573
- }
1574
- }
1575
- }
1576
1528
  }