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
@@ -26,7 +26,7 @@ import {
26
26
  } from "../src/index.js";
27
27
  import type { RawRequirement, ExtractedStatement } from "../src/types.js";
28
28
 
29
- // ─── Test utilities ──────────────────────────────────────────────────────
29
+ // --- Test utilities ------------------------------------------------------
30
30
 
31
31
  function makeRaw(
32
32
  text: string,
@@ -47,7 +47,7 @@ async function compile(text: string, overrides?: Partial<RawRequirement>) {
47
47
  return compileRequirement(makeRaw(text, overrides));
48
48
  }
49
49
 
50
- // ─── Test 1: Explicit requirement remains explicit ─────────────────────
50
+ // --- Test 1: Explicit requirement remains explicit ---------------------
51
51
 
52
52
  describe("Explicit requirement remains explicit", () => {
53
53
  it("goal statement becomes a goal", async () => {
@@ -71,7 +71,7 @@ describe("Explicit requirement remains explicit", () => {
71
71
  });
72
72
  });
73
73
 
74
- // ─── Test 2: Preference is NOT promoted to mandatory ───────────────────
74
+ // --- Test 2: Preference is NOT promoted to mandatory -------------------
75
75
 
76
76
  describe("Preference is not promoted to mandatory", () => {
77
77
  it("preference becomes non-blocking constraint", async () => {
@@ -95,7 +95,7 @@ describe("Preference is not promoted to mandatory", () => {
95
95
  });
96
96
  });
97
97
 
98
- // ─── Test 3: Contradictory statements create ambiguity ─────────────────
98
+ // --- Test 3: Contradictory statements create ambiguity -----------------
99
99
 
100
100
  describe("Contradictory statements create ambiguity", () => {
101
101
  it("opposing must/must not creates contradiction ambiguity", async () => {
@@ -159,7 +159,7 @@ describe("Contradictory statements create ambiguity", () => {
159
159
  });
160
160
  });
161
161
 
162
- // ─── Test 4: Acceptance criteria normalize to Given/When/Then ───────────
162
+ // --- Test 4: Acceptance criteria normalize to Given/When/Then -----------
163
163
 
164
164
  describe("Acceptance criteria normalize to Given/When/Then", () => {
165
165
  it("Given/When/Then statement parses correctly", () => {
@@ -236,7 +236,7 @@ describe("Acceptance criteria normalize to Given/When/Then", () => {
236
236
  });
237
237
  });
238
238
 
239
- // ─── Test 5: Thai terminology preserved in glossary ────────────────────
239
+ // --- Test 5: Thai terminology preserved in glossary --------------------
240
240
 
241
241
  describe("Thai terminology remains in glossary", () => {
242
242
  it("Thai term is preserved in terminology", async () => {
@@ -267,7 +267,7 @@ describe("Thai terminology remains in glossary", () => {
267
267
  });
268
268
  });
269
269
 
270
- // ─── Test 6: Financial requirement receives risk tag ──────────────────
270
+ // --- Test 6: Financial requirement receives risk tag ------------------
271
271
 
272
272
  describe("Financial requirement receives risk tag", () => {
273
273
  it("payment keyword triggers financial risk", async () => {
@@ -300,7 +300,7 @@ describe("Financial requirement receives risk tag", () => {
300
300
  });
301
301
  });
302
302
 
303
- // ─── Test 7: Empty requirement is rejected ───────────────────────────
303
+ // --- Test 7: Empty requirement is rejected ---------------------------
304
304
 
305
305
  describe("Empty requirement is rejected", () => {
306
306
  it("rejects empty text requirement", async () => {
@@ -345,7 +345,7 @@ describe("Empty requirement is rejected", () => {
345
345
  });
346
346
  });
347
347
 
348
- // ─── Test 8: Source references remain traceable ─────────────────────────
348
+ // --- Test 8: Source references remain traceable -------------------------
349
349
 
350
350
  describe("Source references remain traceable", () => {
351
351
  it("every goal has a source reference", async () => {
@@ -408,7 +408,7 @@ describe("Source references remain traceable", () => {
408
408
  });
409
409
  });
410
410
 
411
- // ─── Extractor tests ─────────────────────────────────────────────────────
411
+ // --- Extractor tests -----------------------------------------------------
412
412
 
413
413
  describe("Statement extraction", () => {
414
414
  it("extracts numbered list items", () => {
@@ -433,7 +433,7 @@ describe("Statement extraction", () => {
433
433
  });
434
434
  });
435
435
 
436
- // ─── Classifier tests ───────────────────────────────────────────────────
436
+ // --- Classifier tests ---------------------------------------------------
437
437
 
438
438
  describe("Statement classification", () => {
439
439
  it("classifies must statements as explicit_behavior", () => {
@@ -492,7 +492,7 @@ describe("Statement classification", () => {
492
492
  });
493
493
  });
494
494
 
495
- // ─── Risk detection tests ────────────────────────────────────────────────
495
+ // --- Risk detection tests ------------------------------------------------
496
496
 
497
497
  describe("Risk detection", () => {
498
498
  it("detects destructive operation risk", async () => {
@@ -527,7 +527,7 @@ describe("Risk detection", () => {
527
527
  });
528
528
  });
529
529
 
530
- // ─── Ambiguity detection tests ───────────────────────────────────────────
530
+ // --- Ambiguity detection tests -------------------------------------------
531
531
 
532
532
  describe("Ambiguity detection", () => {
533
533
  it("detects vague terms", () => {
@@ -646,7 +646,7 @@ describe("Ambiguity detection", () => {
646
646
  });
647
647
  });
648
648
 
649
- // ─── Workflow tests ──────────────────────────────────────────────────────
649
+ // --- Workflow tests ------------------------------------------------------
650
650
 
651
651
  describe("Workflow extraction", () => {
652
652
  it("groups multiple goals into a workflow", async () => {
@@ -661,7 +661,7 @@ describe("Workflow extraction", () => {
661
661
  });
662
662
  });
663
663
 
664
- // ─── Actor extraction tests ─────────────────────────────────────────────
664
+ // --- Actor extraction tests ---------------------------------------------
665
665
 
666
666
  describe("Actor extraction", () => {
667
667
  it("extracts actors from statements", async () => {
@@ -677,7 +677,7 @@ describe("Actor extraction", () => {
677
677
  });
678
678
  });
679
679
 
680
- // ─── Error handling tests ──────────────────────────────────────────────
680
+ // --- Error handling tests ----------------------------------------------
681
681
 
682
682
  describe("Error handling", () => {
683
683
  it("RequirementCompileError has correct properties", () => {
@@ -712,7 +712,7 @@ describe("Error handling", () => {
712
712
  });
713
713
  });
714
714
 
715
- // ─── Multilingual tests ─────────────────────────────────────────────────
715
+ // --- Multilingual tests -------------------------------------------------
716
716
 
717
717
  describe("Multilingual handling", () => {
718
718
  it("preserves Thai business terms", async () => {
@@ -346,7 +346,7 @@ export class CommandExecutor extends EventEmitter {
346
346
  getPolicy() {
347
347
  return { ...this.policy };
348
348
  }
349
- // ─── Private Methods ────────────────────────────────────────────────
349
+ // --- Private Methods ------------------------------------------------
350
350
  waitForExit(_proc) {
351
351
  // Note: This method is for synchronous execution.
352
352
  // For async execution, use execAsync() which properly handles events.
@@ -161,7 +161,7 @@ export class LocalRuntimeAgent extends EventEmitter {
161
161
  getAuthSessions() {
162
162
  return Array.from(this.authSessions.values());
163
163
  }
164
- // ─── Private Methods ────────────────────────────────────────────────
164
+ // --- Private Methods ------------------------------------------------
165
165
  async handleRequest(req, res) {
166
166
  const url = new URL(req.url ?? "/", `http://${req.headers.host}`);
167
167
  const path = url.pathname;
@@ -364,7 +364,7 @@ export class PolicyEngine extends EventEmitter {
364
364
  return false;
365
365
  }
366
366
  }
367
- // ─── Private Methods ────────────────────────────────────────────────
367
+ // --- Private Methods ------------------------------------------------
368
368
  matchesPolicy(context, policy) {
369
369
  const condition = policy.condition;
370
370
  // Check subject
@@ -153,7 +153,7 @@ export class RuntimeApi extends EventEmitter {
153
153
  }
154
154
  }
155
155
  }
156
- // ─── Private Methods ────────────────────────────────────────────────
156
+ // --- Private Methods ------------------------------------------------
157
157
  startWebSocket() {
158
158
  this.wsServer = new WebSocketServer({
159
159
  noServer: true,
@@ -366,7 +366,7 @@ export class WorkspaceManager extends EventEmitter {
366
366
  }
367
367
  return { exists, size, isAccessible };
368
368
  }
369
- // ─── Private Methods ────────────────────────────────────────────────
369
+ // --- Private Methods ------------------------------------------------
370
370
  ensureRootDir() {
371
371
  if (!existsSync(this.rootDir)) {
372
372
  mkdirSync(this.rootDir, { recursive: true });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/runtime",
3
- "version": "0.9.15",
3
+ "version": "0.9.25",
4
4
  "description": "pi-harness-runtime — runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -485,7 +485,7 @@ export class CommandExecutor extends EventEmitter {
485
485
  return { ...this.policy };
486
486
  }
487
487
 
488
- // ─── Private Methods ────────────────────────────────────────────────
488
+ // --- Private Methods ------------------------------------------------
489
489
 
490
490
  private waitForExit(_proc: ChildProcess): number | null {
491
491
  // Note: This method is for synchronous execution.
@@ -231,7 +231,7 @@ export class LocalRuntimeAgent extends EventEmitter {
231
231
  return Array.from(this.authSessions.values());
232
232
  }
233
233
 
234
- // ─── Private Methods ────────────────────────────────────────────────
234
+ // --- Private Methods ------------------------------------------------
235
235
 
236
236
  private async handleRequest(
237
237
  req: import("node:http").IncomingMessage,
@@ -545,7 +545,7 @@ export class PolicyEngine extends EventEmitter {
545
545
  }
546
546
  }
547
547
 
548
- // ─── Private Methods ────────────────────────────────────────────────
548
+ // --- Private Methods ------------------------------------------------
549
549
 
550
550
  private matchesPolicy(context: PolicyContext, policy: Policy): boolean {
551
551
  const condition = policy.condition;
@@ -247,7 +247,7 @@ export class RuntimeApi extends EventEmitter {
247
247
  }
248
248
  }
249
249
 
250
- // ─── Private Methods ────────────────────────────────────────────────
250
+ // --- Private Methods ------------------------------------------------
251
251
 
252
252
  private startWebSocket(): void {
253
253
  this.wsServer = new WebSocketServer({
@@ -492,7 +492,7 @@ export class WorkspaceManager extends EventEmitter {
492
492
  return { exists, size, isAccessible };
493
493
  }
494
494
 
495
- // ─── Private Methods ────────────────────────────────────────────────
495
+ // --- Private Methods ------------------------------------------------
496
496
 
497
497
  private ensureRootDir(): void {
498
498
  if (!existsSync(this.rootDir)) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/scheduler",
3
- "version": "0.9.15",
3
+ "version": "0.9.25",
4
4
  "description": "pi-harness-runtime — scheduler",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/scheduler-adapter",
3
- "version": "0.9.15",
3
+ "version": "0.9.25",
4
4
  "description": "Scheduler Adapter — cron, systemd, launchd, internal adapters for autonomous runtime (RFC-0101 §6)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -247,27 +247,27 @@ Sessions are stored as JSON files:
247
247
 
248
248
  ```
249
249
  sessions/
250
- ├── index.json # Session index
251
- └── sessions/
252
- └── ab/
253
- └── cdef1234.../
254
- └── session.json # Full session context
250
+ +-- index.json # Session index
251
+ +-- sessions/
252
+ +-- ab/
253
+ +-- cdef1234.../
254
+ +-- session.json # Full session context
255
255
  ```
256
256
 
257
257
  ## Architecture
258
258
 
259
259
  ```
260
- ┌─────────────────────────────────────────────────────────┐
261
- │ SessionManager │
262
- │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │
263
- │ │ Manager │ │ Policy │ │ Store │ │
264
- │ │ │──│ Engine │──│ │ │
265
- │ └─────────────┘ └─────────────┘ └─────────────────┘ │
266
- │ │ │ │
267
- │ ▼ ▼ │
268
- │ ┌─────────────────┐ ┌─────────────────┐│
269
- │ │ ContextWindow │ │ Disk ││
270
- │ │ Manager │ │ ││
271
- │ └─────────────────┘ └─────────────────┘│
272
- └─────────────────────────────────────────────────────────┘
260
+ +---------------------------------------------------------+
261
+ | SessionManager |
262
+ | +-------------+ +-------------+ +-----------------+ |
263
+ | | Manager | | Policy | | Store | |
264
+ | | |--| Engine |--| | |
265
+ | +-------------+ +-------------+ +-----------------+ |
266
+ | | | |
267
+ | ▼ ▼ |
268
+ | +-----------------+ +-----------------+|
269
+ | | ContextWindow | | Disk ||
270
+ | | Manager | | ||
271
+ | +-----------------+ +-----------------+|
272
+ +---------------------------------------------------------+
273
273
  ```
@@ -4,7 +4,7 @@
4
4
  * Message history management and search.
5
5
  */
6
6
  import { createHash } from "node:crypto";
7
- // ─── Message History ──────────────────────────────────────────────────────
7
+ // --- Message History ------------------------------------------------------
8
8
  export class MessageHistory {
9
9
  messages = [];
10
10
  maxMessages;
@@ -123,7 +123,7 @@ export class MessageHistory {
123
123
  }, 0);
124
124
  }
125
125
  }
126
- // ─── Message Search ────────────────────────────────────────────────────────
126
+ // --- Message Search --------------------------------------------------------
127
127
  export class MessageSearch {
128
128
  index = new Map();
129
129
  /**
@@ -212,7 +212,7 @@ export class MessageSearch {
212
212
  this.index.delete(sessionId);
213
213
  }
214
214
  }
215
- // ─── Context Window Manager ────────────────────────────────────────────────
215
+ // --- Context Window Manager ------------------------------------------------
216
216
  export class ContextWindowManager {
217
217
  maxTokens;
218
218
  history;
@@ -4,14 +4,14 @@
4
4
  * Session management system with message history, token accounting,
5
5
  * policy enforcement, and session persistence.
6
6
  */
7
- // ─── Manager ────────────────────────────────────────────────────────────
7
+ // --- Manager ------------------------------------------------------------
8
8
  export { SessionManager, createSessionManager } from "./manager.js";
9
- // ─── Store ────────────────────────────────────────────────────────────
9
+ // --- Store ------------------------------------------------------------
10
10
  export { SessionStore, createSessionStore } from "./store.js";
11
- // ─── History ─────────────────────────────────────────────────────────
11
+ // --- History ---------------------------------------------------------
12
12
  export { MessageHistory, MessageSearch, ContextWindowManager, } from "./history.js";
13
- // ─── Policy ──────────────────────────────────────────────────────────
13
+ // --- Policy ----------------------------------------------------------
14
14
  export { PolicyEngine, RateLimiter, BudgetTracker, createPolicyEngine, } from "./policy.js";
15
- // ─── Types ───────────────────────────────────────────────────────────
15
+ // --- Types -----------------------------------------------------------
16
16
  export { SDK_VERSION, } from "./types.js";
17
17
  //# sourceMappingURL=index.js.map
@@ -7,7 +7,7 @@ import { randomBytes } from "node:crypto";
7
7
  import { ContextWindowManager } from "./history.js";
8
8
  import { PolicyEngine } from "./policy.js";
9
9
  import { SessionStore } from "./store.js";
10
- // ─── Default Configuration ─────────────────────────────────────────────────
10
+ // --- Default Configuration -------------------------------------------------
11
11
  const DEFAULT_CONFIG = {
12
12
  rootDir: "./sessions",
13
13
  sessionTtlMs: 24 * 60 * 60 * 1000, // 24 hours
@@ -19,7 +19,7 @@ const DEFAULT_CONFIG = {
19
19
  autoCleanup: true,
20
20
  cleanupIntervalMs: 60 * 60 * 1000, // 1 hour
21
21
  };
22
- // ─── Session Manager ───────────────────────────────────────────────────────
22
+ // --- Session Manager -------------------------------------------------------
23
23
  export class SessionManager {
24
24
  config;
25
25
  store;
@@ -360,7 +360,7 @@ export class SessionManager {
360
360
  await this.store.close();
361
361
  }
362
362
  }
363
- // ─── Factory Function ────────────────────────────────────────────────────
363
+ // --- Factory Function ----------------------------------------------------
364
364
  /**
365
365
  * Create a session manager
366
366
  */
@@ -122,7 +122,7 @@ export class BudgetTracker {
122
122
  return entry.resetAt;
123
123
  }
124
124
  }
125
- // ─── Policy Engine ─────────────────────────────────────────────────────────
125
+ // --- Policy Engine ---------------------------------------------------------
126
126
  export class PolicyEngine {
127
127
  config;
128
128
  rateLimiter;
@@ -281,7 +281,7 @@ export class PolicyEngine {
281
281
  this.rateLimiter.clearExpired();
282
282
  }
283
283
  }
284
- // ─── Factory Function ────────────────────────────────────────────────────
284
+ // --- Factory Function ----------------------------------------------------
285
285
  /**
286
286
  * Create a policy engine
287
287
  */
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { readdir, readFile, writeFile, mkdir, rename, unlink, } from "node:fs/promises";
7
7
  import { dirname, join } from "node:path";
8
- // ─── Session Store ────────────────────────────────────────────────────────
8
+ // --- Session Store --------------------------------------------------------
9
9
  export class SessionStore {
10
10
  rootDir;
11
11
  autoSave;
@@ -264,7 +264,7 @@ export class SessionStore {
264
264
  await this.saveIndex();
265
265
  }
266
266
  }
267
- // ─── Factory Function ────────────────────────────────────────────────────
267
+ // --- Factory Function ----------------------------------------------------
268
268
  /**
269
269
  * Create a session store
270
270
  */
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Core types for session management.
5
5
  */
6
- // ─── SDK Version ────────────────────────────────────────────────────────────
6
+ // --- SDK Version ------------------------------------------------------------
7
7
  /**
8
8
  * SDK version for compatibility checks
9
9
  */
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/session",
3
- "version": "0.9.15",
3
+ "version": "0.9.25",
4
4
  "description": "Session management system for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -12,7 +12,7 @@ import type {
12
12
  SessionContext,
13
13
  } from "./types.js";
14
14
 
15
- // ─── Message History ──────────────────────────────────────────────────────
15
+ // --- Message History ------------------------------------------------------
16
16
 
17
17
  export class MessageHistory {
18
18
  private messages: Message[] = [];
@@ -152,7 +152,7 @@ export class MessageHistory {
152
152
  }
153
153
  }
154
154
 
155
- // ─── Message Search ────────────────────────────────────────────────────────
155
+ // --- Message Search --------------------------------------------------------
156
156
 
157
157
  export class MessageSearch {
158
158
  private index: Map<string, Message[]> = new Map();
@@ -269,7 +269,7 @@ export class MessageSearch {
269
269
  }
270
270
  }
271
271
 
272
- // ─── Context Window Manager ────────────────────────────────────────────────
272
+ // --- Context Window Manager ------------------------------------------------
273
273
 
274
274
  export class ContextWindowManager {
275
275
  private readonly maxTokens: number;
@@ -5,15 +5,15 @@
5
5
  * policy enforcement, and session persistence.
6
6
  */
7
7
 
8
- // ─── Manager ────────────────────────────────────────────────────────────
8
+ // --- Manager ------------------------------------------------------------
9
9
 
10
10
  export { SessionManager, createSessionManager } from "./manager.js";
11
11
 
12
- // ─── Store ────────────────────────────────────────────────────────────
12
+ // --- Store ------------------------------------------------------------
13
13
 
14
14
  export { SessionStore, createSessionStore } from "./store.js";
15
15
 
16
- // ─── History ─────────────────────────────────────────────────────────
16
+ // --- History ---------------------------------------------------------
17
17
 
18
18
  export {
19
19
  MessageHistory,
@@ -21,7 +21,7 @@ export {
21
21
  ContextWindowManager,
22
22
  } from "./history.js";
23
23
 
24
- // ─── Policy ──────────────────────────────────────────────────────────
24
+ // --- Policy ----------------------------------------------------------
25
25
 
26
26
  export {
27
27
  PolicyEngine,
@@ -30,7 +30,7 @@ export {
30
30
  createPolicyEngine,
31
31
  } from "./policy.js";
32
32
 
33
- // ─── Types ───────────────────────────────────────────────────────────
33
+ // --- Types -----------------------------------------------------------
34
34
 
35
35
  export {
36
36
  SDK_VERSION,
@@ -19,7 +19,7 @@ import { ContextWindowManager } from "./history.js";
19
19
  import { PolicyEngine } from "./policy.js";
20
20
  import { SessionStore } from "./store.js";
21
21
 
22
- // ─── Default Configuration ─────────────────────────────────────────────────
22
+ // --- Default Configuration -------------------------------------------------
23
23
 
24
24
  const DEFAULT_CONFIG: Required<SessionManagerConfig> = {
25
25
  rootDir: "./sessions",
@@ -33,7 +33,7 @@ const DEFAULT_CONFIG: Required<SessionManagerConfig> = {
33
33
  cleanupIntervalMs: 60 * 60 * 1000, // 1 hour
34
34
  };
35
35
 
36
- // ─── Session Manager ───────────────────────────────────────────────────────
36
+ // --- Session Manager -------------------------------------------------------
37
37
 
38
38
  export class SessionManager {
39
39
  private readonly config: Required<SessionManagerConfig>;
@@ -469,7 +469,7 @@ export class SessionManager {
469
469
  }
470
470
  }
471
471
 
472
- // ─── Factory Function ────────────────────────────────────────────────────
472
+ // --- Factory Function ----------------------------------------------------
473
473
 
474
474
  /**
475
475
  * Create a session manager
@@ -6,7 +6,7 @@
6
6
 
7
7
  import type { PolicyEngineConfig, PolicyState, TokenUsage } from "./types.js";
8
8
 
9
- // ─── Rate Limiter ──────────────────────────────────────────────────────────
9
+ // --- Rate Limiter ----------------------------------------------------------
10
10
 
11
11
  interface RateLimitEntry {
12
12
  count: number;
@@ -78,7 +78,7 @@ export class RateLimiter {
78
78
  }
79
79
  }
80
80
 
81
- // ─── Budget Tracker ────────────────────────────────────────────────────────
81
+ // --- Budget Tracker --------------------------------------------------------
82
82
 
83
83
  interface BudgetEntry {
84
84
  spent: number;
@@ -156,7 +156,7 @@ export class BudgetTracker {
156
156
  }
157
157
  }
158
158
 
159
- // ─── Policy Engine ─────────────────────────────────────────────────────────
159
+ // --- Policy Engine ---------------------------------------------------------
160
160
 
161
161
  export class PolicyEngine {
162
162
  private readonly config: PolicyEngineConfig;
@@ -353,7 +353,7 @@ export class PolicyEngine {
353
353
  }
354
354
  }
355
355
 
356
- // ─── Factory Function ────────────────────────────────────────────────────
356
+ // --- Factory Function ----------------------------------------------------
357
357
 
358
358
  /**
359
359
  * Create a policy engine
@@ -20,7 +20,7 @@ import type {
20
20
  SessionStatus,
21
21
  } from "./types.js";
22
22
 
23
- // ─── Session Index ────────────────────────────────────────────────────────
23
+ // --- Session Index --------------------------------------------------------
24
24
 
25
25
  /**
26
26
  * Session index entry
@@ -36,7 +36,7 @@ interface SessionIndexEntry {
36
36
  totalTokens: number;
37
37
  }
38
38
 
39
- // ─── Session Store ────────────────────────────────────────────────────────
39
+ // --- Session Store --------------------------------------------------------
40
40
 
41
41
  export class SessionStore {
42
42
  private readonly rootDir: string;
@@ -338,7 +338,7 @@ export class SessionStore {
338
338
  }
339
339
  }
340
340
 
341
- // ─── Factory Function ────────────────────────────────────────────────────
341
+ // --- Factory Function ----------------------------------------------------
342
342
 
343
343
  /**
344
344
  * Create a session store