@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,30 @@
1
+ import type { ToolProvider, ToolDefinition, ToolRegistry } from "@vinhnt-sdk/tools";
2
+ /**
3
+ * Minimal kernel interface for tool registration.
4
+ * Avoids circular dependency with @vinhnt-sdk/core.
5
+ */
6
+ export interface KernelLike {
7
+ registerTool(tool: ToolDefinition): void;
8
+ }
9
+ /**
10
+ * AgentToolProvider — Provides agent-related tools.
11
+ *
12
+ * Tools are lazily created after the kernel is initialized
13
+ * to avoid circular dependencies.
14
+ */
15
+ export declare class AgentToolProvider implements ToolProvider {
16
+ readonly id = "agents";
17
+ readonly name = "Agent Tools";
18
+ readonly description = "Agent management tools: spawn, delegate, list, create";
19
+ private kernel;
20
+ private _tools;
21
+ /**
22
+ * Set the kernel instance (call after kernel is created).
23
+ */
24
+ setKernel(kernel: KernelLike): void;
25
+ get tools(): ToolDefinition[];
26
+ private createTools;
27
+ register(_registry: ToolRegistry): void;
28
+ unregister(_registry: ToolRegistry): void;
29
+ }
30
+ //# sourceMappingURL=agent-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-provider.d.ts","sourceRoot":"","sources":["../src/agent-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEpF;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;CAC1C;AAED;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD,QAAQ,CAAC,EAAE,YAAY;IACvB,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,WAAW,2DAA2D;IAE/E,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,MAAM,CAAwB;IAEtC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAKnC,IAAI,KAAK,IAAI,cAAc,EAAE,CAE5B;IAED,OAAO,CAAC,WAAW;IAKnB,QAAQ,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;IAIvC,UAAU,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;CAG1C"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * AgentToolProvider — Provides agent-related tools.
3
+ *
4
+ * Tools are lazily created after the kernel is initialized
5
+ * to avoid circular dependencies.
6
+ */
7
+ export class AgentToolProvider {
8
+ id = "agents";
9
+ name = "Agent Tools";
10
+ description = "Agent management tools: spawn, delegate, list, create";
11
+ kernel = null;
12
+ _tools = [];
13
+ /**
14
+ * Set the kernel instance (call after kernel is created).
15
+ */
16
+ setKernel(kernel) {
17
+ this.kernel = kernel;
18
+ this._tools = this.createTools();
19
+ }
20
+ get tools() {
21
+ return this._tools;
22
+ }
23
+ createTools() {
24
+ if (!this.kernel)
25
+ return [];
26
+ return [];
27
+ }
28
+ register(_registry) {
29
+ // Registration is handled by ToolProviderRegistry
30
+ }
31
+ unregister(_registry) {
32
+ this._tools = [];
33
+ }
34
+ }
35
+ //# sourceMappingURL=agent-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-provider.js","sourceRoot":"","sources":["../src/agent-provider.ts"],"names":[],"mappings":"AAUA;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IACnB,EAAE,GAAG,QAAQ,CAAC;IACd,IAAI,GAAG,aAAa,CAAC;IACrB,WAAW,GAAG,uDAAuD,CAAC;IAEvE,MAAM,GAAsB,IAAI,CAAC;IACjC,MAAM,GAAqB,EAAE,CAAC;IAEtC;;OAEG;IACH,SAAS,CAAC,MAAkB;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,QAAQ,CAAC,SAAuB;QAC9B,kDAAkD;IACpD,CAAC;IAED,UAAU,CAAC,SAAuB;QAChC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { z } from "zod";
1
+ import type { z } from "zod";
2
2
  import type { ToolDefinition, ToolContext, ToolRisk } from "./definitions.js";
3
3
  import type { NestedJsonSchema } from "./json-schema.js";
4
4
  /**
@@ -21,24 +21,29 @@ export interface ToolConfig<TInput = unknown, TOutput = unknown> {
21
21
  timeoutMs?: number;
22
22
  /** Permission action key for the gate (e.g. "edit", "shell"). Optional; defaults to risk. */
23
23
  permissionAction?: string;
