@wrongstack/tools 0.313.0 → 0.316.1

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 (182) hide show
  1. package/dist/_edit-match.d.ts +3 -2
  2. package/dist/_output-spool.d.ts +4 -3
  3. package/dist/_shell-pick.d.ts +2 -1
  4. package/dist/_spawn-stream.d.ts +2 -1
  5. package/dist/_syntax-check.d.ts +2 -1
  6. package/dist/audit.js +10 -4055
  7. package/dist/bash-kill-guard.d.ts +3 -6
  8. package/dist/bash.js +9 -2308
  9. package/dist/batch-tool-use.js +2 -187
  10. package/dist/browser/index.js +25 -1339
  11. package/dist/browser/network-guard-proxy.d.ts +2 -1
  12. package/dist/builtin.js +69 -33949
  13. package/dist/chunk-22B7GE5T.js +260 -0
  14. package/dist/chunk-2VSZC6QM.js +113 -0
  15. package/dist/chunk-3PVYQFRQ.js +472 -0
  16. package/dist/chunk-42BHI7TN.js +337 -0
  17. package/dist/chunk-4BHUSMNL.js +104 -0
  18. package/dist/chunk-4I4LWFOO.js +431 -0
  19. package/dist/chunk-4UESMQDP.js +122 -0
  20. package/dist/chunk-553IQUMO.js +478 -0
  21. package/dist/chunk-5H4GSJAI.js +223 -0
  22. package/dist/chunk-6RNIFLG4.js +305 -0
  23. package/dist/chunk-7EY5DCRO.js +434 -0
  24. package/dist/chunk-A6BRWIXN.js +317 -0
  25. package/dist/chunk-AHHDWNXC.js +200 -0
  26. package/dist/chunk-BSLVR56S.js +199 -0
  27. package/dist/chunk-BTSFTGIL.js +7 -0
  28. package/dist/chunk-D33S4RQG.js +222 -0
  29. package/dist/chunk-DA4KNE2H.js +4412 -0
  30. package/dist/chunk-DR7JOQTC.js +520 -0
  31. package/dist/chunk-EEOFQDT6.js +898 -0
  32. package/dist/chunk-EJWSCQ6D.js +137 -0
  33. package/dist/chunk-EMRGN4KM.js +170 -0
  34. package/dist/chunk-FQZOHLG3.js +89 -0
  35. package/dist/chunk-GOIZNNOA.js +221 -0
  36. package/dist/chunk-HFXSNKCV.js +196 -0
  37. package/dist/chunk-HYX2TZ7O.js +1272 -0
  38. package/dist/chunk-I64BS3VC.js +15 -0
  39. package/dist/chunk-IVWV2UM6.js +955 -0
  40. package/dist/chunk-IXMNTNW5.js +238 -0
  41. package/dist/chunk-IYK7XGDZ.js +892 -0
  42. package/dist/chunk-J5SKD6LN.js +235 -0
  43. package/dist/chunk-JNNVRHMV.js +2111 -0
  44. package/dist/chunk-JOHXDF3D.js +295 -0
  45. package/dist/chunk-JRJJX3L5.js +424 -0
  46. package/dist/chunk-K3WNSHUF.js +1371 -0
  47. package/dist/chunk-L25CVUVR.js +2830 -0
  48. package/dist/chunk-LIJQMYYX.js +59 -0
  49. package/dist/chunk-LWKUTMD5.js +197 -0
  50. package/dist/chunk-MQX2KXVW.js +54 -0
  51. package/dist/chunk-MZZN7VCD.js +359 -0
  52. package/dist/chunk-NBDZMMG2.js +169 -0
  53. package/dist/chunk-NKJW5GFO.js +366 -0
  54. package/dist/chunk-NKNOBUBU.js +522 -0
  55. package/dist/chunk-O4MBV4AX.js +134 -0
  56. package/dist/chunk-OUBDL3WH.js +3515 -0
  57. package/dist/chunk-PQKK5JH7.js +101 -0
  58. package/dist/chunk-PY2IOS7C.js +1000 -0
  59. package/dist/chunk-Q5JPPCZC.js +12 -0
  60. package/dist/chunk-QBV725YG.js +128 -0
  61. package/dist/chunk-QZQSPUBF.js +315 -0
  62. package/dist/chunk-RGISBZBD.js +231 -0
  63. package/dist/chunk-RJZQWEMS.js +84 -0
  64. package/dist/chunk-RXISBFR5.js +315 -0
  65. package/dist/chunk-S5CCLZL3.js +99 -0
  66. package/dist/chunk-SDLVH5RZ.js +178 -0
  67. package/dist/chunk-T2F4S7U4.js +1723 -0
  68. package/dist/chunk-TEBQ4VPZ.js +163 -0
  69. package/dist/chunk-U4D5S3VQ.js +21 -0
  70. package/dist/chunk-U4VAATKP.js +193 -0
  71. package/dist/chunk-UCYQTZ7F.js +113 -0
  72. package/dist/chunk-UKU2ZX4C.js +203 -0
  73. package/dist/chunk-UNSKG6DC.js +159 -0
  74. package/dist/chunk-V43EQ6VR.js +68 -0
  75. package/dist/chunk-VB3MJGCV.js +610 -0
  76. package/dist/chunk-VFKPWSOX.js +154 -0
  77. package/dist/chunk-VJNHFZ7J.js +190 -0
  78. package/dist/chunk-VXECAJJ7.js +1091 -0
  79. package/dist/chunk-WHIIIREL.js +223 -0
  80. package/dist/chunk-Z6DAKQ3U.js +1 -0
  81. package/dist/chunk-ZJQ4IGXK.js +474 -0
  82. package/dist/chunk-ZLTFLC25.js +385 -0
  83. package/dist/circuit-breaker.js +3 -191
  84. package/dist/codebase-index/ast-invariant-engine.d.ts +5 -4
  85. package/dist/codebase-index/binary-frame.d.ts +0 -2
  86. package/dist/codebase-index/bm25.d.ts +1 -1
  87. package/dist/codebase-index/circuit-breaker.d.ts +2 -1
  88. package/dist/codebase-index/codebase-ast-replace-tool.d.ts +3 -2
  89. package/dist/codebase-index/codebase-impact-analysis-tool.d.ts +4 -3
  90. package/dist/codebase-index/codebase-invariant-check-tool.d.ts +3 -2
  91. package/dist/codebase-index/codebase-repo-map-tool.d.ts +3 -2
  92. package/dist/codebase-index/codebase-skeleton-tool.d.ts +3 -2
  93. package/dist/codebase-index/codebase-targeted-test-tool.d.ts +3 -2
  94. package/dist/codebase-index/content-hash.d.ts +0 -2
  95. package/dist/codebase-index/import-extractor.d.ts +0 -13
  96. package/dist/codebase-index/index-service.d.ts +1 -1
  97. package/dist/codebase-index/index.js +84 -13688
  98. package/dist/codebase-index/languages.d.ts +2 -1
  99. package/dist/codebase-index/module-roots.d.ts +3 -2
  100. package/dist/codebase-index/parser-batch.d.ts +0 -5
  101. package/dist/codebase-index/parser-dispatch.d.ts +2 -1
  102. package/dist/codebase-index/parser-output.d.ts +4 -3
  103. package/dist/codebase-index/parser-worker-pool.d.ts +0 -2
  104. package/dist/codebase-index/parser-worker-script.d.ts +1 -16
  105. package/dist/codebase-index/parser-worker-script.js +8 -3995
  106. package/dist/codebase-index/project-server-client-state.d.ts +2 -2
  107. package/dist/codebase-index/project-server-endpoint.d.ts +0 -15
  108. package/dist/codebase-index/project-server.js +60 -8548
  109. package/dist/codebase-index/tree-sitter/visitor.d.ts +2 -1
  110. package/dist/codebase-index/tree-sitter-parser.d.ts +0 -2
  111. package/dist/codebase-index/ts-parser.d.ts +1 -1
  112. package/dist/codebase-index/vector-search.d.ts +2 -1
  113. package/dist/codebase-index/wal-maintenance.d.ts +3 -2
  114. package/dist/codebase-index/worker.js +20 -8416
  115. package/dist/codebase-index/writer-admin.d.ts +0 -1
  116. package/dist/codebase-index/writer-search.d.ts +0 -9
  117. package/dist/design.js +2 -299
  118. package/dist/diff.js +4 -256
  119. package/dist/document.js +4 -222
  120. package/dist/e2e.js +5 -476
  121. package/dist/edit.js +14 -10200
  122. package/dist/exec.js +16 -3131
  123. package/dist/fetch.js +8 -398
  124. package/dist/format.js +10 -3750
  125. package/dist/generic-parser-VUXDIAOZ.js +13 -0
  126. package/dist/git.js +4 -380
  127. package/dist/glob.js +6 -280
  128. package/dist/go-parser-JXYKJHRC.js +469 -0
  129. package/dist/grep.js +7 -604
  130. package/dist/index.js +318 -35387
  131. package/dist/install.js +10 -4091
  132. package/dist/json-parser-IBHZ4BZC.js +213 -0
  133. package/dist/json.js +4 -665
  134. package/dist/kanban-contract-actions.d.ts +1 -1
  135. package/dist/kanban-detail-actions.d.ts +2 -1
  136. package/dist/kanban-presence.d.ts +2 -1
  137. package/dist/kanban-serializer.d.ts +0 -8
  138. package/dist/kanban-split-task-handler.d.ts +2 -2
  139. package/dist/kanban-tool-types.d.ts +2 -1
  140. package/dist/kanban.js +3 -2096
  141. package/dist/languages/diagnostics.d.ts +2 -1
  142. package/dist/languages/index.js +23 -4664
  143. package/dist/languages/legacy-bridge.d.ts +3 -2
  144. package/dist/languages/types.d.ts +2 -1
  145. package/dist/legacy-bridge-7M6QLUQN.js +18 -0
  146. package/dist/lint.js +10 -3706
  147. package/dist/logs.js +4 -287
  148. package/dist/memory.js +6 -215
  149. package/dist/mode.js +3 -99
  150. package/dist/outdated.js +4 -5170
  151. package/dist/pack.js +65 -33897
  152. package/dist/parser-dispatch-QH4XPGG6.js +14 -0
  153. package/dist/patch.js +13 -9935
  154. package/dist/plan.js +5 -3286
  155. package/dist/process-registry.js +8 -651
  156. package/dist/ps-slash.js +12 -1439
  157. package/dist/pwsh.d.ts +0 -1
  158. package/dist/py-parser-IS4HKYMF.js +16 -0
  159. package/dist/read.js +13 -9816
  160. package/dist/replace.js +15 -10014
  161. package/dist/rs-parser-XHUUO2KZ.js +81 -0
  162. package/dist/scaffold.js +4 -253
  163. package/dist/search.js +5 -585
  164. package/dist/session-kanban-sync.d.ts +0 -6
  165. package/dist/session-kanban.js +30 -972
  166. package/dist/skill.js +2 -215
  167. package/dist/spawn-background.d.ts +1 -1
  168. package/dist/task.js +5 -3410
  169. package/dist/test.js +10 -3773
  170. package/dist/todo.js +4 -2891
  171. package/dist/tool-help.js +3 -123
  172. package/dist/tool-search.js +3 -79
  173. package/dist/tool-tier.js +68 -33984
  174. package/dist/tool-use.js +2 -93
  175. package/dist/tree-sitter-parser-AIERW3YI.js +15 -0
  176. package/dist/tree.js +4 -288
  177. package/dist/ts-parser-RCTYKSVI.js +232 -0
  178. package/dist/typecheck.js +10 -3753
  179. package/dist/win32.js +6 -60
  180. package/dist/write.js +14 -9882
  181. package/dist/yaml-parser-4SAXV3PL.js +157 -0
  182. package/package.json +5 -5
