@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
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG9E,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjE,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;IACvC,6DAA6D;IAC7D,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAClC,wDAAwD;IACxD,MAAM,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpF,2DAA2D;IAC3D,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;CACjD;AAED,qBAAa,YAAY;IACvB,SAAS,CAAC,QAAQ,CAAC,KAAK,gDAAqC;IAC7D,SAAS,CAAC,QAAQ,CAAC,OAAO,8BAAqC;IAE/D,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAIpC,qGAAqG;IACrG,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAI9C,UAAU,IAAI,SAAS,cAAc,EAAE;IAIvC,kFAAkF;IAClF,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAOzC,2CAA2C;IAC3C,WAAW,IAAI,SAAS,cAAc,EAAE;IAIxC,mDAAmD;IACnD,eAAe,IAAI,aAAa,EAAE;IAIlC,gDAAgD;IAChD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,cAAc,EAAE;IAK3D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI/B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI3C,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,cAAc,EAAE;IAWpD,KAAK,IAAI,MAAM;IAIf,4DAA4D;IAC5D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc;IAMtC;;;;OAIG;IACH,WAAW,CAAC,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,mBAAmB;IAmC7E,4EAA4E;IAC5E,OAAO,CAAC,aAAa;CAWtB"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG9E,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjE,wCAAwC;AACxC,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;CAClC;AAED,+EAA+E;AAC/E,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;IACvC,6DAA6D;IAC7D,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAClC,wDAAwD;IACxD,MAAM,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpF,2DAA2D;IAC3D,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;CACjD;AAED,oGAAoG;AACpG,qBAAa,YAAY;IACvB,SAAS,CAAC,QAAQ,CAAC,KAAK,gDAAqC;IAC7D,SAAS,CAAC,QAAQ,CAAC,OAAO,8BAAqC;IAE/D,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAIpC,qGAAqG;IACrG,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAI9C,UAAU,IAAI,SAAS,cAAc,EAAE;IAIvC,kFAAkF;IAClF,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAOzC,2CAA2C;IAC3C,WAAW,IAAI,SAAS,cAAc,EAAE;IAIxC,mDAAmD;IACnD,eAAe,IAAI,aAAa,EAAE;IAIlC,gDAAgD;IAChD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,cAAc,EAAE;IAK3D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI/B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI3C,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,cAAc,EAAE;IAWpD,KAAK,IAAI,MAAM;IAIf,4DAA4D;IAC5D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc;IAMtC;;;;OAIG;IACH,WAAW,CAAC,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,mBAAmB;IAwC7E,4EAA4E;IAC5E,OAAO,CAAC,aAAa;CAWtB"}
package/dist/registry.js CHANGED
@@ -2,6 +2,7 @@ import { wildcardMatch } from "@vinhnt-sdk/schema";
2
2
  import { ToolNotFoundError } from "@vinhnt-sdk/schema";
3
3
  import { summarizeDomains } from "./domain.js";
4
4
  import { validateInput } from "./validate.js";
