pi-harness-runtime 1.1.397 → 1.1.402

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 (624) hide show
  1. package/AGENTS.md +44 -2
  2. package/CHANGELOG.md +21 -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/notification-events.ts +6 -6
  21. package/harness/project-detector/detector.ts +1 -2
  22. package/harness/repair-engine.ts +2 -4
  23. package/harness/service-diagnostics.ts +1 -1
  24. package/harness/skill-sync.ts +3 -3
  25. package/index.ts +276 -55
  26. package/mirror.ts +1 -1
  27. package/package.json +5 -3
  28. package/packages/a2a-adapter/dist/discovery.d.ts.map +1 -1
  29. package/packages/a2a-adapter/dist/discovery.js +0 -1
  30. package/packages/a2a-adapter/dist/discovery.js.map +1 -1
  31. package/packages/a2a-adapter/package.json +1 -1
  32. package/packages/a2a-adapter/src/discovery.ts +0 -1
  33. package/packages/agent-policy/package.json +1 -1
  34. package/packages/architecture-generator/package.json +1 -1
  35. package/packages/auth/dist/index.d.ts +9 -0
  36. package/packages/auth/dist/index.d.ts.map +1 -0
  37. package/packages/auth/dist/index.js +9 -0
  38. package/packages/auth/dist/index.js.map +1 -0
  39. package/packages/auth/package.json +1 -1
  40. package/packages/auth/src/index.ts +9 -0
  41. package/packages/autonomous-refactor/package.json +1 -1
  42. package/packages/autonomous-runtime/package.json +1 -1
  43. package/packages/cache-strategy/package.json +1 -1
  44. package/packages/capability-registry/package.json +1 -1
  45. package/packages/checkpoint/package.json +1 -1
  46. package/packages/cli-plugin-sdk/package.json +1 -1
  47. package/packages/clipboard/package.json +1 -1
  48. package/packages/clipboard-plugin/package.json +1 -1
  49. package/packages/code-generation/package.json +1 -1
  50. package/packages/code-review/package.json +1 -1
  51. package/packages/codex-adapter/package.json +1 -1
  52. package/packages/codex-watcher/package.json +1 -1
  53. package/packages/config-capture/dist/index.d.ts +52 -0
  54. package/packages/config-capture/dist/index.d.ts.map +1 -0
  55. package/packages/config-capture/dist/index.js +261 -0
  56. package/packages/config-capture/dist/index.js.map +1 -0
  57. package/packages/config-capture/package.json +1 -1
  58. package/packages/connection-runtime/package.json +1 -1
  59. package/packages/context-compiler/package.json +1 -1
  60. package/packages/context-discovery/package.json +1 -1
  61. package/packages/context-manager/package.json +1 -1
  62. package/packages/contracts/package.json +1 -1
  63. package/packages/cookie-sanitizer/package.json +1 -1
  64. package/packages/cost-optimizer/package.json +1 -1
  65. package/packages/dependency-analyzer/package.json +1 -1
  66. package/packages/django-plugin/package.json +1 -1
  67. package/packages/doc-generator/package.json +1 -1
  68. package/packages/durable-review/package.json +1 -1
  69. package/packages/e2e-tester/package.json +1 -1
  70. package/packages/evaluation-engine/package.json +1 -1
  71. package/packages/evaluation-runner/package.json +1 -1
  72. package/packages/event-bus/package.json +1 -1
  73. package/packages/event-sink/package.json +1 -1
  74. package/packages/event-store/package.json +1 -1
  75. package/packages/experience-replay/package.json +1 -1
  76. package/packages/feedback-collector/package.json +1 -1
  77. package/packages/file-copy-helper/dist/extension.d.ts +15 -0
  78. package/packages/file-copy-helper/dist/extension.d.ts.map +1 -0
  79. package/packages/file-copy-helper/dist/extension.debug.d.ts +15 -0
  80. package/packages/file-copy-helper/dist/extension.debug.d.ts.map +1 -0
  81. package/packages/file-copy-helper/dist/extension.debug.js +215 -0
  82. package/packages/file-copy-helper/dist/extension.debug.js.map +1 -0
  83. package/packages/file-copy-helper/dist/extension.js +222 -0
  84. package/packages/file-copy-helper/dist/extension.js.map +1 -0
  85. package/packages/file-copy-helper/dist/index.d.ts +3 -0
  86. package/packages/file-copy-helper/dist/index.d.ts.map +1 -0
  87. package/packages/file-copy-helper/dist/index.js +3 -0
  88. package/packages/file-copy-helper/dist/index.js.map +1 -0
  89. package/packages/file-copy-helper/dist/intent-detector.d.ts +21 -0
  90. package/packages/file-copy-helper/dist/intent-detector.d.ts.map +1 -0
  91. package/packages/file-copy-helper/dist/intent-detector.js +348 -0
  92. package/packages/file-copy-helper/dist/intent-detector.js.map +1 -0
  93. package/packages/file-copy-helper/package.json +1 -1
  94. package/packages/framework-detector/package.json +1 -1
  95. package/packages/framework-plugin-sdk/package.json +1 -1
  96. package/packages/frappe-plugin/package.json +1 -1
  97. package/packages/generic-web-plugin/package.json +1 -1
  98. package/packages/health-monitor/package.json +1 -1
  99. package/packages/intent-analyzer/package.json +1 -1
  100. package/packages/jev-judge/dist/auto-continue.d.ts +161 -2
  101. package/packages/jev-judge/dist/auto-continue.d.ts.map +1 -1
  102. package/packages/jev-judge/dist/auto-continue.js +267 -22
  103. package/packages/jev-judge/dist/auto-continue.js.map +1 -1
  104. package/packages/jev-judge/dist/index.d.ts +2 -0
  105. package/packages/jev-judge/dist/index.d.ts.map +1 -1
  106. package/packages/jev-judge/dist/index.js +2 -0
  107. package/packages/jev-judge/dist/index.js.map +1 -1
  108. package/packages/jev-judge/dist/question-risk.d.ts +50 -0
  109. package/packages/jev-judge/dist/question-risk.d.ts.map +1 -0
  110. package/packages/jev-judge/dist/question-risk.js +100 -0
  111. package/packages/jev-judge/dist/question-risk.js.map +1 -0
  112. package/packages/jev-judge/package.json +1 -1
  113. package/packages/jev-judge/src/auto-continue.ts +426 -29
  114. package/packages/jev-judge/src/index.ts +4 -0
  115. package/packages/jev-judge/src/question-risk.ts +151 -0
  116. package/packages/jev-judge/tests/auto-continue-context.test.ts +221 -0
  117. package/packages/jev-judge/tests/outcome-application.test.ts +132 -0
  118. package/packages/jev-judge/tests/question-risk.test.ts +116 -0
  119. package/packages/knowledge-graph/package.json +1 -1
  120. package/packages/knowledge-retrieval/package.json +1 -1
  121. package/packages/laravel-plugin/package.json +1 -1
  122. package/packages/learning-engine/package.json +1 -1
  123. package/packages/logging/README.md +36 -3
  124. package/packages/logging/dist/config.d.ts +7 -0
  125. package/packages/logging/dist/config.d.ts.map +1 -1
  126. package/packages/logging/dist/config.js +14 -0
  127. package/packages/logging/dist/config.js.map +1 -1
  128. package/packages/logging/dist/incidents/schema.d.ts +111 -0
  129. package/packages/logging/dist/incidents/schema.d.ts.map +1 -0
  130. package/packages/logging/dist/incidents/schema.js +0 -0
  131. package/packages/logging/dist/incidents/schema.js.map +1 -0
  132. package/packages/logging/dist/index.d.ts +2 -0
  133. package/packages/logging/dist/index.d.ts.map +1 -1
  134. package/packages/logging/dist/index.js +2 -0
  135. package/packages/logging/dist/index.js.map +1 -1
  136. package/packages/logging/dist/server/http.d.ts +4 -3
  137. package/packages/logging/dist/server/http.d.ts.map +1 -1
  138. package/packages/logging/dist/server/http.js +35 -3
  139. package/packages/logging/dist/server/http.js.map +1 -1
  140. package/packages/logging/dist/server/incident-qdrant.d.ts +83 -0
  141. package/packages/logging/dist/server/incident-qdrant.d.ts.map +1 -0
  142. package/packages/logging/dist/server/incident-qdrant.js +129 -0
  143. package/packages/logging/dist/server/incident-qdrant.js.map +1 -0
  144. package/packages/logging/dist/server/incident-store.d.ts +76 -0
  145. package/packages/logging/dist/server/incident-store.d.ts.map +1 -0
  146. package/packages/logging/dist/server/incident-store.js +157 -0
  147. package/packages/logging/dist/server/incident-store.js.map +1 -0
  148. package/packages/logging/dist/server/index.d.ts +4 -0
  149. package/packages/logging/dist/server/index.d.ts.map +1 -1
  150. package/packages/logging/dist/server/index.js +2 -0
  151. package/packages/logging/dist/server/index.js.map +1 -1
  152. package/packages/logging/dist/server/service.d.ts +33 -0
  153. package/packages/logging/dist/server/service.d.ts.map +1 -1
  154. package/packages/logging/dist/server/service.js +63 -0
  155. package/packages/logging/dist/server/service.js.map +1 -1
  156. package/packages/logging/dist/shipper.d.ts +74 -3
  157. package/packages/logging/dist/shipper.d.ts.map +1 -1
  158. package/packages/logging/dist/shipper.js +88 -5
  159. package/packages/logging/dist/shipper.js.map +1 -1
  160. package/packages/logging/dist/singleton.d.ts.map +1 -1
  161. package/packages/logging/dist/singleton.js +1 -0
  162. package/packages/logging/dist/singleton.js.map +1 -1
  163. package/packages/logging/package.json +1 -1
  164. package/packages/logging/src/config.ts +22 -0
  165. package/packages/logging/src/incidents/schema.ts +0 -0
  166. package/packages/logging/src/index.ts +17 -0
  167. package/packages/logging/src/server/http.ts +42 -3
  168. package/packages/logging/src/server/incident-qdrant.ts +177 -0
  169. package/packages/logging/src/server/incident-store.ts +192 -0
  170. package/packages/logging/src/server/index.ts +21 -0
  171. package/packages/logging/src/server/service.ts +79 -0
  172. package/packages/logging/src/shipper.ts +120 -5
  173. package/packages/logging/src/singleton.ts +1 -0
  174. package/packages/logging/test/fanout.test.ts +186 -0
  175. package/packages/logging/test/incidents.test.ts +404 -0
  176. package/packages/mcp-adapter/package.json +1 -1
  177. package/packages/memory-engine/package.json +1 -1
  178. package/packages/milestone-manager/package.json +1 -1
  179. package/packages/model-registry/package.json +1 -1
  180. package/packages/nextjs-plugin/package.json +1 -1
  181. package/packages/notification/dist/adapters/detail-format.d.ts +42 -0
  182. package/packages/notification/dist/adapters/detail-format.d.ts.map +1 -0
  183. package/packages/notification/dist/adapters/detail-format.js +94 -0
  184. package/packages/notification/dist/adapters/detail-format.js.map +1 -0
  185. package/packages/notification/dist/adapters/email-adapter.d.ts.map +1 -1
  186. package/packages/notification/dist/adapters/email-adapter.js +3 -2
  187. package/packages/notification/dist/adapters/email-adapter.js.map +1 -1
  188. package/packages/notification/dist/adapters/line-adapter.d.ts +33 -0
  189. package/packages/notification/dist/adapters/line-adapter.d.ts.map +1 -1
  190. package/packages/notification/dist/adapters/line-adapter.js +87 -9
  191. package/packages/notification/dist/adapters/line-adapter.js.map +1 -1
  192. package/packages/notification/dist/adapters/ntfy-adapter.d.ts.map +1 -1
  193. package/packages/notification/dist/adapters/ntfy-adapter.js +3 -2
  194. package/packages/notification/dist/adapters/ntfy-adapter.js.map +1 -1
  195. package/packages/notification/dist/adapters/telegram-adapter.d.ts +14 -0
  196. package/packages/notification/dist/adapters/telegram-adapter.d.ts.map +1 -1
  197. package/packages/notification/dist/adapters/telegram-adapter.js +89 -69
  198. package/packages/notification/dist/adapters/telegram-adapter.js.map +1 -1
  199. package/packages/notification/dist/notification-center.d.ts.map +1 -1
  200. package/packages/notification/dist/notification-center.js +60 -7
  201. package/packages/notification/dist/notification-center.js.map +1 -1
  202. package/packages/notification/dist/pending-question.d.ts +69 -2
  203. package/packages/notification/dist/pending-question.d.ts.map +1 -1
  204. package/packages/notification/dist/pending-question.js +88 -2
  205. package/packages/notification/dist/pending-question.js.map +1 -1
  206. package/packages/notification/dist/types.d.ts +21 -0
  207. package/packages/notification/dist/types.d.ts.map +1 -1
  208. package/packages/notification/package.json +1 -1
  209. package/packages/notification/src/adapters/detail-format.ts +114 -0
  210. package/packages/notification/src/adapters/email-adapter.ts +3 -2
  211. package/packages/notification/src/adapters/line-adapter.ts +97 -9
  212. package/packages/notification/src/adapters/ntfy-adapter.ts +3 -2
  213. package/packages/notification/src/adapters/telegram-adapter.ts +98 -76
  214. package/packages/notification/src/notification-center.ts +66 -8
  215. package/packages/notification/src/pending-question.ts +160 -8
  216. package/packages/notification/src/types.ts +21 -0
  217. package/packages/notification/test/approval-payload.test.ts +269 -0
  218. package/packages/notification/test/detail-format.test.ts +106 -0
  219. package/packages/notification/test/pending-question-lifecycle.test.ts +195 -0
  220. package/packages/observability/package.json +1 -1
  221. package/packages/okf-indexer/dist/index.d.ts +9 -0
  222. package/packages/okf-indexer/dist/index.d.ts.map +1 -0
  223. package/packages/okf-indexer/dist/index.js +9 -0
  224. package/packages/okf-indexer/dist/index.js.map +1 -0
  225. package/packages/okf-indexer/package.json +1 -1
  226. package/packages/okf-indexer/src/index.ts +9 -0
  227. package/packages/paperclip-integration/package.json +1 -1
  228. package/packages/performance-optimizer/package.json +1 -1
  229. package/packages/permission-mode/package.json +1 -1
  230. package/packages/privilege-broker/package.json +1 -1
  231. package/packages/project-analyzer/package.json +1 -1
  232. package/packages/project-bootstrap/package.json +1 -1
  233. package/packages/projection-engine/package.json +1 -1
  234. package/packages/prompt-compiler/package.json +1 -1
  235. package/packages/prompt-versioning/package.json +1 -1
  236. package/packages/provider-adapter-sdk/package.json +1 -1
  237. package/packages/provider-router/dist/provider-router.d.ts.map +1 -1
  238. package/packages/provider-router/dist/types.d.ts +2 -2
  239. package/packages/provider-router/dist/types.d.ts.map +1 -1
  240. package/packages/provider-router/dist/types.js +1 -1
  241. package/packages/provider-router/package.json +1 -1
  242. package/packages/provider-router/src/types.ts +2 -2
  243. package/packages/provider-selector/package.json +1 -1
  244. package/packages/providers/package.json +1 -1
  245. package/packages/qdrant-skills/package.json +1 -1
  246. package/packages/quota-manager/package.json +1 -1
  247. package/packages/rate-limiter/package.json +1 -1
  248. package/packages/react-vite-plugin/package.json +1 -1
  249. package/packages/relay/package.json +1 -1
  250. package/packages/release-manager/package.json +1 -1
  251. package/packages/requirement-compiler/package.json +1 -1
  252. package/packages/runtime/package.json +1 -1
  253. package/packages/scheduler/dist/index.d.ts +9 -0
  254. package/packages/scheduler/dist/index.d.ts.map +1 -0
  255. package/packages/scheduler/dist/index.js +9 -0
  256. package/packages/scheduler/dist/index.js.map +1 -0
  257. package/packages/scheduler/dist/scheduler.d.ts +17 -0
  258. package/packages/scheduler/dist/scheduler.d.ts.map +1 -0
  259. package/packages/scheduler/dist/scheduler.js +41 -0
  260. package/packages/scheduler/dist/scheduler.js.map +1 -0
  261. package/packages/scheduler/package.json +1 -1
  262. package/packages/scheduler/src/index.ts +9 -0
  263. package/packages/scheduler-adapter/package.json +1 -1
  264. package/packages/session/package.json +1 -1
  265. package/packages/session-api/package.json +1 -1
  266. package/packages/session-export/package.json +1 -1
  267. package/packages/shared-context/dist/index.d.ts +7 -0
  268. package/packages/shared-context/dist/index.d.ts.map +1 -0
  269. package/packages/shared-context/dist/index.js +7 -0
  270. package/packages/shared-context/dist/index.js.map +1 -0
  271. package/packages/shared-context/dist/shared-context.d.ts +12 -0
  272. package/packages/shared-context/dist/shared-context.d.ts.map +1 -0
  273. package/packages/shared-context/dist/shared-context.js +39 -0
  274. package/packages/shared-context/dist/shared-context.js.map +1 -0
  275. package/packages/shared-context/package.json +1 -1
  276. package/packages/skill-mcp-client/dist/client.d.ts +56 -0
  277. package/packages/skill-mcp-client/dist/client.d.ts.map +1 -0
  278. package/packages/skill-mcp-client/dist/client.js +101 -0
  279. package/packages/skill-mcp-client/dist/client.js.map +1 -0
  280. package/packages/skill-mcp-client/dist/errors.d.ts +44 -0
  281. package/packages/skill-mcp-client/dist/errors.d.ts.map +1 -0
  282. package/packages/skill-mcp-client/dist/errors.js +68 -0
  283. package/packages/skill-mcp-client/dist/errors.js.map +1 -0
  284. package/packages/skill-mcp-client/dist/index.d.ts +9 -0
  285. package/packages/skill-mcp-client/dist/index.d.ts.map +1 -0
  286. package/packages/skill-mcp-client/dist/index.js +9 -0
  287. package/packages/skill-mcp-client/dist/index.js.map +1 -0
  288. package/packages/skill-mcp-client/dist/types.d.ts +106 -0
  289. package/packages/skill-mcp-client/dist/types.d.ts.map +1 -0
  290. package/packages/skill-mcp-client/dist/types.js +14 -0
  291. package/packages/skill-mcp-client/dist/types.js.map +1 -0
  292. package/packages/skill-mcp-client/package.json +1 -1
  293. package/packages/skill-registry/package.json +1 -1
  294. package/packages/skills/package.json +1 -5
  295. package/packages/sprint-planner/package.json +1 -1
  296. package/packages/subscription-engine/package.json +1 -1
  297. package/packages/task-compiler/package.json +1 -1
  298. package/packages/telegram/package.json +1 -1
  299. package/packages/telegram/src/agent-messages.d.ts +28 -0
  300. package/packages/telegram/src/agent-messages.js +90 -0
  301. package/packages/telegram/src/bindings.d.ts +296 -0
  302. package/packages/telegram/src/bindings.js +1086 -0
  303. package/packages/telegram/src/bus.d.ts +759 -0
  304. package/packages/telegram/src/bus.js +2732 -0
  305. package/packages/telegram/src/commands.d.ts +761 -0
  306. package/packages/telegram/src/commands.js +2622 -0
  307. package/packages/telegram/src/config.d.ts +222 -0
  308. package/packages/telegram/src/config.js +844 -0
  309. package/packages/telegram/src/delivery.d.ts +161 -0
  310. package/packages/telegram/src/delivery.js +550 -0
  311. package/packages/telegram/src/extension.d.ts +7 -0
  312. package/packages/telegram/src/extension.js +2444 -0
  313. package/packages/telegram/src/inbound.d.ts +94 -0
  314. package/packages/telegram/src/inbound.js +478 -0
  315. package/packages/telegram/src/index.d.ts +6 -0
  316. package/packages/telegram/src/index.js +6 -0
  317. package/packages/telegram/src/keyboard.d.ts +21 -0
  318. package/packages/telegram/src/keyboard.js +37 -0
  319. package/packages/telegram/src/lifecycle.d.ts +210 -0
  320. package/packages/telegram/src/lifecycle.js +538 -0
  321. package/packages/telegram/src/pi.d.ts +76 -0
  322. package/packages/telegram/src/pi.js +130 -0
  323. package/packages/telegram/src/polling.d.ts +332 -0
  324. package/packages/telegram/src/polling.js +1219 -0
  325. package/packages/telegram/src/replies.d.ts +210 -0
  326. package/packages/telegram/src/replies.js +752 -0
  327. package/packages/telegram/src/routing.d.ts +388 -0
  328. package/packages/telegram/src/routing.js +7886 -0
  329. package/packages/telegram/src/runtime.d.ts +159 -0
  330. package/packages/telegram/src/runtime.js +351 -0
  331. package/packages/telegram/src/telegram-api.d.ts +564 -0
  332. package/packages/telegram/src/telegram-api.js +1332 -0
  333. package/packages/telegram/src/turns.d.ts +108 -0
  334. package/packages/telegram/src/turns.js +482 -0
  335. package/packages/telegram/src/updates.d.ts +1545 -0
  336. package/packages/telegram/src/updates.js +6420 -0
  337. package/packages/tencentdb-memory/package.json +1 -1
  338. package/packages/tencentdb-sync/package.json +1 -1
  339. package/packages/test-data-generator/package.json +1 -1
  340. package/packages/test-generator/package.json +1 -1
  341. package/packages/todo-bd-sync/dist/detector.d.ts +54 -0
  342. package/packages/todo-bd-sync/dist/detector.d.ts.map +1 -0
  343. package/packages/todo-bd-sync/dist/detector.js +132 -0
  344. package/packages/todo-bd-sync/dist/detector.js.map +1 -0
  345. package/packages/todo-bd-sync/dist/extension.d.ts +30 -0
  346. package/packages/todo-bd-sync/dist/extension.d.ts.map +1 -0
  347. package/packages/todo-bd-sync/dist/extension.js +35 -0
  348. package/packages/todo-bd-sync/dist/extension.js.map +1 -0
  349. package/packages/todo-bd-sync/dist/index.d.ts +87 -0
  350. package/packages/todo-bd-sync/dist/index.d.ts.map +1 -0
  351. package/packages/todo-bd-sync/dist/index.js +296 -0
  352. package/packages/todo-bd-sync/dist/index.js.map +1 -0
  353. package/packages/todo-bd-sync/dist/sync.d.ts +72 -0
  354. package/packages/todo-bd-sync/dist/sync.d.ts.map +1 -0
  355. package/packages/todo-bd-sync/dist/sync.js +290 -0
  356. package/packages/todo-bd-sync/dist/sync.js.map +1 -0
  357. package/packages/todo-bd-sync/dist/task-analyzer.d.ts +49 -0
  358. package/packages/todo-bd-sync/dist/task-analyzer.d.ts.map +1 -0
  359. package/packages/todo-bd-sync/dist/task-analyzer.js +240 -0
  360. package/packages/todo-bd-sync/dist/task-analyzer.js.map +1 -0
  361. package/packages/todo-bd-sync/dist/todo-reminder.d.ts +126 -0
  362. package/packages/todo-bd-sync/dist/todo-reminder.d.ts.map +1 -0
  363. package/packages/todo-bd-sync/dist/todo-reminder.js +329 -0
  364. package/packages/todo-bd-sync/dist/todo-reminder.js.map +1 -0
  365. package/packages/todo-bd-sync/dist/types.d.ts +65 -0
  366. package/packages/todo-bd-sync/dist/types.d.ts.map +1 -0
  367. package/packages/todo-bd-sync/dist/types.js +67 -0
  368. package/packages/todo-bd-sync/dist/types.js.map +1 -0
  369. package/packages/todo-bd-sync/package.json +1 -1
  370. package/packages/token-estimation/dist/index.d.ts +94 -0
  371. package/packages/token-estimation/dist/index.d.ts.map +1 -0
  372. package/packages/token-estimation/dist/index.js +115 -0
  373. package/packages/token-estimation/dist/index.js.map +1 -0
  374. package/packages/token-estimation/package.json +1 -1
  375. package/packages/token-optimizer/package.json +1 -1
  376. package/packages/trajectory/package.json +1 -1
  377. package/packages/tui/package.json +1 -1
  378. package/packages/types/dist/ai-providers.d.ts +36 -0
  379. package/packages/types/dist/ai-providers.d.ts.map +1 -0
  380. package/packages/types/dist/ai-providers.js +66 -0
  381. package/packages/types/dist/ai-providers.js.map +1 -0
  382. package/packages/types/dist/index.d.ts +12 -0
  383. package/packages/types/dist/index.d.ts.map +1 -0
  384. package/packages/types/dist/index.js +12 -0
  385. package/packages/types/dist/index.js.map +1 -0
  386. package/packages/types/package.json +5 -5
  387. package/packages/types/src/index.ts +12 -0
  388. package/packages/voice-api/package.json +1 -1
  389. package/packages/webmcp-tester/package.json +1 -1
  390. package/packages/wiki/package.json +1 -1
  391. package/packages/workflow-events/package.json +1 -1
  392. package/packages/workspace-scanner/package.json +1 -1
  393. package/packages/worktree/package.json +1 -1
  394. package/packages/worktree/worktree.ts +1 -1
  395. package/packages/write-review/package.json +1 -1
  396. package/renderer.ts +1 -1
  397. package/scripts/build-packages.ts +162 -0
  398. package/scripts/relay-client.ts +2 -2
  399. package/scripts/typecheck-packages.mjs +3 -3
  400. package/scripts/unified-webhook-server.ts +22 -10
  401. package/scripts/verify-package-contents.ts +345 -0
  402. package/scripts/ws-server.ts +1 -1
  403. package/tracker.ts +1 -1
  404. package/harness/browser-scrapers/base-browser-scraper.d.ts +0 -91
  405. package/harness/browser-scrapers/chrome-profile-manager.d.ts +0 -80
  406. package/harness/browser-scrapers/codex-browser-scraper.d.ts +0 -60
  407. package/harness/browser-scrapers/index.d.ts +0 -29
  408. package/harness/browser-scrapers/zai-browser-scraper.d.ts +0 -79
  409. package/harness/e2e/browser-scrapers/base-browser-scraper.d.ts +0 -92
  410. package/harness/e2e/browser-scrapers/chrome-profile-manager.d.ts +0 -81
  411. package/harness/e2e/browser-scrapers/codex-browser-scraper.d.ts +0 -61
  412. package/harness/e2e/browser-scrapers/index.d.ts +0 -30
  413. package/harness/e2e/browser-scrapers/zai-browser-scraper.d.ts +0 -80
  414. package/harness/langchain/agents.d.ts +0 -143
  415. package/harness/langchain/agents.test.d.ts +0 -2
  416. package/harness/langchain/checkpointer.d.ts +0 -48
  417. package/harness/langchain/checkpointer.test.d.ts +0 -8
  418. package/harness/langchain/cron-cli.d.ts +0 -12
  419. package/harness/langchain/daemon.d.ts +0 -161
  420. package/harness/langchain/daemon.test.d.ts +0 -11
  421. package/harness/langchain/file-tools.d.ts +0 -97
  422. package/harness/langchain/graph.d.ts +0 -706
  423. package/harness/langchain/model-router.d.ts +0 -63
  424. package/harness/langchain/model-router.test.d.ts +0 -2
  425. package/harness/langchain/models.d.ts +0 -72
  426. package/harness/langchain/ping-pong-middleware.d.ts +0 -28
  427. package/harness/langchain/ping-pong-middleware.test.d.ts +0 -2
  428. package/harness/langchain/run.d.ts +0 -15
  429. package/harness/langchain/scoreboard.test.d.ts +0 -13
  430. package/harness/langchain/status-line.d.ts +0 -91
  431. package/harness/langchain/status-line.test.d.ts +0 -8
  432. package/harness/langchain/surge.d.ts +0 -111
  433. package/harness/langchain/surge.test.d.ts +0 -10
  434. package/harness/langchain/widget.d.ts +0 -105
  435. package/harness/langchain/widget.test.d.ts +0 -8
  436. package/packages/autonomous-runtime/dist/worker.d.ts +0 -63
  437. package/packages/autonomous-runtime/dist/worker.js +0 -133
  438. package/packages/capability-registry/src/types.d.ts +0 -47
  439. package/packages/clipboard/dist/clipboard.d.ts +0 -11
  440. package/packages/clipboard/dist/clipboard.js +0 -40
  441. package/packages/clipboard/dist/index.d.ts +0 -2
  442. package/packages/clipboard/dist/index.js +0 -2
  443. package/packages/clipboard/dist/types.d.ts +0 -13
  444. package/packages/clipboard/dist/types.js +0 -5
  445. package/packages/context-discovery/dist/discover.d.ts +0 -3
  446. package/packages/context-discovery/dist/discover.js +0 -42
  447. package/packages/context-discovery/dist/discovery.d.ts +0 -28
  448. package/packages/context-discovery/dist/discovery.js +0 -21
  449. package/packages/context-discovery/dist/index.d.ts +0 -3
  450. package/packages/context-discovery/dist/index.js +0 -2
  451. package/packages/context-discovery/dist/types.d.ts +0 -16
  452. package/packages/context-discovery/dist/types.js +0 -2
  453. package/packages/event-bus/dist/bus.d.ts +0 -15
  454. package/packages/event-bus/dist/bus.js +0 -90
  455. package/packages/event-bus/dist/index.d.ts +0 -4
  456. package/packages/event-bus/dist/index.js +0 -3
  457. package/packages/event-bus/dist/test/bus.test.js +0 -52
  458. package/packages/event-bus/dist/types.d.ts +0 -27
  459. package/packages/event-bus/dist/types.js +0 -10
  460. package/packages/event-store/dist/index.d.ts +0 -3
  461. package/packages/event-store/dist/index.js +0 -2
  462. package/packages/event-store/dist/store.d.ts +0 -15
  463. package/packages/event-store/dist/store.js +0 -131
  464. package/packages/event-store/dist/test/store.test.js +0 -57
  465. package/packages/event-store/dist/types.d.ts +0 -48
  466. package/packages/event-store/dist/types.js +0 -5
  467. package/packages/event-store/src/types.d.ts +0 -48
  468. package/packages/file-copy-helper/dist/src/extension.js +0 -186
  469. package/packages/model-registry/src/types.d.ts +0 -63
  470. package/packages/notification/dist/src/adapters/email-adapter.d.ts +0 -17
  471. package/packages/notification/dist/src/adapters/email-adapter.d.ts.map +0 -1
  472. package/packages/notification/dist/src/adapters/email-adapter.js +0 -89
  473. package/packages/notification/dist/src/adapters/email-adapter.js.map +0 -1
  474. package/packages/notification/dist/src/adapters/line-adapter.d.ts +0 -17
  475. package/packages/notification/dist/src/adapters/line-adapter.d.ts.map +0 -1
  476. package/packages/notification/dist/src/adapters/line-adapter.js +0 -99
  477. package/packages/notification/dist/src/adapters/line-adapter.js.map +0 -1
  478. package/packages/notification/dist/src/adapters/ntfy-adapter.d.ts +0 -17
  479. package/packages/notification/dist/src/adapters/ntfy-adapter.d.ts.map +0 -1
  480. package/packages/notification/dist/src/adapters/ntfy-adapter.js +0 -84
  481. package/packages/notification/dist/src/adapters/ntfy-adapter.js.map +0 -1
  482. package/packages/notification/dist/src/adapters/telegram-adapter.d.ts +0 -56
  483. package/packages/notification/dist/src/adapters/telegram-adapter.d.ts.map +0 -1
  484. package/packages/notification/dist/src/adapters/telegram-adapter.js +0 -251
  485. package/packages/notification/dist/src/adapters/telegram-adapter.js.map +0 -1
  486. package/packages/notification/dist/src/adapters/webhook-adapter.d.ts +0 -15
  487. package/packages/notification/dist/src/adapters/webhook-adapter.d.ts.map +0 -1
  488. package/packages/notification/dist/src/adapters/webhook-adapter.js +0 -64
  489. package/packages/notification/dist/src/adapters/webhook-adapter.js.map +0 -1
  490. package/packages/notification/dist/src/base-adapter.d.ts +0 -36
  491. package/packages/notification/dist/src/base-adapter.d.ts.map +0 -1
  492. package/packages/notification/dist/src/base-adapter.js +0 -39
  493. package/packages/notification/dist/src/base-adapter.js.map +0 -1
  494. package/packages/notification/dist/src/index.d.ts +0 -12
  495. package/packages/notification/dist/src/index.d.ts.map +0 -1
  496. package/packages/notification/dist/src/index.js +0 -12
  497. package/packages/notification/dist/src/index.js.map +0 -1
  498. package/packages/notification/dist/src/notification-center.d.ts +0 -89
  499. package/packages/notification/dist/src/notification-center.d.ts.map +0 -1
  500. package/packages/notification/dist/src/notification-center.js +0 -356
  501. package/packages/notification/dist/src/notification-center.js.map +0 -1
  502. package/packages/notification/dist/src/notification-policy.d.ts +0 -66
  503. package/packages/notification/dist/src/notification-policy.d.ts.map +0 -1
  504. package/packages/notification/dist/src/notification-policy.js +0 -153
  505. package/packages/notification/dist/src/notification-policy.js.map +0 -1
  506. package/packages/notification/dist/src/telegram-webhook-handler.d.ts +0 -86
  507. package/packages/notification/dist/src/telegram-webhook-handler.d.ts.map +0 -1
  508. package/packages/notification/dist/src/telegram-webhook-handler.js +0 -149
  509. package/packages/notification/dist/src/telegram-webhook-handler.js.map +0 -1
  510. package/packages/notification/dist/src/types.d.ts +0 -106
  511. package/packages/notification/dist/src/types.d.ts.map +0 -1
  512. package/packages/notification/dist/src/types.js +0 -7
  513. package/packages/notification/dist/src/types.js.map +0 -1
  514. package/packages/projection-engine/dist/engine.d.ts +0 -61
  515. package/packages/projection-engine/dist/engine.js +0 -76
  516. package/packages/projection-engine/dist/index.d.ts +0 -2
  517. package/packages/projection-engine/dist/index.js +0 -2
  518. package/packages/projection-engine/dist/project.d.ts +0 -3
  519. package/packages/projection-engine/dist/project.js +0 -24
  520. package/packages/projection-engine/dist/types.d.ts +0 -55
  521. package/packages/projection-engine/dist/types.js +0 -5
  522. package/packages/projection-engine/src/types.d.ts +0 -55
  523. package/packages/provider-adapter-sdk/dist/src/builder.d.ts +0 -140
  524. package/packages/provider-adapter-sdk/dist/src/builder.d.ts.map +0 -1
  525. package/packages/provider-adapter-sdk/dist/src/builder.js +0 -332
  526. package/packages/provider-adapter-sdk/dist/src/builder.js.map +0 -1
  527. package/packages/provider-adapter-sdk/dist/src/errors.d.ts +0 -71
  528. package/packages/provider-adapter-sdk/dist/src/errors.d.ts.map +0 -1
  529. package/packages/provider-adapter-sdk/dist/src/errors.js +0 -111
  530. package/packages/provider-adapter-sdk/dist/src/errors.js.map +0 -1
  531. package/packages/provider-adapter-sdk/dist/src/index.d.ts +0 -15
  532. package/packages/provider-adapter-sdk/dist/src/index.d.ts.map +0 -1
  533. package/packages/provider-adapter-sdk/dist/src/index.js +0 -19
  534. package/packages/provider-adapter-sdk/dist/src/index.js.map +0 -1
  535. package/packages/provider-adapter-sdk/dist/src/registry.d.ts +0 -108
  536. package/packages/provider-adapter-sdk/dist/src/registry.d.ts.map +0 -1
  537. package/packages/provider-adapter-sdk/dist/src/registry.js +0 -301
  538. package/packages/provider-adapter-sdk/dist/src/registry.js.map +0 -1
  539. package/packages/provider-adapter-sdk/dist/src/tester.d.ts +0 -71
  540. package/packages/provider-adapter-sdk/dist/src/tester.d.ts.map +0 -1
  541. package/packages/provider-adapter-sdk/dist/src/tester.js +0 -392
  542. package/packages/provider-adapter-sdk/dist/src/tester.js.map +0 -1
  543. package/packages/provider-adapter-sdk/dist/src/types.d.ts +0 -182
  544. package/packages/provider-adapter-sdk/dist/src/types.d.ts.map +0 -1
  545. package/packages/provider-adapter-sdk/dist/src/types.js +0 -11
  546. package/packages/provider-adapter-sdk/dist/src/types.js.map +0 -1
  547. package/packages/provider-router/dist/capability-registry/src/types.d.ts +0 -47
  548. package/packages/provider-router/dist/capability-registry/src/types.d.ts.map +0 -1
  549. package/packages/provider-router/dist/capability-registry/src/types.js +0 -10
  550. package/packages/provider-router/dist/capability-registry/src/types.js.map +0 -1
  551. package/packages/provider-router/dist/provider-router/src/index.d.ts +0 -23
  552. package/packages/provider-router/dist/provider-router/src/index.d.ts.map +0 -1
  553. package/packages/provider-router/dist/provider-router/src/index.js +0 -25
  554. package/packages/provider-router/dist/provider-router/src/index.js.map +0 -1
  555. package/packages/provider-router/dist/provider-router/src/policy.d.ts +0 -10
  556. package/packages/provider-router/dist/provider-router/src/policy.d.ts.map +0 -1
  557. package/packages/provider-router/dist/provider-router/src/policy.js +0 -45
  558. package/packages/provider-router/dist/provider-router/src/policy.js.map +0 -1
  559. package/packages/provider-router/dist/provider-router/src/provider-router.d.ts +0 -56
  560. package/packages/provider-router/dist/provider-router/src/provider-router.d.ts.map +0 -1
  561. package/packages/provider-router/dist/provider-router/src/provider-router.js +0 -222
  562. package/packages/provider-router/dist/provider-router/src/provider-router.js.map +0 -1
  563. package/packages/provider-router/dist/provider-router/src/strategies.d.ts +0 -19
  564. package/packages/provider-router/dist/provider-router/src/strategies.d.ts.map +0 -1
  565. package/packages/provider-router/dist/provider-router/src/strategies.js +0 -110
  566. package/packages/provider-router/dist/provider-router/src/strategies.js.map +0 -1
  567. package/packages/provider-router/dist/provider-router/src/types.d.ts +0 -91
  568. package/packages/provider-router/dist/provider-router/src/types.d.ts.map +0 -1
  569. package/packages/provider-router/dist/provider-router/src/types.js +0 -10
  570. package/packages/provider-router/dist/provider-router/src/types.js.map +0 -1
  571. package/packages/provider-router/dist/src/index.d.ts +0 -23
  572. package/packages/provider-router/dist/src/index.d.ts.map +0 -1
  573. package/packages/provider-router/dist/src/index.js +0 -25
  574. package/packages/provider-router/dist/src/index.js.map +0 -1
  575. package/packages/provider-router/dist/src/policy.d.ts +0 -10
  576. package/packages/provider-router/dist/src/policy.d.ts.map +0 -1
  577. package/packages/provider-router/dist/src/policy.js +0 -45
  578. package/packages/provider-router/dist/src/policy.js.map +0 -1
  579. package/packages/provider-router/dist/src/provider-router.d.ts +0 -56
  580. package/packages/provider-router/dist/src/provider-router.d.ts.map +0 -1
  581. package/packages/provider-router/dist/src/provider-router.js +0 -222
  582. package/packages/provider-router/dist/src/provider-router.js.map +0 -1
  583. package/packages/provider-router/dist/src/strategies.d.ts +0 -19
  584. package/packages/provider-router/dist/src/strategies.d.ts.map +0 -1
  585. package/packages/provider-router/dist/src/strategies.js +0 -110
  586. package/packages/provider-router/dist/src/strategies.js.map +0 -1
  587. package/packages/provider-router/dist/src/types.d.ts +0 -91
  588. package/packages/provider-router/dist/src/types.d.ts.map +0 -1
  589. package/packages/provider-router/dist/src/types.js +0 -10
  590. package/packages/provider-router/dist/src/types.js.map +0 -1
  591. package/packages/provider-router/dist/types/src/runtime-types.d.ts +0 -412
  592. package/packages/provider-router/dist/types/src/runtime-types.d.ts.map +0 -1
  593. package/packages/provider-router/dist/types/src/runtime-types.js +0 -2
  594. package/packages/provider-router/dist/types/src/runtime-types.js.map +0 -1
  595. package/packages/session-api/dist/api.d.ts +0 -83
  596. package/packages/session-api/dist/api.js +0 -35
  597. package/packages/session-api/dist/index.d.ts +0 -2
  598. package/packages/session-api/dist/index.js +0 -2
  599. package/packages/session-api/dist/types.d.ts +0 -22
  600. package/packages/session-api/dist/types.js +0 -5
  601. package/packages/session-export/dist/exporter.d.ts +0 -28
  602. package/packages/session-export/dist/exporter.js +0 -38
  603. package/packages/session-export/dist/index.d.ts +0 -2
  604. package/packages/session-export/dist/index.js +0 -2
  605. package/packages/session-export/dist/types.d.ts +0 -20
  606. package/packages/session-export/dist/types.js +0 -5
  607. package/packages/subscription-engine/dist/engine.d.ts +0 -13
  608. package/packages/subscription-engine/dist/engine.js +0 -40
  609. package/packages/subscription-engine/dist/index.d.ts +0 -2
  610. package/packages/subscription-engine/dist/index.js +0 -2
  611. package/packages/subscription-engine/dist/subscriptions.d.ts +0 -19
  612. package/packages/subscription-engine/dist/subscriptions.js +0 -32
  613. package/packages/subscription-engine/dist/types.d.ts +0 -24
  614. package/packages/subscription-engine/dist/types.js +0 -5
  615. package/packages/trajectory/test/store.test.d.ts +0 -2
  616. package/packages/workflow-events/dist/events.d.ts +0 -38
  617. package/packages/workflow-events/dist/events.js +0 -46
  618. package/packages/workflow-events/dist/index.d.ts +0 -2
  619. package/packages/workflow-events/dist/index.js +0 -2
  620. package/packages/workflow-events/dist/pipeline.d.ts +0 -21
  621. package/packages/workflow-events/dist/pipeline.js +0 -27
  622. package/packages/workflow-events/dist/types.d.ts +0 -110
  623. package/packages/workflow-events/dist/types.js +0 -5
  624. package/packages/workflow-events/src/types.d.ts +0 -110