package/dist/document.js CHANGED
@@ -1,225 +1,7 @@
1
- // src/document.ts
2
- import * as fs from "node:fs/promises";
3
- import * as path2 from "node:path";
4
-
5
- // src/_util.ts
6
- import * as fsp from "node:fs/promises";
7
- import * as path from "node:path";
8
- import * as Core from "@wrongstack/core/utils";
9
- function resolvePath(input, ctx) {
10
- return path.isAbsolute(input) ? path.normalize(input) : path.resolve(ctx.workingDir ?? ctx.cwd, input);
11
- }
12
- function allowedRoots(ctx) {
13
- return [path.resolve(ctx.projectRoot), path.resolve(Core.wstackGlobalRoot())];
14
- }
15
- function isInsideAny(target, roots) {
16
- return roots.some((root) => {
17
- const rel = path.relative(root, target);
18
- return rel === "" || !rel.startsWith("..") && !path.isAbsolute(rel);
19
- });
20
- }
21
- function ensureInsideRoot(absPath, ctx) {
22
- const target = path.resolve(absPath);
23
- if (ctx.allowOutsideProjectRoot) return target;
24
- if (isInsideAny(target, allowedRoots(ctx))) return target;
25
- throw new Error(`Path "${absPath}" is outside project root "${path.resolve(ctx.projectRoot)}"`);
26
- }
27
- function safeResolve(input, ctx) {
28
- return ensureInsideRoot(resolvePath(input, ctx), ctx);
29
- }
30
- async function resolveRealInsideRoot(absPath, ctx) {
31
- if (ctx.allowOutsideProjectRoot) return absPath;
32
- const realRoots = await Promise.all(
33
- allowedRoots(ctx).map((r) => fsp.realpath(r).catch(() => path.resolve(r)))
34
- );
35
- let probe = absPath;
36
- const pendingTail = [];
37
- for (; ; ) {
38
- let real;
39
- try {
40
- real = await fsp.realpath(probe);
41
- } catch (err) {
42
- if (err.code === "ENOENT") {
43
- const parent = path.dirname(probe);
44
- if (parent === probe) return absPath;
45
- pendingTail.unshift(path.basename(probe));
46
- probe = parent;
47
- continue;
48
- }
49
- throw err;
50
- }
51
- const candidate = pendingTail.length > 0 ? path.join(real, ...pendingTail) : real;
52
- if (isInsideAny(candidate, realRoots)) {
53
- return candidate;
54
- }
55
- throw new Error(
56
- `Path "${absPath}" resolves through a symlink outside project root "${realRoots[0]}"`
57
- );
58
- }
59
- }
60
- async function safeResolveReal(input, ctx) {
61
- const abs = safeResolve(input, ctx);
62
- return await resolveRealInsideRoot(abs, ctx);
63
- }
64
-
65
- // src/document.ts
66
- var documentTool = {
67
- name: "document",
68
- category: "Project",
69
- description: "DEPRECATED \u2014 read-only preview stub that lists undocumented symbols as `skipped` candidates. It never writes files and does not generate real docstrings. If the auto-doc plugin is enabled, use its `auto_doc` tool (with `dry_run: true` to preview) instead.",
70
- usageHint: "Deprecated: this tool only lists undocumented symbols with placeholder comments \u2014 it does not generate real JSDoc/TSDoc and writes nothing. When the auto-doc plugin is enabled, prefer its `auto_doc` tool (`dry_run: true` for previewing, without it for writing).",
71
- permission: "auto",
72
- mutating: false,
73
- timeoutMs: 3e4,
74
- capabilities: ["fs.read"],
75
- icon: "document",
76
- inputSchema: {
77
- type: "object",
78
- properties: {
79
- target: {
80
- type: "string",
81
- enum: ["file", "function", "class", "type", "all"],
82
- description: "What to document"
83
- },
84
- path: {
85
- type: "string",
86
- description: "Specific file path to document"
87
- },
88
- files: {
89
- type: "string",
90
- description: "File(s) to process: single path, comma-separated list, or glob"
91
- },
92
- style: {
93
- type: "string",
94
- enum: ["jsdoc", "tsdoc", "block"],
95
- description: "Documentation style (default: jsdoc)"
96
- },
97
- cwd: { type: "string", description: "Working directory (default: cwd)" }
98
- }
99
- },
100
- async execute(input, ctx) {
101
- const cwd = input.cwd ? await safeResolveReal(input.cwd, ctx) : ctx.cwd;
102
- const style = input.style ?? "jsdoc";
103
- const results = [];
104
- let filesProcessed = 0;
105
- let itemsDocumented = 0;
106
- const fileList = input.files ? await resolveFiles(
107
- Array.isArray(input.files) ? input.files.join(",") : input.files,
108
- cwd,
109
- ctx
110
- ) : input.path ? [await safeResolveReal(input.path, ctx)] : [];
111
- for (const absPath of fileList) {
112
- try {
113
- const content = await fs.readFile(absPath, "utf8");
114
- filesProcessed++;
115
- const processed = processFile(
116
- content,
117
- absPath,
118
- style,
119
- input.overwrite ?? false,
120
- input.target ?? "all"
121
- );
122
- results.push(...processed);
123
- itemsDocumented += processed.filter((r) => r.status === "documented").length;
124
- } catch (e) {
125
- results.push({
126
- path: absPath,
127
- name: absPath.split("/").pop() ?? absPath,
128
- signature: "",
129
- docstring: "",
130
- status: "error",
131
- error: e instanceof Error ? e.message : String(e)
132
- });
133
- }
134
- }
135
- return {
136
- files_processed: filesProcessed,
137
- items_documented: itemsDocumented,
138
- results,
139
- style
140
- };
141
- }
142
- };
143
- async function resolveFiles(filesInput, cwd, ctx) {
144
- const files = filesInput.split(",");
145
- const resolved = [];
146
- for (const f of files) {
147
- const entry = f.trim();
148
- if (!entry) continue;
149
- let absPath;
150
- try {
151
- absPath = ensureInsideRoot(path2.resolve(cwd, entry), ctx);
152
- } catch {
153
- continue;
154
- }
155
- try {
156
- const stat2 = await fs.stat(absPath);
157
- if (stat2.isFile()) resolved.push(absPath);
158
- } catch {
159
- }
160
- }
161
- return resolved;
162
- }
163
- function processFile(content, absPath, _style, _overwrite, target) {
164
- const results = [];
165
- const functionRegex = /(?:async\s+)?function\s+(\w+)\s*\(([^)]*)\)/g;
166
- const arrowRegex = /(?:const|let|var)\s+(\w+)\s*=\s*(?:async\s+)?\(([^)]*)\)\s*=>/g;
167
- const classRegex = /class\s+(\w+)/g;
168
- const typeRegex = /(?:type|interface)\s+(\w+)\s*[=<]/g;
169
- const allMatches = [];
170
- if (target === "all" || target === "function") {
171
- for (const m of content.matchAll(functionRegex)) {
172
- if (!m[1]) continue;
173
- allMatches.push({
174
- name: m[1],
175
- sig: m[2] ?? "",
176
- type: "function",
177
- line: content.slice(0, m.index).split("\n").length
178
- });
179
- }
180
- for (const m of content.matchAll(arrowRegex)) {
181
- if (!m[1]) continue;
182
- allMatches.push({
183
- name: m[1],
184
- sig: m[2] ?? "",
185
- type: "arrow",
186
- line: content.slice(0, m.index).split("\n").length
187
- });
188
- }
189
- }
190
- if (target === "all" || target === "class") {
191
- for (const m of content.matchAll(classRegex)) {
192
- if (!m[1]) continue;
193
- allMatches.push({
194
- name: m[1],
195
- sig: "",
196
- type: "class",
197
- line: content.slice(0, m.index).split("\n").length
198
- });
199
- }
200
- }
201
- if (target === "all" || target === "type") {
202
- for (const m of content.matchAll(typeRegex)) {
203
- if (!m[1]) continue;
204
- allMatches.push({
205
- name: m[1],
206
- sig: m[0] ?? "",
207
- type: "type",
208
- line: content.slice(0, m.index).split("\n").length
209
- });
210
- }
211
- }
212
- for (const m of allMatches) {
213
- results.push({
214
- path: absPath,
215
- name: m.name,
216
- signature: m.sig,
217
- docstring: `/** ${m.name} - documented at line ${m.line} */`,
218
- status: "skipped"
219
- });
220
- }
221
- return results;
222
- }
1
+ import {
2
+ documentTool
3
+ } from "./chunk-EMRGN4KM.js";
4
+ import "./chunk-D33S4RQG.js";
223
5
  export {
224
6
  documentTool
225
7
  };