@itphx/synth-core 0.2.0 → 0.4.4

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 (670) hide show
  1. package/definitions/protected-paths.json +36 -0
  2. package/definitions/shell-policy.json +36 -0
  3. package/dist/auth/local.d.ts +14 -0
  4. package/dist/auth/local.d.ts.map +1 -1
  5. package/dist/auth/local.js +63 -11
  6. package/dist/auth/local.js.map +1 -1
  7. package/dist/auth/local.test.js +59 -0
  8. package/dist/auth/local.test.js.map +1 -1
  9. package/dist/definitions/protected-paths.json +36 -0
  10. package/dist/definitions/shell-policy.json +36 -0
  11. package/dist/engine/agents/definitions/admin.json +3 -1
  12. package/dist/engine/agents/definitions/analyst.json +3 -1
  13. package/dist/engine/agents/definitions/assistant.json +2 -2
  14. package/dist/engine/agents/definitions/auditor.json +4 -1
  15. package/dist/engine/agents/definitions/developer.json +4 -1
  16. package/dist/engine/agents/definitions/devops.json +4 -1
  17. package/dist/engine/agents/definitions/explore.json +3 -3
  18. package/dist/engine/agents/definitions/general.json +2 -2
  19. package/dist/engine/agents/definitions/pm.json +5 -1
  20. package/dist/engine/agents/definitions/qa.json +4 -1
  21. package/dist/engine/agents/definitions/title.json +2 -2
  22. package/dist/engine/agents/index.d.ts +4 -0
  23. package/dist/engine/agents/index.d.ts.map +1 -1
  24. package/dist/engine/agents/index.js +9 -3
  25. package/dist/engine/agents/index.js.map +1 -1
  26. package/dist/engine/agents/mode.d.ts +5 -3
  27. package/dist/engine/agents/mode.d.ts.map +1 -1
  28. package/dist/engine/agents/mode.js +6 -6
  29. package/dist/engine/agents/mode.js.map +1 -1
  30. package/dist/engine/agents/mode.test.js +9 -3
  31. package/dist/engine/agents/mode.test.js.map +1 -1
  32. package/dist/engine/agents/normalize.d.ts +9 -0
  33. package/dist/engine/agents/normalize.d.ts.map +1 -0
  34. package/dist/engine/agents/normalize.js +22 -0
  35. package/dist/engine/agents/normalize.js.map +1 -0
  36. package/dist/engine/agents/normalize.test.d.ts +2 -0
  37. package/dist/engine/agents/normalize.test.d.ts.map +1 -0
  38. package/dist/engine/agents/normalize.test.js +37 -0
  39. package/dist/engine/agents/normalize.test.js.map +1 -0
  40. package/dist/engine/agents/registry.d.ts +2 -1
  41. package/dist/engine/agents/registry.d.ts.map +1 -1
  42. package/dist/engine/agents/registry.js +7 -6
  43. package/dist/engine/agents/registry.js.map +1 -1
  44. package/dist/engine/agents/registry.test.js +24 -0
  45. package/dist/engine/agents/registry.test.js.map +1 -1
  46. package/dist/engine/context/config.d.ts +43 -6
  47. package/dist/engine/context/config.d.ts.map +1 -1
  48. package/dist/engine/context/config.js +123 -26
  49. package/dist/engine/context/config.js.map +1 -1
  50. package/dist/engine/context/config.security.test.d.ts +2 -0
  51. package/dist/engine/context/config.security.test.d.ts.map +1 -0
  52. package/dist/engine/context/config.security.test.js +82 -0
  53. package/dist/engine/context/config.security.test.js.map +1 -0
  54. package/dist/engine/context/config.test.js +199 -10
  55. package/dist/engine/context/config.test.js.map +1 -1
  56. package/dist/engine/context/optimizer.d.ts +20 -1
  57. package/dist/engine/context/optimizer.d.ts.map +1 -1
  58. package/dist/engine/context/optimizer.js +63 -29
  59. package/dist/engine/context/optimizer.js.map +1 -1
  60. package/dist/engine/context/optimizer.test.js +156 -0
  61. package/dist/engine/context/optimizer.test.js.map +1 -1
  62. package/dist/engine/gateway/gateway-provider.d.ts +4 -0
  63. package/dist/engine/gateway/gateway-provider.d.ts.map +1 -1
  64. package/dist/engine/gateway/gateway-provider.js +7 -2
  65. package/dist/engine/gateway/gateway-provider.js.map +1 -1
  66. package/dist/engine/gateway/gateway-provider.test.js +3 -3
  67. package/dist/engine/gateway/gateway-provider.test.js.map +1 -1
  68. package/dist/engine/gateway/input-guard.d.ts.map +1 -1
  69. package/dist/engine/gateway/input-guard.js +2 -1
  70. package/dist/engine/gateway/input-guard.js.map +1 -1
  71. package/dist/engine/gateway/secret-detector.d.ts.map +1 -1
  72. package/dist/engine/gateway/secret-detector.js +2 -3
  73. package/dist/engine/gateway/secret-detector.js.map +1 -1
  74. package/dist/engine/gateway/secret-detector.test.js +4 -4
  75. package/dist/engine/gateway/secret-detector.test.js.map +1 -1
  76. package/dist/engine/llm-error.d.ts +23 -0
  77. package/dist/engine/llm-error.d.ts.map +1 -0
  78. package/dist/engine/llm-error.js +86 -0
  79. package/dist/engine/llm-error.js.map +1 -0
  80. package/dist/engine/llm-error.test.d.ts +2 -0
  81. package/dist/engine/llm-error.test.d.ts.map +1 -0
  82. package/dist/engine/llm-error.test.js +101 -0
  83. package/dist/engine/llm-error.test.js.map +1 -0
  84. package/dist/engine/orchestrator-deny-abort.test.d.ts +2 -0
  85. package/dist/engine/orchestrator-deny-abort.test.d.ts.map +1 -0
  86. package/dist/engine/orchestrator-deny-abort.test.js +414 -0
  87. package/dist/engine/orchestrator-deny-abort.test.js.map +1 -0
  88. package/dist/engine/orchestrator-error.test.d.ts +2 -0
  89. package/dist/engine/orchestrator-error.test.d.ts.map +1 -0
  90. package/dist/engine/orchestrator-error.test.js +136 -0
  91. package/dist/engine/orchestrator-error.test.js.map +1 -0
  92. package/dist/engine/orchestrator.d.ts +123 -10
  93. package/dist/engine/orchestrator.d.ts.map +1 -1
  94. package/dist/engine/orchestrator.js +791 -181
  95. package/dist/engine/orchestrator.js.map +1 -1
  96. package/dist/engine/orchestrator.test.js +723 -0
  97. package/dist/engine/orchestrator.test.js.map +1 -1
  98. package/dist/engine/permission/approval.d.ts.map +1 -1
  99. package/dist/engine/permission/approval.js +29 -10
  100. package/dist/engine/permission/approval.js.map +1 -1
  101. package/dist/engine/permission/approval.test.js +57 -0
  102. package/dist/engine/permission/approval.test.js.map +1 -1
  103. package/dist/engine/permission/evaluator.d.ts +13 -0
  104. package/dist/engine/permission/evaluator.d.ts.map +1 -1
  105. package/dist/engine/permission/evaluator.js +121 -22
  106. package/dist/engine/permission/evaluator.js.map +1 -1
  107. package/dist/engine/permission/evaluator.test.js +188 -4
  108. package/dist/engine/permission/evaluator.test.js.map +1 -1
  109. package/dist/engine/permission/groups.d.ts.map +1 -1
  110. package/dist/engine/permission/groups.js +19 -1
  111. package/dist/engine/permission/groups.js.map +1 -1
  112. package/dist/engine/permission/integration.test.js +165 -4
  113. package/dist/engine/permission/integration.test.js.map +1 -1
  114. package/dist/engine/plan.integration.test.js +142 -33
  115. package/dist/engine/plan.integration.test.js.map +1 -1
  116. package/dist/engine/router/micro/tasks/classify-intent.d.ts.map +1 -1
  117. package/dist/engine/router/micro/tasks/classify-intent.js +24 -18
  118. package/dist/engine/router/micro/tasks/classify-intent.js.map +1 -1
  119. package/dist/engine/router/micro/tasks/classify-intent.test.js +4 -4
  120. package/dist/engine/router/micro/tasks/classify-intent.test.js.map +1 -1
  121. package/dist/engine/router/micro/tasks/enum-decision.d.ts.map +1 -1
  122. package/dist/engine/router/micro/tasks/enum-decision.js +14 -8
  123. package/dist/engine/router/micro/tasks/enum-decision.js.map +1 -1
  124. package/dist/engine/router/micro/tasks/enum-decision.test.js +2 -2
  125. package/dist/engine/router/micro/tasks/enum-decision.test.js.map +1 -1
  126. package/dist/engine/router/micro/tasks/small-talk.d.ts.map +1 -1
  127. package/dist/engine/router/micro/tasks/small-talk.js +20 -17
  128. package/dist/engine/router/micro/tasks/small-talk.js.map +1 -1
  129. package/dist/engine/router/micro/types.d.ts +2 -0
  130. package/dist/engine/router/micro/types.d.ts.map +1 -1
  131. package/dist/engine/router/provider-pool.d.ts +2 -2
  132. package/dist/engine/router/provider-pool.d.ts.map +1 -1
  133. package/dist/engine/router/provider-pool.js +5 -3
  134. package/dist/engine/router/provider-pool.js.map +1 -1
  135. package/dist/engine/router/quality-checker.d.ts.map +1 -1
  136. package/dist/engine/router/quality-checker.js +15 -14
  137. package/dist/engine/router/quality-checker.js.map +1 -1
  138. package/dist/engine/router/router.d.ts +2 -2
  139. package/dist/engine/router/router.d.ts.map +1 -1
  140. package/dist/engine/router/router.js +8 -5
  141. package/dist/engine/router/router.js.map +1 -1
  142. package/dist/engine/router/utils.d.ts +2 -2
  143. package/dist/engine/router/utils.d.ts.map +1 -1
  144. package/dist/engine/router/utils.js +2 -1
  145. package/dist/engine/router/utils.js.map +1 -1
  146. package/dist/engine/security/index.d.ts +6 -0
  147. package/dist/engine/security/index.d.ts.map +1 -1
  148. package/dist/engine/security/index.js +3 -0
  149. package/dist/engine/security/index.js.map +1 -1
  150. package/dist/engine/security/integration.test.js +11 -11
  151. package/dist/engine/security/integration.test.js.map +1 -1
  152. package/dist/engine/security/prompt-injection.d.ts +1 -1
  153. package/dist/engine/security/prompt-injection.d.ts.map +1 -1
  154. package/dist/engine/security/prompt-injection.js +2 -1
  155. package/dist/engine/security/prompt-injection.js.map +1 -1
  156. package/dist/engine/security/prompt-injection.test.js +1 -1
  157. package/dist/engine/security/prompt-injection.test.js.map +1 -1
  158. package/dist/engine/security/protected-paths-store.d.ts +56 -0
  159. package/dist/engine/security/protected-paths-store.d.ts.map +1 -0
  160. package/dist/engine/security/protected-paths-store.js +239 -0
  161. package/dist/engine/security/protected-paths-store.js.map +1 -0
  162. package/dist/engine/security/protected-paths.d.ts +54 -0
  163. package/dist/engine/security/protected-paths.d.ts.map +1 -0
  164. package/dist/engine/security/protected-paths.js +193 -0
  165. package/dist/engine/security/protected-paths.js.map +1 -0
  166. package/dist/engine/security/protected-paths.test.d.ts +2 -0
  167. package/dist/engine/security/protected-paths.test.d.ts.map +1 -0
  168. package/dist/engine/security/protected-paths.test.js +166 -0
  169. package/dist/engine/security/protected-paths.test.js.map +1 -0
  170. package/dist/engine/security/shell-guard.d.ts +117 -0
  171. package/dist/engine/security/shell-guard.d.ts.map +1 -0
  172. package/dist/engine/security/shell-guard.js +578 -0
  173. package/dist/engine/security/shell-guard.js.map +1 -0
  174. package/dist/engine/security/shell-guard.test.d.ts +2 -0
  175. package/dist/engine/security/shell-guard.test.d.ts.map +1 -0
  176. package/dist/engine/security/shell-guard.test.js +378 -0
  177. package/dist/engine/security/shell-guard.test.js.map +1 -0
  178. package/dist/engine/system-messages.d.ts +237 -0
  179. package/dist/engine/system-messages.d.ts.map +1 -0
  180. package/dist/engine/system-messages.js +276 -0
  181. package/dist/engine/system-messages.js.map +1 -0
  182. package/dist/engine/system-messages.test.d.ts +2 -0
  183. package/dist/engine/system-messages.test.d.ts.map +1 -0
  184. package/dist/engine/system-messages.test.js +81 -0
  185. package/dist/engine/system-messages.test.js.map +1 -0
  186. package/dist/engine/tools/abort.d.ts +21 -0
  187. package/dist/engine/tools/abort.d.ts.map +1 -0
  188. package/dist/engine/tools/abort.js +44 -0
  189. package/dist/engine/tools/abort.js.map +1 -0
  190. package/dist/engine/tools/classify-conversation.d.ts.map +1 -1
  191. package/dist/engine/tools/classify-conversation.js +7 -2
  192. package/dist/engine/tools/classify-conversation.js.map +1 -1
  193. package/dist/engine/tools/fs-read.d.ts.map +1 -1
  194. package/dist/engine/tools/fs-read.js +17 -6
  195. package/dist/engine/tools/fs-read.js.map +1 -1
  196. package/dist/engine/tools/fs-read.test.js +43 -0
  197. package/dist/engine/tools/fs-read.test.js.map +1 -1
  198. package/dist/engine/tools/fs-write.d.ts.map +1 -1
  199. package/dist/engine/tools/fs-write.js +47 -17
  200. package/dist/engine/tools/fs-write.js.map +1 -1
  201. package/dist/engine/tools/git.d.ts +2 -1
  202. package/dist/engine/tools/git.d.ts.map +1 -1
  203. package/dist/engine/tools/git.js +85 -17
  204. package/dist/engine/tools/git.js.map +1 -1
  205. package/dist/engine/tools/git.test.js +39 -0
  206. package/dist/engine/tools/git.test.js.map +1 -1
  207. package/dist/engine/tools/index.d.ts.map +1 -1
  208. package/dist/engine/tools/index.js +16 -2
  209. package/dist/engine/tools/index.js.map +1 -1
  210. package/dist/engine/tools/json-schema.js +38 -0
  211. package/dist/engine/tools/json-schema.js.map +1 -1
  212. package/dist/engine/tools/json-schema.test.d.ts +2 -0
  213. package/dist/engine/tools/json-schema.test.d.ts.map +1 -0
  214. package/dist/engine/tools/json-schema.test.js +40 -0
  215. package/dist/engine/tools/json-schema.test.js.map +1 -0
  216. package/dist/engine/tools/path-utils.d.ts.map +1 -1
  217. package/dist/engine/tools/path-utils.js +24 -0
  218. package/dist/engine/tools/path-utils.js.map +1 -1
  219. package/dist/engine/tools/path-utils.test.js +15 -0
  220. package/dist/engine/tools/path-utils.test.js.map +1 -1
  221. package/dist/engine/tools/plan.d.ts +11 -3
  222. package/dist/engine/tools/plan.d.ts.map +1 -1
  223. package/dist/engine/tools/plan.js +326 -95
  224. package/dist/engine/tools/plan.js.map +1 -1
  225. package/dist/engine/tools/plan.test.js +161 -47
  226. package/dist/engine/tools/plan.test.js.map +1 -1
  227. package/dist/engine/tools/project-context.d.ts.map +1 -1
  228. package/dist/engine/tools/project-context.js +54 -42
  229. package/dist/engine/tools/project-context.js.map +1 -1
  230. package/dist/engine/tools/project-context.test.js +37 -22
  231. package/dist/engine/tools/project-context.test.js.map +1 -1
  232. package/dist/engine/tools/project-manage.d.ts +24 -0
  233. package/dist/engine/tools/project-manage.d.ts.map +1 -0
  234. package/dist/engine/tools/project-manage.js +311 -0
  235. package/dist/engine/tools/project-manage.js.map +1 -0
  236. package/dist/engine/tools/project-manage.test.d.ts +2 -0
  237. package/dist/engine/tools/project-manage.test.d.ts.map +1 -0
  238. package/dist/engine/tools/project-manage.test.js +196 -0
  239. package/dist/engine/tools/project-manage.test.js.map +1 -0
  240. package/dist/engine/tools/read-reference.d.ts.map +1 -1
  241. package/dist/engine/tools/read-reference.js +10 -5
  242. package/dist/engine/tools/read-reference.js.map +1 -1
  243. package/dist/engine/tools/read-reference.test.js +5 -2
  244. package/dist/engine/tools/read-reference.test.js.map +1 -1
  245. package/dist/engine/tools/search.d.ts.map +1 -1
  246. package/dist/engine/tools/search.js +16 -6
  247. package/dist/engine/tools/search.js.map +1 -1
  248. package/dist/engine/tools/shell.d.ts.map +1 -1
  249. package/dist/engine/tools/shell.js +17 -4
  250. package/dist/engine/tools/shell.js.map +1 -1
  251. package/dist/engine/tools/shell.test.js +63 -1
  252. package/dist/engine/tools/shell.test.js.map +1 -1
  253. package/dist/engine/tools/task-resume.d.ts +93 -0
  254. package/dist/engine/tools/task-resume.d.ts.map +1 -0
  255. package/dist/engine/tools/task-resume.js +269 -0
  256. package/dist/engine/tools/task-resume.js.map +1 -0
  257. package/dist/engine/tools/task-resume.test.d.ts +2 -0
  258. package/dist/engine/tools/task-resume.test.d.ts.map +1 -0
  259. package/dist/engine/tools/task-resume.test.js +423 -0
  260. package/dist/engine/tools/task-resume.test.js.map +1 -0
  261. package/dist/engine/tools/task.d.ts +81 -2
  262. package/dist/engine/tools/task.d.ts.map +1 -1
  263. package/dist/engine/tools/task.js +898 -471
  264. package/dist/engine/tools/task.js.map +1 -1
  265. package/dist/engine/tools/task.test.js +371 -3
  266. package/dist/engine/tools/task.test.js.map +1 -1
  267. package/dist/engine/tools/todo.d.ts +27 -1
  268. package/dist/engine/tools/todo.d.ts.map +1 -1
  269. package/dist/engine/tools/todo.js +320 -14
  270. package/dist/engine/tools/todo.js.map +1 -1
  271. package/dist/engine/tools/todo.test.js +150 -48
  272. package/dist/engine/tools/todo.test.js.map +1 -1
  273. package/dist/engine/tools/web.d.ts.map +1 -1
  274. package/dist/engine/tools/web.js +65 -18
  275. package/dist/engine/tools/web.js.map +1 -1
  276. package/dist/engine/tools/web.test.js +94 -2
  277. package/dist/engine/tools/web.test.js.map +1 -1
  278. package/dist/events/bus.d.ts +7 -0
  279. package/dist/events/bus.d.ts.map +1 -1
  280. package/dist/events/bus.js +26 -3
  281. package/dist/events/bus.js.map +1 -1
  282. package/dist/events/bus.test.js +46 -0
  283. package/dist/events/bus.test.js.map +1 -1
  284. package/dist/index.d.ts +11 -3
  285. package/dist/index.d.ts.map +1 -1
  286. package/dist/index.js +7 -3
  287. package/dist/index.js.map +1 -1
  288. package/dist/logger.d.ts.map +1 -1
  289. package/dist/logger.js +0 -1
  290. package/dist/logger.js.map +1 -1
  291. package/dist/main.js +250 -10
  292. package/dist/main.js.map +1 -1
  293. package/dist/prompts/roles/ADMIN.en.md +12 -11
  294. package/dist/prompts/roles/ADMIN.ru.md +12 -11
  295. package/dist/prompts/roles/ANALYST.en.md +12 -11
  296. package/dist/prompts/roles/ANALYST.ru.md +12 -11
  297. package/dist/prompts/roles/ASSISTANT.en.md +12 -11
  298. package/dist/prompts/roles/ASSISTANT.ru.md +12 -11
  299. package/dist/prompts/roles/AUDITOR.en.md +12 -11
  300. package/dist/prompts/roles/AUDITOR.ru.md +12 -11
  301. package/dist/prompts/roles/DEVELOPER.en.md +12 -11
  302. package/dist/prompts/roles/DEVELOPER.ru.md +12 -11
  303. package/dist/prompts/roles/DEVOPS.en.md +12 -11
  304. package/dist/prompts/roles/DEVOPS.ru.md +12 -11
  305. package/dist/prompts/roles/PM.en.md +12 -11
  306. package/dist/prompts/roles/PM.ru.md +12 -11
  307. package/dist/prompts/roles/QA.en.md +12 -11
  308. package/dist/prompts/roles/QA.ru.md +12 -11
  309. package/dist/prompts/roles/TITLE.en.md +30 -0
  310. package/dist/prompts/roles/TITLE.ru.md +3 -11
  311. package/dist/prompts/security/ask-protected-path.en.md +1 -0
  312. package/dist/prompts/security/ask-protected-path.ru.md +1 -0
  313. package/dist/prompts/security/deny-command.en.md +1 -0
  314. package/dist/prompts/security/deny-command.ru.md +1 -0
  315. package/dist/prompts/security/deny-protected-dir.en.md +1 -0
  316. package/dist/prompts/security/deny-protected-dir.ru.md +1 -0
  317. package/dist/prompts/security/deny-protected-path.en.md +1 -0
  318. package/dist/prompts/security/deny-protected-path.ru.md +1 -0
  319. package/dist/prompts/subagents/explore.en.md +23 -0
  320. package/dist/prompts/subagents/general.en.md +19 -0
  321. package/dist/prompts/system/MODE_ACT.en.md +20 -0
  322. package/{prompts/modes/act.md → dist/prompts/system/MODE_ACT.ru.md} +2 -0
  323. package/dist/prompts/system/MODE_PLAN.en.md +22 -0
  324. package/dist/prompts/{modes/plan.md → system/MODE_PLAN.ru.md} +4 -3
  325. package/dist/prompts/system/MODE_YOLO.en.md +22 -0
  326. package/{prompts/modes/yolo.md → dist/prompts/system/MODE_YOLO.ru.md} +2 -0
  327. package/dist/prompts/system/PLAN_GUIDE.en.md +36 -0
  328. package/dist/prompts/system/PLAN_GUIDE.ru.md +33 -0
  329. package/dist/prompts/system/PLAN_MODE_AUTO.en.md +11 -0
  330. package/dist/prompts/system/PLAN_MODE_AUTO.ru.md +12 -0
  331. package/dist/prompts/system/PLAN_MODE_STRICT_APPROVED.en.md +8 -0
  332. package/dist/prompts/system/PLAN_MODE_STRICT_APPROVED.ru.md +8 -0
  333. package/dist/prompts/system/PLAN_MODE_STRICT_NOT_APPROVED.en.md +7 -0
  334. package/dist/prompts/system/PLAN_MODE_STRICT_NOT_APPROVED.ru.md +7 -0
  335. package/dist/providers/anthropic.d.ts.map +1 -1
  336. package/dist/providers/anthropic.js +28 -2
  337. package/dist/providers/anthropic.js.map +1 -1
  338. package/dist/providers/base.d.ts +20 -1
  339. package/dist/providers/base.d.ts.map +1 -1
  340. package/dist/providers/base.js +17 -0
  341. package/dist/providers/base.js.map +1 -1
  342. package/dist/providers/exceptions.d.ts.map +1 -1
  343. package/dist/providers/exceptions.js +3 -2
  344. package/dist/providers/exceptions.js.map +1 -1
  345. package/dist/providers/index.d.ts +1 -0
  346. package/dist/providers/index.d.ts.map +1 -1
  347. package/dist/providers/index.js +4 -0
  348. package/dist/providers/index.js.map +1 -1
  349. package/dist/providers/ollama.d.ts +23 -0
  350. package/dist/providers/ollama.d.ts.map +1 -1
  351. package/dist/providers/ollama.js +128 -12
  352. package/dist/providers/ollama.js.map +1 -1
  353. package/dist/providers/ollama.test.d.ts +2 -0
  354. package/dist/providers/ollama.test.d.ts.map +1 -0
  355. package/dist/providers/ollama.test.js +129 -0
  356. package/dist/providers/ollama.test.js.map +1 -0
  357. package/dist/providers/openai.d.ts.map +1 -1
  358. package/dist/providers/openai.js +82 -9
  359. package/dist/providers/openai.js.map +1 -1
  360. package/dist/providers/openai.test.d.ts +2 -0
  361. package/dist/providers/openai.test.d.ts.map +1 -0
  362. package/dist/providers/openai.test.js +84 -0
  363. package/dist/providers/openai.test.js.map +1 -0
  364. package/dist/providers/remote.d.ts +60 -0
  365. package/dist/providers/remote.d.ts.map +1 -0
  366. package/dist/providers/remote.js +394 -0
  367. package/dist/providers/remote.js.map +1 -0
  368. package/dist/providers/remote.test.d.ts +2 -0
  369. package/dist/providers/remote.test.d.ts.map +1 -0
  370. package/dist/providers/remote.test.js +258 -0
  371. package/dist/providers/remote.test.js.map +1 -0
  372. package/dist/providers/stream-error.test.d.ts +2 -0
  373. package/dist/providers/stream-error.test.d.ts.map +1 -0
  374. package/dist/providers/stream-error.test.js +63 -0
  375. package/dist/providers/stream-error.test.js.map +1 -0
  376. package/dist/providers/timeout.test.d.ts +2 -0
  377. package/dist/providers/timeout.test.d.ts.map +1 -0
  378. package/dist/providers/timeout.test.js +129 -0
  379. package/dist/providers/timeout.test.js.map +1 -0
  380. package/dist/queue/processor.d.ts +22 -0
  381. package/dist/queue/processor.d.ts.map +1 -1
  382. package/dist/queue/processor.js +150 -25
  383. package/dist/queue/processor.js.map +1 -1
  384. package/dist/queue/processor.test.d.ts +2 -0
  385. package/dist/queue/processor.test.d.ts.map +1 -0
  386. package/dist/queue/processor.test.js +211 -0
  387. package/dist/queue/processor.test.js.map +1 -0
  388. package/dist/remote/aggregate.d.ts +43 -0
  389. package/dist/remote/aggregate.d.ts.map +1 -0
  390. package/dist/remote/aggregate.js +84 -0
  391. package/dist/remote/aggregate.js.map +1 -0
  392. package/dist/remote/aggregate.test.d.ts +2 -0
  393. package/dist/remote/aggregate.test.d.ts.map +1 -0
  394. package/dist/remote/aggregate.test.js +120 -0
  395. package/dist/remote/aggregate.test.js.map +1 -0
  396. package/dist/remote/client.d.ts +142 -0
  397. package/dist/remote/client.d.ts.map +1 -0
  398. package/dist/remote/client.js +290 -0
  399. package/dist/remote/client.js.map +1 -0
  400. package/dist/remote/client.test.d.ts +2 -0
  401. package/dist/remote/client.test.d.ts.map +1 -0
  402. package/dist/remote/client.test.js +176 -0
  403. package/dist/remote/client.test.js.map +1 -0
  404. package/dist/remote/connection.d.ts +66 -0
  405. package/dist/remote/connection.d.ts.map +1 -0
  406. package/dist/remote/connection.js +298 -0
  407. package/dist/remote/connection.js.map +1 -0
  408. package/dist/remote/connection.test.d.ts +2 -0
  409. package/dist/remote/connection.test.d.ts.map +1 -0
  410. package/dist/remote/connection.test.js +323 -0
  411. package/dist/remote/connection.test.js.map +1 -0
  412. package/dist/remote/credentials.d.ts +13 -0
  413. package/dist/remote/credentials.d.ts.map +1 -0
  414. package/dist/remote/credentials.js +81 -0
  415. package/dist/remote/credentials.js.map +1 -0
  416. package/dist/remote/credentials.test.d.ts +2 -0
  417. package/dist/remote/credentials.test.d.ts.map +1 -0
  418. package/dist/remote/credentials.test.js +69 -0
  419. package/dist/remote/credentials.test.js.map +1 -0
  420. package/dist/remote/device-flow.d.ts +72 -0
  421. package/dist/remote/device-flow.d.ts.map +1 -0
  422. package/dist/remote/device-flow.js +229 -0
  423. package/dist/remote/device-flow.js.map +1 -0
  424. package/dist/remote/device-flow.test.d.ts +2 -0
  425. package/dist/remote/device-flow.test.d.ts.map +1 -0
  426. package/dist/remote/device-flow.test.js +103 -0
  427. package/dist/remote/device-flow.test.js.map +1 -0
  428. package/dist/remote/event-bridge.d.ts +46 -0
  429. package/dist/remote/event-bridge.d.ts.map +1 -0
  430. package/dist/remote/event-bridge.js +218 -0
  431. package/dist/remote/event-bridge.js.map +1 -0
  432. package/dist/remote/event-bridge.test.d.ts +2 -0
  433. package/dist/remote/event-bridge.test.d.ts.map +1 -0
  434. package/dist/remote/event-bridge.test.js +240 -0
  435. package/dist/remote/event-bridge.test.js.map +1 -0
  436. package/dist/remote/index.d.ts +19 -0
  437. package/dist/remote/index.d.ts.map +1 -0
  438. package/dist/remote/index.js +11 -0
  439. package/dist/remote/index.js.map +1 -0
  440. package/dist/remote/session.d.ts +72 -0
  441. package/dist/remote/session.d.ts.map +1 -0
  442. package/dist/remote/session.js +248 -0
  443. package/dist/remote/session.js.map +1 -0
  444. package/dist/remote/session.test.d.ts +2 -0
  445. package/dist/remote/session.test.d.ts.map +1 -0
  446. package/dist/remote/session.test.js +482 -0
  447. package/dist/remote/session.test.js.map +1 -0
  448. package/dist/remote/transfer.d.ts +75 -0
  449. package/dist/remote/transfer.d.ts.map +1 -0
  450. package/dist/remote/transfer.js +491 -0
  451. package/dist/remote/transfer.js.map +1 -0
  452. package/dist/remote/transfer.test.d.ts +2 -0
  453. package/dist/remote/transfer.test.d.ts.map +1 -0
  454. package/dist/remote/transfer.test.js +416 -0
  455. package/dist/remote/transfer.test.js.map +1 -0
  456. package/dist/remote/types.d.ts +28 -0
  457. package/dist/remote/types.d.ts.map +1 -0
  458. package/dist/remote/types.js +10 -0
  459. package/dist/remote/types.js.map +1 -0
  460. package/dist/server/app.d.ts +62 -1
  461. package/dist/server/app.d.ts.map +1 -1
  462. package/dist/server/app.js +393 -27
  463. package/dist/server/app.js.map +1 -1
  464. package/dist/server/app.proxy.test.d.ts +2 -0
  465. package/dist/server/app.proxy.test.d.ts.map +1 -0
  466. package/dist/server/app.proxy.test.js +193 -0
  467. package/dist/server/app.proxy.test.js.map +1 -0
  468. package/dist/server/app.remote.test.d.ts +2 -0
  469. package/dist/server/app.remote.test.d.ts.map +1 -0
  470. package/dist/server/app.remote.test.js +674 -0
  471. package/dist/server/app.remote.test.js.map +1 -0
  472. package/dist/server/chat.d.ts.map +1 -1
  473. package/dist/server/chat.js +18 -2
  474. package/dist/server/chat.js.map +1 -1
  475. package/dist/server/proxy.d.ts +14 -0
  476. package/dist/server/proxy.d.ts.map +1 -0
  477. package/dist/server/proxy.js +93 -0
  478. package/dist/server/proxy.js.map +1 -0
  479. package/dist/server/routes/agents.d.ts.map +1 -1
  480. package/dist/server/routes/agents.js +39 -23
  481. package/dist/server/routes/agents.js.map +1 -1
  482. package/dist/server/routes/auth.d.ts +26 -2
  483. package/dist/server/routes/auth.d.ts.map +1 -1
  484. package/dist/server/routes/auth.js +269 -36
  485. package/dist/server/routes/auth.js.map +1 -1
  486. package/dist/server/routes/auth.test.d.ts +2 -0
  487. package/dist/server/routes/auth.test.d.ts.map +1 -0
  488. package/dist/server/routes/auth.test.js +466 -0
  489. package/dist/server/routes/auth.test.js.map +1 -0
  490. package/dist/server/routes/fs.d.ts +2 -1
  491. package/dist/server/routes/fs.d.ts.map +1 -1
  492. package/dist/server/routes/fs.js +340 -7
  493. package/dist/server/routes/fs.js.map +1 -1
  494. package/dist/server/routes/hybrid.d.ts +32 -0
  495. package/dist/server/routes/hybrid.d.ts.map +1 -0
  496. package/dist/server/routes/hybrid.js +21 -0
  497. package/dist/server/routes/hybrid.js.map +1 -0
  498. package/dist/server/routes/hybrid.test.d.ts +2 -0
  499. package/dist/server/routes/hybrid.test.d.ts.map +1 -0
  500. package/dist/server/routes/hybrid.test.js +454 -0
  501. package/dist/server/routes/hybrid.test.js.map +1 -0
  502. package/dist/server/routes/messages.d.ts +2 -1
  503. package/dist/server/routes/messages.d.ts.map +1 -1
  504. package/dist/server/routes/messages.js +104 -1
  505. package/dist/server/routes/messages.js.map +1 -1
  506. package/dist/server/routes/models.cache.test.d.ts +2 -0
  507. package/dist/server/routes/models.cache.test.d.ts.map +1 -0
  508. package/dist/server/routes/models.cache.test.js +59 -0
  509. package/dist/server/routes/models.cache.test.js.map +1 -0
  510. package/dist/server/routes/models.d.ts +9 -1
  511. package/dist/server/routes/models.d.ts.map +1 -1
  512. package/dist/server/routes/models.js +38 -3
  513. package/dist/server/routes/models.js.map +1 -1
  514. package/dist/server/routes/models.remote.test.d.ts +2 -0
  515. package/dist/server/routes/models.remote.test.d.ts.map +1 -0
  516. package/dist/server/routes/models.remote.test.js +101 -0
  517. package/dist/server/routes/models.remote.test.js.map +1 -0
  518. package/dist/server/routes/project-transfer.d.ts +16 -0
  519. package/dist/server/routes/project-transfer.d.ts.map +1 -0
  520. package/dist/server/routes/project-transfer.js +141 -0
  521. package/dist/server/routes/project-transfer.js.map +1 -0
  522. package/dist/server/routes/project-transfer.test.d.ts +2 -0
  523. package/dist/server/routes/project-transfer.test.d.ts.map +1 -0
  524. package/dist/server/routes/project-transfer.test.js +199 -0
  525. package/dist/server/routes/project-transfer.test.js.map +1 -0
  526. package/dist/server/routes/projects.d.ts +2 -1
  527. package/dist/server/routes/projects.d.ts.map +1 -1
  528. package/dist/server/routes/projects.js +101 -5
  529. package/dist/server/routes/projects.js.map +1 -1
  530. package/dist/server/routes/providers.d.ts +1 -1
  531. package/dist/server/routes/providers.d.ts.map +1 -1
  532. package/dist/server/routes/providers.js +3 -1
  533. package/dist/server/routes/providers.js.map +1 -1
  534. package/dist/server/routes/providers.test.d.ts +2 -0
  535. package/dist/server/routes/providers.test.d.ts.map +1 -0
  536. package/dist/server/routes/providers.test.js +58 -0
  537. package/dist/server/routes/providers.test.js.map +1 -0
  538. package/dist/server/routes/queue.d.ts +2 -1
  539. package/dist/server/routes/queue.d.ts.map +1 -1
  540. package/dist/server/routes/queue.js +180 -18
  541. package/dist/server/routes/queue.js.map +1 -1
  542. package/dist/server/routes/sessions.d.ts +9 -1
  543. package/dist/server/routes/sessions.d.ts.map +1 -1
  544. package/dist/server/routes/sessions.js +269 -18
  545. package/dist/server/routes/sessions.js.map +1 -1
  546. package/dist/server/routes/sessions.test.js +102 -2
  547. package/dist/server/routes/sessions.test.js.map +1 -1
  548. package/dist/server/routes/settings.d.ts +6 -1
  549. package/dist/server/routes/settings.d.ts.map +1 -1
  550. package/dist/server/routes/settings.js +138 -0
  551. package/dist/server/routes/settings.js.map +1 -1
  552. package/dist/server/routes/settings.test.js +65 -1
  553. package/dist/server/routes/settings.test.js.map +1 -1
  554. package/dist/server/serialize.d.ts +11 -3
  555. package/dist/server/serialize.d.ts.map +1 -1
  556. package/dist/server/serialize.js +11 -3
  557. package/dist/server/serialize.js.map +1 -1
  558. package/dist/sessions/auto-title.d.ts +1 -1
  559. package/dist/sessions/auto-title.d.ts.map +1 -1
  560. package/dist/sessions/auto-title.js +24 -13
  561. package/dist/sessions/auto-title.js.map +1 -1
  562. package/dist/sessions/manager.d.ts +1 -2
  563. package/dist/sessions/manager.d.ts.map +1 -1
  564. package/dist/sessions/manager.js +11 -36
  565. package/dist/sessions/manager.js.map +1 -1
  566. package/dist/sessions/manager.test.js +2 -10
  567. package/dist/sessions/manager.test.js.map +1 -1
  568. package/dist/storage/file-store.d.ts.map +1 -1
  569. package/dist/storage/file-store.js +2 -6
  570. package/dist/storage/file-store.js.map +1 -1
  571. package/dist/storage/file-store.test.js +1 -6
  572. package/dist/storage/file-store.test.js.map +1 -1
  573. package/dist/storage/project-store.d.ts.map +1 -1
  574. package/dist/storage/project-store.js +12 -0
  575. package/dist/storage/project-store.js.map +1 -1
  576. package/dist/storage/runtime-settings.d.ts +25 -1
  577. package/dist/storage/runtime-settings.d.ts.map +1 -1
  578. package/dist/storage/runtime-settings.js +31 -0
  579. package/dist/storage/runtime-settings.js.map +1 -1
  580. package/package.json +10 -5
  581. package/prompts/roles/TITLE.en.md +30 -0
  582. package/prompts/security/ask-protected-path.en.md +1 -0
  583. package/prompts/security/ask-protected-path.ru.md +1 -0
  584. package/prompts/security/deny-command.en.md +1 -0
  585. package/prompts/security/deny-command.ru.md +1 -0
  586. package/prompts/security/deny-protected-dir.en.md +1 -0
  587. package/prompts/security/deny-protected-dir.ru.md +1 -0
  588. package/prompts/security/deny-protected-path.en.md +1 -0
  589. package/prompts/security/deny-protected-path.ru.md +1 -0
  590. package/prompts/subagents/explore.en.md +23 -0
  591. package/prompts/subagents/general.en.md +19 -0
  592. package/prompts/system/MODE_ACT.en.md +20 -0
  593. package/{dist/prompts/modes/act.md → prompts/system/MODE_ACT.ru.md} +2 -0
  594. package/prompts/system/MODE_PLAN.en.md +22 -0
  595. package/{dist/prompts/prompts/modes/plan.md → prompts/system/MODE_PLAN.ru.md} +4 -3
  596. package/prompts/system/MODE_YOLO.en.md +22 -0
  597. package/{dist/prompts/prompts/modes/yolo.md → prompts/system/MODE_YOLO.ru.md} +2 -0
  598. package/prompts/system/PLAN_GUIDE.en.md +36 -0
  599. package/prompts/system/PLAN_GUIDE.ru.md +33 -0
  600. package/prompts/system/PLAN_MODE_AUTO.en.md +11 -0
  601. package/prompts/system/PLAN_MODE_AUTO.ru.md +12 -0
  602. package/prompts/system/PLAN_MODE_STRICT_APPROVED.en.md +8 -0
  603. package/prompts/system/PLAN_MODE_STRICT_APPROVED.ru.md +8 -0
  604. package/prompts/system/PLAN_MODE_STRICT_NOT_APPROVED.en.md +7 -0
  605. package/prompts/system/PLAN_MODE_STRICT_NOT_APPROVED.ru.md +7 -0
  606. package/dist/dictionaries/dictionaries/coding.en.yaml +0 -20
  607. package/dist/dictionaries/dictionaries/coding.ru.yaml +0 -22
  608. package/dist/dictionaries/dictionaries/coding.tools.yaml +0 -12
  609. package/dist/dictionaries/dictionaries/enum.en.yaml +0 -54
  610. package/dist/dictionaries/dictionaries/enum.ru.yaml +0 -67
  611. package/dist/dictionaries/dictionaries/injection.en.yaml +0 -51
  612. package/dist/dictionaries/dictionaries/injection.ru.yaml +0 -51
  613. package/dist/dictionaries/dictionaries/intents.en.yaml +0 -68
  614. package/dist/dictionaries/dictionaries/intents.ru.yaml +0 -78
  615. package/dist/dictionaries/dictionaries/research.en.yaml +0 -17
  616. package/dist/dictionaries/dictionaries/research.ru.yaml +0 -17
  617. package/dist/dictionaries/dictionaries/small-talk.en.yaml +0 -67
  618. package/dist/dictionaries/dictionaries/small-talk.ru.yaml +0 -81
  619. package/dist/prompts/modes/yolo.md +0 -20
  620. package/dist/prompts/prompts/modes/act.md +0 -18
  621. package/dist/prompts/prompts/roles/ADMIN.en.md +0 -33
  622. package/dist/prompts/prompts/roles/ADMIN.ru.md +0 -33
  623. package/dist/prompts/prompts/roles/ANALYST.en.md +0 -33
  624. package/dist/prompts/prompts/roles/ANALYST.ru.md +0 -33
  625. package/dist/prompts/prompts/roles/ASSISTANT.en.md +0 -38
  626. package/dist/prompts/prompts/roles/ASSISTANT.ru.md +0 -38
  627. package/dist/prompts/prompts/roles/AUDITOR.en.md +0 -33
  628. package/dist/prompts/prompts/roles/AUDITOR.ru.md +0 -33
  629. package/dist/prompts/prompts/roles/DEVELOPER.en.md +0 -42
  630. package/dist/prompts/prompts/roles/DEVELOPER.ru.md +0 -42
  631. package/dist/prompts/prompts/roles/DEVOPS.en.md +0 -35
  632. package/dist/prompts/prompts/roles/DEVOPS.ru.md +0 -35
  633. package/dist/prompts/prompts/roles/PM.en.md +0 -33
  634. package/dist/prompts/prompts/roles/PM.ru.md +0 -33
  635. package/dist/prompts/prompts/roles/QA.en.md +0 -33
  636. package/dist/prompts/prompts/roles/QA.ru.md +0 -33
  637. package/dist/prompts/prompts/roles/TITLE.ru.md +0 -30
  638. package/dist/prompts/prompts/subagents/explore.ru.md +0 -23
  639. package/dist/prompts/prompts/subagents/general.ru.md +0 -19
  640. package/dist/prompts/prompts/system/COMPRESSED_DIALOG.en.md +0 -5
  641. package/dist/prompts/prompts/system/COMPRESSED_DIALOG.ru.md +0 -5
  642. package/dist/prompts/prompts/system/INTERVIEW.en.md +0 -18
  643. package/dist/prompts/prompts/system/INTERVIEW.ru.md +0 -18
  644. package/dist/prompts/prompts/system/PARTICIPANTS_NOTICE.en.md +0 -7
  645. package/dist/prompts/prompts/system/PARTICIPANTS_NOTICE.ru.md +0 -7
  646. package/dist/prompts/prompts/system/ROLES_DESCRIPTION.en.md +0 -16
  647. package/dist/prompts/prompts/system/ROLES_DESCRIPTION.ru.md +0 -16
  648. package/dist/prompts/prompts/system/ROUTING.en.md +0 -13
  649. package/dist/prompts/prompts/system/ROUTING.md +0 -6
  650. package/dist/prompts/prompts/system/ROUTING.ru.md +0 -13
  651. package/dist/prompts/prompts/system/RULES.en.md +0 -10
  652. package/dist/prompts/prompts/system/RULES.md +0 -10
  653. package/dist/prompts/prompts/system/RULES.ru.md +0 -10
  654. package/dist/prompts/prompts/system/STICKY_NOTES.en.md +0 -6
  655. package/dist/prompts/prompts/system/STICKY_NOTES.ru.md +0 -6
  656. package/dist/prompts/prompts/system/SUMMARIZER.en.md +0 -54
  657. package/dist/prompts/prompts/system/SUMMARIZER.ru.md +0 -54
  658. package/dist/prompts/prompts/system/USER_CONTEXT.en.md +0 -5
  659. package/dist/prompts/prompts/system/USER_CONTEXT.ru.md +0 -5
  660. package/dist/prompts/system/ROUTING.md +0 -6
  661. package/dist/prompts/system/RULES.md +0 -10
  662. package/dist/server/routes/i18n.d.ts +0 -3
  663. package/dist/server/routes/i18n.d.ts.map +0 -1
  664. package/dist/server/routes/i18n.js +0 -83
  665. package/dist/server/routes/i18n.js.map +0 -1
  666. package/prompts/modes/plan.md +0 -20
  667. package/prompts/system/ROUTING.md +0 -6
  668. package/prompts/system/RULES.md +0 -10
  669. /package/dist/prompts/{prompts/system → system}/GATEWAY.en.md +0 -0
  670. /package/dist/prompts/{prompts/system → system}/GATEWAY.ru.md +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/engine/tools/task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../src/engine/tools/task.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ function makeMockAgentRegistry(subagents = ['explore']) {
19
19
  if (subagents.includes(id)) {
20
20
  return {
21
21
  id,
22
- agentMode: 'subagent',
22
+ agentMode: ['subagent'],
23
23
  subagentPrompt: 'You are a test subagent.',
24
24
  maxSteps: 1,
25
25
  };
@@ -191,7 +191,7 @@ describe('taskTool — context modes', () => {
191
191
  it('возвращает ошибку без provider в ctx.extra', async () => {
192
192
  const result = await taskTool.execute({ description: 'test', prompt: 'hello', subagent_type: 'explore' }, { ...baseCtx, extra: {} });
193
193
  expect(result.isError).toBe(true);
194
- expect(result.content).toContain('провайдер');
194
+ expect(result.content).toContain('provider or agent registry unavailable');
195
195
  });
196
196
  // ─── SessionManager: mode 'inherit' создаёт форк с сообщениями ─────
197
197
  it('inherit mode: child session содержит все сообщения родителя с origin=inherited', async () => {
@@ -404,7 +404,22 @@ describe('taskTool — context modes', () => {
404
404
  },
405
405
  });
406
406
  expect(result.isError).toBe(true);
407
- expect(result.content).toContain('не найден');
407
+ expect(result.content).toContain('not found');
408
+ });
409
+ it('возвращает ошибку, если агент не имеет класса subagent', async () => {
410
+ const result = await taskTool.execute({ description: 'test', prompt: 'hello', subagent_type: 'developer' }, {
411
+ ...baseCtx,
412
+ extra: {
413
+ provider: makeMockProvider(),
414
+ agentRegistry: {
415
+ get: () => ({ id: 'developer', agentMode: ['primary'] }),
416
+ getSubagents: () => [{ id: 'explore' }],
417
+ getToolsForAgent: () => [],
418
+ },
419
+ },
420
+ });
421
+ expect(result.isError).toBe(true);
422
+ expect(result.content).toContain('cannot be used as a subagent');
408
423
  });
409
424
  // ─── EventBus: session.created публикуется в родительскую сессию ──
410
425
  it('публикует session.created в EventBus родителя', async () => {
@@ -704,4 +719,357 @@ describe('taskTool × permissions саб-агента (AD-029)', () => {
704
719
  unsub();
705
720
  });
706
721
  });
722
+ /** Провайдер саб-агента: первый вызов — execute_shell с cat ~/.ssh/id_rsa. */
723
+ class MockSubagentShellProvider {
724
+ _calls = 0;
725
+ async *chatAsync() {
726
+ this._calls++;
727
+ if (this._calls === 1) {
728
+ yield {
729
+ content: '',
730
+ isFinal: true,
731
+ toolCalls: [{
732
+ id: 'call_shell',
733
+ function: { name: 'execute_shell', arguments: JSON.stringify({ command: 'cat ~/.ssh/id_rsa' }) },
734
+ }],
735
+ };
736
+ }
737
+ else {
738
+ yield { content: 'готово', isFinal: true, toolCalls: [] };
739
+ }
740
+ }
741
+ model = 'test-model';
742
+ name = 'test-provider';
743
+ }
744
+ describe('taskTool × shellPolicy саб-агента (B3/B5)', () => {
745
+ let store;
746
+ let sessionManager;
747
+ let eventBus;
748
+ let tmpDir;
749
+ const SHELL_POLICY = {
750
+ deniedPaths: ['~/.ssh/id_rsa'],
751
+ deniedPrefixes: ['~/.ssh'],
752
+ approvalPaths: [],
753
+ deniedCommandPrefixes: [],
754
+ };
755
+ beforeEach(async () => {
756
+ tmpDir = await mkdtemp(join(tmpdir(), 'synth-task-shell-'));
757
+ store = new FileStore({ dataDir: tmpDir });
758
+ sessionManager = new SessionManager(store);
759
+ eventBus = new EventBus();
760
+ });
761
+ afterEach(async () => {
762
+ await rm(tmpDir, { recursive: true, force: true });
763
+ });
764
+ it('B3: shellPolicy родителя применяется к execute_shell саб-агента (deny на cat ~/.ssh/id_rsa)', async () => {
765
+ const parent = await sessionManager.createSession({ title: 'Parent' });
766
+ const toolRegistry = createToolRegistry();
767
+ const result = await taskTool.execute({ description: 'test', prompt: 'прочитай ключ', subagent_type: 'explore' }, {
768
+ sessionId: parent.id,
769
+ messageId: 'm1',
770
+ abortSignal: new AbortController().signal,
771
+ workingDir: tmpDir,
772
+ extra: {
773
+ provider: new MockSubagentShellProvider(),
774
+ sessionManager,
775
+ eventBus,
776
+ sessionId: parent.id,
777
+ agentRegistry: makeMockAgentRegistry(),
778
+ toolRegistry,
779
+ shellPolicy: SHELL_POLICY,
780
+ },
781
+ });
782
+ expect(result.isError).toBeFalsy();
783
+ const childId = result.metadata.child_session_id;
784
+ const child = (await sessionManager.getSession(childId));
785
+ const toolMsg = child.messages.find((m) => m.role === MessageRole.TOOL);
786
+ expect(toolMsg).toBeDefined();
787
+ expect(toolMsg.content).toContain('Permission denied');
788
+ expect(toolMsg.content).toContain('id_rsa');
789
+ });
790
+ it('B5: саб-агент в plan-режиме не получает write/git-тулы (режимная фильтрация)', async () => {
791
+ const parent = await sessionManager.createSession({ title: 'Parent' });
792
+ parent.mode = 'plan';
793
+ await sessionManager.updateSession(parent);
794
+ let capturedTools;
795
+ const capturingProvider = {
796
+ chatAsync: vi.fn().mockImplementation(async function* (_messages, _system, tools) {
797
+ capturedTools = tools;
798
+ yield { isFinal: true, content: 'OK', toolCalls: [] };
799
+ }),
800
+ model: 'test-model',
801
+ name: 'test-provider',
802
+ };
803
+ const toolRegistry = createToolRegistry();
804
+ const agentRegistry = {
805
+ ...makeMockAgentRegistry(),
806
+ getToolsForAgent: () => toolRegistry.toLLMFormat(),
807
+ };
808
+ await taskTool.execute({ description: 'test', prompt: 'hello', subagent_type: 'explore', context_mode: 'none' }, {
809
+ sessionId: parent.id,
810
+ messageId: 'm1',
811
+ abortSignal: new AbortController().signal,
812
+ workingDir: tmpDir,
813
+ extra: {
814
+ provider: capturingProvider,
815
+ sessionManager,
816
+ eventBus,
817
+ sessionId: parent.id,
818
+ agentRegistry,
819
+ toolRegistry,
820
+ },
821
+ });
822
+ const names = capturedTools.map((t) => t.function.name);
823
+ expect(names).not.toContain('write_file');
824
+ expect(names).not.toContain('edit_file');
825
+ expect(names).not.toContain('git_commit');
826
+ expect(names).toContain('read_file');
827
+ expect(names).toContain('execute_shell');
828
+ });
829
+ it('B5: в act-режиме список тулов не фильтруется', async () => {
830
+ const parent = await sessionManager.createSession({ title: 'Parent' });
831
+ let capturedTools;
832
+ const capturingProvider = {
833
+ chatAsync: vi.fn().mockImplementation(async function* (_messages, _system, tools) {
834
+ capturedTools = tools;
835
+ yield { isFinal: true, content: 'OK', toolCalls: [] };
836
+ }),
837
+ model: 'test-model',
838
+ name: 'test-provider',
839
+ };
840
+ const toolRegistry = createToolRegistry();
841
+ const agentRegistry = {
842
+ ...makeMockAgentRegistry(),
843
+ getToolsForAgent: () => toolRegistry.toLLMFormat(),
844
+ };
845
+ await taskTool.execute({ description: 'test', prompt: 'hello', subagent_type: 'explore', context_mode: 'none' }, {
846
+ sessionId: parent.id,
847
+ messageId: 'm1',
848
+ abortSignal: new AbortController().signal,
849
+ workingDir: tmpDir,
850
+ extra: {
851
+ provider: capturingProvider,
852
+ sessionManager,
853
+ eventBus,
854
+ sessionId: parent.id,
855
+ agentRegistry,
856
+ toolRegistry,
857
+ },
858
+ });
859
+ const names = capturedTools.map((t) => t.function.name);
860
+ expect(names).toContain('write_file');
861
+ expect(names).toContain('git_commit');
862
+ expect(names).toContain('read_file');
863
+ });
864
+ });
865
+ /**
866
+ * Провайдер саб-агента, реагирующий на отмену (cancelToken):
867
+ * итерация 0 — текст + вызов read_file; итерация 1 — длинный стрим,
868
+ * который прекращается сразу после отмены (раньше игнорировал её).
869
+ */
870
+ function makeAbortableSubagentProvider(state) {
871
+ return {
872
+ model: 'test-model',
873
+ name: 'test-provider',
874
+ chatAsync: vi.fn().mockImplementation(async function* (_messages, _systemPrompt, _tools, _debugCollector, ct) {
875
+ const n = state.calls++;
876
+ if (n === 0) {
877
+ yield {
878
+ isFinal: true,
879
+ content: 'Изучаю файлы проекта...',
880
+ toolCalls: [{
881
+ id: 'sub_call_1',
882
+ function: { name: 'read_file', arguments: JSON.stringify({ file_path: 'a.txt' }) },
883
+ }],
884
+ };
885
+ return;
886
+ }
887
+ yield { isFinal: false, content: 'Частичный ответ: начал работу. ' };
888
+ for (let i = 0; i < 300; i++) {
889
+ if (ct?.cancelled)
890
+ return;
891
+ yield { isFinal: false, content: `фрагмент-${i} ` };
892
+ await new Promise((r) => setTimeout(r, 5));
893
+ }
894
+ yield { isFinal: true, content: 'РАБОТА ЗАВЕРШЕНА ПОЛНОСТЬЮ', toolCalls: [] };
895
+ }),
896
+ };
897
+ }
898
+ describe('taskTool × отмена и ошибки (abort / provider error)', () => {
899
+ let store;
900
+ let sessionManager;
901
+ let eventBus;
902
+ let tmpDir;
903
+ beforeEach(async () => {
904
+ tmpDir = await mkdtemp(join(tmpdir(), 'synth-task-abort-'));
905
+ store = new FileStore({ dataDir: tmpDir });
906
+ sessionManager = new SessionManager(store);
907
+ eventBus = new EventBus();
908
+ });
909
+ afterEach(async () => {
910
+ await rm(tmpDir, { recursive: true, force: true });
911
+ });
912
+ function makeMultiStepRegistry() {
913
+ return {
914
+ get: (id) => {
915
+ if (id === 'explore') {
916
+ return { id, agentMode: ['subagent'], subagentPrompt: 'You are a test subagent.', maxSteps: 5 };
917
+ }
918
+ return undefined;
919
+ },
920
+ getSubagents: () => [{ id: 'explore' }],
921
+ getToolsForAgent: () => [],
922
+ };
923
+ }
924
+ it('abort во время работы task: сабагент останавливается, tool_result содержит маркер отмены, частичный текст, шаги и child_session_id', async () => {
925
+ const parent = await sessionManager.createSession({ title: 'Parent' });
926
+ const state = { calls: 0 };
927
+ const provider = makeAbortableSubagentProvider(state);
928
+ const ac = new AbortController();
929
+ const promise = taskTool.execute({ description: 'long task', prompt: 'hello', subagent_type: 'explore' }, {
930
+ sessionId: parent.id,
931
+ messageId: 'm1',
932
+ abortSignal: ac.signal,
933
+ workingDir: tmpDir,
934
+ extra: {
935
+ provider,
936
+ sessionManager,
937
+ eventBus,
938
+ sessionId: parent.id,
939
+ agentRegistry: makeMultiStepRegistry(),
940
+ toolRegistry: createToolRegistry(),
941
+ },
942
+ });
943
+ // Ждём запуска второй итерации (долгий стрим), затем «Стоп»
944
+ await vi.waitFor(() => expect(state.calls).toBe(2), { timeout: 3000 });
945
+ ac.abort();
946
+ const result = await promise;
947
+ // Сабагент НЕ прошёл все итерации: третья LLM-итерация не началась
948
+ expect(state.calls).toBe(2);
949
+ expect(result.isError).toBeFalsy();
950
+ // tool_result: маркер отмены + частичный текст + шаги + child_session_id
951
+ expect(result.content).toContain('<status>stopped_by_user</status>');
952
+ expect(result.content).toContain('<child_session_id>');
953
+ expect(result.content).toContain('Частичный ответ: начал работу');
954
+ expect(result.content).toContain('<steps_completed>');
955
+ expect(result.content).toContain('read_file');
956
+ expect(result.content).not.toContain('РАБОТА ЗАВЕРШЕНА ПОЛНОСТЬЮ');
957
+ // metadata-маркеры
958
+ expect(result.metadata.stopped_by).toBe('user');
959
+ expect(result.metadata.interrupted).toBe(true);
960
+ expect(result.metadata.child_session_id).toBeDefined();
961
+ const toolCalls = result.metadata.tool_calls;
962
+ expect(toolCalls).toHaveLength(1);
963
+ expect(toolCalls[0].name).toBe('read_file');
964
+ // Частичный стрим оборванной итерации сохранён в истории дочерней сессии
965
+ const childSessionId = result.metadata.child_session_id;
966
+ const child = (await sessionManager.getSession(childSessionId));
967
+ expect(child).toBeDefined();
968
+ const partialMsg = child.messages.find((m) => m.metadata?.partial === true);
969
+ expect(partialMsg).toBeDefined();
970
+ expect(partialMsg.content).toContain('Частичный ответ: начал работу');
971
+ // Промпт и выполненный tool-call тоже в истории дочерней сессии
972
+ expect(child.messages.some((m) => m.role === MessageRole.USER && m.content === 'hello')).toBe(true);
973
+ expect(child.messages.some((m) => m.role === MessageRole.TOOL)).toBe(true);
974
+ // Маркер прерывания
975
+ const stopMarker = child.messages.find((m) => m.metadata?.stopped_by === 'user');
976
+ expect(stopMarker).toBeDefined();
977
+ // Последним сообщением должен быть маркер остановки (частичный текст перед ним)
978
+ expect(child.messages[child.messages.length - 1].metadata?.stopped_by).toBe('user');
979
+ });
980
+ it('abort по внешнему сигналу уже в aborted-состоянии: task немедленно останавливается', async () => {
981
+ const parent = await sessionManager.createSession({ title: 'Parent' });
982
+ const state = { calls: 0 };
983
+ const provider = makeAbortableSubagentProvider(state);
984
+ const ac = new AbortController();
985
+ ac.abort();
986
+ const result = await taskTool.execute({ description: 'pre-aborted', prompt: 'hello', subagent_type: 'explore' }, {
987
+ sessionId: parent.id,
988
+ messageId: 'm1',
989
+ abortSignal: ac.signal,
990
+ workingDir: tmpDir,
991
+ extra: {
992
+ provider,
993
+ sessionManager,
994
+ eventBus,
995
+ sessionId: parent.id,
996
+ agentRegistry: makeMultiStepRegistry(),
997
+ toolRegistry: createToolRegistry(),
998
+ },
999
+ });
1000
+ // Провайдер вообще не вызван — отмена наступила до первого стрима
1001
+ expect(state.calls).toBe(0);
1002
+ expect(result.content).toContain('<status>stopped_by_user</status>');
1003
+ expect(result.content).toContain('<child_session_id>');
1004
+ expect(result.metadata.stopped_by).toBe('user');
1005
+ });
1006
+ it('ошибка провайдера внутри task: tool_result содержит описание ошибки + child_session_id, история дочерней сессии сохранена', async () => {
1007
+ const parent = await sessionManager.createSession({ title: 'Parent' });
1008
+ const provider = {
1009
+ model: 'test-model',
1010
+ name: 'test-provider',
1011
+ chatAsync: vi.fn().mockImplementation(async function* () {
1012
+ yield { isFinal: false, content: '' };
1013
+ throw new Error('provider down');
1014
+ }),
1015
+ };
1016
+ const result = await taskTool.execute({ description: 'broken task', prompt: 'hello', subagent_type: 'explore' }, {
1017
+ sessionId: parent.id,
1018
+ messageId: 'm1',
1019
+ abortSignal: new AbortController().signal,
1020
+ workingDir: tmpDir,
1021
+ extra: {
1022
+ provider,
1023
+ sessionManager,
1024
+ eventBus,
1025
+ sessionId: parent.id,
1026
+ agentRegistry: makeMultiStepRegistry(),
1027
+ toolRegistry: createToolRegistry(),
1028
+ // Быстрый backoff — дефолтные 5/15/30с сделали бы тест медленным
1029
+ retry: { maxRetries: 3, delaysMs: [10, 10, 10] },
1030
+ },
1031
+ });
1032
+ expect(result.isError).toBe(true);
1033
+ expect(result.content).toContain('provider down');
1034
+ expect(result.content).toContain('<status>error</status>');
1035
+ expect(result.content).toContain('<child_session_id>');
1036
+ // Retry исчерпан: 3 попытки прежде чем вернуть ошибку
1037
+ expect(provider.chatAsync).toHaveBeenCalledTimes(3);
1038
+ expect(result.metadata.attempts).toBe(3);
1039
+ expect(result.metadata.max_retries).toBe(3);
1040
+ const childSessionId = result.metadata.child_session_id;
1041
+ expect(childSessionId).toBeDefined();
1042
+ expect(result.metadata.error).toBe(true);
1043
+ // История дочерней сессии сохранена: промпт + сообщение об ошибке
1044
+ const child = (await sessionManager.getSession(childSessionId));
1045
+ expect(child.messages.some((m) => m.role === MessageRole.USER && m.content === 'hello')).toBe(true);
1046
+ const errMsg = child.messages.find((m) => m.metadata?.error === true);
1047
+ expect(errMsg).toBeDefined();
1048
+ expect(errMsg.content).toContain('provider down');
1049
+ expect(errMsg.metadata.attempts).toBe(3);
1050
+ });
1051
+ it('обычный (не прерванный) результат содержит child_session_id в content внутри <task_result>', async () => {
1052
+ const parent = await sessionManager.createSession({ title: 'Parent' });
1053
+ const result = await taskTool.execute({ description: 'test', prompt: 'hello', subagent_type: 'explore', context_mode: 'none' }, {
1054
+ sessionId: parent.id,
1055
+ messageId: 'm1',
1056
+ abortSignal: new AbortController().signal,
1057
+ workingDir: tmpDir,
1058
+ extra: {
1059
+ provider: makeMockProvider(),
1060
+ sessionManager,
1061
+ eventBus,
1062
+ sessionId: parent.id,
1063
+ agentRegistry: makeMockAgentRegistry(),
1064
+ },
1065
+ });
1066
+ expect(result.isError).toBeFalsy();
1067
+ expect(result.content).toContain('<task_result>');
1068
+ expect(result.content).toContain('</task_result>');
1069
+ const match = result.content.match(/<child_session_id>([^<]+)<\/child_session_id>/);
1070
+ expect(match).not.toBeNull();
1071
+ // id из content совпадает с id из metadata
1072
+ expect(match[1]).toBe(result.metadata.child_session_id);
1073
+ });
1074
+ });
707
1075
  //# sourceMappingURL=task.test.js.map