@@ -0,0 +1,348 @@
1
+ /**
2
+ * Intent Detector - Routes user requests to appropriate modules
3
+ *
4
+ * Detects user intent from keywords and activates relevant modules.
5
+ * DEBUG: All events logged to /tmp/intent-detector-debug.log (NOT TUI)
6
+ */
7
+ import * as fs from "fs";
8
+ // Debug log file
9
+ const DEBUG_LOG = "/tmp/intent-detector-debug.log";
10
+ function debugLog(label, data) {
11
+ const timestamp = new Date().toISOString();
12
+ const entry = `[${timestamp}] [${label}] ${data ? JSON.stringify(data, null, 2) : ""}\n`;
13
+ try {
14
+ fs.appendFileSync(DEBUG_LOG, entry);
15
+ }
16
+ catch {
17
+ // Silently fail
18
+ }
19
+ }
20
+ // REA Keywords - Reverse Engineering / App Analysis
21
+ const REA_KEYWORDS = [
22
+ // English
23
+ "reverse engineer",
24
+ "reverse engineering",
25
+ "rea",
26
+ "analyze binary",
27
+ "decompile",
28
+ "disassemble",
29
+ "inspect binary",
30
+ "understand how",
31
+ "replicate app",
32
+ "clone app",
33
+ "copy app",
34
+ "mimic app",
35
+ // Chinese (简体中文)
36
+ "逆向",
37
+ "逆向工程",
38
+ "反编译",
39
+ "分析二进制",
40
+ "克隆应用",
41
+ "复制应用",
42
+ "理解如何运作",
43
+ // Thai (ภาษาไทย)
44
+ "วิเคราะห์ย้อนกลับ",
45
+ "ย้อนวิศวกรรม",
46
+ "แกะโค้ด",
47
+ "ถอดรหัส",
48
+ "เข้าใจการทำงาน",
49
+ "คัดลอกแอป",
50
+ "โคลนแอป",
51
+ "ทำซ้ำแอป",
52
+ // Common patterns
53
+ "see a feature",
54
+ "understand.*binary",
55
+ ];
56
+ // File Copy Keywords
57
+ const FILE_COPY_KEYWORDS = [
58
+ // English
59
+ "mimic",
60
+ "clone",
61
+ "replicate",
62
+ "copy file",
63
+ "copy folder",
64
+ "copy from",
65
+ "migrate",
66
+ "deploy",
67
+ "sync to",
68
+ // Chinese
69
+ "克隆",
70
+ "复制",
71
+ "迁移",
72
+ // Thai
73
+ "คัดลอก",
74
+ "โคลน",
75
+ "ทำซ้ำ",
76
+ "ย้าย",
77
+ // Code patterns
78
+ "cp -r",
79
+ "sudo cp",
80
+ ];
81
+ // Code Review Keywords
82
+ const CODE_REVIEW_KEYWORDS = [
83
+ "review code",
84
+ "review this",
85
+ "audit",
86
+ "check for bugs",
87
+ "security audit",
88
+ "find vulnerabilities",
89
+ ];
90
+ // Security Keywords
91
+ const SECURITY_KEYWORDS = [
92
+ "security",
93
+ "vulnerability",
94
+ "exploit",
95
+ "attack",
96
+ "pentest",
97
+ "penetration test",
98
+ ];
99
+ /**
100
+ * Detect user intent from text using keyword matching
101
+ */
102
+ function keywordDetect(text) {
103
+ const lower = text.toLowerCase();
104
+ const matchedKeywords = [];
105
+ // Check REA keywords (highest priority for reverse engineering)
106
+ for (const keyword of REA_KEYWORDS) {
107
+ if (keyword.startsWith("^")) {
108
+ if (new RegExp(keyword, "i").test(text)) {
109
+ matchedKeywords.push(keyword);
110
+ }
111
+ }
112
+ else if (lower.includes(keyword.toLowerCase())) {
113
+ matchedKeywords.push(keyword);
114
+ }
115
+ }
116
+ if (matchedKeywords.length > 0) {
117
+ return { type: "rea", keywords: matchedKeywords };
118
+ }
119
+ // Check File Copy keywords
120
+ matchedKeywords.length = 0;
121
+ for (const keyword of FILE_COPY_KEYWORDS) {
122
+ if (lower.includes(keyword.toLowerCase())) {
123
+ matchedKeywords.push(keyword);
124
+ }
125
+ }
126
+ if (matchedKeywords.length > 0) {
127
+ return { type: "file_copy", keywords: matchedKeywords };
128
+ }
129
+ // Check Code Review keywords
130
+ matchedKeywords.length = 0;
131
+ for (const keyword of CODE_REVIEW_KEYWORDS) {
132
+ if (lower.includes(keyword.toLowerCase())) {
133
+ matchedKeywords.push(keyword);
134
+ }
135
+ }
136
+ if (matchedKeywords.length > 0) {
137
+ return { type: "code_review", keywords: matchedKeywords };
138
+ }
139
+ // Check Security keywords
140
+ matchedKeywords.length = 0;
141
+ for (const keyword of SECURITY_KEYWORDS) {
142
+ if (lower.includes(keyword.toLowerCase())) {
143
+ matchedKeywords.push(keyword);
144
+ }
145
+ }
146
+ if (matchedKeywords.length > 0) {
147
+ return { type: "security", keywords: matchedKeywords };
148
+ }
149
+ return { type: "general", keywords: [] };
150
+ }
151
+ /**
152
+ * Jev-based intent classifier for ambiguous cases
153
+ */
154
+ async function jevClassify(_text, baseIntent, keywords) {
155
+ // For clear cases (high keyword count), skip Jev
156
+ if (keywords.length >= 2) {
157
+ return {
158
+ confirmed: true,
159
+ confidence: Math.min(1, keywords.length * 0.3),
160
+ reasoning: `Strong keyword match: ${keywords.join(", ")}`,
161
+ };
162
+ }
163
+ // For ambiguous cases, use Jev judgment
164
+ if (baseIntent === "rea") {
165
+ return {
166
+ confirmed: keywords.length >= 1,
167
+ confidence: 0.5,
168
+ reasoning: "Single REA keyword detected - confirming with context",
169
+ };
170
+ }
171
+ if (baseIntent === "file_copy") {
172
+ return {
173
+ confirmed: keywords.length >= 1,
174
+ confidence: 0.5,
175
+ reasoning: "Single file copy keyword detected - confirming with context",
176
+ };
177
+ }
178
+ return {
179
+ confirmed: false,
180
+ confidence: 0,
181
+ reasoning: "No clear intent detected",
182
+ };
183
+ }
184
+ /**
185
+ * Detect user intent from text
186
+ */
187
+ async function detectIntent(text) {
188
+ // Step 1: Keyword-based detection
189
+ const { type, keywords } = keywordDetect(text);
190
+ // Step 2: Jev-based confirmation for ambiguous cases
191
+ const jevResult = await jevClassify(text, type, keywords);
192
+ if (!jevResult.confirmed) {
193
+ return {
194
+ type: "general",
195
+ confidence: 0,
196
+ keywords: [],
197
+ module: "default",
198
+ };
199
+ }
200
+ // Step 3: Build result based on confirmed intent
201
+ const confidence = jevResult.confidence || Math.min(1, keywords.length * 0.3);
202
+ if (type === "rea") {
203
+ return {
204
+ type: "rea",
205
+ confidence,
206
+ keywords,
207
+ module: "@pi-harness/rea",
208
+ guidance: "REA: Use Hopper/Ghidra/IDA for binary analysis. Check https://github.com/morluto/rea",
209
+ };
210
+ }
211
+ if (type === "file_copy") {
212
+ return {
213
+ type: "file_copy",
214
+ confidence,
215
+ keywords,
216
+ module: "@pi-harness/file-copy-helper",
217
+ guidance: "COPY: Use sudo cp instead of reading files first",
218
+ };
219
+ }
220
+ if (type === "code_review") {
221
+ return {
222
+ type: "code_review",
223
+ confidence,
224
+ keywords,
225
+ module: "@pi-harness/code-review",
226
+ };
227
+ }
228
+ if (type === "security") {
229
+ return {
230
+ type: "security",
231
+ confidence,
232
+ keywords,
233
+ module: "@pi-harness/security-auditor",
234
+ };
235
+ }
236
+ return {
237
+ type: "general",
238
+ confidence: 0,
239
+ keywords: [],
240
+ module: "default",
241
+ };
242
+ }
243
+ /**
244
+ * Get REA knowledge base reference
245
+ */
246
+ function getREAKnowledge() {
247
+ return `
248
+ ## REA Integration - Reverse Engineering
249
+
250
+ When user requests reverse engineering or app analysis:
251
+
252
+ 1. **Check REA capabilities**: https://github.com/morluto/rea
253
+
254
+ 2. **Analysis Providers Available**:
255
+ - Hopper Disassembler (macOS native)
256
+ - Ghidra (cross-platform)
257
+ - IDA Pro (commercial)
258
+ - Pwntools (ELF/binary analysis)
259
+ - Browser CDP (web app inspection)
260
+ - Android APK (JADX decompilation)
261
+
262
+ 3. **Key REA Workflow**:
263
+ - Setup REA MCP server with agent
264
+ - Agent asks "analyze this binary"
265
+ - REA routes to appropriate provider
266
+ - Evidence recorded to InvestigationRecords
267
+ - Agent summarizes findings
268
+
269
+ 4. **No binary?** Use browser inspection:
270
+ - CDP for web apps
271
+ - Source maps for JS
272
+ - AST analysis for bundles
273
+ `;
274
+ }
275
+ /**
276
+ * Get file copy guidance
277
+ */
278
+ function getFileCopyGuidance() {
279
+ return `
280
+ ## File Copy - Use sudo cp
281
+
282
+ When user asks to mimic/clone/copy files:
283
+
284
+ 1. **DO NOT read source files** - just copy directly
285
+ 2. **Use sudo cp** - preserves permissions
286
+ 3. **Copy recursively** with -r for folders
287
+
288
+ Examples:
289
+ \`\`\`bash
290
+ sudo cp /source/file.ts /dest/file.ts
291
+ sudo cp -r /source/folder/ /dest/folder/
292
+ \`\`\`
293
+
294
+ **STOP**: No read/cat/expand needed. Copy preserves everything.
295
+ `;
296
+ }
297
+ /**
298
+ * Register the intent detector extension
299
+ */
300
+ export function registerIntentDetector(pi) {
301
+ // Clear debug log on startup
302
+ fs.writeFileSync(DEBUG_LOG, `[${new Date().toISOString()}] === INTENT DETECTOR STARTED ===\n`);
303
+ debugLog("INIT", "Intent detector registered");
304
+ // Listen to input events
305
+ pi.on("input", async (event) => {
306
+ // Only process user input
307
+ if (event.source !== "interactive") {
308
+ return;
309
+ }
310
+ const text = event.text.trim();
311
+ if (!text || text.length < 5) {
312
+ return;
313
+ }
314
+ // Detect intent with Jev classification
315
+ const intent = await detectIntent(text);
316
+ debugLog("DETECTED", intent);
317
+ // If high confidence, inject guidance
318
+ if (intent.confidence >= 0.5 && intent.type !== "general") {
319
+ let guidance = "";
320
+ if (intent.type === "rea") {
321
+ guidance = getREAKnowledge();
322
+ }
323
+ else if (intent.type === "file_copy") {
324
+ guidance = getFileCopyGuidance();
325
+ }
326
+ if (guidance) {
327
+ debugLog("INJECT_GUIDANCE", { type: intent.type, confidence: intent.confidence });
328
+ return {
329
+ action: "transform",
330
+ text: text + guidance,
331
+ };
332
+ }
333
+ }
334
+ return;
335
+ });
336
+ // Broadcast intent for other modules
337
+ pi.on("input", async (event) => {
338
+ if (event.source !== "interactive")
339
+ return;
340
+ const intent = await detectIntent(event.text);
341
+ debugLog("BROADCAST_INTENT", intent);
342
+ });
343
+ }
344
+ // Default export
345
+ export default function intentDetectorExtension(pi) {
346
+ registerIntentDetector(pi);
347
+ }
348
+ //# sourceMappingURL=intent-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-detector.js","sourceRoot":"","sources":["../src/intent-detector.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moocoding/file-copy-helper",
3
- "version": "1.1.397",
3
+ "version": "1.1.402",
4
4
  "description": "Injects cp/sudo cp rule when user asks to mimic/copy files",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/framework-detector",