5
+ /** Registers tools and domains, filters by permission, and materializes model-visible tool sets. */
5
6
  export class ToolRegistry {
6
7
  tools = new Map();
7
8
  domains = new Map();
@@ -82,7 +83,9 @@ export class ToolRegistry {
82
83
  denied,
83
84
  getTool: (id) => allowedMap.get(id),
84
85
  settle: async ({ name, args, ctx }) => {
85
- const tool = this.tools.get(name);
86
+ // Resolve through the allowed set only — a tool filtered out by a deny
87
+ // rule is NOT executable via settle.
88
+ const tool = allowedMap.get(name);
86
89
  if (!tool)
87
90
  throw new ToolNotFoundError(name);
88
91
  // Validate input via Zod schema if available (non-breaking: falls through to raw execute if no schema)
@@ -97,7 +100,10 @@ export class ToolRegistry {
97
100
  agentName: "",
98
101
  signal: new AbortController().signal,
99
102
  env: {},
100
- ask: async () => "once",
103
+ // RV-41: standalone settle is fail-closed — without a wired permission
104
+ // gate there is no human in the loop, so a tool's `ask` must reject
105
+ // rather than auto-approve itself.
106
+ ask: async () => "reject",
101
107
  metadata: () => { },
102
108
  setCompensation: () => { },
103
109
  };
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
package/dist/saga.d.ts ADDED
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @module @vinhnt-sdk/tool-saga
3
+ * Saga tracking for tool execution: record tool calls per step, register
4
+ * compensating actions, and roll back steps (or the whole run) in reverse.
5
+ */
6
+ /** A recorded tool invocation within a saga step. */
7
+ export interface SagaEntry {
8
+ toolId: string;
9
+ toolName: string;
10
+ input: unknown;
11
+ output: unknown;
12
+ timestamp: number;
13
+ step: number;
14
+ }
15
+ /** A compensating action registered for a tool to undo its effect on rollback. */
16
+ export interface CompensationAction {
17
+ entry: SagaEntry;
18
+ compensate(): Promise<void>;
19
+ }
20
+ /** Tracks tool calls per step and rolls back compensating actions in reverse order. */
21
+ export declare class ToolSaga {
22
+ private readonly steps;
23
+ private readonly compensations;
24
+ private readonly rolledBack;
25
+ record(entry: SagaEntry): void;
26
+ registerCompensation(toolId: string, action: CompensationAction): void;
27
+ getEntries(step?: number): SagaEntry[];
28
+ rollbackStep(step: number): Promise<void>;
29
+ rollbackAll(): Promise<void>;
30
+ clear(): void;
31
+ }
32
+ //# sourceMappingURL=saga.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saga.d.ts","sourceRoot":"","sources":["../src/saga.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qDAAqD;AACrD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAID,uFAAuF;AACvF,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkC;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyC;IACvE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAEhD,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAM9B,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAItE,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE;IAQhC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBzC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAOlC,KAAK,IAAI,IAAI;CAKd"}
package/dist/saga.js ADDED
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @module @vinhnt-sdk/tool-saga
3
+ * Saga tracking for tool execution: record tool calls per step, register
4
+ * compensating actions, and roll back steps (or the whole run) in reverse.
5
+ */
6
+ const COMPENSATION_TIMEOUT = 5_000;
7
+ /** Tracks tool calls per step and rolls back compensating actions in reverse order. */
8
+ export class ToolSaga {
9
+ steps = new Map();
10
+ compensations = new Map();
11
+ rolledBack = new Set();
12
+ record(entry) {
13
+ const entries = this.steps.get(entry.step) ?? [];
14
+ entries.push(entry);
15
+ this.steps.set(entry.step, entries);
16
+ }
17
+ registerCompensation(toolId, action) {
18
+ this.compensations.set(toolId, action);
19
+ }
20
+ getEntries(step) {
21
+ if (step !== undefined)
22
+ return this.steps.get(step) ?? [];
23
+ const all = [];
24
+ const sorted = [...this.steps.keys()].sort((a, b) => b - a);
25
+ for (const s of sorted)
26
+ all.push(...(this.steps.get(s) ?? []));
27
+ return all;
28
+ }
29
+ async rollbackStep(step) {
30
+ const entries = this.steps.get(step);
31
+ if (!entries)
32
+ return;
33
+ for (let i = entries.length - 1; i >= 0; i--) {
34
+ const entry = entries[i];
35
+ if (this.rolledBack.has(entry.toolId))
36
+ continue;
37
+ const action = this.compensations.get(entry.toolId);
38
+ if (action) {
39
+ try {
40
+ await Promise.race([
41
+ action.compensate(),
42
+ new Promise((_, reject) => setTimeout(() => reject(new Error("Compensation timed out")), COMPENSATION_TIMEOUT)),
43
+ ]);
44
+ }
45
+ catch (err) {
46
+ console.warn(`[saga] Compensation failed for ${entry.toolName}(${entry.toolId}):`, err);
47
+ }
48
+ }
49
+ this.rolledBack.add(entry.toolId);
50
+ }
51
+ this.steps.delete(step);
52
+ }
53
+ async rollbackAll() {
54
+ const sorted = [...this.steps.keys()].sort((a, b) => b - a);
55
+ for (const step of sorted) {
56
+ await this.rollbackStep(step);
57
+ }
58
+ }
59
+ clear() {
60
+ this.steps.clear();
61
+ this.compensations.clear();
62
+ this.rolledBack.clear();
63
+ }
64
+ }
65
+ //# sourceMappingURL=saga.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saga.js","sourceRoot":"","sources":["../src/saga.ts"],"names":[],"mappings":"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"}
package/dist/sandbox.d.ts CHANGED
@@ -5,6 +5,8 @@
5
5
  * @packageDocumentation
6
6
  */
7
7
  import type { ToolDefinition, ToolContext } from "./definitions.js";
8
+ import { sanitizeEnv } from "@vinhnt-sdk/security";
9
+ export { sanitizeEnv };
8
10
  /** Sandbox execution scope — string type, NOT closed union */
9
11
  export type SandboxScope = string;
10
12
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA6HpE,8DAA8D;AAC9D,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,2CAA4C,CAAC;AAE9E,4BAA4B;AAC5B,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,6CAA6C;IAC7C,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,iDAAiD;IACjD,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,sCAAsC;AACtC,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO;IACxC,MAAM,EAAE,CAAC,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,SAAS,CAAC,EAAE;QACV,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAMD;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAE7B,uCAAuC;IACvC,OAAO,CAAC,OAAO,EAAE;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC,aAAa,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAEjF,yBAAyB;IACzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AA0PD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAUnE;AAMD,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW,CAgBrE;AAED,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"}
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,CAAC;AAkFvB,8DAA8D;AAC9D,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,2CAA4C,CAAC;AAE9E,4BAA4B;AAC5B,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,6CAA6C;IAC7C,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,iDAAiD;IACjD,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,sCAAsC;AACtC,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO;IACxC,MAAM,EAAE,CAAC,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,SAAS,CAAC,EAAE;QACV,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAMD;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAE7B,uCAAuC;IACvC,OAAO,CAAC,OAAO,EAAE;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC,aAAa,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAEjF,yBAAyB;IACzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AA4PD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,CAUnE;AAMD,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW,CAgBrE;AAED,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"}
package/dist/sandbox.js CHANGED
@@ -5,44 +5,9 @@
5
5
  * @packageDocumentation
6
6
  */
7
7
  import { parseCommand } from "./shell-parser.js";
8
- // ---------------------------------------------------------------------------
9
- // Environment sanitization
10
- // ---------------------------------------------------------------------------
11
- const SENSITIVE_ENV_PREFIXES = [
12
- "AWS_",
13
- "GOOGLE_",
14
- "AZURE_",
15
- "GITHUB_",
16
- "GITLAB_",
17
- "npm_",
18
- "NODE_",
19
- ];
20
- const SENSITIVE_ENV_KEYS = new Set([
21
- "HOME",
22
- "USER",
23
- "USERNAME",
24
- "PASSWORD",
25
- "SECRET",
26
- "TOKEN",
27
- "API_KEY",
28
- "APIKEY",
29
- "PRIVATE_KEY",
30
- "DATABASE_URL",
31
- "DB_URL",
32
- "REDIS_URL",
33
- ]);
34
- function sanitizeEnv() {
35
- const safe = {};
36
- for (const [key, value] of Object.entries(process.env)) {
37
- const upperKey = key.toUpperCase();
38
- const isSensitive = SENSITIVE_ENV_PREFIXES.some((p) => upperKey.startsWith(p)) ||
39
- SENSITIVE_ENV_KEYS.has(upperKey);
40
- if (!isSensitive) {
41
- safe[key] = value;
42
- }
43
- }
44
- return safe;
45
- }
8
+ import { sanitizeEnv } from "@vinhnt-sdk/security";
9
+ import { killProcessTree, treeKillSpawnOptions } from "./kill-tree.js";
10
+ export { sanitizeEnv };
46
11
  /**
47
12
  * Create an empty environment with only explicitly allowed variables.
48
13
  * This is the secure default for process isolation.
@@ -133,9 +98,10 @@ class HostSandbox {
133
98
  maxBuffer: 10 * 1024 * 1024,
134
99
  encoding: "utf-8",
135
100
  windowsHide: true,
101
+ ...treeKillSpawnOptions(),
136
102
  env: options.env && Object.keys(options.env).length > 0
137
103
  ? { ...sanitizeEnv(), ...options.env }
138
- : undefined,
104
+ : sanitizeEnv(),
139
105
  }, (err, stdout, stderr) => {
140
106
  const durationMs = Date.now() - start;
141
107
  if (err) {
@@ -159,7 +125,7 @@ class HostSandbox {
159
125
  });
160
126
  if (options.signal) {
161
127
  if (options.signal.aborted) {
162
- child.kill();
128
+ killProcessTree(child);
163
129
  resolve({
164
130
  result: { stdout: "", stderr: "Aborted", exitCode: 1 },
165
131
  exitCode: 1,
@@ -169,7 +135,7 @@ class HostSandbox {
169
135
  return;
170
136
  }
171
137
  options.signal.addEventListener("abort", () => {
172
- child.kill();
138
+ killProcessTree(child);
173
139
  resolve({
174
140
  result: { stdout: "", stderr: options.signal?.reason ?? "Aborted", exitCode: 1 },
175
141
  exitCode: 1,
@@ -235,6 +201,7 @@ class ProcessSandboxImpl {
235
201
  maxBuffer,
236
202
  encoding: "utf-8",
237
203
  windowsHide: true,
204
+ ...treeKillSpawnOptions(),
238
205
  env: secureEnv,
239
206
  // Security options
240
207
  ...(process.platform !== "win32" ? {
@@ -265,7 +232,7 @@ class ProcessSandboxImpl {
265
232
  });
266
233
  if (options.signal) {
267
234
  if (options.signal.aborted) {
268
- child.kill();
235
+ killProcessTree(child);
269
236
  resolve({
270
237
  result: { stdout: "", stderr: "Aborted", exitCode: 1 },
271
238
  exitCode: 1,
@@ -275,7 +242,7 @@ class ProcessSandboxImpl {
275
242
  return;
276
243
  }
277
244
  options.signal.addEventListener("abort", () => {
278
- child.kill();
245
+ killProcessTree(child);
279
246
  resolve({
280
247
  result: { stdout: "", stderr: options.signal?.reason ?? "Aborted", exitCode: 1 },
281
248
  exitCode: 1,
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
- import type { ToolDefinition } from "./definitions.js";
1
+ import type { ToolDefinition } from "@vinhnt-sdk/tools";
2
2
  type RootGetter = string | (() => string);
3
3
  /**
4
4
  * Default ignored directories for search — convenience only.
5
5
  * User tự extend: `config.ignoredDirs = [...DEFAULT_IGNORED_DIRS, "my-dir"]`
6
6
  */
7
7
  export declare const DEFAULT_IGNORED_DIRS: string[];
8
+ /** Create the `glob` tool that finds files matching a glob pattern under the workspace root. */
8
9
  export declare function createGlobFilesTool(workspaceRoot: RootGetter, ignoredDirs?: string[]): ToolDefinition;
10
+ /** Create the `grep` tool that searches file contents for a regex pattern. */
9
11
  export declare function createGrepFilesTool(workspaceRoot: RootGetter, ignoredDirs?: string[]): ToolDefinition;
10
12
  export {};
11
13
  //# sourceMappingURL=search-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-tools.d.ts","sourceRoot":"","sources":["../src/search-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAcvD,KAAK,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;AAM1C;;;GAGG;AACH,eAAO,MAAM,oBAAoB,UAA6E,CAAC;AAiB/G,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,cAAc,CAuBrG;AAED,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,cAAc,CA6DrG"}
1
+ {"version":3,"file":"search-tools.d.ts","sourceRoot":"","sources":["../src/search-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAcxD,KAAK,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;AAM1C;;;GAGG;AACH,eAAO,MAAM,oBAAoB,UAA6E,CAAC;AAiB/G,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,cAAc,CAuBrG;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,cAAc,CA8DrG"}
@@ -1,7 +1,7 @@
1
- import { readdir, readFile, stat } from "node:fs/promises";
1
+ import { readdir, readFile, lstat } from "node:fs/promises";
2
2
  import { join, relative } from "node:path";
3
3
  import { z } from "zod";
4
- import { defineTool } from "./define-tool.js";
4
+ import { defineTool } from "@vinhnt-sdk/tools";
5
5
  const GlobFilesSchema = z.object({
6
6
  pattern: z.string().min(1),
7
7
  maxResults: z.number().positive().optional(),
@@ -34,6 +34,7 @@ async function globRecursive(dir, pattern, base, results, ignoreDirs) {
34
34
  }
35
35
  }
36
36
  }
37
+ /** Create the `glob` tool that finds files matching a glob pattern under the workspace root. */
37
38
  export function createGlobFilesTool(workspaceRoot, ignoredDirs) {
38
39
  const ignoreSet = new Set(ignoredDirs ?? DEFAULT_IGNORED_DIRS);
39
40
  return defineTool({
@@ -57,6 +58,7 @@ export function createGlobFilesTool(workspaceRoot, ignoredDirs) {
57
58
  },
58
59
  }).toDefinition();
59
60
  }
61
+ /** Create the `grep` tool that searches file contents for a regex pattern. */
60
62
  export function createGrepFilesTool(workspaceRoot, ignoredDirs) {
61
63
  const ignoreSet = new Set(ignoredDirs ?? DEFAULT_IGNORED_DIRS);
62
64
  return defineTool({
@@ -88,12 +90,14 @@ export function createGrepFilesTool(workspaceRoot, ignoredDirs) {
88
90
  if (ignoreSet.has(entry.name))
89
91
  continue;
90
92
  const fullPath = join(dir, entry.name);
93
+ if (entry.isSymbolicLink())
94
+ continue;
91
95
  if (entry.isDirectory()) {
92
96
  await searchDir(fullPath);
93
97
  }
94
98
  else if (!v.include || entry.name.endsWith(v.include.replace("*", ""))) {
95
99
  try {
96
- const st = await stat(fullPath);
100
+ const st = await lstat(fullPath);
97
101
  if (st.size > 100_000)
98
102
  continue;
99
103
  const content = await readFile(fullPath, "utf-8");
@@ -1 +1 @@
1
- {"version":3,"file":"search-tools.js","sourceRoot":"","sources":["../src/search-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-tools.js","sourceRoot":"","sources":["../src/search-tools.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,7 @@ export function parseCommand(cmd) {
25
25
  else if (inDouble) {
26
26
  if (ch === '"') {
27
27
  inDouble = false;
28
+ i++;
28
29
  }
29
30
  else if (ch === "\\" && i + 1 < trimmed.length) {
30
31
  current += trimmed[i + 1];
@@ -1 +1 @@
1
- {"version":3,"file":"shell-parser.js","sourceRoot":"","sources":["../src/shell-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAE5C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBAAC,QAAQ,GAAG,KAAK,CAAC;YAAC,CAAC;iBAChC,CAAC;gBAAC,OAAO,IAAI,EAAE,CAAC;YAAC,CAAC;YACvB,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACpB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBAAC,QAAQ,GAAG,KAAK,CAAC;YAAC,CAAC;iBAChC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;gBAAC,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAC,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;iBACjF,CAAC;gBAAC,OAAO,IAAI,EAAE,CAAC;gBAAC,CAAC,EAAE,CAAC;YAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,QAAQ,GAAG,IAAI,CAAC;YAAC,CAAC,EAAE,CAAC;QAAC,CAAC;aAC3C,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,QAAQ,GAAG,IAAI,CAAC;YAAC,CAAC,EAAE,CAAC;QAAC,CAAC;aACzC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAAC,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAAC,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;aACjF,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACvB,IAAI,OAAO,EAAE,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;YAAC,CAAC;YACpD,CAAC,EAAE,CAAC;QACN,CAAC;aACI,CAAC;YAAC,OAAO,IAAI,EAAE,CAAC;YAAC,CAAC,EAAE,CAAC;QAAC,CAAC;IAC9B,CAAC;IACD,IAAI,OAAO;QAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAElC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACvD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"shell-parser.js","sourceRoot":"","sources":["../src/shell-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAE5C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBAAC,QAAQ,GAAG,KAAK,CAAC;YAAC,CAAC;iBAChC,CAAC;gBAAC,OAAO,IAAI,EAAE,CAAC;YAAC,CAAC;YACvB,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACpB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBAAC,QAAQ,GAAG,KAAK,CAAC;gBAAC,CAAC,EAAE,CAAC;YAAC,CAAC;iBACrC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;gBAAC,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAC,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;iBACjF,CAAC;gBAAC,OAAO,IAAI,EAAE,CAAC;gBAAC,CAAC,EAAE,CAAC;YAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,QAAQ,GAAG,IAAI,CAAC;YAAC,CAAC,EAAE,CAAC;QAAC,CAAC;aAC3C,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAAC,QAAQ,GAAG,IAAI,CAAC;YAAC,CAAC,EAAE,CAAC;QAAC,CAAC;aACzC,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAAC,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAAC,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;aACjF,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACvB,IAAI,OAAO,EAAE,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;YAAC,CAAC;YACpD,CAAC,EAAE,CAAC;QACN,CAAC;aACI,CAAC;YAAC,OAAO,IAAI,EAAE,CAAC;YAAC,CAAC,EAAE,CAAC;QAAC,CAAC;IAC9B,CAAC;IACD,IAAI,OAAO;QAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAElC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACvD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACrD,CAAC"}
@@ -1,4 +1,5 @@
1
- import { type SandboxScope } from "./sandbox.js";
1
+ import { type SandboxScope } from "@vinhnt-sdk/sandbox";
2
+ /** Configuration for the {@link createShellTool} command-execution tool. */
2
3
  export interface ShellToolConfig {
3
4
  workspaceRoot: string | (() => string);
4
5
  defaultTimeoutMs: number;
@@ -6,17 +7,23 @@ export interface ShellToolConfig {
6
7
  maxTimeoutMs?: number;
7
8
  /** If true, prompts for permission before executing shell commands (default: true) */
8
9
  askPermission?: boolean;
9
- /** Sandbox scope for command execution (default: "host") */
10
+ /** Sandbox scope for command execution (default: "process") */
10
11
  sandboxScope?: SandboxScope;
12
+ /** Allowed filesystem paths for the executed command (enforced in the sandbox backend) */
13
+ allowedPaths?: string[];
11
14
  }
12
15
  interface ExecResult {
13
16
  stdout: string;
14
17
  stderr: string;
15
18
  exitCode: number;
16
19
  }
17
- export declare function createShellTool(config: ShellToolConfig): import("./definitions.js").ToolDefinition<{
20
+ /**
21
+ * Create the `shell` tool that executes a command in the workspace root with
22
+ * timeout, tree-scoped kill-on-abort, and optional permission prompting.
23
+ */
24
+ export declare function createShellTool(config: ShellToolConfig): import("@vinhnt-sdk/tools").ToolDefinition<{
18
25
  command: string;
19
- timeoutMs?: number;
26
+ timeoutMs?: number | undefined;
20
27
  }, ExecResult>;
21
28
  export {};
22
29
  //# sourceMappingURL=shell-tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shell-tool.d.ts","sourceRoot":"","sources":["../src/shell-tool.ts"],"names":[],"mappings":"AAMA,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAQhE,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,UAAU,UAAU;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAgDD,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe;aAMxB,MAAM;gBAAc,MAAM;eAoDxD"}
1
+ {"version":3,"file":"shell-tool.d.ts","sourceRoot":"","sources":["../src/shell-tool.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuD,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAW7G,4EAA4E;AAC5E,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,UAAU,UAAU;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAiDD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe;aAOxB,MAAM;gBAAc,MAAM,GAAG,SAAS;eAqDpE"}
@@ -1,10 +1,10 @@
1
1
  import { execFile } from "node:child_process";
2
2
  import { commandPattern } from "./arity.js";
3
+ import { killProcessTree, treeKillSpawnOptions, parseCommand } from "@vinhnt-sdk/sandbox";
3
4
  import { z } from "zod";
4
- import { defineTool } from "./define-tool.js";
5
- import { detectInjectionPatterns } from "@vinhnt-sdk/security";
6
- import { createSandbox } from "./sandbox.js";
7
- import { parseCommand } from "./shell-parser.js";
5
+ import { defineTool } from "@vinhnt-sdk/tools";
6
+ import { detectInjectionPatterns, sanitizeEnv } from "@vinhnt-sdk/security";
7
+ import { createSandbox } from "./tool-sandbox.js";
8
8
  const ExecuteCommandSchema = z.object({
9
9
  command: z.string().min(1),
10
10
  timeoutMs: z.number().positive().optional(),
@@ -18,9 +18,10 @@ function execAsync(command, cwd, timeoutMs, signal, env) {
18
18
  maxBuffer: 10 * 1024 * 1024,
19
19
  encoding: "utf-8",
20
20
  windowsHide: true,
21
+ ...treeKillSpawnOptions(),
21
22
  env: env && Object.keys(env).length > 0
22
- ? { ...process.env, ...env }
23
- : undefined,
23
+ ? { ...sanitizeEnv(), ...env }
24
+ : sanitizeEnv(),
24
25
  }, (err, stdout, stderr) => {
25
26
  if (err) {
26
27
  const exitCode = typeof err.code === "number" ? err.code : 1;
@@ -32,26 +33,32 @@ function execAsync(command, cwd, timeoutMs, signal, env) {
32
33
  });
33
34
  if (signal) {
34
35
  if (signal.aborted) {
35
- child.kill();
36
+ killProcessTree(child);
36
37
  reject(new DOMException(signal.reason ?? "Aborted", "AbortError"));
37
38
  return;
38
39
  }
39
40
  signal.addEventListener("abort", () => {
40
- child.kill();
41
+ killProcessTree(child);
41
42
  reject(new DOMException(signal.reason ?? "Aborted", "AbortError"));
42
43
  }, { once: true });
43
44
  }
44
45
  });
45
46
  }
47
+ /**
48
+ * Create the `shell` tool that executes a command in the workspace root with
49
+ * timeout, tree-scoped kill-on-abort, and optional permission prompting.
50
+ */
46
51
  export function createShellTool(config) {
47
52
  const sandbox = createSandbox({
48
53
  defaultTimeoutMs: config.defaultTimeoutMs,
49
- scope: config.sandboxScope ?? "host",
54
+ scope: config.sandboxScope ?? "process",
55
+ ...(config.allowedPaths !== undefined ? { allowedPaths: config.allowedPaths } : {}),
50
56
  });
51
57
  return defineTool({
52
58
  name: "execute_command",
53
59
  description: "Execute a shell command in the workspace directory. Returns stdout and stderr.",
54
60
  risk: "write",
61
+ selfApproving: config.askPermission !== false,
55
62
  timeoutMs: 120_000,
56
63
  input: ExecuteCommandSchema,
57
64
  jsonSchema: {
@@ -1 +1 @@
1
- {"version":3,"file":"shell-tool.js","sourceRoot":"","sources":["../src/shell-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell-tool.js","sourceRoot":"","sources":["../src/shell-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { ToolProvider, ToolDefinition, ToolRegistry } from "@vinhnt-sdk/tools";
2
+ /**
3
+ * SkillToolProvider — Provides skill-related tools.
4
+ *
5
+ * This is a metadata provider that declares skill tools exist.
6
+ * Actual tool creation happens in the composition root to avoid circular dependencies.
7
+ */
8
+ export declare class SkillToolProvider implements ToolProvider {
9
+ readonly id = "skills";
10
+ readonly name = "Skill Tools";
11
+ readonly description = "Skill management tools: load, search, create";
12
+ private _tools;
13
+ get tools(): ToolDefinition[];
14
+ /**
15
+ * Add tools externally (called by composition root).
16
+ */
17
+ addTools(tools: ToolDefinition[]): void;
18
+ register(_registry: ToolRegistry): void;
19
+ unregister(_registry: ToolRegistry): void;
20
+ }
21
+ //# sourceMappingURL=skill-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-provider.d.ts","sourceRoot":"","sources":["../src/skill-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEpF;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD,QAAQ,CAAC,EAAE,YAAY;IACvB,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,WAAW,kDAAkD;IAEtE,OAAO,CAAC,MAAM,CAAwB;IAEtC,IAAI,KAAK,IAAI,cAAc,EAAE,CAE5B;IAED;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI;IAIvC,QAAQ,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;IAIvC,UAAU,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;CAG1C"}