@vinhnt-sdk/tools 0.1.2 → 0.1.3

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 (127) hide show
  1. package/dist/agent-provider.d.ts +30 -0
  2. package/dist/agent-provider.d.ts.map +1 -0
  3. package/dist/agent-provider.js +35 -0
  4. package/dist/agent-provider.js.map +1 -0
  5. package/dist/define-tool.d.ts +6 -1
  6. package/dist/define-tool.d.ts.map +1 -1
  7. package/dist/define-tool.js +8 -5
  8. package/dist/define-tool.js.map +1 -1
  9. package/dist/definitions.d.ts +12 -1
  10. package/dist/definitions.d.ts.map +1 -1
  11. package/dist/definitions.js +2 -1
  12. package/dist/definitions.js.map +1 -1
  13. package/dist/description-lint.d.ts +2 -0
  14. package/dist/description-lint.d.ts.map +1 -1
  15. package/dist/description-lint.js.map +1 -1
  16. package/dist/diff.d.ts +2 -0
  17. package/dist/diff.d.ts.map +1 -1
  18. package/dist/diff.js +1 -0
  19. package/dist/diff.js.map +1 -1
  20. package/dist/file-history.d.ts +4 -0
  21. package/dist/file-history.d.ts.map +1 -1
  22. package/dist/file-history.js +1 -0
  23. package/dist/file-history.js.map +1 -1
  24. package/dist/file-tools.d.ts +45 -12
  25. package/dist/file-tools.d.ts.map +1 -1
  26. package/dist/file-tools.js +104 -30
  27. package/dist/file-tools.js.map +1 -1
  28. package/dist/git-tools.d.ts +5 -1
  29. package/dist/git-tools.d.ts.map +1 -1
  30. package/dist/git-tools.js +7 -2
  31. package/dist/git-tools.js.map +1 -1
  32. package/dist/history-hook.d.ts +2 -1
  33. package/dist/history-hook.d.ts.map +1 -1
  34. package/dist/history-hook.js +4 -3
  35. package/dist/history-hook.js.map +1 -1
  36. package/dist/image-tools.d.ts +13 -3
  37. package/dist/image-tools.d.ts.map +1 -1
  38. package/dist/image-tools.js +62 -13
  39. package/dist/image-tools.js.map +1 -1
  40. package/dist/index.d.ts +38 -230
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +38 -131
  43. package/dist/index.js.map +1 -1
  44. package/dist/json-schema.d.ts +3 -0
  45. package/dist/json-schema.d.ts.map +1 -1
  46. package/dist/kill-tree.d.ts +36 -0
  47. package/dist/kill-tree.d.ts.map +1 -0
  48. package/dist/kill-tree.js +80 -0
  49. package/dist/kill-tree.js.map +1 -0
  50. package/dist/lazy-registry.d.ts +5 -3
  51. package/dist/lazy-registry.d.ts.map +1 -1
  52. package/dist/lazy-registry.js +1 -0
  53. package/dist/lazy-registry.js.map +1 -1
  54. package/dist/policy.d.ts +1 -0
  55. package/dist/policy.d.ts.map +1 -1
  56. package/dist/providers/builtin-provider.d.ts.map +1 -1
  57. package/dist/providers/builtin-provider.js +1 -4
  58. package/dist/providers/builtin-provider.js.map +1 -1
  59. package/dist/providers/file-loader.d.ts +20 -2
  60. package/dist/providers/file-loader.d.ts.map +1 -1
  61. package/dist/providers/file-loader.js +46 -6
  62. package/dist/providers/file-loader.js.map +1 -1
  63. package/dist/providers/index.d.ts +0 -4
  64. package/dist/providers/index.d.ts.map +1 -1
  65. package/dist/providers/index.js +0 -3
  66. package/dist/providers/index.js.map +1 -1
  67. package/dist/question-tool.d.ts +9 -3
  68. package/dist/question-tool.d.ts.map +1 -1
  69. package/dist/question-tool.js +5 -1
  70. package/dist/question-tool.js.map +1 -1
  71. package/dist/read-tracker.d.ts +10 -1
  72. package/dist/read-tracker.d.ts.map +1 -1
  73. package/dist/read-tracker.js +38 -8
  74. package/dist/read-tracker.js.map +1 -1
  75. package/dist/registry.d.ts +3 -0
  76. package/dist/registry.d.ts.map +1 -1
  77. package/dist/registry.js +8 -2
  78. package/dist/registry.js.map +1 -1
  79. package/dist/saga.d.ts +32 -0
  80. package/dist/saga.d.ts.map +1 -0
  81. package/dist/saga.js +65 -0
  82. package/dist/saga.js.map +1 -0
  83. package/dist/sandbox.d.ts +2 -0
  84. package/dist/sandbox.d.ts.map +1 -1
  85. package/dist/sandbox.js +10 -43
  86. package/dist/sandbox.js.map +1 -1
  87. package/dist/search-tools.d.ts +3 -1
  88. package/dist/search-tools.d.ts.map +1 -1
  89. package/dist/search-tools.js +7 -3
  90. package/dist/search-tools.js.map +1 -1
  91. package/dist/shell-parser.js +1 -0
  92. package/dist/shell-parser.js.map +1 -1
  93. package/dist/shell-tool.d.ts +11 -4
  94. package/dist/shell-tool.d.ts.map +1 -1
  95. package/dist/shell-tool.js +16 -9
  96. package/dist/shell-tool.js.map +1 -1
  97. package/dist/skill-provider.d.ts +21 -0
  98. package/dist/skill-provider.d.ts.map +1 -0
  99. package/dist/skill-provider.js +28 -0
  100. package/dist/skill-provider.js.map +1 -0
  101. package/dist/todo-tool.d.ts +2 -1
  102. package/dist/todo-tool.d.ts.map +1 -1
  103. package/dist/todo-tool.js +2 -1
  104. package/dist/todo-tool.js.map +1 -1
  105. package/dist/tool-sandbox.d.ts +19 -0
  106. package/dist/tool-sandbox.d.ts.map +1 -0
  107. package/dist/tool-sandbox.js +100 -0
  108. package/dist/tool-sandbox.js.map +1 -0
  109. package/dist/tool-search.d.ts +6 -3
  110. package/dist/tool-search.d.ts.map +1 -1
  111. package/dist/tool-search.js +2 -1
  112. package/dist/tool-search.js.map +1 -1
  113. package/dist/types.d.ts +2 -0
  114. package/dist/types.d.ts.map +1 -1
  115. package/dist/validate.d.ts +4 -1
  116. package/dist/validate.d.ts.map +1 -1
  117. package/dist/validate.js +3 -0
  118. package/dist/validate.js.map +1 -1
  119. package/dist/web-search-tool.d.ts +10 -5
  120. package/dist/web-search-tool.d.ts.map +1 -1
  121. package/dist/web-search-tool.js +5 -3
  122. package/dist/web-search-tool.js.map +1 -1
  123. package/dist/web-tools.d.ts +8 -3
  124. package/dist/web-tools.d.ts.map +1 -1
  125. package/dist/web-tools.js +5 -1
  126. package/dist/web-tools.js.map +1 -1
  127. package/package.json +10 -9
