@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
@@ -0,0 +1,213 @@
1
+ import {
2
+ detectLang
3
+ } from "./chunk-TEBQ4VPZ.js";
4
+
5
+ // src/codebase-index/json-parser.ts
6
+ import { expectDefined } from "@wrongstack/core/utils";
7
+ import * as path from "node:path";
8
+ function parseSymbols(opts) {
9
+ const { file, content, lang } = opts;
10
+ try {
11
+ return regexParse({ file, content, lang });
12
+ } catch {
13
+ return { file, lang, symbols: [], mtimeMs: Date.now() };
14
+ }
15
+ }
16
+ function regexParse(opts) {
17
+ const { file, content, lang } = opts;
18
+ const symbols = [];
19
+ const basename2 = path.basename(file).toLowerCase();
20
+ const isPackageJson = basename2 === "package.json";
21
+ const isTsconfig = basename2 === "tsconfig.json" || basename2 === "tsconfig.build.json";
22
+ const isJsonSchema = content.includes("$schema") || content.includes("$id") || content.includes("$ref");
23
+ const isOpenApi = content.includes("openapi") || content.includes("swagger");
24
+ const lines = content.split("\n");
25
+ const lineOffsets = [0];
26
+ for (let i = 0; i < lines.length; i++) {
27
+ lineOffsets.push((lineOffsets[i] ?? 0) + (lines[i]?.length ?? 0) + 1);
28
+ }
29
+ function lineFromOffset(offset) {
30
+ let lo = 0;
31
+ let hi = lineOffsets.length - 1;
32
+ while (lo < hi) {
33
+ const mid = lo + hi + 1 >>> 1;
34
+ if (expectDefined(lineOffsets[mid]) <= offset) lo = mid;
35
+ else hi = mid - 1;
36
+ }
37
+ return lo + 1;
38
+ }
39
+ const rootMatch = content.match(/^\s*\{/m);
40
+ if (rootMatch) {
41
+ const offset = expectDefined(rootMatch.index);
42
+ const line = lineFromOffset(offset);
43
+ symbols.push(
44
+ makeSymbol({
45
+ name: path.basename(file),
46
+ kind: "object",
47
+ line,
48
+ col: 0,
49
+ signature: `"${path.basename(file)}" = { ... }`,
50
+ file,
51
+ lang
52
+ })
53
+ );
54
+ }
55
+ const topLevelKeyRegex = /^\s*"([^"]+)"\s*:/gm;
56
+ for (let match = topLevelKeyRegex.exec(content); match !== null; match = topLevelKeyRegex.exec(content)) {
57
+ const key = expectDefined(match[1]);
58
+ const offset = match.index ?? 0;
59
+ const line = lineFromOffset(offset);
60
+ const col = offset - (lineOffsets[line - 1] ?? 0);
61
+ let kind = "property";
62
+ let signature = `"${key}": ..."`;
63
+ if (isPackageJson) {
64
+ if (key === "scripts" || key === "dependencies" || key === "devDependencies" || key === "peerDependencies" || key === "optionalDependencies") {
65
+ kind = "const";
66
+ signature = `"${key}": { ... }`;
67
+ }
68
+ } else if (isTsconfig) {
69
+ if (key === "compilerOptions") {
70
+ kind = "property";
71
+ signature = `"compilerOptions": { ... }`;
72
+ }
73
+ }
74
+ if (isJsonSchema || isOpenApi) {
75
+ if (key === "$schema" || key === "$id") {
76
+ kind = "schema";
77
+ signature = `"${key}": "..."`;
78
+ } else if (key === "$ref") {
79
+ kind = "schema";
80
+ signature = `"$ref": "..."`;
81
+ }
82
+ }
83
+ symbols.push(
84
+ makeSymbol({
85
+ name: key,
86
+ kind,
87
+ line,
88
+ col,
89
+ signature,
90
+ file,
91
+ lang
92
+ })
93
+ );
94
+ if (isPackageJson && key === "scripts") {
95
+ extractPackageScripts(content, symbols, file, lang, lineOffsets, lineFromOffset);
96
+ }
97
+ if (isTsconfig && key === "compilerOptions") {
98
+ extractCompilerOptions(content, symbols, file, lang, lineOffsets, line, lineFromOffset);
99
+ }
100
+ }
101
+ const defsRegex = /"\$defs"\s*:|"\$defs"\s*:/g;
102
+ const defsMatch = defsRegex.exec(content);
103
+ if (defsMatch !== null) {
104
+ const offset = expectDefined(defsMatch.index);
105
+ const line = lineFromOffset(offset);
106
+ symbols.push(
107
+ makeSymbol({
108
+ name: "$defs",
109
+ kind: "property",
110
+ line,
111
+ col: offset - (lineOffsets[line - 1] ?? 0),
112
+ signature: '"$defs": { ... }',
113
+ file,
114
+ lang
115
+ })
116
+ );
117
+ }
118
+ const defsPatterns = [
119
+ /"\$defs"\s*:/g,
120
+ /"definitions"\s*:/g,
121
+ /"components"\s*:/g,
122
+ /"schemas"\s*:/g
123
+ ];
124
+ for (const pat of defsPatterns) {
125
+ pat.lastIndex = 0;
126
+ for (let match = pat.exec(content); match !== null; match = pat.exec(content)) {
127
+ const offset = match.index ?? 0;
128
+ const line = lineFromOffset(offset);
129
+ const key = match[0]?.match(/"([^"]+)"/)?.[1] ?? expectDefined(match[0]);
130
+ symbols.push(
131
+ makeSymbol({
132
+ name: key,
133
+ kind: "property",
134
+ line,
135
+ col: offset - (lineOffsets[line - 1] ?? 0),
136
+ signature: `"${key}": { ... }`,
137
+ file,
138
+ lang
139
+ })
140
+ );
141
+ }
142
+ }
143
+ return { file, lang, symbols, mtimeMs: Date.now() };
144
+ }
145
+ function extractPackageScripts(content, symbols, file, lang, lineOffsets, lineFromOffset) {
146
+ const scriptsBlockRegex = /"scripts"\s*:\s*\{([^}]+)\}/g;
147
+ for (let match = scriptsBlockRegex.exec(content); match !== null; match = scriptsBlockRegex.exec(content)) {
148
+ const blockContent = expectDefined(match[0]);
149
+ const blockOffset = match.index ?? 0;
150
+ const scriptKeyRegex = /"(\w[\w-]*)"\s*:/g;
151
+ for (let scriptMatch = scriptKeyRegex.exec(blockContent); scriptMatch !== null; scriptMatch = scriptKeyRegex.exec(blockContent)) {
152
+ const key = expectDefined(scriptMatch[1]);
153
+ const keyOffset = blockOffset + expectDefined(scriptMatch.index);
154
+ const line = lineFromOffset(keyOffset);
155
+ symbols.push(
156
+ makeSymbol({
157
+ name: key,
158
+ kind: "function",
159
+ line,
160
+ col: keyOffset - (lineOffsets[line - 1] ?? 0),
161
+ signature: `"${key}": "..."`,
162
+ file,
163
+ lang
164
+ })
165
+ );
166
+ }
167
+ }
168
+ }
169
+ function extractCompilerOptions(content, symbols, file, lang, lineOffsets, parentLine, lineFromOffset) {
170
+ const optsBlockRegex = /"compilerOptions"\s*:\s*\{([^}]+)\}/g;
171
+ for (let match = optsBlockRegex.exec(content); match !== null; match = optsBlockRegex.exec(content)) {
172
+ const blockContent = expectDefined(match[0]);
173
+ const blockOffset = match.index ?? 0;
174
+ const optKeyRegex = /"(\w[\w]*)"\s*:/g;
175
+ for (let optMatch = optKeyRegex.exec(blockContent); optMatch !== null; optMatch = optKeyRegex.exec(blockContent)) {
176
+ const key = expectDefined(optMatch[1]);
177
+ const keyOffset = blockOffset + expectDefined(optMatch.index);
178
+ const line = lineFromOffset(keyOffset);
179
+ if (line <= parentLine) continue;
180
+ symbols.push(
181
+ makeSymbol({
182
+ name: key,
183
+ kind: "property",
184
+ line,
185
+ col: keyOffset - (lineOffsets[line - 1] ?? 0),
186
+ signature: `"${key}": ...`,
187
+ file,
188
+ lang
189
+ })
190
+ );
191
+ }
192
+ }
193
+ }
194
+ function makeSymbol(opts) {
195
+ return {
196
+ id: 0,
197
+ lang: opts.lang,
198
+ kind: opts.kind,
199
+ name: opts.name,
200
+ file: opts.file,
201
+ line: opts.line,
202
+ col: opts.col,
203
+ signature: opts.signature,
204
+ docComment: "",
205
+ scope: "",
206
+ text: `${opts.name} ${opts.signature}`.trim()
207
+ };
208
+ }
209
+ export {
210
+ detectLang,
211
+ parseSymbols
212
+ };
213
+ //# sourceMappingURL=json-parser-IBHZ4BZC.js.map