pi-harness-runtime 0.9.22 → 0.10.0

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 (393) hide show
  1. package/CHANGELOG.md +49 -7
  2. package/README.md +51 -51
  3. package/footer-status.ts +84 -44
  4. package/harness/auto-compact.ts +1 -1
  5. package/harness/auto-quota-resume.ts +15 -12
  6. package/harness/autonomous-review.ts +88 -0
  7. package/harness/context-compact-orchestrator.ts +23 -23
  8. package/harness/context-window-manager.ts +5 -5
  9. package/harness/continue-prompt.ts +3 -3
  10. package/harness/e2e/minimax-quota-scraper.ts +10 -10
  11. package/harness/e2e/openai-quota-scraper.ts +442 -0
  12. package/harness/forked-summarizer.ts +4 -4
  13. package/harness/herdr-agents.ts +91 -0
  14. package/harness/index.ts +5 -5
  15. package/harness/loop-code-agent.ts +284 -0
  16. package/harness/loop-controller.ts +201 -0
  17. package/harness/loop-review-agent.ts +295 -0
  18. package/harness/loop-runtime.ts +21 -17
  19. package/harness/loop-types.ts +118 -0
  20. package/harness/notification-events.ts +3 -3
  21. package/harness/output-limit-handler.ts +1 -1
  22. package/harness/partial-recovery.ts +3 -3
  23. package/harness/session-memory.ts +5 -5
  24. package/index.ts +211 -80
  25. package/package.json +2 -2
  26. package/packages/a2a-adapter/package.json +1 -1
  27. package/packages/a2a-adapter/src/types.ts +5 -5
  28. package/packages/auth/dist/minimax-browser-auth.d.ts +89 -0
  29. package/packages/auth/dist/minimax-browser-auth.d.ts.map +1 -0
  30. package/packages/auth/dist/minimax-browser-auth.js +890 -0
  31. package/packages/auth/dist/minimax-browser-auth.js.map +1 -0
  32. package/packages/auth/dist/run-minimax-auth.d.ts +19 -0
  33. package/packages/auth/dist/run-minimax-auth.d.ts.map +1 -0
  34. package/packages/auth/dist/run-minimax-auth.js +112 -0
  35. package/packages/auth/dist/run-minimax-auth.js.map +1 -0
  36. package/packages/auth/package.json +1 -1
  37. package/packages/auth/tsconfig.json +9 -0
  38. package/packages/autonomous-refactor/package.json +1 -1
  39. package/packages/autonomous-runtime/dist/inbox.d.ts +3 -3
  40. package/packages/autonomous-runtime/dist/inbox.js +12 -12
  41. package/packages/autonomous-runtime/dist/lease.js +14 -14
  42. package/packages/autonomous-runtime/dist/types.js +1 -1
  43. package/packages/autonomous-runtime/package.json +1 -1
  44. package/packages/autonomous-runtime/src/inbox.ts +12 -12
  45. package/packages/autonomous-runtime/src/lease.ts +15 -15
  46. package/packages/autonomous-runtime/src/types.ts +13 -13
  47. package/packages/autonomous-runtime/tsconfig.tsbuildinfo +1 -1
  48. package/packages/cache-strategy/package.json +1 -1
  49. package/packages/capability-registry/dist/types.js +1 -1
  50. package/packages/capability-registry/package.json +1 -1
  51. package/packages/capability-registry/src/types.ts +5 -5
  52. package/packages/checkpoint/README.md +6 -6
  53. package/packages/checkpoint/dist/differ.js +2 -2
  54. package/packages/checkpoint/dist/engine.js +3 -3
  55. package/packages/checkpoint/dist/index.js +5 -5
  56. package/packages/checkpoint/dist/storage.js +3 -3
  57. package/packages/checkpoint/dist/types.js +1 -1
  58. package/packages/checkpoint/package.json +1 -1
  59. package/packages/checkpoint/src/differ.ts +2 -2
  60. package/packages/checkpoint/src/engine.ts +3 -3
  61. package/packages/checkpoint/src/index.ts +5 -5
  62. package/packages/checkpoint/src/storage.ts +3 -3
  63. package/packages/checkpoint/src/types.ts +10 -10
  64. package/packages/checkpoint/tsconfig.tsbuildinfo +1 -1
  65. package/packages/cli-plugin-sdk/package.json +1 -1
  66. package/packages/clipboard/dist/src/clipboard.d.ts.map +1 -1
  67. package/packages/clipboard/dist/src/clipboard.js +15 -7
  68. package/packages/clipboard/dist/src/clipboard.js.map +1 -1
  69. package/packages/clipboard/package.json +1 -1
  70. package/packages/clipboard/src/clipboard.ts +16 -9
  71. package/packages/code-generation/README.md +13 -13
  72. package/packages/code-generation/dist/faker.js +4 -4
  73. package/packages/code-generation/dist/generator.js +3 -3
  74. package/packages/code-generation/dist/index.js +3 -3
  75. package/packages/code-generation/dist/templates/registry.js +1 -1
  76. package/packages/code-generation/dist/types.js +1 -1
  77. package/packages/code-generation/package.json +1 -1
  78. package/packages/code-generation/src/faker.ts +5 -5
  79. package/packages/code-generation/src/generator.ts +4 -4
  80. package/packages/code-generation/src/index.ts +3 -3
  81. package/packages/code-generation/src/templates/registry.ts +1 -1
  82. package/packages/code-generation/src/types.ts +10 -10
  83. package/packages/code-generation/tsconfig.tsbuildinfo +1 -1
  84. package/packages/code-review/README.md +13 -13
  85. package/packages/code-review/dist/engine.js +3 -3
  86. package/packages/code-review/dist/index.js +3 -3
  87. package/packages/code-review/dist/types.js +1 -1
  88. package/packages/code-review/package.json +1 -1
  89. package/packages/code-review/src/engine.ts +3 -3
  90. package/packages/code-review/src/index.ts +3 -3
  91. package/packages/code-review/src/types.ts +10 -10
  92. package/packages/code-review/tsconfig.tsbuildinfo +1 -1
  93. package/packages/codex-adapter/package.json +1 -1
  94. package/packages/context-compiler/dist/compiler.js +1 -1
  95. package/packages/context-compiler/package.json +1 -1
  96. package/packages/context-compiler/src/compiler.ts +1 -1
  97. package/packages/context-compiler/src/types.ts +11 -11
  98. package/packages/context-compiler/test/context-compiler.test.ts +11 -11
  99. package/packages/context-discovery/package.json +1 -1
  100. package/packages/context-manager/package.json +1 -1
  101. package/packages/cookie-sanitizer/README.md +27 -27
  102. package/packages/cookie-sanitizer/package.json +1 -1
  103. package/packages/cost-optimizer/package.json +1 -1
  104. package/packages/cost-optimizer/src/types.ts +5 -5
  105. package/packages/dependency-analyzer/package.json +1 -1
  106. package/packages/django-plugin/dist/analyzer.js +7 -7
  107. package/packages/django-plugin/package.json +1 -1
  108. package/packages/django-plugin/src/analyzer.ts +7 -7
  109. package/packages/doc-generator/package.json +1 -1
  110. package/packages/evaluation-engine/dist/engine.js +9 -9
  111. package/packages/evaluation-engine/package.json +1 -1
  112. package/packages/evaluation-engine/src/engine.ts +9 -9
  113. package/packages/evaluation-engine/src/types.ts +3 -3
  114. package/packages/evaluation-runner/package.json +1 -1
  115. package/packages/event-bus/dist/src/herdr-bus.d.ts +121 -0
  116. package/packages/event-bus/dist/src/herdr-bus.d.ts.map +1 -0
  117. package/packages/event-bus/dist/src/herdr-bus.js +322 -0
  118. package/packages/event-bus/dist/src/herdr-bus.js.map +1 -0
  119. package/packages/event-bus/dist/src/index.d.ts +2 -0
  120. package/packages/event-bus/dist/src/index.d.ts.map +1 -1
  121. package/packages/event-bus/dist/src/index.js +1 -0
  122. package/packages/event-bus/dist/src/index.js.map +1 -1
  123. package/packages/event-bus/package.json +1 -1
  124. package/packages/event-bus/src/herdr-bus.ts +525 -0
  125. package/packages/event-bus/src/index.ts +29 -0
  126. package/packages/event-store/package.json +1 -1
  127. package/packages/experience-replay/dist/replay.js +7 -7
  128. package/packages/experience-replay/package.json +1 -1
  129. package/packages/experience-replay/src/replay.ts +7 -7
  130. package/packages/experience-replay/src/types.ts +5 -5
  131. package/packages/feedback-collector/package.json +1 -1
  132. package/packages/framework-detector/README.md +18 -18
  133. package/packages/framework-detector/dist/detector.js +3 -3
  134. package/packages/framework-detector/dist/index.js +3 -3
  135. package/packages/framework-detector/dist/signatures/registry.js +24 -24
  136. package/packages/framework-detector/dist/types.js +1 -1
  137. package/packages/framework-detector/package.json +1 -1
  138. package/packages/framework-detector/src/detector.ts +3 -3
  139. package/packages/framework-detector/src/index.ts +3 -3
  140. package/packages/framework-detector/src/signatures/registry.ts +24 -24
  141. package/packages/framework-detector/src/types.ts +7 -7
  142. package/packages/framework-detector/tsconfig.tsbuildinfo +1 -1
  143. package/packages/framework-plugin-sdk/README.md +23 -23
  144. package/packages/framework-plugin-sdk/dist/index.js +2 -2
  145. package/packages/framework-plugin-sdk/dist/manager.js +3 -3
  146. package/packages/framework-plugin-sdk/dist/types.js +2 -2
  147. package/packages/framework-plugin-sdk/package.json +1 -1
  148. package/packages/framework-plugin-sdk/src/index.ts +2 -2
  149. package/packages/framework-plugin-sdk/src/manager.ts +3 -3
  150. package/packages/framework-plugin-sdk/src/types.ts +10 -10
  151. package/packages/framework-plugin-sdk/tsconfig.tsbuildinfo +1 -1
  152. package/packages/frappe-plugin/dist/analyzer.js +8 -8
  153. package/packages/frappe-plugin/dist/types.js +1 -1
  154. package/packages/frappe-plugin/package.json +1 -1
  155. package/packages/frappe-plugin/src/analyzer.ts +8 -8
  156. package/packages/frappe-plugin/src/types.ts +10 -10
  157. package/packages/generic-web-plugin/dist/analyzer.js +5 -5
  158. package/packages/generic-web-plugin/package.json +1 -1
  159. package/packages/generic-web-plugin/src/analyzer.ts +5 -5
  160. package/packages/health-monitor/package.json +1 -1
  161. package/packages/health-monitor/src/monitor.ts +1 -1
  162. package/packages/intent-analyzer/package.json +1 -1
  163. package/packages/laravel-plugin/dist/analyzer.js +11 -11
  164. package/packages/laravel-plugin/package.json +1 -1
  165. package/packages/laravel-plugin/src/analyzer.ts +11 -11
  166. package/packages/learning-engine/dist/engine.js +5 -5
  167. package/packages/learning-engine/dist/types.js +1 -1
  168. package/packages/learning-engine/package.json +1 -1
  169. package/packages/learning-engine/src/engine.ts +5 -5
  170. package/packages/learning-engine/src/types.ts +6 -6
  171. package/packages/mcp-adapter/package.json +1 -1
  172. package/packages/memory-engine/dist/engine.js +8 -8
  173. package/packages/memory-engine/dist/types.js +2 -2
  174. package/packages/memory-engine/package.json +1 -1
  175. package/packages/memory-engine/src/engine.ts +8 -8
  176. package/packages/memory-engine/src/types.ts +9 -9
  177. package/packages/model-registry/package.json +1 -1
  178. package/packages/model-registry/src/types.ts +4 -4
  179. package/packages/nextjs-plugin/dist/analyzer.js +9 -9
  180. package/packages/nextjs-plugin/package.json +1 -1
  181. package/packages/nextjs-plugin/src/analyzer.ts +9 -9
  182. package/packages/notification/dist/notification-center.js +1 -1
  183. package/packages/notification/package.json +1 -1
  184. package/packages/notification/src/notification-center.ts +1 -1
  185. package/packages/observability/dist/alerts.js +2 -2
  186. package/packages/observability/dist/health.js +4 -4
  187. package/packages/observability/dist/index.js +6 -6
  188. package/packages/observability/dist/logger.js +7 -7
  189. package/packages/observability/dist/metrics.js +11 -11
  190. package/packages/observability/dist/tracer.js +3 -3
  191. package/packages/observability/dist/types.js +1 -1
  192. package/packages/observability/package.json +1 -1
  193. package/packages/observability/src/alerts.ts +2 -2
  194. package/packages/observability/src/health.ts +4 -4
  195. package/packages/observability/src/index.ts +6 -6
  196. package/packages/observability/src/logger.ts +7 -7
  197. package/packages/observability/src/metrics.ts +11 -11
  198. package/packages/observability/src/tracer.ts +3 -3
  199. package/packages/observability/src/types.ts +7 -7
  200. package/packages/observability/test/observability.test.ts +4 -4
  201. package/packages/observability/tsconfig.tsbuildinfo +1 -1
  202. package/packages/performance-optimizer/dist/optimizer.js +1 -1
  203. package/packages/performance-optimizer/package.json +1 -1
  204. package/packages/performance-optimizer/src/optimizer.ts +1 -1
  205. package/packages/performance-optimizer/src/types.ts +4 -4
  206. package/packages/privilege-broker/package.json +1 -1
  207. package/packages/project-analyzer/dist/analyzer.js +4 -4
  208. package/packages/project-analyzer/dist/index.js +8 -8
  209. package/packages/project-analyzer/dist/signals.js +3 -3
  210. package/packages/project-analyzer/dist/types.js +1 -1
  211. package/packages/project-analyzer/package.json +1 -1
  212. package/packages/project-analyzer/src/analyzer.ts +4 -4
  213. package/packages/project-analyzer/src/index.ts +9 -9
  214. package/packages/project-analyzer/src/signals.ts +4 -4
  215. package/packages/project-analyzer/src/types.ts +15 -15
  216. package/packages/project-analyzer/test/index.test.ts +17 -17
  217. package/packages/project-analyzer/tsconfig.tsbuildinfo +1 -1
  218. package/packages/projection-engine/package.json +1 -1
  219. package/packages/prompt-compiler/dist/section-builder.js +1 -1
  220. package/packages/prompt-compiler/dist/types.js +3 -3
  221. package/packages/prompt-compiler/package.json +1 -1
  222. package/packages/prompt-compiler/src/section-builder.ts +1 -1
  223. package/packages/prompt-compiler/src/types.ts +12 -12
  224. package/packages/prompt-compiler/test/prompt-compiler.test.ts +12 -12
  225. package/packages/prompt-versioning/package.json +1 -1
  226. package/packages/provider-adapter-sdk/dist/builder.js +1 -1
  227. package/packages/provider-adapter-sdk/dist/index.js +5 -5
  228. package/packages/provider-adapter-sdk/dist/registry.js +1 -1
  229. package/packages/provider-adapter-sdk/dist/tester.js +1 -1
  230. package/packages/provider-adapter-sdk/dist/types.js +1 -1
  231. package/packages/provider-adapter-sdk/package.json +1 -1
  232. package/packages/provider-adapter-sdk/src/builder.ts +1 -1
  233. package/packages/provider-adapter-sdk/src/index.ts +6 -6
  234. package/packages/provider-adapter-sdk/src/registry.ts +1 -1
  235. package/packages/provider-adapter-sdk/src/tester.ts +1 -1
  236. package/packages/provider-adapter-sdk/src/types.ts +5 -5
  237. package/packages/provider-adapter-sdk/tsconfig.tsbuildinfo +1 -1
  238. package/packages/provider-router/package.json +1 -1
  239. package/packages/provider-router/src/types.ts +4 -4
  240. package/packages/provider-selector/package.json +1 -1
  241. package/packages/providers/dist/deepagents-adapter.js +1 -1
  242. package/packages/providers/dist/provider-id.d.ts +5 -0
  243. package/packages/providers/dist/provider-id.d.ts.map +1 -1
  244. package/packages/providers/dist/provider-id.js +6 -1
  245. package/packages/providers/dist/provider-id.js.map +1 -1
  246. package/packages/providers/package.json +1 -1
  247. package/packages/providers/src/deepagents-adapter.ts +1 -1
  248. package/packages/providers/src/provider-id.ts +6 -1
  249. package/packages/quota-manager/dist/tui-usage-monitor.d.ts.map +1 -1
  250. package/packages/quota-manager/dist/tui-usage-monitor.js +0 -6
  251. package/packages/quota-manager/dist/tui-usage-monitor.js.map +1 -1
  252. package/packages/quota-manager/package.json +1 -1
  253. package/packages/quota-manager/src/tui-usage-monitor.ts +0 -21
  254. package/packages/rate-limiter/package.json +1 -1
  255. package/packages/react-vite-plugin/dist/analyzer.js +7 -7
  256. package/packages/react-vite-plugin/package.json +1 -1
  257. package/packages/react-vite-plugin/src/analyzer.ts +7 -7
  258. package/packages/release-manager/package.json +1 -1
  259. package/packages/requirement-compiler/dist/compiler.js +17 -17
  260. package/packages/requirement-compiler/dist/types.js +2 -2
  261. package/packages/requirement-compiler/package.json +1 -1
  262. package/packages/requirement-compiler/src/compiler.ts +17 -17
  263. package/packages/requirement-compiler/src/types.ts +21 -21
  264. package/packages/requirement-compiler/test/requirement-compiler.test.ts +17 -17
  265. package/packages/runtime/dist/command-executor.js +1 -1
  266. package/packages/runtime/dist/local-runtime-agent.js +1 -1
  267. package/packages/runtime/dist/policy-engine.js +1 -1
  268. package/packages/runtime/dist/runtime-api.js +1 -1
  269. package/packages/runtime/dist/workspace-manager.js +1 -1
  270. package/packages/runtime/package.json +1 -1
  271. package/packages/runtime/src/command-executor.ts +1 -1
  272. package/packages/runtime/src/local-runtime-agent.ts +1 -1
  273. package/packages/runtime/src/policy-engine.ts +1 -1
  274. package/packages/runtime/src/runtime-api.ts +1 -1
  275. package/packages/runtime/src/workspace-manager.ts +1 -1
  276. package/packages/scheduler/package.json +1 -1
  277. package/packages/scheduler-adapter/package.json +1 -1
  278. package/packages/session/README.md +18 -18
  279. package/packages/session/dist/history.js +3 -3
  280. package/packages/session/dist/index.js +5 -5
  281. package/packages/session/dist/manager.js +3 -3
  282. package/packages/session/dist/policy.js +2 -2
  283. package/packages/session/dist/store.js +2 -2
  284. package/packages/session/dist/types.js +1 -1
  285. package/packages/session/package.json +1 -1
  286. package/packages/session/src/history.ts +3 -3
  287. package/packages/session/src/index.ts +5 -5
  288. package/packages/session/src/manager.ts +3 -3
  289. package/packages/session/src/policy.ts +4 -4
  290. package/packages/session/src/store.ts +3 -3
  291. package/packages/session/src/types.ts +10 -10
  292. package/packages/session/tsconfig.tsbuildinfo +1 -1
  293. package/packages/session-api/package.json +1 -1
  294. package/packages/session-export/package.json +1 -1
  295. package/packages/shared-context/package.json +1 -1
  296. package/packages/skill-registry/package.json +1 -1
  297. package/packages/skill-registry/src/types.ts +4 -4
  298. package/packages/sprint-planner/package.json +1 -1
  299. package/packages/subscription-engine/package.json +1 -1
  300. package/packages/task-compiler/dist/compiler.js +7 -7
  301. package/packages/task-compiler/dist/decompose.js +11 -11
  302. package/packages/task-compiler/dist/file-scope.js +6 -6
  303. package/packages/task-compiler/dist/graph.js +6 -6
  304. package/packages/task-compiler/dist/index.js +2 -2
  305. package/packages/task-compiler/dist/types.js +5 -5
  306. package/packages/task-compiler/dist/validate.js +2 -2
  307. package/packages/task-compiler/dist/verification.js +2 -2
  308. package/packages/task-compiler/package.json +1 -1
  309. package/packages/task-compiler/src/command-policy.ts +1 -1
  310. package/packages/task-compiler/src/compiler.ts +7 -7
  311. package/packages/task-compiler/src/decompose.ts +11 -11
  312. package/packages/task-compiler/src/file-scope.ts +6 -6
  313. package/packages/task-compiler/src/graph.ts +6 -6
  314. package/packages/task-compiler/src/index.ts +3 -3
  315. package/packages/task-compiler/src/types.ts +14 -14
  316. package/packages/task-compiler/src/validate.ts +2 -2
  317. package/packages/task-compiler/src/verification.ts +2 -2
  318. package/packages/task-compiler/test/task-compiler.test.ts +10 -10
  319. package/packages/test-data-generator/README.md +13 -13
  320. package/packages/test-data-generator/dist/faker-adapter.js +4 -4
  321. package/packages/test-data-generator/dist/generator.js +3 -3
  322. package/packages/test-data-generator/dist/index.js +3 -3
  323. package/packages/test-data-generator/dist/types.js +1 -1
  324. package/packages/test-data-generator/package.json +1 -1
  325. package/packages/test-data-generator/src/faker-adapter.ts +4 -4
  326. package/packages/test-data-generator/src/generator.ts +3 -3
  327. package/packages/test-data-generator/src/index.ts +3 -3
  328. package/packages/test-data-generator/src/types.ts +9 -9
  329. package/packages/test-data-generator/tsconfig.tsbuildinfo +1 -1
  330. package/packages/test-generator/package.json +1 -1
  331. package/packages/token-estimation/package.json +1 -1
  332. package/packages/token-optimizer/package.json +1 -1
  333. package/packages/tui/package.json +1 -1
  334. package/packages/types/package.json +1 -1
  335. package/packages/types/src/agent-worker-types.ts +5 -5
  336. package/packages/types/src/runtime-types.ts +12 -12
  337. package/packages/types/tsconfig.tsbuildinfo +1 -1
  338. package/packages/workflow-events/package.json +1 -1
  339. package/packages/workspace-scanner/package.json +1 -1
  340. package/packages/worktree/package.json +1 -1
  341. package/renderer.ts +7 -7
  342. package/skills/harness-runtime/SKILL.md +15 -15
  343. package/packages/dependency-analyzer/dist/analyzer.d.ts +0 -17
  344. package/packages/dependency-analyzer/dist/analyzer.d.ts.map +0 -1
  345. package/packages/dependency-analyzer/dist/analyzer.js +0 -106
  346. package/packages/dependency-analyzer/dist/analyzer.js.map +0 -1
  347. package/packages/dependency-analyzer/dist/imports.d.ts +0 -12
  348. package/packages/dependency-analyzer/dist/imports.d.ts.map +0 -1
  349. package/packages/dependency-analyzer/dist/imports.js +0 -73
  350. package/packages/dependency-analyzer/dist/imports.js.map +0 -1
  351. package/packages/dependency-analyzer/dist/index.d.ts +0 -4
  352. package/packages/dependency-analyzer/dist/index.d.ts.map +0 -1
  353. package/packages/dependency-analyzer/dist/index.js +0 -3
  354. package/packages/dependency-analyzer/dist/index.js.map +0 -1
  355. package/packages/dependency-analyzer/dist/test/analyzer.test.js +0 -37
  356. package/packages/dependency-analyzer/dist/types.d.ts +0 -28
  357. package/packages/dependency-analyzer/dist/types.d.ts.map +0 -1
  358. package/packages/dependency-analyzer/dist/types.js +0 -5
  359. package/packages/dependency-analyzer/dist/types.js.map +0 -1
  360. package/packages/intent-analyzer/dist/analyzer.d.ts +0 -13
  361. package/packages/intent-analyzer/dist/analyzer.d.ts.map +0 -1
  362. package/packages/intent-analyzer/dist/analyzer.js +0 -72
  363. package/packages/intent-analyzer/dist/analyzer.js.map +0 -1
  364. package/packages/intent-analyzer/dist/index.d.ts +0 -3
  365. package/packages/intent-analyzer/dist/index.d.ts.map +0 -1
  366. package/packages/intent-analyzer/dist/index.js +0 -2
  367. package/packages/intent-analyzer/dist/index.js.map +0 -1
  368. package/packages/intent-analyzer/dist/test/analyzer.test.js +0 -56
  369. package/packages/intent-analyzer/dist/types.d.ts +0 -26
  370. package/packages/intent-analyzer/dist/types.d.ts.map +0 -1
  371. package/packages/intent-analyzer/dist/types.js +0 -7
  372. package/packages/intent-analyzer/dist/types.js.map +0 -1
  373. package/packages/workspace-scanner/dist/detect.d.ts +0 -3
  374. package/packages/workspace-scanner/dist/detect.d.ts.map +0 -1
  375. package/packages/workspace-scanner/dist/detect.js +0 -58
  376. package/packages/workspace-scanner/dist/detect.js.map +0 -1
  377. package/packages/workspace-scanner/dist/git.d.ts +0 -7
  378. package/packages/workspace-scanner/dist/git.d.ts.map +0 -1
  379. package/packages/workspace-scanner/dist/git.js +0 -75
  380. package/packages/workspace-scanner/dist/git.js.map +0 -1
  381. package/packages/workspace-scanner/dist/index.d.ts +0 -5
  382. package/packages/workspace-scanner/dist/index.d.ts.map +0 -1
  383. package/packages/workspace-scanner/dist/index.js +0 -4
  384. package/packages/workspace-scanner/dist/index.js.map +0 -1
  385. package/packages/workspace-scanner/dist/scanner.d.ts +0 -11
  386. package/packages/workspace-scanner/dist/scanner.d.ts.map +0 -1
  387. package/packages/workspace-scanner/dist/scanner.js +0 -46
  388. package/packages/workspace-scanner/dist/scanner.js.map +0 -1
  389. package/packages/workspace-scanner/dist/test/scanner.test.js +0 -34
  390. package/packages/workspace-scanner/dist/types.d.ts +0 -35
  391. package/packages/workspace-scanner/dist/types.d.ts.map +0 -1
  392. package/packages/workspace-scanner/dist/types.js +0 -5
  393. package/packages/workspace-scanner/dist/types.js.map +0 -1
