pi-harness-runtime 1.1.398 → 1.1.403

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 (613) hide show
  1. package/AGENTS.md +44 -2
  2. package/CHANGELOG.md +28 -0
  3. package/RULES.md +28 -0
  4. package/harness/agent-handoff.ts +2 -3
  5. package/harness/autonomous-review.ts +1 -1
  6. package/harness/blackboard.ts +2 -3
  7. package/harness/context-compact-orchestrator.ts +1 -1
  8. package/harness/context-window-manager.ts +2 -2
  9. package/harness/e2e/playwright-runner.ts +6 -4
  10. package/harness/herdr-agents.ts +1 -1
  11. package/harness/job-state-machine.ts +1 -1
  12. package/harness/langchain/daemon.ts +3 -3
  13. package/harness/langchain/graph.ts +2 -2
  14. package/harness/langchain/ping-pong-middleware.ts +2 -2
  15. package/harness/loop-code-agent.ts +6 -4
  16. package/harness/loop-controller.ts +1 -1
  17. package/harness/loop-review-agent.ts +1 -1
  18. package/harness/loop-types.ts +1 -1
  19. package/harness/master-planner.ts +1 -1
  20. package/harness/project-detector/detector.ts +1 -2
  21. package/harness/repair-engine.ts +2 -4
  22. package/harness/service-diagnostics.ts +1 -1
  23. package/harness/skill-sync.ts +3 -3
  24. package/index.ts +276 -55
  25. package/mirror.ts +1 -1
  26. package/package.json +5 -3
  27. package/packages/a2a-adapter/dist/discovery.d.ts.map +1 -1
  28. package/packages/a2a-adapter/dist/discovery.js +0 -1
  29. package/packages/a2a-adapter/dist/discovery.js.map +1 -1
  30. package/packages/a2a-adapter/package.json +1 -1
  31. package/packages/a2a-adapter/src/discovery.ts +0 -1
  32. package/packages/agent-policy/package.json +1 -1
  33. package/packages/architecture-generator/package.json +1 -1
  34. package/packages/auth/dist/index.d.ts +9 -0
  35. package/packages/auth/dist/index.d.ts.map +1 -0
  36. package/packages/auth/dist/index.js +9 -0
  37. package/packages/auth/dist/index.js.map +1 -0
  38. package/packages/auth/package.json +1 -1
  39. package/packages/auth/src/index.ts +9 -0
  40. package/packages/autonomous-refactor/package.json +1 -1
  41. package/packages/autonomous-runtime/package.json +1 -1
  42. package/packages/cache-strategy/package.json +1 -1
  43. package/packages/capability-registry/package.json +1 -1
  44. package/packages/checkpoint/package.json +1 -1
  45. package/packages/cli-plugin-sdk/package.json +1 -1
  46. package/packages/clipboard/package.json +1 -1
  47. package/packages/clipboard-plugin/package.json +1 -1
  48. package/packages/code-generation/package.json +1 -1
  49. package/packages/code-review/package.json +1 -1
  50. package/packages/codex-adapter/package.json +1 -1
  51. package/packages/codex-watcher/package.json +1 -1
  52. package/packages/config-capture/dist/index.d.ts +52 -0
  53. package/packages/config-capture/dist/index.d.ts.map +1 -0
  54. package/packages/config-capture/dist/index.js +261 -0
  55. package/packages/config-capture/dist/index.js.map +1 -0
  56. package/packages/config-capture/package.json +1 -1
  57. package/packages/connection-runtime/package.json +1 -1
  58. package/packages/context-compiler/package.json +1 -1
  59. package/packages/context-discovery/package.json +1 -1
  60. package/packages/context-manager/package.json +1 -1
  61. package/packages/contracts/package.json +1 -1
  62. package/packages/cookie-sanitizer/package.json +1 -1
  63. package/packages/cost-optimizer/package.json +1 -1
  64. package/packages/dependency-analyzer/package.json +1 -1
  65. package/packages/django-plugin/package.json +1 -1
  66. package/packages/doc-generator/package.json +1 -1
  67. package/packages/durable-review/package.json +1 -1
  68. package/packages/e2e-tester/package.json +1 -1
  69. package/packages/evaluation-engine/package.json +1 -1
  70. package/packages/evaluation-runner/package.json +1 -1
  71. package/packages/event-bus/package.json +1 -1
  72. package/packages/event-sink/package.json +1 -1
  73. package/packages/event-store/package.json +1 -1
  74. package/packages/experience-replay/package.json +1 -1
  75. package/packages/feedback-collector/package.json +1 -1
  76. package/packages/file-copy-helper/dist/extension.d.ts +15 -0
  77. package/packages/file-copy-helper/dist/extension.d.ts.map +1 -0
  78. package/packages/file-copy-helper/dist/extension.debug.d.ts +15 -0
  79. package/packages/file-copy-helper/dist/extension.debug.d.ts.map +1 -0
  80. package/packages/file-copy-helper/dist/extension.debug.js +215 -0
  81. package/packages/file-copy-helper/dist/extension.debug.js.map +1 -0
  82. package/packages/file-copy-helper/dist/extension.js +222 -0
  83. package/packages/file-copy-helper/dist/extension.js.map +1 -0
  84. package/packages/file-copy-helper/dist/index.d.ts +3 -0
  85. package/packages/file-copy-helper/dist/index.d.ts.map +1 -0
  86. package/packages/file-copy-helper/dist/index.js +3 -0
  87. package/packages/file-copy-helper/dist/index.js.map +1 -0
  88. package/packages/file-copy-helper/dist/intent-detector.d.ts +21 -0
  89. package/packages/file-copy-helper/dist/intent-detector.d.ts.map +1 -0
  90. package/packages/file-copy-helper/dist/intent-detector.js +348 -0
  91. package/packages/file-copy-helper/dist/intent-detector.js.map +1 -0
  92. package/packages/file-copy-helper/package.json +1 -1
  93. package/packages/framework-detector/package.json +1 -1
  94. package/packages/framework-plugin-sdk/package.json +1 -1
  95. package/packages/frappe-plugin/package.json +1 -1
  96. package/packages/generic-web-plugin/package.json +1 -1
  97. package/packages/health-monitor/package.json +1 -1
  98. package/packages/intent-analyzer/package.json +1 -1
  99. package/packages/jev-judge/dist/auto-continue.d.ts +161 -2
  100. package/packages/jev-judge/dist/auto-continue.d.ts.map +1 -1
  101. package/packages/jev-judge/dist/auto-continue.js +267 -22
  102. package/packages/jev-judge/dist/auto-continue.js.map +1 -1
  103. package/packages/jev-judge/dist/index.d.ts +2 -0
  104. package/packages/jev-judge/dist/index.d.ts.map +1 -1
  105. package/packages/jev-judge/dist/index.js +2 -0
  106. package/packages/jev-judge/dist/index.js.map +1 -1
  107. package/packages/jev-judge/dist/question-risk.d.ts +53 -0
  108. package/packages/jev-judge/dist/question-risk.d.ts.map +1 -0
  109. package/packages/jev-judge/dist/question-risk.js +105 -0
  110. package/packages/jev-judge/dist/question-risk.js.map +1 -0
  111. package/packages/jev-judge/package.json +1 -1
  112. package/packages/jev-judge/src/auto-continue.ts +426 -29
  113. package/packages/jev-judge/src/index.ts +4 -0
  114. package/packages/jev-judge/src/question-risk.ts +155 -0
  115. package/packages/jev-judge/tests/auto-continue-context.test.ts +243 -0
  116. package/packages/jev-judge/tests/outcome-application.test.ts +132 -0
  117. package/packages/jev-judge/tests/question-risk.test.ts +129 -0
  118. package/packages/knowledge-graph/package.json +1 -1
  119. package/packages/knowledge-retrieval/package.json +1 -1
  120. package/packages/laravel-plugin/package.json +1 -1
  121. package/packages/learning-engine/package.json +1 -1
  122. package/packages/logging/README.md +36 -3
  123. package/packages/logging/dist/config.d.ts +7 -0
  124. package/packages/logging/dist/config.d.ts.map +1 -1
  125. package/packages/logging/dist/config.js +14 -0
  126. package/packages/logging/dist/config.js.map +1 -1
  127. package/packages/logging/dist/incidents/schema.d.ts +111 -0
  128. package/packages/logging/dist/incidents/schema.d.ts.map +1 -0
  129. package/packages/logging/dist/incidents/schema.js +0 -0
  130. package/packages/logging/dist/incidents/schema.js.map +1 -0
  131. package/packages/logging/dist/index.d.ts +2 -0
  132. package/packages/logging/dist/index.d.ts.map +1 -1
  133. package/packages/logging/dist/index.js +2 -0
  134. package/packages/logging/dist/index.js.map +1 -1
  135. package/packages/logging/dist/server/http.d.ts +4 -3
  136. package/packages/logging/dist/server/http.d.ts.map +1 -1
  137. package/packages/logging/dist/server/http.js +35 -3
  138. package/packages/logging/dist/server/http.js.map +1 -1
  139. package/packages/logging/dist/server/incident-qdrant.d.ts +83 -0
  140. package/packages/logging/dist/server/incident-qdrant.d.ts.map +1 -0
  141. package/packages/logging/dist/server/incident-qdrant.js +129 -0
  142. package/packages/logging/dist/server/incident-qdrant.js.map +1 -0
  143. package/packages/logging/dist/server/incident-store.d.ts +76 -0
  144. package/packages/logging/dist/server/incident-store.d.ts.map +1 -0
  145. package/packages/logging/dist/server/incident-store.js +157 -0
  146. package/packages/logging/dist/server/incident-store.js.map +1 -0
  147. package/packages/logging/dist/server/index.d.ts +4 -0
  148. package/packages/logging/dist/server/index.d.ts.map +1 -1
  149. package/packages/logging/dist/server/index.js +2 -0
  150. package/packages/logging/dist/server/index.js.map +1 -1
  151. package/packages/logging/dist/server/service.d.ts +33 -0
  152. package/packages/logging/dist/server/service.d.ts.map +1 -1
  153. package/packages/logging/dist/server/service.js +63 -0
  154. package/packages/logging/dist/server/service.js.map +1 -1
  155. package/packages/logging/dist/shipper.d.ts +74 -3
  156. package/packages/logging/dist/shipper.d.ts.map +1 -1
  157. package/packages/logging/dist/shipper.js +88 -5
  158. package/packages/logging/dist/shipper.js.map +1 -1
  159. package/packages/logging/dist/singleton.d.ts.map +1 -1
  160. package/packages/logging/dist/singleton.js +1 -0
  161. package/packages/logging/dist/singleton.js.map +1 -1
  162. package/packages/logging/package.json +1 -1
  163. package/packages/logging/src/config.ts +22 -0
  164. package/packages/logging/src/incidents/schema.ts +0 -0
  165. package/packages/logging/src/index.ts +17 -0
  166. package/packages/logging/src/server/http.ts +42 -3
  167. package/packages/logging/src/server/incident-qdrant.ts +177 -0
  168. package/packages/logging/src/server/incident-store.ts +192 -0
  169. package/packages/logging/src/server/index.ts +21 -0
  170. package/packages/logging/src/server/service.ts +79 -0
  171. package/packages/logging/src/shipper.ts +120 -5
  172. package/packages/logging/src/singleton.ts +1 -0
  173. package/packages/logging/test/fanout.test.ts +186 -0
  174. package/packages/logging/test/incidents.test.ts +404 -0
  175. package/packages/mcp-adapter/package.json +1 -1
  176. package/packages/memory-engine/package.json +1 -1
  177. package/packages/milestone-manager/package.json +1 -1
  178. package/packages/model-registry/package.json +1 -1
  179. package/packages/nextjs-plugin/package.json +1 -1
  180. package/packages/notification/dist/adapters/detail-format.d.ts +10 -2
  181. package/packages/notification/dist/adapters/detail-format.d.ts.map +1 -1
  182. package/packages/notification/dist/adapters/detail-format.js +39 -0
  183. package/packages/notification/dist/adapters/detail-format.js.map +1 -1
  184. package/packages/notification/dist/adapters/line-adapter.d.ts +33 -0
  185. package/packages/notification/dist/adapters/line-adapter.d.ts.map +1 -1
  186. package/packages/notification/dist/adapters/line-adapter.js +84 -7
  187. package/packages/notification/dist/adapters/line-adapter.js.map +1 -1
  188. package/packages/notification/dist/adapters/telegram-adapter.d.ts.map +1 -1
  189. package/packages/notification/dist/adapters/telegram-adapter.js +6 -2
  190. package/packages/notification/dist/adapters/telegram-adapter.js.map +1 -1
  191. package/packages/notification/dist/notification-center.d.ts.map +1 -1
  192. package/packages/notification/dist/notification-center.js +59 -7
  193. package/packages/notification/dist/notification-center.js.map +1 -1
  194. package/packages/notification/dist/pending-question.d.ts +69 -2
  195. package/packages/notification/dist/pending-question.d.ts.map +1 -1
  196. package/packages/notification/dist/pending-question.js +88 -2
  197. package/packages/notification/dist/pending-question.js.map +1 -1
  198. package/packages/notification/dist/types.d.ts +18 -0
  199. package/packages/notification/dist/types.d.ts.map +1 -1
  200. package/packages/notification/package.json +1 -1
  201. package/packages/notification/src/adapters/detail-format.ts +42 -2
  202. package/packages/notification/src/adapters/line-adapter.ts +94 -7
  203. package/packages/notification/src/adapters/telegram-adapter.ts +6 -2
  204. package/packages/notification/src/notification-center.ts +65 -8
  205. package/packages/notification/src/pending-question.ts +160 -8
  206. package/packages/notification/src/types.ts +18 -0
  207. package/packages/notification/test/approval-payload.test.ts +269 -0
  208. package/packages/notification/test/pending-question-lifecycle.test.ts +195 -0
  209. package/packages/observability/package.json +1 -1
  210. package/packages/okf-indexer/dist/index.d.ts +9 -0
  211. package/packages/okf-indexer/dist/index.d.ts.map +1 -0
  212. package/packages/okf-indexer/dist/index.js +9 -0
  213. package/packages/okf-indexer/dist/index.js.map +1 -0
  214. package/packages/okf-indexer/package.json +1 -1
  215. package/packages/okf-indexer/src/index.ts +9 -0
  216. package/packages/paperclip-integration/package.json +1 -1
  217. package/packages/performance-optimizer/package.json +1 -1
  218. package/packages/permission-mode/package.json +1 -1
  219. package/packages/privilege-broker/package.json +1 -1
  220. package/packages/project-analyzer/package.json +1 -1
  221. package/packages/project-bootstrap/package.json +1 -1
  222. package/packages/projection-engine/package.json +1 -1
  223. package/packages/prompt-compiler/package.json +1 -1
  224. package/packages/prompt-versioning/package.json +1 -1
  225. package/packages/provider-adapter-sdk/package.json +1 -1
  226. package/packages/provider-router/dist/provider-router.d.ts.map +1 -1
  227. package/packages/provider-router/dist/types.d.ts +2 -2
  228. package/packages/provider-router/dist/types.d.ts.map +1 -1
  229. package/packages/provider-router/dist/types.js +1 -1
  230. package/packages/provider-router/package.json +1 -1
  231. package/packages/provider-router/src/types.ts +2 -2
  232. package/packages/provider-selector/package.json +1 -1
  233. package/packages/providers/package.json +1 -1
  234. package/packages/qdrant-skills/package.json +1 -1
  235. package/packages/quota-manager/package.json +1 -1
  236. package/packages/rate-limiter/package.json +1 -1
  237. package/packages/react-vite-plugin/package.json +1 -1
  238. package/packages/relay/package.json +1 -1
  239. package/packages/release-manager/package.json +1 -1
  240. package/packages/requirement-compiler/package.json +1 -1
  241. package/packages/runtime/package.json +1 -1
  242. package/packages/scheduler/dist/index.d.ts +9 -0
  243. package/packages/scheduler/dist/index.d.ts.map +1 -0
  244. package/packages/scheduler/dist/index.js +9 -0
  245. package/packages/scheduler/dist/index.js.map +1 -0
  246. package/packages/scheduler/dist/scheduler.d.ts +17 -0
  247. package/packages/scheduler/dist/scheduler.d.ts.map +1 -0
  248. package/packages/scheduler/dist/scheduler.js +41 -0
  249. package/packages/scheduler/dist/scheduler.js.map +1 -0
  250. package/packages/scheduler/package.json +1 -1
  251. package/packages/scheduler/src/index.ts +9 -0
  252. package/packages/scheduler-adapter/package.json +1 -1
  253. package/packages/session/package.json +1 -1
  254. package/packages/session-api/package.json +1 -1
  255. package/packages/session-export/package.json +1 -1
  256. package/packages/shared-context/dist/index.d.ts +7 -0
  257. package/packages/shared-context/dist/index.d.ts.map +1 -0
  258. package/packages/shared-context/dist/index.js +7 -0
  259. package/packages/shared-context/dist/index.js.map +1 -0
  260. package/packages/shared-context/dist/shared-context.d.ts +12 -0
  261. package/packages/shared-context/dist/shared-context.d.ts.map +1 -0
  262. package/packages/shared-context/dist/shared-context.js +39 -0
  263. package/packages/shared-context/dist/shared-context.js.map +1 -0
  264. package/packages/shared-context/package.json +1 -1
  265. package/packages/skill-mcp-client/dist/client.d.ts +56 -0
  266. package/packages/skill-mcp-client/dist/client.d.ts.map +1 -0
  267. package/packages/skill-mcp-client/dist/client.js +101 -0
  268. package/packages/skill-mcp-client/dist/client.js.map +1 -0
  269. package/packages/skill-mcp-client/dist/errors.d.ts +44 -0
  270. package/packages/skill-mcp-client/dist/errors.d.ts.map +1 -0
  271. package/packages/skill-mcp-client/dist/errors.js +68 -0
  272. package/packages/skill-mcp-client/dist/errors.js.map +1 -0
  273. package/packages/skill-mcp-client/dist/index.d.ts +9 -0
  274. package/packages/skill-mcp-client/dist/index.d.ts.map +1 -0
  275. package/packages/skill-mcp-client/dist/index.js +9 -0
  276. package/packages/skill-mcp-client/dist/index.js.map +1 -0
  277. package/packages/skill-mcp-client/dist/types.d.ts +106 -0
  278. package/packages/skill-mcp-client/dist/types.d.ts.map +1 -0
  279. package/packages/skill-mcp-client/dist/types.js +14 -0
  280. package/packages/skill-mcp-client/dist/types.js.map +1 -0
  281. package/packages/skill-mcp-client/package.json +1 -1
  282. package/packages/skill-registry/package.json +1 -1
  283. package/packages/skills/package.json +1 -5
  284. package/packages/sprint-planner/package.json +1 -1
  285. package/packages/subscription-engine/package.json +1 -1
  286. package/packages/task-compiler/package.json +1 -1
  287. package/packages/telegram/package.json +1 -1
  288. package/packages/telegram/src/agent-messages.d.ts +28 -0
  289. package/packages/telegram/src/agent-messages.js +90 -0
  290. package/packages/telegram/src/bindings.d.ts +296 -0
  291. package/packages/telegram/src/bindings.js +1086 -0
  292. package/packages/telegram/src/bus.d.ts +759 -0
  293. package/packages/telegram/src/bus.js +2732 -0
  294. package/packages/telegram/src/commands.d.ts +761 -0
  295. package/packages/telegram/src/commands.js +2622 -0
  296. package/packages/telegram/src/config.d.ts +222 -0
  297. package/packages/telegram/src/config.js +844 -0
  298. package/packages/telegram/src/delivery.d.ts +161 -0
  299. package/packages/telegram/src/delivery.js +550 -0
  300. package/packages/telegram/src/extension.d.ts +7 -0
  301. package/packages/telegram/src/extension.js +2444 -0
  302. package/packages/telegram/src/inbound.d.ts +94 -0
  303. package/packages/telegram/src/inbound.js +478 -0
  304. package/packages/telegram/src/index.d.ts +6 -0
  305. package/packages/telegram/src/index.js +6 -0
  306. package/packages/telegram/src/keyboard.d.ts +21 -0
  307. package/packages/telegram/src/keyboard.js +37 -0
  308. package/packages/telegram/src/lifecycle.d.ts +210 -0
  309. package/packages/telegram/src/lifecycle.js +538 -0
  310. package/packages/telegram/src/pi.d.ts +76 -0
  311. package/packages/telegram/src/pi.js +130 -0
  312. package/packages/telegram/src/polling.d.ts +332 -0
  313. package/packages/telegram/src/polling.js +1219 -0
  314. package/packages/telegram/src/replies.d.ts +210 -0
  315. package/packages/telegram/src/replies.js +752 -0
  316. package/packages/telegram/src/routing.d.ts +388 -0
  317. package/packages/telegram/src/routing.js +7886 -0
  318. package/packages/telegram/src/runtime.d.ts +159 -0
  319. package/packages/telegram/src/runtime.js +351 -0
  320. package/packages/telegram/src/telegram-api.d.ts +564 -0
  321. package/packages/telegram/src/telegram-api.js +1332 -0
  322. package/packages/telegram/src/turns.d.ts +108 -0
  323. package/packages/telegram/src/turns.js +482 -0
  324. package/packages/telegram/src/updates.d.ts +1545 -0
  325. package/packages/telegram/src/updates.js +6420 -0
  326. package/packages/tencentdb-memory/package.json +1 -1
  327. package/packages/tencentdb-sync/package.json +1 -1
  328. package/packages/test-data-generator/package.json +1 -1
  329. package/packages/test-generator/package.json +1 -1
  330. package/packages/todo-bd-sync/dist/detector.d.ts +54 -0
  331. package/packages/todo-bd-sync/dist/detector.d.ts.map +1 -0
  332. package/packages/todo-bd-sync/dist/detector.js +132 -0
  333. package/packages/todo-bd-sync/dist/detector.js.map +1 -0
  334. package/packages/todo-bd-sync/dist/extension.d.ts +30 -0
  335. package/packages/todo-bd-sync/dist/extension.d.ts.map +1 -0
  336. package/packages/todo-bd-sync/dist/extension.js +35 -0
  337. package/packages/todo-bd-sync/dist/extension.js.map +1 -0
  338. package/packages/todo-bd-sync/dist/index.d.ts +87 -0
  339. package/packages/todo-bd-sync/dist/index.d.ts.map +1 -0
  340. package/packages/todo-bd-sync/dist/index.js +296 -0
  341. package/packages/todo-bd-sync/dist/index.js.map +1 -0
  342. package/packages/todo-bd-sync/dist/sync.d.ts +72 -0
  343. package/packages/todo-bd-sync/dist/sync.d.ts.map +1 -0
  344. package/packages/todo-bd-sync/dist/sync.js +290 -0
  345. package/packages/todo-bd-sync/dist/sync.js.map +1 -0
  346. package/packages/todo-bd-sync/dist/task-analyzer.d.ts +49 -0
  347. package/packages/todo-bd-sync/dist/task-analyzer.d.ts.map +1 -0
  348. package/packages/todo-bd-sync/dist/task-analyzer.js +240 -0
  349. package/packages/todo-bd-sync/dist/task-analyzer.js.map +1 -0
  350. package/packages/todo-bd-sync/dist/todo-reminder.d.ts +126 -0
  351. package/packages/todo-bd-sync/dist/todo-reminder.d.ts.map +1 -0
  352. package/packages/todo-bd-sync/dist/todo-reminder.js +329 -0
  353. package/packages/todo-bd-sync/dist/todo-reminder.js.map +1 -0
  354. package/packages/todo-bd-sync/dist/types.d.ts +65 -0
  355. package/packages/todo-bd-sync/dist/types.d.ts.map +1 -0
  356. package/packages/todo-bd-sync/dist/types.js +67 -0
  357. package/packages/todo-bd-sync/dist/types.js.map +1 -0
  358. package/packages/todo-bd-sync/package.json +1 -1
  359. package/packages/token-estimation/dist/index.d.ts +94 -0
  360. package/packages/token-estimation/dist/index.d.ts.map +1 -0
  361. package/packages/token-estimation/dist/index.js +115 -0
  362. package/packages/token-estimation/dist/index.js.map +1 -0
  363. package/packages/token-estimation/package.json +1 -1
  364. package/packages/token-optimizer/package.json +1 -1
  365. package/packages/trajectory/package.json +1 -1
  366. package/packages/tui/package.json +1 -1
  367. package/packages/types/dist/ai-providers.d.ts +36 -0
  368. package/packages/types/dist/ai-providers.d.ts.map +1 -0
  369. package/packages/types/dist/ai-providers.js +66 -0
  370. package/packages/types/dist/ai-providers.js.map +1 -0
  371. package/packages/types/dist/index.d.ts +12 -0
  372. package/packages/types/dist/index.d.ts.map +1 -0
  373. package/packages/types/dist/index.js +12 -0
  374. package/packages/types/dist/index.js.map +1 -0
  375. package/packages/types/package.json +5 -5
  376. package/packages/types/src/index.ts +12 -0
  377. package/packages/voice-api/package.json +1 -1
  378. package/packages/webmcp-tester/package.json +1 -1
  379. package/packages/wiki/package.json +1 -1
  380. package/packages/workflow-events/package.json +1 -1
  381. package/packages/workspace-scanner/package.json +1 -1
  382. package/packages/worktree/package.json +1 -1
  383. package/packages/worktree/worktree.ts +1 -1
  384. package/packages/write-review/package.json +1 -1
  385. package/renderer.ts +1 -1
  386. package/scripts/build-packages.ts +162 -0
  387. package/scripts/relay-client.ts +2 -2
  388. package/scripts/typecheck-packages.mjs +3 -3
  389. package/scripts/unified-webhook-server.ts +22 -10
  390. package/scripts/verify-package-contents.ts +345 -0
  391. package/scripts/ws-server.ts +1 -1
  392. package/tracker.ts +1 -1
  393. package/harness/browser-scrapers/base-browser-scraper.d.ts +0 -91
  394. package/harness/browser-scrapers/chrome-profile-manager.d.ts +0 -80
  395. package/harness/browser-scrapers/codex-browser-scraper.d.ts +0 -60
  396. package/harness/browser-scrapers/index.d.ts +0 -29
  397. package/harness/browser-scrapers/zai-browser-scraper.d.ts +0 -79
  398. package/harness/e2e/browser-scrapers/base-browser-scraper.d.ts +0 -92
  399. package/harness/e2e/browser-scrapers/chrome-profile-manager.d.ts +0 -81
  400. package/harness/e2e/browser-scrapers/codex-browser-scraper.d.ts +0 -61
  401. package/harness/e2e/browser-scrapers/index.d.ts +0 -30
  402. package/harness/e2e/browser-scrapers/zai-browser-scraper.d.ts +0 -80
  403. package/harness/langchain/agents.d.ts +0 -143
  404. package/harness/langchain/agents.test.d.ts +0 -2
  405. package/harness/langchain/checkpointer.d.ts +0 -48
  406. package/harness/langchain/checkpointer.test.d.ts +0 -8
  407. package/harness/langchain/cron-cli.d.ts +0 -12
  408. package/harness/langchain/daemon.d.ts +0 -161
  409. package/harness/langchain/daemon.test.d.ts +0 -11
  410. package/harness/langchain/file-tools.d.ts +0 -97
  411. package/harness/langchain/graph.d.ts +0 -706
  412. package/harness/langchain/model-router.d.ts +0 -63
  413. package/harness/langchain/model-router.test.d.ts +0 -2
  414. package/harness/langchain/models.d.ts +0 -72
  415. package/harness/langchain/ping-pong-middleware.d.ts +0 -28
  416. package/harness/langchain/ping-pong-middleware.test.d.ts +0 -2
  417. package/harness/langchain/run.d.ts +0 -15
  418. package/harness/langchain/scoreboard.test.d.ts +0 -13
  419. package/harness/langchain/status-line.d.ts +0 -91
  420. package/harness/langchain/status-line.test.d.ts +0 -8
  421. package/harness/langchain/surge.d.ts +0 -111
  422. package/harness/langchain/surge.test.d.ts +0 -10
  423. package/harness/langchain/widget.d.ts +0 -105
  424. package/harness/langchain/widget.test.d.ts +0 -8
  425. package/packages/autonomous-runtime/dist/worker.d.ts +0 -63
  426. package/packages/autonomous-runtime/dist/worker.js +0 -133
  427. package/packages/capability-registry/src/types.d.ts +0 -47
  428. package/packages/clipboard/dist/clipboard.d.ts +0 -11
  429. package/packages/clipboard/dist/clipboard.js +0 -40
  430. package/packages/clipboard/dist/index.d.ts +0 -2
  431. package/packages/clipboard/dist/index.js +0 -2
  432. package/packages/clipboard/dist/types.d.ts +0 -13
  433. package/packages/clipboard/dist/types.js +0 -5
  434. package/packages/context-discovery/dist/discover.d.ts +0 -3
  435. package/packages/context-discovery/dist/discover.js +0 -42
  436. package/packages/context-discovery/dist/discovery.d.ts +0 -28
  437. package/packages/context-discovery/dist/discovery.js +0 -21
  438. package/packages/context-discovery/dist/index.d.ts +0 -3
  439. package/packages/context-discovery/dist/index.js +0 -2
  440. package/packages/context-discovery/dist/types.d.ts +0 -16
  441. package/packages/context-discovery/dist/types.js +0 -2
  442. package/packages/event-bus/dist/bus.d.ts +0 -15
  443. package/packages/event-bus/dist/bus.js +0 -90
  444. package/packages/event-bus/dist/index.d.ts +0 -4
  445. package/packages/event-bus/dist/index.js +0 -3
  446. package/packages/event-bus/dist/test/bus.test.js +0 -52
  447. package/packages/event-bus/dist/types.d.ts +0 -27
  448. package/packages/event-bus/dist/types.js +0 -10
  449. package/packages/event-store/dist/index.d.ts +0 -3
  450. package/packages/event-store/dist/index.js +0 -2
  451. package/packages/event-store/dist/store.d.ts +0 -15
  452. package/packages/event-store/dist/store.js +0 -131
  453. package/packages/event-store/dist/test/store.test.js +0 -57
  454. package/packages/event-store/dist/types.d.ts +0 -48
  455. package/packages/event-store/dist/types.js +0 -5
  456. package/packages/event-store/src/types.d.ts +0 -48
  457. package/packages/file-copy-helper/dist/src/extension.js +0 -186
  458. package/packages/model-registry/src/types.d.ts +0 -63
  459. package/packages/notification/dist/src/adapters/email-adapter.d.ts +0 -17
  460. package/packages/notification/dist/src/adapters/email-adapter.d.ts.map +0 -1
  461. package/packages/notification/dist/src/adapters/email-adapter.js +0 -89
  462. package/packages/notification/dist/src/adapters/email-adapter.js.map +0 -1
  463. package/packages/notification/dist/src/adapters/line-adapter.d.ts +0 -17
  464. package/packages/notification/dist/src/adapters/line-adapter.d.ts.map +0 -1
  465. package/packages/notification/dist/src/adapters/line-adapter.js +0 -99
  466. package/packages/notification/dist/src/adapters/line-adapter.js.map +0 -1
  467. package/packages/notification/dist/src/adapters/ntfy-adapter.d.ts +0 -17
  468. package/packages/notification/dist/src/adapters/ntfy-adapter.d.ts.map +0 -1
  469. package/packages/notification/dist/src/adapters/ntfy-adapter.js +0 -84
  470. package/packages/notification/dist/src/adapters/ntfy-adapter.js.map +0 -1
  471. package/packages/notification/dist/src/adapters/telegram-adapter.d.ts +0 -56
  472. package/packages/notification/dist/src/adapters/telegram-adapter.d.ts.map +0 -1
  473. package/packages/notification/dist/src/adapters/telegram-adapter.js +0 -251
  474. package/packages/notification/dist/src/adapters/telegram-adapter.js.map +0 -1
  475. package/packages/notification/dist/src/adapters/webhook-adapter.d.ts +0 -15
  476. package/packages/notification/dist/src/adapters/webhook-adapter.d.ts.map +0 -1
  477. package/packages/notification/dist/src/adapters/webhook-adapter.js +0 -64
  478. package/packages/notification/dist/src/adapters/webhook-adapter.js.map +0 -1
  479. package/packages/notification/dist/src/base-adapter.d.ts +0 -36
  480. package/packages/notification/dist/src/base-adapter.d.ts.map +0 -1
  481. package/packages/notification/dist/src/base-adapter.js +0 -39
  482. package/packages/notification/dist/src/base-adapter.js.map +0 -1
  483. package/packages/notification/dist/src/index.d.ts +0 -12
  484. package/packages/notification/dist/src/index.d.ts.map +0 -1
  485. package/packages/notification/dist/src/index.js +0 -12
  486. package/packages/notification/dist/src/index.js.map +0 -1
  487. package/packages/notification/dist/src/notification-center.d.ts +0 -89
  488. package/packages/notification/dist/src/notification-center.d.ts.map +0 -1
  489. package/packages/notification/dist/src/notification-center.js +0 -356
  490. package/packages/notification/dist/src/notification-center.js.map +0 -1
  491. package/packages/notification/dist/src/notification-policy.d.ts +0 -66
  492. package/packages/notification/dist/src/notification-policy.d.ts.map +0 -1
  493. package/packages/notification/dist/src/notification-policy.js +0 -153
  494. package/packages/notification/dist/src/notification-policy.js.map +0 -1
  495. package/packages/notification/dist/src/telegram-webhook-handler.d.ts +0 -86
  496. package/packages/notification/dist/src/telegram-webhook-handler.d.ts.map +0 -1
  497. package/packages/notification/dist/src/telegram-webhook-handler.js +0 -149
  498. package/packages/notification/dist/src/telegram-webhook-handler.js.map +0 -1
  499. package/packages/notification/dist/src/types.d.ts +0 -106
  500. package/packages/notification/dist/src/types.d.ts.map +0 -1
  501. package/packages/notification/dist/src/types.js +0 -7
  502. package/packages/notification/dist/src/types.js.map +0 -1
  503. package/packages/projection-engine/dist/engine.d.ts +0 -61
  504. package/packages/projection-engine/dist/engine.js +0 -76
  505. package/packages/projection-engine/dist/index.d.ts +0 -2
  506. package/packages/projection-engine/dist/index.js +0 -2
  507. package/packages/projection-engine/dist/project.d.ts +0 -3
  508. package/packages/projection-engine/dist/project.js +0 -24
  509. package/packages/projection-engine/dist/types.d.ts +0 -55
  510. package/packages/projection-engine/dist/types.js +0 -5
  511. package/packages/projection-engine/src/types.d.ts +0 -55
  512. package/packages/provider-adapter-sdk/dist/src/builder.d.ts +0 -140
  513. package/packages/provider-adapter-sdk/dist/src/builder.d.ts.map +0 -1
  514. package/packages/provider-adapter-sdk/dist/src/builder.js +0 -332
  515. package/packages/provider-adapter-sdk/dist/src/builder.js.map +0 -1
  516. package/packages/provider-adapter-sdk/dist/src/errors.d.ts +0 -71
  517. package/packages/provider-adapter-sdk/dist/src/errors.d.ts.map +0 -1
  518. package/packages/provider-adapter-sdk/dist/src/errors.js +0 -111
  519. package/packages/provider-adapter-sdk/dist/src/errors.js.map +0 -1
  520. package/packages/provider-adapter-sdk/dist/src/index.d.ts +0 -15
  521. package/packages/provider-adapter-sdk/dist/src/index.d.ts.map +0 -1
  522. package/packages/provider-adapter-sdk/dist/src/index.js +0 -19
  523. package/packages/provider-adapter-sdk/dist/src/index.js.map +0 -1
  524. package/packages/provider-adapter-sdk/dist/src/registry.d.ts +0 -108
  525. package/packages/provider-adapter-sdk/dist/src/registry.d.ts.map +0 -1
  526. package/packages/provider-adapter-sdk/dist/src/registry.js +0 -301
  527. package/packages/provider-adapter-sdk/dist/src/registry.js.map +0 -1
  528. package/packages/provider-adapter-sdk/dist/src/tester.d.ts +0 -71
  529. package/packages/provider-adapter-sdk/dist/src/tester.d.ts.map +0 -1
  530. package/packages/provider-adapter-sdk/dist/src/tester.js +0 -392
  531. package/packages/provider-adapter-sdk/dist/src/tester.js.map +0 -1
  532. package/packages/provider-adapter-sdk/dist/src/types.d.ts +0 -182
  533. package/packages/provider-adapter-sdk/dist/src/types.d.ts.map +0 -1
  534. package/packages/provider-adapter-sdk/dist/src/types.js +0 -11
  535. package/packages/provider-adapter-sdk/dist/src/types.js.map +0 -1
  536. package/packages/provider-router/dist/capability-registry/src/types.d.ts +0 -47
  537. package/packages/provider-router/dist/capability-registry/src/types.d.ts.map +0 -1
  538. package/packages/provider-router/dist/capability-registry/src/types.js +0 -10
  539. package/packages/provider-router/dist/capability-registry/src/types.js.map +0 -1
  540. package/packages/provider-router/dist/provider-router/src/index.d.ts +0 -23
  541. package/packages/provider-router/dist/provider-router/src/index.d.ts.map +0 -1
  542. package/packages/provider-router/dist/provider-router/src/index.js +0 -25
  543. package/packages/provider-router/dist/provider-router/src/index.js.map +0 -1
  544. package/packages/provider-router/dist/provider-router/src/policy.d.ts +0 -10
  545. package/packages/provider-router/dist/provider-router/src/policy.d.ts.map +0 -1
  546. package/packages/provider-router/dist/provider-router/src/policy.js +0 -45
  547. package/packages/provider-router/dist/provider-router/src/policy.js.map +0 -1
  548. package/packages/provider-router/dist/provider-router/src/provider-router.d.ts +0 -56
  549. package/packages/provider-router/dist/provider-router/src/provider-router.d.ts.map +0 -1
  550. package/packages/provider-router/dist/provider-router/src/provider-router.js +0 -222
  551. package/packages/provider-router/dist/provider-router/src/provider-router.js.map +0 -1
  552. package/packages/provider-router/dist/provider-router/src/strategies.d.ts +0 -19
  553. package/packages/provider-router/dist/provider-router/src/strategies.d.ts.map +0 -1
  554. package/packages/provider-router/dist/provider-router/src/strategies.js +0 -110
  555. package/packages/provider-router/dist/provider-router/src/strategies.js.map +0 -1
  556. package/packages/provider-router/dist/provider-router/src/types.d.ts +0 -91
  557. package/packages/provider-router/dist/provider-router/src/types.d.ts.map +0 -1
  558. package/packages/provider-router/dist/provider-router/src/types.js +0 -10
  559. package/packages/provider-router/dist/provider-router/src/types.js.map +0 -1
  560. package/packages/provider-router/dist/src/index.d.ts +0 -23
  561. package/packages/provider-router/dist/src/index.d.ts.map +0 -1
  562. package/packages/provider-router/dist/src/index.js +0 -25
  563. package/packages/provider-router/dist/src/index.js.map +0 -1
  564. package/packages/provider-router/dist/src/policy.d.ts +0 -10
  565. package/packages/provider-router/dist/src/policy.d.ts.map +0 -1
  566. package/packages/provider-router/dist/src/policy.js +0 -45
  567. package/packages/provider-router/dist/src/policy.js.map +0 -1
  568. package/packages/provider-router/dist/src/provider-router.d.ts +0 -56
  569. package/packages/provider-router/dist/src/provider-router.d.ts.map +0 -1
  570. package/packages/provider-router/dist/src/provider-router.js +0 -222
  571. package/packages/provider-router/dist/src/provider-router.js.map +0 -1
  572. package/packages/provider-router/dist/src/strategies.d.ts +0 -19
  573. package/packages/provider-router/dist/src/strategies.d.ts.map +0 -1
  574. package/packages/provider-router/dist/src/strategies.js +0 -110
  575. package/packages/provider-router/dist/src/strategies.js.map +0 -1
  576. package/packages/provider-router/dist/src/types.d.ts +0 -91
  577. package/packages/provider-router/dist/src/types.d.ts.map +0 -1
  578. package/packages/provider-router/dist/src/types.js +0 -10
  579. package/packages/provider-router/dist/src/types.js.map +0 -1
  580. package/packages/provider-router/dist/types/src/runtime-types.d.ts +0 -412
  581. package/packages/provider-router/dist/types/src/runtime-types.d.ts.map +0 -1
  582. package/packages/provider-router/dist/types/src/runtime-types.js +0 -2
  583. package/packages/provider-router/dist/types/src/runtime-types.js.map +0 -1
  584. package/packages/session-api/dist/api.d.ts +0 -83
  585. package/packages/session-api/dist/api.js +0 -35
  586. package/packages/session-api/dist/index.d.ts +0 -2
  587. package/packages/session-api/dist/index.js +0 -2
  588. package/packages/session-api/dist/types.d.ts +0 -22
  589. package/packages/session-api/dist/types.js +0 -5
  590. package/packages/session-export/dist/exporter.d.ts +0 -28
  591. package/packages/session-export/dist/exporter.js +0 -38
  592. package/packages/session-export/dist/index.d.ts +0 -2
  593. package/packages/session-export/dist/index.js +0 -2
  594. package/packages/session-export/dist/types.d.ts +0 -20
  595. package/packages/session-export/dist/types.js +0 -5
  596. package/packages/subscription-engine/dist/engine.d.ts +0 -13
  597. package/packages/subscription-engine/dist/engine.js +0 -40
  598. package/packages/subscription-engine/dist/index.d.ts +0 -2
  599. package/packages/subscription-engine/dist/index.js +0 -2
  600. package/packages/subscription-engine/dist/subscriptions.d.ts +0 -19
  601. package/packages/subscription-engine/dist/subscriptions.js +0 -32
  602. package/packages/subscription-engine/dist/types.d.ts +0 -24
  603. package/packages/subscription-engine/dist/types.js +0 -5
  604. package/packages/trajectory/test/store.test.d.ts +0 -2
  605. package/packages/workflow-events/dist/events.d.ts +0 -38
  606. package/packages/workflow-events/dist/events.js +0 -46
  607. package/packages/workflow-events/dist/index.d.ts +0 -2
  608. package/packages/workflow-events/dist/index.js +0 -2
  609. package/packages/workflow-events/dist/pipeline.d.ts +0 -21
  610. package/packages/workflow-events/dist/pipeline.js +0 -27
  611. package/packages/workflow-events/dist/types.d.ts +0 -110
  612. package/packages/workflow-events/dist/types.js +0 -5
  613. package/packages/workflow-events/src/types.d.ts +0 -110
