pi-harness-runtime 0.9.25 → 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 (321) hide show
  1. package/CHANGELOG.md +27 -7
  2. package/README.md +51 -51
  3. package/harness/auto-compact.ts +1 -1
  4. package/harness/autonomous-review.ts +88 -0
  5. package/harness/context-compact-orchestrator.ts +23 -23
  6. package/harness/context-window-manager.ts +5 -5
  7. package/harness/continue-prompt.ts +3 -3
  8. package/harness/e2e/minimax-quota-scraper.ts +1 -1
  9. package/harness/forked-summarizer.ts +4 -4
  10. package/harness/herdr-agents.ts +91 -0
  11. package/harness/index.ts +5 -5
  12. package/harness/loop-code-agent.ts +284 -0
  13. package/harness/loop-controller.ts +201 -0
  14. package/harness/loop-review-agent.ts +295 -0
  15. package/harness/loop-runtime.ts +10 -10
  16. package/harness/loop-types.ts +118 -0
  17. package/harness/notification-events.ts +3 -3
  18. package/harness/output-limit-handler.ts +1 -1
  19. package/harness/partial-recovery.ts +3 -3
  20. package/harness/session-memory.ts +5 -5
  21. package/index.ts +46 -32
  22. package/package.json +1 -1
  23. package/packages/a2a-adapter/package.json +1 -1
  24. package/packages/a2a-adapter/src/types.ts +5 -5
  25. package/packages/auth/package.json +1 -1
  26. package/packages/autonomous-refactor/package.json +1 -1
  27. package/packages/autonomous-runtime/dist/inbox.d.ts +3 -3
  28. package/packages/autonomous-runtime/dist/inbox.js +12 -12
  29. package/packages/autonomous-runtime/dist/lease.js +14 -14
  30. package/packages/autonomous-runtime/dist/types.js +1 -1
  31. package/packages/autonomous-runtime/package.json +1 -1
  32. package/packages/autonomous-runtime/src/inbox.ts +12 -12
  33. package/packages/autonomous-runtime/src/lease.ts +15 -15
  34. package/packages/autonomous-runtime/src/types.ts +13 -13
  35. package/packages/autonomous-runtime/tsconfig.tsbuildinfo +1 -1
  36. package/packages/cache-strategy/package.json +1 -1
  37. package/packages/capability-registry/dist/types.js +1 -1
  38. package/packages/capability-registry/package.json +1 -1
  39. package/packages/capability-registry/src/types.ts +5 -5
  40. package/packages/checkpoint/README.md +6 -6
  41. package/packages/checkpoint/dist/differ.js +2 -2
  42. package/packages/checkpoint/dist/engine.js +3 -3
  43. package/packages/checkpoint/dist/index.js +5 -5
  44. package/packages/checkpoint/dist/storage.js +3 -3
  45. package/packages/checkpoint/dist/types.js +1 -1
  46. package/packages/checkpoint/package.json +1 -1
  47. package/packages/checkpoint/src/differ.ts +2 -2
  48. package/packages/checkpoint/src/engine.ts +3 -3
  49. package/packages/checkpoint/src/index.ts +5 -5
  50. package/packages/checkpoint/src/storage.ts +3 -3
  51. package/packages/checkpoint/src/types.ts +10 -10
  52. package/packages/checkpoint/tsconfig.tsbuildinfo +1 -1
  53. package/packages/cli-plugin-sdk/package.json +1 -1
  54. package/packages/clipboard/dist/src/clipboard.d.ts.map +1 -1
  55. package/packages/clipboard/dist/src/clipboard.js +15 -7
  56. package/packages/clipboard/dist/src/clipboard.js.map +1 -1
  57. package/packages/clipboard/package.json +1 -1
  58. package/packages/clipboard/src/clipboard.ts +16 -9
  59. package/packages/code-generation/README.md +13 -13
  60. package/packages/code-generation/dist/faker.js +4 -4
  61. package/packages/code-generation/dist/generator.js +3 -3
  62. package/packages/code-generation/dist/index.js +3 -3
  63. package/packages/code-generation/dist/templates/registry.js +1 -1
  64. package/packages/code-generation/dist/types.js +1 -1
  65. package/packages/code-generation/package.json +1 -1
  66. package/packages/code-generation/src/faker.ts +5 -5
  67. package/packages/code-generation/src/generator.ts +4 -4
  68. package/packages/code-generation/src/index.ts +3 -3
  69. package/packages/code-generation/src/templates/registry.ts +1 -1
  70. package/packages/code-generation/src/types.ts +10 -10
  71. package/packages/code-generation/tsconfig.tsbuildinfo +1 -1
  72. package/packages/code-review/README.md +13 -13
  73. package/packages/code-review/dist/engine.js +3 -3
  74. package/packages/code-review/dist/index.js +3 -3
  75. package/packages/code-review/dist/types.js +1 -1
  76. package/packages/code-review/package.json +1 -1
  77. package/packages/code-review/src/engine.ts +3 -3
  78. package/packages/code-review/src/index.ts +3 -3
  79. package/packages/code-review/src/types.ts +10 -10
  80. package/packages/code-review/tsconfig.tsbuildinfo +1 -1
  81. package/packages/codex-adapter/package.json +1 -1
  82. package/packages/context-compiler/dist/compiler.js +1 -1
  83. package/packages/context-compiler/package.json +1 -1
  84. package/packages/context-compiler/src/compiler.ts +1 -1
  85. package/packages/context-compiler/src/types.ts +11 -11
  86. package/packages/context-compiler/test/context-compiler.test.ts +11 -11
  87. package/packages/context-discovery/package.json +1 -1
  88. package/packages/context-manager/package.json +1 -1
  89. package/packages/cookie-sanitizer/README.md +27 -27
  90. package/packages/cookie-sanitizer/package.json +1 -1
  91. package/packages/cost-optimizer/package.json +1 -1
  92. package/packages/cost-optimizer/src/types.ts +5 -5
  93. package/packages/dependency-analyzer/package.json +1 -1
  94. package/packages/django-plugin/dist/analyzer.js +7 -7
  95. package/packages/django-plugin/package.json +1 -1
  96. package/packages/django-plugin/src/analyzer.ts +7 -7
  97. package/packages/doc-generator/package.json +1 -1
  98. package/packages/evaluation-engine/dist/engine.js +9 -9
  99. package/packages/evaluation-engine/package.json +1 -1
  100. package/packages/evaluation-engine/src/engine.ts +9 -9
  101. package/packages/evaluation-engine/src/types.ts +3 -3
  102. package/packages/evaluation-runner/package.json +1 -1
  103. package/packages/event-bus/dist/src/herdr-bus.d.ts +121 -0
  104. package/packages/event-bus/dist/src/herdr-bus.d.ts.map +1 -0
  105. package/packages/event-bus/dist/src/herdr-bus.js +322 -0
  106. package/packages/event-bus/dist/src/herdr-bus.js.map +1 -0
  107. package/packages/event-bus/dist/src/index.d.ts +2 -0
  108. package/packages/event-bus/dist/src/index.d.ts.map +1 -1
  109. package/packages/event-bus/dist/src/index.js +1 -0
  110. package/packages/event-bus/dist/src/index.js.map +1 -1
  111. package/packages/event-bus/package.json +1 -1
  112. package/packages/event-bus/src/herdr-bus.ts +525 -0
  113. package/packages/event-bus/src/index.ts +29 -0
  114. package/packages/event-store/package.json +1 -1
  115. package/packages/experience-replay/dist/replay.js +7 -7
  116. package/packages/experience-replay/package.json +1 -1
  117. package/packages/experience-replay/src/replay.ts +7 -7
  118. package/packages/experience-replay/src/types.ts +5 -5
  119. package/packages/feedback-collector/package.json +1 -1
  120. package/packages/framework-detector/README.md +18 -18
  121. package/packages/framework-detector/dist/detector.js +3 -3
  122. package/packages/framework-detector/dist/index.js +3 -3
  123. package/packages/framework-detector/dist/signatures/registry.js +24 -24
  124. package/packages/framework-detector/dist/types.js +1 -1
  125. package/packages/framework-detector/package.json +1 -1
  126. package/packages/framework-detector/src/detector.ts +3 -3
  127. package/packages/framework-detector/src/index.ts +3 -3
  128. package/packages/framework-detector/src/signatures/registry.ts +24 -24
  129. package/packages/framework-detector/src/types.ts +7 -7
  130. package/packages/framework-detector/tsconfig.tsbuildinfo +1 -1
  131. package/packages/framework-plugin-sdk/README.md +23 -23
  132. package/packages/framework-plugin-sdk/dist/index.js +2 -2
  133. package/packages/framework-plugin-sdk/dist/manager.js +3 -3
  134. package/packages/framework-plugin-sdk/dist/types.js +2 -2
  135. package/packages/framework-plugin-sdk/package.json +1 -1
  136. package/packages/framework-plugin-sdk/src/index.ts +2 -2
  137. package/packages/framework-plugin-sdk/src/manager.ts +3 -3
  138. package/packages/framework-plugin-sdk/src/types.ts +10 -10
  139. package/packages/framework-plugin-sdk/tsconfig.tsbuildinfo +1 -1
  140. package/packages/frappe-plugin/dist/analyzer.js +8 -8
  141. package/packages/frappe-plugin/dist/types.js +1 -1
  142. package/packages/frappe-plugin/package.json +1 -1
  143. package/packages/frappe-plugin/src/analyzer.ts +8 -8
  144. package/packages/frappe-plugin/src/types.ts +10 -10
  145. package/packages/generic-web-plugin/dist/analyzer.js +5 -5
  146. package/packages/generic-web-plugin/package.json +1 -1
  147. package/packages/generic-web-plugin/src/analyzer.ts +5 -5
  148. package/packages/health-monitor/package.json +1 -1
  149. package/packages/health-monitor/src/monitor.ts +1 -1
  150. package/packages/intent-analyzer/package.json +1 -1
  151. package/packages/laravel-plugin/dist/analyzer.js +11 -11
  152. package/packages/laravel-plugin/package.json +1 -1
  153. package/packages/laravel-plugin/src/analyzer.ts +11 -11
  154. package/packages/learning-engine/dist/engine.js +5 -5
  155. package/packages/learning-engine/dist/types.js +1 -1
  156. package/packages/learning-engine/package.json +1 -1
  157. package/packages/learning-engine/src/engine.ts +5 -5
  158. package/packages/learning-engine/src/types.ts +6 -6
  159. package/packages/mcp-adapter/package.json +1 -1
  160. package/packages/memory-engine/dist/engine.js +8 -8
  161. package/packages/memory-engine/dist/types.js +2 -2
  162. package/packages/memory-engine/package.json +1 -1
  163. package/packages/memory-engine/src/engine.ts +8 -8
  164. package/packages/memory-engine/src/types.ts +9 -9
  165. package/packages/model-registry/package.json +1 -1
  166. package/packages/model-registry/src/types.ts +4 -4
  167. package/packages/nextjs-plugin/dist/analyzer.js +9 -9
  168. package/packages/nextjs-plugin/package.json +1 -1
  169. package/packages/nextjs-plugin/src/analyzer.ts +9 -9
  170. package/packages/notification/dist/notification-center.js +1 -1
  171. package/packages/notification/package.json +1 -1
  172. package/packages/notification/src/notification-center.ts +1 -1
  173. package/packages/observability/dist/alerts.js +2 -2
  174. package/packages/observability/dist/health.js +4 -4
  175. package/packages/observability/dist/index.js +6 -6
  176. package/packages/observability/dist/logger.js +7 -7
  177. package/packages/observability/dist/metrics.js +11 -11
  178. package/packages/observability/dist/tracer.js +3 -3
  179. package/packages/observability/dist/types.js +1 -1
  180. package/packages/observability/package.json +1 -1
  181. package/packages/observability/src/alerts.ts +2 -2
  182. package/packages/observability/src/health.ts +4 -4
  183. package/packages/observability/src/index.ts +6 -6
  184. package/packages/observability/src/logger.ts +7 -7
  185. package/packages/observability/src/metrics.ts +11 -11
  186. package/packages/observability/src/tracer.ts +3 -3
  187. package/packages/observability/src/types.ts +7 -7
  188. package/packages/observability/test/observability.test.ts +4 -4
  189. package/packages/observability/tsconfig.tsbuildinfo +1 -1
  190. package/packages/performance-optimizer/dist/optimizer.js +1 -1
  191. package/packages/performance-optimizer/package.json +1 -1
  192. package/packages/performance-optimizer/src/optimizer.ts +1 -1
  193. package/packages/performance-optimizer/src/types.ts +4 -4
  194. package/packages/privilege-broker/package.json +1 -1
  195. package/packages/project-analyzer/dist/analyzer.js +4 -4
  196. package/packages/project-analyzer/dist/index.js +8 -8
  197. package/packages/project-analyzer/dist/signals.js +3 -3
  198. package/packages/project-analyzer/dist/types.js +1 -1
  199. package/packages/project-analyzer/package.json +1 -1
  200. package/packages/project-analyzer/src/analyzer.ts +4 -4
  201. package/packages/project-analyzer/src/index.ts +9 -9
  202. package/packages/project-analyzer/src/signals.ts +4 -4
  203. package/packages/project-analyzer/src/types.ts +15 -15
  204. package/packages/project-analyzer/test/index.test.ts +17 -17
  205. package/packages/project-analyzer/tsconfig.tsbuildinfo +1 -1
  206. package/packages/projection-engine/package.json +1 -1
  207. package/packages/prompt-compiler/dist/section-builder.js +1 -1
  208. package/packages/prompt-compiler/dist/types.js +3 -3
  209. package/packages/prompt-compiler/package.json +1 -1
  210. package/packages/prompt-compiler/src/section-builder.ts +1 -1
  211. package/packages/prompt-compiler/src/types.ts +12 -12
  212. package/packages/prompt-compiler/test/prompt-compiler.test.ts +12 -12
  213. package/packages/prompt-versioning/package.json +1 -1
  214. package/packages/provider-adapter-sdk/dist/builder.js +1 -1
  215. package/packages/provider-adapter-sdk/dist/index.js +5 -5
  216. package/packages/provider-adapter-sdk/dist/registry.js +1 -1
  217. package/packages/provider-adapter-sdk/dist/tester.js +1 -1
  218. package/packages/provider-adapter-sdk/dist/types.js +1 -1
  219. package/packages/provider-adapter-sdk/package.json +1 -1
  220. package/packages/provider-adapter-sdk/src/builder.ts +1 -1
  221. package/packages/provider-adapter-sdk/src/index.ts +6 -6
  222. package/packages/provider-adapter-sdk/src/registry.ts +1 -1
  223. package/packages/provider-adapter-sdk/src/tester.ts +1 -1
  224. package/packages/provider-adapter-sdk/src/types.ts +5 -5
  225. package/packages/provider-adapter-sdk/tsconfig.tsbuildinfo +1 -1
  226. package/packages/provider-router/package.json +1 -1
  227. package/packages/provider-router/src/types.ts +4 -4
  228. package/packages/provider-selector/package.json +1 -1
  229. package/packages/providers/dist/deepagents-adapter.js +1 -1
  230. package/packages/providers/package.json +1 -1
  231. package/packages/providers/src/deepagents-adapter.ts +1 -1
  232. package/packages/quota-manager/package.json +1 -1
  233. package/packages/rate-limiter/package.json +1 -1
  234. package/packages/react-vite-plugin/dist/analyzer.js +7 -7
  235. package/packages/react-vite-plugin/package.json +1 -1
  236. package/packages/react-vite-plugin/src/analyzer.ts +7 -7
  237. package/packages/release-manager/package.json +1 -1
  238. package/packages/requirement-compiler/dist/compiler.js +17 -17
  239. package/packages/requirement-compiler/dist/types.js +2 -2
  240. package/packages/requirement-compiler/package.json +1 -1
  241. package/packages/requirement-compiler/src/compiler.ts +17 -17
  242. package/packages/requirement-compiler/src/types.ts +21 -21
  243. package/packages/requirement-compiler/test/requirement-compiler.test.ts +17 -17
  244. package/packages/runtime/dist/command-executor.js +1 -1
  245. package/packages/runtime/dist/local-runtime-agent.js +1 -1
  246. package/packages/runtime/dist/policy-engine.js +1 -1
  247. package/packages/runtime/dist/runtime-api.js +1 -1
  248. package/packages/runtime/dist/workspace-manager.js +1 -1
  249. package/packages/runtime/package.json +1 -1
  250. package/packages/runtime/src/command-executor.ts +1 -1
  251. package/packages/runtime/src/local-runtime-agent.ts +1 -1
  252. package/packages/runtime/src/policy-engine.ts +1 -1
  253. package/packages/runtime/src/runtime-api.ts +1 -1
  254. package/packages/runtime/src/workspace-manager.ts +1 -1
  255. package/packages/scheduler/package.json +1 -1
  256. package/packages/scheduler-adapter/package.json +1 -1
  257. package/packages/session/README.md +18 -18
  258. package/packages/session/dist/history.js +3 -3
  259. package/packages/session/dist/index.js +5 -5
  260. package/packages/session/dist/manager.js +3 -3
  261. package/packages/session/dist/policy.js +2 -2
  262. package/packages/session/dist/store.js +2 -2
  263. package/packages/session/dist/types.js +1 -1
  264. package/packages/session/package.json +1 -1
  265. package/packages/session/src/history.ts +3 -3
  266. package/packages/session/src/index.ts +5 -5
  267. package/packages/session/src/manager.ts +3 -3
  268. package/packages/session/src/policy.ts +4 -4
  269. package/packages/session/src/store.ts +3 -3
  270. package/packages/session/src/types.ts +10 -10
  271. package/packages/session/tsconfig.tsbuildinfo +1 -1
  272. package/packages/session-api/package.json +1 -1
  273. package/packages/session-export/package.json +1 -1
  274. package/packages/shared-context/package.json +1 -1
  275. package/packages/skill-registry/package.json +1 -1
  276. package/packages/skill-registry/src/types.ts +4 -4
  277. package/packages/sprint-planner/package.json +1 -1
  278. package/packages/subscription-engine/package.json +1 -1
  279. package/packages/task-compiler/dist/compiler.js +7 -7
  280. package/packages/task-compiler/dist/decompose.js +11 -11
  281. package/packages/task-compiler/dist/file-scope.js +6 -6
  282. package/packages/task-compiler/dist/graph.js +6 -6
  283. package/packages/task-compiler/dist/index.js +2 -2
  284. package/packages/task-compiler/dist/types.js +5 -5
  285. package/packages/task-compiler/dist/validate.js +2 -2
  286. package/packages/task-compiler/dist/verification.js +2 -2
  287. package/packages/task-compiler/package.json +1 -1
  288. package/packages/task-compiler/src/command-policy.ts +1 -1
  289. package/packages/task-compiler/src/compiler.ts +7 -7
  290. package/packages/task-compiler/src/decompose.ts +11 -11
  291. package/packages/task-compiler/src/file-scope.ts +6 -6
  292. package/packages/task-compiler/src/graph.ts +6 -6
  293. package/packages/task-compiler/src/index.ts +3 -3
  294. package/packages/task-compiler/src/types.ts +14 -14
  295. package/packages/task-compiler/src/validate.ts +2 -2
  296. package/packages/task-compiler/src/verification.ts +2 -2
  297. package/packages/task-compiler/test/task-compiler.test.ts +10 -10
  298. package/packages/test-data-generator/README.md +13 -13
  299. package/packages/test-data-generator/dist/faker-adapter.js +4 -4
  300. package/packages/test-data-generator/dist/generator.js +3 -3
  301. package/packages/test-data-generator/dist/index.js +3 -3
  302. package/packages/test-data-generator/dist/types.js +1 -1
  303. package/packages/test-data-generator/package.json +1 -1
  304. package/packages/test-data-generator/src/faker-adapter.ts +4 -4
  305. package/packages/test-data-generator/src/generator.ts +3 -3
  306. package/packages/test-data-generator/src/index.ts +3 -3
  307. package/packages/test-data-generator/src/types.ts +9 -9
  308. package/packages/test-data-generator/tsconfig.tsbuildinfo +1 -1
  309. package/packages/test-generator/package.json +1 -1
  310. package/packages/token-estimation/package.json +1 -1
  311. package/packages/token-optimizer/package.json +1 -1
  312. package/packages/tui/package.json +1 -1
  313. package/packages/types/package.json +1 -1
  314. package/packages/types/src/agent-worker-types.ts +5 -5
  315. package/packages/types/src/runtime-types.ts +12 -12
  316. package/packages/types/tsconfig.tsbuildinfo +1 -1
  317. package/packages/workflow-events/package.json +1 -1
  318. package/packages/workspace-scanner/package.json +1 -1
  319. package/packages/worktree/package.json +1 -1
  320. package/renderer.ts +7 -7
  321. package/skills/harness-runtime/SKILL.md +15 -15
