@zhin.js/agent 0.2.0 → 0.2.1

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 (383) hide show
  1. package/README.md +1 -1
  2. package/lib/agent-prompt/resolver.js +4 -4
  3. package/lib/agent-prompt/resolver.js.map +1 -1
  4. package/lib/ai-event-bus.d.ts.map +1 -1
  5. package/lib/ai-event-bus.js +20 -31
  6. package/lib/ai-event-bus.js.map +1 -1
  7. package/lib/ai-event-subscriber.d.ts +1 -1
  8. package/lib/ai-event-subscriber.d.ts.map +1 -1
  9. package/lib/ai-event-subscriber.js +1 -1
  10. package/lib/ai-event-subscriber.js.map +1 -1
  11. package/lib/assistant/home-policy.d.ts +2 -2
  12. package/lib/assistant/home-policy.d.ts.map +1 -1
  13. package/lib/assistant/home-policy.js +28 -10
  14. package/lib/assistant/home-policy.js.map +1 -1
  15. package/lib/assistant/home-tools.js +14 -14
  16. package/lib/assistant/home-tools.js.map +1 -1
  17. package/lib/assistant/index.d.ts +1 -1
  18. package/lib/assistant/index.js +1 -1
  19. package/lib/assistant/legacy-convert.d.ts +3 -8
  20. package/lib/assistant/legacy-convert.d.ts.map +1 -1
  21. package/lib/assistant/legacy-convert.js +8 -8
  22. package/lib/assistant/legacy-convert.js.map +1 -1
  23. package/lib/assistant/notification-router.js +6 -6
  24. package/lib/assistant/notification-router.js.map +1 -1
  25. package/lib/assistant/types.d.ts +1 -1
  26. package/lib/assistant/types.d.ts.map +1 -1
  27. package/lib/builtin/activate-skill-tool.d.ts +2 -2
  28. package/lib/builtin/activate-skill-tool.d.ts.map +1 -1
  29. package/lib/builtin/activate-skill-tool.js +1 -1
  30. package/lib/builtin/activate-skill-tool.js.map +1 -1
  31. package/lib/builtin/analyze-media-tool.d.ts +2 -2
  32. package/lib/builtin/analyze-media-tool.d.ts.map +1 -1
  33. package/lib/builtin/analyze-media-tool.js +3 -3
  34. package/lib/builtin/analyze-media-tool.js.map +1 -1
  35. package/lib/builtin/ask-user-tool.d.ts +4 -4
  36. package/lib/builtin/ask-user-tool.d.ts.map +1 -1
  37. package/lib/builtin/ask-user-tool.js +16 -16
  38. package/lib/builtin/ask-user-tool.js.map +1 -1
  39. package/lib/builtin/bash-tool.d.ts +2 -2
  40. package/lib/builtin/bash-tool.d.ts.map +1 -1
  41. package/lib/builtin/bash-tool.js +8 -3
  42. package/lib/builtin/bash-tool.js.map +1 -1
  43. package/lib/builtin/builtin-base-tool.d.ts +2 -2
  44. package/lib/builtin/builtin-base-tool.d.ts.map +1 -1
  45. package/lib/builtin/edit-file-tool.d.ts +2 -2
  46. package/lib/builtin/edit-file-tool.d.ts.map +1 -1
  47. package/lib/builtin/edit-file-tool.js +6 -6
  48. package/lib/builtin/edit-file-tool.js.map +1 -1
  49. package/lib/builtin/glob-tool.d.ts +2 -2
  50. package/lib/builtin/glob-tool.d.ts.map +1 -1
  51. package/lib/builtin/glob-tool.js +3 -3
  52. package/lib/builtin/glob-tool.js.map +1 -1
  53. package/lib/builtin/grep-tool.d.ts +2 -2
  54. package/lib/builtin/grep-tool.d.ts.map +1 -1
  55. package/lib/builtin/grep-tool.js +3 -3
  56. package/lib/builtin/grep-tool.js.map +1 -1
  57. package/lib/builtin/install-skill-tool.d.ts +2 -2
  58. package/lib/builtin/install-skill-tool.d.ts.map +1 -1
  59. package/lib/builtin/install-skill-tool.js +1 -1
  60. package/lib/builtin/install-skill-tool.js.map +1 -1
  61. package/lib/builtin/list-dir-tool.d.ts +2 -2
  62. package/lib/builtin/list-dir-tool.d.ts.map +1 -1
  63. package/lib/builtin/list-dir-tool.js +3 -3
  64. package/lib/builtin/list-dir-tool.js.map +1 -1
  65. package/lib/builtin/memory-search-tool.d.ts.map +1 -1
  66. package/lib/builtin/memory-search-tool.js +5 -11
  67. package/lib/builtin/memory-search-tool.js.map +1 -1
  68. package/lib/builtin/memory-upsert-tool.d.ts.map +1 -1
  69. package/lib/builtin/memory-upsert-tool.js +10 -16
  70. package/lib/builtin/memory-upsert-tool.js.map +1 -1
  71. package/lib/builtin/orchestration-tools.d.ts +2 -2
  72. package/lib/builtin/orchestration-tools.d.ts.map +1 -1
  73. package/lib/builtin/orchestration-tools.js +5 -11
  74. package/lib/builtin/orchestration-tools.js.map +1 -1
  75. package/lib/builtin/read-file-tool.d.ts +2 -2
  76. package/lib/builtin/read-file-tool.d.ts.map +1 -1
  77. package/lib/builtin/read-file-tool.js +4 -4
  78. package/lib/builtin/read-file-tool.js.map +1 -1
  79. package/lib/builtin/spawn-task-tool.d.ts +6 -6
  80. package/lib/builtin/spawn-task-tool.d.ts.map +1 -1
  81. package/lib/builtin/spawn-task-tool.js +10 -17
  82. package/lib/builtin/spawn-task-tool.js.map +1 -1
  83. package/lib/builtin/todo-read-tool.d.ts +2 -2
  84. package/lib/builtin/todo-read-tool.d.ts.map +1 -1
  85. package/lib/builtin/todo-read-tool.js +1 -1
  86. package/lib/builtin/todo-read-tool.js.map +1 -1
  87. package/lib/builtin/todo-write-tool.d.ts +2 -2
  88. package/lib/builtin/todo-write-tool.d.ts.map +1 -1
  89. package/lib/builtin/todo-write-tool.js +1 -1
  90. package/lib/builtin/todo-write-tool.js.map +1 -1
  91. package/lib/builtin/web-fetch-tool.d.ts +2 -2
  92. package/lib/builtin/web-fetch-tool.d.ts.map +1 -1
  93. package/lib/builtin/web-fetch-tool.js +2 -2
  94. package/lib/builtin/web-fetch-tool.js.map +1 -1
  95. package/lib/builtin/web-search-locale.d.ts +4 -4
  96. package/lib/builtin/web-search-locale.d.ts.map +1 -1
  97. package/lib/builtin/web-search-locale.js +4 -3
  98. package/lib/builtin/web-search-locale.js.map +1 -1
  99. package/lib/builtin/web-search-tool.d.ts +3 -3
  100. package/lib/builtin/web-search-tool.d.ts.map +1 -1
  101. package/lib/builtin/web-search-tool.js +3 -3
  102. package/lib/builtin/web-search-tool.js.map +1 -1
  103. package/lib/builtin/write-file-tool.d.ts +2 -2
  104. package/lib/builtin/write-file-tool.d.ts.map +1 -1
  105. package/lib/builtin/write-file-tool.js +6 -6
  106. package/lib/builtin/write-file-tool.js.map +1 -1
  107. package/lib/common-adapter-tools.js +3 -3
  108. package/lib/common-adapter-tools.js.map +1 -1
  109. package/lib/config/fix-ai-config.d.ts +9 -0
  110. package/lib/config/fix-ai-config.d.ts.map +1 -0
  111. package/lib/config/fix-ai-config.js +69 -0
  112. package/lib/config/fix-ai-config.js.map +1 -0
  113. package/lib/config/index.d.ts +5 -0
  114. package/lib/config/index.d.ts.map +1 -0
  115. package/lib/config/index.js +5 -0
  116. package/lib/config/index.js.map +1 -0
  117. package/lib/config/types.d.ts +1 -1
  118. package/lib/config/types.d.ts.map +1 -1
  119. package/lib/cron-engine.d.ts.map +1 -1
  120. package/lib/cron-engine.js +4 -4
  121. package/lib/cron-engine.js.map +1 -1
  122. package/lib/deferred-worker-runner.d.ts +2 -2
  123. package/lib/deferred-worker-runner.d.ts.map +1 -1
  124. package/lib/deferred-worker-runner.js +3 -3
  125. package/lib/discovery/tools.d.ts +1 -1
  126. package/lib/discovery/tools.d.ts.map +1 -1
  127. package/lib/discovery/tools.js +21 -6
  128. package/lib/discovery/tools.js.map +1 -1
  129. package/lib/hooks.d.ts +1 -1
  130. package/lib/hooks.d.ts.map +1 -1
  131. package/lib/hooks.js +1 -1
  132. package/lib/hooks.js.map +1 -1
  133. package/lib/index.d.ts +5 -4
  134. package/lib/index.d.ts.map +1 -1
  135. package/lib/index.js +3 -2
  136. package/lib/index.js.map +1 -1
  137. package/lib/init/create-zhin-agent.d.ts.map +1 -1
  138. package/lib/init/create-zhin-agent.js +20 -9
  139. package/lib/init/create-zhin-agent.js.map +1 -1
  140. package/lib/init/introspection-args.d.ts +1 -1
  141. package/lib/init/introspection-args.js +1 -1
  142. package/lib/init/introspection-args.js.map +1 -1
  143. package/lib/init/introspection-collectors.d.ts +2 -2
  144. package/lib/init/introspection-collectors.d.ts.map +1 -1
  145. package/lib/init/introspection-collectors.js +4 -4
  146. package/lib/init/introspection-collectors.js.map +1 -1
  147. package/lib/init/introspection-commands-format.d.ts +3 -3
  148. package/lib/init/introspection-commands-format.d.ts.map +1 -1
  149. package/lib/init/introspection-commands-format.js +6 -6
  150. package/lib/init/introspection-commands-format.js.map +1 -1
  151. package/lib/init/introspection-rest.d.ts +2 -2
  152. package/lib/init/introspection-rest.d.ts.map +1 -1
  153. package/lib/init/introspection-rest.js +4 -4
  154. package/lib/init/introspection-rest.js.map +1 -1
  155. package/lib/init/management-command-guard.d.ts +3 -3
  156. package/lib/init/management-command-guard.d.ts.map +1 -1
  157. package/lib/init/management-command-guard.js +3 -3
  158. package/lib/init/management-command-guard.js.map +1 -1
  159. package/lib/init/message-media.d.ts +2 -2
  160. package/lib/init/message-media.d.ts.map +1 -1
  161. package/lib/init/message-media.js +1 -1
  162. package/lib/init/message-media.js.map +1 -1
  163. package/lib/init/register-ai-trigger.d.ts.map +1 -1
  164. package/lib/init/register-ai-trigger.js +43 -58
  165. package/lib/init/register-ai-trigger.js.map +1 -1
  166. package/lib/init/register-db-upgrade.d.ts.map +1 -1
  167. package/lib/init/register-db-upgrade.js +2 -0
  168. package/lib/init/register-db-upgrade.js.map +1 -1
  169. package/lib/init/register-group-session-passive.d.ts.map +1 -1
  170. package/lib/init/register-group-session-passive.js +5 -10
  171. package/lib/init/register-group-session-passive.js.map +1 -1
  172. package/lib/init/register-introspection-commands.js +7 -7
  173. package/lib/init/register-introspection-commands.js.map +1 -1
  174. package/lib/init/register-management-tools.d.ts.map +1 -1
  175. package/lib/init/register-management-tools.js +8 -29
  176. package/lib/init/register-management-tools.js.map +1 -1
  177. package/lib/init/register-owner-approve-commands.js +13 -13
  178. package/lib/init/register-owner-approve-commands.js.map +1 -1
  179. package/lib/init/register-typing-indicator.d.ts +3 -3
  180. package/lib/init/register-typing-indicator.js +41 -41
  181. package/lib/init/register-typing-indicator.js.map +1 -1
  182. package/lib/init/upgrade-agent-db-schema.d.ts.map +1 -1
  183. package/lib/init/upgrade-agent-db-schema.js +5 -4
  184. package/lib/init/upgrade-agent-db-schema.js.map +1 -1
  185. package/lib/init/upgrade-endpoint-id-schema.d.ts +12 -0
  186. package/lib/init/upgrade-endpoint-id-schema.d.ts.map +1 -0
  187. package/lib/init/upgrade-endpoint-id-schema.js +58 -0
  188. package/lib/init/upgrade-endpoint-id-schema.js.map +1 -0
  189. package/lib/mcp-client/connection.js +1 -1
  190. package/lib/mcp-client/connection.js.map +1 -1
  191. package/lib/media/constants.d.ts +1 -1
  192. package/lib/media/constants.d.ts.map +1 -1
  193. package/lib/media/constants.js +1 -1
  194. package/lib/media/constants.js.map +1 -1
  195. package/lib/media/deliver-subagent-result.d.ts.map +1 -1
  196. package/lib/media/deliver-subagent-result.js +6 -5
  197. package/lib/media/deliver-subagent-result.js.map +1 -1
  198. package/lib/memory-layers.d.ts +3 -3
  199. package/lib/memory-layers.d.ts.map +1 -1
  200. package/lib/memory-layers.js +3 -3
  201. package/lib/memory-layers.js.map +1 -1
  202. package/lib/orchestrator/delegation-processor.d.ts.map +1 -1
  203. package/lib/orchestrator/delegation-processor.js +8 -8
  204. package/lib/orchestrator/delegation-processor.js.map +1 -1
  205. package/lib/orchestrator/hook-registry.js.map +1 -1
  206. package/lib/orchestrator/mission-milestone-notify.d.ts +3 -3
  207. package/lib/orchestrator/mission-milestone-notify.d.ts.map +1 -1
  208. package/lib/orchestrator/mission-milestone-notify.js +15 -10
  209. package/lib/orchestrator/mission-milestone-notify.js.map +1 -1
  210. package/lib/orchestrator/mission-runner.d.ts +2 -3
  211. package/lib/orchestrator/mission-runner.d.ts.map +1 -1
  212. package/lib/orchestrator/mission-runner.js +13 -11
  213. package/lib/orchestrator/mission-runner.js.map +1 -1
  214. package/lib/orchestrator/orchestration-repository.d.ts +6 -0
  215. package/lib/orchestrator/orchestration-repository.d.ts.map +1 -1
  216. package/lib/orchestrator/orchestration-repository.js +30 -0
  217. package/lib/orchestrator/orchestration-repository.js.map +1 -1
  218. package/lib/orchestrator/owner-confirm-orchestration.d.ts +3 -3
  219. package/lib/orchestrator/owner-confirm-orchestration.d.ts.map +1 -1
  220. package/lib/orchestrator/owner-confirm-orchestration.js +5 -5
  221. package/lib/orchestrator/owner-confirm-orchestration.js.map +1 -1
  222. package/lib/orchestrator/tool-registry.d.ts +4 -5
  223. package/lib/orchestrator/tool-registry.d.ts.map +1 -1
  224. package/lib/orchestrator/tool-registry.js +7 -11
  225. package/lib/orchestrator/tool-registry.js.map +1 -1
  226. package/lib/orchestrator/tool-selection.d.ts +7 -6
  227. package/lib/orchestrator/tool-selection.d.ts.map +1 -1
  228. package/lib/orchestrator/tool-selection.js +47 -38
  229. package/lib/orchestrator/tool-selection.js.map +1 -1
  230. package/lib/orchestrator/types.d.ts +3 -6
  231. package/lib/orchestrator/types.d.ts.map +1 -1
  232. package/lib/routing/route-matcher.d.ts +1 -1
  233. package/lib/routing/route-matcher.d.ts.map +1 -1
  234. package/lib/routing/route-matcher.js +3 -3
  235. package/lib/routing/route-matcher.js.map +1 -1
  236. package/lib/security/audit-logger.d.ts +3 -3
  237. package/lib/security/audit-logger.d.ts.map +1 -1
  238. package/lib/security/audit-logger.js +2 -2
  239. package/lib/security/audit-logger.js.map +1 -1
  240. package/lib/security/comm-message-context.d.ts +20 -0
  241. package/lib/security/comm-message-context.d.ts.map +1 -0
  242. package/lib/security/comm-message-context.js +19 -0
  243. package/lib/security/comm-message-context.js.map +1 -0
  244. package/lib/security/dangerous-tool-policy.d.ts +4 -4
  245. package/lib/security/dangerous-tool-policy.d.ts.map +1 -1
  246. package/lib/security/dangerous-tool-policy.js +39 -31
  247. package/lib/security/dangerous-tool-policy.js.map +1 -1
  248. package/lib/security/exec-policy.js +9 -9
  249. package/lib/security/exec-policy.js.map +1 -1
  250. package/lib/security/file-role-policy.d.ts +1 -1
  251. package/lib/security/file-role-policy.d.ts.map +1 -1
  252. package/lib/security/file-role-policy.js +3 -4
  253. package/lib/security/file-role-policy.js.map +1 -1
  254. package/lib/security/index.d.ts +1 -1
  255. package/lib/security/index.d.ts.map +1 -1
  256. package/lib/security/index.js +1 -1
  257. package/lib/security/index.js.map +1 -1
  258. package/lib/security/owner-approve-always-store.d.ts +18 -16
  259. package/lib/security/owner-approve-always-store.d.ts.map +1 -1
  260. package/lib/security/owner-approve-always-store.js +133 -117
  261. package/lib/security/owner-approve-always-store.js.map +1 -1
  262. package/lib/service.d.ts.map +1 -1
  263. package/lib/service.js +7 -1
  264. package/lib/service.js.map +1 -1
  265. package/lib/stability/memory-pressure.d.ts +31 -0
  266. package/lib/stability/memory-pressure.d.ts.map +1 -0
  267. package/lib/stability/memory-pressure.js +104 -0
  268. package/lib/stability/memory-pressure.js.map +1 -0
  269. package/lib/stability/registry-cleanup.d.ts +5 -0
  270. package/lib/stability/registry-cleanup.d.ts.map +1 -0
  271. package/lib/stability/registry-cleanup.js +20 -0
  272. package/lib/stability/registry-cleanup.js.map +1 -0
  273. package/lib/subagent-ai-events.d.ts +2 -2
  274. package/lib/subagent-ai-events.d.ts.map +1 -1
  275. package/lib/subagent-ai-events.js +5 -22
  276. package/lib/subagent-ai-events.js.map +1 -1
  277. package/lib/subagent-goal-notify.d.ts +4 -4
  278. package/lib/subagent-goal-notify.d.ts.map +1 -1
  279. package/lib/subagent-goal-notify.js +6 -5
  280. package/lib/subagent-goal-notify.js.map +1 -1
  281. package/lib/subagent.d.ts +3 -11
  282. package/lib/subagent.d.ts.map +1 -1
  283. package/lib/subagent.js +3 -9
  284. package/lib/subagent.js.map +1 -1
  285. package/lib/task-executor.d.ts +1 -0
  286. package/lib/task-executor.d.ts.map +1 -1
  287. package/lib/task-executor.js +17 -9
  288. package/lib/task-executor.js.map +1 -1
  289. package/lib/typing-indicator/adapter-integration.d.ts +22 -22
  290. package/lib/typing-indicator/adapter-integration.d.ts.map +1 -1
  291. package/lib/typing-indicator/adapter-integration.js +47 -47
  292. package/lib/typing-indicator/adapter-integration.js.map +1 -1
  293. package/lib/typing-indicator/index.d.ts +2 -2
  294. package/lib/typing-indicator/index.d.ts.map +1 -1
  295. package/lib/typing-indicator/index.js +1 -1
  296. package/lib/typing-indicator/index.js.map +1 -1
  297. package/lib/typing-indicator/integration.d.ts +8 -8
  298. package/lib/typing-indicator/integration.d.ts.map +1 -1
  299. package/lib/typing-indicator/integration.js +14 -14
  300. package/lib/typing-indicator/integration.js.map +1 -1
  301. package/lib/zhin-agent/agent-loop-standalone.d.ts +2 -2
  302. package/lib/zhin-agent/agent-loop-standalone.d.ts.map +1 -1
  303. package/lib/zhin-agent/agent-loop-standalone.js +5 -5
  304. package/lib/zhin-agent/agent-loop-standalone.js.map +1 -1
  305. package/lib/zhin-agent/agent-loop-turn.d.ts +4 -4
  306. package/lib/zhin-agent/agent-loop-turn.d.ts.map +1 -1
  307. package/lib/zhin-agent/agent-loop-turn.js +8 -8
  308. package/lib/zhin-agent/agent-loop-turn.js.map +1 -1
  309. package/lib/zhin-agent/builtin-tools.d.ts.map +1 -1
  310. package/lib/zhin-agent/compaction-runtime.d.ts +6 -2
  311. package/lib/zhin-agent/compaction-runtime.d.ts.map +1 -1
  312. package/lib/zhin-agent/compaction-runtime.js +25 -1
  313. package/lib/zhin-agent/compaction-runtime.js.map +1 -1
  314. package/lib/zhin-agent/deferred-delivery.d.ts +3 -3
  315. package/lib/zhin-agent/deferred-delivery.d.ts.map +1 -1
  316. package/lib/zhin-agent/deferred-delivery.js +5 -5
  317. package/lib/zhin-agent/deferred-delivery.js.map +1 -1
  318. package/lib/zhin-agent/event-emitter.d.ts +2 -2
  319. package/lib/zhin-agent/event-emitter.d.ts.map +1 -1
  320. package/lib/zhin-agent/event-emitter.js +7 -7
  321. package/lib/zhin-agent/event-emitter.js.map +1 -1
  322. package/lib/zhin-agent/index.d.ts +12 -12
  323. package/lib/zhin-agent/index.d.ts.map +1 -1
  324. package/lib/zhin-agent/index.js +38 -92
  325. package/lib/zhin-agent/index.js.map +1 -1
  326. package/lib/zhin-agent/model-resolver.d.ts.map +1 -1
  327. package/lib/zhin-agent/model-resolver.js +2 -0
  328. package/lib/zhin-agent/model-resolver.js.map +1 -1
  329. package/lib/zhin-agent/persist-deferred-context.d.ts +2 -2
  330. package/lib/zhin-agent/persist-deferred-context.d.ts.map +1 -1
  331. package/lib/zhin-agent/persist-deferred-context.js +3 -9
  332. package/lib/zhin-agent/persist-deferred-context.js.map +1 -1
  333. package/lib/zhin-agent/prompt-assembly.d.ts +5 -5
  334. package/lib/zhin-agent/prompt-assembly.d.ts.map +1 -1
  335. package/lib/zhin-agent/prompt-assembly.js +11 -11
  336. package/lib/zhin-agent/prompt-assembly.js.map +1 -1
  337. package/lib/zhin-agent/prompt-controller.d.ts +3 -3
  338. package/lib/zhin-agent/prompt-controller.d.ts.map +1 -1
  339. package/lib/zhin-agent/prompt-controller.js +2 -2
  340. package/lib/zhin-agent/prompt-controller.js.map +1 -1
  341. package/lib/zhin-agent/prompt.d.ts +8 -8
  342. package/lib/zhin-agent/prompt.d.ts.map +1 -1
  343. package/lib/zhin-agent/prompt.js +40 -53
  344. package/lib/zhin-agent/prompt.js.map +1 -1
  345. package/lib/zhin-agent/session-io.d.ts +8 -8
  346. package/lib/zhin-agent/session-io.d.ts.map +1 -1
  347. package/lib/zhin-agent/session-io.js +45 -30
  348. package/lib/zhin-agent/session-io.js.map +1 -1
  349. package/lib/zhin-agent/session-tree-commands.d.ts +3 -3
  350. package/lib/zhin-agent/session-tree-commands.d.ts.map +1 -1
  351. package/lib/zhin-agent/session-tree-commands.js +7 -19
  352. package/lib/zhin-agent/session-tree-commands.js.map +1 -1
  353. package/lib/zhin-agent/tool-orchestration.d.ts +3 -3
  354. package/lib/zhin-agent/tool-orchestration.d.ts.map +1 -1
  355. package/lib/zhin-agent/tool-orchestration.js +9 -15
  356. package/lib/zhin-agent/tool-orchestration.js.map +1 -1
  357. package/lib/zhin-agent/tool-runtime.d.ts +2 -2
  358. package/lib/zhin-agent/tool-runtime.d.ts.map +1 -1
  359. package/lib/zhin-agent/tool-runtime.js +2 -2
  360. package/lib/zhin-agent/tool-runtime.js.map +1 -1
  361. package/lib/zhin-agent/tool-search-orchestrator.d.ts +2 -2
  362. package/lib/zhin-agent/tool-search-orchestrator.d.ts.map +1 -1
  363. package/lib/zhin-agent/tool-search-orchestrator.js +9 -9
  364. package/lib/zhin-agent/tool-search-orchestrator.js.map +1 -1
  365. package/lib/zhin-agent/turn-pipeline.d.ts +4 -3
  366. package/lib/zhin-agent/turn-pipeline.d.ts.map +1 -1
  367. package/lib/zhin-agent/turn-pipeline.js +37 -59
  368. package/lib/zhin-agent/turn-pipeline.js.map +1 -1
  369. package/lib/zhin-agent/turn-user-message.d.ts +2 -2
  370. package/lib/zhin-agent/turn-user-message.d.ts.map +1 -1
  371. package/lib/zhin-agent/turn-user-message.js +2 -2
  372. package/lib/zhin-agent/turn-user-message.js.map +1 -1
  373. package/lib/zhin-agent/web-search-locale-attach.d.ts +2 -2
  374. package/lib/zhin-agent/web-search-locale-attach.d.ts.map +1 -1
  375. package/lib/zhin-agent/web-search-locale-attach.js +5 -4
  376. package/lib/zhin-agent/web-search-locale-attach.js.map +1 -1
  377. package/lib/zhin-agent/zhin-agent-private.d.ts +7 -7
  378. package/lib/zhin-agent/zhin-agent-private.d.ts.map +1 -1
  379. package/package.json +15 -5
  380. package/lib/security/bash-tool-context.d.ts +0 -20
  381. package/lib/security/bash-tool-context.d.ts.map +0 -1
  382. package/lib/security/bash-tool-context.js +0 -19
  383. package/lib/security/bash-tool-context.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"file-role-policy.js","sourceRoot":"","sources":["../../src/security/file-role-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-role-policy.js","sourceRoot":"","sources":["../../src/security/file-role-policy.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export * from './exec-policy.js';
16
16
  export * from './network-policy.js';
17
17
  export * from './budget-limiter.js';
18
18
  export * from './audit-logger.js';
19
- export * from './bash-tool-context.js';
19
+ export * from './comm-message-context.js';
20
20
  export * from './owner-approve-always-store.js';
21
21
  export * from './sandbox.js';
22
22
  export * from './sandbox-enhanced.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAI3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAqD,MAAM,mBAAmB,CAAC;AACnG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAA2D,MAAM,qBAAqB,CAAC;AAC7G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAA2D,MAAM,qBAAqB,CAAC;AAE7G,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,GAAE,oBAAyB,GAAG;IACvE,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;CAC9B,CAMA;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAI5C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI;IACzC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD,CA4BA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAI3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAqD,MAAM,mBAAmB,CAAC;AACnG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAA2D,MAAM,qBAAqB,CAAC;AAC7G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAA2D,MAAM,qBAAqB,CAAC;AAE7G,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,GAAE,oBAAyB,GAAG;IACvE,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;CAC9B,CAMA;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAI5C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI;IACzC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD,CA4BA"}
@@ -17,7 +17,7 @@ export * from './exec-policy.js';
17
17
  export * from './network-policy.js';
18
18
  export * from './budget-limiter.js';
19
19
  export * from './audit-logger.js';
20
- export * from './bash-tool-context.js';
20
+ export * from './comm-message-context.js';
21
21
  export * from './owner-approve-always-store.js';
22
22
  export * from './sandbox.js';
23
23
  export * from './sandbox-enhanced.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,mEAAmE;AAEnE,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAK3C,OAAO,EAAe,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEnG,OAAO,EAAiB,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE7G,OAAO,EAAiB,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAQ7G;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA+B,EAAE;IAKpE,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAE7D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,CAAC;QAAC,gBAAgB,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,CAAC;QAAC,kBAAkB,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI,CAAC;QAAC,kBAAkB,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB;IAKrC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAElC,OAAO;YACL,KAAK,EAAE;gBACL,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO;gBAClC,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW;aACzC;YACD,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO;gBACpC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC;oBAClD,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC;aAC7D;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO;gBACnC,cAAc,EAAE,CAAC;aAClB;SACF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE;YACxC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE;YAC1C,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE;SAC9C,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,mEAAmE;AAEnE,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAK3C,OAAO,EAAe,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEnG,OAAO,EAAiB,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE7G,OAAO,EAAiB,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAQ7G;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAA+B,EAAE;IAKpE,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAE7D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,CAAC;QAAC,gBAAgB,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,CAAC;QAAC,kBAAkB,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI,CAAC;QAAC,kBAAkB,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB;IAKrC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAElC,OAAO;YACL,KAAK,EAAE;gBACL,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO;gBAClC,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW;aACzC;YACD,OAAO,EAAE;gBACP,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO;gBACpC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC;oBAClD,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC;aAC7D;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO;gBACnC,cAAc,EAAE,CAAC;aAClB;SACF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE;YACxC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE;YAC1C,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE;SAC9C,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Message, Plugin, ToolContext } from '@zhin.js/core';
1
+ import type { Message, Plugin } from '@zhin.js/core';
2
2
  export declare const OWNER_APPROVE_ALWAYS_TOOL: "bash";
3
3
  export type ToolRequesterRole = 'master' | 'trusted' | 'other' | 'unknown';
4
4
  /** 需 Owner 审批的 icqq 子命令(正则匹配整段子命令文本,大小写不敏感) */
@@ -12,44 +12,46 @@ export interface BashApprovalBotEntry {
12
12
  bashAlways?: boolean;
13
13
  bashRules: BashRuleEntry[];
14
14
  }
15
- export declare function getBotMaster(plugin: Plugin, ctx: ToolContext): string | undefined;
16
- export declare function resolveToolRequesterRole(plugin: Plugin, ctx: ToolContext): ToolRequesterRole;
17
- export declare function getOwnerToolContextOrUndefined(plugin: Plugin, message: Message<any>): ToolContext | undefined;
15
+ export declare function getEndpointMaster(plugin: Plugin, commMessage: Message): string | undefined;
16
+ export declare function resolveToolRequesterRole(plugin: Plugin, commMessage: Message): ToolRequesterRole;
17
+ export declare function getOwnerCommMessageOrUndefined(plugin: Plugin, message: Message): Message | undefined;
18
18
  /** 编排层:是否已「永久放行」bash 的 Owner 硬确认(ZHIN_NEEDS_OWNER 路径) */
19
- export declare function hasOwnerApproveAlways(plugin: Plugin, ctx: ToolContext, toolName: string): boolean;
20
- export declare function setBashAlways(plugin: Plugin, ctx: ToolContext, value: boolean): void;
21
- export declare function addOwnerApproveAlways(plugin: Plugin, ctx: ToolContext, toolName: string): {
19
+ export declare function hasOwnerApproveAlways(plugin: Plugin, commMessage: Message, toolName: string): boolean;
20
+ export declare function setBashAlways(plugin: Plugin, commMessage: Message, value: boolean): void;
21
+ export declare function addOwnerApproveAlways(plugin: Plugin, commMessage: Message, toolName: string): {
22
22
  ok: true;
23
23
  } | {
24
24
  ok: false;
25
25
  error: string;
26
26
  };
27
- export declare function removeOwnerApproveAlways(plugin: Plugin, ctx: ToolContext, toolName: string): {
27
+ export declare function removeOwnerApproveAlways(plugin: Plugin, commMessage: Message, toolName: string): {
28
28
  ok: true;
29
29
  } | {
30
30
  ok: false;
31
31
  error: string;
32
32
  };
33
- export declare function addBashApproveRule(plugin: Plugin, ctx: ToolContext, pattern: string): {
33
+ export declare function addBashApproveRule(plugin: Plugin, commMessage: Message, pattern: string): {
34
34
  ok: true;
35
35
  id: string;
36
36
  } | {
37
37
  ok: false;
38
38
  error: string;
39
39
  };
40
- export declare function removeBashApproveRule(plugin: Plugin, ctx: ToolContext, ruleId: string): {
40
+ export declare function removeBashApproveRule(plugin: Plugin, commMessage: Message, ruleId: string): {
41
41
  ok: true;
42
42
  } | {
43
43
  ok: false;
44
44
  error: string;
45
45
  };
46
46
  /** exec 策略:bashAlways 或任一 bashRules 匹配 commandLine */
47
- export declare function matchesBashOwnerExecBypass(plugin: Plugin, ctx: ToolContext, commandLine: string): boolean;
48
- export declare function formatBashApproveList(plugin: Plugin, ctx: ToolContext): string;
47
+ export declare function matchesBashOwnerExecBypass(plugin: Plugin, commMessage: Message, commandLine: string): boolean;
48
+ export declare function formatBashApproveList(plugin: Plugin, commMessage: Message): string;
49
49
  /** 兼容旧单测:返回 bash 与 rule 摘要行 */
50
- export declare function listOwnerApproveAlways(plugin: Plugin, ctx: ToolContext): string[];
50
+ export declare function listOwnerApproveAlways(plugin: Plugin, commMessage: Message): string[];
51
51
  export declare function isIcqqSensitiveSubcommand(fullSubCommand: string): boolean;
52
- export declare function setPendingOrchestrationTool(plugin: Plugin, ctx: ToolContext, toolName: string): void;
53
- export declare function clearPendingOrchestrationTool(plugin: Plugin, ctx: ToolContext): void;
54
- export declare function getPendingOrchestrationTool(plugin: Plugin, ctx: ToolContext): string | undefined;
52
+ export declare function getPendingOrchestrationCount(): number;
53
+ export declare function evictPendingOrchestrationIfOverPressure(): number;
54
+ export declare function setPendingOrchestrationTool(plugin: Plugin, commMessage: Message, toolName: string): void;
55
+ export declare function clearPendingOrchestrationTool(plugin: Plugin, commMessage: Message): void;
56
+ export declare function getPendingOrchestrationTool(plugin: Plugin, commMessage: Message): string | undefined;
55
57
  //# sourceMappingURL=owner-approve-always-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"owner-approve-always-store.d.ts","sourceRoot":"","sources":["../../src/security/owner-approve-always-store.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAW,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG3E,eAAO,MAAM,yBAAyB,EAAG,MAAe,CAAC;AAEzD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAK3E,+CAA+C;AAC/C,eAAO,MAAM,iCAAiC,EAAE,SAAS,MAAM,EAoB9D,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B;AAkFD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAMjF;AAqBD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,iBAAiB,CAa5F;AAwBD,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,GAAG,SAAS,CAe7G;AAED,yDAAyD;AACzD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAKjG;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAapF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAYrI;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAgBxI;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,MAAM,GACd;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAwBzD;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,MAAM,GACb;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAmB7C;AAED,sDAAsD;AACtD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAgBzG;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CAa9E;AAED,+BAA+B;AAC/B,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,EAAE,CAQjF;AAED,wBAAgB,yBAAyB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAIzE;AASD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CASpG;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CAKpF;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAehG"}
1
+ {"version":3,"file":"owner-approve-always-store.d.ts","sourceRoot":"","sources":["../../src/security/owner-approve-always-store.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@
9
9
  import * as crypto from 'node:crypto';
10
10
  import * as fs from 'node:fs';
11
11
  import * as path from 'node:path';
12
+ import { hasSenderRole, resolveSubjectRoles, senderRolesFromMessage } from '@zhin.js/core';
12
13
  import { getDataDir } from '../discovery/utils.js';
13
14
  export const OWNER_APPROVE_ALWAYS_TOOL = 'bash';
14
15
  const STORE_FILE = 'owner-approve-always.json';
@@ -39,10 +40,10 @@ function storePath() {
39
40
  return path.join(getDataDir(), STORE_FILE);
40
41
  }
41
42
  function emptyV2() {
42
- return { version: STORE_VERSION, bots: {} };
43
+ return { version: STORE_VERSION, endpoints: {} };
43
44
  }
44
- function normalizeBotKey(adapter, botId, ownerId) {
45
- return `${adapter}|${botId}|${ownerId}`;
45
+ function normalizeBotKey(adapter, endpointId, ownerId) {
46
+ return `${adapter}|${endpointId}|${ownerId}`;
46
47
  }
47
48
  function migrateV1ToV2(data) {
48
49
  const out = emptyV2();
@@ -52,12 +53,12 @@ function migrateV1ToV2(data) {
52
53
  const parts = e.split('|');
53
54
  if (parts.length !== 4)
54
55
  continue;
55
- const [adapter, botId, ownerId, scope] = parts;
56
+ const [adapter, endpointId, ownerId, scope] = parts;
56
57
  if (scope === 'orchestration:bash') {
57
- const k = normalizeBotKey(adapter, botId, ownerId);
58
- if (!out.bots[k])
59
- out.bots[k] = { bashRules: [] };
60
- out.bots[k].bashAlways = true;
58
+ const k = normalizeBotKey(adapter, endpointId, ownerId);
59
+ if (!out.endpoints[k])
60
+ out.endpoints[k] = { bashRules: [] };
61
+ out.endpoints[k].bashAlways = true;
61
62
  }
62
63
  }
63
64
  return out;
@@ -69,10 +70,10 @@ function readStore() {
69
70
  const data = JSON.parse(raw);
70
71
  if (!data || typeof data !== 'object')
71
72
  return emptyV2();
72
- if (data.version === STORE_VERSION && data.bots && typeof data.bots === 'object') {
73
+ if (data.version === STORE_VERSION && data.endpoints && typeof data.endpoints === 'object') {
73
74
  const v2 = data;
74
- for (const k of Object.keys(v2.bots)) {
75
- const ent = v2.bots[k];
75
+ for (const k of Object.keys(v2.endpoints)) {
76
+ const ent = v2.endpoints[k];
76
77
  if (!ent.bashRules)
77
78
  ent.bashRules = [];
78
79
  }
@@ -101,11 +102,11 @@ function writeStore(data) {
101
102
  fs.writeFileSync(tmp, body, 'utf-8');
102
103
  fs.renameSync(tmp, p);
103
104
  }
104
- export function getBotMaster(plugin, ctx) {
105
+ export function getEndpointMaster(plugin, commMessage) {
105
106
  const root = plugin.root ?? plugin;
106
- const adapter = root.inject(ctx.platform);
107
- const bot = adapter?.bots?.get(ctx.botId);
108
- const master = bot?.$config?.master;
107
+ const adapter = root.inject(commMessage.$adapter);
108
+ const endpoint = adapter?.endpoints?.get(commMessage.$endpoint);
109
+ const master = endpoint?.$config?.master;
109
110
  return master != null ? String(master) : undefined;
110
111
  }
111
112
  function normalizeIdList(input) {
@@ -119,92 +120,93 @@ function normalizeIdList(input) {
119
120
  }
120
121
  return [];
121
122
  }
122
- function getBotTrustedIds(plugin, ctx) {
123
+ function getEndpointTrustedIds(plugin, commMessage) {
123
124
  const root = plugin.root ?? plugin;
124
- const adapter = root.inject(ctx.platform);
125
- const bot = adapter?.bots?.get(ctx.botId);
126
- const botConfig = bot?.$config ?? {};
127
- return normalizeIdList(botConfig.trusted);
125
+ const adapter = root.inject(commMessage.$adapter);
126
+ const endpoint = adapter?.endpoints?.get(commMessage.$endpoint);
127
+ const endpointConfig = endpoint?.$config ?? {};
128
+ return normalizeIdList(endpointConfig.trusted);
128
129
  }
129
- export function resolveToolRequesterRole(plugin, ctx) {
130
- if (ctx.roles?.length) {
131
- if (ctx.roles.includes('master'))
130
+ export function resolveToolRequesterRole(plugin, commMessage) {
131
+ const roles = senderRolesFromMessage(commMessage);
132
+ if (commMessage.$sender.isMaster !== undefined || commMessage.$sender.isTrusted !== undefined) {
133
+ if (hasSenderRole(roles, 'master'))
132
134
  return 'master';
133
- if (ctx.roles.includes('trusted'))
135
+ if (hasSenderRole(roles, 'trusted'))
136
+ return 'trusted';
137
+ return 'other';
138
+ }
139
+ try {
140
+ const resolved = resolveSubjectRoles(plugin.root ?? plugin, commMessage);
141
+ if (hasSenderRole(resolved.roles, 'master'))
142
+ return 'master';
143
+ if (hasSenderRole(resolved.roles, 'trusted'))
144
+ return 'trusted';
145
+ return 'other';
146
+ }
147
+ catch {
148
+ if (!commMessage.$adapter || !commMessage.$endpoint || !commMessage.$sender?.id)
149
+ return 'unknown';
150
+ const senderId = String(commMessage.$sender.id);
151
+ const masterId = getEndpointMaster(plugin, commMessage);
152
+ if (masterId && senderId === String(masterId))
153
+ return 'master';
154
+ const trusted = getEndpointTrustedIds(plugin, commMessage);
155
+ if (trusted.includes(senderId))
134
156
  return 'trusted';
135
157
  return 'other';
136
158
  }
137
- if (!ctx.platform || !ctx.botId || !ctx.senderId)
138
- return 'unknown';
139
- const senderId = String(ctx.senderId);
140
- const masterId = getBotMaster(plugin, ctx);
141
- if (masterId && senderId === String(masterId))
142
- return 'master';
143
- const trusted = getBotTrustedIds(plugin, ctx);
144
- if (trusted.includes(senderId))
145
- return 'trusted';
146
- return 'other';
147
159
  }
148
- function getEntry(plugin, ctx) {
149
- if (!ctx.platform || !ctx.botId)
160
+ function getEntry(plugin, commMessage) {
161
+ if (!commMessage.$adapter || !commMessage.$endpoint)
150
162
  return undefined;
151
- const ownerId = getBotMaster(plugin, ctx);
163
+ const ownerId = getEndpointMaster(plugin, commMessage);
152
164
  if (ownerId == null)
153
165
  return undefined;
154
- const key = normalizeBotKey(ctx.platform, ctx.botId, ownerId);
166
+ const key = normalizeBotKey(String(commMessage.$adapter), commMessage.$endpoint, ownerId);
155
167
  const data = readStore();
156
- return data.bots[key];
168
+ return data.endpoints[key];
157
169
  }
158
- function ensureEntry(plugin, ctx) {
159
- if (!ctx.platform || !ctx.botId)
170
+ function ensureEntry(plugin, commMessage) {
171
+ if (!commMessage.$adapter || !commMessage.$endpoint)
160
172
  return { bashRules: [] };
161
- const ownerId = getBotMaster(plugin, ctx);
173
+ const ownerId = getEndpointMaster(plugin, commMessage);
162
174
  if (ownerId == null)
163
175
  return { bashRules: [] };
164
- const key = normalizeBotKey(ctx.platform, ctx.botId, ownerId);
176
+ const key = normalizeBotKey(String(commMessage.$adapter), commMessage.$endpoint, ownerId);
165
177
  const data = readStore();
166
- if (!data.bots[key]) {
167
- data.bots[key] = { bashRules: [] };
178
+ if (!data.endpoints[key]) {
179
+ data.endpoints[key] = { bashRules: [] };
168
180
  writeStore(data);
169
181
  }
170
- return data.bots[key];
182
+ return data.endpoints[key];
171
183
  }
172
- export function getOwnerToolContextOrUndefined(plugin, message) {
184
+ export function getOwnerCommMessageOrUndefined(plugin, message) {
173
185
  if (message.$channel?.type !== 'private')
174
186
  return undefined;
175
- const ctx = {
176
- platform: message.$adapter,
177
- botId: message.$bot,
178
- sceneId: message.$channel?.id ?? message.$sender.id,
179
- senderId: message.$sender.id,
180
- message,
181
- scope: 'private',
182
- roles: ['master'],
183
- fileRole: 'owner',
184
- };
185
- const ownerId = getBotMaster(plugin, ctx);
187
+ const ownerId = getEndpointMaster(plugin, message);
186
188
  if (ownerId == null || String(message.$sender.id) !== String(ownerId))
187
189
  return undefined;
188
- return ctx;
190
+ return message;
189
191
  }
190
192
  /** 编排层:是否已「永久放行」bash 的 Owner 硬确认(ZHIN_NEEDS_OWNER 路径) */
191
- export function hasOwnerApproveAlways(plugin, ctx, toolName) {
193
+ export function hasOwnerApproveAlways(plugin, commMessage, toolName) {
192
194
  if (toolName !== OWNER_APPROVE_ALWAYS_TOOL)
193
195
  return false;
194
- if (!ctx.platform || !ctx.botId)
196
+ if (!commMessage.$adapter || !commMessage.$endpoint)
195
197
  return false;
196
- const ent = getEntry(plugin, ctx);
198
+ const ent = getEntry(plugin, commMessage);
197
199
  return !!ent?.bashAlways;
198
200
  }
199
- export function setBashAlways(plugin, ctx, value) {
200
- if (!ctx.platform || !ctx.botId)
201
+ export function setBashAlways(plugin, commMessage, value) {
202
+ if (!commMessage.$adapter || !commMessage.$endpoint)
201
203
  return;
202
- const ownerId = getBotMaster(plugin, ctx);
204
+ const ownerId = getEndpointMaster(plugin, commMessage);
203
205
  if (ownerId == null)
204
206
  return;
205
- const key = normalizeBotKey(ctx.platform, ctx.botId, ownerId);
207
+ const key = normalizeBotKey(String(commMessage.$adapter), commMessage.$endpoint, ownerId);
206
208
  const data = readStore();
207
- const prev = data.bots[key] ?? { bashRules: [] };
209
+ const prev = data.endpoints[key] ?? { bashRules: [] };
208
210
  const ent = { bashRules: prev.bashRules ?? [] };
209
211
  if (prev.bashAlways !== undefined)
210
212
  ent.bashAlways = prev.bashAlways;
@@ -212,40 +214,40 @@ export function setBashAlways(plugin, ctx, value) {
212
214
  ent.bashAlways = true;
213
215
  else
214
216
  delete ent.bashAlways;
215
- data.bots[key] = ent;
217
+ data.endpoints[key] = ent;
216
218
  writeStore(data);
217
219
  }
218
- export function addOwnerApproveAlways(plugin, ctx, toolName) {
219
- if (!ctx.platform || !ctx.botId) {
220
- return { ok: false, error: '缺少 platform / botId' };
220
+ export function addOwnerApproveAlways(plugin, commMessage, toolName) {
221
+ if (!commMessage.$adapter || !commMessage.$endpoint) {
222
+ return { ok: false, error: '缺少 platform / endpointId' };
221
223
  }
222
224
  if (toolName.trim().toLowerCase() !== OWNER_APPROVE_ALWAYS_TOOL) {
223
225
  return { ok: false, error: '永久放行仅支持 bash(shell 安全确认)。' };
224
226
  }
225
- if (getBotMaster(plugin, ctx) == null) {
226
- return { ok: false, error: '当前 Bot 未配置 owner' };
227
+ if (getEndpointMaster(plugin, commMessage) == null) {
228
+ return { ok: false, error: '当前 Endpoint 未配置 owner' };
227
229
  }
228
- setBashAlways(plugin, ctx, true);
230
+ setBashAlways(plugin, commMessage, true);
229
231
  return { ok: true };
230
232
  }
231
- export function removeOwnerApproveAlways(plugin, ctx, toolName) {
232
- if (!ctx.platform || !ctx.botId) {
233
- return { ok: false, error: '缺少 platform / botId' };
233
+ export function removeOwnerApproveAlways(plugin, commMessage, toolName) {
234
+ if (!commMessage.$adapter || !commMessage.$endpoint) {
235
+ return { ok: false, error: '缺少 platform / endpointId' };
234
236
  }
235
237
  if (toolName.trim().toLowerCase() !== OWNER_APPROVE_ALWAYS_TOOL) {
236
238
  return { ok: false, error: '仅可撤销 bash 的永久放行。' };
237
239
  }
238
- if (getBotMaster(plugin, ctx) == null) {
239
- return { ok: false, error: '当前 Bot 未配置 owner' };
240
+ if (getEndpointMaster(plugin, commMessage) == null) {
241
+ return { ok: false, error: '当前 Endpoint 未配置 owner' };
240
242
  }
241
- const ent = getEntry(plugin, ctx);
243
+ const ent = getEntry(plugin, commMessage);
242
244
  if (!ent?.bashAlways) {
243
245
  return { ok: false, error: '当前未对 bash 设置永久放行。' };
244
246
  }
245
- setBashAlways(plugin, ctx, false);
247
+ setBashAlways(plugin, commMessage, false);
246
248
  return { ok: true };
247
249
  }
248
- export function addBashApproveRule(plugin, ctx, pattern) {
250
+ export function addBashApproveRule(plugin, commMessage, pattern) {
249
251
  const trimmed = pattern.trim();
250
252
  if (!trimmed) {
251
253
  return { ok: false, error: '正则不能为空。' };
@@ -257,32 +259,32 @@ export function addBashApproveRule(plugin, ctx, pattern) {
257
259
  catch (e) {
258
260
  return { ok: false, error: `无效正则: ${e instanceof Error ? e.message : String(e)}` };
259
261
  }
260
- if (!ctx.platform || !ctx.botId || getBotMaster(plugin, ctx) == null) {
261
- return { ok: false, error: '缺少 platform/botId 或未配置 owner。' };
262
+ if (!commMessage.$adapter || !commMessage.$endpoint || getEndpointMaster(plugin, commMessage) == null) {
263
+ return { ok: false, error: '缺少 platform/endpointId 或未配置 owner。' };
262
264
  }
263
- const ownerId = getBotMaster(plugin, ctx);
264
- const key = normalizeBotKey(ctx.platform, ctx.botId, ownerId);
265
+ const ownerId = getEndpointMaster(plugin, commMessage);
266
+ const key = normalizeBotKey(String(commMessage.$adapter), commMessage.$endpoint, ownerId);
265
267
  const data = readStore();
266
- const ent = { ...(data.bots[key] ?? { bashRules: [] }), bashRules: [...(data.bots[key]?.bashRules ?? [])] };
267
- if (data.bots[key]?.bashAlways)
268
+ const ent = { ...(data.endpoints[key] ?? { bashRules: [] }), bashRules: [...(data.endpoints[key]?.bashRules ?? [])] };
269
+ if (data.endpoints[key]?.bashAlways)
268
270
  ent.bashAlways = true;
269
271
  const id = crypto.randomUUID();
270
272
  ent.bashRules.push({ id, pattern: trimmed, createdAt: Date.now() });
271
- data.bots[key] = ent;
273
+ data.endpoints[key] = ent;
272
274
  writeStore(data);
273
275
  return { ok: true, id };
274
276
  }
275
- export function removeBashApproveRule(plugin, ctx, ruleId) {
277
+ export function removeBashApproveRule(plugin, commMessage, ruleId) {
276
278
  const id = ruleId.trim();
277
279
  if (!id)
278
280
  return { ok: false, error: '请提供规则 id。' };
279
- if (!ctx.platform || !ctx.botId || getBotMaster(plugin, ctx) == null) {
280
- return { ok: false, error: '缺少 platform/botId 或未配置 owner。' };
281
+ if (!commMessage.$adapter || !commMessage.$endpoint || getEndpointMaster(plugin, commMessage) == null) {
282
+ return { ok: false, error: '缺少 platform/endpointId 或未配置 owner。' };
281
283
  }
282
- const ownerId = getBotMaster(plugin, ctx);
283
- const key = normalizeBotKey(ctx.platform, ctx.botId, ownerId);
284
+ const ownerId = getEndpointMaster(plugin, commMessage);
285
+ const key = normalizeBotKey(String(commMessage.$adapter), commMessage.$endpoint, ownerId);
284
286
  const data = readStore();
285
- const ent = data.bots[key];
287
+ const ent = data.endpoints[key];
286
288
  if (!ent?.bashRules?.length)
287
289
  return { ok: false, error: '当前无自定义规则。' };
288
290
  const next = ent.bashRules.filter((r) => r.id !== id && !r.id.startsWith(id));
@@ -290,15 +292,15 @@ export function removeBashApproveRule(plugin, ctx, ruleId) {
290
292
  return { ok: false, error: `未找到 id 前缀或全名为「${id}」的规则。` };
291
293
  }
292
294
  ent.bashRules = next;
293
- data.bots[key] = ent;
295
+ data.endpoints[key] = ent;
294
296
  writeStore(data);
295
297
  return { ok: true };
296
298
  }
297
299
  /** exec 策略:bashAlways 或任一 bashRules 匹配 commandLine */
298
- export function matchesBashOwnerExecBypass(plugin, ctx, commandLine) {
299
- if (!ctx.platform || !ctx.botId)
300
+ export function matchesBashOwnerExecBypass(plugin, commMessage, commandLine) {
301
+ if (!commMessage.$adapter || !commMessage.$endpoint)
300
302
  return false;
301
- const ent = getEntry(plugin, ctx);
303
+ const ent = getEntry(plugin, commMessage);
302
304
  if (!ent)
303
305
  return false;
304
306
  if (ent.bashAlways)
@@ -318,8 +320,8 @@ export function matchesBashOwnerExecBypass(plugin, ctx, commandLine) {
318
320
  }
319
321
  return false;
320
322
  }
321
- export function formatBashApproveList(plugin, ctx) {
322
- const ent = getEntry(plugin, ctx);
323
+ export function formatBashApproveList(plugin, commMessage) {
324
+ const ent = getEntry(plugin, commMessage);
323
325
  const always = ent?.bashAlways ? '是' : '否';
324
326
  const rules = ent?.bashRules ?? [];
325
327
  if (!ent || (!ent.bashAlways && rules.length === 0)) {
@@ -333,8 +335,8 @@ export function formatBashApproveList(plugin, ctx) {
333
335
  return lines.join('\n');
334
336
  }
335
337
  /** 兼容旧单测:返回 bash 与 rule 摘要行 */
336
- export function listOwnerApproveAlways(plugin, ctx) {
337
- const ent = getEntry(plugin, ctx);
338
+ export function listOwnerApproveAlways(plugin, commMessage) {
339
+ const ent = getEntry(plugin, commMessage);
338
340
  const out = [];
339
341
  if (ent?.bashAlways)
340
342
  out.push(OWNER_APPROVE_ALWAYS_TOOL);
@@ -350,37 +352,51 @@ export function isIcqqSensitiveSubcommand(fullSubCommand) {
350
352
  return ICQQ_SENSITIVE_SUBCOMMAND_REGEXES.some((re) => re.test(line));
351
353
  }
352
354
  const pendingOrchestration = new Map();
353
- function pendingKey(adapter, botId, ownerId) {
354
- return `${adapter}|${botId}|${ownerId}`;
355
+ function pendingKey(adapter, endpointId, ownerId) {
356
+ return `${adapter}|${endpointId}|${ownerId}`;
357
+ }
358
+ export function getPendingOrchestrationCount() {
359
+ return pendingOrchestration.size;
360
+ }
361
+ export function evictPendingOrchestrationIfOverPressure() {
362
+ const now = Date.now();
363
+ let removed = 0;
364
+ for (const [key, value] of pendingOrchestration) {
365
+ if (now > value.expiresAt) {
366
+ pendingOrchestration.delete(key);
367
+ removed++;
368
+ }
369
+ }
370
+ return removed;
355
371
  }
356
- export function setPendingOrchestrationTool(plugin, ctx, toolName) {
372
+ export function setPendingOrchestrationTool(plugin, commMessage, toolName) {
357
373
  if (toolName !== OWNER_APPROVE_ALWAYS_TOOL)
358
374
  return;
359
- if (!ctx.platform || !ctx.botId)
375
+ if (!commMessage.$adapter || !commMessage.$endpoint)
360
376
  return;
361
- const ownerId = getBotMaster(plugin, ctx);
377
+ const ownerId = getEndpointMaster(plugin, commMessage);
362
378
  if (ownerId == null)
363
379
  return;
364
- pendingOrchestration.set(pendingKey(ctx.platform, ctx.botId, ownerId), {
380
+ pendingOrchestration.set(pendingKey(String(commMessage.$adapter), commMessage.$endpoint, ownerId), {
365
381
  toolName: OWNER_APPROVE_ALWAYS_TOOL,
366
382
  expiresAt: Date.now() + 15 * 60 * 1000,
367
383
  });
368
384
  }
369
- export function clearPendingOrchestrationTool(plugin, ctx) {
370
- if (!ctx.platform || !ctx.botId)
385
+ export function clearPendingOrchestrationTool(plugin, commMessage) {
386
+ if (!commMessage.$adapter || !commMessage.$endpoint)
371
387
  return;
372
- const ownerId = getBotMaster(plugin, ctx);
388
+ const ownerId = getEndpointMaster(plugin, commMessage);
373
389
  if (ownerId == null)
374
390
  return;
375
- pendingOrchestration.delete(pendingKey(ctx.platform, ctx.botId, ownerId));
391
+ pendingOrchestration.delete(pendingKey(String(commMessage.$adapter), commMessage.$endpoint, ownerId));
376
392
  }
377
- export function getPendingOrchestrationTool(plugin, ctx) {
378
- if (!ctx.platform || !ctx.botId)
393
+ export function getPendingOrchestrationTool(plugin, commMessage) {
394
+ if (!commMessage.$adapter || !commMessage.$endpoint)
379
395
  return undefined;
380
- const ownerId = getBotMaster(plugin, ctx);
396
+ const ownerId = getEndpointMaster(plugin, commMessage);
381
397
  if (ownerId == null)
382
398
  return undefined;
383
- const key = pendingKey(ctx.platform, ctx.botId, ownerId);
399
+ const key = pendingKey(String(commMessage.$adapter), commMessage.$endpoint, ownerId);
384
400
  const p = pendingOrchestration.get(key);
385
401
  if (!p || p.toolName !== OWNER_APPROVE_ALWAYS_TOOL) {
386
402
  if (p)