@vinhnt-sdk/tools 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/arity.d.ts +22 -0
- package/dist/arity.d.ts.map +1 -0
- package/dist/arity.js +96 -0
- package/dist/arity.js.map +1 -0
- package/dist/context.d.ts +43 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +2 -0
- package/dist/context.js.map +1 -0
- package/dist/define-tool.d.ts +45 -0
- package/dist/define-tool.d.ts.map +1 -0
- package/dist/define-tool.js +120 -0
- package/dist/define-tool.js.map +1 -0
- package/dist/definitions.d.ts +24 -0
- package/dist/definitions.d.ts.map +1 -0
- package/dist/definitions.js +2 -0
- package/dist/definitions.js.map +1 -0
- package/dist/description-lint.d.ts +25 -0
- package/dist/description-lint.d.ts.map +1 -0
- package/dist/description-lint.js +90 -0
- package/dist/description-lint.js.map +1 -0
- package/dist/diff.d.ts +7 -0
- package/dist/diff.d.ts.map +1 -0
- package/dist/diff.js +26 -0
- package/dist/diff.js.map +1 -0
- package/dist/domain.d.ts +39 -0
- package/dist/domain.d.ts.map +1 -0
- package/dist/domain.js +20 -0
- package/dist/domain.js.map +1 -0
- package/dist/file-history.d.ts +43 -0
- package/dist/file-history.d.ts.map +1 -0
- package/dist/file-history.js +55 -0
- package/dist/file-history.js.map +1 -0
- package/dist/file-tools.d.ts +56 -0
- package/dist/file-tools.d.ts.map +1 -0
- package/dist/file-tools.js +542 -0
- package/dist/file-tools.js.map +1 -0
- package/dist/git-tools.d.ts +8 -0
- package/dist/git-tools.d.ts.map +1 -0
- package/dist/git-tools.js +114 -0
- package/dist/git-tools.js.map +1 -0
- package/dist/history-hook.d.ts +4 -0
- package/dist/history-hook.d.ts.map +1 -0
- package/dist/history-hook.js +62 -0
- package/dist/history-hook.js.map +1 -0
- package/dist/image-tools.d.ts +11 -0
- package/dist/image-tools.d.ts.map +1 -0
- package/dist/image-tools.js +55 -0
- package/dist/image-tools.js.map +1 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/json-schema.d.ts +22 -0
- package/dist/json-schema.d.ts.map +1 -0
- package/dist/json-schema.js +2 -0
- package/dist/json-schema.js.map +1 -0
- package/dist/lazy-registry.d.ts +23 -0
- package/dist/lazy-registry.d.ts.map +1 -0
- package/dist/lazy-registry.js +64 -0
- package/dist/lazy-registry.js.map +1 -0
- package/dist/policy.d.ts +5 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +2 -0
- package/dist/policy.js.map +1 -0
- package/dist/provider-helpers.d.ts +26 -0
- package/dist/provider-helpers.d.ts.map +1 -0
- package/dist/provider-helpers.js +46 -0
- package/dist/provider-helpers.js.map +1 -0
- package/dist/provider.d.ts +80 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +96 -0
- package/dist/provider.js.map +1 -0
- package/dist/providers/agent-provider.d.ts +32 -0
- package/dist/providers/agent-provider.d.ts.map +1 -0
- package/dist/providers/agent-provider.js +35 -0
- package/dist/providers/agent-provider.js.map +1 -0
- package/dist/providers/builtin-provider.d.ts +36 -0
- package/dist/providers/builtin-provider.d.ts.map +1 -0
- package/dist/providers/builtin-provider.js +86 -0
- package/dist/providers/builtin-provider.js.map +1 -0
- package/dist/providers/file-loader.d.ts +47 -0
- package/dist/providers/file-loader.d.ts.map +1 -0
- package/dist/providers/file-loader.js +120 -0
- package/dist/providers/file-loader.js.map +1 -0
- package/dist/providers/index.d.ts +6 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +5 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/skill-provider.d.ts +23 -0
- package/dist/providers/skill-provider.d.ts.map +1 -0
- package/dist/providers/skill-provider.js +28 -0
- package/dist/providers/skill-provider.js.map +1 -0
- package/dist/question-tool.d.ts +15 -0
- package/dist/question-tool.d.ts.map +1 -0
- package/dist/question-tool.js +51 -0
- package/dist/question-tool.js.map +1 -0
- package/dist/read-tracker.d.ts +8 -0
- package/dist/read-tracker.d.ts.map +1 -0
- package/dist/read-tracker.js +33 -0
- package/dist/read-tracker.js.map +1 -0
- package/dist/registry.d.ts +58 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +128 -0
- package/dist/registry.js.map +1 -0
- package/dist/sandbox.d.ts +85 -0
- package/dist/sandbox.d.ts.map +1 -0
- package/dist/sandbox.js +409 -0
- package/dist/sandbox.js.map +1 -0
- package/dist/search-tools.d.ts +11 -0
- package/dist/search-tools.d.ts.map +1 -0
- package/dist/search-tools.js +124 -0
- package/dist/search-tools.js.map +1 -0
- package/dist/shell-parser.d.ts +9 -0
- package/dist/shell-parser.d.ts.map +1 -0
- package/dist/shell-parser.js +68 -0
- package/dist/shell-parser.js.map +1 -0
- package/dist/shell-tool.d.ts +22 -0
- package/dist/shell-tool.d.ts.map +1 -0
- package/dist/shell-tool.js +100 -0
- package/dist/shell-tool.js.map +1 -0
- package/dist/todo-tool.d.ts +2 -0
- package/dist/todo-tool.d.ts.map +1 -0
- package/dist/todo-tool.js +121 -0
- package/dist/todo-tool.js.map +1 -0
- package/dist/tool-search.d.ts +14 -0
- package/dist/tool-search.d.ts.map +1 -0
- package/dist/tool-search.js +46 -0
- package/dist/tool-search.js.map +1 -0
- package/dist/types.d.ts +30 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/validate.d.ts +9 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +26 -0
- package/dist/validate.js.map +1 -0
- package/dist/web-search-tool.d.ts +84 -0
- package/dist/web-search-tool.d.ts.map +1 -0
- package/dist/web-search-tool.js +134 -0
- package/dist/web-search-tool.js.map +1 -0
- package/dist/web-tools.d.ts +10 -0
- package/dist/web-tools.d.ts.map +1 -0
- package/dist/web-tools.js +62 -0
- package/dist/web-tools.js.map +1 -0
- package/package.json +58 -0
package/dist/domain.d.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ToolDefinition } from "./definitions.js";
|
|
2
|
+
import type { ToolPermissionRule } from "./registry.js";
|
|
3
|
+
/**
|
|
4
|
+
* ── Domain manifests (Phase 2) ────────────────────────────────────────────
|
|
5
|
+
* A domain is a named, swappable set of tools (e.g. "coding"). The agent core
|
|
6
|
+
* treats domains as opaque: it only needs each tool's id (for membership) and
|
|
7
|
+
* the set of domains an agent is allowed to use. This is the seam that lets
|
|
8
|
+
* the same core power coding, research, data, devops — differing only by which
|
|
9
|
+
* domains are mounted and which permission rules apply.
|
|
10
|
+
*/
|
|
11
|
+
/** A named group of tools exposed as a pluggable capability. */
|
|
12
|
+
export interface DomainManifest {
|
|
13
|
+
/** Domain id used in agent config `domains: ["coding"]`. */
|
|
14
|
+
readonly id: string;
|
|
15
|
+
/** Tools belonging to this domain. Only `id`/`name` drives membership. */
|
|
16
|
+
readonly tools: readonly ToolDefinition[];
|
|
17
|
+
/** Optional domain-level system prompt (merged into the agent context). */
|
|
18
|
+
readonly systemPrompt?: string;
|
|
19
|
+
/** Domain-level permission defaults (allow/deny/ask) applied to its tools. */
|
|
20
|
+
readonly permissionDefaults?: readonly ToolPermissionRule[];
|
|
21
|
+
}
|
|
22
|
+
/** Summary of a domain for UI/API consumption. */
|
|
23
|
+
export interface DomainSummary {
|
|
24
|
+
readonly id: string;
|
|
25
|
+
readonly toolCount: number;
|
|
26
|
+
readonly toolIds: readonly string[];
|
|
27
|
+
readonly hasSystemPrompt: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Group the coding toolset (file/shell/search/web/image/git/lsp) under domain
|
|
31
|
+
* "coding". Pass the tool definitions the composition root has already built.
|
|
32
|
+
*/
|
|
33
|
+
export declare function createCodingDomain(tools: readonly ToolDefinition[]): DomainManifest;
|
|
34
|
+
/**
|
|
35
|
+
* Build a domain summary map from a list of domain manifests.
|
|
36
|
+
* Useful for API responses and UI rendering.
|
|
37
|
+
*/
|
|
38
|
+
export declare function summarizeDomains(domains: readonly DomainManifest[]): DomainSummary[];
|
|
39
|
+
//# sourceMappingURL=domain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../src/domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD;;;;;;;GAOG;AAEH,gEAAgE;AAChE,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,2EAA2E;IAC3E,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,8EAA8E;IAC9E,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC7D;AAED,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,GAAG,cAAc,CAEnF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,aAAa,EAAE,CAOpF"}
|
package/dist/domain.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Group the coding toolset (file/shell/search/web/image/git/lsp) under domain
|
|
3
|
+
* "coding". Pass the tool definitions the composition root has already built.
|
|
4
|
+
*/
|
|
5
|
+
export function createCodingDomain(tools) {
|
|
6
|
+
return { id: "coding", tools };
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Build a domain summary map from a list of domain manifests.
|
|
10
|
+
* Useful for API responses and UI rendering.
|
|
11
|
+
*/
|
|
12
|
+
export function summarizeDomains(domains) {
|
|
13
|
+
return domains.map((d) => ({
|
|
14
|
+
id: d.id,
|
|
15
|
+
toolCount: d.tools.length,
|
|
16
|
+
toolIds: d.tools.map((t) => t.id),
|
|
17
|
+
hasSystemPrompt: !!d.systemPrompt,
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=domain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../src/domain.ts"],"names":[],"mappings":"AAgCA;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAgC;IACjE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAkC;IACjE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzB,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM;QACzB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY;KAClC,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export interface FileVersion {
|
|
2
|
+
readonly filePath: string;
|
|
3
|
+
readonly sessionId: string;
|
|
4
|
+
readonly originalContent: string;
|
|
5
|
+
readonly newContent: string;
|
|
6
|
+
readonly timestamp: number;
|
|
7
|
+
readonly toolName: string;
|
|
8
|
+
}
|
|
9
|
+
export interface UndoEntry {
|
|
10
|
+
readonly filePath: string;
|
|
11
|
+
readonly originalContent: string;
|
|
12
|
+
readonly newContent: string;
|
|
13
|
+
readonly toolName: string;
|
|
14
|
+
readonly timestamp: number;
|
|
15
|
+
readonly versionId: number;
|
|
16
|
+
}
|
|
17
|
+
export interface FileHistory {
|
|
18
|
+
recordVersion(version: Omit<FileVersion, "timestamp"> & {
|
|
19
|
+
timestamp?: number;
|
|
20
|
+
}): Promise<void>;
|
|
21
|
+
listVersions(filePath: string): Promise<readonly FileVersion[]>;
|
|
22
|
+
getLatestVersion(filePath: string): Promise<FileVersion | null>;
|
|
23
|
+
rollbackTo(filePath: string, targetVersion: number): Promise<string>;
|
|
24
|
+
getAllChanges(): Promise<readonly FileVersion[]>;
|
|
25
|
+
undo(): Promise<UndoEntry | null>;
|
|
26
|
+
redo(): Promise<UndoEntry | null>;
|
|
27
|
+
}
|
|
28
|
+
export declare class InMemoryFileHistory implements FileHistory {
|
|
29
|
+
private versions;
|
|
30
|
+
private undoStack;
|
|
31
|
+
private redoStack;
|
|
32
|
+
private versionCounter;
|
|
33
|
+
recordVersion(version: Omit<FileVersion, "timestamp"> & {
|
|
34
|
+
timestamp?: number;
|
|
35
|
+
}): Promise<void>;
|
|
36
|
+
listVersions(filePath: string): Promise<readonly FileVersion[]>;
|
|
37
|
+
getLatestVersion(filePath: string): Promise<FileVersion | null>;
|
|
38
|
+
rollbackTo(filePath: string, versionIndex: number): Promise<string>;
|
|
39
|
+
getAllChanges(): Promise<readonly FileVersion[]>;
|
|
40
|
+
undo(): Promise<UndoEntry | null>;
|
|
41
|
+
redo(): Promise<UndoEntry | null>;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=file-history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-history.d.ts","sourceRoot":"","sources":["../src/file-history.ts"],"names":[],"mappings":"AAAA,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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export class InMemoryFileHistory {
|
|
2
|
+
versions = [];
|
|
3
|
+
undoStack = [];
|
|
4
|
+
redoStack = [];
|
|
5
|
+
versionCounter = 0;
|
|
6
|
+
async recordVersion(version) {
|
|
7
|
+
const entry = {
|
|
8
|
+
...version,
|
|
9
|
+
timestamp: version.timestamp ?? Date.now(),
|
|
10
|
+
};
|
|
11
|
+
entry;
|
|
12
|
+
this.versions.push(entry);
|
|
13
|
+
this.undoStack.push({
|
|
14
|
+
filePath: entry.filePath,
|
|
15
|
+
originalContent: entry.originalContent,
|
|
16
|
+
newContent: entry.newContent,
|
|
17
|
+
toolName: entry.toolName,
|
|
18
|
+
timestamp: entry.timestamp,
|
|
19
|
+
versionId: this.versionCounter++,
|
|
20
|
+
});
|
|
21
|
+
this.redoStack = [];
|
|
22
|
+
}
|
|
23
|
+
async listVersions(filePath) {
|
|
24
|
+
return this.versions.filter((v) => v.filePath === filePath);
|
|
25
|
+
}
|
|
26
|
+
async getLatestVersion(filePath) {
|
|
27
|
+
const matches = this.versions.filter((v) => v.filePath === filePath);
|
|
28
|
+
return matches.length > 0 ? matches[matches.length - 1] : null;
|
|
29
|
+
}
|
|
30
|
+
async rollbackTo(filePath, versionIndex) {
|
|
31
|
+
const matches = this.versions.filter((v) => v.filePath === filePath);
|
|
32
|
+
if (versionIndex < 0 || versionIndex >= matches.length) {
|
|
33
|
+
throw new Error(`Version index ${versionIndex} out of range (0-${matches.length - 1})`);
|
|
34
|
+
}
|
|
35
|
+
return matches[versionIndex].originalContent;
|
|
36
|
+
}
|
|
37
|
+
async getAllChanges() {
|
|
38
|
+
return [...this.versions];
|
|
39
|
+
}
|
|
40
|
+
async undo() {
|
|
41
|
+
const entry = this.undoStack.pop();
|
|
42
|
+
if (!entry)
|
|
43
|
+
return null;
|
|
44
|
+
this.redoStack.push(entry);
|
|
45
|
+
return entry;
|
|
46
|
+
}
|
|
47
|
+
async redo() {
|
|
48
|
+
const entry = this.redoStack.pop();
|
|
49
|
+
if (!entry)
|
|
50
|
+
return null;
|
|
51
|
+
this.undoStack.push(entry);
|
|
52
|
+
return entry;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=file-history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-history.js","sourceRoot":"","sources":["../src/file-history.ts"],"names":[],"mappings":"AA4BA,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,KAAK,CAAC,iBAAiB,YAAY,oBAAoB,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1F,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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { FileReadTracker } from "./read-tracker.js";
|
|
2
|
+
import { generateDiff } from "./diff.js";
|
|
3
|
+
type RootGetter = string | (() => string);
|
|
4
|
+
export declare function createReadFileTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean, maxFileSize?: number): import("./definitions.js").ToolDefinition<{
|
|
5
|
+
filePath: string;
|
|
6
|
+
stripTrailingNewline?: boolean;
|
|
7
|
+
}, string>;
|
|
8
|
+
export declare function createWriteFileTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean): import("./definitions.js").ToolDefinition<{
|
|
9
|
+
filePath: string;
|
|
10
|
+
content: string;
|
|
11
|
+
}, {
|
|
12
|
+
written: string;
|
|
13
|
+
bytes: number;
|
|
14
|
+
diff: ReturnType<typeof generateDiff>["diff"];
|
|
15
|
+
additions: number;
|
|
16
|
+
removals: number;
|
|
17
|
+
}>;
|
|
18
|
+
export declare function createEditFileTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean): import("./definitions.js").ToolDefinition<{
|
|
19
|
+
filePath: string;
|
|
20
|
+
oldString?: string;
|
|
21
|
+
newString?: string;
|
|
22
|
+
edits?: readonly {
|
|
23
|
+
oldString: string;
|
|
24
|
+
newString: string;
|
|
25
|
+
}[];
|
|
26
|
+
}, {
|
|
27
|
+
edited: string;
|
|
28
|
+
diff: string;
|
|
29
|
+
hunkCount?: number;
|
|
30
|
+
additions: number;
|
|
31
|
+
removals: number;
|
|
32
|
+
}>;
|
|
33
|
+
export declare function createApplyPatchTool(workspaceRoot: RootGetter, tracker?: FileReadTracker, externalDirAccess?: boolean): import("./definitions.js").ToolDefinition<{
|
|
34
|
+
filePath: string;
|
|
35
|
+
patch: string;
|
|
36
|
+
}, {
|
|
37
|
+
patched: string;
|
|
38
|
+
blocks: number;
|
|
39
|
+
diff: string;
|
|
40
|
+
additions: number;
|
|
41
|
+
removals: number;
|
|
42
|
+
}>;
|
|
43
|
+
/**
|
|
44
|
+
* Default excluded directories — convenience only.
|
|
45
|
+
* User tự extend: `config.excludedDirs = [...DEFAULT_EXCLUDED_DIRS, "my-dir"]`
|
|
46
|
+
*/
|
|
47
|
+
export declare const DEFAULT_EXCLUDED_DIRS: string[];
|
|
48
|
+
export declare function createListDirectoryTool(workspaceRoot: RootGetter, externalDirAccess?: boolean, excludedDirs?: string[]): import("./definitions.js").ToolDefinition<{
|
|
49
|
+
dirPath: string;
|
|
50
|
+
}, {
|
|
51
|
+
name: string;
|
|
52
|
+
type: string;
|
|
53
|
+
path: string;
|
|
54
|
+
}[]>;
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=file-tools.d.ts.map
|
|
@@ -0,0 +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;AAmFzC,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"}
|