@wrongstack/tools 0.1.1 → 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.
- package/dist/audit.d.ts +25 -0
- package/dist/audit.js +209 -0
- package/dist/audit.js.map +1 -0
- package/dist/bash.d.ts +16 -0
- package/dist/bash.js +180 -0
- package/dist/bash.js.map +1 -0
- package/dist/batch-tool-use.d.ts +26 -0
- package/dist/batch-tool-use.js +106 -0
- package/dist/batch-tool-use.js.map +1 -0
- package/dist/builtin.d.ts +5 -0
- package/dist/builtin.js +3735 -0
- package/dist/builtin.js.map +1 -0
- package/dist/diff.d.ts +20 -0
- package/dist/diff.js +142 -0
- package/dist/diff.js.map +1 -0
- package/dist/document.d.ts +27 -0
- package/dist/document.js +148 -0
- package/dist/document.js.map +1 -0
- package/dist/edit.d.ts +22 -0
- package/dist/edit.js +138 -0
- package/dist/edit.js.map +1 -0
- package/dist/exec.d.ts +21 -0
- package/dist/exec.js +159 -0
- package/dist/exec.js.map +1 -0
- package/dist/fetch.d.ts +15 -0
- package/dist/fetch.js +213 -0
- package/dist/fetch.js.map +1 -0
- package/dist/format.d.ts +18 -0
- package/dist/format.js +194 -0
- package/dist/format.js.map +1 -0
- package/dist/git.d.ts +27 -0
- package/dist/git.js +174 -0
- package/dist/git.js.map +1 -0
- package/dist/glob.d.ts +14 -0
- package/dist/glob.js +101 -0
- package/dist/glob.js.map +1 -0
- package/dist/grep.d.ts +20 -0
- package/dist/grep.js +264 -0
- package/dist/grep.js.map +1 -0
- package/dist/index.d.ts +34 -563
- package/dist/index.js +717 -442
- package/dist/index.js.map +1 -1
- package/dist/install.d.ts +19 -0
- package/dist/install.js +186 -0
- package/dist/install.js.map +1 -0
- package/dist/json.d.ts +20 -0
- package/dist/json.js +124 -0
- package/dist/json.js.map +1 -0
- package/dist/lint.d.ts +20 -0
- package/dist/lint.js +191 -0
- package/dist/lint.js.map +1 -0
- package/dist/logs.d.ts +27 -0
- package/dist/logs.js +180 -0
- package/dist/logs.js.map +1 -0
- package/dist/memory.d.ts +22 -0
- package/dist/memory.js +53 -0
- package/dist/memory.js.map +1 -0
- package/dist/mode.d.ts +20 -0
- package/dist/mode.js +81 -0
- package/dist/mode.js.map +1 -0
- package/dist/outdated.d.ts +26 -0
- package/dist/outdated.js +138 -0
- package/dist/outdated.js.map +1 -0
- package/dist/patch.d.ts +18 -0
- package/dist/patch.js +101 -0
- package/dist/patch.js.map +1 -0
- package/dist/read.d.ts +16 -0
- package/dist/read.js +81 -0
- package/dist/read.js.map +1 -0
- package/dist/replace.d.ts +23 -0
- package/dist/replace.js +196 -0
- package/dist/replace.js.map +1 -0
- package/dist/scaffold.d.ts +20 -0
- package/dist/scaffold.js +185 -0
- package/dist/scaffold.js.map +1 -0
- package/dist/search.d.ts +20 -0
- package/dist/search.js +212 -0
- package/dist/search.js.map +1 -0
- package/dist/test.d.ts +24 -0
- package/dist/test.js +247 -0
- package/dist/test.js.map +1 -0
- package/dist/todo.d.ts +12 -0
- package/dist/todo.js +53 -0
- package/dist/todo.js.map +1 -0
- package/dist/tool-help.d.ts +23 -0
- package/dist/tool-help.js +122 -0
- package/dist/tool-help.js.map +1 -0
- package/dist/tool-search.d.ts +22 -0
- package/dist/tool-search.js +70 -0
- package/dist/tool-search.js.map +1 -0
- package/dist/tool-use.d.ts +16 -0
- package/dist/tool-use.js +79 -0
- package/dist/tool-use.js.map +1 -0
- package/dist/tree.d.ts +21 -0
- package/dist/tree.js +176 -0
- package/dist/tree.js.map +1 -0
- package/dist/typecheck.d.ts +19 -0
- package/dist/typecheck.js +181 -0
- package/dist/typecheck.js.map +1 -0
- package/dist/write.d.ts +15 -0
- package/dist/write.js +77 -0
- package/dist/write.js.map +1 -0
- package/package.json +137 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/_util.ts","../src/write.ts"],"names":["stat"],"mappings":"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","file":"write.js","sourcesContent":["import * as path from 'node:path';\r\nimport { spawn } from 'node:child_process';\r\nimport type { Context, ToolProgressEvent } from '@wrongstack/core';\r\n\r\nexport function resolvePath(input: string, ctx: Context): string {\r\n return path.isAbsolute(input) ? path.normalize(input) : path.resolve(ctx.cwd, input);\r\n}\r\n\r\nexport function ensureInsideRoot(absPath: string, ctx: Context): string {\r\n const root = path.resolve(ctx.projectRoot);\r\n const target = path.resolve(absPath);\r\n const rel = path.relative(root, target);\r\n if (rel.startsWith('..') || path.isAbsolute(rel)) {\r\n throw new Error(`Path \"${absPath}\" is outside project root \"${root}\"`);\r\n }\r\n return target;\r\n}\r\n\r\nexport function safeResolve(input: string, ctx: Context): string {\r\n return ensureInsideRoot(resolvePath(input, ctx), ctx);\r\n}\r\n\r\nexport function truncateMiddle(s: string, max: number): string {\r\n if (Buffer.byteLength(s, 'utf8') <= max) return s;\r\n const half = Math.floor(max / 2);\r\n return (\r\n s.slice(0, half) +\r\n `\\n…[truncated ${Buffer.byteLength(s, 'utf8') - max} bytes from middle]…\\n` +\r\n s.slice(-half)\r\n );\r\n}\r\n\r\nexport function isBinaryBuffer(buf: Buffer): boolean {\r\n const len = Math.min(buf.length, 8192);\r\n for (let i = 0; i < len; i++) {\r\n if (buf[i] === 0) return true;\r\n }\r\n return false;\r\n}\r\n\r\nexport interface SpawnStreamResult {\r\n stdout: string;\r\n stderr: string;\r\n exitCode: number;\r\n truncated: boolean;\r\n error?: string;\r\n}\r\n\r\nexport interface SpawnStreamOptions {\r\n cmd: string;\r\n args: string[];\r\n cwd: string;\r\n signal: AbortSignal;\r\n maxBytes?: number;\r\n /** Bytes of new stdout/stderr to accumulate before yielding a `partial_output` event. */\r\n flushBytes?: number;\r\n}\r\n\r\n/**\r\n * Spawn a child process and yield `partial_output` progress events as\r\n * stdout/stderr arrive (batched by byte threshold), then return the full\r\n * buffered result. Shared between install/lint/format/typecheck/test/audit\r\n * so the TUI live tail sees consistent progress regardless of which tool\r\n * is running.\r\n */\r\nexport async function* spawnStream(\r\n opts: SpawnStreamOptions,\r\n): AsyncGenerator<ToolProgressEvent, SpawnStreamResult> {\r\n const max = opts.maxBytes ?? 200_000;\r\n const flushAt = opts.flushBytes ?? 4 * 1024;\r\n let stdout = '';\r\n let stderr = '';\r\n let pending = '';\r\n let error: string | undefined;\r\n\r\n const child = spawn(opts.cmd, opts.args, {\r\n cwd: opts.cwd,\r\n signal: opts.signal,\r\n stdio: ['ignore', 'pipe', 'pipe'],\r\n });\r\n\r\n type Chunk = { kind: 'out' | 'err' | 'close' | 'error'; data: string; code?: number };\r\n const queue: Chunk[] = [];\r\n let waiter: (() => void) | undefined;\r\n const wake = () => {\r\n if (waiter) {\r\n const w = waiter;\r\n waiter = undefined;\r\n w();\r\n }\r\n };\r\n\r\n child.stdout?.on('data', (c) => {\r\n const s = c.toString();\r\n if (stdout.length < max) stdout += s;\r\n queue.push({ kind: 'out', data: s });\r\n wake();\r\n });\r\n child.stderr?.on('data', (c) => {\r\n const s = c.toString();\r\n if (stderr.length < max) stderr += s;\r\n queue.push({ kind: 'err', data: s });\r\n wake();\r\n });\r\n child.on('error', (e) => {\r\n error = e.message;\r\n queue.push({ kind: 'error', data: e.message });\r\n wake();\r\n });\r\n child.on('close', (code) => {\r\n queue.push({ kind: 'close', data: '', code: code ?? 0 });\r\n wake();\r\n });\r\n\r\n let exitCode = 0;\r\n let spawnFailed = false;\r\n for (;;) {\r\n while (queue.length === 0) {\r\n await new Promise<void>((resolve) => {\r\n waiter = resolve;\r\n });\r\n }\r\n const chunk = queue.shift()!;\r\n if (chunk.kind === 'close') {\r\n // If we already saw a spawn error (ENOENT etc.), keep exitCode=1\r\n // rather than the negative platform code Node fabricates.\r\n if (!spawnFailed) exitCode = chunk.code ?? 0;\r\n break;\r\n }\r\n if (chunk.kind === 'error') {\r\n spawnFailed = true;\r\n exitCode = 1;\r\n // close usually follows\r\n continue;\r\n }\r\n pending += chunk.data;\r\n if (pending.length >= flushAt) {\r\n yield { type: 'partial_output', text: pending };\r\n pending = '';\r\n }\r\n }\r\n if (pending.length > 0) {\r\n yield { type: 'partial_output', text: pending };\r\n }\r\n\r\n return {\r\n stdout,\r\n stderr,\r\n exitCode,\r\n truncated: stdout.length >= max || stderr.length >= max,\r\n error,\r\n };\r\n}\r\n","import * as fs from 'node:fs/promises';\nimport { atomicWrite, unifiedDiff } from '@wrongstack/core';\nimport type { Tool } from '@wrongstack/core';\nimport { safeResolve } from './_util.js';\n\ninterface WriteInput {\n path: string;\n content: string;\n}\n\ninterface WriteOutput {\n path: string;\n bytes_written: number;\n created: boolean;\n diff?: string;\n}\n\nexport const writeTool: Tool<WriteInput, WriteOutput> = {\n name: 'write',\n description: 'Write or overwrite a file. For existing files, prefer `edit` over `write`.',\n usageHint:\n 'Use `write` for new files or full replacements. For partial edits use `edit`. Existing files must have been `read` first in this session.',\n permission: 'confirm',\n mutating: true,\n timeoutMs: 5_000,\n inputSchema: {\n type: 'object',\n properties: {\n path: { type: 'string' },\n content: { type: 'string' },\n },\n required: ['path', 'content'],\n },\n async execute(input, ctx) {\n if (!input?.path) throw new Error('write: path is required');\n if (input.content === undefined) throw new Error('write: content is required');\n const absPath = safeResolve(input.path, ctx);\n\n let existed = false;\n let prev = '';\n try {\n const stat = await fs.stat(absPath);\n existed = stat.isFile();\n if (existed) {\n if (!ctx.hasRead(absPath)) {\n throw new Error(\n `write: file \"${input.path}\" exists but was not read in this session. Read it first.`,\n );\n }\n prev = await fs.readFile(absPath, 'utf8');\n }\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code !== 'ENOENT') {\n throw err;\n }\n }\n\n await atomicWrite(absPath, input.content);\n\n const diff = existed\n ? unifiedDiff(prev, input.content, { fromFile: input.path, toFile: input.path })\n : `+++ ${input.path}\\n+ (new file, ${input.content.split('\\n').length} lines)`;\n\n const stat = await fs.stat(absPath);\n ctx.recordRead(absPath, stat.mtimeMs);\n\n return {\n path: absPath,\n bytes_written: Buffer.byteLength(input.content, 'utf8'),\n created: !existed,\n diff,\n };\n },\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,29 +1,162 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wrongstack/tools",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
|
+
"sideEffects": false,
|
|
7
8
|
"exports": {
|
|
8
9
|
".": {
|
|
9
10
|
"types": "./dist/index.d.ts",
|
|
10
11
|
"import": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./builtin": {
|
|
14
|
+
"types": "./dist/builtin.d.ts",
|
|
15
|
+
"import": "./dist/builtin.js"
|
|
16
|
+
},
|
|
17
|
+
"./read": {
|
|
18
|
+
"types": "./dist/read.d.ts",
|
|
19
|
+
"import": "./dist/read.js"
|
|
20
|
+
},
|
|
21
|
+
"./write": {
|
|
22
|
+
"types": "./dist/write.d.ts",
|
|
23
|
+
"import": "./dist/write.js"
|
|
24
|
+
},
|
|
25
|
+
"./edit": {
|
|
26
|
+
"types": "./dist/edit.d.ts",
|
|
27
|
+
"import": "./dist/edit.js"
|
|
28
|
+
},
|
|
29
|
+
"./replace": {
|
|
30
|
+
"types": "./dist/replace.d.ts",
|
|
31
|
+
"import": "./dist/replace.js"
|
|
32
|
+
},
|
|
33
|
+
"./glob": {
|
|
34
|
+
"types": "./dist/glob.d.ts",
|
|
35
|
+
"import": "./dist/glob.js"
|
|
36
|
+
},
|
|
37
|
+
"./grep": {
|
|
38
|
+
"types": "./dist/grep.d.ts",
|
|
39
|
+
"import": "./dist/grep.js"
|
|
40
|
+
},
|
|
41
|
+
"./bash": {
|
|
42
|
+
"types": "./dist/bash.d.ts",
|
|
43
|
+
"import": "./dist/bash.js"
|
|
44
|
+
},
|
|
45
|
+
"./exec": {
|
|
46
|
+
"types": "./dist/exec.d.ts",
|
|
47
|
+
"import": "./dist/exec.js"
|
|
48
|
+
},
|
|
49
|
+
"./fetch": {
|
|
50
|
+
"types": "./dist/fetch.d.ts",
|
|
51
|
+
"import": "./dist/fetch.js"
|
|
52
|
+
},
|
|
53
|
+
"./search": {
|
|
54
|
+
"types": "./dist/search.d.ts",
|
|
55
|
+
"import": "./dist/search.js"
|
|
56
|
+
},
|
|
57
|
+
"./todo": {
|
|
58
|
+
"types": "./dist/todo.d.ts",
|
|
59
|
+
"import": "./dist/todo.js"
|
|
60
|
+
},
|
|
61
|
+
"./git": {
|
|
62
|
+
"types": "./dist/git.d.ts",
|
|
63
|
+
"import": "./dist/git.js"
|
|
64
|
+
},
|
|
65
|
+
"./patch": {
|
|
66
|
+
"types": "./dist/patch.d.ts",
|
|
67
|
+
"import": "./dist/patch.js"
|
|
68
|
+
},
|
|
69
|
+
"./json": {
|
|
70
|
+
"types": "./dist/json.d.ts",
|
|
71
|
+
"import": "./dist/json.js"
|
|
72
|
+
},
|
|
73
|
+
"./diff": {
|
|
74
|
+
"types": "./dist/diff.d.ts",
|
|
75
|
+
"import": "./dist/diff.js"
|
|
76
|
+
},
|
|
77
|
+
"./tree": {
|
|
78
|
+
"types": "./dist/tree.d.ts",
|
|
79
|
+
"import": "./dist/tree.js"
|
|
80
|
+
},
|
|
81
|
+
"./lint": {
|
|
82
|
+
"types": "./dist/lint.d.ts",
|
|
83
|
+
"import": "./dist/lint.js"
|
|
84
|
+
},
|
|
85
|
+
"./format": {
|
|
86
|
+
"types": "./dist/format.d.ts",
|
|
87
|
+
"import": "./dist/format.js"
|
|
88
|
+
},
|
|
89
|
+
"./typecheck": {
|
|
90
|
+
"types": "./dist/typecheck.d.ts",
|
|
91
|
+
"import": "./dist/typecheck.js"
|
|
92
|
+
},
|
|
93
|
+
"./test": {
|
|
94
|
+
"types": "./dist/test.d.ts",
|
|
95
|
+
"import": "./dist/test.js"
|
|
96
|
+
},
|
|
97
|
+
"./install": {
|
|
98
|
+
"types": "./dist/install.d.ts",
|
|
99
|
+
"import": "./dist/install.js"
|
|
100
|
+
},
|
|
101
|
+
"./audit": {
|
|
102
|
+
"types": "./dist/audit.d.ts",
|
|
103
|
+
"import": "./dist/audit.js"
|
|
104
|
+
},
|
|
105
|
+
"./outdated": {
|
|
106
|
+
"types": "./dist/outdated.d.ts",
|
|
107
|
+
"import": "./dist/outdated.js"
|
|
108
|
+
},
|
|
109
|
+
"./logs": {
|
|
110
|
+
"types": "./dist/logs.d.ts",
|
|
111
|
+
"import": "./dist/logs.js"
|
|
112
|
+
},
|
|
113
|
+
"./document": {
|
|
114
|
+
"types": "./dist/document.d.ts",
|
|
115
|
+
"import": "./dist/document.js"
|
|
116
|
+
},
|
|
117
|
+
"./scaffold": {
|
|
118
|
+
"types": "./dist/scaffold.d.ts",
|
|
119
|
+
"import": "./dist/scaffold.js"
|
|
120
|
+
},
|
|
121
|
+
"./tool-search": {
|
|
122
|
+
"types": "./dist/tool-search.d.ts",
|
|
123
|
+
"import": "./dist/tool-search.js"
|
|
124
|
+
},
|
|
125
|
+
"./tool-use": {
|
|
126
|
+
"types": "./dist/tool-use.d.ts",
|
|
127
|
+
"import": "./dist/tool-use.js"
|
|
128
|
+
},
|
|
129
|
+
"./batch-tool-use": {
|
|
130
|
+
"types": "./dist/batch-tool-use.d.ts",
|
|
131
|
+
"import": "./dist/batch-tool-use.js"
|
|
132
|
+
},
|
|
133
|
+
"./tool-help": {
|
|
134
|
+
"types": "./dist/tool-help.d.ts",
|
|
135
|
+
"import": "./dist/tool-help.js"
|
|
136
|
+
},
|
|
137
|
+
"./memory": {
|
|
138
|
+
"types": "./dist/memory.d.ts",
|
|
139
|
+
"import": "./dist/memory.js"
|
|
140
|
+
},
|
|
141
|
+
"./mode": {
|
|
142
|
+
"types": "./dist/mode.d.ts",
|
|
143
|
+
"import": "./dist/mode.js"
|
|
11
144
|
}
|
|
12
145
|
},
|
|
13
146
|
"files": [
|
|
14
147
|
"dist"
|
|
15
148
|
],
|
|
16
149
|
"dependencies": {
|
|
17
|
-
"@wrongstack/core": "0.1.
|
|
150
|
+
"@wrongstack/core": "0.1.3"
|
|
18
151
|
},
|
|
19
152
|
"devDependencies": {
|
|
20
|
-
"@types/node": "^22.
|
|
153
|
+
"@types/node": "^22.19.19",
|
|
21
154
|
"tsup": "^8.3.5",
|
|
22
155
|
"typescript": "^5.7.2"
|
|
23
156
|
},
|
|
24
157
|
"scripts": {
|
|
25
158
|
"build": "tsup",
|
|
26
159
|
"typecheck": "tsc --noEmit",
|
|
27
|
-
"clean": "
|
|
160
|
+
"clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\""
|
|
28
161
|
}
|
|
29
162
|
}
|