@@ -0,0 +1,28 @@
1
+ /**
2
+ * SkillToolProvider — Provides skill-related tools.
3
+ *
4
+ * This is a metadata provider that declares skill tools exist.
5
+ * Actual tool creation happens in the composition root to avoid circular dependencies.
6
+ */
7
+ export class SkillToolProvider {
8
+ id = "skills";
9
+ name = "Skill Tools";
10
+ description = "Skill management tools: load, search, create";
11
+ _tools = [];
12
+ get tools() {
13
+ return this._tools;
14
+ }
15
+ /**
16
+ * Add tools externally (called by composition root).
17
+ */
18
+ addTools(tools) {
19
+ this._tools.push(...tools);
20
+ }
21
+ register(_registry) {
22
+ // Registration is handled by ToolProviderRegistry
23
+ }
24
+ unregister(_registry) {
25
+ this._tools = [];
26
+ }
27
+ }
28
+ //# sourceMappingURL=skill-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-provider.js","sourceRoot":"","sources":["../src/skill-provider.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IACnB,EAAE,GAAG,QAAQ,CAAC;IACd,IAAI,GAAG,aAAa,CAAC;IACrB,WAAW,GAAG,8CAA8C,CAAC;IAE9D,MAAM,GAAqB,EAAE,CAAC;IAEtC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAuB;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,SAAuB;QAC9B,kDAAkD;IACpD,CAAC;IAED,UAAU,CAAC,SAAuB;QAChC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;CACF"}
@@ -1,2 +1,3 @@
1
- export declare function createTodoWriteTool(): import("./definitions.js").ToolDefinition<unknown, unknown>;
1
+ /** Create the `todowrite` tool managing a structured task list with priorities and status. */
2
+ export declare function createTodoWriteTool(): import("@vinhnt-sdk/tools").ToolDefinition<unknown, unknown>;
2
3
  //# sourceMappingURL=todo-tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"todo-tool.d.ts","sourceRoot":"","sources":["../src/todo-tool.ts"],"names":[],"mappings":"AAeA,wBAAgB,mBAAmB,gEAmHlC"}
