qlogicagent 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (450) hide show
  1. package/README.md +45 -0
  2. package/dist/agent/agent.d.ts +44 -0
  3. package/dist/agent/agent.d.ts.map +1 -0
  4. package/dist/agent/agent.js +114 -0
  5. package/dist/agent/agent.js.map +1 -0
  6. package/dist/agent/tool-loop.d.ts +65 -0
  7. package/dist/agent/tool-loop.d.ts.map +1 -0
  8. package/dist/agent/tool-loop.js +576 -0
  9. package/dist/agent/tool-loop.js.map +1 -0
  10. package/dist/agent/types.d.ts +176 -0
  11. package/dist/agent/types.d.ts.map +1 -0
  12. package/dist/agent/types.js +15 -0
  13. package/dist/agent/types.js.map +1 -0
  14. package/dist/cli/main.d.ts +12 -0
  15. package/dist/cli/main.d.ts.map +1 -0
  16. package/dist/cli/main.js +24 -0
  17. package/dist/cli/main.js.map +1 -0
  18. package/dist/cli/stdio-server.d.ts +46 -0
  19. package/dist/cli/stdio-server.d.ts.map +1 -0
  20. package/dist/cli/stdio-server.js +464 -0
  21. package/dist/cli/stdio-server.js.map +1 -0
  22. package/dist/config/config.d.ts +18 -0
  23. package/dist/config/config.d.ts.map +1 -0
  24. package/dist/config/config.js +22 -0
  25. package/dist/config/config.js.map +1 -0
  26. package/dist/contracts/hooks.d.ts +121 -0
  27. package/dist/contracts/hooks.d.ts.map +1 -0
  28. package/dist/contracts/hooks.js +8 -0
  29. package/dist/contracts/hooks.js.map +1 -0
  30. package/dist/contracts/index.d.ts +11 -0
  31. package/dist/contracts/index.d.ts.map +1 -0
  32. package/dist/contracts/index.js +11 -0
  33. package/dist/contracts/index.js.map +1 -0
  34. package/dist/contracts/planner.d.ts +36 -0
  35. package/dist/contracts/planner.d.ts.map +1 -0
  36. package/dist/contracts/planner.js +3 -0
  37. package/dist/contracts/planner.js.map +1 -0
  38. package/dist/contracts/skill-candidate.d.ts +64 -0
  39. package/dist/contracts/skill-candidate.d.ts.map +1 -0
  40. package/dist/contracts/skill-candidate.js +196 -0
  41. package/dist/contracts/skill-candidate.js.map +1 -0
  42. package/dist/contracts/todo.d.ts +15 -0
  43. package/dist/contracts/todo.d.ts.map +1 -0
  44. package/dist/contracts/todo.js +10 -0
  45. package/dist/contracts/todo.js.map +1 -0
  46. package/dist/index.d.ts +14 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +16 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/llm/builtin-providers.d.ts +11 -0
  51. package/dist/llm/builtin-providers.d.ts.map +1 -0
  52. package/dist/llm/builtin-providers.js +532 -0
  53. package/dist/llm/builtin-providers.js.map +1 -0
  54. package/dist/llm/index.d.ts +16 -0
  55. package/dist/llm/index.d.ts.map +1 -0
  56. package/dist/llm/index.js +15 -0
  57. package/dist/llm/index.js.map +1 -0
  58. package/dist/llm/llm-client.d.ts +44 -0
  59. package/dist/llm/llm-client.d.ts.map +1 -0
  60. package/dist/llm/llm-client.js +68 -0
  61. package/dist/llm/llm-client.js.map +1 -0
  62. package/dist/llm/model-catalog.d.ts +54 -0
  63. package/dist/llm/model-catalog.d.ts.map +1 -0
  64. package/dist/llm/model-catalog.js +192 -0
  65. package/dist/llm/model-catalog.js.map +1 -0
  66. package/dist/llm/provider-def.d.ts +60 -0
  67. package/dist/llm/provider-def.d.ts.map +1 -0
  68. package/dist/llm/provider-def.js +13 -0
  69. package/dist/llm/provider-def.js.map +1 -0
  70. package/dist/llm/provider-registry.d.ts +55 -0
  71. package/dist/llm/provider-registry.d.ts.map +1 -0
  72. package/dist/llm/provider-registry.js +148 -0
  73. package/dist/llm/provider-registry.js.map +1 -0
  74. package/dist/llm/transport.d.ts +63 -0
  75. package/dist/llm/transport.d.ts.map +1 -0
  76. package/dist/llm/transport.js +28 -0
  77. package/dist/llm/transport.js.map +1 -0
  78. package/dist/llm/transports/anthropic-messages.d.ts +32 -0
  79. package/dist/llm/transports/anthropic-messages.d.ts.map +1 -0
  80. package/dist/llm/transports/anthropic-messages.js +294 -0
  81. package/dist/llm/transports/anthropic-messages.js.map +1 -0
  82. package/dist/llm/transports/openai-chat.d.ts +37 -0
  83. package/dist/llm/transports/openai-chat.d.ts.map +1 -0
  84. package/dist/llm/transports/openai-chat.js +166 -0
  85. package/dist/llm/transports/openai-chat.js.map +1 -0
  86. package/dist/orchestration/agent-registry.d.ts +42 -0
  87. package/dist/orchestration/agent-registry.d.ts.map +1 -0
  88. package/dist/orchestration/agent-registry.js +117 -0
  89. package/dist/orchestration/agent-registry.js.map +1 -0
  90. package/dist/orchestration/approval-aware-tool-plan.d.ts +33 -0
  91. package/dist/orchestration/approval-aware-tool-plan.d.ts.map +1 -0
  92. package/dist/orchestration/approval-aware-tool-plan.js +88 -0
  93. package/dist/orchestration/approval-aware-tool-plan.js.map +1 -0
  94. package/dist/orchestration/context-compression.d.ts +221 -0
  95. package/dist/orchestration/context-compression.d.ts.map +1 -0
  96. package/dist/orchestration/context-compression.js +584 -0
  97. package/dist/orchestration/context-compression.js.map +1 -0
  98. package/dist/orchestration/conversation-repair.d.ts +62 -0
  99. package/dist/orchestration/conversation-repair.d.ts.map +1 -0
  100. package/dist/orchestration/conversation-repair.js +430 -0
  101. package/dist/orchestration/conversation-repair.js.map +1 -0
  102. package/dist/orchestration/curator-scheduler.d.ts +120 -0
  103. package/dist/orchestration/curator-scheduler.d.ts.map +1 -0
  104. package/dist/orchestration/curator-scheduler.js +136 -0
  105. package/dist/orchestration/curator-scheduler.js.map +1 -0
  106. package/dist/orchestration/embedded-failover-policy.d.ts +111 -0
  107. package/dist/orchestration/embedded-failover-policy.d.ts.map +1 -0
  108. package/dist/orchestration/embedded-failover-policy.js +169 -0
  109. package/dist/orchestration/embedded-failover-policy.js.map +1 -0
  110. package/dist/orchestration/error-classification.d.ts +13 -0
  111. package/dist/orchestration/error-classification.d.ts.map +1 -0
  112. package/dist/orchestration/error-classification.js +78 -0
  113. package/dist/orchestration/error-classification.js.map +1 -0
  114. package/dist/orchestration/failover-classification.d.ts +9 -0
  115. package/dist/orchestration/failover-classification.d.ts.map +1 -0
  116. package/dist/orchestration/failover-classification.js +382 -0
  117. package/dist/orchestration/failover-classification.js.map +1 -0
  118. package/dist/orchestration/failover-error.d.ts +34 -0
  119. package/dist/orchestration/failover-error.d.ts.map +1 -0
  120. package/dist/orchestration/failover-error.js +199 -0
  121. package/dist/orchestration/failover-error.js.map +1 -0
  122. package/dist/orchestration/fork-subagent.d.ts +101 -0
  123. package/dist/orchestration/fork-subagent.d.ts.map +1 -0
  124. package/dist/orchestration/fork-subagent.js +99 -0
  125. package/dist/orchestration/fork-subagent.js.map +1 -0
  126. package/dist/orchestration/index.d.ts +121 -0
  127. package/dist/orchestration/index.d.ts.map +1 -0
  128. package/dist/orchestration/index.js +268 -0
  129. package/dist/orchestration/index.js.map +1 -0
  130. package/dist/orchestration/memory-flush-policy.d.ts +58 -0
  131. package/dist/orchestration/memory-flush-policy.d.ts.map +1 -0
  132. package/dist/orchestration/memory-flush-policy.js +86 -0
  133. package/dist/orchestration/memory-flush-policy.js.map +1 -0
  134. package/dist/orchestration/memory-provider.d.ts +15 -0
  135. package/dist/orchestration/memory-provider.d.ts.map +1 -0
  136. package/dist/orchestration/memory-provider.js +3 -0
  137. package/dist/orchestration/memory-provider.js.map +1 -0
  138. package/dist/orchestration/parallel-tool-calls.d.ts +42 -0
  139. package/dist/orchestration/parallel-tool-calls.d.ts.map +1 -0
  140. package/dist/orchestration/parallel-tool-calls.js +60 -0
  141. package/dist/orchestration/parallel-tool-calls.js.map +1 -0
  142. package/dist/orchestration/prompt-cache-strategy.d.ts +127 -0
  143. package/dist/orchestration/prompt-cache-strategy.d.ts.map +1 -0
  144. package/dist/orchestration/prompt-cache-strategy.js +229 -0
  145. package/dist/orchestration/prompt-cache-strategy.js.map +1 -0
  146. package/dist/orchestration/reactive-compact.d.ts +74 -0
  147. package/dist/orchestration/reactive-compact.d.ts.map +1 -0
  148. package/dist/orchestration/reactive-compact.js +79 -0
  149. package/dist/orchestration/reactive-compact.js.map +1 -0
  150. package/dist/orchestration/retry-loop.d.ts +23 -0
  151. package/dist/orchestration/retry-loop.d.ts.map +1 -0
  152. package/dist/orchestration/retry-loop.js +25 -0
  153. package/dist/orchestration/retry-loop.js.map +1 -0
  154. package/dist/orchestration/skill-candidate.d.ts +53 -0
  155. package/dist/orchestration/skill-candidate.d.ts.map +1 -0
  156. package/dist/orchestration/skill-candidate.js +142 -0
  157. package/dist/orchestration/skill-candidate.js.map +1 -0
  158. package/dist/orchestration/skill-consolidation.d.ts +124 -0
  159. package/dist/orchestration/skill-consolidation.d.ts.map +1 -0
  160. package/dist/orchestration/skill-consolidation.js +221 -0
  161. package/dist/orchestration/skill-consolidation.js.map +1 -0
  162. package/dist/orchestration/skill-improvement.d.ts +60 -0
  163. package/dist/orchestration/skill-improvement.d.ts.map +1 -0
  164. package/dist/orchestration/skill-improvement.js +67 -0
  165. package/dist/orchestration/skill-improvement.js.map +1 -0
  166. package/dist/orchestration/skill-similarity.d.ts +99 -0
  167. package/dist/orchestration/skill-similarity.d.ts.map +1 -0
  168. package/dist/orchestration/skill-similarity.js +132 -0
  169. package/dist/orchestration/skill-similarity.js.map +1 -0
  170. package/dist/orchestration/streaming-tool-executor.d.ts +74 -0
  171. package/dist/orchestration/streaming-tool-executor.d.ts.map +1 -0
  172. package/dist/orchestration/streaming-tool-executor.js +97 -0
  173. package/dist/orchestration/streaming-tool-executor.js.map +1 -0
  174. package/dist/orchestration/team-orchestration.d.ts +196 -0
  175. package/dist/orchestration/team-orchestration.d.ts.map +1 -0
  176. package/dist/orchestration/team-orchestration.js +370 -0
  177. package/dist/orchestration/team-orchestration.js.map +1 -0
  178. package/dist/orchestration/team-tool-loop-wiring.d.ts +93 -0
  179. package/dist/orchestration/team-tool-loop-wiring.d.ts.map +1 -0
  180. package/dist/orchestration/team-tool-loop-wiring.js +148 -0
  181. package/dist/orchestration/team-tool-loop-wiring.js.map +1 -0
  182. package/dist/orchestration/tool-choice-policy.d.ts +55 -0
  183. package/dist/orchestration/tool-choice-policy.d.ts.map +1 -0
  184. package/dist/orchestration/tool-choice-policy.js +165 -0
  185. package/dist/orchestration/tool-choice-policy.js.map +1 -0
  186. package/dist/orchestration/tool-loop-state.d.ts +51 -0
  187. package/dist/orchestration/tool-loop-state.d.ts.map +1 -0
  188. package/dist/orchestration/tool-loop-state.js +134 -0
  189. package/dist/orchestration/tool-loop-state.js.map +1 -0
  190. package/dist/orchestration/tool-schema.d.ts +40 -0
  191. package/dist/orchestration/tool-schema.d.ts.map +1 -0
  192. package/dist/orchestration/tool-schema.js +298 -0
  193. package/dist/orchestration/tool-schema.js.map +1 -0
  194. package/dist/orchestration/transcript-repair.d.ts +43 -0
  195. package/dist/orchestration/transcript-repair.d.ts.map +1 -0
  196. package/dist/orchestration/transcript-repair.js +427 -0
  197. package/dist/orchestration/transcript-repair.js.map +1 -0
  198. package/dist/orchestration/turn-loop-guard.d.ts +87 -0
  199. package/dist/orchestration/turn-loop-guard.d.ts.map +1 -0
  200. package/dist/orchestration/turn-loop-guard.js +93 -0
  201. package/dist/orchestration/turn-loop-guard.js.map +1 -0
  202. package/dist/orchestration/web-browser-policy.d.ts +18 -0
  203. package/dist/orchestration/web-browser-policy.d.ts.map +1 -0
  204. package/dist/orchestration/web-browser-policy.js +40 -0
  205. package/dist/orchestration/web-browser-policy.js.map +1 -0
  206. package/dist/runtime/context-compression.d.ts +62 -0
  207. package/dist/runtime/context-compression.d.ts.map +1 -0
  208. package/dist/runtime/context-compression.js +275 -0
  209. package/dist/runtime/context-compression.js.map +1 -0
  210. package/dist/runtime/hook-registry.d.ts +13 -0
  211. package/dist/runtime/hook-registry.d.ts.map +1 -0
  212. package/dist/runtime/hook-registry.js +54 -0
  213. package/dist/runtime/hook-registry.js.map +1 -0
  214. package/dist/runtime/memory-hooks.d.ts +24 -0
  215. package/dist/runtime/memory-hooks.d.ts.map +1 -0
  216. package/dist/runtime/memory-hooks.js +66 -0
  217. package/dist/runtime/memory-hooks.js.map +1 -0
  218. package/dist/runtime/tool-eligibility.d.ts +60 -0
  219. package/dist/runtime/tool-eligibility.d.ts.map +1 -0
  220. package/dist/runtime/tool-eligibility.js +112 -0
  221. package/dist/runtime/tool-eligibility.js.map +1 -0
  222. package/dist/skills/index.d.ts +109 -0
  223. package/dist/skills/index.d.ts.map +1 -0
  224. package/dist/skills/index.js +83 -0
  225. package/dist/skills/index.js.map +1 -0
  226. package/dist/skills/memory-extractor.d.ts +65 -0
  227. package/dist/skills/memory-extractor.d.ts.map +1 -0
  228. package/dist/skills/memory-extractor.js +174 -0
  229. package/dist/skills/memory-extractor.js.map +1 -0
  230. package/dist/skills/memory-query-tool.d.ts +44 -0
  231. package/dist/skills/memory-query-tool.d.ts.map +1 -0
  232. package/dist/skills/memory-query-tool.js +128 -0
  233. package/dist/skills/memory-query-tool.js.map +1 -0
  234. package/dist/skills/memory-store.d.ts +67 -0
  235. package/dist/skills/memory-store.d.ts.map +1 -0
  236. package/dist/skills/memory-store.js +229 -0
  237. package/dist/skills/memory-store.js.map +1 -0
  238. package/dist/skills/memory-tool.d.ts +68 -0
  239. package/dist/skills/memory-tool.d.ts.map +1 -0
  240. package/dist/skills/memory-tool.js +193 -0
  241. package/dist/skills/memory-tool.js.map +1 -0
  242. package/dist/skills/portable-tool.d.ts +72 -0
  243. package/dist/skills/portable-tool.d.ts.map +1 -0
  244. package/dist/skills/portable-tool.js +15 -0
  245. package/dist/skills/portable-tool.js.map +1 -0
  246. package/dist/skills/qmemory-adapter.d.ts +53 -0
  247. package/dist/skills/qmemory-adapter.d.ts.map +1 -0
  248. package/dist/skills/qmemory-adapter.js +166 -0
  249. package/dist/skills/qmemory-adapter.js.map +1 -0
  250. package/dist/skills/skill-frontmatter.d.ts +20 -0
  251. package/dist/skills/skill-frontmatter.d.ts.map +1 -0
  252. package/dist/skills/skill-frontmatter.js +345 -0
  253. package/dist/skills/skill-frontmatter.js.map +1 -0
  254. package/dist/skills/skill-guard.d.ts +24 -0
  255. package/dist/skills/skill-guard.d.ts.map +1 -0
  256. package/dist/skills/skill-guard.js +230 -0
  257. package/dist/skills/skill-guard.js.map +1 -0
  258. package/dist/skills/skill-loader.d.ts +17 -0
  259. package/dist/skills/skill-loader.d.ts.map +1 -0
  260. package/dist/skills/skill-loader.js +304 -0
  261. package/dist/skills/skill-loader.js.map +1 -0
  262. package/dist/skills/skill-source.d.ts +120 -0
  263. package/dist/skills/skill-source.d.ts.map +1 -0
  264. package/dist/skills/skill-source.js +127 -0
  265. package/dist/skills/skill-source.js.map +1 -0
  266. package/dist/skills/skill-types.d.ts +200 -0
  267. package/dist/skills/skill-types.d.ts.map +1 -0
  268. package/dist/skills/skill-types.js +7 -0
  269. package/dist/skills/skill-types.js.map +1 -0
  270. package/dist/skills/think-tool.d.ts +17 -0
  271. package/dist/skills/think-tool.d.ts.map +1 -0
  272. package/dist/skills/think-tool.js +60 -0
  273. package/dist/skills/think-tool.js.map +1 -0
  274. package/dist/skills/todo-tool.d.ts +64 -0
  275. package/dist/skills/todo-tool.d.ts.map +1 -0
  276. package/dist/skills/todo-tool.js +115 -0
  277. package/dist/skills/todo-tool.js.map +1 -0
  278. package/dist/skills/tools/agent-tool.d.ts +92 -0
  279. package/dist/skills/tools/agent-tool.d.ts.map +1 -0
  280. package/dist/skills/tools/agent-tool.js +143 -0
  281. package/dist/skills/tools/agent-tool.js.map +1 -0
  282. package/dist/skills/tools/apply-patch-tool.d.ts +30 -0
  283. package/dist/skills/tools/apply-patch-tool.d.ts.map +1 -0
  284. package/dist/skills/tools/apply-patch-tool.js +185 -0
  285. package/dist/skills/tools/apply-patch-tool.js.map +1 -0
  286. package/dist/skills/tools/ask-user-tool.d.ts +81 -0
  287. package/dist/skills/tools/ask-user-tool.d.ts.map +1 -0
  288. package/dist/skills/tools/ask-user-tool.js +122 -0
  289. package/dist/skills/tools/ask-user-tool.js.map +1 -0
  290. package/dist/skills/tools/brief-tool.d.ts +75 -0
  291. package/dist/skills/tools/brief-tool.d.ts.map +1 -0
  292. package/dist/skills/tools/brief-tool.js +96 -0
  293. package/dist/skills/tools/brief-tool.js.map +1 -0
  294. package/dist/skills/tools/browser-tool.d.ts +115 -0
  295. package/dist/skills/tools/browser-tool.d.ts.map +1 -0
  296. package/dist/skills/tools/browser-tool.js +156 -0
  297. package/dist/skills/tools/browser-tool.js.map +1 -0
  298. package/dist/skills/tools/checkpoint-tool.d.ts +67 -0
  299. package/dist/skills/tools/checkpoint-tool.d.ts.map +1 -0
  300. package/dist/skills/tools/checkpoint-tool.js +103 -0
  301. package/dist/skills/tools/checkpoint-tool.js.map +1 -0
  302. package/dist/skills/tools/config-tool.d.ts +64 -0
  303. package/dist/skills/tools/config-tool.d.ts.map +1 -0
  304. package/dist/skills/tools/config-tool.js +144 -0
  305. package/dist/skills/tools/config-tool.js.map +1 -0
  306. package/dist/skills/tools/cron-tool.d.ts +117 -0
  307. package/dist/skills/tools/cron-tool.d.ts.map +1 -0
  308. package/dist/skills/tools/cron-tool.js +176 -0
  309. package/dist/skills/tools/cron-tool.js.map +1 -0
  310. package/dist/skills/tools/edit-tool.d.ts +44 -0
  311. package/dist/skills/tools/edit-tool.d.ts.map +1 -0
  312. package/dist/skills/tools/edit-tool.js +71 -0
  313. package/dist/skills/tools/edit-tool.js.map +1 -0
  314. package/dist/skills/tools/exec-tool.d.ts +103 -0
  315. package/dist/skills/tools/exec-tool.d.ts.map +1 -0
  316. package/dist/skills/tools/exec-tool.js +134 -0
  317. package/dist/skills/tools/exec-tool.js.map +1 -0
  318. package/dist/skills/tools/image-generate-tool.d.ts +63 -0
  319. package/dist/skills/tools/image-generate-tool.d.ts.map +1 -0
  320. package/dist/skills/tools/image-generate-tool.js +68 -0
  321. package/dist/skills/tools/image-generate-tool.js.map +1 -0
  322. package/dist/skills/tools/instructions-tool.d.ts +104 -0
  323. package/dist/skills/tools/instructions-tool.d.ts.map +1 -0
  324. package/dist/skills/tools/instructions-tool.js +188 -0
  325. package/dist/skills/tools/instructions-tool.js.map +1 -0
  326. package/dist/skills/tools/lsp-tool.d.ts +154 -0
  327. package/dist/skills/tools/lsp-tool.d.ts.map +1 -0
  328. package/dist/skills/tools/lsp-tool.js +228 -0
  329. package/dist/skills/tools/lsp-tool.js.map +1 -0
  330. package/dist/skills/tools/mcp-client-types.d.ts +270 -0
  331. package/dist/skills/tools/mcp-client-types.d.ts.map +1 -0
  332. package/dist/skills/tools/mcp-client-types.js +54 -0
  333. package/dist/skills/tools/mcp-client-types.js.map +1 -0
  334. package/dist/skills/tools/mcp-tool.d.ts +250 -0
  335. package/dist/skills/tools/mcp-tool.d.ts.map +1 -0
  336. package/dist/skills/tools/mcp-tool.js +504 -0
  337. package/dist/skills/tools/mcp-tool.js.map +1 -0
  338. package/dist/skills/tools/memory-tool.d.ts +75 -0
  339. package/dist/skills/tools/memory-tool.d.ts.map +1 -0
  340. package/dist/skills/tools/memory-tool.js +89 -0
  341. package/dist/skills/tools/memory-tool.js.map +1 -0
  342. package/dist/skills/tools/monitor-tool.d.ts +114 -0
  343. package/dist/skills/tools/monitor-tool.d.ts.map +1 -0
  344. package/dist/skills/tools/monitor-tool.js +132 -0
  345. package/dist/skills/tools/monitor-tool.js.map +1 -0
  346. package/dist/skills/tools/music-generate-tool.d.ts +56 -0
  347. package/dist/skills/tools/music-generate-tool.d.ts.map +1 -0
  348. package/dist/skills/tools/music-generate-tool.js +63 -0
  349. package/dist/skills/tools/music-generate-tool.js.map +1 -0
  350. package/dist/skills/tools/notify-tool.d.ts +54 -0
  351. package/dist/skills/tools/notify-tool.d.ts.map +1 -0
  352. package/dist/skills/tools/notify-tool.js +63 -0
  353. package/dist/skills/tools/notify-tool.js.map +1 -0
  354. package/dist/skills/tools/patch-tool.d.ts +46 -0
  355. package/dist/skills/tools/patch-tool.d.ts.map +1 -0
  356. package/dist/skills/tools/patch-tool.js +506 -0
  357. package/dist/skills/tools/patch-tool.js.map +1 -0
  358. package/dist/skills/tools/pdf-tool.d.ts +67 -0
  359. package/dist/skills/tools/pdf-tool.d.ts.map +1 -0
  360. package/dist/skills/tools/pdf-tool.js +89 -0
  361. package/dist/skills/tools/pdf-tool.js.map +1 -0
  362. package/dist/skills/tools/plan-mode-tool.d.ts +60 -0
  363. package/dist/skills/tools/plan-mode-tool.d.ts.map +1 -0
  364. package/dist/skills/tools/plan-mode-tool.js +123 -0
  365. package/dist/skills/tools/plan-mode-tool.js.map +1 -0
  366. package/dist/skills/tools/read-tool.d.ts +52 -0
  367. package/dist/skills/tools/read-tool.d.ts.map +1 -0
  368. package/dist/skills/tools/read-tool.js +85 -0
  369. package/dist/skills/tools/read-tool.js.map +1 -0
  370. package/dist/skills/tools/repl-tool.d.ts +71 -0
  371. package/dist/skills/tools/repl-tool.d.ts.map +1 -0
  372. package/dist/skills/tools/repl-tool.js +70 -0
  373. package/dist/skills/tools/repl-tool.js.map +1 -0
  374. package/dist/skills/tools/search-tool.d.ts +113 -0
  375. package/dist/skills/tools/search-tool.d.ts.map +1 -0
  376. package/dist/skills/tools/search-tool.js +226 -0
  377. package/dist/skills/tools/search-tool.js.map +1 -0
  378. package/dist/skills/tools/send-message-tool.d.ts +52 -0
  379. package/dist/skills/tools/send-message-tool.d.ts.map +1 -0
  380. package/dist/skills/tools/send-message-tool.js +77 -0
  381. package/dist/skills/tools/send-message-tool.js.map +1 -0
  382. package/dist/skills/tools/skill-list-tool.d.ts +34 -0
  383. package/dist/skills/tools/skill-list-tool.d.ts.map +1 -0
  384. package/dist/skills/tools/skill-list-tool.js +55 -0
  385. package/dist/skills/tools/skill-list-tool.js.map +1 -0
  386. package/dist/skills/tools/skill-manage-tool.d.ts +74 -0
  387. package/dist/skills/tools/skill-manage-tool.d.ts.map +1 -0
  388. package/dist/skills/tools/skill-manage-tool.js +154 -0
  389. package/dist/skills/tools/skill-manage-tool.js.map +1 -0
  390. package/dist/skills/tools/skill-view-tool.d.ts +38 -0
  391. package/dist/skills/tools/skill-view-tool.d.ts.map +1 -0
  392. package/dist/skills/tools/skill-view-tool.js +73 -0
  393. package/dist/skills/tools/skill-view-tool.js.map +1 -0
  394. package/dist/skills/tools/sleep-tool.d.ts +50 -0
  395. package/dist/skills/tools/sleep-tool.d.ts.map +1 -0
  396. package/dist/skills/tools/sleep-tool.js +82 -0
  397. package/dist/skills/tools/sleep-tool.js.map +1 -0
  398. package/dist/skills/tools/structured-output-tool.d.ts +117 -0
  399. package/dist/skills/tools/structured-output-tool.d.ts.map +1 -0
  400. package/dist/skills/tools/structured-output-tool.js +177 -0
  401. package/dist/skills/tools/structured-output-tool.js.map +1 -0
  402. package/dist/skills/tools/task-tool.d.ts +105 -0
  403. package/dist/skills/tools/task-tool.d.ts.map +1 -0
  404. package/dist/skills/tools/task-tool.js +162 -0
  405. package/dist/skills/tools/task-tool.js.map +1 -0
  406. package/dist/skills/tools/team-tool.d.ts +90 -0
  407. package/dist/skills/tools/team-tool.d.ts.map +1 -0
  408. package/dist/skills/tools/team-tool.js +106 -0
  409. package/dist/skills/tools/team-tool.js.map +1 -0
  410. package/dist/skills/tools/tool-search-tool.d.ts +52 -0
  411. package/dist/skills/tools/tool-search-tool.d.ts.map +1 -0
  412. package/dist/skills/tools/tool-search-tool.js +111 -0
  413. package/dist/skills/tools/tool-search-tool.js.map +1 -0
  414. package/dist/skills/tools/tts-tool.d.ts +39 -0
  415. package/dist/skills/tools/tts-tool.d.ts.map +1 -0
  416. package/dist/skills/tools/tts-tool.js +46 -0
  417. package/dist/skills/tools/tts-tool.js.map +1 -0
  418. package/dist/skills/tools/video-edit-tool.d.ts +70 -0
  419. package/dist/skills/tools/video-edit-tool.d.ts.map +1 -0
  420. package/dist/skills/tools/video-edit-tool.js +75 -0
  421. package/dist/skills/tools/video-edit-tool.js.map +1 -0
  422. package/dist/skills/tools/video-generate-tool.d.ts +63 -0
  423. package/dist/skills/tools/video-generate-tool.d.ts.map +1 -0
  424. package/dist/skills/tools/video-generate-tool.js +67 -0
  425. package/dist/skills/tools/video-generate-tool.js.map +1 -0
  426. package/dist/skills/tools/video-merge-tool.d.ts +106 -0
  427. package/dist/skills/tools/video-merge-tool.d.ts.map +1 -0
  428. package/dist/skills/tools/video-merge-tool.js +93 -0
  429. package/dist/skills/tools/video-merge-tool.js.map +1 -0
  430. package/dist/skills/tools/video-upscale-tool.d.ts +46 -0
  431. package/dist/skills/tools/video-upscale-tool.d.ts.map +1 -0
  432. package/dist/skills/tools/video-upscale-tool.js +53 -0
  433. package/dist/skills/tools/video-upscale-tool.js.map +1 -0
  434. package/dist/skills/tools/web-fetch-tool.d.ts +79 -0
  435. package/dist/skills/tools/web-fetch-tool.d.ts.map +1 -0
  436. package/dist/skills/tools/web-fetch-tool.js +93 -0
  437. package/dist/skills/tools/web-fetch-tool.js.map +1 -0
  438. package/dist/skills/tools/web-search-tool.d.ts +58 -0
  439. package/dist/skills/tools/web-search-tool.d.ts.map +1 -0
  440. package/dist/skills/tools/web-search-tool.js +87 -0
  441. package/dist/skills/tools/web-search-tool.js.map +1 -0
  442. package/dist/skills/tools/worktree-tool.d.ts +70 -0
  443. package/dist/skills/tools/worktree-tool.d.ts.map +1 -0
  444. package/dist/skills/tools/worktree-tool.js +148 -0
  445. package/dist/skills/tools/worktree-tool.js.map +1 -0
  446. package/dist/skills/tools/write-tool.d.ts +46 -0
  447. package/dist/skills/tools/write-tool.d.ts.map +1 -0
  448. package/dist/skills/tools/write-tool.js +82 -0
  449. package/dist/skills/tools/write-tool.js.map +1 -0
  450. package/package.json +41 -0