package/index.ts CHANGED
@@ -59,7 +59,7 @@ import {
59
59
  } from "./packages/quota-manager/src/tui-usage-monitor.ts";
60
60
  import { QuotaManager } from "./packages/quota-manager/src/quota-manager.ts";
61
61
  import { buildFooterStatusValue } from "./footer-status.ts";
62
- import { registerGithubLoginCommand } from "./packages/clipboard/src/github-login.js";
62
+ import { registerGithubLoginCommand } from "./packages/clipboard/dist/src/github-login.js";
63
63
  import {
64
64
  MAX_PROACTIVE_COMPACT_FAILURES,
65
65
  OUTPUT_LIMIT_RESUME_PROMPT,
@@ -74,9 +74,9 @@ import {
74
74
  import { aggregateWindows } from "./windows.ts";
75
75
 
76
76
  // Relay client for streaming callbacks (t3code-style two-way communication)
77
- import { RelayClient } from "./packages/relay/src/client.js";
77
+ import { RelayClient } from "./packages/relay/dist/client.js";
78
78
  import type { CallbackPayload } from "./packages/relay/src/types.js";
79
- import { describeRelayEndpoint, resolveRelayEndpoint } from "./packages/relay/src/relay-endpoint.js";
79
+ import { describeRelayEndpoint, resolveRelayEndpoint } from "./packages/relay/dist/relay-endpoint.js";
80
80
  import { renderStatus } from "./renderer.ts";
81
81
  import {
82
82
  JobStateMachine,
@@ -237,6 +237,65 @@ const sharedState = {
237
237
  workspaceEnvMessage: null as string | null,
238
238
  };
239
239
 
240
+ /**
241
+ * Apply an approval decision from a channel to the pending question.
242
+ *
243
+ * Telegram and LINE share this one resolver: the canonical request ID
244
+ * decides, the channel only records where the answer came from. A stale,
245
+ * duplicated or unauthorized click resolves nothing and leaves the running
246
+ * wait untouched.
247
+ */
248
+ function applyChannelApproval(
249
+ action: string,
250
+ requestId: string,
251
+ channel: "telegram" | "line",
252
+ ): boolean {
253
+ const controller = sharedState.pqController;
254
+ if (!controller?.applyApproval) {
255
+ logToFile("[Approval]", "No pending question controller - click ignored");
256
+ return false;
257
+ }
258
+
259
+ const result = controller.applyApproval(action, requestId, channel);
260
+ if (!result?.applied) {
261
+ logToFile(
262
+ "[Approval]",
263
+ `Stale or duplicate ${channel} click for ${requestId}: ${result?.reason ?? "ignored"}`,
264
+ );
265
+ return false;
266
+ }
267
+
268
+ logToFile("[Approval]", `${channel} decision '${action}' applied to ${requestId}`);
269
+
270
+ // The question is answered, so the wait is over. The wait state is only
271
+ // cleared after a successful resolution.
272
+ sharedState.waitingForUserSince = null;
273
+ sharedState.updateAutoContinueStatus?.("IDLE");
274
+
275
+ if (result.resolution === "yes") {
276
+ (sharedState.todoContinuationController as any)?.resume?.();
277
+ } else {
278
+ (sharedState.todoContinuationController as any)?.explicitPause?.();
279
+ }
280
+
281
+ return true;
282
+ }
283
+
284
+ /**
285
+ * Does the shared wait state still belong to the captured request?
286
+ *
287
+ * A newer question can become active while Jev is evaluating the captured
288
+ * one. Clearing the shared wait state then would stop the Jev checks of
289
+ * the new question, so the state is only cleared when it still belongs to
290
+ * the captured request.
291
+ */
292
+ function waitBelongsToRequest(requestId: string | undefined): boolean {
293
+ if (!requestId) return true;
294
+ const active = sharedState.pqController?.getCurrentQuestion?.()?.requestId;
295
+ if (!active) return true;
296
+ return active === requestId;
297
+ }
298
+
240
299
  async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
241
300
  addHarnessMessage("Jev", "initializing", "wait");
242
301
  try {
@@ -253,7 +312,7 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
253
312
  // Resolve the provider chain. Every credential stays bound to its own
254
313
  // provider: a TypeSafe key is never sent to OpenRouter and an OpenRouter
255
314
  // key is never sent to the TypeSafe API.
256
- const { resolveJevProviders } = await import("./packages/jev-judge/dist/index.js");
315
+ const { resolveJevProviders, classifyQuestionRisk } = await import("./packages/jev-judge/dist/index.js");
257
316
  const jevProviders = resolveJevProviders({ keysDir });
258
317
 
259
318
  // Create pending question controller - works independently of Jev
@@ -394,6 +453,13 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
394
453
  // Set up pending question callback to dispatch answers to Pi
395
454
  pqController.onUserAnswer((question, answer) => {
396
455
  logToFile("[PendingQuestion]", `User answered: ${answer} for question ${question.requestId}`);
456
+ // The question is answered, so the wait is over. The wait state
457
+ // is cleared here, after a successful resolution: a stale click
458
+ // must never clear a valid pending wait.
459
+ waitingForUserSince = null;
460
+ sharedState.waitingForUserSince = null;
461
+ _lastNotifiedQuestion = "";
462
+ updateAutoContinueStatus("IDLE");
397
463
  // Dispatch answer to Pi
398
464
  const message = answer === "yes" ? "yes" : "not yet";
399
465
  pi.sendUserMessage(message, { deliverAs: "steer" });
@@ -429,11 +495,26 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
429
495
  }
430
496
 
431
497
  // Create question in controller
498
+ const questionKind = result.kind || "approval";
499
+ // The risk facts of the proposed action are derived from the
500
+ // question itself and recorded with the request: the
501
+ // autonomous decision is only as safe as these facts.
502
+ const riskFacts = classifyQuestionRisk({
503
+ kind: questionKind,
504
+ text: result.questionText,
505
+ });
432
506
  const question = pqController.createQuestion({
433
507
  text: result.questionText,
434
508
  sessionId: _sessionId,
435
509
  workspacePath: _piSessionCwd || "/",
436
- kind: result.kind || "approval",
510
+ kind: questionKind,
511
+ risk: {
512
+ requiresExplicitAuthorization: riskFacts.requiresExplicitAuthorization,
513
+ destructive: riskFacts.destructive,
514
+ reversible: riskFacts.reversible,
515
+ external: riskFacts.external,
516
+ signals: riskFacts.signals,
517
+ },
437
518
  });
438
519
 
439
520
  logToFile("[PendingQuestion]", `Question created: ${question.requestId} - ${result.questionText?.slice(0, 50)}`);
@@ -457,10 +538,14 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
457
538
  : "No active tasks";
458
539
  const contextInfo = `Waiting: ${waitMinutes}m | ${taskInfo}`;
459
540
 
460
- // Emit WaitingForUserInput to Telegram with Yes/No buttons
461
- // Uses question.requestId for callback matching
541
+ // Emit WaitingForUserInput to Telegram and LINE with the same
542
+ // Yes/No actions. The canonical request ID is the correlation
543
+ // key of the callback: a prefixed jobId would never match the
544
+ // pending question and every click would be reported stale.
462
545
  _nc?.notifyWithApproval("WaitingForUserInput", {
463
- jobId: `waiting-user-${questionJobId}`,
546
+ jobId: questionJobId,
547
+ questionId: questionJobId,
548
+ questionKind: question.kind,
464
549
  requirement: result.questionText,
465
550
  }, {
466
551
  approveLabel: "Continue",
@@ -609,6 +694,7 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
609
694
  // Periodic check for auto-continue decision
610
695
  const AUTO_CONTINUE_INTERVAL_MS = 60 * 1000; // Check every 1 minute
611
696
  const MIN_WAIT_MINUTES = 5; // Minimum wait before auto-continue
697
+ const MAX_WAIT_MINUTES = 30; // After this the work pauses instead of waiting
612
698
 
613
699
  const checkAndAutoContinue = async () => {
614
700
  // Prevent overlap if inference is already in progress
@@ -629,7 +715,8 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
629
715
  : "";
630
716
 
631
717
  const waitMinutes = (Date.now() - waitingForUserSince.getTime()) / 60000;
632
- if (waitMinutes < MIN_WAIT_MINUTES) return;
718
+ // The judge is only asked once the question waited long enough.
719
+ if (!mod.isEligibleForDecision?.(waitMinutes, MIN_WAIT_MINUTES)) return;
633
720
 
634
721
  // Update status to checking
635
722
  updateAutoContinueStatus("CHECKING", questionHash);
@@ -681,11 +768,64 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
681
768
  return;
682
769
  }
683
770
 
771
+ // The question Jev has to decide about. Without it Jev only
772
+ // sees progress, not what the agent asked permission to do.
773
+ const pendingQuestion = sharedState.pqController?.getCurrentQuestion?.();
774
+ // The risk facts of the proposed action. They are recorded
775
+ // with the question; a question without them is classified
776
+ // again, so the safeguards never run on missing facts.
777
+ const riskFacts = pendingQuestion
778
+ ? pendingQuestion.requiresExplicitAuthorization !== undefined
779
+ ? {
780
+ requiresExplicitAuthorization:
781
+ pendingQuestion.requiresExplicitAuthorization,
782
+ destructive: pendingQuestion.destructive ?? false,
783
+ reversible: pendingQuestion.reversible ?? true,
784
+ external: pendingQuestion.external ?? false,
785
+ }
786
+ : classifyQuestionRisk({
787
+ kind: pendingQuestion.kind,
788
+ text: pendingQuestion.questionText,
789
+ })
790
+ : undefined;
791
+ const questionContext = pendingQuestion
792
+ ? {
793
+ requestId: pendingQuestion.requestId,
794
+ text: pendingQuestion.questionText,
795
+ kind: pendingQuestion.kind,
796
+ requiresExplicitAuthorization: riskFacts?.requiresExplicitAuthorization,
797
+ destructive: riskFacts?.destructive,
798
+ external: riskFacts?.external,
799
+ reversible: riskFacts?.reversible,
800
+ }
801
+ : undefined;
802
+
803
+ const decisionContext = {
804
+ question: questionContext,
805
+ currentTask: taskContext.remaining[0],
806
+ completionRatio:
807
+ taskContext.total > 0
808
+ ? taskContext.completed.length / taskContext.total
809
+ : 0,
810
+ totalTasks: taskContext.total,
811
+ completedTasks: taskContext.completed.length,
812
+ blockers: [] as string[],
813
+ nextTasks: taskContext.remaining.slice(0, 5),
814
+ validationStatus:
815
+ pendingFinalTier.length > 0
816
+ ? `${pendingFinalTier.length} final tier(s) pending`
817
+ : "no pending final tier",
818
+ waitedMinutes: Math.round(waitMinutes),
819
+ deadlineMinutes: MAX_WAIT_MINUTES,
820
+ lastUserActivity: lastUserMessage || undefined,
821
+ };
822
+
684
823
  const taskState = mod.createTaskState(
685
824
  taskContext.completed,
686
825
  taskContext.remaining,
687
826
  lastUserMessage || undefined,
688
827
  new Date(Date.now() - waitMinutes * 60000),
828
+ decisionContext,
689
829
  );
690
830
 
691
831
  const decision = await judge.decide(taskState);
@@ -716,22 +856,115 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
716
856
  }
717
857
  }
718
858
 
719
- if (decision.action === "proceed" || decision.action === "proceed_with_caution") {
859
+ // The typed outcome of the decision. The action is the
860
+ // fallback for a judge that does not know the outcome yet.
861
+ let outcome = decision.outcome;
862
+ if (!outcome) {
863
+ if (decision.action === "proceed") outcome = "approve";
864
+ else if (decision.action === "proceed_with_caution") outcome = "proceed_with_caution";
865
+ else if (decision.action === "reject") outcome = "reject";
866
+ else outcome = "wait";
867
+ }
868
+
869
+ if (outcome === "wait") {
870
+ // A wait decision is bounded: after the deadline the work
871
+ // pauses instead of waiting for a user who is not there.
872
+ // The question stays open: it is not closed with a Jev
873
+ // decision, so the next check can still decide about it.
874
+ logToFile(
875
+ "[auto-continue]",
876
+ `Jev decided to wait (${Math.round(waitMinutes)}m waited, deadline ${MAX_WAIT_MINUTES}m)`,
877
+ );
878
+ if (waitMinutes >= MAX_WAIT_MINUTES) {
879
+ logToFile("[auto-continue]", "Decision deadline reached - pausing the work");
880
+ (sharedState.todoContinuationController as any)?.explicitPause?.();
881
+ // The deadline belongs to the captured question: a newer
882
+ // question keeps its own wait state.
883
+ if (waitBelongsToRequest(questionContext?.requestId)) {
884
+ waitingForUserSince = null;
885
+ sharedState.waitingForUserSince = null;
886
+ updateAutoContinueStatus("IDLE");
887
+ }
888
+ }
889
+ } else {
890
+ // Close the question with the Jev decision. The buttons of
891
+ // that request ID become stale and no synthetic user
892
+ // answer is injected: nobody clicked anything.
893
+ //
894
+ // A failed close means the request is no longer pending: a
895
+ // human answered while Jev was still evaluating. The
896
+ // human answer wins, so the stale decision is discarded
897
+ // and no continuation steer is sent.
898
+ const closed = questionContext?.requestId
899
+ ? sharedState.pqController?.resolveByJev?.(
900
+ questionContext.requestId,
901
+ outcome,
902
+ decision.reasoning,
903
+ ) === true
904
+ : false;
905
+ const application = mod.decideOutcomeApplication(outcome, closed);
906
+
907
+ if (application === "discard") {
908
+ logToFile(
909
+ "[auto-continue]",
910
+ "Question is no longer pending - discarding the stale Jev decision",
911
+ );
912
+ _inferenceInProgress = false;
913
+ // The wait state belongs to the captured question: a
914
+ // newer question keeps its own wait.
915
+ if (waitBelongsToRequest(questionContext?.requestId)) {
916
+ waitingForUserSince = null;
917
+ sharedState.waitingForUserSince = null;
918
+ _lastNotifiedQuestion = "";
919
+ updateAutoContinueStatus("IDLE");
920
+ } else {
921
+ logToFile(
922
+ "[auto-continue]",
923
+ "A newer question is active - keeping its wait state",
924
+ );
925
+ }
926
+ return;
927
+ }
928
+
929
+ if (application === "pause") {
930
+ // Jev refused the proposed action. The question is
931
+ // closed and the work pauses: no continuation steer
932
+ // is sent, so the agent waits for a human.
933
+ logToFile(
934
+ "[auto-continue]",
935
+ `Question ${questionContext?.requestId} closed by Jev (reject) - pausing the work`,
936
+ );
937
+ (sharedState.todoContinuationController as any)?.explicitPause?.();
938
+ if (waitBelongsToRequest(questionContext?.requestId)) {
939
+ waitingForUserSince = null;
940
+ sharedState.waitingForUserSince = null;
941
+ _lastNotifiedQuestion = "";
942
+ updateAutoContinueStatus("IDLE");
943
+ }
944
+ return;
945
+ }
946
+
947
+ logToFile(
948
+ "[auto-continue]",
949
+ `Question ${questionContext?.requestId} closed by Jev (${outcome})`,
950
+ );
951
+
720
952
  // Update status to continuing
721
953
  updateAutoContinueStatus("CONTINUING", questionHash);
722
954
 
723
955
  // Send steer message to continue
724
956
  pi.sendUserMessage(
725
- decision.action === "proceed"
957
+ outcome === "approve"
726
958
  ? "User is unavailable. Based on task progress and low risk, proceeding autonomously.\n" +
727
- `Decision: ${decision.reasoning}\n` +
728
- "Continue with remaining tasks."
959
+ `Decision: ${decision.reasoning}\n` +
960
+ "Continue with remaining tasks."
729
961
  : "User is unavailable. Proceeding with caution - will log each significant step.\n" +
730
- `Risk level: ${decision.riskLevel}\n` +
731
- "Continue with remaining tasks, reporting progress.",
962
+ `Risk level: ${decision.riskLevel}\n` +
963
+ "Continue with remaining tasks, reporting progress.",
732
964
  { deliverAs: "steer" },
733
965
  );
734
966
  waitingForUserSince = null;
967
+ sharedState.waitingForUserSince = null;
735
968
  _lastNotifiedQuestion = "";
736
969
 
737
970
  // Clear status after short delay
@@ -1151,7 +1384,7 @@ async function initAutoContinue(pi: ExtensionAPI): Promise<void> {
1151
1384
  // Lazy import - only loads when packages/todo-bd-sync exists
1152
1385
  async function initTodoBdSync(pi: ExtensionAPI): Promise<void> {
1153
1386
  try {
1154
- const mod = await import("./packages/todo-bd-sync/src/extension.js");
1387
+ const mod = await import("./packages/todo-bd-sync/dist/extension.js");
1155
1388
  mod.registerTodoBdSync(pi);
1156
1389
  } catch {
1157
1390
  // todo-bd-sync not available
@@ -1162,7 +1395,7 @@ async function initTodoBdSync(pi: ExtensionAPI): Promise<void> {
1162
1395
  // Lazy import - only loads when packages/config-capture exists
1163
1396
  async function initConfigCapture(pi: ExtensionAPI): Promise<void> {
1164
1397
  try {
1165
- const mod = await import("./packages/config-capture/src/index.js");
1398
+ const mod = await import("./packages/config-capture/dist/index.js");
1166
1399
  mod.registerConfigCapture(pi, { debug: false });
1167
1400
  } catch {
1168
1401
  // config-capture not available
@@ -1174,11 +1407,11 @@ async function initConfigCapture(pi: ExtensionAPI): Promise<void> {
1174
1407
  async function initQdrant(): Promise<void> {
1175
1408
  addHarnessMessage("Qdrant", "checking configuration", "wait");
1176
1409
  try {
1177
- const { getQdrantConfig } = await import("./packages/skills/src/loader.js");
1410
+ const { getQdrantConfig } = await import("./packages/skills/dist/loader.js");
1178
1411
  const cfg = getQdrantConfig();
1179
1412
  if (cfg) {
1180
1413
  // Check if OpenAI embedding key is available
1181
- const { getOpenAIApiKey } = await import("./packages/qdrant-skills/src/embedder.js");
1414
+ const { getOpenAIApiKey } = await import("./packages/qdrant-skills/dist/embedder.js");
1182
1415
  const embeddingKey = getOpenAIApiKey();
1183
1416
  if (embeddingKey) {
1184
1417
  logStartup("[pi-harness] Qdrant vector search ready");
@@ -1550,41 +1783,21 @@ async function initTelegram(pi: ExtensionAPI): Promise<void> {
1550
1783
 
1551
1784
  switch (parsed.action) {
1552
1785
  case CallbackActions.APPROVE: {
1553
- // User clicked Continue - clear waiting state and resume continuation
1786
+ // The user clicked Continue. The request ID in the
1787
+ // callback data is the canonical one, so the click
1788
+ // resolves exactly this question.
1554
1789
  logToFile("[TelegramCallback] Approved - user clicked Continue, resuming work");
1555
- sharedState.waitingForUserSince = null;
1556
- sharedState.updateAutoContinueStatus?.("IDLE");
1557
- // Resolve pending question with yes, validating request ID (first-answer-wins)
1558
- const approved = sharedState.pqController?.resolve({
1559
- resolution: "yes",
1560
- by: "user",
1561
- requestId: parsed.targetId,
1562
- });
1563
- if (!approved) {
1564
- logToFile("[TelegramCallback] WARNING: APPROVE button ignored - stale or mismatched request ID");
1790
+ if (!applyChannelApproval(parsed.action, parsed.targetId, "telegram")) {
1565
1791
  await acknowledge("Stale button - no pending question to approve");
1566
- break;
1567
1792
  }
1568
- // Also resume continuation controller
1569
- (sharedState.todoContinuationController as any)?.resume?.();
1570
1793
  break;
1571
1794
  }
1572
1795
  case CallbackActions.REJECT: {
1573
- // User clicked Not yet - just dismiss, don't resume
1796
+ // The user clicked Not yet - dismiss and pause.
1574
1797
  logToFile("[TelegramCallback] Rejected - user clicked Not yet, pausing");
1575
- // Resolve pending question with no, validating request ID (first-answer-wins)
1576
- const rejected = sharedState.pqController?.resolve({
1577
- resolution: "no",
1578
- by: "user",
1579
- requestId: parsed.targetId,
1580
- });
1581
- if (!rejected) {
1582
- logToFile("[TelegramCallback] WARNING: REJECT button ignored - stale or mismatched request ID");
1798
+ if (!applyChannelApproval(parsed.action, parsed.targetId, "telegram")) {
1583
1799
  await acknowledge("Stale button - no pending question to reject");
1584
- break;
1585
1800
  }
1586
- // Explicitly pause the continuation
1587
- (sharedState.todoContinuationController as any)?.explicitPause?.();
1588
1801
  break;
1589
1802
  }
1590
1803
  default:
@@ -2052,6 +2265,12 @@ async function initRelayStream(): Promise<void> {
2052
2265
  : `Callback: ${callback.action} ${callback.targetId}`,
2053
2266
  );
2054
2267
 
2268
+ // A LINE postback is the same decision as a Telegram button
2269
+ // click: one resolver, the same canonical request ID.
2270
+ if (callback.type === "line_callback") {
2271
+ applyChannelApproval(callback.action, callback.targetId, "line");
2272
+ }
2273
+
2055
2274
  // Forward Telegram callbacks to the adapter
2056
2275
  if (callback.type === "telegram_callback" && _relayTelegramAdapter) {
2057
2276
  // The mapping is a pure function (harness/telegram-update.ts) so
@@ -2499,7 +2718,7 @@ function initMoocodingSyncHint(): void {
2499
2718
  // Lazy import - only loads when packages/write-review exists
2500
2719
  async function initWriteReview(pi: ExtensionAPI): Promise<void> {
2501
2720
  try {
2502
- const mod = await import("./packages/write-review/src/index.js");
2721
+ const mod = await import("./packages/write-review/dist/index.js");
2503
2722
  mod.injectWriterInstructions(pi);
2504
2723
  } catch {
2505
2724
  // write-review not available
@@ -2512,7 +2731,7 @@ async function initFileCopyHelper(_pi: ExtensionAPI): Promise<void> {
2512
2731
  // DISABLED: File copy helper appends large suffix to every prompt
2513
2732
  // but agent doesn't read it properly. Re-enable when fixed.
2514
2733
  // try {
2515
- // const mod = await import("./packages/file-copy-helper/src/extension.js");
2734
+ // const mod = await import("./packages/file-copy-helper/dist/extension.js");
2516
2735
  // mod.registerFileCopyHelper(_pi);
2517
2736
  // } catch {
2518
2737
  // file-copy-helper not available
@@ -2528,8 +2747,8 @@ async function initFileCopyHelper(_pi: ExtensionAPI): Promise<void> {
2528
2747
  // - harness_rules tool for rule retrieval and acknowledgement
2529
2748
  async function initAgentPolicy(pi: ExtensionAPI): Promise<void> {
2530
2749
  try {
2531
- const { registerAgentPolicy } = await import("./packages/agent-policy/src/extension.js");
2532
- const { resetPolicyStore } = await import("./packages/agent-policy/src/policy-store.js");
2750
+ const { registerAgentPolicy } = await import("./packages/agent-policy/dist/extension.js");
2751
+ const { resetPolicyStore } = await import("./packages/agent-policy/dist/policy-store.js");
2533
2752
  resetPolicyStore(); // Auto-reset so new sessions don't need re-acknowledgment
2534
2753
  registerAgentPolicy(pi, {
2535
2754
  harnessRulesPath: new URL("./AGENTS.md", import.meta.url),
@@ -2557,7 +2776,7 @@ async function initAgentPolicy(pi: ExtensionAPI): Promise<void> {
2557
2776
  // Loads curated notes at session start for Hermes-style memory
2558
2777
  async function initMemory(pi: ExtensionAPI): Promise<void> {
2559
2778
  try {
2560
- const { getGlobalMemoryStore } = await import("./packages/trajectory/src/memory-store.js");
2779
+ const { getGlobalMemoryStore } = await import("./packages/trajectory/dist/src/memory-store.js");
2561
2780
  const memoryStore = getGlobalMemoryStore();
2562
2781
 
2563
2782
  logToFile("[memory]", "Memory store initialized");
@@ -2790,7 +3009,7 @@ async function initHermesSkills(pi: ExtensionAPI): Promise<void> {
2790
3009
  try {
2791
3010
  // Dynamically import to avoid circular deps
2792
3011
  const { initSkills } =
2793
- await import("./packages/skills/src/index.js");
3012
+ await import("./packages/skills/dist/index.js");
2794
3013
 
2795
3014
  // Scan skills from default locations
2796
3015
  const result = initSkills();
@@ -2799,7 +3018,7 @@ async function initHermesSkills(pi: ExtensionAPI): Promise<void> {
2799
3018
 
2800
3019
  // Register /skill commands
2801
3020
  try {
2802
- const { initSkillCommands } = await import("./packages/skills/src/skill-commands.js");
3021
+ const { initSkillCommands } = await import("./packages/skills/dist/skill-commands.js");
2803
3022
  initSkillCommands(pi);
2804
3023
  logStartup("[pi-harness] Registered skill commands");
2805
3024
 
@@ -4357,7 +4576,7 @@ Run \`bd ready\` to see current bd issues.
4357
4576
  }
4358
4577
  if (mode !== "tui") return;
4359
4578
  const { createHarnessFooter } = await import(
4360
- "./packages/tui/src/harness-footer.js"
4579
+ "./packages/tui/dist/harness-footer.js"
4361
4580
  );
4362
4581
  ctx.ui.setFooter((tui, theme, footerData) =>
4363
4582
  createHarnessFooter(tui, theme, footerData, {
@@ -5262,7 +5481,7 @@ Run \`bd ready\` to see current bd issues.
5262
5481
  ctx.ui.setHeader(undefined);
5263
5482
  ctx.ui.notify("Built-in Pi header restored.", "info");
5264
5483
  } else if (mode === "harness" || mode === "" || mode === "") {
5265
- const { createHarnessHeader } = await import("./packages/tui/src/harness-header.js");
5484
+ const { createHarnessHeader } = await import("./packages/tui/dist/harness-header.js");
5266
5485
  ctx.ui.setHeader((tui, theme) =>
5267
5486
  createHarnessHeader(tui, theme, {
5268
5487
  version: HARNESS_VERSION,
@@ -5610,7 +5829,9 @@ Run \`bd ready\` to see current bd issues.
5610
5829
  pi.sendUserMessage(content, { deliverAs });
5611
5830
  await nc("ResumeScheduled", {
5612
5831
  requirement: "Session auto-resume",
5613
- reason,
5832
+ // A resume trigger is not a failure. It renders as
5833
+ // "Trigger: Context compacted", never as "Error: ...".
5834
+ trigger: reason,
5614
5835
  });
5615
5836
  } catch (error) {
5616
5837
  logToFile(
package/mirror.ts CHANGED
@@ -30,7 +30,7 @@
30
30
  * Models live here: `~/.pi/usage-status/mirror.json`.
31
31
  */
32
32
 
33
- import { getMirrorPath, readJson, writeJson } from "./cli.ts";
33
+ import { getMirrorPath, readJson, writeJson } from "./cli.js";
34
34
 
35
35
  /**
36
36
  * Canonical lowercase provider ids — mirrors the KNOWN_AI_PROVIDERS from
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-harness-runtime",
3
- "version": "1.1.398",
3
+ "version": "1.1.403",
4
4
  "description": "[BETA] Codex-style /usage status + autonomous coding harness for pi. Not production ready — expect breaking changes.",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -18,8 +18,10 @@
18
18
  "auth:minimax:scrape": "bun packages/auth/src/run-minimax-auth.ts scrape",
19
19
  "skills:sync": "bun scripts/skills-sync.ts",
20
20
  "skills:sync:check": "bun scripts/skills-sync.ts --check-only",
21
- "build": "for pkg in packages/*/; do [ -f \"${pkg}tsconfig.json\" ] && [ \"$pkg\" != \"packages/provider-router/\" ] && node_modules/.bin/tsc -p \"${pkg}tsconfig.json\" --skipLibCheck > /dev/null 2>&1 || true; done",
22
- "prepublishOnly": "bun run build",
21
+ "build": "bun scripts/build-packages.ts",
22
+ "build:verify": "bun scripts/verify-package-contents.ts",
23
+ "build:verify:pack": "bun scripts/verify-package-contents.ts --pack",
24
+ "prepublishOnly": "bun run build && bun run build:verify:pack",
23
25
  "test:harness": "node scripts/run-langchain-tests.mjs",
24
26
  "test:packages": "bun test packages/",
25
27
  "test:e2e": "PI_HARNESS_E2E=1 bun test e2e/",
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEtF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,mBAAmB;IACnB,YAAY,EAAE,iBAAiB,CAAC;IAChC,iCAAiC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,qBAAqB;IACrB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CAE9E;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAY;IAExB,YAAY,MAAM,EAAE,kBAAkB,EASrC;IAED,YAAY,IAAI,SAAS,CAExB;CACF;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgC;IAE9C,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAE9B;IAED,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE7B;IAED,IAAI,IAAI,SAAS,EAAE,CAElB;IAED,IAAI,CAAC,QAAQ,EAAE,mBAAmB,GAAG,SAAS,EAAE,CAK/C;CACF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAQ1E;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAQ7E"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEtF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,mBAAmB;IACnB,YAAY,EAAE,iBAAiB,CAAC;IAChC,iCAAiC;IACjC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,qBAAqB;IACrB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CAE9E;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAY;IAExB,YAAY,MAAM,EAAE,kBAAkB,EASrC;IAED,YAAY,IAAI,SAAS,CAExB;CACF;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgC;IAE9C,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAE9B;IAED,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE7B;IAED,IAAI,IAAI,SAAS,EAAE,CAElB;IAED,IAAI,CAAC,QAAQ,EAAE,mBAAmB,GAAG,SAAS,EAAE,CAK/C;CACF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAQ1E;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAQ7E"}
@@ -3,7 +3,6 @@
3
3
  *
4
4
  * Advertises agent capabilities and handles agent registry.
5
5
  */
6
- import { fetch } from "undici";
7
6
  import { createAgentCard } from "./agent.js";
8
7
  /**
9
8
  * Start a local A2A discovery agent
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAqB7C;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAA0B;IAC5D,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,OAAO,cAAc;IACjB,IAAI,CAAY;IAExB,YAAY,MAA0B;QACpC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;YAC1B,IAAI,EAAE,MAAM,CAAC,OAAO;YACpB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,eAAe;YAC7D,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,OAAO,EAAE,OAAO;YAChB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,aAAa;IAChB,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE9C,QAAQ,CAAC,IAAe;QACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC,QAA6B;QAChC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAClC,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACvF,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,yBAAyB,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAC9B,OAAO,QAAQ,CAAC,IAAI,EAAwB,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAkB;IACrD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAA6B,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CACH,CAAC;IACF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAqB7C;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAA0B;IAC5D,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,OAAO,cAAc;IACjB,IAAI,CAAY;IAExB,YAAY,MAA0B;QACpC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;YAC1B,IAAI,EAAE,MAAM,CAAC,OAAO;YACpB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,IAAI,eAAe;YAC7D,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,OAAO,EAAE,OAAO;YAChB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,aAAa;IAChB,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE9C,QAAQ,CAAC,IAAe;QACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC,QAA6B;QAChC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAClC,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACvF,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,GAAG,yBAAyB,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAC9B,OAAO,QAAQ,CAAC,IAAI,EAAwB,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAkB;IACrD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAA6B,EAAE;QACpD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CACH,CAAC;IACF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AAC3D,CAAC"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/a2a-adapter",
3
- "version": "1.1.398",
3
+ "version": "1.1.403",
4
4
  "type": "module",
5
5
  "description": "Google Agent-to-Agent (A2A) protocol adapter for pi-harness",
6
6
  "main": "dist/index.js",
@@ -4,7 +4,6 @@
4
4
  * Advertises agent capabilities and handles agent registry.
5
5
  */
6
6
 
7
- import { fetch } from "undici";
8
7
  import type { AgentSearchCriteria } from "./client.js";
9
8
  import { createAgentCard } from "./agent.js";
10
9
  import type { AgentCard, AgentCapabilities, Skill, Authentication } from "./types.js";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/agent-policy",
3
- "version": "1.1.398",
3
+ "version": "1.1.403",
4
4
  "description": "Agent policy runtime for pi-harness - enforces mandatory rule delivery and mutation gating",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/architecture-generator",
3
- "version": "1.1.398",
3
+ "version": "1.1.403",
4
4
  "description": "Generate ADR and Mermaid diagrams from project analysis",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Public entry point of the browser authentication app.
3
+ *
4
+ * The barrel exists so that the published `pi-harness-runtime` package can
5
+ * import the built file (`dist/index.js`) instead of a source path that only
6
+ * exists on a developer machine.
7
+ */
8
+ export * from "./minimax-browser-auth.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Public entry point of the browser authentication app.
3
+ *
4
+ * The barrel exists so that the published `pi-harness-runtime` package can
5
+ * import the built file (`dist/index.js`) instead of a source path that only
6
+ * exists on a developer machine.
7
+ */
8
+ export * from "./minimax-browser-auth.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,2BAA2B,CAAC"}