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,15 @@
1
+ /**
2
+ * file-copy-helper extension (DEBUG VERSION)
3
+ *
4
+ * Injects "use cp instead of writing from scratch" reminder when user
5
+ * asks to mimic, copy, clone, or replicate files/folders between locations.
6
+ *
7
+ * DEBUG: All events and rule evaluations logged to /tmp/file-copy-helper-debug.log
8
+ */
9
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
10
+ /**
11
+ * Register the file-copy-helper extension
12
+ */
13
+ export declare function registerFileCopyHelper(pi: ExtensionAPI): void;
14
+ export default function fileCopyHelperExtension(pi: ExtensionAPI): void;
15
+ //# sourceMappingURL=extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACX,YAAY,EAGZ,MAAM,iCAAiC,CAAC;AAwKzC;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAmF7D;AAGD,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAEtE"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * file-copy-helper extension (DEBUG VERSION)
3
+ *
4
+ * Injects "use cp instead of writing from scratch" reminder when user
5
+ * asks to mimic, copy, clone, or replicate files/folders between locations.
6
+ *
7
+ * DEBUG: All events and rule evaluations logged to /tmp/file-copy-helper-debug.log
8
+ */
9
+ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
10
+ /**
11
+ * Register the file-copy-helper extension
12
+ */
13
+ export declare function registerFileCopyHelper(pi: ExtensionAPI): void;
14
+ export default function fileCopyHelperExtension(pi: ExtensionAPI): void;
15
+ //# sourceMappingURL=extension.debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.debug.d.ts","sourceRoot":"","sources":["../src/extension.debug.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACX,YAAY,EAGZ,MAAM,iCAAiC,CAAC;AAmKzC;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAkF7D;AAGD,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAEtE"}
@@ -0,0 +1,215 @@
1
+ /**
2
+ * file-copy-helper extension (DEBUG VERSION)
3
+ *
4
+ * Injects "use cp instead of writing from scratch" reminder when user
5
+ * asks to mimic, copy, clone, or replicate files/folders between locations.
6
+ *
7
+ * DEBUG: All events and rule evaluations logged to /tmp/file-copy-helper-debug.log
8
+ */
9
+ import * as fs from "fs";
10
+ // DEBUG: Write to file instead of TUI
11
+ const DEBUG_LOG = "/tmp/file-copy-helper-debug.log";
12
+ function debugLog(label, data) {
13
+ const timestamp = new Date().toISOString();
14
+ const entry = `[${timestamp}] ${label}: ${JSON.stringify(data, null, 2)}\n`;
15
+ fs.appendFileSync(DEBUG_LOG, entry);
16
+ }
17
+ // Keywords that trigger the copy rule injection
18
+ // MUST have explicit mimic/copy/clone/replicate intent + source/dest context
19
+ const COPY_KEYWORDS = ["mimic", "replicate", "clone"];
20
+ // Must have destination context to trigger (avoids false positives)
21
+ const COPY_DEST_CONTEXT = ["to ", "into ", "/dest/", "/target/", "over to"];
22
+ // Must have source context to trigger
23
+ const COPY_SOURCE_CONTEXT = ["from ", "source", "/source/", "orig"];
24
+ // When agent sees import/module errors (needs to copy those files too)
25
+ // MUST have: import/module error context + copy/deploy context
26
+ const IMPORT_ERROR_TRIGGERS = [
27
+ // Import error indicators (must have these)
28
+ "cannot find module",
29
+ "cannot resolve module",
30
+ "module not found",
31
+ "missing import",
32
+ ];
33
+ // Copy/deploy context indicators (must have at least one)
34
+ const COPY_CONTEXT = [
35
+ "sudo cp",
36
+ "copy.*to",
37
+ "deploy",
38
+ "sync",
39
+ "after copying",
40
+ "after deploy",
41
+ "after sync",
42
+ ];
43
+ // Extract source and destination from user request
44
+ const COPY_RULE = `
45
+ ## COPY FILES DIRECTLY (CRITICAL)
46
+
47
+ When asked to mimic, copy, clone, or replicate files:
48
+
49
+ 1. **DO NOT read the source files** - just copy them directly
50
+ 2. **Run \`sudo cp\` immediately** - no reading needed
51
+ 3. **If files have different owners**, use sudo
52
+
53
+ Examples:
54
+ \`\`\`bash
55
+ # Copy single file
56
+ sudo cp /source/file.ts /dest/file.ts
57
+
58
+ # Copy entire folder
59
+ sudo cp -r /source/folder/ /dest/folder/
60
+
61
+ # Copy matching pattern
62
+ sudo cp /source/*.tsx /dest/
63
+ \`\`\`
64
+
65
+ **STOP**: Do NOT use \`read\`, \`expand\`, or \`cat\` on source files. Just copy.
66
+
67
+ **Why**: Reading wastes time. The source files are complete - copying preserves everything exactly.
68
+ `;
69
+ // When agent sees import errors - copy those files too!
70
+ const IMPORT_ERROR_RULE = `
71
+ ## IMPORT ERRORS? COPY THOSE FILES TOO!
72
+
73
+ When you see import/module errors after copying a file:
74
+
75
+ 1. **STOP fixing imports one by one**
76
+ 2. **STOP rolling back**
77
+ 3. **LIST all missing import files** for the user
78
+ 4. **Ask user which to copy**, then copy them via sudo cp
79
+
80
+ Example:
81
+ \`\`\`bash
82
+ # If error shows missing:
83
+ # - @repo/auth/server
84
+ # - @repo/design-system/components/ui/sidebar
85
+ # - ./components/notifications-provider
86
+
87
+ # Then copy these files the same way:
88
+ sudo cp /source/path/@repo/auth/server.ts /dest/path/@repo/auth/server.ts
89
+ sudo cp -r /source/path/@repo/design-system/components/ui/sidebar /dest/path/@repo/design-system/components/ui/sidebar
90
+ sudo cp /source/path/components/notifications-provider.tsx /dest/path/components/notifications-provider.tsx
91
+ \`\`\`
92
+
93
+ **NEVER fix imports one by one** - copy the missing files instead!
94
+ **NEVER roll back** - keep the copied file and copy its dependencies!
95
+ `;
96
+ /**
97
+ * Check if text contains copy-related keywords
98
+ * Requires: explicit intent (mimic/copy/clone/replicate) AND destination context
99
+ */
100
+ function shouldInjectCopyRule(text) {
101
+ const lower = text.toLowerCase();
102
+ // Must have explicit mimic/copy/clone/replicate intent
103
+ const hasIntent = COPY_KEYWORDS.some((keyword) => lower.includes(keyword));
104
+ if (!hasIntent) {
105
+ return {
106
+ triggered: false,
107
+ reason: `No intent keyword found. Keywords: ${COPY_KEYWORDS.join(", ")}`,
108
+ };
109
+ }
110
+ // Must have destination context (avoids false positives on "copy this code" etc)
111
+ const hasDest = COPY_DEST_CONTEXT.some((ctx) => lower.includes(ctx));
112
+ if (!hasDest) {
113
+ return {
114
+ triggered: false,
115
+ reason: `No destination context found. Dest contexts: ${COPY_DEST_CONTEXT.join(", ")}`,
116
+ };
117
+ }
118
+ // Should have source context for full mimic behavior
119
+ const hasSource = COPY_SOURCE_CONTEXT.some((ctx) => lower.includes(ctx));
120
+ if (!hasSource) {
121
+ return {
122
+ triggered: false,
123
+ reason: `No source context found. Source contexts: ${COPY_SOURCE_CONTEXT.join(", ")}`,
124
+ };
125
+ }
126
+ return {
127
+ triggered: true,
128
+ reason: `All conditions met: hasIntent=${hasIntent}, hasDest=${hasDest}, hasSource=${hasSource}`,
129
+ };
130
+ }
131
+ /**
132
+ * Check if text contains import error triggers
133
+ */
134
+ function shouldInjectImportErrorRule(text) {
135
+ const lower = text.toLowerCase();
136
+ const matchingTriggers = IMPORT_ERROR_TRIGGERS.filter((t) => lower.includes(t));
137
+ if (matchingTriggers.length === 0) {
138
+ return { triggered: false, reason: "No import error triggers found" };
139
+ }
140
+ return {
141
+ triggered: true,
142
+ reason: `Matched triggers: ${matchingTriggers.join(", ")}`,
143
+ };
144
+ }
145
+ /**
146
+ * Register the file-copy-helper extension
147
+ */
148
+ export function registerFileCopyHelper(pi) {
149
+ // Clear debug log on startup
150
+ fs.writeFileSync(DEBUG_LOG, `[${new Date().toISOString()}] === DEBUG SESSION STARTED ===\n`);
151
+ pi.on("input", (event) => {
152
+ // DEBUG: Log what we receive
153
+ debugLog("INPUT_EVENT", {
154
+ source: event.source,
155
+ textLength: event.text?.length,
156
+ textPreview: event.text?.substring(0, 200),
157
+ fullText: event.text,
158
+ });
159
+ // Only process user input (not from extensions or RPC)
160
+ if (event.source !== "interactive") {
161
+ debugLog("SKIP", "not interactive input - skipping");
162
+ return;
163
+ }
164
+ const text = event.text.trim();
165
+ debugLog("PROCESSING_TEXT", {
166
+ text,
167
+ length: text.length,
168
+ hasMinLength: text.length >= 10,
169
+ });
170
+ if (!text || text.length < 10) {
171
+ debugLog("SKIP", "text too short (< 10 chars)");
172
+ return;
173
+ }
174
+ // Check if this is a copy/mimic request
175
+ const copyCheck = shouldInjectCopyRule(text);
176
+ debugLog("COPY_RULE_CHECK", {
177
+ triggered: copyCheck.triggered,
178
+ reason: copyCheck.reason,
179
+ matchingKeywords: COPY_KEYWORDS.filter((k) => text.toLowerCase().includes(k)),
180
+ matchingDest: COPY_DEST_CONTEXT.filter((ctx) => text.toLowerCase().includes(ctx)),
181
+ matchingSource: COPY_SOURCE_CONTEXT.filter((ctx) => text.toLowerCase().includes(ctx)),
182
+ });
183
+ if (copyCheck.triggered) {
184
+ debugLog("INJECT", { rule: "COPY_RULE", reason: copyCheck.reason });
185
+ return {
186
+ action: "transform",
187
+ text: text + COPY_RULE,
188
+ };
189
+ }
190
+ // Inject import error rule when agent sees missing imports
191
+ const importCheck = shouldInjectImportErrorRule(text);
192
+ debugLog("IMPORT_ERROR_CHECK", {
193
+ triggered: importCheck.triggered,
194
+ reason: importCheck.reason,
195
+ matchingTriggers: IMPORT_ERROR_TRIGGERS.filter((t) => text.toLowerCase().includes(t)),
196
+ });
197
+ if (importCheck.triggered) {
198
+ debugLog("INJECT", {
199
+ rule: "IMPORT_ERROR_RULE",
200
+ reason: importCheck.reason,
201
+ });
202
+ return {
203
+ action: "transform",
204
+ text: text + IMPORT_ERROR_RULE,
205
+ };
206
+ }
207
+ debugLog("NO_INJECTION", "no rule matched - passing through");
208
+ return;
209
+ });
210
+ }
211
+ // Default export for pi extension loading
212
+ export default function fileCopyHelperExtension(pi) {
213
+ registerFileCopyHelper(pi);
214
+ }
215
+ //# sourceMappingURL=extension.debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.debug.js","sourceRoot":"","sources":["../src/extension.debug.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,sCAAsC;AACtC,MAAM,SAAS,GAAG,iCAAiC,CAAC;AAEpD,SAAS,QAAQ,CAAC,KAAa,EAAE,IAAa;IAC7C,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,SAAS,KAAK,KAAK,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IAC5E,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,gDAAgD;AAChD,6EAA6E;AAC7E,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAEtD,oEAAoE;AACpE,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AAE5E,sCAAsC;AACtC,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAEpE,uEAAuE;AACvE,+DAA+D;AAC/D,MAAM,qBAAqB,GAAG;IAC7B,4CAA4C;IAC5C,oBAAoB;IACpB,uBAAuB;IACvB,kBAAkB;IAClB,gBAAgB;CAChB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,YAAY,GAAG;IACpB,SAAS;IACT,UAAU;IACV,QAAQ;IACR,MAAM;IACN,eAAe;IACf,cAAc;IACd,YAAY;CACZ,CAAC;AAEF,mDAAmD;AACnD,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBjB,CAAC;AAEF,wDAAwD;AACxD,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBzB,CAAC;AAEF;;;GAGG;AACH,SAAS,oBAAoB,CAAC,IAAY;IAIzC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAEjC,uDAAuD;IACvD,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO;YACN,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,sCAAsC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACxE,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO;YACN,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,gDAAgD,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACtF,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO;YACN,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,6CAA6C,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACrF,CAAC;IACH,CAAC;IAED,OAAO;QACN,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,iCAAiC,SAAS,aAAa,OAAO,eAAe,SAAS,EAAE;KAChG,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,2BAA2B,CAAC,IAAY;IAIhD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3D,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CACjB,CAAC;IAEF,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,gCAAgC,EAAE,CAAC;IACvE,CAAC;IAED,OAAO;QACN,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,qBAAqB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;KAC1D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,EAAgB;IACtD,6BAA6B;IAC7B,EAAE,CAAC,aAAa,CACf,SAAS,EACT,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,mCAAmC,CAC/D,CAAC;IAEF,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAiB,EAAgC,EAAE;QAClE,6BAA6B;QAC7B,QAAQ,CAAC,aAAa,EAAE;YACvB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM;YAC9B,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;YAC1C,QAAQ,EAAE,KAAK,CAAC,IAAI;SACpB,CAAC,CAAC;QAEH,uDAAuD;QACvD,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YACpC,QAAQ,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;YACrD,OAAO;QACR,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,QAAQ,CAAC,iBAAiB,EAAE;YAC3B,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;SAC/B,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC/B,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;YAChD,OAAO;QACR,CAAC;QAED,wCAAwC;QACxC,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC7C,QAAQ,CAAC,iBAAiB,EAAE;YAC3B,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,gBAAgB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5C,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC9B;YACD,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9C,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAChC;YACD,cAAc,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAClD,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAChC;SACD,CAAC,CAAC;QAEH,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YACzB,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;YACpE,OAAO;gBACN,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE,IAAI,GAAG,SAAS;aACtB,CAAC;QACH,CAAC;QAED,2DAA2D;QAC3D,MAAM,WAAW,GAAG,2BAA2B,CAAC,IAAI,CAAC,CAAC;QACtD,QAAQ,CAAC,oBAAoB,EAAE;YAC9B,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,gBAAgB,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACpD,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC9B;SACD,CAAC,CAAC;QAEH,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;YAC3B,QAAQ,CAAC,QAAQ,EAAE;gBAClB,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,WAAW,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,OAAO;gBACN,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE,IAAI,GAAG,iBAAiB;aAC9B,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,cAAc,EAAE,mCAAmC,CAAC,CAAC;QAC9D,OAAO;IACR,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,0CAA0C;AAC1C,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAAgB;IAC/D,sBAAsB,CAAC,EAAE,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,222 @@
1
+ /**
2
+ * file-copy-helper extension (DEBUG VERSION)
3
+ *
4
+ * Injects "use cp instead of writing from scratch" reminder when user
5
+ * asks to mimic, copy, clone, or replicate files/folders between locations.
6
+ *
7
+ * DEBUG: All events and rule evaluations logged to /tmp/file-copy-helper-debug.log
8
+ */
9
+ import * as fs from "fs";
10
+ // DEBUG: Write to file instead of TUI
11
+ const DEBUG_LOG = "/tmp/file-copy-helper-debug.log";
12
+ function debugLog(label, data) {
13
+ const timestamp = new Date().toISOString();
14
+ const entry = `[${timestamp}] ${label}: ${JSON.stringify(data, null, 2)}\n`;
15
+ fs.appendFileSync(DEBUG_LOG, entry);
16
+ }
17
+ // Keywords that trigger the copy rule injection
18
+ // MUST have explicit mimic/copy/clone/replicate intent + source/dest context
19
+ const COPY_KEYWORDS = ["mimic", "replicate", "clone"];
20
+ // Must have destination context to trigger (avoids false positives)
21
+ const COPY_DEST_CONTEXT = ["to ", "into ", "/dest/", "/target/", "over to"];
22
+ // Must have source context to trigger
23
+ const COPY_SOURCE_CONTEXT = ["from ", "source", "/source/", "orig"];
24
+ // When agent sees import/module errors (needs to copy those files too)
25
+ // MUST have: import/module error context + copy/deploy context
26
+ const IMPORT_ERROR_TRIGGERS = [
27
+ // Import error indicators (must have these)
28
+ "cannot find module",
29
+ "cannot resolve module",
30
+ "module not found",
31
+ "missing import",
32
+ ];
33
+ // Copy/deploy context indicators (must have at least one)
34
+ // Only explicit copy/mimic/deploy commands — NOT generic words like "sync"
35
+ const COPY_CONTEXT = [
36
+ "sudo cp",
37
+ " cp ",
38
+ " cp\t",
39
+ "\bcp\s+-r",
40
+ "\bmimic\b",
41
+ "\bclone\b",
42
+ "\breplicate\b",
43
+ "\bdeploy\b",
44
+ ];
45
+ // Extract source and destination from user request
46
+ const COPY_RULE = `
47
+ ## COPY FILES DIRECTLY (CRITICAL)
48
+
49
+ When asked to mimic, copy, clone, or replicate files:
50
+
51
+ 1. **DO NOT read the source files** - just copy them directly
52
+ 2. **Run \`sudo cp\` immediately** - no reading needed
53
+ 3. **If files have different owners**, use sudo
54
+
55
+ Examples:
56
+ \`\`\`bash
57
+ # Copy single file
58
+ sudo cp /source/file.ts /dest/file.ts
59
+
60
+ # Copy entire folder
61
+ sudo cp -r /source/folder/ /dest/folder/
62
+
63
+ # Copy matching pattern
64
+ sudo cp /source/*.tsx /dest/
65
+ \`\`\`
66
+
67
+ **STOP**: Do NOT use \`read\`, \`expand\`, or \`cat\` on source files. Just copy.
68
+
69
+ **Why**: Reading wastes time. The source files are complete - copying preserves everything exactly.
70
+ `;
71
+ // When agent sees import errors - copy those files too!
72
+ const IMPORT_ERROR_RULE = `
73
+ ## IMPORT ERRORS? COPY THOSE FILES TOO!
74
+
75
+ When you see import/module errors after copying a file:
76
+
77
+ 1. **STOP fixing imports one by one**
78
+ 2. **STOP rolling back**
79
+ 3. **LIST all missing import files** for the user
80
+ 4. **Ask user which to copy**, then copy them via sudo cp
81
+
82
+ Example:
83
+ \`\`\`bash
84
+ # If error shows missing:
85
+ # - @repo/auth/server
86
+ # - @repo/design-system/components/ui/sidebar
87
+ # - ./components/notifications-provider
88
+
89
+ # Then copy these files the same way:
90
+ sudo cp /source/path/@repo/auth/server.ts /dest/path/@repo/auth/server.ts
91
+ sudo cp -r /source/path/@repo/design-system/components/ui/sidebar /dest/path/@repo/design-system/components/ui/sidebar
92
+ sudo cp /source/path/components/notifications-provider.tsx /dest/path/components/notifications-provider.tsx
93
+ \`\`\`
94
+
95
+ **NEVER fix imports one by one** - copy the missing files instead!
96
+ **NEVER roll back** - keep the copied file and copy its dependencies!
97
+ `;
98
+ /**
99
+ * Check if text contains copy-related keywords
100
+ * Requires: explicit intent (mimic/copy/clone/replicate) AND destination context
101
+ */
102
+ function shouldInjectCopyRule(text) {
103
+ const lower = text.toLowerCase();
104
+ // Must have explicit mimic/copy/clone/replicate intent
105
+ const hasIntent = COPY_KEYWORDS.some((keyword) => lower.includes(keyword));
106
+ if (!hasIntent) {
107
+ return {
108
+ triggered: false,
109
+ reason: `No intent keyword found. Keywords: ${COPY_KEYWORDS.join(", ")}`,
110
+ };
111
+ }
112
+ // Must have destination context (avoids false positives on "copy this code" etc)
113
+ const hasDest = COPY_DEST_CONTEXT.some((ctx) => lower.includes(ctx));
114
+ if (!hasDest) {
115
+ return {
116
+ triggered: false,
117
+ reason: `No destination context found. Dest contexts: ${COPY_DEST_CONTEXT.join(", ")}`,
118
+ };
119
+ }
120
+ // Should have source context for full mimic behavior
121
+ const hasSource = COPY_SOURCE_CONTEXT.some((ctx) => lower.includes(ctx));
122
+ if (!hasSource) {
123
+ return {
124
+ triggered: false,
125
+ reason: `No source context found. Source contexts: ${COPY_SOURCE_CONTEXT.join(", ")}`,
126
+ };
127
+ }
128
+ return {
129
+ triggered: true,
130
+ reason: `All conditions met: hasIntent=${hasIntent}, hasDest=${hasDest}, hasSource=${hasSource}`,
131
+ };
132
+ }
133
+ /**
134
+ * Check if text contains import error triggers
135
+ * Requires BOTH: import error context + copy/mimic intent
136
+ */
137
+ function shouldInjectImportErrorRule(text) {
138
+ const lower = text.toLowerCase();
139
+ // Must have import error context
140
+ const hasImportError = IMPORT_ERROR_TRIGGERS.some((t) => lower.includes(t));
141
+ if (!hasImportError) {
142
+ return { triggered: false, reason: "No import error triggers found" };
143
+ }
144
+ // Must have explicit copy/mimic/deploy intent — NOT generic "sync" or path fragments
145
+ const hasCopyContext = COPY_CONTEXT.some((ctx) => lower.includes(ctx));
146
+ if (!hasCopyContext) {
147
+ return { triggered: false, reason: "No copy/deploy intent found" };
148
+ }
149
+ return { triggered: true, reason: "Has import error + copy intent" };
150
+ }
151
+ /**
152
+ * Register the file-copy-helper extension
153
+ */
154
+ export function registerFileCopyHelper(pi) {
155
+ // Clear debug log on startup
156
+ fs.writeFileSync(DEBUG_LOG, `[${new Date().toISOString()}] === DEBUG SESSION STARTED ===\n`);
157
+ pi.on("input", (event) => {
158
+ // DEBUG: Log what we receive
159
+ debugLog("INPUT_EVENT", {
160
+ source: event.source,
161
+ textLength: event.text?.length,
162
+ textPreview: event.text?.substring(0, 200),
163
+ fullText: event.text,
164
+ });
165
+ // Only process user input (not from extensions or RPC)
166
+ if (event.source !== "interactive") {
167
+ debugLog("SKIP", "not interactive input - skipping");
168
+ return;
169
+ }
170
+ const text = event.text.trim();
171
+ debugLog("PROCESSING_TEXT", {
172
+ text,
173
+ length: text.length,
174
+ hasMinLength: text.length >= 10,
175
+ });
176
+ if (!text || text.length < 10) {
177
+ debugLog("SKIP", "text too short (< 10 chars)");
178
+ return;
179
+ }
180
+ // Check if this is a copy/mimic request
181
+ const copyCheck = shouldInjectCopyRule(text);
182
+ debugLog("COPY_RULE_CHECK", {
183
+ triggered: copyCheck.triggered,
184
+ reason: copyCheck.reason,
185
+ matchingKeywords: COPY_KEYWORDS.filter((k) => text.toLowerCase().includes(k)),
186
+ matchingDest: COPY_DEST_CONTEXT.filter((ctx) => text.toLowerCase().includes(ctx)),
187
+ matchingSource: COPY_SOURCE_CONTEXT.filter((ctx) => text.toLowerCase().includes(ctx)),
188
+ });
189
+ if (copyCheck.triggered) {
190
+ debugLog("INJECT", { rule: "COPY_RULE", reason: copyCheck.reason });
191
+ return {
192
+ action: "transform",
193
+ text: text + COPY_RULE,
194
+ };
195
+ }
196
+ // Inject import error rule when agent sees missing imports
197
+ const importCheck = shouldInjectImportErrorRule(text);
198
+ debugLog("IMPORT_ERROR_CHECK", {
199
+ triggered: importCheck.triggered,
200
+ reason: importCheck.reason,
201
+ hasImportError: IMPORT_ERROR_TRIGGERS.some((t) => text.toLowerCase().includes(t)),
202
+ hasCopyContext: COPY_CONTEXT.some((ctx) => text.toLowerCase().includes(ctx)),
203
+ });
204
+ if (importCheck.triggered) {
205
+ debugLog("INJECT", {
206
+ rule: "IMPORT_ERROR_RULE",
207
+ reason: importCheck.reason,
208
+ });
209
+ return {
210
+ action: "transform",
211
+ text: text + IMPORT_ERROR_RULE,
212
+ };
213
+ }
214
+ debugLog("NO_INJECTION", "no rule matched - passing through");
215
+ return;
216
+ });
217
+ }
218
+ // Default export for pi extension loading
219
+ export default function fileCopyHelperExtension(pi) {
220
+ registerFileCopyHelper(pi);
221
+ }
222
+ //# sourceMappingURL=extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { registerFileCopyHelper, default } from "./extension.js";
2
+ export { registerIntentDetector, type IntentResult, type IntentType } from "./intent-detector.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { registerFileCopyHelper, default } from "./extension.js";
2
+ export { registerIntentDetector } from "./intent-detector.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAsC,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,21 @@
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 type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
8
+ export type IntentType = "rea" | "file_copy" | "code_review" | "security" | "general";
9
+ export interface IntentResult {
10
+ type: IntentType;
11
+ confidence: number;
12
+ keywords: string[];
13
+ module: string;
14
+ guidance?: string;
15
+ }
16
+ /**
17
+ * Register the intent detector extension
18
+ */
19
+ export declare function registerIntentDetector(pi: ExtensionAPI): void;
20
+ export default function intentDetectorExtension(pi: ExtensionAPI): void;
21
+ //# sourceMappingURL=intent-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-detector.d.ts","sourceRoot":"","sources":["../src/intent-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAgC,MAAM,iCAAiC,CAAC;AAiBlG,MAAM,MAAM,UAAU,GACnB,KAAK,GACL,WAAW,GACX,aAAa,GACb,UAAU,GACV,SAAS,CAAC;AAGb,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAmTD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAmD7D;AAGD,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAEtE"}