@@ -0,0 +1,464 @@
1
+ /**
2
+ * StdioServer — JSON-RPC 2.0 over stdio protocol handler.
3
+ *
4
+ * Reads line-delimited JSON from stdin, dispatches to handlers,
5
+ * writes JSON-RPC responses/notifications to stdout.
6
+ * All log output goes to stderr.
7
+ *
8
+ * Protocol: each line on stdin/stdout is a single JSON-RPC 2.0 message.
9
+ */
10
+ import { createInterface } from "node:readline";
11
+ import { randomUUID } from "node:crypto";
12
+ import { Agent } from "../agent/agent.js";
13
+ import { ProviderRegistry, createLLMClient, autoDetectProvider, } from "../llm/index.js";
14
+ import { createHookRegistry } from "../runtime/hook-registry.js";
15
+ import { registerMemoryHooks } from "../runtime/memory-hooks.js";
16
+ import { createQMemoryAdapter } from "../skills/qmemory-adapter.js";
17
+ import { AGENT_RPC_ERROR_CODES, AGENT_RPC_PROTOCOL_VERSION, isAgentRpcRequest, } from "qlogicagent-runtime-contracts";
18
+ export class StdioServer {
19
+ running = false;
20
+ activeTurn = null;
21
+ pendingToolResults = new Map();
22
+ verbose;
23
+ registry;
24
+ agent = null;
25
+ lastLlmConfigKey = "";
26
+ currentSessionId = "";
27
+ currentHooks = null;
28
+ constructor(config) {
29
+ this.verbose = config.verbose;
30
+ this.registry = new ProviderRegistry();
31
+ }
32
+ start() {
33
+ this.running = true;
34
+ this.log("qlogicagent CLI started, waiting for JSON-RPC on stdin...");
35
+ const rl = createInterface({
36
+ input: process.stdin,
37
+ crlfDelay: Number.POSITIVE_INFINITY,
38
+ });
39
+ rl.on("line", (line) => {
40
+ const trimmed = line.trim();
41
+ if (!trimmed)
42
+ return;
43
+ try {
44
+ const parsed = JSON.parse(trimmed);
45
+ if (!isAgentRpcRequest(parsed)) {
46
+ this.log(`[warn] ignoring non-request message: ${trimmed.slice(0, 200)}`);
47
+ return;
48
+ }
49
+ this.handleMessage(parsed);
50
+ }
51
+ catch {
52
+ this.log(`[warn] invalid JSON on stdin: ${trimmed.slice(0, 200)}`);
53
+ }
54
+ });
55
+ rl.on("close", () => {
56
+ this.log("stdin closed, shutting down");
57
+ this.stop();
58
+ });
59
+ }
60
+ stop() {
61
+ if (!this.running)
62
+ return;
63
+ this.running = false;
64
+ // Fire session.ended for active session
65
+ if (this.currentSessionId && this.currentHooks) {
66
+ this.currentHooks.invoke("session.ended", { sessionId: this.currentSessionId }).catch(() => { });
67
+ }
68
+ // Abort active turn if any
69
+ if (this.activeTurn) {
70
+ this.activeTurn.abort();
71
+ this.activeTurn = null;
72
+ }
73
+ // Reject all pending tool results
74
+ for (const [callId, pending] of this.pendingToolResults) {
75
+ pending.resolve({ result: "", error: "Agent process shutting down" });
76
+ }
77
+ this.pendingToolResults.clear();
78
+ this.log("stopped");
79
+ }
80
+ // ── Message dispatch ──────────────────────────────────────────────────
81
+ handleMessage(msg) {
82
+ switch (msg.method) {
83
+ case "agent.hello":
84
+ this.handleHello(msg);
85
+ break;
86
+ case "agent.ping":
87
+ this.handlePing(msg);
88
+ break;
89
+ case "agent.turn":
90
+ this.handleTurn(msg);
91
+ break;
92
+ case "memory.dream":
93
+ // Dream turns use the same agent.turn pipeline with dream-specific
94
+ // system prompt and messages. The Gateway sends memory.dream but the
95
+ // agent treats it as a regular turn with dream context.
96
+ this.handleTurn(msg);
97
+ break;
98
+ case "agent.abort":
99
+ this.handleAbort(msg);
100
+ break;
101
+ case "tool.result":
102
+ this.handleToolResult(msg);
103
+ break;
104
+ default:
105
+ if (msg.id !== undefined) {
106
+ this.sendResponse(msg.id, undefined, {
107
+ code: AGENT_RPC_ERROR_CODES.METHOD_NOT_FOUND,
108
+ message: `Unknown method: ${msg.method}`,
109
+ });
110
+ }
111
+ }
112
+ }
113
+ // ── Handlers ──────────────────────────────────────────────────────────
114
+ handleHello(msg) {
115
+ const params = msg.params;
116
+ const hostVersion = params?.protocolVersion ?? "unknown";
117
+ const majorHost = hostVersion.split(".")[0];
118
+ const majorSelf = AGENT_RPC_PROTOCOL_VERSION.split(".")[0];
119
+ if (majorHost !== majorSelf) {
120
+ this.log(`protocol mismatch: host=${hostVersion} agent=${AGENT_RPC_PROTOCOL_VERSION}`);
121
+ if (msg.id !== undefined) {
122
+ this.sendResponse(msg.id, undefined, {
123
+ code: AGENT_RPC_ERROR_CODES.PROTOCOL_MISMATCH,
124
+ message: `Protocol version mismatch: host=${hostVersion}, agent=${AGENT_RPC_PROTOCOL_VERSION}`,
125
+ });
126
+ }
127
+ return;
128
+ }
129
+ this.log(`hello from ${params?.hostName ?? "unknown"} v${params?.hostVersion ?? "?"} (protocol ${hostVersion})`);
130
+ if (msg.id !== undefined) {
131
+ this.sendResponse(msg.id, {
132
+ protocolVersion: AGENT_RPC_PROTOCOL_VERSION,
133
+ agentName: "qlogicagent",
134
+ agentVersion: "0.1.0",
135
+ capabilities: ["turn", "tool-invoke", "streaming"],
136
+ });
137
+ }
138
+ }
139
+ handlePing(msg) {
140
+ if (msg.id !== undefined) {
141
+ this.sendResponse(msg.id, { status: "ok" });
142
+ }
143
+ this.sendNotification("pong", {});
144
+ }
145
+ handleAbort(msg) {
146
+ const turnId = msg.params?.turnId ?? "";
147
+ this.log(`abort requested for turn ${turnId}`);
148
+ if (this.activeTurn) {
149
+ this.activeTurn.abort();
150
+ this.activeTurn = null;
151
+ }
152
+ if (msg.id !== undefined) {
153
+ this.sendResponse(msg.id, { aborted: true });
154
+ }
155
+ }
156
+ handleToolResult(msg) {
157
+ const callId = msg.params?.callId;
158
+ const result = msg.params?.result ?? "";
159
+ const error = msg.params?.error;
160
+ if (!callId) {
161
+ this.log("[warn] tool.result missing callId");
162
+ return;
163
+ }
164
+ const pending = this.pendingToolResults.get(callId);
165
+ if (pending) {
166
+ pending.resolve({ result, error });
167
+ this.pendingToolResults.delete(callId);
168
+ }
169
+ else {
170
+ this.log(`[warn] no pending tool call for callId ${callId}`);
171
+ }
172
+ }
173
+ async handleTurn(msg) {
174
+ const params = msg.params ?? {};
175
+ const turnId = params.turnId ?? randomUUID();
176
+ const sessionId = params.sessionId;
177
+ const messages = params.messages ?? [];
178
+ const tools = params.tools ?? [];
179
+ const config = params.config;
180
+ if (msg.id !== undefined) {
181
+ this.sendResponse(msg.id, { accepted: true, turnId });
182
+ }
183
+ // Session lifecycle: fire session.created when sessionId changes
184
+ if (sessionId && sessionId !== this.currentSessionId) {
185
+ if (this.currentSessionId && this.currentHooks) {
186
+ this.currentHooks.invoke("session.ended", { sessionId: this.currentSessionId }).catch(() => { });
187
+ }
188
+ this.currentSessionId = sessionId;
189
+ // session.created is fired after hooks are available (below in resolveAgent)
190
+ }
191
+ const ac = new AbortController();
192
+ this.activeTurn = ac;
193
+ this.log(`turn ${turnId} starting (session: ${sessionId})`);
194
+ try {
195
+ // ─── Resolve or create Agent with LLM config ──────────────
196
+ const turnConfig = {
197
+ provider: config?.provider,
198
+ model: config?.model,
199
+ apiKey: config?.apiKey,
200
+ baseUrl: config?.baseUrl,
201
+ maxRounds: config?.maxRounds,
202
+ temperature: config?.temperature,
203
+ contextWindowTokens: config?.contextWindowTokens,
204
+ maxOutputTokens: config?.maxOutputTokens,
205
+ modelMaxOutputTokens: config?.modelMaxOutputTokens,
206
+ };
207
+ const agent = this.resolveAgent(turnConfig);
208
+ if (!agent) {
209
+ this.sendNotification("turn.start", { turnId });
210
+ this.sendNotification("turn.error", {
211
+ turnId,
212
+ error: "No LLM provider configured. Provide provider/model/apiKey in agent.turn config, " +
213
+ "or set DEEPSEEK_API_KEY / OPENAI_API_KEY / ANTHROPIC_API_KEY environment variable.",
214
+ code: "NO_PROVIDER",
215
+ });
216
+ return;
217
+ }
218
+ // ─── Stream events from Agent ─────────────────────────────
219
+ const systemPrompt = config?.systemPrompt;
220
+ for await (const event of agent.run({
221
+ turnId,
222
+ sessionId,
223
+ messages,
224
+ tools,
225
+ systemPrompt,
226
+ config: turnConfig,
227
+ }, ac.signal)) {
228
+ // Forward all TurnEvent as JSON-RPC notifications
229
+ switch (event.type) {
230
+ case "start":
231
+ this.sendNotification("turn.start", { turnId: event.turnId });
232
+ break;
233
+ case "delta":
234
+ this.sendNotification("turn.delta", {
235
+ turnId: event.turnId,
236
+ text: event.text,
237
+ });
238
+ break;
239
+ case "end":
240
+ this.sendNotification("turn.end", {
241
+ turnId: event.turnId,
242
+ content: event.content,
243
+ usage: event.usage,
244
+ model: event.model,
245
+ provider: event.provider,
246
+ });
247
+ break;
248
+ case "error":
249
+ this.sendNotification("turn.error", {
250
+ turnId: event.turnId,
251
+ error: event.error,
252
+ code: event.code,
253
+ });
254
+ break;
255
+ case "skill_instruction":
256
+ this.sendNotification("turn.skill_instruction", {
257
+ turnId: event.turnId,
258
+ instruction: event.instruction,
259
+ });
260
+ break;
261
+ case "tool_call":
262
+ // Informational only — actual execution RPC is handled
263
+ // by requestToolExecution() when toolInvoker.invoke() is called.
264
+ break;
265
+ case "tool_result":
266
+ this.sendNotification("turn.tool_result", {
267
+ turnId: event.turnId,
268
+ callId: event.callId,
269
+ name: event.name,
270
+ ok: event.ok,
271
+ ...(event.error ? { error: event.error } : {}),
272
+ });
273
+ break;
274
+ case "sidechain_started":
275
+ this.sendNotification("turn.sidechain_started", {
276
+ turnId: event.turnId,
277
+ depth: event.depth,
278
+ role: event.role,
279
+ });
280
+ break;
281
+ case "sidechain_completed":
282
+ this.sendNotification("turn.sidechain_completed", {
283
+ turnId: event.turnId,
284
+ depth: event.depth,
285
+ toolCallCount: event.toolCallCount,
286
+ });
287
+ break;
288
+ case "tool_blocked":
289
+ this.sendNotification("turn.tool_blocked", {
290
+ turnId: event.turnId,
291
+ callId: event.callId,
292
+ name: event.name,
293
+ reason: event.reason,
294
+ });
295
+ break;
296
+ case "recovery":
297
+ this.sendNotification("turn.recovery", {
298
+ turnId: event.turnId,
299
+ action: event.action,
300
+ ...(event.detail ? { detail: event.detail } : {}),
301
+ });
302
+ break;
303
+ case "plan_update":
304
+ this.sendNotification("turn.plan_update", {
305
+ turnId: event.turnId,
306
+ slug: event.slug,
307
+ content: event.content,
308
+ });
309
+ break;
310
+ }
311
+ }
312
+ this.log(`turn ${turnId} completed`);
313
+ }
314
+ catch (err) {
315
+ if (ac.signal.aborted) {
316
+ this.sendNotification("turn.error", {
317
+ turnId,
318
+ error: "Turn aborted",
319
+ code: "ABORTED",
320
+ });
321
+ }
322
+ else {
323
+ const message = err instanceof Error ? err.message : String(err);
324
+ this.sendNotification("turn.error", {
325
+ turnId,
326
+ error: message,
327
+ code: "INTERNAL_ERROR",
328
+ });
329
+ }
330
+ }
331
+ finally {
332
+ if (this.activeTurn === ac) {
333
+ this.activeTurn = null;
334
+ }
335
+ }
336
+ }
337
+ // ── Agent resolution (lazy create / re-create on config change) ───────
338
+ resolveAgent(config) {
339
+ // Build a config key to detect provider/model/key changes
340
+ const configKey = `${config.provider ?? ""}:${config.model ?? ""}:${config.apiKey?.slice(0, 8) ?? ""}:${config.baseUrl ?? ""}`;
341
+ if (this.agent && this.lastLlmConfigKey === configKey) {
342
+ return this.agent;
343
+ }
344
+ // Try explicit config first
345
+ let provider = config.provider;
346
+ let model = config.model;
347
+ let apiKey = config.apiKey;
348
+ const baseUrl = config.baseUrl;
349
+ if (!provider || !apiKey) {
350
+ // Fallback: auto-detect from env
351
+ const detected = autoDetectProvider(this.registry);
352
+ if (detected) {
353
+ provider = provider ?? detected.providerId;
354
+ apiKey = apiKey ?? detected.apiKey;
355
+ model = model ?? detected.defaultModel;
356
+ this.log(`auto-detected provider: ${provider}, model: ${model}`);
357
+ }
358
+ }
359
+ if (!provider || !apiKey) {
360
+ return null;
361
+ }
362
+ model = model ?? this.registry.getProvider(provider)?.defaultModel ?? "";
363
+ const client = createLLMClient({ provider, model, apiKey, baseUrl }, this.registry);
364
+ const log = {
365
+ info: (m) => this.log(m),
366
+ warn: (m) => this.log(`[warn] ${m}`),
367
+ error: (m) => this.log(`[error] ${m}`),
368
+ debug: (m) => {
369
+ if (this.verbose)
370
+ this.log(`[debug] ${m}`);
371
+ },
372
+ };
373
+ const toolInvoker = {
374
+ invoke: (turnId, name, args, signal) => this.requestToolExecution(turnId, name, args, signal),
375
+ };
376
+ // ─── HookRegistry ────────────────────────────────────────
377
+ // Skill learning: handled directly in tool-loop (has full metrics context).
378
+ // The tool-loop yields `skill_instruction` events → forwarded above in handleTurn().
379
+ // HookRegistry is available for context-compression and future hooks.
380
+ const hooks = createHookRegistry(log);
381
+ this.currentHooks = hooks;
382
+ // ─── Memory hooks (qmemory REST API) ─────────────────────
383
+ const qmemoryBaseUrl = (process.env.QMEMORY_BASE_URL ??
384
+ process.env.QLOGICAGENT_QMEMORY_BASE_URL ??
385
+ "").trim().replace(/\/+$/, "");
386
+ if (qmemoryBaseUrl) {
387
+ const memoryProvider = createQMemoryAdapter({
388
+ baseUrl: qmemoryBaseUrl,
389
+ apiKey: (process.env.QMEMORY_API_KEY ?? "").trim() || undefined,
390
+ timeoutMs: 5_000,
391
+ });
392
+ registerMemoryHooks(hooks, {
393
+ memoryProvider,
394
+ userId: this.currentSessionId ?? "default",
395
+ log: { debug: (m) => log.debug(m), warn: (m) => log.warn(m) },
396
+ });
397
+ }
398
+ // Fire session.created for the current session
399
+ if (this.currentSessionId) {
400
+ hooks.invoke("session.created", { sessionId: this.currentSessionId }).catch(() => { });
401
+ }
402
+ this.agent = new Agent({
403
+ llmTransport: client.transport,
404
+ apiKey: client.apiKey,
405
+ toolInvoker,
406
+ log,
407
+ hooks,
408
+ maxRounds: config.maxRounds,
409
+ verbose: this.verbose,
410
+ });
411
+ this.lastLlmConfigKey = configKey;
412
+ this.log(`created Agent (provider: ${provider}, model: ${model})`);
413
+ return this.agent;
414
+ }
415
+ // ── Tool call request (used by real Agent in Phase 2+) ────────────────
416
+ /**
417
+ * Request tool execution from the Gateway host.
418
+ * Sends a turn.tool_call notification and waits for tool.result.
419
+ */
420
+ async requestToolExecution(turnId, name, args, signal) {
421
+ const callId = `tc_${randomUUID().slice(0, 8)}`;
422
+ return new Promise((resolve, reject) => {
423
+ if (signal?.aborted) {
424
+ reject(new Error("Aborted"));
425
+ return;
426
+ }
427
+ this.pendingToolResults.set(callId, { resolve });
428
+ const onAbort = () => {
429
+ this.pendingToolResults.delete(callId);
430
+ reject(new Error("Aborted"));
431
+ };
432
+ signal?.addEventListener("abort", onAbort, { once: true });
433
+ this.sendNotification("turn.tool_call", {
434
+ turnId,
435
+ callId,
436
+ name,
437
+ arguments: args,
438
+ });
439
+ });
440
+ }
441
+ // ── Helpers ───────────────────────────────────────────────────────────
442
+ // ── I/O ───────────────────────────────────────────────────────────────
443
+ sendResponse(id, result, error) {
444
+ const msg = { jsonrpc: "2.0", id };
445
+ if (error)
446
+ msg.error = error;
447
+ else
448
+ msg.result = result;
449
+ this.writeStdout(msg);
450
+ }
451
+ sendNotification(method, params) {
452
+ const msg = { jsonrpc: "2.0", method, params };
453
+ this.writeStdout(msg);
454
+ }
455
+ writeStdout(msg) {
456
+ process.stdout.write(`${JSON.stringify(msg)}\n`);
457
+ }
458
+ log(message) {
459
+ if (this.verbose) {
460
+ process.stderr.write(`[qlogicagent] ${message}\n`);
461
+ }
462
+ }
463
+ }
464
+ //# sourceMappingURL=stdio-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio-server.js","sourceRoot":"","sources":["../../src/cli/stdio-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Centralized CLI startup configuration.
3
+ *
4
+ * Parses and validates all configuration from CLI args and environment.
5
+ * Single source of truth for qlogicagent runtime config.
6
+ */
7
+ export interface AgentConfig {
8
+ /** Enable verbose logging to stderr. */
9
+ verbose: boolean;
10
+ }
11
+ /**
12
+ * Parse CLI arguments into AgentConfig.
13
+ *
14
+ * Supports:
15
+ * --verbose / -v Enable verbose logging
16
+ */
17
+ export declare function parseCliArgs(argv: string[]): AgentConfig;
18
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC3B,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAUxD"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Centralized CLI startup configuration.
3
+ *
4
+ * Parses and validates all configuration from CLI args and environment.
5
+ * Single source of truth for qlogicagent runtime config.
6
+ */
7
+ /**
8
+ * Parse CLI arguments into AgentConfig.
9
+ *
10
+ * Supports:
11
+ * --verbose / -v Enable verbose logging
12
+ */
13
+ export function parseCliArgs(argv) {
14
+ const config = { verbose: false };
15
+ for (const arg of argv.slice(2)) {
16
+ if (arg === "--verbose" || arg === "-v") {
17
+ config.verbose = true;
18
+ }
19
+ }
20
+ return config;
21
+ }
22
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,IAAc;IAC1C,MAAM,MAAM,GAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAE/C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACzC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Hook system types for the Agent Runtime.
3
+ *
4
+ * Hooks allow hosts and middleware to intercept, modify, or observe events
5
+ * at well-defined lifecycle points during session, turn, and tool execution.
6
+ */
7
+ /**
8
+ * All supported hook points in the Agent Runtime lifecycle.
9
+ */
10
+ export type HookPoint = "session.created" | "session.ended" | "turn.submitted" | "turn.before_inference" | "turn.after_inference" | "turn.completed" | "turn.failed" | "tool.before_invoke" | "tool.after_invoke" | "tool.invoke_failed" | "approval.requested" | "approval.responded" | "context.before_compact" | "context.after_compact" | "memory.before_recall" | "memory.after_recall";
11
+ export interface HookSessionContext {
12
+ sessionId: string;
13
+ gatewayId?: string;
14
+ deviceId?: string;
15
+ mode?: string;
16
+ }
17
+ export interface HookTurnContext extends HookSessionContext {
18
+ turnId: string;
19
+ executionId?: string;
20
+ rootExecutionId?: string;
21
+ }
22
+ export interface HookToolContext extends HookTurnContext {
23
+ callId: string;
24
+ toolName: string;
25
+ arguments?: Record<string, unknown>;
26
+ }
27
+ export interface HookApprovalContext extends HookTurnContext {
28
+ approvalId: string;
29
+ callId?: string;
30
+ toolName?: string;
31
+ decision?: "approved" | "denied" | "expired" | "cancelled";
32
+ }
33
+ export interface HookContextMap {
34
+ "session.created": HookSessionContext;
35
+ "session.ended": HookSessionContext;
36
+ "turn.submitted": HookTurnContext & {
37
+ prompt?: string;
38
+ };
39
+ "turn.before_inference": HookTurnContext & {
40
+ model?: string;
41
+ messages?: unknown[];
42
+ };
43
+ "turn.after_inference": HookTurnContext & {
44
+ model?: string;
45
+ response?: unknown;
46
+ success?: boolean;
47
+ error?: string;
48
+ };
49
+ "turn.completed": HookTurnContext & {
50
+ outcomeId?: string;
51
+ };
52
+ "turn.failed": HookTurnContext & {
53
+ code?: string;
54
+ error?: string;
55
+ };
56
+ "tool.before_invoke": HookToolContext;
57
+ "tool.after_invoke": HookToolContext & {
58
+ result?: unknown;
59
+ ok: boolean;
60
+ };
61
+ "tool.invoke_failed": HookToolContext & {
62
+ error?: string;
63
+ };
64
+ "approval.requested": HookApprovalContext;
65
+ "approval.responded": HookApprovalContext;
66
+ "context.before_compact": HookTurnContext & {
67
+ tokenCount?: number;
68
+ messageCount?: number;
69
+ };
70
+ "context.after_compact": HookTurnContext & {
71
+ tokenCount?: number;
72
+ removedCount?: number;
73
+ };
74
+ "memory.before_recall": HookTurnContext & {
75
+ query?: string;
76
+ };
77
+ "memory.after_recall": HookTurnContext & {
78
+ blockCount?: number;
79
+ };
80
+ }
81
+ /**
82
+ * Result of a hook handler invocation.
83
+ *
84
+ * - `continue`: proceed normally (optionally with modified context)
85
+ * - `abort`: stop execution (for "before" hooks only)
86
+ * - `skip`: skip this step but continue the overall flow
87
+ */
88
+ export interface HookResult<T = unknown> {
89
+ action: "continue" | "abort" | "skip";
90
+ /** Modified context to pass downstream (only for "continue") */
91
+ context?: T;
92
+ /** Reason for abort/skip (for logging) */
93
+ reason?: string;
94
+ }
95
+ /**
96
+ * A hook handler function.
97
+ *
98
+ * @param point - The hook point being invoked
99
+ * @param context - Event-specific context data
100
+ * @returns A HookResult or void (treated as "continue")
101
+ */
102
+ export type HookHandler<P extends HookPoint = HookPoint> = (point: P, context: HookContextMap[P]) => HookResult<HookContextMap[P]> | void | Promise<HookResult<HookContextMap[P]> | void>;
103
+ /**
104
+ * Hook registration entry.
105
+ */
106
+ export interface HookRegistration<P extends HookPoint = HookPoint> {
107
+ point: P;
108
+ handler: HookHandler<P>;
109
+ /** Priority (lower = earlier). Default: 100 */
110
+ priority?: number;
111
+ /** Optional label for debugging */
112
+ label?: string;
113
+ }
114
+ /**
115
+ * Interface for a hook registry that manages hook handlers.
116
+ */
117
+ export interface HookRegistry {
118
+ register<P extends HookPoint>(registration: HookRegistration<P>): () => void;
119
+ invoke<P extends HookPoint>(point: P, context: HookContextMap[P]): Promise<HookResult<HookContextMap[P]>>;
120
+ }
121
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/contracts/hooks.ts"],"names":[],"mappings":"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"}