24
+ /** If true, tool prompts its own permission via `ctx.ask` (kernel gate defers). */
25
+ selfApproving?: boolean;
24
26
  /** Optional LLM-facing JSON Schema override (e.g. to advertise `path` aliases). */
25
27
  jsonSchema?: NestedJsonSchema;
26
28
  /** Coerce raw model-agnostic input before validation (e.g. snake_case aliases). */
27
29
  normalize?(raw: unknown): unknown;
28
30
  execute(input: TInput, ctx: ToolContext): Promise<TOutput>;
29
31
  }
32
+ /** A schema-first tool: owns its validation schema and derives its definition. */
30
33
  export interface Tool<TInput = unknown, TOutput = unknown> {
31
34
  readonly name: string;
32
35
  readonly description: string;
33
36
  readonly risk: ToolRisk;
34
37
  readonly timeoutMs?: number;
35
38
  readonly permissionAction?: string;
39
+ readonly selfApproving?: boolean;
36
40
  readonly input: z.ZodType<TInput>;
37
41
  /** Derive the provider-facing ToolDefinition (registers as `name`). */
38
42
  toDefinition(): ToolDefinition<TInput, TOutput>;
39
43
  }
40
44
  /** Map a Zod schema to the codebase's `NestedJsonSchema` shape (best effort). */
41
45
  export declare function zodSchemaToNestedJsonSchema(schema: z.ZodTypeAny): NestedJsonSchema | undefined;
46
+ /** Build a schema-first {@link Tool} from its config. */
42
47
  export declare function defineTool<TInput = unknown, TOutput = unknown>(config: ToolConfig<TInput, TOutput>): Tool<TInput, TOutput>;
43
48
  /** Convenience: build a ToolDefinition directly from a ToolConfig. */
44
49
  export declare function toolToDefinition<TInput = unknown, TOutput = unknown>(config: ToolConfig<TInput, TOutput>): ToolDefinition<TInput, TOutput>;