package/renderer.ts CHANGED
@@ -59,16 +59,16 @@ function renderLeftLabel(pct: number): string {
59
59
  /** Render the full status block. */
60
60
  export function renderStatus(input: RenderInput): string {
61
61
  const lines: string[] = [];
62
- const divider = "─".repeat(64);
62
+ const divider = "-".repeat(64);
63
63
 
64
- // ─── Header ──────────────────────────────────────────────────────────
64
+ // --- Header ----------------------------------------------------------
65
65
  lines.push("Codex-style usage status for pi");
66
66
  lines.push(divider);
67
67
  lines.push(` Model: ${input.model ?? "unknown"}`);
68
68
  lines.push(` Directory: ${input.cwd}`);
69
69
  lines.push("");
70
70
 
71
- // ─── Local tracking ─────────────────────────────────────────────────
71
+ // --- Local tracking -------------------------------------------------
72
72
  lines.push(" ① LOCAL TRACKED (ground truth — we count this)");
73
73
  lines.push(
74
74
  ` This session: ${formatUsd(input.local.lifetime.cost)} · ${formatTokens(input.local.lifetime.tokens)} tokens · ${input.local.lifetime.requests} requests`,
@@ -84,7 +84,7 @@ export function renderStatus(input: RenderInput): string {
84
84
  );
85
85
  lines.push("");
86
86
 
87
- // ─── Provider mirror ─────────────────────────────────────────────────
87
+ // --- Provider mirror -------------------------------------------------
88
88
  if (input.mirror) {
89
89
  const fresh = input.mirrorStore.freshness(input.mirror, input.nowMs);
90
90
  const freshnessLabel =
@@ -137,7 +137,7 @@ export function renderStatus(input: RenderInput): string {
137
137
  lines.push("");
138
138
  }
139
139
 
140
- // ─── Local reset times (derived) ────────────────────────────────────
140
+ // --- Local reset times (derived) ------------------------------------
141
141
  lines.push(" ③ LOCAL RESET TIMES (derived from your data)");
142
142
  const local5hReset = computeLocalResetTime(input.local.five_h, FIVE_HOURS_MS);
143
143
  const localWeekReset = computeLocalResetTime(
@@ -161,7 +161,7 @@ export function renderStatus(input: RenderInput): string {
161
161
  lines.push(` Local week reset: no requests in last 7 days`);
162
162
  }
163
163
 
164
- // ─── Local-vs-mirror divergence ─────────────────────────────────────
164
+ // --- Local-vs-mirror divergence -------------------------------------
165
165
  if (input.mirror?.h5_used_pct !== undefined) {
166
166
  const localPct = input.localFiveHLimitTokens
167
167
  ? (input.local.five_h.tokens / input.localFiveHLimitTokens) * 100
@@ -173,7 +173,7 @@ export function renderStatus(input: RenderInput): string {
173
173
  lines.push(` Local-vs-mirror: ${deltaStr}${warning}`);
174
174
  }
175
175
 
176
- // ─── Burn rate ──────────────────────────────────────────────────────
176
+ // --- Burn rate ------------------------------------------------------
177
177
  if (
178
178
  input.mirror?.weekly_used_pct !== undefined &&
179
179
  input.mirror.weekly_resets_at
@@ -14,16 +14,16 @@ pi-harness-runtime is a local-first, provider-agnostic AI coding harness runtime
14
14
 
15
15
  ```
16
16
  Human Requirement
17
- → /harness start <requirement>
18
- → Master Planner (creates task graph)
19
- → Loop Runtime (executes tasks)
20
- → Provider Router (selects best model)
21
- → BlackBoard (coordination)
22
- → Checkpoint Manager (resumability)
23
- → Quota Manager (avoid exhaustion)
24
- → Scheduler (pause/resume)
25
- → Repair Engine (auto-fix failures)
26
- → /harness status (report)
17
+ -> /harness start <requirement>
18
+ -> Master Planner (creates task graph)
19
+ -> Loop Runtime (executes tasks)
20
+ -> Provider Router (selects best model)
21
+ -> BlackBoard (coordination)
22
+ -> Checkpoint Manager (resumability)
23
+ -> Quota Manager (avoid exhaustion)
24
+ -> Scheduler (pause/resume)
25
+ -> Repair Engine (auto-fix failures)
26
+ -> /harness status (report)
27
27
  ```
28
28
 
29
29
  ## Commands
@@ -61,7 +61,7 @@ Human Requirement
61
61
 
62
62
  ```bash
63
63
  harness-auth auth
64
- # → Opens Chrome browser, login once, profile auto-saves
64
+ # -> Opens Chrome browser, login once, profile auto-saves
65
65
  # Or: bun packages/auth/src/run-minimax-auth.ts auth
66
66
  ```
67
67
 
@@ -69,17 +69,17 @@ harness-auth auth
69
69
 
70
70
  ```bash
71
71
  harness-auth scrape
72
- # → Silent scraping with saved profile
72
+ # -> Silent scraping with saved profile
73
73
  # Or: bun packages/auth/src/run-minimax-auth.ts scrape
74
74
  ```
75
75
 
76
76
  ## Job State Machine
77
77
 
78
78
  ```
79
- created → planning → queued → running → testing → reviewing
80
- ↓ ↓ ↓ ↓ ↓
79
+ created -> planning -> queued -> running -> testing -> reviewing
80
+ v v v v v
81
81
  cancelled blocked waiting_human repairing ready_for_client
82
- ↓ ↓
82
+ v v
83
83
  paused_quota archived
84
84
  ```
85
85
 
@@ -1,17 +0,0 @@
1
- /**
2
- * Dependency Analyzer — Main Analyzer
3
- */
4
- import type { DependencyGraph } from "./types.js";
5
- export declare class DependencyAnalyzer {
6
- private rootPath;
7
- private maxDepth;
8
- private excludePatterns;
9
- constructor(rootPath: string);
10
- analyze(entryFile: string): Promise<DependencyGraph>;
11
- getStats(graph: DependencyGraph): {
12
- totalFiles: number;
13
- totalImports: number;
14
- cycles: number;
15
- };
16
- }
17
- //# sourceMappingURL=analyzer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAkB,eAAe,EAAsC,MAAM,YAAY,CAAC;AAmCtG,qBAAa,kBAAkB;IAC9B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAW;IAElC,YAAY,QAAQ,EAAE,MAAM,EAI3B;IAEK,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAmDzD;IAED,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAM7F;CACD"}
@@ -1,106 +0,0 @@
1
- /**
2
- * Dependency Analyzer — Main Analyzer
3
- */
4
- import { existsSync, readFileSync } from "node:fs";
5
- import { join, relative } from "node:path";
6
- import { parseImports } from "./imports.js";
7
- function detectCycle(graph) {
8
- const cycles = [];
9
- const visited = new Set();
10
- const stack = [];
11
- function dfs(nodeId) {
12
- if (stack.includes(nodeId)) {
13
- const cycleStart = stack.indexOf(nodeId);
14
- const cycle = stack.slice(cycleStart);
15
- if (cycle.length > 1)
16
- cycles.push([...cycle, nodeId]);
17
- return;
18
- }
19
- if (visited.has(nodeId))
20
- return;
21
- visited.add(nodeId);
22
- stack.push(nodeId);
23
- const node = graph.nodes.get(nodeId);
24
- if (node) {
25
- for (const imp of node.imports) {
26
- const target = graph.nodes.get(imp);
27
- if (target)
28
- dfs(imp);
29
- }
30
- }
31
- stack.pop();
32
- }
33
- for (const id of graph.nodes.keys()) {
34
- if (!visited.has(id))
35
- dfs(id);
36
- }
37
- return cycles;
38
- }
39
- export class DependencyAnalyzer {
40
- rootPath;
41
- maxDepth;
42
- excludePatterns;
43
- constructor(rootPath) {
44
- this.rootPath = rootPath;
45
- this.maxDepth = 10;
46
- this.excludePatterns = ["node_modules", "dist", ".git", "coverage", "__pycache__"];
47
- }
48
- async analyze(entryFile) {
49
- const nodes = new Map();
50
- const edges = [];
51
- const visited = new Set();
52
- const queue = [{ file: entryFile, depth: 0 }];
53
- while (queue.length > 0) {
54
- const { file, depth } = queue.shift();
55
- if (depth > this.maxDepth)
56
- continue;
57
- if (visited.has(file))
58
- continue;
59
- for (const pat of this.excludePatterns) {
60
- if (file.includes(pat)) {
61
- visited.add(file);
62
- }
63
- }
64
- if (!existsSync(file))
65
- continue;
66
- visited.add(file);
67
- let content;
68
- try {
69
- content = readFileSync(file, "utf8");
70
- }
71
- catch {
72
- continue;
73
- }
74
- const imports = parseImports(content, file);
75
- const relativePath = relative(this.rootPath, file);
76
- const node = {
77
- id: relativePath,
78
- filePath: file,
79
- kind: "import",
80
- imports: imports.filter((imp) => !imp.startsWith(".") || existsSync(join(this.rootPath, imp))),
81
- };
82
- nodes.set(relativePath, node);
83
- for (const imp of node.imports) {
84
- const targetFile = join(this.rootPath, imp);
85
- if (existsSync(targetFile)) {
86
- const targetRelative = relative(this.rootPath, targetFile);
87
- if (!nodes.has(targetRelative)) {
88
- queue.push({ file: targetFile, depth: depth + 1 });
89
- }
90
- edges.push({ from: relativePath, to: targetRelative, kind: "import", weight: 1 });
91
- }
92
- }
93
- }
94
- const graph = { nodes, edges, cycles: [] };
95
- graph.cycles = detectCycle(graph);
96
- return graph;
97
- }
98
- getStats(graph) {
99
- return {
100
- totalFiles: graph.nodes.size,
101
- totalImports: graph.edges.length,
102
- cycles: graph.cycles.length,
103
- };
104
- }
105
- }
106
- //# sourceMappingURL=analyzer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Dependency Analyzer — Import Parsing
3
- */
4
- /**
5
- * Parse imports from file content. Supports TypeScript, JavaScript, CommonJS, Python.
6
- */
7
- export declare function parseImports(content: string, filePath: string): string[];
8
- /**
9
- * Resolve an import path relative to a file path.
10
- */
11
- export declare function resolveImport(importPath: string, fromFile: string): string | null;
12
- //# sourceMappingURL=imports.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../src/imports.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAYxE;AAwDD;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMjF"}
@@ -1,73 +0,0 @@
1
- /**
2
- * Dependency Analyzer — Import Parsing
3
- */
4
- import { extname, resolve } from "node:path";
5
- /**
6
- * Parse imports from file content. Supports TypeScript, JavaScript, CommonJS, Python.
7
- */
8
- export function parseImports(content, filePath) {
9
- const ext = extname(filePath).toLowerCase();
10
- const imports = [];
11
- if (["ts", "tsx", "js", "jsx", "mjs", "cjs"].includes(ext)) {
12
- imports.push(...parseTypeScriptImports(content));
13
- imports.push(...parsePythonImports(content));
14
- }
15
- else if (ext === "py") {
16
- imports.push(...parsePythonImports(content));
17
- }
18
- return [...new Set(imports)].filter(Boolean);
19
- }
20
- function parseTypeScriptImports(content) {
21
- const imports = [];
22
- // ESM: import X from './y' or import X from 'package'
23
- const esmDefault = /import\s+(?:(?:type\s+)?(?:\{[^}]*\}|[A-Z][\w$]*)\s+from\s+)?['"]([^'"]+)['"]/g;
24
- for (const match of content.matchAll(esmDefault)) {
25
- imports.push(match[1]);
26
- }
27
- // ESM: import * as X from './y'
28
- const esmNamespace = /import\s+\*\s+as\s+\w+\s+from\s+['"]([^'"]+)['"]/g;
29
- for (const match of content.matchAll(esmNamespace)) {
30
- imports.push(match[1]);
31
- }
32
- // ESM: import './x' (side-effect only)
33
- const esmSideEffect = /import\s+['"]([^'"]+)['"]/g;
34
- for (const match of content.matchAll(esmSideEffect)) {
35
- imports.push(match[1]);
36
- }
37
- // CommonJS: const X = require('./y')
38
- const cjs = /const\s+\w+\s*=\s*require\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
39
- for (const match of content.matchAll(cjs)) {
40
- imports.push(match[1]);
41
- }
42
- // CommonJS: require('./y')
43
- const cjsBare = /require\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
44
- for (const match of content.matchAll(cjsBare)) {
45
- imports.push(match[1]);
46
- }
47
- return imports;
48
- }
49
- function parsePythonImports(content) {
50
- const imports = [];
51
- // from module import x, y
52
- const fromImport = /from\s+([A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z_][A-Za-z0-9_]*)*)\s+import/g;
53
- for (const match of content.matchAll(fromImport)) {
54
- imports.push(match[1]);
55
- }
56
- // import module
57
- const directImport = /^import\s+([A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z_][A-Za-z0-9_]*)*)/gm;
58
- for (const match of content.matchAll(directImport)) {
59
- imports.push(match[1]);
60
- }
61
- return imports;
62
- }
63
- /**
64
- * Resolve an import path relative to a file path.
65
- */
66
- export function resolveImport(importPath, fromFile) {
67
- if (importPath.startsWith(".")) {
68
- return resolve(fromFile, "..", importPath);
69
- }
70
- // Package imports — return as-is (not a file path)
71
- return null;
72
- }
73
- //# sourceMappingURL=imports.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"imports.js","sourceRoot":"","sources":["../src/imports.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export { DependencyAnalyzer } from "./analyzer.js";
2
- export { parseImports } from "./imports.js";
3
- export type { DependencyGraph, DependencyNode, DependencyEdge, DependencyKind, DepAnalysisOptions } from "./types.js";
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
@@ -1,3 +0,0 @@
1
- export { DependencyAnalyzer } from "./analyzer.js";
2
- export { parseImports } from "./imports.js";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
@@ -1,37 +0,0 @@
1
- import { describe, it } from "node:test";
2
- import { deepEqual } from "node:assert";
3
- import { parseImports } from "../src/imports.js";
4
- describe("parseImports", () => {
5
- it("parses ESM default import", () => {
6
- const result = parseImports("import x from './y';", "file.ts");
7
- deepEqual(result, ["./y"]);
8
- });
9
- it("parses ESM named import", () => {
10
- const result = parseImports("import { a, b } from './x';", "file.ts");
11
- deepEqual(result, ["./x"]);
12
- });
13
- it("parses ESM package import", () => {
14
- const result = parseImports("import lodash from 'lodash';", "file.ts");
15
- deepEqual(result, ["lodash"]);
16
- });
17
- it("parses CommonJS require", () => {
18
- const result = parseImports("const x = require('./y');", "file.ts");
19
- deepEqual(result, ["./y"]);
20
- });
21
- it("parses Python from-import", () => {
22
- const result = parseImports("from os import path", "file.py");
23
- deepEqual(result, ["os"]);
24
- });
25
- it("parses Python direct import", () => {
26
- const result = parseImports("import numpy", "file.py");
27
- deepEqual(result, ["numpy"]);
28
- });
29
- it("returns empty for empty file", () => {
30
- const result = parseImports("", "file.ts");
31
- deepEqual(result, []);
32
- });
33
- it("deduplicates imports", () => {
34
- const result = parseImports("import x from './y';\nimport z from './y';", "file.ts");
35
- deepEqual(result, ["./y"]);
36
- });
37
- });
@@ -1,28 +0,0 @@
1
- /**
2
- * Dependency Analyzer — Types
3
- */
4
- export type DependencyKind = "import" | "export" | "extends" | "implements" | "call" | "reference";
5
- export interface DependencyNode {
6
- id: string;
7
- filePath: string;
8
- kind: DependencyKind;
9
- imports: string[];
10
- }
11
- export interface DependencyEdge {
12
- from: string;
13
- to: string;
14
- kind: DependencyKind;
15
- weight: number;
16
- }
17
- export interface DependencyGraph {
18
- nodes: Map<string, DependencyNode>;
19
- edges: DependencyEdge[];
20
- cycles: string[][];
21
- }
22
- export interface DepAnalysisOptions {
23
- rootPath: string;
24
- maxDepth?: number;
25
- excludePatterns?: string[];
26
- includeDev?: boolean;
27
- }
28
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,MAAM,GAAG,WAAW,CAAC;AAEnG,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACnC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Dependency Analyzer — Types
3
- */
4
- export {};
5
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Intent Analyzer — Analyzer
3
- *
4
- * Keyword-based intent detection.
5
- */
6
- import type { Intent, IntentRule } from "./types.js";
7
- export declare class IntentAnalyzer {
8
- private rules;
9
- constructor(rules?: IntentRule[]);
10
- analyze(text: string): Intent;
11
- analyzeBatch(texts: string[]): Intent[];
12
- }
13
- //# sourceMappingURL=analyzer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAgC,UAAU,EAAgB,MAAM,YAAY,CAAC;AAyBjG,qBAAa,cAAc;IAC1B,OAAO,CAAC,KAAK,CAAe;IAE5B,YAAY,KAAK,GAAE,UAAU,EAAiB,EAE7C;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA0C5B;IAED,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAEtC;CACD"}
@@ -1,72 +0,0 @@
1
- /**
2
- * Intent Analyzer — Analyzer
3
- *
4
- * Keyword-based intent detection.
5
- */
6
- const INTENT_RULES = [
7
- { kind: "bug_fix", keywords: ["fix", "bug", "error", "crash", "fail", "broken", "issue", "defect", "patch", "hotfix"], weight: 2, confidence: "high" },
8
- { kind: "feature", keywords: ["add", "implement", "new", "create", "build", "introduce"], weight: 2, confidence: "high" },
9
- { kind: "refactor", keywords: ["refactor", "rename", "move", "extract", "restructure", "cleanup", "simplify", "rewrite"], weight: 2, confidence: "high" },
10
- { kind: "code_review", keywords: ["review", "check code", "audit", "critique", "evaluate", "assess"], weight: 2, confidence: "high" },
11
- { kind: "deployment", keywords: ["deploy", "release", "publish", "ship", "launch", "rollout", "promote"], weight: 2, confidence: "high" },
12
- { kind: "testing", keywords: ["test", "spec", "coverage", "unit test", "integration test", "e2e", "specify"], weight: 2, confidence: "high" },
13
- { kind: "documentation", keywords: ["doc", "readme", "comment", "document", "guide", "changelog", "spec"], weight: 1, confidence: "medium" },
14
- { kind: "migration", keywords: ["migrate", "convert", "port", "upgrade", "move to", "transition"], weight: 2, confidence: "high" },
15
- { kind: "security", keywords: ["security", "vulnerability", "exploit", "auth", "permission", "cve", "secret", "token"], weight: 2, confidence: "high" },
16
- { kind: "performance", keywords: ["performance", "speed", "optimize", "fast", "slow", "latency", "benchmark"], weight: 2, confidence: "high" },
17
- { kind: "architecture", keywords: ["architecture", "design", "structure", "system design", "pattern", "abstraction", "component"], weight: 2, confidence: "medium" },
18
- { kind: "research", keywords: ["research", "investigate", "explore", "analyze", "study", "understand"], weight: 1, confidence: "medium" },
19
- { kind: "learning", keywords: ["learn", "teach", "explain", "how does", "understand", "what is"], weight: 1, confidence: "low" },
20
- ];
21
- function tokenize(text) {
22
- return text.toLowerCase()
23
- .replace(/[^a-z0-9\s]/g, " ")
24
- .split(/\s+/)
25
- .filter(Boolean);
26
- }
27
- export class IntentAnalyzer {
28
- rules;
29
- constructor(rules = INTENT_RULES) {
30
- this.rules = rules;
31
- }
32
- analyze(text) {
33
- const lower = text.toLowerCase();
34
- const tokens = tokenize(text);
35
- const matchedSignals = [];
36
- let topKind = "general";
37
- let topScore = 0;
38
- let topConfidence = "low";
39
- for (const rule of this.rules) {
40
- let ruleScore = 0;
41
- const matchedKeywords = [];
42
- for (const keyword of rule.keywords) {
43
- if (lower.includes(keyword)) {
44
- ruleScore += rule.weight;
45
- matchedKeywords.push(keyword);
46
- }
47
- }
48
- if (ruleScore > topScore) {
49
- topScore = ruleScore;
50
- topKind = rule.kind;
51
- topConfidence = rule.confidence;
52
- }
53
- for (const kw of matchedKeywords) {
54
- matchedSignals.push({ keyword: kw, weight: rule.weight, matched: true });
55
- }
56
- }
57
- if (topScore === 0) {
58
- topKind = "general";
59
- topConfidence = "low";
60
- }
61
- return {
62
- kind: topKind,
63
- confidence: topConfidence,
64
- signals: matchedSignals,
65
- originalText: text,
66
- };
67
- }
68
- analyzeBatch(texts) {
69
- return texts.map((t) => this.analyze(t));
70
- }
71
- }
72
- //# sourceMappingURL=analyzer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export { IntentAnalyzer } from "./analyzer.js";
2
- export type { Intent, IntentKind, IntentConfidence, IntentSignal, IntentRule } from "./types.js";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
@@ -1,2 +0,0 @@
1
- export { IntentAnalyzer } from "./analyzer.js";
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
@@ -1,56 +0,0 @@
1
- import { describe, it } from "node:test";
2
- import { IntentAnalyzer } from "../src/analyzer.js";
3
- import { equal } from "node:assert";
4
- describe("IntentAnalyzer", () => {
5
- const analyzer = new IntentAnalyzer();
6
- it("detects bug_fix from fix keyword", () => {
7
- const result = analyzer.analyze("fix the login bug on line 42");
8
- equal(result.kind, "bug_fix");
9
- });
10
- it("detects feature from add keyword", () => {
11
- const result = analyzer.analyze("add dark mode support");
12
- equal(result.kind, "feature");
13
- });
14
- it("detects refactor from refactor keyword", () => {
15
- const result = analyzer.analyze("refactor the auth module");
16
- equal(result.kind, "refactor");
17
- });
18
- it("detects testing from test keyword", () => {
19
- const result = analyzer.analyze("write tests for the payment module");
20
- equal(result.kind, "testing");
21
- });
22
- it("detects deployment from deploy keyword", () => {
23
- const result = analyzer.analyze("deploy to production");
24
- equal(result.kind, "deployment");
25
- });
26
- it("detects security from security keyword", () => {
27
- const result = analyzer.analyze("fix the auth vulnerability");
28
- equal(result.kind, "security");
29
- });
30
- it("detects performance from optimize keyword", () => {
31
- const result = analyzer.analyze("optimize the database query");
32
- equal(result.kind, "performance");
33
- });
34
- it("detects architecture from architecture keyword", () => {
35
- const result = analyzer.analyze("review the architecture design");
36
- equal(result.kind, "architecture");
37
- });
38
- it("detects migration from migrate keyword", () => {
39
- const result = analyzer.analyze("migrate to TypeScript");
40
- equal(result.kind, "migration");
41
- });
42
- it("falls back to general for unknown text", () => {
43
- const result = analyzer.analyze("hello world");
44
- equal(result.kind, "general");
45
- });
46
- it("returns matched signals", () => {
47
- const result = analyzer.analyze("fix the authentication bug");
48
- equal(result.signals.some(s => s.keyword === "fix"), true);
49
- });
50
- it("analyzeBatch returns multiple intents", () => {
51
- const results = analyzer.analyzeBatch(["fix bug", "add feature"]);
52
- equal(results.length, 2);
53
- equal(results[0].kind, "bug_fix");
54
- equal(results[1].kind, "feature");
55
- });
56
- });