@@ -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.24",
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.24",
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.24",
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.24",
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
@@ -4,14 +4,14 @@
4
4
  * Core types for session management.
5
5
  */
6
6
 
7
- // ─── SDK Version ────────────────────────────────────────────────────────────
7
+ // --- SDK Version ------------------------------------------------------------
8
8
 
9
9
  /**
10
10
  * SDK version for compatibility checks
11
11
  */
12
12
  export const SDK_VERSION = "1.0.0";
13
13
 
14
- // ─── Session Types ─────────────────────────────────────────────────────────
14
+ // --- Session Types ---------------------------------------------------------
15
15
 
16
16
  /**
17
17
  * Session status
@@ -80,7 +80,7 @@ export interface ToolResult {
80
80
  timestamp: string;
81
81
  }
82
82
 
83
- // ─── Token Usage ───────────────────────────────────────────────────────────
83
+ // --- Token Usage -----------------------------------------------------------
84
84
 
85
85
  /**
86
86
  * Token usage tracking
@@ -96,7 +96,7 @@ export interface TokenUsage {
96
96
  resetAt?: string;
97
97
  }
98
98
 
99
- // ─── Session Metrics ──────────────────────────────────────────────────────
99
+ // --- Session Metrics ------------------------------------------------------
100
100
 
101
101
  /**
102
102
  * Session metrics
@@ -112,7 +112,7 @@ export interface SessionMetrics {
112
112
  retryCount: number;
113
113
  }
114
114
 
115
- // ─── Policy Types ─────────────────────────────────────────────────────────
115
+ // --- Policy Types ---------------------------------------------------------
116
116
 
117
117
  /**
118
118
  * Policy state
@@ -126,7 +126,7 @@ export interface PolicyState {
126
126
  suspensionReason?: string;
127
127
  }
128
128
 
129
- // ─── Configuration ────────────────────────────────────────────────────────
129
+ // --- Configuration --------------------------------------------------------
130
130
 
131
131
  /**
132
132
  * Session manager configuration
@@ -178,7 +178,7 @@ export interface SessionManagerConfig {
178
178
  cleanupIntervalMs?: number;
179
179
  }
180
180
 
181
- // ─── Store Types ──────────────────────────────────────────────────────────
181
+ // --- Store Types ----------------------------------------------------------
182
182
 
183
183
  /**
184
184
  * Session store configuration
@@ -190,7 +190,7 @@ export interface SessionStoreConfig {
190
190
  maxSessions?: number;
191
191
  }
192
192
 
193
- // ─── Policy Engine Types ─────────────────────────────────────────────────
193
+ // --- Policy Engine Types -------------------------------------------------
194
194
 
195
195
  /**
196
196
  * Policy engine configuration
@@ -222,7 +222,7 @@ export interface PolicyEngineConfig {
222
222
  sessionBudget?: number;
223
223
  }
224
224
 
225
- // ─── Event Types ──────────────────────────────────────────────────────────
225
+ // --- Event Types ----------------------------------------------------------
226
226
 
227
227
  /**
228
228
  * Session event type
@@ -248,7 +248,7 @@ export interface SessionEvent {
248
248
  data?: Record<string, unknown>;
249
249
  }
250
250
 
251
- // ─── History Types ────────────────────────────────────────────────────────
251
+ // --- History Types --------------------------------------------------------
252
252
 
253
253
  /**
254
254
  * Search filter for messages