@@ -1 +1 @@
1
- {"version":3,"file":"define-tool.d.ts","sourceRoot":"","sources":["../src/define-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzD;;;;;;GAMG;AAEH,MAAM,WAAW,UAAU,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IAC7D,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,yEAAyE;IACzE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,yCAAyC;IACzC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mFAAmF;IACnF,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,mFAAmF;IACnF,SAAS,CAAC,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC;IAClC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,uEAAuE;IACvE,YAAY,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjD;AAID,iFAAiF;AACjF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAI9F;AAgFD,wBAAgB,UAAU,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EAC5D,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CA8BvB;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EAClE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAEjC"}
1
+ {"version":3,"file":"define-tool.d.ts","sourceRoot":"","sources":["../src/define-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzD;;;;;;GAMG;AAEH,MAAM,WAAW,UAAU,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IAC7D,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,yEAAyE;IACzE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,yCAAyC;IACzC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6FAA6F;IAC7F,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mFAAmF;IACnF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mFAAmF;IACnF,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,mFAAmF;IACnF,SAAS,CAAC,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC;IAClC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5D;AAED,kFAAkF;AAClF,MAAM,WAAW,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,uEAAuE;IACvE,YAAY,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjD;AAID,iFAAiF;AACjF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAI9F;AAgFD,yDAAyD;AACzD,wBAAgB,UAAU,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EAC5D,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAgCvB;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EAClE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAEjC"}
@@ -82,13 +82,15 @@ function convert(schema) {
82
82
  return base;
83
83
  }
84
84
  }
85
+ /** Build a schema-first {@link Tool} from its config. */
85
86
  export function defineTool(config) {
86
87
  return {
87
88
  name: config.name,
88
89
  description: config.description,
89
90
  risk: config.risk,
90
- timeoutMs: config.timeoutMs,
91
- permissionAction: config.permissionAction,
91
+ ...(config.timeoutMs !== undefined ? { timeoutMs: config.timeoutMs } : {}),
92
+ ...(config.permissionAction !== undefined ? { permissionAction: config.permissionAction } : {}),
93
+ ...(config.selfApproving !== undefined ? { selfApproving: config.selfApproving } : {}),
92
94
  input: config.input,
93
95
  toDefinition() {
94
96
  return {
@@ -96,10 +98,11 @@ export function defineTool(config) {
96
98
  description: config.description,
97
99
  risk: config.risk,
98
100
  inputSchema: config.jsonSchema ?? zodSchemaToNestedJsonSchema(config.input),
99
- timeoutMs: config.timeoutMs,
100
- permissionAction: config.permissionAction,
101
+ ...(config.timeoutMs !== undefined ? { timeoutMs: config.timeoutMs } : {}),
102
+ ...(config.permissionAction !== undefined ? { permissionAction: config.permissionAction } : {}),
103
+ ...(config.selfApproving !== undefined ? { selfApproving: config.selfApproving } : {}),
101
104
  inputZodSchema: config.input,
102
- outputZodSchema: config.output,
105
+ ...(config.output !== undefined ? { outputZodSchema: config.output } : {}),
103
106
  async execute(raw, ctx) {
104
107
  const normalized = config.normalize ? config.normalize(raw) : raw;
105
108
  const input = validateInput(config.name, config.input, normalized);
@@ -1 +1 @@
1
- {"version":3,"file":"define-tool.js","sourceRoot":"","sources":["../src/define-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"define-tool.js","sourceRoot":"","sources":["../src/define-tool.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,11 @@ import type { ToolDefinitionLike } from "@vinhnt-sdk/schema";
3
3
  import type { ToolContext } from "./context.js";
4
4
  export type { ToolContext };
5
5
  import type { NestedJsonSchema } from "./json-schema.js";
6
- export type ToolRisk = "read" | "write" | "destructive" | "external";
6
+ /** Known tool risk levels. Use as reference, not exhaustive. */
7
+ export declare const KNOWN_TOOL_RISKS: readonly ["read", "write", "destructive", "external"];
8
+ /** Tool risk level — open string for extensibility. */
9
+ export type ToolRisk = string;
10
+ /** Provider-facing tool definition: schema, risk and execute. */
7
11
  export interface ToolDefinition<TInput = unknown, TOutput = unknown> extends ToolDefinitionLike {
8
12
  readonly inputSchema?: NestedJsonSchema | undefined;
9
13
  readonly risk: ToolRisk;
@@ -11,6 +15,12 @@ export interface ToolDefinition<TInput = unknown, TOutput = unknown> extends Too
11
15
  readonly timeoutMs?: number;
12
16
  /** Permission action key for the gate (e.g. "edit", "shell"). Optional; defaults to risk. */
13
17
  readonly permissionAction?: string;
18
+ /**
19
+ * If true, the tool prompts its own permission dialog via `ctx.ask` during
20
+ * execute (with `savePatterns`). The kernel gate must NOT double-approve —
21
+ * it defers to the tool's single ask and only checks allow/deny rules.
22
+ */
23
+ readonly selfApproving?: boolean;
14
24
  /** Zod schema for runtime input validation (carried from defineTool). */
15
25
  readonly inputZodSchema?: z.ZodType<TInput>;
16
26
  /** Zod schema for runtime output validation (carried from defineTool). */
@@ -19,6 +29,7 @@ export interface ToolDefinition<TInput = unknown, TOutput = unknown> extends Too
19
29
  readonly deferred?: boolean;
20
30
  /** Tags for tool search (e.g. ["file", "read", "search"]). */
21
31
  readonly tags?: readonly string[];
32
+ readonly metadata?: Record<string, unknown>;
22
33
  execute(input: TInput, ctx: ToolContext): Promise<TOutput>;
23
34
  }
24
35
  //# sourceMappingURL=definitions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,GAAG,UAAU,CAAC;AAErE,MAAM,WAAW,cAAc,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,CAAE,SAAQ,kBAAkB;IAC7F,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,6FAA6F;IAC7F,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,yEAAyE;IACzE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,0EAA0E;IAC1E,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5D"}
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,gEAAgE;AAChE,eAAO,MAAM,gBAAgB,uDAAwD,CAAC;AAEtF,uDAAuD;AACvD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,iEAAiE;AACjE,MAAM,WAAW,cAAc,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,CAAE,SAAQ,kBAAkB;IAC7F,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,6FAA6F;IAC7F,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,yEAAyE;IACzE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,0EAA0E;IAC1E,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5D"}
@@ -1,2 +1,3 @@
1
- export {};
1
+ /** Known tool risk levels. Use as reference, not exhaustive. */
2
+ export const KNOWN_TOOL_RISKS = ["read", "write", "destructive", "external"];
2
3
  //# sourceMappingURL=definitions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":"AAMA,gEAAgE;AAChE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,CAAU,CAAC"}
@@ -6,10 +6,12 @@
6
6
  * CI can catch them early, mirroring API-doc review practices.
7
7
  */
8
8
  export type DescriptionIssueCode = "empty" | "too-short" | "no-verb" | "vague" | "placeholder" | "too-long";
9
+ /** A single description-lint problem found. */
9
10
  export interface ToolDescriptionIssue {
10
11
  readonly code: DescriptionIssueCode;
11
12
  readonly message: string;
12
13
  }
14
+ /** Lint report for one tool description. */
13
15
  export interface ToolDescriptionReport {
14
16
  readonly tool: string;
15
17
  readonly description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"description-lint.d.ts","sourceRoot":"","sources":["../src/description-lint.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,GAAG,UAAU,CAAC;AAE5G,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAClD;AAwCD,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,qBAAqB,CA6C5F;AAED,4EAA4E;AAC5E,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EAAE,GAC1D,qBAAqB,EAAE,CAIzB"}
1
+ {"version":3,"file":"description-lint.d.ts","sourceRoot":"","sources":["../src/description-lint.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,GAAG,UAAU,CAAC;AAE5G,+CAA+C;AAC/C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,4CAA4C;AAC5C,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAClD;AAwCD,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,qBAAqB,CA6C5F;AAED,4EAA4E;AAC5E,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EAAE,GAC1D,qBAAqB,EAAE,CAIzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"description-lint.js","sourceRoot":"","sources":["../src/description-lint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"description-lint.js","sourceRoot":"","sources":["../src/description-lint.ts"],"names":[],"mappings":"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"}
package/dist/diff.d.ts CHANGED
@@ -1,7 +1,9 @@
1
+ /** Line-level unified diff with add/remove counts. */
1
2
  export interface UnifiedDiff {
2
3
  readonly diff: string;
3
4
  readonly additions: number;
4
5
  readonly removals: number;
5
6
  }
7
+ /** Generate a line-level diff between old and new content for a file. */
6
8
  export declare function generateDiff(filePath: string, oldContent: string, newContent: string): UnifiedDiff;
7
9
  //# sourceMappingURL=diff.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,WAAW,CA6Bb"}
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,WAAW,CA6Bb"}
package/dist/diff.js CHANGED
@@ -1,3 +1,4 @@
1
+ /** Generate a line-level diff between old and new content for a file. */
1
2
  export function generateDiff(filePath, oldContent, newContent) {
2
3
  const oldLines = oldContent.split("\n");
3
4
  const newLines = newContent.split("\n");
package/dist/diff.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,YAAY,CAC1B,QAAgB,EAChB,UAAkB,EAClB,UAAkB;IAElB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE1D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;gBACrC,QAAQ,EAAE,CAAC;YACb,CAAC;YACD,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;gBACrC,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;IACpC,MAAM,CAAC,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;IAEpC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AAOA,yEAAyE;AACzE,MAAM,UAAU,YAAY,CAC1B,QAAgB,EAChB,UAAkB,EAClB,UAAkB;IAElB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE1D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvD,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;gBACrC,QAAQ,EAAE,CAAC;YACb,CAAC;YACD,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;gBACrC,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;IACpC,MAAM,CAAC,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;IAEpC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAC1D,CAAC"}
@@ -1,3 +1,4 @@
1
+ /** A recorded file change (before/after content) attributed to a session and tool. */
1
2
  export interface FileVersion {
2
3
  readonly filePath: string;
3
4
  readonly sessionId: string;
@@ -6,6 +7,7 @@ export interface FileVersion {
6
7
  readonly timestamp: number;
7
8
  readonly toolName: string;
8
9
  }
10
+ /** A single undo/redo step referencing the file content swap. */
9
11
  export interface UndoEntry {
10
12
  readonly filePath: string;
11
13
  readonly originalContent: string;
@@ -14,6 +16,7 @@ export interface UndoEntry {
14
16
  readonly timestamp: number;
15
17
  readonly versionId: number;
16
18
  }
19
+ /** Versioned file history contract with undo/redo and rollback support. */
17
20
  export interface FileHistory {
18
21
  recordVersion(version: Omit<FileVersion, "timestamp"> & {
19
22
  timestamp?: number;
@@ -25,6 +28,7 @@ export interface FileHistory {
25
28
  undo(): Promise<UndoEntry | null>;
26
29
  redo(): Promise<UndoEntry | null>;
27
30
  }
31
+ /** In-memory {@link FileHistory} keeping an ordered version log plus undo/redo stacks. */
28
32
  export declare class InMemoryFileHistory implements FileHistory {
29
33
  private versions;
30
34
  private undoStack;
@@ -1 +1 @@
1
- {"version":3,"file":"file-history.d.ts","sourceRoot":"","sources":["../src/file-history.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/F,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;IAChE,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAChE,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrE,aAAa,IAAI,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;IACjD,IAAI,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAClC,IAAI,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;CACnC;AAED,qBAAa,mBAAoB,YAAW,WAAW;IACrD,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,cAAc,CAAK;IAErB,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9F,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC;IAI/D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAK/D,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQnE,aAAa,IAAI,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC;IAIhD,IAAI,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAOjC,IAAI,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;CAMxC"}
1
+ {"version":3,"file":"file-history.d.ts","sourceRoot":"","sources":["../src/file-history.ts"],"names":[],"mappings":"AAEA,sFAAsF;AACtF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,iEAAiE;AACjE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,2EAA2E;AAC3E,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/F,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;IAChE,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAChE,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACrE,aAAa,IAAI,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;IACjD,IAAI,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAClC,IAAI,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;CACnC;AAED,0FAA0F;AAC1F,qBAAa,mBAAoB,YAAW,WAAW;IACrD,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,cAAc,CAAK;IAErB,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9F,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC;IAI/D,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAK/D,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQnE,aAAa,IAAI,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC;IAIhD,IAAI,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAOjC,IAAI,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;CAMxC"}
@@ -1,4 +1,5 @@
1
1
  import { ValidationError } from "@vinhnt-sdk/schema";
2
+ /** In-memory {@link FileHistory} keeping an ordered version log plus undo/redo stacks. */
2
3
  export class InMemoryFileHistory {
3
4
  versions = [];
4
5
  undoStack = [];
@@ -1 +1 @@
1
- {"version":3,"file":"file-history.js","sourceRoot":"","sources":["../src/file-history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AA8BrD,MAAM,OAAO,mBAAmB;IACtB,QAAQ,GAAkB,EAAE,CAAC;IAC7B,SAAS,GAAgB,EAAE,CAAC;IAC5B,SAAS,GAAgB,EAAE,CAAC;IAC5B,cAAc,GAAG,CAAC,CAAC;IAE3B,KAAK,CAAC,aAAa,CAAC,OAAgE;QAClF,MAAM,KAAK,GAAgB;YACzB,GAAG,OAAO;YACV,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;SAC5B,CAAC;QACjB,KAA2B,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE;SACjC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAgB;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,YAAoB;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QACrE,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACvD,MAAM,IAAI,eAAe,CAAC,iBAAiB,YAAY,oBAAoB,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;QACpG,CAAC;QACD,OAAO,OAAO,CAAC,YAAY,CAAE,CAAC,eAAe,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"file-history.js","sourceRoot":"","sources":["../src/file-history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAiCrD,0FAA0F;AAC1F,MAAM,OAAO,mBAAmB;IACtB,QAAQ,GAAkB,EAAE,CAAC;IAC7B,SAAS,GAAgB,EAAE,CAAC;IAC5B,SAAS,GAAgB,EAAE,CAAC;IAC5B,cAAc,GAAG,CAAC,CAAC;IAE3B,KAAK,CAAC,aAAa,CAAC,OAAgE;QAClF,MAAM,KAAK,GAAgB;YACzB,GAAG,OAAO;YACV,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;SAC5B,CAAC;QACjB,KAA2B,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE;SACjC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAgB;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,YAAoB;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QACrE,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACvD,MAAM,IAAI,eAAe,CAAC,iBAAiB,YAAY,oBAAoB,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;QACpG,CAAC;QACD,OAAO,OAAO,CAAC,YAAY,CAAE,CAAC,eAAe,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -1,11 +1,33 @@
1
- import { FileReadTracker } from "./read-tracker.js";
2
- import { generateDiff } from "./diff.js";
1
+ import type { ToolContext } from "@vinhnt-sdk/tools";
2
+ import type { FileReadTracker } from "./read-tracker.js";
3
+ import { generateDiff } from "@vinhnt-sdk/tools";
3
4
  type RootGetter = string | (() => string);
4
- export declare function createReadFileTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean, maxFileSize?: number): import("./definitions.js").ToolDefinition<{
5
+ declare function resolveRoot(r: RootGetter): string;
6
+ export { resolveRoot, type RootGetter };
7
+ declare function isWithinWorkspace(target: string, workspace: string): boolean;
8
+ export { isWithinWorkspace };
9
+ /**
10
+ * Verify `target` stays inside the (realpath'd) workspace and return the real
11
+ * path to use for I/O. Symlink/junction escapes are always rejected — even
12
+ * when `externalDirAccess` is enabled — because the caller asked for a path
13
+ * inside the workspace; escaping it silently would bypass containment.
14
+ */
15
+ declare function ensurePathAccess(target: string, root: string, pathLabel: string, ctx: ToolContext, externalDirAccess?: boolean): Promise<string>;
16
+ export { ensurePathAccess };
17
+ /**
18
+ * Create the `read_file` tool. Reads a file relative to the workspace root,
19
+ * enforcing workspace boundaries and optionally tracking reads for the
20
+ * kernel's file-history features.
21
+ */
22
+ export declare function createReadFileTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean, maxFileSize?: number): import("@vinhnt-sdk/tools").ToolDefinition<{
5
23
  filePath: string;
6
24
  stripTrailingNewline?: boolean;
7
25
  }, string>;
8
- export declare function createWriteFileTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean): import("./definitions.js").ToolDefinition<{
26
+ /**
27
+ * Create the `write_file` tool. Writes content to a file, creating parent
28
+ * directories as needed and returning a diff of the change.
29
+ */
30
+ export declare function createWriteFileTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean): import("@vinhnt-sdk/tools").ToolDefinition<{
9
31
  filePath: string;
10
32
  content: string;
11
33
  }, {
@@ -15,22 +37,30 @@ export declare function createWriteFileTool(workspaceRoot: RootGetter, tracker?:
15
37
  additions: number;
16
38
  removals: number;
17
39
  }>;
18
- export declare function createEditFileTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean): import("./definitions.js").ToolDefinition<{
40
+ /**
41
+ * Create the `edit_file` tool. Applies exact/fuzzy search-and-replace edits
42
+ * (one hunk or a multi-hunk `edits[]` array) to an existing file.
43
+ */
44
+ export declare function createEditFileTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean): import("@vinhnt-sdk/tools").ToolDefinition<{
19
45
  filePath: string;
20
- oldString?: string;
21
- newString?: string;
46
+ oldString?: string | undefined;
47
+ newString?: string | undefined;
22
48
  edits?: readonly {
23
49
  oldString: string;
24
50
  newString: string;
25
- }[];
51
+ }[] | undefined;
26
52
  }, {
27
53
  edited: string;
28
54
  diff: string;
29
- hunkCount?: number;
55
+ hunkCount?: number | undefined;
30
56
  additions: number;
31
57
  removals: number;
32
58
  }>;
33
- export declare function createApplyPatchTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean): import("./definitions.js").ToolDefinition<{
59
+ /**
60
+ * Create the `apply_patch` tool. Applies a SEARCH/REPLACE block patch where
61
+ * each search string must match exactly once in the target file.
62
+ */
63
+ export declare function createApplyPatchTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean): import("@vinhnt-sdk/tools").ToolDefinition<{
34
64
  filePath: string;
35
65
  patch: string;
36
66
  }, {
@@ -45,12 +75,15 @@ export declare function createApplyPatchTool(workspaceRoot: RootGetter, tracker?
45
75
  * User tự extend: `config.excludedDirs = [...DEFAULT_EXCLUDED_DIRS, "my-dir"]`
46
76
  */
47
77
  export declare const DEFAULT_EXCLUDED_DIRS: string[];
48
- export declare function createListDirectoryTool(workspaceRoot: RootGetter, externalDirAccess?: boolean, excludedDirs?: string[]): import("./definitions.js").ToolDefinition<{
78
+ /**
79
+ * Create the `list_directory` tool. Lists a directory's entries
80
+ * (non-recursive), skipping `excludedDirs` (defaults to node_modules/.git).
81
+ */
82
+ export declare function createListDirectoryTool(workspaceRoot: RootGetter, externalDirAccess?: boolean, excludedDirs?: string[]): import("@vinhnt-sdk/tools").ToolDefinition<{
49
83
  dirPath: string;
50
84
  }, {
51
85
  name: string;
52
86
  type: string;
53
87
  path: string;
54
88
  }[]>;
55
- export {};
56
89
  //# sourceMappingURL=file-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-tools.d.ts","sourceRoot":"","sources":["../src/file-tools.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAoFzC,KAAK,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;AAiD1C,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM;cAC1G,MAAM;2BAAyB,OAAO;WAsBrE;AAED,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE,OAAO;cACrF,MAAM;aAAW,MAAM;;aAC1C,MAAM;WAAS,MAAM;UACxB,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC;eAClC,MAAM;cAAY,MAAM;GA4BtC;AAgPD,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE,OAAO;cACpF,MAAM;gBAAc,MAAM;gBAAc,MAAM;YAAU,SAAS;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE;;YAC/H,MAAM;UAAQ,MAAM;gBAChB,MAAM;eAAa,MAAM;cAAY,MAAM;GAuC1D;AAeD,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE,OAAO;cACtF,MAAM;WAAS,MAAM;;aACxC,MAAM;YAAU,MAAM;UAAQ,MAAM;eAAa,MAAM;cAAY,MAAM;GAsDrF;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,UAA2B,CAAC;AAE9D,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,UAAU,EAAE,iBAAiB,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE;aAGxF,MAAM;;UAAY,MAAM;UAAQ,MAAM;UAAQ,MAAM;KAqBlF"}
1
+ {"version":3,"file":"file-tools.d.ts","sourceRoot":"","sources":["../src/file-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAc,MAAM,mBAAmB,CAAC;AAmF7D,KAAK,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;AAE1C,iBAAS,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAE1C;AAED,OAAO,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,CAAC;AAoBxC,iBAAS,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAIrE;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC;AA+B7B;;;;;GAKG;AACH,iBAAe,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAiB/I;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAwB5B;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM;cAC1G,MAAM;2BAAyB,OAAO;WAqBrE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE,OAAO;cACrF,MAAM;aAAW,MAAM;;aAC1C,MAAM;WAAS,MAAM;UACxB,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC;eAClC,MAAM;cAAY,MAAM;GA0BtC;AAgPD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE,OAAO;cACpF,MAAM;gBAAc,MAAM,GAAG,SAAS;gBAAc,MAAM,GAAG,SAAS;YAAU,SAAS;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,SAAS;;YACnK,MAAM;UAAQ,MAAM;gBAChB,MAAM,GAAG,SAAS;eAAa,MAAM;cAAY,MAAM;GAsCtE;AAeD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAE,OAAO;cACtF,MAAM;WAAS,MAAM;;aACxC,MAAM;YAAU,MAAM;UAAQ,MAAM;eAAa,MAAM;cAAY,MAAM;GAqDrF;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,UAA2B,CAAC;AAE9D;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,UAAU,EAAE,iBAAiB,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE;aAGxF,MAAM;;UAAY,MAAM;UAAQ,MAAM;UAAQ,MAAM;KAoBlF"}