@polka-codes/cli 0.10.22 → 0.10.24

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 (350) hide show
  1. package/dist/index.js +3990 -353
  2. package/package.json +4 -4
  3. package/dist/ApiProviderConfig.js +0 -57
  4. package/dist/ApiProviderConfig.js.map +0 -1
  5. package/dist/ApiProviderConfig.test.js +0 -278
  6. package/dist/ApiProviderConfig.test.js.map +0 -1
  7. package/dist/agent/advanced-discovery.js +0 -604
  8. package/dist/agent/advanced-discovery.js.map +0 -1
  9. package/dist/agent/config.js +0 -139
  10. package/dist/agent/config.js.map +0 -1
  11. package/dist/agent/config.test.js +0 -140
  12. package/dist/agent/config.test.js.map +0 -1
  13. package/dist/agent/constants.js +0 -172
  14. package/dist/agent/constants.js.map +0 -1
  15. package/dist/agent/constants.test.js +0 -132
  16. package/dist/agent/constants.test.js.map +0 -1
  17. package/dist/agent/debug-logger.js +0 -281
  18. package/dist/agent/debug-logger.js.map +0 -1
  19. package/dist/agent/debug-logger.test.js +0 -294
  20. package/dist/agent/debug-logger.test.js.map +0 -1
  21. package/dist/agent/error-handling.js +0 -114
  22. package/dist/agent/error-handling.js.map +0 -1
  23. package/dist/agent/error-handling.test.js +0 -191
  24. package/dist/agent/error-handling.test.js.map +0 -1
  25. package/dist/agent/errors.js +0 -301
  26. package/dist/agent/errors.js.map +0 -1
  27. package/dist/agent/executor.js +0 -206
  28. package/dist/agent/executor.js.map +0 -1
  29. package/dist/agent/executor.test.js +0 -228
  30. package/dist/agent/executor.test.js.map +0 -1
  31. package/dist/agent/goal-decomposer.js +0 -281
  32. package/dist/agent/goal-decomposer.js.map +0 -1
  33. package/dist/agent/goal-decomposer.test.js +0 -225
  34. package/dist/agent/goal-decomposer.test.js.map +0 -1
  35. package/dist/agent/health-monitor.js +0 -89
  36. package/dist/agent/health-monitor.js.map +0 -1
  37. package/dist/agent/improvement-loop.js +0 -177
  38. package/dist/agent/improvement-loop.js.map +0 -1
  39. package/dist/agent/index.js +0 -38
  40. package/dist/agent/index.js.map +0 -1
  41. package/dist/agent/metrics.js +0 -158
  42. package/dist/agent/metrics.js.map +0 -1
  43. package/dist/agent/metrics.test.js +0 -311
  44. package/dist/agent/metrics.test.js.map +0 -1
  45. package/dist/agent/orchestrator.js +0 -438
  46. package/dist/agent/orchestrator.js.map +0 -1
  47. package/dist/agent/planner.js +0 -199
  48. package/dist/agent/planner.js.map +0 -1
  49. package/dist/agent/planner.test.js +0 -135
  50. package/dist/agent/planner.test.js.map +0 -1
  51. package/dist/agent/progress.js +0 -298
  52. package/dist/agent/progress.js.map +0 -1
  53. package/dist/agent/progress.test.js +0 -255
  54. package/dist/agent/progress.test.js.map +0 -1
  55. package/dist/agent/resource-monitor.js +0 -114
  56. package/dist/agent/resource-monitor.js.map +0 -1
  57. package/dist/agent/safety/approval.js +0 -178
  58. package/dist/agent/safety/approval.js.map +0 -1
  59. package/dist/agent/safety/approval.test.js +0 -142
  60. package/dist/agent/safety/approval.test.js.map +0 -1
  61. package/dist/agent/safety/checks.js +0 -152
  62. package/dist/agent/safety/checks.js.map +0 -1
  63. package/dist/agent/safety/checks.test.js +0 -89
  64. package/dist/agent/safety/checks.test.js.map +0 -1
  65. package/dist/agent/safety/interrupt.js +0 -92
  66. package/dist/agent/safety/interrupt.js.map +0 -1
  67. package/dist/agent/safety/interrupt.test.js +0 -53
  68. package/dist/agent/safety/interrupt.test.js.map +0 -1
  69. package/dist/agent/session.js +0 -117
  70. package/dist/agent/session.js.map +0 -1
  71. package/dist/agent/session.test.js +0 -213
  72. package/dist/agent/session.test.js.map +0 -1
  73. package/dist/agent/state-manager.js +0 -287
  74. package/dist/agent/state-manager.js.map +0 -1
  75. package/dist/agent/task-discovery.js +0 -433
  76. package/dist/agent/task-discovery.js.map +0 -1
  77. package/dist/agent/task-discovery.test.js +0 -40
  78. package/dist/agent/task-discovery.test.js.map +0 -1
  79. package/dist/agent/task-history.js +0 -128
  80. package/dist/agent/task-history.js.map +0 -1
  81. package/dist/agent/task-prioritizer.js +0 -286
  82. package/dist/agent/task-prioritizer.js.map +0 -1
  83. package/dist/agent/test-fixtures.js +0 -112
  84. package/dist/agent/test-fixtures.js.map +0 -1
  85. package/dist/agent/types.js +0 -15
  86. package/dist/agent/types.js.map +0 -1
  87. package/dist/agent/workflow-adapter.js +0 -219
  88. package/dist/agent/workflow-adapter.js.map +0 -1
  89. package/dist/agent/workflow-adapter.test.js +0 -11
  90. package/dist/agent/workflow-adapter.test.js.map +0 -1
  91. package/dist/agent/working-dir-discovery.js +0 -54
  92. package/dist/agent/working-dir-discovery.js.map +0 -1
  93. package/dist/agent/working-space.js +0 -484
  94. package/dist/agent/working-space.js.map +0 -1
  95. package/dist/agent/working-space.test.js +0 -436
  96. package/dist/agent/working-space.test.js.map +0 -1
  97. package/dist/api.js +0 -279
  98. package/dist/api.js.map +0 -1
  99. package/dist/builtin-commands.js +0 -20
  100. package/dist/builtin-commands.js.map +0 -1
  101. package/dist/chunk-2LRQ2QH6.js +0 -1353
  102. package/dist/chunk-FSNPWI3C.js +0 -128
  103. package/dist/chunk-HB7PTE3H.js +0 -176
  104. package/dist/chunk-LLMPMGV3.js +0 -140
  105. package/dist/chunk-NRDSZGMF.js +0 -675
  106. package/dist/chunk-UEEU3SCC.js +0 -390
  107. package/dist/chunk-YPUL66UK.js +0 -277
  108. package/dist/chunk-ZS4K5RFU.js +0 -176
  109. package/dist/chunk-ZU4UU65A.js +0 -40
  110. package/dist/code.workflow-5TAWK2DE.js +0 -10
  111. package/dist/commandSummarizer.js +0 -96
  112. package/dist/commandSummarizer.js.map +0 -1
  113. package/dist/commands/__tests__/command-detection.integration.test.js +0 -238
  114. package/dist/commands/__tests__/command-detection.integration.test.js.map +0 -1
  115. package/dist/commands/__tests__/script-generator.integration.test.js +0 -271
  116. package/dist/commands/__tests__/script-generator.integration.test.js.map +0 -1
  117. package/dist/commands/agent.js +0 -218
  118. package/dist/commands/agent.js.map +0 -1
  119. package/dist/commands/code.js +0 -102
  120. package/dist/commands/code.js.map +0 -1
  121. package/dist/commands/command.constants.js +0 -13
  122. package/dist/commands/command.constants.js.map +0 -1
  123. package/dist/commands/commit.js +0 -17
  124. package/dist/commands/commit.js.map +0 -1
  125. package/dist/commands/fix.js +0 -17
  126. package/dist/commands/fix.js.map +0 -1
  127. package/dist/commands/init.js +0 -501
  128. package/dist/commands/init.js.map +0 -1
  129. package/dist/commands/mcp-server.js +0 -122
  130. package/dist/commands/mcp-server.js.map +0 -1
  131. package/dist/commands/memory.js +0 -410
  132. package/dist/commands/memory.js.map +0 -1
  133. package/dist/commands/memory.test.js +0 -453
  134. package/dist/commands/memory.test.js.map +0 -1
  135. package/dist/commands/meta.js +0 -142
  136. package/dist/commands/meta.js.map +0 -1
  137. package/dist/commands/plan.js +0 -39
  138. package/dist/commands/plan.js.map +0 -1
  139. package/dist/commands/pr.js +0 -14
  140. package/dist/commands/pr.js.map +0 -1
  141. package/dist/commands/review-json.test.js +0 -33
  142. package/dist/commands/review-json.test.js.map +0 -1
  143. package/dist/commands/review.js +0 -137
  144. package/dist/commands/review.js.map +0 -1
  145. package/dist/commands/review.usage.test.js +0 -41
  146. package/dist/commands/review.usage.test.js.map +0 -1
  147. package/dist/commands/run.js +0 -107
  148. package/dist/commands/run.js.map +0 -1
  149. package/dist/commands/skills.js +0 -175
  150. package/dist/commands/skills.js.map +0 -1
  151. package/dist/commands/task.js +0 -34
  152. package/dist/commands/task.js.map +0 -1
  153. package/dist/commands/workflow.js +0 -117
  154. package/dist/commands/workflow.js.map +0 -1
  155. package/dist/commit.workflow-Z64PNSTS.js +0 -9
  156. package/dist/configPrompt.js +0 -39
  157. package/dist/configPrompt.js.map +0 -1
  158. package/dist/env.js +0 -22
  159. package/dist/env.js.map +0 -1
  160. package/dist/errors.js +0 -132
  161. package/dist/errors.js.map +0 -1
  162. package/dist/errors.test.js +0 -21
  163. package/dist/errors.test.js.map +0 -1
  164. package/dist/file-attachments.js +0 -77
  165. package/dist/file-attachments.js.map +0 -1
  166. package/dist/file-attachments.test.js +0 -214
  167. package/dist/file-attachments.test.js.map +0 -1
  168. package/dist/fix.workflow-KLHJU5Z6.js +0 -7
  169. package/dist/getModel.js +0 -229
  170. package/dist/getModel.js.map +0 -1
  171. package/dist/getModel.test.js +0 -67
  172. package/dist/getModel.test.js.map +0 -1
  173. package/dist/getProviderOptions.js +0 -58
  174. package/dist/getProviderOptions.js.map +0 -1
  175. package/dist/git-operations.js +0 -363
  176. package/dist/git-operations.js.map +0 -1
  177. package/dist/git-operations.test.js +0 -81
  178. package/dist/git-operations.test.js.map +0 -1
  179. package/dist/index.js.map +0 -1
  180. package/dist/logger.js +0 -41
  181. package/dist/logger.js.map +0 -1
  182. package/dist/mcp/client.js +0 -11
  183. package/dist/mcp/client.js.map +0 -1
  184. package/dist/mcp/error-scenarios.test.js +0 -206
  185. package/dist/mcp/error-scenarios.test.js.map +0 -1
  186. package/dist/mcp/errors.js +0 -63
  187. package/dist/mcp/errors.js.map +0 -1
  188. package/dist/mcp/index.js +0 -9
  189. package/dist/mcp/index.js.map +0 -1
  190. package/dist/mcp/manager.js +0 -231
  191. package/dist/mcp/manager.js.map +0 -1
  192. package/dist/mcp/manager.test.js +0 -40
  193. package/dist/mcp/manager.test.js.map +0 -1
  194. package/dist/mcp/sdk-client.js +0 -166
  195. package/dist/mcp/sdk-client.js.map +0 -1
  196. package/dist/mcp/shared-types.js +0 -3
  197. package/dist/mcp/shared-types.js.map +0 -1
  198. package/dist/mcp/tools-integration.test.js +0 -198
  199. package/dist/mcp/tools-integration.test.js.map +0 -1
  200. package/dist/mcp/tools.js +0 -60
  201. package/dist/mcp/tools.js.map +0 -1
  202. package/dist/mcp/transport.js +0 -257
  203. package/dist/mcp/transport.js.map +0 -1
  204. package/dist/mcp/types.js +0 -3
  205. package/dist/mcp/types.js.map +0 -1
  206. package/dist/mcp-server/index.js +0 -5
  207. package/dist/mcp-server/index.js.map +0 -1
  208. package/dist/mcp-server/plan-formatting.test.js +0 -74
  209. package/dist/mcp-server/plan-formatting.test.js.map +0 -1
  210. package/dist/mcp-server/sdk-server.js +0 -102
  211. package/dist/mcp-server/sdk-server.js.map +0 -1
  212. package/dist/mcp-server/sdk-server.test.js +0 -363
  213. package/dist/mcp-server/sdk-server.test.js.map +0 -1
  214. package/dist/mcp-server/tools.js +0 -785
  215. package/dist/mcp-server/tools.js.map +0 -1
  216. package/dist/mcp-server/types.js +0 -3
  217. package/dist/mcp-server/types.js.map +0 -1
  218. package/dist/options.js +0 -85
  219. package/dist/options.js.map +0 -1
  220. package/dist/options.test.js +0 -177
  221. package/dist/options.test.js.map +0 -1
  222. package/dist/plan.workflow-P2Y6W4FA.js +0 -8
  223. package/dist/prices.js +0 -61
  224. package/dist/prices.js.map +0 -1
  225. package/dist/prices.test.js +0 -148
  226. package/dist/prices.test.js.map +0 -1
  227. package/dist/review.workflow-I7RHWKU7.js +0 -8
  228. package/dist/runWorkflow.js +0 -313
  229. package/dist/runWorkflow.js.map +0 -1
  230. package/dist/script/__tests__/execution.integration.test.js +0 -274
  231. package/dist/script/__tests__/execution.integration.test.js.map +0 -1
  232. package/dist/script/__tests__/runner.test.js +0 -176
  233. package/dist/script/__tests__/runner.test.js.map +0 -1
  234. package/dist/script/__tests__/validator.test.js +0 -180
  235. package/dist/script/__tests__/validator.test.js.map +0 -1
  236. package/dist/script/executor.js +0 -127
  237. package/dist/script/executor.js.map +0 -1
  238. package/dist/script/index.js +0 -4
  239. package/dist/script/index.js.map +0 -1
  240. package/dist/script/runner.js +0 -258
  241. package/dist/script/runner.js.map +0 -1
  242. package/dist/sdk-client-KBYJRPEG.js +0 -155
  243. package/dist/skillIntegration.js +0 -46
  244. package/dist/skillIntegration.js.map +0 -1
  245. package/dist/skillIntegration.test.js +0 -128
  246. package/dist/skillIntegration.test.js.map +0 -1
  247. package/dist/test/utils.js +0 -200
  248. package/dist/test/utils.js.map +0 -1
  249. package/dist/test/workflow-fixtures.js +0 -120
  250. package/dist/test/workflow-fixtures.js.map +0 -1
  251. package/dist/tool-implementations.js +0 -521
  252. package/dist/tool-implementations.js.map +0 -1
  253. package/dist/tool-implementations.skill-tools.test.js +0 -106
  254. package/dist/tool-implementations.skill-tools.test.js.map +0 -1
  255. package/dist/tools/getTodoItem.js +0 -33
  256. package/dist/tools/getTodoItem.js.map +0 -1
  257. package/dist/tools/gitDiff.js +0 -108
  258. package/dist/tools/gitDiff.js.map +0 -1
  259. package/dist/tools/index.js +0 -8
  260. package/dist/tools/index.js.map +0 -1
  261. package/dist/tools/listMemoryTopics.js +0 -24
  262. package/dist/tools/listMemoryTopics.js.map +0 -1
  263. package/dist/tools/listTodoItems.js +0 -35
  264. package/dist/tools/listTodoItems.js.map +0 -1
  265. package/dist/tools/listTodoItems.test.js +0 -89
  266. package/dist/tools/listTodoItems.test.js.map +0 -1
  267. package/dist/tools/readMemory.js +0 -33
  268. package/dist/tools/readMemory.js.map +0 -1
  269. package/dist/tools/updateMemory.js +0 -62
  270. package/dist/tools/updateMemory.js.map +0 -1
  271. package/dist/tools/updateMemory.test.js +0 -109
  272. package/dist/tools/updateMemory.test.js.map +0 -1
  273. package/dist/tools/updateTodoItem.js +0 -31
  274. package/dist/tools/updateTodoItem.js.map +0 -1
  275. package/dist/tools/utils/diffLineNumbers.js +0 -178
  276. package/dist/tools/utils/diffLineNumbers.js.map +0 -1
  277. package/dist/utils/cacheControl.js +0 -59
  278. package/dist/utils/cacheControl.js.map +0 -1
  279. package/dist/utils/cacheControl.test.js +0 -128
  280. package/dist/utils/cacheControl.test.js.map +0 -1
  281. package/dist/utils/command.js +0 -50
  282. package/dist/utils/command.js.map +0 -1
  283. package/dist/utils/shell.js +0 -56
  284. package/dist/utils/shell.js.map +0 -1
  285. package/dist/utils/userInput.js +0 -47
  286. package/dist/utils/userInput.js.map +0 -1
  287. package/dist/workflow-tools.js +0 -21
  288. package/dist/workflow-tools.js.map +0 -1
  289. package/dist/workflows/agent-builder.js +0 -90
  290. package/dist/workflows/agent-builder.js.map +0 -1
  291. package/dist/workflows/agent-builder.test.js +0 -115
  292. package/dist/workflows/agent-builder.test.js.map +0 -1
  293. package/dist/workflows/code.workflow.js +0 -145
  294. package/dist/workflows/code.workflow.js.map +0 -1
  295. package/dist/workflows/commit.workflow.js +0 -111
  296. package/dist/workflows/commit.workflow.js.map +0 -1
  297. package/dist/workflows/commit.workflow.test.js +0 -141
  298. package/dist/workflows/commit.workflow.test.js.map +0 -1
  299. package/dist/workflows/fix.workflow.js +0 -172
  300. package/dist/workflows/fix.workflow.js.map +0 -1
  301. package/dist/workflows/fix.workflow.test.js +0 -137
  302. package/dist/workflows/fix.workflow.test.js.map +0 -1
  303. package/dist/workflows/git-file-tools.js +0 -408
  304. package/dist/workflows/git-file-tools.js.map +0 -1
  305. package/dist/workflows/index.js +0 -12
  306. package/dist/workflows/index.js.map +0 -1
  307. package/dist/workflows/init-interactive.workflow.js +0 -198
  308. package/dist/workflows/init-interactive.workflow.js.map +0 -1
  309. package/dist/workflows/init.workflow.js +0 -41
  310. package/dist/workflows/init.workflow.js.map +0 -1
  311. package/dist/workflows/meta.workflow.js +0 -107
  312. package/dist/workflows/meta.workflow.js.map +0 -1
  313. package/dist/workflows/plan.workflow.js +0 -275
  314. package/dist/workflows/plan.workflow.js.map +0 -1
  315. package/dist/workflows/plan.workflow.test.js +0 -419
  316. package/dist/workflows/plan.workflow.test.js.map +0 -1
  317. package/dist/workflows/pr.workflow.js +0 -54
  318. package/dist/workflows/pr.workflow.js.map +0 -1
  319. package/dist/workflows/pr.workflow.test.js +0 -98
  320. package/dist/workflows/pr.workflow.test.js.map +0 -1
  321. package/dist/workflows/prompts/coder.js +0 -85
  322. package/dist/workflows/prompts/coder.js.map +0 -1
  323. package/dist/workflows/prompts/commit.js +0 -16
  324. package/dist/workflows/prompts/commit.js.map +0 -1
  325. package/dist/workflows/prompts/fix.js +0 -44
  326. package/dist/workflows/prompts/fix.js.map +0 -1
  327. package/dist/workflows/prompts/index.js +0 -10
  328. package/dist/workflows/prompts/index.js.map +0 -1
  329. package/dist/workflows/prompts/init.js +0 -48
  330. package/dist/workflows/prompts/init.js.map +0 -1
  331. package/dist/workflows/prompts/meta.js +0 -17
  332. package/dist/workflows/prompts/meta.js.map +0 -1
  333. package/dist/workflows/prompts/plan.js +0 -212
  334. package/dist/workflows/prompts/plan.js.map +0 -1
  335. package/dist/workflows/prompts/pr.js +0 -15
  336. package/dist/workflows/prompts/pr.js.map +0 -1
  337. package/dist/workflows/prompts/review.js +0 -145
  338. package/dist/workflows/prompts/review.js.map +0 -1
  339. package/dist/workflows/prompts/shared.js +0 -93
  340. package/dist/workflows/prompts/shared.js.map +0 -1
  341. package/dist/workflows/review.workflow.js +0 -357
  342. package/dist/workflows/review.workflow.js.map +0 -1
  343. package/dist/workflows/task.workflow.js +0 -47
  344. package/dist/workflows/task.workflow.js.map +0 -1
  345. package/dist/workflows/testing/helper.js +0 -41
  346. package/dist/workflows/testing/helper.js.map +0 -1
  347. package/dist/workflows/workflow.utils.js +0 -351
  348. package/dist/workflows/workflow.utils.js.map +0 -1
  349. package/dist/workflows/workflow.utils.test.js +0 -45
  350. package/dist/workflows/workflow.utils.test.js.map +0 -1
