@tyvm/knowhow 0.0.93 → 0.0.94

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 (264) hide show
  1. package/package.json +3 -2
  2. package/ts_build/package.json +3 -2
  3. package/ts_build/src/cli.js +0 -0
  4. package/ts_build/src/agents/tools/asana/definitions.d.ts +0 -202
  5. package/ts_build/src/agents/tools/asana/definitions.js +0 -197
  6. package/ts_build/src/agents/tools/asana/definitions.js.map +0 -1
  7. package/ts_build/src/agents/tools/asana/index.d.ts +0 -8
  8. package/ts_build/src/agents/tools/asana/index.js +0 -98
  9. package/ts_build/src/agents/tools/asana/index.js.map +0 -1
  10. package/ts_build/src/agents/tools/ast/astAppendNode.d.ts +0 -1
  11. package/ts_build/src/agents/tools/ast/astAppendNode.js +0 -8
  12. package/ts_build/src/agents/tools/ast/astAppendNode.js.map +0 -1
  13. package/ts_build/src/agents/tools/ast/astDeleteNode.d.ts +0 -1
  14. package/ts_build/src/agents/tools/ast/astDeleteNode.js +0 -8
  15. package/ts_build/src/agents/tools/ast/astDeleteNode.js.map +0 -1
  16. package/ts_build/src/agents/tools/ast/astEditNode.d.ts +0 -1
  17. package/ts_build/src/agents/tools/ast/astEditNode.js +0 -8
  18. package/ts_build/src/agents/tools/ast/astEditNode.js.map +0 -1
  19. package/ts_build/src/agents/tools/ast/astGetPathForLine.d.ts +0 -1
  20. package/ts_build/src/agents/tools/ast/astGetPathForLine.js +0 -8
  21. package/ts_build/src/agents/tools/ast/astGetPathForLine.js.map +0 -1
  22. package/ts_build/src/agents/tools/ast/astListPaths.d.ts +0 -1
  23. package/ts_build/src/agents/tools/ast/astListPaths.js +0 -8
  24. package/ts_build/src/agents/tools/ast/astListPaths.js.map +0 -1
  25. package/ts_build/src/agents/tools/ast/index.d.ts +0 -5
  26. package/ts_build/src/agents/tools/ast/index.js +0 -14
  27. package/ts_build/src/agents/tools/ast/index.js.map +0 -1
  28. package/ts_build/src/agents/tools/astAppendNode.d.ts +0 -1
  29. package/ts_build/src/agents/tools/astAppendNode.js +0 -98
  30. package/ts_build/src/agents/tools/astAppendNode.js.map +0 -1
  31. package/ts_build/src/agents/tools/astDeleteNode.d.ts +0 -1
  32. package/ts_build/src/agents/tools/astDeleteNode.js +0 -95
  33. package/ts_build/src/agents/tools/astDeleteNode.js.map +0 -1
  34. package/ts_build/src/agents/tools/astEditNode.d.ts +0 -1
  35. package/ts_build/src/agents/tools/astEditNode.js +0 -98
  36. package/ts_build/src/agents/tools/astEditNode.js.map +0 -1
  37. package/ts_build/src/agents/tools/astGetPathForLine.d.ts +0 -1
  38. package/ts_build/src/agents/tools/astGetPathForLine.js +0 -89
  39. package/ts_build/src/agents/tools/astGetPathForLine.js.map +0 -1
  40. package/ts_build/src/agents/tools/astListPaths.d.ts +0 -1
  41. package/ts_build/src/agents/tools/astListPaths.js +0 -82
  42. package/ts_build/src/agents/tools/astListPaths.js.map +0 -1
  43. package/ts_build/src/agents/tools/github/definitions.d.ts +0 -47
  44. package/ts_build/src/agents/tools/github/definitions.js +0 -86
  45. package/ts_build/src/agents/tools/github/definitions.js.map +0 -1
  46. package/ts_build/src/agents/tools/github/index.d.ts +0 -789
  47. package/ts_build/src/agents/tools/github/index.js +0 -56
  48. package/ts_build/src/agents/tools/github/index.js.map +0 -1
  49. package/ts_build/src/agents/tools/startChatTask.d.ts +0 -13
  50. package/ts_build/src/agents/tools/startChatTask.js +0 -73
  51. package/ts_build/src/agents/tools/startChatTask.js.map +0 -1
  52. package/ts_build/src/agents/vim/vim.d.ts +0 -13
  53. package/ts_build/src/agents/vim/vim.js +0 -170
  54. package/ts_build/src/agents/vim/vim.js.map +0 -1
  55. package/ts_build/src/chat/ChatCommandHandler.d.ts +0 -36
  56. package/ts_build/src/chat/ChatCommandHandler.js +0 -268
  57. package/ts_build/src/chat/ChatCommandHandler.js.map +0 -1
  58. package/ts_build/src/chat/ChatInputManager.d.ts +0 -22
  59. package/ts_build/src/chat/ChatInputManager.js +0 -85
  60. package/ts_build/src/chat/ChatInputManager.js.map +0 -1
  61. package/ts_build/src/chat/ChatManager.d.ts +0 -49
  62. package/ts_build/src/chat/ChatManager.js +0 -271
  63. package/ts_build/src/chat/ChatManager.js.map +0 -1
  64. package/ts_build/src/chat/ChatSession.d.ts +0 -32
  65. package/ts_build/src/chat/ChatSession.js +0 -3
  66. package/ts_build/src/chat/ChatSession.js.map +0 -1
  67. package/ts_build/src/chat/ChatSessionManager.d.ts +0 -19
  68. package/ts_build/src/chat/ChatSessionManager.js +0 -188
  69. package/ts_build/src/chat/ChatSessionManager.js.map +0 -1
  70. package/ts_build/src/chat/ChatStateManager.d.ts +0 -58
  71. package/ts_build/src/chat/ChatStateManager.js +0 -156
  72. package/ts_build/src/chat/ChatStateManager.js.map +0 -1
  73. package/ts_build/src/chat/InterruptibleInput.d.ts +0 -20
  74. package/ts_build/src/chat/InterruptibleInput.js +0 -109
  75. package/ts_build/src/chat/InterruptibleInput.js.map +0 -1
  76. package/ts_build/src/chat/interfaces/ChatModule.d.ts +0 -6
  77. package/ts_build/src/chat/interfaces/ChatModule.js +0 -3
  78. package/ts_build/src/chat/interfaces/ChatModule.js.map +0 -1
  79. package/ts_build/src/chat-old.d.ts +0 -13
  80. package/ts_build/src/chat-old.js +0 -340
  81. package/ts_build/src/chat-old.js.map +0 -1
  82. package/ts_build/src/chat2.d.ts +0 -3
  83. package/ts_build/src/chat2.js +0 -47
  84. package/ts_build/src/chat2.js.map +0 -1
  85. package/ts_build/src/dockerWorker.d.ts +0 -22
  86. package/ts_build/src/dockerWorker.js +0 -210
  87. package/ts_build/src/dockerWorker.js.map +0 -1
  88. package/ts_build/src/plugins/asana.d.ts +0 -19
  89. package/ts_build/src/plugins/asana.js +0 -124
  90. package/ts_build/src/plugins/asana.js.map +0 -1
  91. package/ts_build/src/plugins/downloader/downloader.d.ts +0 -26
  92. package/ts_build/src/plugins/downloader/downloader.js +0 -324
  93. package/ts_build/src/plugins/downloader/downloader.js.map +0 -1
  94. package/ts_build/src/plugins/downloader/plugin.d.ts +0 -12
  95. package/ts_build/src/plugins/downloader/plugin.js +0 -98
  96. package/ts_build/src/plugins/downloader/plugin.js.map +0 -1
  97. package/ts_build/src/plugins/downloader/types.d.ts +0 -88
  98. package/ts_build/src/plugins/downloader/types.js +0 -79
  99. package/ts_build/src/plugins/downloader/types.js.map +0 -1
  100. package/ts_build/src/plugins/figma.d.ts +0 -25
  101. package/ts_build/src/plugins/figma.js +0 -134
  102. package/ts_build/src/plugins/figma.js.map +0 -1
  103. package/ts_build/src/plugins/github.d.ts +0 -1227
  104. package/ts_build/src/plugins/github.js +0 -182
  105. package/ts_build/src/plugins/github.js.map +0 -1
  106. package/ts_build/src/plugins/jira.d.ts +0 -18
  107. package/ts_build/src/plugins/jira.js +0 -104
  108. package/ts_build/src/plugins/jira.js.map +0 -1
  109. package/ts_build/src/plugins/linear.d.ts +0 -26
  110. package/ts_build/src/plugins/linear.js +0 -194
  111. package/ts_build/src/plugins/linear.js.map +0 -1
  112. package/ts_build/src/plugins/notion.d.ts +0 -35
  113. package/ts_build/src/plugins/notion.js +0 -141
  114. package/ts_build/src/plugins/notion.js.map +0 -1
  115. package/ts_build/src/plugins/tree-sitter/editor.d.ts +0 -5
  116. package/ts_build/src/plugins/tree-sitter/editor.js +0 -16
  117. package/ts_build/src/plugins/tree-sitter/editor.js.map +0 -1
  118. package/ts_build/src/plugins/tree-sitter/human-readable-paths-new.d.ts +0 -29
  119. package/ts_build/src/plugins/tree-sitter/human-readable-paths-new.js +0 -538
  120. package/ts_build/src/plugins/tree-sitter/human-readable-paths-new.js.map +0 -1
  121. package/ts_build/src/plugins/tree-sitter/human-readable-paths.d.ts +0 -22
  122. package/ts_build/src/plugins/tree-sitter/human-readable-paths.js +0 -332
  123. package/ts_build/src/plugins/tree-sitter/human-readable-paths.js.map +0 -1
  124. package/ts_build/src/plugins/tree-sitter/lang-packs/index.d.ts +0 -8
  125. package/ts_build/src/plugins/tree-sitter/lang-packs/index.js +0 -26
  126. package/ts_build/src/plugins/tree-sitter/lang-packs/index.js.map +0 -1
  127. package/ts_build/src/plugins/tree-sitter/lang-packs/java.d.ts +0 -2
  128. package/ts_build/src/plugins/tree-sitter/lang-packs/java.js +0 -61
  129. package/ts_build/src/plugins/tree-sitter/lang-packs/java.js.map +0 -1
  130. package/ts_build/src/plugins/tree-sitter/lang-packs/javascript.d.ts +0 -2
  131. package/ts_build/src/plugins/tree-sitter/lang-packs/javascript.js +0 -59
  132. package/ts_build/src/plugins/tree-sitter/lang-packs/javascript.js.map +0 -1
  133. package/ts_build/src/plugins/tree-sitter/lang-packs/python.d.ts +0 -2
  134. package/ts_build/src/plugins/tree-sitter/lang-packs/python.js +0 -47
  135. package/ts_build/src/plugins/tree-sitter/lang-packs/python.js.map +0 -1
  136. package/ts_build/src/plugins/tree-sitter/lang-packs/types.d.ts +0 -43
  137. package/ts_build/src/plugins/tree-sitter/lang-packs/types.js +0 -3
  138. package/ts_build/src/plugins/tree-sitter/lang-packs/types.js.map +0 -1
  139. package/ts_build/src/plugins/tree-sitter/lang-packs/typescript.d.ts +0 -2
  140. package/ts_build/src/plugins/tree-sitter/lang-packs/typescript.js +0 -50
  141. package/ts_build/src/plugins/tree-sitter/lang-packs/typescript.js.map +0 -1
  142. package/ts_build/src/plugins/tree-sitter/parser.d.ts +0 -40
  143. package/ts_build/src/plugins/tree-sitter/parser.js +0 -36
  144. package/ts_build/src/plugins/tree-sitter/parser.js.map +0 -1
  145. package/ts_build/src/plugins/tree-sitter/simple-paths.d.ts +0 -9
  146. package/ts_build/src/plugins/tree-sitter/simple-paths.js +0 -10
  147. package/ts_build/src/plugins/tree-sitter/simple-paths.js.map +0 -1
  148. package/ts_build/src/services/AgentSynchronization.d.ts +0 -29
  149. package/ts_build/src/services/AgentSynchronization.js +0 -178
  150. package/ts_build/src/services/AgentSynchronization.js.map +0 -1
  151. package/ts_build/src/services/GitHub.d.ts +0 -10
  152. package/ts_build/src/services/GitHub.js +0 -51
  153. package/ts_build/src/services/GitHub.js.map +0 -1
  154. package/ts_build/src/utils/PersistentInputManager.d.ts +0 -28
  155. package/ts_build/src/utils/PersistentInputManager.js +0 -293
  156. package/ts_build/src/utils/PersistentInputManager.js.map +0 -1
  157. package/ts_build/src/worker/handlers/proxyHandler.d.ts +0 -2
  158. package/ts_build/src/worker/handlers/proxyHandler.js +0 -41
  159. package/ts_build/src/worker/handlers/proxyHandler.js.map +0 -1
  160. package/ts_build/src/worker/tools/index.d.ts +0 -1
  161. package/ts_build/src/worker/tools/index.js +0 -18
  162. package/ts_build/src/worker/tools/index.js.map +0 -1
  163. package/ts_build/src/worker/tools/portForwarding.d.ts +0 -49
  164. package/ts_build/src/worker/tools/portForwarding.js +0 -173
  165. package/ts_build/src/worker/tools/portForwarding.js.map +0 -1
  166. package/ts_build/src/worker/types/proxy.d.ts +0 -18
  167. package/ts_build/src/worker/types/proxy.js +0 -3
  168. package/ts_build/src/worker/types/proxy.js.map +0 -1
  169. package/ts_build/src/worker-entrypoint.d.ts +0 -2
  170. package/ts_build/src/worker-entrypoint.js +0 -39
  171. package/ts_build/src/worker-entrypoint.js.map +0 -1
  172. package/ts_build/src/workerSync.d.ts +0 -8
  173. package/ts_build/src/workerSync.js +0 -120
  174. package/ts_build/src/workerSync.js.map +0 -1
  175. package/ts_build/src/workers/tools/listForwardedPorts.d.ts +0 -10
  176. package/ts_build/src/workers/tools/listForwardedPorts.js +0 -22
  177. package/ts_build/src/workers/tools/listForwardedPorts.js.map +0 -1
  178. package/ts_build/tests/integration/figma.test.d.ts +0 -1
  179. package/ts_build/tests/integration/figma.test.js +0 -47
  180. package/ts_build/tests/integration/figma.test.js.map +0 -1
  181. package/ts_build/tests/integration/fileblocks/readwrite.test.d.ts +0 -1
  182. package/ts_build/tests/integration/fileblocks/readwrite.test.js +0 -96
  183. package/ts_build/tests/integration/fileblocks/readwrite.test.js.map +0 -1
  184. package/ts_build/tests/integration/patching.test.d.ts +0 -1
  185. package/ts_build/tests/integration/patching.test.js +0 -116
  186. package/ts_build/tests/integration/patching.test.js.map +0 -1
  187. package/ts_build/tests/languagePlugin.test.d.ts +0 -1
  188. package/ts_build/tests/languagePlugin.test.js +0 -284
  189. package/ts_build/tests/languagePlugin.test.js.map +0 -1
  190. package/ts_build/tests/manual/agent-events/event-handler-reliability.test.d.ts +0 -1
  191. package/ts_build/tests/manual/agent-events/event-handler-reliability.test.js +0 -315
  192. package/ts_build/tests/manual/agent-events/event-handler-reliability.test.js.map +0 -1
  193. package/ts_build/tests/manual/persistent-input-test.d.ts +0 -1
  194. package/ts_build/tests/manual/persistent-input-test.js +0 -35
  195. package/ts_build/tests/manual/persistent-input-test.js.map +0 -1
  196. package/ts_build/tests/services/Plugins/plugin-event-integration.test.d.ts +0 -1
  197. package/ts_build/tests/services/Plugins/plugin-event-integration.test.js +0 -232
  198. package/ts_build/tests/services/Plugins/plugin-event-integration.test.js.map +0 -1
  199. package/ts_build/tests/tree-sitter/editor.test.d.ts +0 -1
  200. package/ts_build/tests/tree-sitter/editor.test.js +0 -85
  201. package/ts_build/tests/tree-sitter/editor.test.js.map +0 -1
  202. package/ts_build/tests/tree-sitter/invalid.test.d.ts +0 -1
  203. package/ts_build/tests/tree-sitter/invalid.test.js +0 -198
  204. package/ts_build/tests/tree-sitter/invalid.test.js.map +0 -1
  205. package/ts_build/tests/tree-sitter/paths/common-edits.test.d.ts +0 -1
  206. package/ts_build/tests/tree-sitter/paths/common-edits.test.js +0 -347
  207. package/ts_build/tests/tree-sitter/paths/common-edits.test.js.map +0 -1
  208. package/ts_build/tests/tree-sitter/paths/debug-exact-position.test.d.ts +0 -1
  209. package/ts_build/tests/tree-sitter/paths/debug-exact-position.test.js +0 -35
  210. package/ts_build/tests/tree-sitter/paths/debug-exact-position.test.js.map +0 -1
  211. package/ts_build/tests/tree-sitter/paths/debug-line-indexing.test.d.ts +0 -1
  212. package/ts_build/tests/tree-sitter/paths/debug-line-indexing.test.js +0 -38
  213. package/ts_build/tests/tree-sitter/paths/debug-line-indexing.test.js.map +0 -1
  214. package/ts_build/tests/tree-sitter/paths/debug-paths.test.d.ts +0 -1
  215. package/ts_build/tests/tree-sitter/paths/debug-paths.test.js +0 -74
  216. package/ts_build/tests/tree-sitter/paths/debug-paths.test.js.map +0 -1
  217. package/ts_build/tests/tree-sitter/paths/human-readable-paths.test.d.ts +0 -1
  218. package/ts_build/tests/tree-sitter/paths/human-readable-paths.test.js +0 -302
  219. package/ts_build/tests/tree-sitter/paths/human-readable-paths.test.js.map +0 -1
  220. package/ts_build/tests/tree-sitter/paths/paths.test.d.ts +0 -1
  221. package/ts_build/tests/tree-sitter/paths/paths.test.js +0 -116
  222. package/ts_build/tests/tree-sitter/paths/paths.test.js.map +0 -1
  223. package/ts_build/tests/tree-sitter/paths/simple-paths.test.d.ts +0 -1
  224. package/ts_build/tests/tree-sitter/paths/simple-paths.test.js +0 -302
  225. package/ts_build/tests/tree-sitter/paths/simple-paths.test.js.map +0 -1
  226. package/ts_build/tests/tree-sitter/sample-after.d.ts +0 -11
  227. package/ts_build/tests/tree-sitter/sample-after.js +0 -44
  228. package/ts_build/tests/tree-sitter/sample-after.js.map +0 -1
  229. package/ts_build/tests/tree-sitter/sample-before.d.ts +0 -9
  230. package/ts_build/tests/tree-sitter/sample-before.js +0 -28
  231. package/ts_build/tests/tree-sitter/sample-before.js.map +0 -1
  232. package/ts_build/tests/tree-sitter/test-files/completely-broken.d.ts +0 -2
  233. package/ts_build/tests/tree-sitter/test-files/completely-broken.js +0 -17
  234. package/ts_build/tests/tree-sitter/test-files/completely-broken.js.map +0 -1
  235. package/ts_build/tests/tree-sitter/test-files/duplicate-braces.d.ts +0 -8
  236. package/ts_build/tests/tree-sitter/test-files/duplicate-braces.js +0 -38
  237. package/ts_build/tests/tree-sitter/test-files/duplicate-braces.js.map +0 -1
  238. package/ts_build/tests/tree-sitter/test-files/invalid-nesting.d.ts +0 -8
  239. package/ts_build/tests/tree-sitter/test-files/invalid-nesting.js +0 -38
  240. package/ts_build/tests/tree-sitter/test-files/invalid-nesting.js.map +0 -1
  241. package/ts_build/tests/tree-sitter/test-files/malformed-signature.d.ts +0 -8
  242. package/ts_build/tests/tree-sitter/test-files/malformed-signature.js +0 -38
  243. package/ts_build/tests/tree-sitter/test-files/malformed-signature.js.map +0 -1
  244. package/ts_build/tests/tree-sitter/test-files/mismatched-parens.d.ts +0 -10
  245. package/ts_build/tests/tree-sitter/test-files/mismatched-parens.js +0 -38
  246. package/ts_build/tests/tree-sitter/test-files/mismatched-parens.js.map +0 -1
  247. package/ts_build/tests/tree-sitter/test-files/missing-semicolon.d.ts +0 -8
  248. package/ts_build/tests/tree-sitter/test-files/missing-semicolon.js +0 -38
  249. package/ts_build/tests/tree-sitter/test-files/missing-semicolon.js.map +0 -1
  250. package/ts_build/tests/tree-sitter/test-files/partially-broken.d.ts +0 -6
  251. package/ts_build/tests/tree-sitter/test-files/partially-broken.js +0 -20
  252. package/ts_build/tests/tree-sitter/test-files/partially-broken.js.map +0 -1
  253. package/ts_build/tests/tree-sitter/test-files/specific-errors.d.ts +0 -7
  254. package/ts_build/tests/tree-sitter/test-files/specific-errors.js +0 -14
  255. package/ts_build/tests/tree-sitter/test-files/specific-errors.js.map +0 -1
  256. package/ts_build/tests/tree-sitter/test-files/unclosed-string.d.ts +0 -8
  257. package/ts_build/tests/tree-sitter/test-files/unclosed-string.js +0 -38
  258. package/ts_build/tests/tree-sitter/test-files/unclosed-string.js.map +0 -1
  259. package/ts_build/tests/tree-sitter/tree-sitter.test.d.ts +0 -0
  260. package/ts_build/tests/tree-sitter/tree-sitter.test.js +0 -4
  261. package/ts_build/tests/tree-sitter/tree-sitter.test.js.map +0 -1
  262. package/ts_build/tests/worker/handlers/proxyHandler.test.d.ts +0 -1
  263. package/ts_build/tests/worker/handlers/proxyHandler.test.js +0 -170
  264. package/ts_build/tests/worker/handlers/proxyHandler.test.js.map +0 -1