1
+ {"version":3,"file":"todo-tool.d.ts","sourceRoot":"","sources":["../src/todo-tool.ts"],"names":[],"mappings":"AAeA,8FAA8F;AAC9F,wBAAgB,mBAAmB,iEAmHlC"}
package/dist/todo-tool.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import { z } from "zod";
2
- import { defineTool } from "./define-tool.js";
2
+ import { defineTool } from "@vinhnt-sdk/tools";
3
3
  const store = new Map();
4
4
  let nextId = 1;
5
+ /** Create the `todowrite` tool managing a structured task list with priorities and status. */
5
6
  export function createTodoWriteTool() {
6
7
  // The todo tool intentionally keeps loose runtime validation (returns
7
8
  // `{ error }` results instead of throwing), so its schema is untyped and
@@ -1 +1 @@
1
- {"version":3,"file":"todo-tool.js","sourceRoot":"","sources":["../src/todo-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"todo-tool.js","sourceRoot":"","sources":["../src/todo-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { ToolDefinition, ToolContext } from "@vinhnt-sdk/tools";
2
+ import { type SandboxConfig, type ProcessSandbox } from "@vinhnt-sdk/sandbox";
3
+ /**
4
+ * Create a process sandbox using the scopes wired into `@vinhnt-sdk/tools`
5
+ * (`host` and `process`). Unavailable scopes throw `SandboxUnavailableError`.
6
+ */
7
+ export declare function createSandbox(config: SandboxConfig): ProcessSandbox;
8
+ /** Create a minimal ToolContext from an AbortSignal (for backward compat) */
9
+ export declare function signalToToolContext(signal?: AbortSignal): ToolContext;
10
+ /**
11
+ * Executes tool definitions with a default timeout applied on top of the
12
+ * caller's abort signal, aborting the tool when either fires.
13
+ */
14
+ export declare class ToolSandbox {
15
+ private readonly config;
16
+ constructor(config?: SandboxConfig);
17
+ execute(tool: ToolDefinition, input: unknown, ctx: ToolContext): Promise<unknown>;
18
+ }
19
+ //# sourceMappingURL=tool-sandbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-sandbox.d.ts","sourceRoot":"","sources":["../src/tool-sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAA+E,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAc3J;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAEnE;AAED,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW,CAkBrE;AAED;;;GAGG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,GAAE,aAA4C;IAE3E,OAAO,CACX,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,OAAO,CAAC;CAcpB"}
@@ -0,0 +1,100 @@
1
+ import { createSandbox as baseCreateSandbox, createHostSandbox, createProcessSandbox } from "@vinhnt-sdk/sandbox";
2
+ /**
3
+ * Backends wired for `@vinhnt-sdk/tools` consumers.
4
+ *
5
+ * `host` and `process` are available out of the box. Scopes without a backend
6
+ * (e.g. `container`) are fail-closed: requesting them throws
7
+ * `SandboxUnavailableError` instead of silently downgrading.
8
+ */
9
+ const TOOLS_SANDBOX_BACKENDS = {
10
+ host: createHostSandbox,
11
+ process: createProcessSandbox,
12
+ };
13
+ /**
14
+ * Create a process sandbox using the scopes wired into `@vinhnt-sdk/tools`
15
+ * (`host` and `process`). Unavailable scopes throw `SandboxUnavailableError`.
16
+ */
17
+ export function createSandbox(config) {
18
+ return baseCreateSandbox(config, TOOLS_SANDBOX_BACKENDS);
19
+ }
20
+ /** Create a minimal ToolContext from an AbortSignal (for backward compat) */
21
+ export function signalToToolContext(signal) {
22
+ const ctrl = signal ? new AbortController() : new AbortController();
23
+ if (signal) {
24
+ signal.addEventListener("abort", () => ctrl.abort(signal.reason), { once: true });
25
+ }
26
+ return {
27
+ sessionId: "",
28
+ runId: "",
29
+ agentId: "",
30
+ agentName: "",
31
+ signal: ctrl.signal,
32
+ env: {},
33
+ // RV-41: fail-closed default — no gate in this loose context means a tool's
34
+ // `ask` must reject rather than self-approve.
35
+ ask: async () => "reject",
36
+ metadata: () => { },
37
+ setCompensation: () => { },
38
+ };
39
+ }
40
+ /**
41
+ * Executes tool definitions with a default timeout applied on top of the
42
+ * caller's abort signal, aborting the tool when either fires.
43
+ */
44
+ export class ToolSandbox {
45
+ config;
46
+ constructor(config = { defaultTimeoutMs: 30_000 }) {
47
+ this.config = config;
48
+ }
49
+ async execute(tool, input, ctx) {
50
+ const timeout = new AbortController();
51
+ const timer = setTimeout(() => timeout.abort(), this.config.defaultTimeoutMs);
52
+ const combinedSignal = combineSignals(ctx.signal, timeout.signal);
53
+ const augmentedCtx = { ...ctx, signal: combinedSignal };
54
+ try {
55
+ const result = await raceAbort(tool.execute(input, augmentedCtx), combinedSignal);
56
+ return result;
57
+ }
58
+ finally {
59
+ clearTimeout(timer);
60
+ }
61
+ }
62
+ }
63
+ // ---------------------------------------------------------------------------
64
+ // Internal helpers
65
+ // ---------------------------------------------------------------------------
66
+ function raceAbort(promise, signal) {
67
+ if (signal.aborted) {
68
+ return Promise.reject(new DOMException(signal.reason ?? "Aborted", "AbortError"));
69
+ }
70
+ return new Promise((resolve, reject) => {
71
+ const onAbort = () => {
72
+ reject(new DOMException(signal.reason ?? "Timed out", "AbortError"));
73
+ };
74
+ signal.addEventListener("abort", onAbort, { once: true });
75
+ promise.then((val) => {
76
+ signal.removeEventListener("abort", onAbort);
77
+ resolve(val);
78
+ }, (err) => {
79
+ signal.removeEventListener("abort", onAbort);
80
+ reject(err);
81
+ });
82
+ });
83
+ }
84
+ function combineSignals(...signals) {
85
+ const valid = signals.filter((s) => s !== undefined);
86
+ if (valid.length === 0)
87
+ return new AbortController().signal;
88
+ if (valid.length === 1)
89
+ return valid[0];
90
+ const controller = new AbortController();
91
+ for (const s of valid) {
92
+ if (s.aborted) {
93
+ controller.abort(s.reason);
94
+ return controller.signal;
95
+ }
96
+ s.addEventListener("abort", () => controller.abort(s.reason), { once: true });
97
+ }
98
+ return controller.signal;
99
+ }
100
+ //# sourceMappingURL=tool-sandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-sandbox.js","sourceRoot":"","sources":["../src/tool-sandbox.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,17 @@
1
- import type { ToolRegistry } from "./registry.js";
1
+ import type { ToolRegistry } from "@vinhnt-sdk/tools";
2
+ /** Input for the `search_tools` tool. */
2
3
  export interface ToolSearchInput {
3
4
  query: string;
4
- tags?: string[];
5
+ tags?: string[] | undefined;
5
6
  }
7
+ /** A found tool in `search_tools` results. */
6
8
  export interface ToolSearchResult {
7
9
  id: string;
8
10
  description: string;
9
11
  tags: readonly string[];
10
12
  }
11
- export declare function createToolSearchTool(registry: ToolRegistry): import("./definitions.js").ToolDefinition<ToolSearchInput, {
13
+ /** Create the `search_tools` tool that searches registered tools by query or tags. */
14
+ export declare function createToolSearchTool(registry: ToolRegistry): import("@vinhnt-sdk/tools").ToolDefinition<ToolSearchInput, {
12
15
  results: ToolSearchResult[];
13
16
  }>;
14
17
  //# sourceMappingURL=tool-search.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-search.d.ts","sourceRoot":"","sources":["../src/tool-search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAOlD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY;aACX,gBAAgB,EAAE;GAuCjE"}
1
+ {"version":3,"file":"tool-search.d.ts","sourceRoot":"","sources":["../src/tool-search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOtD,yCAAyC;AACzC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAC7B;AAED,8CAA8C;AAC9C,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB;AAED,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY;aACX,gBAAgB,EAAE;GAuCjE"}
@@ -1,9 +1,10 @@
1
1
  import { z } from "zod";
2
- import { defineTool } from "./define-tool.js";
2
+ import { defineTool } from "@vinhnt-sdk/tools";
3
3
  const ToolSearchSchema = z.object({
4
4
  query: z.string().min(1),
5
5
  tags: z.array(z.string()).optional(),
6
6
  });
7
+ /** Create the `search_tools` tool that searches registered tools by query or tags. */
7
8
  export function createToolSearchTool(registry) {
8
9
  return defineTool({
9
10
  name: "search_tools",
@@ -1 +1 @@
1
- {"version":3,"file":"tool-search.js","sourceRoot":"","sources":["../src/tool-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAaH,MAAM,UAAU,oBAAoB,CAAC,QAAsB;IACzD,OAAO,UAAU,CAAmD;QAClE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,iFAAiF;QAC9F,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,gBAAgB;QACvB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2DAA2D,EAAE;gBACnG,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE;aAClF;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;QACD,KAAK,CAAC,OAAO,CAAC,KAAK;YACjB,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAExC,MAAM,OAAO,GAAG,QAAQ;iBACrB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBACf,MAAM,YAAY,GAChB,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACrC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACjD,IAAI,CAAC,YAAY;oBAAE,OAAO,KAAK,CAAC;gBAChC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;oBACjC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1D,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;iBACZ,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACd,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC,CAAC;YAEN,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,CAAC;KACF,CAAC,CAAC,YAAY,EAAE,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"tool-search.js","sourceRoot":"","sources":["../src/tool-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAeH,sFAAsF;AACtF,MAAM,UAAU,oBAAoB,CAAC,QAAsB;IACzD,OAAO,UAAU,CAAmD;QAClE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,iFAAiF;QAC9F,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,gBAAgB;QACvB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,2DAA2D,EAAE;gBACnG,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE;aAClF;YACD,QAAQ,EAAE,CAAC,OAAO,CAAC;SACpB;QACD,KAAK,CAAC,OAAO,CAAC,KAAK;YACjB,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAExC,MAAM,OAAO,GAAG,QAAQ;iBACrB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBACf,MAAM,YAAY,GAChB,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACrC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACjD,IAAI,CAAC,YAAY;oBAAE,OAAO,KAAK,CAAC;gBAChC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;oBACjC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1D,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;iBACZ,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACd,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC,CAAC;YAEN,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,CAAC;KACF,CAAC,CAAC,YAAY,EAAE,CAAC;AACpB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { ToolDefinition } from "./definitions.js";
2
+ /** Result of a tool execution. */
2
3
  export type ToolExecutionResult = {
3
4
  status: "success";
4
5
  output: unknown;
@@ -9,6 +10,7 @@ export type ToolExecutionResult = {
9
10
  status: "error";
10
11
  error: string;
11
12
  };
13
+ /** Lifecycle hook that can intercept a tool call before and after execution. */
12
14
  export interface ToolHook {
13
15
  readonly id: string;
14
16
  pre?(params: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAC3B;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACtC;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GACnE,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,mBAAmB,CAAA;KAAE,GACjG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;CACvC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,kCAAkC;AAClC,MAAM,MAAM,mBAAmB,GAC3B;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACtC;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,gFAAgF;AAChF,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GACnE,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAC1D,IAAI,CAAC,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,mBAAmB,CAAA;KAAE,GACjG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;CACvC"}
@@ -1,11 +1,14 @@
1
- import { z } from "zod";
1
+ import type { z } from "zod";
2
2
  import { ToolInputError as SchemaToolInputError } from "@vinhnt-sdk/schema";
3
+ /** Thrown when tool input fails Zod validation. */
3
4
  export declare class ToolInputError extends SchemaToolInputError {
4
5
  readonly toolId: string;
5
6
  readonly code = "TOOL_INPUT_ERROR";
6
7
  readonly retryable = false;
7
8
  constructor(toolId: string, issues: z.ZodIssue[]);
8
9
  }
10
+ /** Validate tool input against a Zod schema, throwing {@link ToolInputError} on failure. */
9
11
  export declare function validateInput<T>(toolId: string, schema: z.ZodSchema<T>, input: unknown): T;
12
+ /** Create a reusable validator bound to a tool id. */
10
13
  export declare function createValidator<T>(toolId: string, schema: z.ZodSchema<T>): (input: unknown) => T;
11
14
  //# sourceMappingURL=validate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAY,MAAM,KAAK,CAAC;AAClC,OAAO,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,qBAAa,cAAe,SAAQ,oBAAoB;aAKpC,MAAM,EAAE,MAAM;IAJhC,SAAgB,IAAI,sBAAsB;IAC1C,SAAgB,SAAS,SAAS;gBAGhB,MAAM,EAAE,MAAM,EAC9B,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAMvB;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAS1F;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,CAEhG"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAC,MAAM,KAAK,CAAC;AAE5B,OAAO,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,mDAAmD;AACnD,qBAAa,cAAe,SAAQ,oBAAoB;aAKpC,MAAM,EAAE,MAAM;IAJhC,SAAyB,IAAI,sBAAsB;IACnD,SAAyB,SAAS,SAAS;gBAGzB,MAAM,EAAE,MAAM,EAC9B,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAMvB;AAED,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAS1F;AAED,sDAAsD;AACtD,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,CAEhG"}
package/dist/validate.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { ZodError } from "zod";
2
2
  import { ToolInputError as SchemaToolInputError } from "@vinhnt-sdk/schema";
3
+ /** Thrown when tool input fails Zod validation. */
3
4
  export class ToolInputError extends SchemaToolInputError {
4
5
  toolId;
5
6
  code = "TOOL_INPUT_ERROR";
@@ -11,6 +12,7 @@ export class ToolInputError extends SchemaToolInputError {
11
12
  this.name = "ToolInputError";
12
13
  }
13
14
  }
15
+ /** Validate tool input against a Zod schema, throwing {@link ToolInputError} on failure. */
14
16
  export function validateInput(toolId, schema, input) {
15
17
  try {
16
18
  return schema.parse(input);
@@ -22,6 +24,7 @@ export function validateInput(toolId, schema, input) {
22
24
  throw err;
23
25
  }
24
26
  }
27
+ /** Create a reusable validator bound to a tool id. */
25
28
  export function createValidator(toolId, schema) {
26
29
  return (input) => validateInput(toolId, schema, input);
27
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,QAAQ,EAAE,MAAM,KAAK,CAAC;AAClC,OAAO,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,MAAM,OAAO,cAAe,SAAQ,oBAAoB;IAKpC;IAJF,IAAI,GAAG,kBAAkB,CAAC;IAC1B,SAAS,GAAG,KAAK,CAAC;IAElC,YACkB,MAAc,EAC9B,MAAoB;QAEpB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClF,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAJP,WAAM,GAAN,MAAM,CAAQ;QAK9B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAAI,MAAc,EAAE,MAAsB,EAAE,KAAc;IACrF,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAI,MAAc,EAAE,MAAsB;IACvE,OAAO,CAAC,KAAc,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC/B,OAAO,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE5E,mDAAmD;AACnD,MAAM,OAAO,cAAe,SAAQ,oBAAoB;IAKpC;IAJO,IAAI,GAAG,kBAAkB,CAAC;IAC1B,SAAS,GAAG,KAAK,CAAC;IAE3C,YACkB,MAAc,EAC9B,MAAoB;QAEpB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClF,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAJP,WAAM,GAAN,MAAM,CAAQ;QAK9B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,4FAA4F;AAC5F,MAAM,UAAU,aAAa,CAAI,MAAc,EAAE,MAAsB,EAAE,KAAc;IACrF,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,eAAe,CAAI,MAAc,EAAE,MAAsB;IACvE,OAAO,CAAC,KAAc,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAClE,CAAC"}
@@ -1,9 +1,11 @@
1
+ /** A single web search result. */
1
2
  export interface SearchResult {
2
3
  title: string;
3
4
  url: string;
4
5
  content: string;
5
6
  score: number;
6
7
  }
8
+ /** Response of a web search: ranked results plus an optional synthesized answer. */
7
9
  export interface WebSearchResponse {
8
10
  results: SearchResult[];
9
11
  answer?: string;
@@ -19,6 +21,7 @@ export interface WebSearchProvider {
19
21
  searchDepth?: "basic" | "advanced";
20
22
  }): Promise<WebSearchResponse>;
21
23
  }
24
+ /** Configuration for the {@link createWebSearchTool} tool. */
22
25
  export interface WebSearchToolConfig {
23
26
  /**
24
27
  * Web search provider — injectable dependency.
@@ -35,6 +38,7 @@ export interface WebSearchToolConfig {
35
38
  * User override được qua baseUrl option.
36
39
  */
37
40
  export declare const DEFAULT_TAVILY_URL = "https://api.tavily.com/search";
41
+ /** Default Serper (Google Search) API URL. */
38
42
  export declare const DEFAULT_SERPER_URL = "https://google.serper.dev/search";
39
43
  /**
40
44
  * Tavily search provider adapter — convenience only.
@@ -72,13 +76,14 @@ export declare class SerperSearchProvider implements WebSearchProvider {
72
76
  numResults?: number;
73
77
  }): Promise<WebSearchResponse>;
74
78
  }
75
- export declare function createWebSearchTool(config: WebSearchToolConfig): import("./definitions.js").ToolDefinition<{
79
+ /** Create the `web_search` tool backed by a {@link WebSearchProvider}. */
80
+ export declare function createWebSearchTool(config: WebSearchToolConfig): import("@vinhnt-sdk/tools").ToolDefinition<{
76
81
  query: string;
77
- numResults?: number;
78
- searchDepth?: "basic" | "advanced";
82
+ numResults?: number | undefined;
83
+ searchDepth?: "basic" | "advanced" | undefined;
79
84
  }, {
80
85
  results: SearchResult[];
81
- answer?: string;
82
- error?: string;
86
+ answer?: string | undefined;
87
+ error?: string | undefined;
83
88
  }>;
84
89
  //# sourceMappingURL=web-search-tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-search-tool.d.ts","sourceRoot":"","sources":["../src/web-search-tool.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;KACpC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,kCAAkC,CAAC;AAClE,eAAO,MAAM,kBAAkB,qCAAqC,CAAC;AAErE;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,iBAAiB;IAC5D,IAAI,SAAY;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAM9E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACpC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;KACpC,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAmB/B;AAED;;GAEG;AACH,qBAAa,oBAAqB,YAAW,iBAAiB;IAC5D,IAAI,SAAY;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAM9E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACpC,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA4B/B;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB;WAClC,MAAM;iBAAe,MAAM;kBAAgB,OAAO,GAAG,UAAU;;aAC/E,YAAY,EAAE;aACd,MAAM;YACP,MAAM;GA4CjB"}
1
+ {"version":3,"file":"web-search-tool.d.ts","sourceRoot":"","sources":["../src/web-search-tool.ts"],"names":[],"mappings":"AAaA,kCAAkC;AAClC,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,oFAAoF;AACpF,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;KACpC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChC;AAED,8DAA8D;AAC9D,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,kCAAkC,CAAC;AAClE,8CAA8C;AAC9C,eAAO,MAAM,kBAAkB,qCAAqC,CAAC;AAErE;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,iBAAiB;IAC5D,IAAI,SAAY;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAM9E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACpC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;KACpC,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAmB/B;AAED;;GAEG;AACH,qBAAa,oBAAqB,YAAW,iBAAiB;IAC5D,IAAI,SAAY;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAM9E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACpC,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CA4B/B;AAED,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB;WAClC,MAAM;iBAAe,MAAM,GAAG,SAAS;kBAAgB,OAAO,GAAG,UAAU,GAAG,SAAS;;aACvG,YAAY,EAAE;aACd,MAAM,GAAG,SAAS;YACnB,MAAM,GAAG,SAAS;GA4C7B"}
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { defineTool } from "./define-tool.js";
2
+ import { defineTool } from "@vinhnt-sdk/tools";
3
3
  import { NetworkError } from "@vinhnt-sdk/schema";
4
4
  const WebSearchSchema = z.object({
5
5
  query: z.string().min(1),
@@ -14,6 +14,7 @@ const WebSearchSchema = z.object({
14
14
  * User override được qua baseUrl option.
15
15
  */
16
16
  export const DEFAULT_TAVILY_URL = "https://api.tavily.com/search";
17
+ /** Default Serper (Google Search) API URL. */
17
18
  export const DEFAULT_SERPER_URL = "https://google.serper.dev/search";
18
19
  /**
19
20
  * Tavily search provider adapter — convenience only.
@@ -87,6 +88,7 @@ export class SerperSearchProvider {
87
88
  };
88
89
  }
89
90
  }
91
+ /** Create the `web_search` tool backed by a {@link WebSearchProvider}. */
90
92
  export function createWebSearchTool(config) {
91
93
  return defineTool({
92
94
  name: "web_search",
@@ -107,8 +109,8 @@ export function createWebSearchTool(config) {
107
109
  const timeout = setTimeout(() => controller.abort(), config.timeout ?? 15000);
108
110
  try {
109
111
  const data = await config.provider.search(v.query, {
110
- numResults: v.numResults ?? config.defaultNumResults,
111
- searchDepth: v.searchDepth,
112
+ numResults: v.numResults ?? config.defaultNumResults ?? 5,
113
+ ...(v.searchDepth !== undefined ? { searchDepth: v.searchDepth } : {}),
112
114
  });
113
115
  return {
114
116
  results: data.results.map((r) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"web-search-tool.js","sourceRoot":"","sources":["../src/web-search-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-search-tool.js","sourceRoot":"","sources":["../src/web-search-tool.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,15 @@
1
+ /** Configuration for the {@link createWebFetchTool} tool. */
1
2
  export interface WebFetchToolConfig {
2
3
  /** Maximum response size in bytes (default: 524288) */
3
4
  maxResponseSize?: number;
4
5
  }
5
- export declare function createWebFetchTool(config?: WebFetchToolConfig): import("./definitions.js").ToolDefinition<{
6
+ /**
7
+ * Create the `web_fetch` tool that fetches a URL and returns its content as
8
+ * text (HTML is stripped unless `format: "html"`), truncated to the max size.
9
+ */
10
+ export declare function createWebFetchTool(config?: WebFetchToolConfig): import("@vinhnt-sdk/tools").ToolDefinition<{
6
11
  url: string;
7
- format?: "markdown" | "text" | "html";
8
- timeout?: number;
12
+ format?: "markdown" | "text" | "html" | undefined;
13
+ timeout?: number | undefined;
9
14
  }, string>;
10
15
  //# sourceMappingURL=web-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-tools.d.ts","sourceRoot":"","sources":["../src/web-tools.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,kBAAkB;SACnC,MAAM;aAAW,UAAU,GAAG,MAAM,GAAG,MAAM;cAAY,MAAM;WAoCzF"}
1
+ {"version":3,"file":"web-tools.d.ts","sourceRoot":"","sources":["../src/web-tools.ts"],"names":[],"mappings":"AAWA,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,kBAAkB;SACnC,MAAM;aAAW,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS;cAAY,MAAM,GAAG,SAAS;WAoCjH"}
package/dist/web-tools.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { defineTool } from "./define-tool.js";
2
+ import { defineTool } from "@vinhnt-sdk/tools";
3
3
  import { sanitizeForLLM } from "@vinhnt-sdk/security";
4
4
  import { NetworkError } from "@vinhnt-sdk/schema";
5
5
  const WebFetchSchema = z.object({
@@ -7,6 +7,10 @@ const WebFetchSchema = z.object({
7
7
  format: z.enum(["markdown", "text", "html"]).optional(),
8
8
  timeout: z.number().positive().optional(),
9
9
  });
10
+ /**
11
+ * Create the `web_fetch` tool that fetches a URL and returns its content as
12
+ * text (HTML is stripped unless `format: "html"`), truncated to the max size.
13
+ */
10
14
  export function createWebFetchTool(config) {
11
15
  return defineTool({
12
16
  name: "web_fetch",
@@ -1 +1 @@
1
- {"version":3,"file":"web-tools.js","sourceRoot":"","sources":["../src/web-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-tools.js","sourceRoot":"","sources":["../src/web-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAQH;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA2B;IAC5D,OAAO,UAAU,CAA2G;QAC1H,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,4DAA4D;QACzE,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,cAAc;QACrB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;gBACxD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,iCAAiC,EAAE;gBAClG,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gCAAgC,EAAE;aAC3E;YACD,QAAQ,EAAE,CAAC,KAAK,CAAC;SAClB;QACD,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI;YACnB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;YACzE,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;oBAClC,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,OAAO,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE;iBAC3C,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,IAAI,YAAY,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC5E,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,MAAM,EAAE,eAAe,IAAI,OAAO,CAAC;gBACnD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO;oBAC/B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,oCAAoC,OAAO,SAAS;oBAC/E,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACjD,OAAO,cAAc,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAC1C,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;KACF,CAAC,CAAC,YAAY,EAAE,CAAC;AACpB,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,IAAI;SACR,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC;SAChD,OAAO,CAAC,iCAAiC,EAAE,EAAE,CAAC;SAC9C,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;SAC1B,IAAI,EAAE,CAAC;AACZ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vinhnt-sdk/tools",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Built-in tools for VNT Agent — file, shell, git, web, search, image, and more",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -9,8 +9,10 @@
9
9
  "exports": {
10
10
  ".": {
11
11
  "types": "./dist/index.d.ts",
12
- "import": "./dist/index.js"
13
- }
12
+ "import": "./dist/index.js",
13
+ "default": "./dist/index.js"
14
+ },
15
+ "./package.json": "./package.json"
14
16
  },
15
17
  "files": [
16
18
  "dist",
@@ -44,16 +46,15 @@
44
46
  },
45
47
  "dependencies": {
46
48
  "zod": "^4.4.3",
47
- "@vinhnt-sdk/schema": "0.1.2",
48
- "@vinhnt-sdk/security": "0.1.2"
49
- },
50
- "peerDependencies": {
51
- "@vinhnt-sdk/core": "0.1.2"
49
+ "@vinhnt-sdk/sandbox": "0.1.3",
50
+ "@vinhnt-sdk/schema": "0.1.3",
51
+ "@vinhnt-sdk/security": "0.1.3"
52
52
  },
53
53
  "scripts": {
54
54
  "build": "tsc -b",
55
55
  "typecheck": "tsc --noEmit",
56
56
  "clean": "node -e \"try{require('fs').rmSync('dist',{recursive:true,force:true})}catch(e){}\" && node -e \"try{require('fs').rmSync('tsconfig.tsbuildinfo',{force:true})}catch(e){}\"",
57
- "test": "vitest run"
57
+ "test": "vitest run",
58
+ "lint": "eslint ."
58
59
  }
59
60
  }