3
- "version": "1.1.397",
3
+ "version": "1.1.402",
4
4
  "description": "Framework detection system for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/framework-plugin-sdk",
3
- "version": "1.1.397",
3
+ "version": "1.1.402",
4
4
  "description": "Framework plugin SDK for pi-harness-runtime",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/frappe-plugin",
3
- "version": "1.1.397",
3
+ "version": "1.1.402",
4
4
  "description": "Frappe/ERPNext framework analysis — DocTypes, hooks, bench sites, site config",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/generic-web-plugin",
3
- "version": "1.1.397",
3
+ "version": "1.1.402",
4
4
  "description": "Generic web framework analysis — REST/GraphQL endpoints, OpenAPI, auth",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/health-monitor",
3
- "version": "1.1.397",
3
+ "version": "1.1.402",
4
4
  "type": "module",
5
5
  "description": "Health monitoring and auto-healing",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi/intent-analyzer",
3
- "version": "1.1.397",
3
+ "version": "1.1.402",
4
4
  "type": "module",
5
5
  "main": "src/index.ts",
6
6
  "exports": {
@@ -19,12 +19,147 @@ export interface TaskState {
19
19
  userResponded: boolean;
20
20
  lastUserActivity?: Date;
21
21
  sessionStartTime: Date;
22
+ /** The bounded decision context (question, risk, task state). */
23
+ context?: DecisionContext;
22
24
  }
25
+ /**
26
+ * The typed outcome of a decision.
27
+ *
28
+ * It is not the same shape as a human answer: an autonomous decision is
29
+ * never reported as a user "yes".
30
+ */
31
+ export type DecisionOutcome = "approve" | "reject" | "wait" | "proceed_with_caution";
32
+ /**
33
+ * The pending question Jev has to decide about.
34
+ *
35
+ * Without it Jev can only see progress, not what the agent asked permission
36
+ * to do.
37
+ */
38
+ export interface PendingQuestionContext {
39
+ /** The canonical request ID. */
40
+ requestId: string;
41
+ /** The complete question text. */
42
+ text: string;
43
+ /** The detected kind of the question. */
44
+ kind: "routine" | "approval" | "clarification" | "explicit";
45
+ /** The exact action the agent proposes. */
46
+ proposedAction?: string;
47
+ /** What happens when the question is approved. */
48
+ consequence?: string;
49
+ /** Does the action need an explicit human authorization? */
50
+ requiresExplicitAuthorization?: boolean;
51
+ /** Does the action destroy or overwrite something? */
52
+ destructive?: boolean;
53
+ /** Does the action leave the machine (network, mail, deploy)? */
54
+ external?: boolean;
55
+ /** Can the action be undone? */
56
+ reversible?: boolean;
57
+ }
58
+ /**
59
+ * The bounded context of a decision.
60
+ *
61
+ * Everything is bounded on purpose: an unbounded todo transcript makes the
62
+ * evaluation input large and expensive without making it better.
63
+ */
64
+ export interface DecisionContext {
65
+ question?: PendingQuestionContext;
66
+ /** The task the session is working on right now. */
67
+ currentTask?: string;
68
+ /** 0..1 */
69
+ completionRatio?: number;
70
+ totalTasks?: number;
71
+ completedTasks?: number;
72
+ /** What blocks the work. */
73
+ blockers?: string[];
74
+ /** The next relevant tasks. */
75
+ nextTasks?: string[];
76
+ /** The state of the last validation run. */
77
+ validationStatus?: string;
78
+ /** How long the question is already waiting. */
79
+ waitedMinutes?: number;
80
+ /** When the decision has to be made. */
81
+ deadlineMinutes?: number;
82
+ /** When the user was last active. */
83
+ lastUserActivity?: Date;
84
+ }
85
+ /** How many task titles reach the evaluation. */
86
+ export declare const MAX_LISTED_TASKS = 10;
87
+ /** How much of the question text reaches the evaluation. */
88
+ export declare const MAX_QUESTION_CHARS = 2000;
89
+ /**
90
+ * The deterministic part of a decision.
91
+ *
92
+ * Jev proposes an outcome, this function decides what is actually allowed.
93
+ * The rules live in code and not in a prompt: a clarification is never
94
+ * turned into an approval of a guessed interpretation, and an action that
95
+ * needs an explicit human authorization or that cannot be undone is never
96
+ * approved autonomously.
97
+ */
98
+ export interface DecisionPolicyResult {
99
+ outcome: DecisionOutcome;
100
+ /** The rule that changed the outcome, when one did. */
101
+ appliedRule?: string;
102
+ reason: string;
103
+ }
104
+ export interface DecisionPolicyOptions {
105
+ /** The confidence an autonomous approval needs. */
106
+ confidenceThreshold?: number;
107
+ /** The confidence of the proposed outcome. */
108
+ confidence?: number;
109
+ }
110
+ /**
111
+ * Is the value a known outcome?
112
+ *
113
+ * The evaluation returns the outcome as a free-text choice: an unknown
114
+ * value is ignored instead of being guessed.
115
+ */
116
+ export declare function isDecisionOutcome(value: unknown): value is DecisionOutcome;
117
+ /**
118
+ * Combine the threshold outcome with the structured outcome of the
119
+ * evaluation.
120
+ *
121
+ * The evaluation may only tighten the decision: a rejection stays a
122
+ * rejection, a wait stays a wait, and an approval never beats the
123
+ * thresholds.
124
+ */
125
+ export declare function tightenOutcome(thresholdOutcome: DecisionOutcome, proposed: DecisionOutcome | undefined): DecisionOutcome;
126
+ /**
127
+ * Are the risk facts of the proposed action unknown?
128
+ *
129
+ * A question without a kind and without a single known risk fact cannot be
130
+ * judged: the policy waits for the human instead of continuing on a guess.
131
+ */
132
+ export declare function hasUnknownRiskFacts(question: PendingQuestionContext): boolean;
133
+ export declare function applyDecisionPolicy(proposed: DecisionOutcome, context: DecisionContext | undefined, options?: DecisionPolicyOptions): DecisionPolicyResult;
134
+ /**
135
+ * What the runtime does with a Jev outcome.
136
+ *
137
+ * - `continue`: the work resumes with a steer to the agent.
138
+ * - `pause`: the work stops and waits for a human.
139
+ * - `discard`: the decision was stale and must not change anything.
140
+ * - `wait`: the question stays open for a later decision.
141
+ */
142
+ export type OutcomeApplication = "continue" | "pause" | "discard" | "wait";
143
+ /**
144
+ * Decide what a Jev outcome means for the running work.
145
+ *
146
+ * `requestClosed` tells whether the pending question was still open and
147
+ * could be closed with the Jev decision. A closed question is the only
148
+ * proof that nobody answered in the meantime: when the request was already
149
+ * answered by a human the Jev decision is stale, and a stale decision must
150
+ * never continue the work.
151
+ *
152
+ * The rule is deterministic: only a successfully closed request may continue
153
+ * or pause the work, and a rejection never continues it.
154
+ */
155
+ export declare function decideOutcomeApplication(outcome: DecisionOutcome, requestClosed: boolean): OutcomeApplication;
23
156
  /**
24
157
  * Auto-continue decision
25
158
  */
26
159
  export interface AutoContinueDecision {
27
- action: "proceed" | "wait" | "proceed_with_caution";
160
+ action: "proceed" | "wait" | "proceed_with_caution" | "reject";
161
+ /** The typed outcome after the policy was applied. */
162
+ outcome: DecisionOutcome;
28
163
  probability: number;
29
164
  riskLevel: "minimal" | "low" | "medium" | "high" | "critical";
30
165
  reasoning: string;
@@ -32,6 +167,8 @@ export interface AutoContinueDecision {
32
167
  estimatedImpact: "minimal" | "moderate" | "significant" | "major";
33
168
  confidence: "high" | "medium" | "low";
34
169
  waitRecommendation?: number;
170
+ /** The policy rule that changed the outcome, when one did. */
171
+ policyApplied?: string;
35
172
  }
36
173
  /**
37
174
  * Auto-Continue Judge configuration
@@ -60,6 +197,13 @@ export declare class AutoContinueJudge {
60
197
  * Judge whether to continue or wait
61
198
  */
62
199
  decide(taskState: TaskState): Promise<AutoContinueDecision>;
200
+ /**
201
+ * Apply the deterministic policy to a proposed decision.
202
+ *
203
+ * The policy is code, not a prompt: it decides what is actually allowed,
204
+ * and it records which rule changed the outcome.
205
+ */
206
+ private applyPolicy;
63
207
  /**
64
208
  * Quick decision - simple yes/no to proceed
65
209
  */
@@ -85,8 +229,23 @@ export declare class AutoContinueJudge {
85
229
  */
86
230
  private fallbackDecision;
87
231
  }
232
+ /**
233
+ * Is the question old enough for an autonomous decision?
234
+ *
235
+ * The threshold belongs to the caller: the judge is only asked once the
236
+ * question waited long enough.
237
+ */
238
+ export declare function isEligibleForDecision(waitedMinutes: number, minWaitMinutes: number): boolean;
239
+ /**
240
+ * The bounded evaluation input of a decision.
241
+ *
242
+ * It carries the question Jev has to decide about, the risk of the proposed
243
+ * action and the relevant task state - and nothing that grows without a
244
+ * bound.
245
+ */
246
+ export declare function buildDecisionState(taskState: TaskState): Record<string, unknown>;
88
247
  /**
89
248
  * Helper: Create task state from todo list
90
249
  */
91
- export declare function createTaskState(completedTasks: string[], remainingTasks: string[], lastUserActivity?: Date, sessionStartTime?: Date): TaskState;
250
+ export declare function createTaskState(completedTasks: string[], remainingTasks: string[], lastUserActivity?: Date, sessionStartTime?: Date, context?: DecisionContext): TaskState;
92
251
  //# sourceMappingURL=auto-continue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto-continue.d.ts","sourceRoot":"","sources":["../src/auto-continue.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAuB,MAAM,YAAY,CAAC;AAGtE;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,IAAI,CAAC;IACxB,gBAAgB,EAAE,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,sBAAsB,CAAC;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAChD,eAAe,EAAE,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,OAAO,CAAC;IAClE,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,cAAc,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,sBAAsB,CAAC;CAC9D;AAYD;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,MAAM,CAA+B;IAE7C,YAAY,MAAM,EAAE,kBAAkB,EAOrC;IAED;;OAEG;IACG,MAAM,CACV,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,oBAAoB,CAAC,CAuE/B;IAED;;OAEG;IACG,cAAc,CAClB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC;QAAE,cAAc,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAQ/E;IAED;;OAEG;IACH,OAAO,CAAC,UAAU;IA2BlB;;OAEG;IACH,OAAO,CAAC,aAAa;IAmErB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CA4BzB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,cAAc,EAAE,MAAM,EAAE,EACxB,cAAc,EAAE,MAAM,EAAE,EACxB,gBAAgB,CAAC,EAAE,IAAI,EACvB,gBAAgB,CAAC,EAAE,IAAI,GACtB,SAAS,CAcX"}
1
+ {"version":3,"file":"auto-continue.d.ts","sourceRoot":"","sources":["../src/auto-continue.ts"],"names":[],"mappings":"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"}