@@ -1,302 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const parser_1 = require("../../../src/plugins/tree-sitter/parser");
4
- const editor_1 = require("../../../src/plugins/tree-sitter/editor");
5
- const human_readable_paths_1 = require("../../../src/plugins/tree-sitter/human-readable-paths");
6
- describe("Simple Path Functionality", () => {
7
- let parser;
8
- let resolver;
9
- beforeEach(() => {
10
- parser = parser_1.LanguageAgnosticParser.createTypeScriptParser();
11
- resolver = new human_readable_paths_1.SimplePathResolver(parser);
12
- });
13
- const sampleCode = `
14
- export class Calculator {
15
- private value: number = 0;
16
-
17
- constructor(initialValue: number) {
18
- this.value = initialValue;
19
- }
20
-
21
- add(x: number): number {
22
- const result = this.value + x;
23
- console.log("Adding", result);
24
- return result;
25
- }
26
-
27
- multiply(x: number, y: number): number {
28
- const result = x * y;
29
- console.log("Multiplying", result);
30
- return result;
31
- }
32
- }
33
- `.trim();
34
- describe("SimplePathResolver", () => {
35
- test("should find nodes by class name", () => {
36
- const tree = parser.parseString(sampleCode);
37
- const matches = resolver.findBySimplePath(tree, "Calculator");
38
- expect(matches.length).toBeGreaterThan(0);
39
- expect(matches[0].description).toContain("Calculator");
40
- });
41
- test("should find nodes by method name", () => {
42
- const tree = parser.parseString(sampleCode);
43
- const matches = resolver.findBySimplePath(tree, "add");
44
- expect(matches.length).toBeGreaterThan(0);
45
- expect(matches.some(m => m.description.includes("add"))).toBe(true);
46
- });
47
- test("should find nodes by class.method pattern", () => {
48
- const tree = parser.parseString(sampleCode);
49
- const matches = resolver.findBySimplePath(tree, "Calculator.add");
50
- expect(matches.length).toBeGreaterThan(0);
51
- expect(matches[0].description).toContain("Calculator");
52
- expect(matches[0].description).toContain("add");
53
- });
54
- test("should get all available simple paths", () => {
55
- const tree = parser.parseString(sampleCode);
56
- const paths = resolver.getAllSimplePaths(tree);
57
- expect(paths.length).toBeGreaterThan(0);
58
- expect(paths.some(p => p.includes("Calculator"))).toBe(true);
59
- expect(paths.some(p => p.includes("add"))).toBe(true);
60
- expect(paths.some(p => p.includes("multiply"))).toBe(true);
61
- });
62
- });
63
- describe("TreeEditor Simple Path Integration", () => {
64
- test("should update node using simple path", () => {
65
- const editor = new editor_1.TreeEditor(parser, sampleCode);
66
- const matches = editor.findNodesBySimplePath("add");
67
- expect(matches.length).toBeGreaterThan(0);
68
- const updatedEditor = editor.updateNodeBySimplePath("Calculator.add", `add(x: number): number {
69
- return this.value + x + 1; // Modified
70
- }`);
71
- const newText = updatedEditor.getCurrentText();
72
- expect(newText).toContain("Modified");
73
- expect(newText).toContain("x + 1");
74
- });
75
- test("should find multiple nodes with same name", () => {
76
- const editor = new editor_1.TreeEditor(parser, sampleCode);
77
- const duplicateMethodCode = `
78
- class A { method() { return 1; } }
79
- class B { method() { return 2; } }
80
- `.trim();
81
- const duplicateEditor = new editor_1.TreeEditor(parser, duplicateMethodCode);
82
- const matches = duplicateEditor.findNodesBySimplePath("method");
83
- expect(matches.length).toBeGreaterThan(1);
84
- expect(matches.some(m => m.description.includes("method in class A"))).toBe(true);
85
- expect(matches.some(m => m.description.includes("method in class B"))).toBe(true);
86
- });
87
- test("should get all simple paths from TreeEditor", () => {
88
- const editor = new editor_1.TreeEditor(parser, sampleCode);
89
- const paths = editor.getAllSimplePaths();
90
- expect(paths.length).toBeGreaterThan(0);
91
- expect(paths.some(p => p.includes("Calculator"))).toBe(true);
92
- });
93
- test("should handle path not found error", () => {
94
- const editor = new editor_1.TreeEditor(parser, sampleCode);
95
- expect(() => {
96
- editor.updateNodeBySimplePath("NonExistentClass.nonExistentMethod", "new content");
97
- }).toThrow(/Node not found at path: NonExistentClass.nonExistentMethod/);
98
- });
99
- test("should handle multiple matches error", () => {
100
- const editor = new editor_1.TreeEditor(parser, sampleCode);
101
- const duplicateMethodCode = `
102
- class A { method() { return 1; } }
103
- class B { method() { return 2; } }
104
- `.trim();
105
- const duplicateEditor = new editor_1.TreeEditor(parser, duplicateMethodCode);
106
- expect(() => {
107
- duplicateEditor.updateNodeBySimplePath("method", "new content");
108
- }).toThrow(/Multiple nodes found for path: method.*/);
109
- });
110
- });
111
- describe("Generic Block Support", () => {
112
- const testFrameworkCode = `
113
- describe("Authentication", () => {
114
- beforeEach(() => {
115
- setup();
116
- });
117
-
118
- test("should login successfully", () => {
119
- expect(login()).toBe(true);
120
- });
121
-
122
- it("should logout properly", () => {
123
- expect(logout()).toBe(true);
124
- });
125
-
126
- afterEach(() => {
127
- cleanup();
128
- });
129
- });
130
-
131
- describe("User Management", () => {
132
- test("should create user", () => {
133
- expect(createUser()).toBeTruthy();
134
- });
135
- });
136
- `.trim();
137
- test("should find describe blocks by name", () => {
138
- const tree = parser.parseString(testFrameworkCode);
139
- const matches = resolver.findBySimplePath(tree, 'describe("Authentication")');
140
- expect(matches.length).toBe(1);
141
- expect(matches[0].description).toContain("describe");
142
- expect(matches[0].description).toContain("Authentication");
143
- });
144
- test("should find test blocks by name", () => {
145
- const tree = parser.parseString(testFrameworkCode);
146
- const matches = resolver.findBySimplePath(tree, 'test("should login successfully")');
147
- expect(matches.length).toBe(1);
148
- expect(matches[0].description).toContain("test");
149
- expect(matches[0].description).toContain("should login successfully");
150
- });
151
- test("should find it blocks by name", () => {
152
- const tree = parser.parseString(testFrameworkCode);
153
- const matches = resolver.findBySimplePath(tree, 'it("should logout properly")');
154
- expect(matches.length).toBe(1);
155
- expect(matches[0].description).toContain("it");
156
- expect(matches[0].description).toContain("should logout properly");
157
- });
158
- test("should find beforeEach blocks", () => {
159
- const tree = parser.parseString(testFrameworkCode);
160
- const matches = resolver.findBySimplePath(tree, "beforeEach");
161
- expect(matches.length).toBe(1);
162
- expect(matches[0].description).toContain("beforeEach");
163
- });
164
- test("should find afterEach blocks", () => {
165
- const tree = parser.parseString(testFrameworkCode);
166
- const matches = resolver.findBySimplePath(tree, "afterEach");
167
- expect(matches.length).toBe(1);
168
- expect(matches[0].description).toContain("afterEach");
169
- });
170
- test("should handle template string literals", () => {
171
- const templateStringCode = `
172
- describe(\`User \${userId} Tests\`, () => {
173
- test(\`should process \${action}\`, () => {
174
- // test content
175
- });
176
- });
177
- `.trim();
178
- const tree = parser.parseString(templateStringCode);
179
- const matches = resolver.findBySimplePath(tree, 'describe(`User ${userId} Tests`)');
180
- expect(matches.length).toBe(1);
181
- expect(matches[0].description).toContain("describe");
182
- });
183
- test("should find multiple describe blocks with different names", () => {
184
- const tree = parser.parseString(testFrameworkCode);
185
- const authMatches = resolver.findBySimplePath(tree, 'describe("Authentication")');
186
- const userMatches = resolver.findBySimplePath(tree, 'describe("User Management")');
187
- expect(authMatches.length).toBe(1);
188
- expect(userMatches.length).toBe(1);
189
- expect(authMatches[0].description).toContain("Authentication");
190
- expect(userMatches[0].description).toContain("User Management");
191
- });
192
- test("should include generic blocks in getAllSimplePaths", () => {
193
- const tree = parser.parseString(testFrameworkCode);
194
- const paths = resolver.getAllSimplePaths(tree);
195
- expect(paths.some(p => p.includes('describe("Authentication")'))).toBe(true);
196
- expect(paths.some(p => p.includes('test("should login successfully")'))).toBe(true);
197
- expect(paths.some(p => p.includes('it("should logout properly")'))).toBe(true);
198
- expect(paths.some(p => p.includes("beforeEach"))).toBe(true);
199
- expect(paths.some(p => p.includes("afterEach"))).toBe(true);
200
- });
201
- });
202
- describe("Multi-Language Support", () => {
203
- describe("JavaScript Support", () => {
204
- let jsParser;
205
- let jsResolver;
206
- beforeEach(() => {
207
- jsParser = parser_1.LanguageAgnosticParser.createJavaScriptParser();
208
- jsResolver = new human_readable_paths_1.SimplePathResolver(jsParser);
209
- });
210
- const jsCode = `
211
- class Calculator {
212
- constructor(initialValue = 0) {
213
- this.value = initialValue;
214
- }
215
-
216
- add(x) {
217
- const result = this.value + x;
218
- console.log(\`Adding: \${result}\`);
219
- return result;
220
- }
221
-
222
- multiply(x, y) {
223
- const result = x * y;
224
- console.log(\`Multiplying: \${result}\`);
225
- return result;
226
- }
227
- }
228
- `.trim();
229
- test("should find JavaScript classes", () => {
230
- const tree = jsParser.parseString(jsCode);
231
- const matches = jsResolver.findBySimplePath(tree, "Calculator");
232
- expect(matches.length).toBeGreaterThan(0);
233
- expect(matches[0].description).toContain("Calculator");
234
- });
235
- test("should find JavaScript methods", () => {
236
- const tree = jsParser.parseString(jsCode);
237
- const matches = jsResolver.findBySimplePath(tree, "add");
238
- expect(matches.length).toBeGreaterThan(0);
239
- expect(matches.some(m => m.description.includes("add"))).toBe(true);
240
- });
241
- test("should find JavaScript class.method patterns", () => {
242
- const tree = jsParser.parseString(jsCode);
243
- const matches = jsResolver.findBySimplePath(tree, "Calculator.add");
244
- expect(matches.length).toBeGreaterThan(0);
245
- expect(matches[0].description).toContain("Calculator");
246
- expect(matches[0].description).toContain("add");
247
- });
248
- test("should handle JavaScript with test blocks", () => {
249
- const jsTestCode = `
250
- describe("Calculator Tests", () => {
251
- test("should add numbers", () => {
252
- const calc = new Calculator();
253
- expect(calc.add(2)).toBe(2);
254
- });
255
- });
256
- `.trim();
257
- const tree = jsParser.parseString(jsTestCode);
258
- const matches = jsResolver.findBySimplePath(tree, 'describe("Calculator Tests")');
259
- expect(matches.length).toBe(1);
260
- expect(matches[0].description).toContain("describe");
261
- expect(matches[0].description).toContain("Calculator Tests");
262
- });
263
- });
264
- });
265
- describe("Interface Support (TypeScript)", () => {
266
- const interfaceCode = `
267
- interface ICalculator {
268
- add(x: number): number;
269
- multiply(x: number, y: number): number;
270
- }
271
-
272
- interface IUserManager {
273
- createUser(name: string): User;
274
- deleteUser(id: number): void;
275
- }
276
-
277
- class Calculator implements ICalculator {
278
- add(x: number): number {
279
- return x;
280
- }
281
-
282
- multiply(x: number, y: number): number {
283
- return x * y;
284
- }
285
- }
286
- `.trim();
287
- test("should find interfaces", () => {
288
- const tree = parser.parseString(interfaceCode);
289
- const matches = resolver.findBySimplePath(tree, "ICalculator");
290
- expect(matches.length).toBeGreaterThan(0);
291
- expect(matches[0].description).toContain("ICalculator");
292
- });
293
- test("should find interface methods", () => {
294
- const tree = parser.parseString(interfaceCode);
295
- const matches = resolver.findBySimplePath(tree, "ICalculator.add");
296
- expect(matches.length).toBeGreaterThan(0);
297
- expect(matches[0].description).toContain("ICalculator");
298
- expect(matches[0].description).toContain("add");
299
- });
300
- });
301
- });
302
- //# sourceMappingURL=human-readable-paths.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"human-readable-paths.test.js","sourceRoot":"","sources":["../../../../tests/tree-sitter/paths/human-readable-paths.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,116 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const parser_1 = require("../../../src/plugins/tree-sitter/parser");
4
- const editor_1 = require("../../../src/plugins/tree-sitter/editor");
5
- describe("Tree-sitter Path Functionality", () => {
6
- let parser;
7
- let editor;
8
- const sampleCode = `export class Calculator {
9
- private history: number[] = [];
10
- private operationCount: number = 0;
11
-
12
- constructor(private precision: number = 2) {}
13
-
14
- add(a: number, b: number): number {
15
- const result = a + b;
16
- this.history.push(result);
17
- return result;
18
- }
19
-
20
- multiply(a: number, b: number): number {
21
- const result = a * b;
22
- this.history.push(result);
23
- return result;
24
- }
25
-
26
- getHistory(): number[] {
27
- return [...this.history];
28
- }
29
- }`;
30
- beforeEach(() => {
31
- parser = parser_1.LanguageAgnosticParser.createTypeScriptParser();
32
- editor = new editor_1.TreeEditor(parser, sampleCode);
33
- });
34
- describe("Path Generation and Resolution", () => {
35
- test("should generate consistent paths with getNodePath and findNodeByPath", () => {
36
- const tree = editor.getTree();
37
- const paths = editor.findPathsForLine(tree, "result");
38
- expect(paths.length).toBeGreaterThan(0);
39
- paths.forEach(pathLocation => {
40
- console.log(`Found path: ${pathLocation.path} at ${pathLocation.row}:${pathLocation.column}`);
41
- const foundNode = editor.findNodeByPath(pathLocation.path);
42
- expect(foundNode).not.toBeNull();
43
- if (foundNode) {
44
- expect(foundNode.text).toContain(pathLocation.text);
45
- expect(foundNode.endPosition.column).toBeGreaterThanOrEqual(pathLocation.column + pathLocation.text.length);
46
- }
47
- });
48
- });
49
- test("should find paths to variables defined in methods", () => {
50
- const tree = editor.getTree();
51
- const resultPaths = editor.findPathsForLine(tree, "result");
52
- const variableDeclarations = resultPaths.filter(path => path.path.includes("statement_block") && path.text === "result");
53
- expect(variableDeclarations.length).toBeGreaterThan(0);
54
- variableDeclarations.forEach(path => {
55
- console.log(`Variable declaration path: ${path.path}`);
56
- console.log(`Location: line ${path.row + 1}, column ${path.column + 1}`);
57
- console.log(`Text: "${path.text}"`);
58
- const node = editor.findNodeByPath(path.path);
59
- expect(node).not.toBeNull();
60
- expect(node?.text).toContain("result");
61
- });
62
- });
63
- test("should find paths to method parameters", () => {
64
- const tree = editor.getTree();
65
- const parameterPaths = [
66
- ...editor.findPathsForLine(tree, "a"),
67
- ...editor.findPathsForLine(tree, "b")
68
- ].filter(path => path.path.includes("formal_parameters") ||
69
- path.path.includes("required_parameter"));
70
- expect(parameterPaths.length).toBeGreaterThan(0);
71
- parameterPaths.forEach(path => {
72
- console.log(`Parameter path: ${path.path}`);
73
- const node = editor.findNodeByPath(path.path);
74
- expect(node).not.toBeNull();
75
- });
76
- });
77
- test("should find paths to class properties", () => {
78
- const tree = editor.getTree();
79
- const propertyPaths = editor.findPathsForLine(tree, "history");
80
- const propertyDeclarations = propertyPaths.filter(path => path.path.includes("public_field_definition") && path.path.includes("property_identifier"));
81
- expect(propertyDeclarations.length).toBeGreaterThan(0);
82
- propertyDeclarations.forEach(path => {
83
- console.log(`Property path: ${path.path}`);
84
- const node = editor.findNodeByPath(path.path);
85
- expect(node).not.toBeNull();
86
- });
87
- });
88
- });
89
- describe("Path-based Node Updates", () => {
90
- test("should update node content using paths", () => {
91
- const tree = editor.getTree();
92
- const resultPaths = editor.findPathsForLine(tree, "result");
93
- const firstResultPath = resultPaths[0];
94
- expect(firstResultPath).toBeDefined();
95
- const updatedEditor = editor.updateNodeByPath(firstResultPath.path, "finalResult");
96
- const updatedText = updatedEditor.getCurrentText();
97
- expect(updatedText).toContain("finalResult");
98
- expect(updatedText).not.toBe(sampleCode);
99
- });
100
- test("should handle multi-line node updates", () => {
101
- const tree = editor.getTree();
102
- const addMethodPaths = editor.findPathsForLine(tree, "add");
103
- const methodPath = addMethodPaths.find(path => path.path.includes("method_definition") && path.path.includes("property_identifier") && path.text === "add");
104
- expect(methodPath).toBeDefined();
105
- const newMethodBody = `add(a: number, b: number): number {
106
- console.log("Adding numbers");
107
- return a + b;
108
- }`;
109
- const updatedEditor = editor.updateNodeByPath(methodPath.path, newMethodBody);
110
- const updatedText = updatedEditor.getCurrentText();
111
- expect(updatedText).toContain("console.log");
112
- expect(updatedText).toContain("Adding numbers");
113
- });
114
- });
115
- });
116
- //# sourceMappingURL=paths.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paths.test.js","sourceRoot":"","sources":["../../../../tests/tree-sitter/paths/paths.test.ts"],"names":[],"mappings":"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"}