@@ -1,200 +0,0 @@
1
- /**
2
- * Testing Utilities and Fixtures
3
- *
4
- * Provides reusable test fixtures and utilities to reduce duplication
5
- * and improve test maintainability across the codebase.
6
- */
7
- import { mock } from 'bun:test';
8
- import { randomUUID } from 'node:crypto';
9
- import { mkdtempSync, rmSync } from 'node:fs';
10
- import { tmpdir } from 'node:os';
11
- import { join } from 'node:path';
12
- /**
13
- * Temporary directory fixture for isolated test environments
14
- *
15
- * Creates a unique temp directory for each test and ensures proper cleanup.
16
- *
17
- * @example
18
- * ```ts
19
- * describe('MyTest', () => {
20
- * let fixture: TempDirectoryFixture
21
- *
22
- * beforeEach(async () => {
23
- * fixture = new TempDirectoryFixture()
24
- * const dir = await fixture.setup()
25
- * })
26
- *
27
- * afterEach(async () => {
28
- * await fixture.teardown()
29
- * })
30
- * })
31
- * ```
32
- */
33
- export class TempDirectoryFixture {
34
- dir = null;
35
- /**
36
- * Create a unique temporary directory
37
- * @returns Path to the created directory
38
- */
39
- async setup() {
40
- this.dir = mkdtempSync(join(tmpdir(), 'test-'));
41
- return this.dir;
42
- }
43
- /**
44
- * Clean up the temporary directory
45
- * Logs cleanup failures for debugging
46
- */
47
- async teardown() {
48
- if (this.dir) {
49
- try {
50
- rmSync(this.dir, { recursive: true, force: true });
51
- }
52
- catch (error) {
53
- console.error(`[TempDirectoryFixture] Failed to cleanup: ${this.dir}`, error);
54
- }
55
- this.dir = null;
56
- }
57
- }
58
- /**
59
- * Get a path within the temp directory
60
- * @param segments - Path segments to join
61
- * @returns Full path to the file/directory
62
- * @throws Error if setup() hasn't been called
63
- */
64
- getPath(...segments) {
65
- if (!this.dir) {
66
- throw new Error('TempDirectoryFixture not initialized. Call setup() first.');
67
- }
68
- return join(this.dir, ...segments);
69
- }
70
- /**
71
- * Check if the fixture has been initialized
72
- */
73
- isInitialized() {
74
- return this.dir !== null;
75
- }
76
- }
77
- /**
78
- * Mock helpers for creating typed mocks
79
- *
80
- * These helpers reduce the need for 'any' type assertions in tests
81
- */
82
- /**
83
- * Create a mock function with proper type safety
84
- * @returns A mock function that can be configured
85
- */
86
- export function createMockFunction(implementation) {
87
- const mockFn = mock(implementation);
88
- return mockFn;
89
- }
90
- /**
91
- * Helper to create a partial mock (only mock specific methods)
92
- * @param obj - Object to create partial mock of
93
- * @param mockedMethods - Methods to mock
94
- * @returns Partial mock with specified methods mocked
95
- */
96
- export function createPartialMock(obj, mockedMethods) {
97
- const result = {};
98
- for (const key in obj) {
99
- if (mockedMethods.includes(key)) {
100
- result[key] = mock();
101
- }
102
- else {
103
- result[key] = obj[key];
104
- }
105
- }
106
- return result;
107
- }
108
- /**
109
- * Snapshot testing helpers
110
- */
111
- /**
112
- * Fields that should be redacted from snapshots
113
- * These are typically unstable or environment-specific
114
- */
115
- export const SNAPSHOT_REDACT_FIELDS = [
116
- 'id',
117
- 'timestamp',
118
- 'date',
119
- 'created_at',
120
- 'updated_at',
121
- 'last_accessed',
122
- 'filePath',
123
- 'absolutePath',
124
- ];
125
- /**
126
- * Redact unstable fields from an object for snapshot testing
127
- * @param obj - Object to redact fields from
128
- * @param fields - Fields to redact (defaults to SNAPSHOT_REDACT_FIELDS)
129
- * @returns Object with unstable fields replaced with matchers
130
- */
131
- export function redactUnstableFields(obj, fields = SNAPSHOT_REDACT_FIELDS) {
132
- const result = { ...obj };
133
- for (const field of fields) {
134
- if (field in result) {
135
- // Use a placeholder for unstable fields - actual replacement done in tests
136
- result[field] = '[REDACTED]';
137
- }
138
- }
139
- return result;
140
- }
141
- /**
142
- * Async test helpers
143
- */
144
- /**
145
- * Run an async test with timeout
146
- * @param fn - Test function to run
147
- * @param timeoutMs - Timeout in milliseconds (default: 5000)
148
- * @returns Promise that rejects if timeout
149
- */
150
- export function withTimeout(fn, timeoutMs = 5000) {
151
- const timeoutPromise = new Promise((_, reject) => {
152
- setTimeout(() => reject(new Error(`Test timed out after ${timeoutMs}ms`)), timeoutMs);
153
- });
154
- return Promise.race([fn(), timeoutPromise]);
155
- }
156
- /**
157
- * Database test helpers
158
- */
159
- /**
160
- * Generate a unique database name for testing
161
- * @returns Unique database name
162
- */
163
- export function generateTestDbName() {
164
- return `test-${randomUUID().slice(0, 8)}.sqlite`;
165
- }
166
- /**
167
- * Memory test helpers
168
- */
169
- /**
170
- * Create a test memory entry with required fields
171
- * @param overrides - Fields to override from defaults
172
- * @returns Test memory entry
173
- */
174
- export function createTestMemoryEntry(overrides = {}) {
175
- const now = Date.now();
176
- return {
177
- name: `test-entry-${randomUUID().slice(0, 8)}`,
178
- content: 'Test content',
179
- entry_type: 'note',
180
- status: 'active',
181
- priority: 'medium',
182
- tags: '',
183
- created_at: now,
184
- updated_at: now,
185
- last_accessed: now,
186
- ...overrides,
187
- };
188
- }
189
- /**
190
- * Assert helpers (deprecated - use expect() directly in tests)
191
- */
192
- // Note: These helper functions are not used. Use expect() directly in tests.
193
- // export function expectToRejectWithMessage(fn: () => Promise<any>, errorMessage: string): Promise<void> {
194
- // return expect(fn()).rejects.toThrow(errorMessage)
195
- // }
196
- //
197
- // export function expectToThrowWithType<T extends Error>(fn: () => any, errorType: new (...args: any[]) => T): Promise<void> {
198
- // return expect(fn()).toThrow(errorType)
199
- // }
200
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/test/utils.ts"],"names":[],"mappings":"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"}
@@ -1,120 +0,0 @@
1
- /**
2
- * Workflow Testing Fixtures
3
- *
4
- * Provides reusable fixtures for workflow testing with reduced mock usage
5
- * and better type safety. Addresses P0 mock overuse issues from test review plan.
6
- */
7
- import { mock } from 'bun:test';
8
- /**
9
- * Create a workflow test context with properly typed mocks
10
- *
11
- * This is a minimal fixture - only mocks what cannot be tested with real implementations.
12
- * Following the test review plan's guidance:
13
- * - Prefer real implementations over mocks
14
- * - Use typed mocks, not 'any'
15
- * - Maximum 3-5 mocks per test (enforced by this fixture's API)
16
- */
17
- export function createWorkflowTestContext() {
18
- // Only mock the tools that are actually needed for workflow testing
19
- const tools = {
20
- executeCommand: mock(),
21
- input: mock(),
22
- generateText: mock(),
23
- taskEvent: mock(),
24
- getMemoryContext: mock().mockResolvedValue(''),
25
- updateMemory: mock(),
26
- printChangeFile: mock(),
27
- createCommit: mock(),
28
- confirm: mock(),
29
- select: mock(),
30
- readFile: mock(),
31
- writeToFile: mock(),
32
- createPullRequest: mock(),
33
- invokeTool: mock(),
34
- };
35
- const step = mock(async (_name, arg2, arg3) => {
36
- const fn = typeof arg2 === 'function' ? arg2 : arg3;
37
- if (typeof fn === 'function') {
38
- return fn();
39
- }
40
- return undefined;
41
- });
42
- const logger = {
43
- info: mock(() => { }),
44
- error: mock(() => { }),
45
- warn: mock(() => { }),
46
- debug: mock(() => { }),
47
- };
48
- const context = {
49
- tools,
50
- step,
51
- logger,
52
- };
53
- return { context, tools, step, logger };
54
- }
55
- /**
56
- * Helper to set up successful command execution
57
- * @param tools - Tools object from createWorkflowTestContext
58
- * @param stdout - Standard output to return
59
- * @param stderr - Standard error to return (default: '')
60
- * @param exitCode - Exit code to return (default: 0)
61
- */
62
- export function mockSuccessfulCommand(tools, stdout, stderr = '', exitCode = 0) {
63
- tools.executeCommand.mockResolvedValue({ exitCode, stdout, stderr });
64
- }
65
- /**
66
- * Helper to set up failed command execution
67
- * @param tools - Tools object from createWorkflowTestContext
68
- * @param stdout - Standard output to return (default: 'FAIL')
69
- * @param stderr - Standard error to return (default: 'Error')
70
- */
71
- export function mockFailedCommand(tools, stdout = 'FAIL', stderr = 'Error') {
72
- tools.executeCommand.mockResolvedValue({ exitCode: 1, stdout, stderr });
73
- }
74
- /**
75
- * Helper to set up agent response
76
- * @param tools - Tools object from createWorkflowTestContext
77
- * @param summary - Summary text from agent
78
- * @param bailReason - Optional bail reason
79
- */
80
- export function mockAgentResponse(tools, summary, bailReason) {
81
- const content = JSON.stringify({ summary, bailReason: bailReason ?? null });
82
- tools.generateText.mockResolvedValue([
83
- {
84
- role: 'assistant',
85
- content: `\`\`\`json\n${content}\n\`\`\``,
86
- },
87
- ]);
88
- }
89
- /**
90
- * Helper to set up multiple command attempts (e.g., for retry logic)
91
- * @param tools - Tools object from createWorkflowTestContext
92
- * @param attempts - Array of exit codes for each attempt
93
- */
94
- export function mockCommandAttempts(tools, attempts) {
95
- for (const exitCode of attempts) {
96
- tools.executeCommand.mockResolvedValueOnce({
97
- exitCode,
98
- stdout: exitCode === 0 ? 'PASS' : 'FAIL',
99
- stderr: exitCode === 0 ? '' : 'Error',
100
- });
101
- }
102
- }
103
- /**
104
- * Helper to verify exact number of tool calls (deprecated - use expect() directly)
105
- * @param tools - Tools object from createWorkflowTestContext
106
- * @param expectations - Object mapping tool names to expected call counts
107
- */
108
- // Note: Not used - use expect(tool).toHaveBeenCalledTimes(count) directly in tests
109
- /*
110
- export function expectToolCalls(
111
- tools: WorkflowTestContext['tools'],
112
- expectations: Partial<Record<keyof WorkflowTestContext['tools'], number>>,
113
- ): void {
114
- for (const [toolName, expectedCount] of Object.entries(expectations)) {
115
- const tool = tools[toolName as keyof typeof tools]
116
- expect(tool).toHaveBeenCalledTimes(expectedCount)
117
- }
118
- }
119
- */
120
- //# sourceMappingURL=workflow-fixtures.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-fixtures.js","sourceRoot":"","sources":["../../src/test/workflow-fixtures.ts"],"names":[],"mappings":"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"}