@orion-agents/orion-code 0.1.1 → 0.1.2

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 (602) hide show
  1. package/README.md +93 -68
  2. package/README.zh-CN.md +181 -216
  3. package/dist/cli.js +13 -17
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/index.d.ts.map +1 -1
  6. package/dist/commands/index.js +213 -114
  7. package/dist/commands/index.js.map +1 -1
  8. package/dist/commands/target-command.d.ts.map +1 -1
  9. package/dist/commands/target-command.js +42 -8
  10. package/dist/commands/target-command.js.map +1 -1
  11. package/dist/core/agent.d.ts.map +1 -1
  12. package/dist/core/agent.js +2 -2
  13. package/dist/core/agent.js.map +1 -1
  14. package/dist/framework/external-assertion.d.ts +65 -0
  15. package/dist/framework/external-assertion.d.ts.map +1 -0
  16. package/dist/framework/external-assertion.js +571 -0
  17. package/dist/framework/external-assertion.js.map +1 -0
  18. package/dist/framework/index.d.ts +6 -4
  19. package/dist/framework/index.d.ts.map +1 -1
  20. package/dist/framework/index.js +4 -1
  21. package/dist/framework/index.js.map +1 -1
  22. package/dist/framework/query.d.ts +15 -1
  23. package/dist/framework/query.d.ts.map +1 -1
  24. package/dist/framework/query.js +42 -23
  25. package/dist/framework/query.js.map +1 -1
  26. package/dist/framework/tool-scheduler.d.ts +2 -0
  27. package/dist/framework/tool-scheduler.d.ts.map +1 -1
  28. package/dist/framework/tool-scheduler.js +23 -9
  29. package/dist/framework/tool-scheduler.js.map +1 -1
  30. package/dist/framework/tool-serializer.d.ts.map +1 -1
  31. package/dist/framework/tool-serializer.js +20 -4
  32. package/dist/framework/tool-serializer.js.map +1 -1
  33. package/dist/framework/tool.d.ts +11 -5
  34. package/dist/framework/tool.d.ts.map +1 -1
  35. package/dist/framework/tool.js.map +1 -1
  36. package/dist/harness/safety.d.ts.map +1 -1
  37. package/dist/harness/safety.js +19 -3
  38. package/dist/harness/safety.js.map +1 -1
  39. package/dist/init.d.ts +1 -1
  40. package/dist/init.d.ts.map +1 -1
  41. package/dist/init.js +115 -34
  42. package/dist/init.js.map +1 -1
  43. package/dist/memory/storage.d.ts.map +1 -1
  44. package/dist/memory/storage.js +1 -0
  45. package/dist/memory/storage.js.map +1 -1
  46. package/dist/memory/store.d.ts.map +1 -1
  47. package/dist/memory/store.js +11 -5
  48. package/dist/memory/store.js.map +1 -1
  49. package/dist/print-ui/launch.d.ts +4 -0
  50. package/dist/print-ui/launch.d.ts.map +1 -1
  51. package/dist/print-ui/launch.js +102 -9
  52. package/dist/print-ui/launch.js.map +1 -1
  53. package/dist/product/identity.d.ts +2 -2
  54. package/dist/product/identity.d.ts.map +1 -1
  55. package/dist/product/identity.js +2 -2
  56. package/dist/product/identity.js.map +1 -1
  57. package/dist/product/index.d.ts +2 -1
  58. package/dist/product/index.d.ts.map +1 -1
  59. package/dist/product/index.js +5 -1
  60. package/dist/product/index.js.map +1 -1
  61. package/dist/product/version.d.ts +12 -0
  62. package/dist/product/version.d.ts.map +1 -0
  63. package/dist/product/version.js +31 -0
  64. package/dist/product/version.js.map +1 -0
  65. package/dist/runtime/agent-runtime-controller.d.ts +34 -0
  66. package/dist/runtime/agent-runtime-controller.d.ts.map +1 -1
  67. package/dist/runtime/agent-runtime-controller.js +953 -148
  68. package/dist/runtime/agent-runtime-controller.js.map +1 -1
  69. package/dist/runtime/agent-runtime-protocol.d.ts +7 -2
  70. package/dist/runtime/agent-runtime-protocol.d.ts.map +1 -1
  71. package/dist/runtime/agent-runtime-protocol.js +6 -0
  72. package/dist/runtime/agent-runtime-protocol.js.map +1 -1
  73. package/dist/runtime/chat-controller.d.ts +6 -0
  74. package/dist/runtime/chat-controller.d.ts.map +1 -1
  75. package/dist/runtime/chat-controller.js +200 -19
  76. package/dist/runtime/chat-controller.js.map +1 -1
  77. package/dist/runtime/goals/accounting.d.ts +28 -0
  78. package/dist/runtime/goals/accounting.d.ts.map +1 -1
  79. package/dist/runtime/goals/accounting.js +69 -0
  80. package/dist/runtime/goals/accounting.js.map +1 -1
  81. package/dist/runtime/goals/completion-audit.d.ts +13 -8
  82. package/dist/runtime/goals/completion-audit.d.ts.map +1 -1
  83. package/dist/runtime/goals/completion-audit.js +598 -16
  84. package/dist/runtime/goals/completion-audit.js.map +1 -1
  85. package/dist/runtime/goals/coordinator.d.ts +44 -5
  86. package/dist/runtime/goals/coordinator.d.ts.map +1 -1
  87. package/dist/runtime/goals/coordinator.js +1124 -58
  88. package/dist/runtime/goals/coordinator.js.map +1 -1
  89. package/dist/runtime/goals/evidence.d.ts +37 -0
  90. package/dist/runtime/goals/evidence.d.ts.map +1 -0
  91. package/dist/runtime/goals/evidence.js +300 -0
  92. package/dist/runtime/goals/evidence.js.map +1 -0
  93. package/dist/runtime/goals/presentation.d.ts +4 -0
  94. package/dist/runtime/goals/presentation.d.ts.map +1 -0
  95. package/dist/runtime/goals/presentation.js +50 -0
  96. package/dist/runtime/goals/presentation.js.map +1 -0
  97. package/dist/runtime/goals/prompt.d.ts.map +1 -1
  98. package/dist/runtime/goals/prompt.js +38 -8
  99. package/dist/runtime/goals/prompt.js.map +1 -1
  100. package/dist/runtime/goals/tools.d.ts +18 -1
  101. package/dist/runtime/goals/tools.d.ts.map +1 -1
  102. package/dist/runtime/goals/tools.js +308 -28
  103. package/dist/runtime/goals/tools.js.map +1 -1
  104. package/dist/runtime/goals/types.d.ts +241 -7
  105. package/dist/runtime/goals/types.d.ts.map +1 -1
  106. package/dist/runtime/goals/types.js +8 -2
  107. package/dist/runtime/goals/types.js.map +1 -1
  108. package/dist/runtime/subagents/child-executor-guard.d.ts +12 -4
  109. package/dist/runtime/subagents/child-executor-guard.d.ts.map +1 -1
  110. package/dist/runtime/subagents/child-executor-guard.js +397 -61
  111. package/dist/runtime/subagents/child-executor-guard.js.map +1 -1
  112. package/dist/runtime/subagents/presets.d.ts +4 -5
  113. package/dist/runtime/subagents/presets.d.ts.map +1 -1
  114. package/dist/runtime/subagents/presets.js +18 -33
  115. package/dist/runtime/subagents/presets.js.map +1 -1
  116. package/dist/runtime/subagents/production.d.ts +3 -1
  117. package/dist/runtime/subagents/production.d.ts.map +1 -1
  118. package/dist/runtime/subagents/production.js +37 -7
  119. package/dist/runtime/subagents/production.js.map +1 -1
  120. package/dist/runtime/subagents/runner.d.ts.map +1 -1
  121. package/dist/runtime/subagents/runner.js +24 -3
  122. package/dist/runtime/subagents/runner.js.map +1 -1
  123. package/dist/runtime/subagents/runtime-integration.d.ts +3 -0
  124. package/dist/runtime/subagents/runtime-integration.d.ts.map +1 -1
  125. package/dist/runtime/subagents/runtime-integration.js +18 -7
  126. package/dist/runtime/subagents/runtime-integration.js.map +1 -1
  127. package/dist/runtime/subagents/supervisor.d.ts +4 -4
  128. package/dist/runtime/subagents/supervisor.d.ts.map +1 -1
  129. package/dist/runtime/subagents/supervisor.js +39 -19
  130. package/dist/runtime/subagents/supervisor.js.map +1 -1
  131. package/dist/runtime/subagents/types.d.ts +7 -0
  132. package/dist/runtime/subagents/types.d.ts.map +1 -1
  133. package/dist/runtime/subagents/types.js +12 -1
  134. package/dist/runtime/subagents/types.js.map +1 -1
  135. package/dist/runtime/ui-events.d.ts +6 -0
  136. package/dist/runtime/ui-events.d.ts.map +1 -1
  137. package/dist/runtime/ui-events.js +5 -5
  138. package/dist/runtime/ui-events.js.map +1 -1
  139. package/dist/services/config.d.ts +1 -1
  140. package/dist/services/config.d.ts.map +1 -1
  141. package/dist/services/config.js +53 -48
  142. package/dist/services/config.js.map +1 -1
  143. package/dist/services/doctor.d.ts.map +1 -1
  144. package/dist/services/doctor.js +163 -17
  145. package/dist/services/doctor.js.map +1 -1
  146. package/dist/services/goal-storage.d.ts +9 -4
  147. package/dist/services/goal-storage.d.ts.map +1 -1
  148. package/dist/services/goal-storage.js +1113 -75
  149. package/dist/services/goal-storage.js.map +1 -1
  150. package/dist/services/llm.d.ts +19 -0
  151. package/dist/services/llm.d.ts.map +1 -1
  152. package/dist/services/llm.js +153 -20
  153. package/dist/services/llm.js.map +1 -1
  154. package/dist/services/model-registry.d.ts +1 -1
  155. package/dist/services/model-registry.d.ts.map +1 -1
  156. package/dist/services/model-registry.js +69 -19
  157. package/dist/services/model-registry.js.map +1 -1
  158. package/dist/services/provider-resilience/coordinator.d.ts +2 -1
  159. package/dist/services/provider-resilience/coordinator.d.ts.map +1 -1
  160. package/dist/services/provider-resilience/coordinator.js +7 -6
  161. package/dist/services/provider-resilience/coordinator.js.map +1 -1
  162. package/dist/services/provider-resilience/error-classifier.d.ts.map +1 -1
  163. package/dist/services/provider-resilience/error-classifier.js +67 -17
  164. package/dist/services/provider-resilience/error-classifier.js.map +1 -1
  165. package/dist/services/provider-resilience/types.d.ts +1 -1
  166. package/dist/services/provider-resilience/types.d.ts.map +1 -1
  167. package/dist/services/provider-resilience/types.js.map +1 -1
  168. package/dist/services/redaction.d.ts.map +1 -1
  169. package/dist/services/redaction.js +9 -1
  170. package/dist/services/redaction.js.map +1 -1
  171. package/dist/services/session-storage.d.ts +12 -1
  172. package/dist/services/session-storage.d.ts.map +1 -1
  173. package/dist/services/session-storage.js +23 -7
  174. package/dist/services/session-storage.js.map +1 -1
  175. package/dist/services/storage-maintenance.d.ts +73 -3
  176. package/dist/services/storage-maintenance.d.ts.map +1 -1
  177. package/dist/services/storage-maintenance.js +771 -104
  178. package/dist/services/storage-maintenance.js.map +1 -1
  179. package/dist/services/task-manager.d.ts.map +1 -1
  180. package/dist/services/task-manager.js +2 -2
  181. package/dist/services/task-manager.js.map +1 -1
  182. package/dist/services/web-search-adapters.d.ts.map +1 -1
  183. package/dist/services/web-search-adapters.js +89 -49
  184. package/dist/services/web-search-adapters.js.map +1 -1
  185. package/dist/services/web-search-mcp.d.ts.map +1 -1
  186. package/dist/services/web-search-mcp.js +34 -37
  187. package/dist/services/web-search-mcp.js.map +1 -1
  188. package/dist/services/workspace-state.d.ts +4 -0
  189. package/dist/services/workspace-state.d.ts.map +1 -1
  190. package/dist/services/workspace-state.js +30 -9
  191. package/dist/services/workspace-state.js.map +1 -1
  192. package/dist/terminal-ui/launch.d.ts +2 -0
  193. package/dist/terminal-ui/launch.d.ts.map +1 -1
  194. package/dist/terminal-ui/launch.js +21 -7
  195. package/dist/terminal-ui/launch.js.map +1 -1
  196. package/dist/tools/git.d.ts.map +1 -1
  197. package/dist/tools/git.js +275 -27
  198. package/dist/tools/git.js.map +1 -1
  199. package/dist/tools/index.d.ts.map +1 -1
  200. package/dist/tools/index.js +23 -4
  201. package/dist/tools/index.js.map +1 -1
  202. package/dist/tools/mcp.d.ts.map +1 -1
  203. package/dist/tools/mcp.js +20 -12
  204. package/dist/tools/mcp.js.map +1 -1
  205. package/dist/tools/web.d.ts.map +1 -1
  206. package/dist/tools/web.js +38 -14
  207. package/dist/tools/web.js.map +1 -1
  208. package/dist/tui-ui/layout.d.ts.map +1 -1
  209. package/dist/tui-ui/layout.js +36 -23
  210. package/dist/tui-ui/layout.js.map +1 -1
  211. package/dist/tui-ui/pickers.d.ts.map +1 -1
  212. package/dist/tui-ui/pickers.js +4 -3
  213. package/dist/tui-ui/pickers.js.map +1 -1
  214. package/dist/tui-ui/runner.d.ts +1 -0
  215. package/dist/tui-ui/runner.d.ts.map +1 -1
  216. package/dist/tui-ui/runner.js +14 -0
  217. package/dist/tui-ui/runner.js.map +1 -1
  218. package/dist/tui-ui/state.d.ts +6 -0
  219. package/dist/tui-ui/state.d.ts.map +1 -1
  220. package/dist/tui-ui/state.js +60 -30
  221. package/dist/tui-ui/state.js.map +1 -1
  222. package/package.json +13 -9
  223. package/dist/core/state.d.ts +0 -94
  224. package/dist/core/state.d.ts.map +0 -1
  225. package/dist/core/state.js +0 -178
  226. package/dist/core/state.js.map +0 -1
  227. package/dist/ink/bidi.d.ts +0 -16
  228. package/dist/ink/bidi.d.ts.map +0 -1
  229. package/dist/ink/bidi.js +0 -124
  230. package/dist/ink/bidi.js.map +0 -1
  231. package/dist/ink/clearTerminal.d.ts +0 -14
  232. package/dist/ink/clearTerminal.d.ts.map +0 -1
  233. package/dist/ink/clearTerminal.js +0 -63
  234. package/dist/ink/clearTerminal.js.map +0 -1
  235. package/dist/ink/colorize.d.ts +0 -17
  236. package/dist/ink/colorize.d.ts.map +0 -1
  237. package/dist/ink/colorize.js +0 -208
  238. package/dist/ink/colorize.js.map +0 -1
  239. package/dist/ink/components/App.d.ts +0 -73
  240. package/dist/ink/components/App.d.ts.map +0 -1
  241. package/dist/ink/components/App.js +0 -646
  242. package/dist/ink/components/App.js.map +0 -1
  243. package/dist/ink/components/AppContext.d.ts +0 -12
  244. package/dist/ink/components/AppContext.d.ts.map +0 -1
  245. package/dist/ink/components/AppContext.js +0 -14
  246. package/dist/ink/components/AppContext.js.map +0 -1
  247. package/dist/ink/components/Box.d.ts +0 -44
  248. package/dist/ink/components/Box.d.ts.map +0 -1
  249. package/dist/ink/components/Box.js +0 -191
  250. package/dist/ink/components/Box.js.map +0 -1
  251. package/dist/ink/components/ClockContext.d.ts +0 -9
  252. package/dist/ink/components/ClockContext.d.ts.map +0 -1
  253. package/dist/ink/components/ClockContext.js +0 -146
  254. package/dist/ink/components/ClockContext.js.map +0 -1
  255. package/dist/ink/components/CursorDeclarationContext.d.ts +0 -23
  256. package/dist/ink/components/CursorDeclarationContext.d.ts.map +0 -1
  257. package/dist/ink/components/CursorDeclarationContext.js +0 -6
  258. package/dist/ink/components/CursorDeclarationContext.js.map +0 -1
  259. package/dist/ink/components/ErrorOverview.d.ts +0 -6
  260. package/dist/ink/components/ErrorOverview.d.ts.map +0 -1
  261. package/dist/ink/components/ErrorOverview.js +0 -27
  262. package/dist/ink/components/ErrorOverview.js.map +0 -1
  263. package/dist/ink/components/Newline.d.ts +0 -13
  264. package/dist/ink/components/Newline.d.ts.map +0 -1
  265. package/dist/ink/components/Newline.js +0 -36
  266. package/dist/ink/components/Newline.js.map +0 -1
  267. package/dist/ink/components/NoSelect.d.ts +0 -20
  268. package/dist/ink/components/NoSelect.d.ts.map +0 -1
  269. package/dist/ink/components/NoSelect.js +0 -63
  270. package/dist/ink/components/NoSelect.js.map +0 -1
  271. package/dist/ink/components/RawAnsi.d.ts +0 -17
  272. package/dist/ink/components/RawAnsi.d.ts.map +0 -1
  273. package/dist/ink/components/RawAnsi.js +0 -52
  274. package/dist/ink/components/RawAnsi.js.map +0 -1
  275. package/dist/ink/components/Spacer.d.ts +0 -6
  276. package/dist/ink/components/Spacer.d.ts.map +0 -1
  277. package/dist/ink/components/Spacer.js +0 -26
  278. package/dist/ink/components/Spacer.js.map +0 -1
  279. package/dist/ink/components/StdinContext.d.ts +0 -28
  280. package/dist/ink/components/StdinContext.d.ts.map +0 -1
  281. package/dist/ink/components/StdinContext.js +0 -19
  282. package/dist/ink/components/StdinContext.js.map +0 -1
  283. package/dist/ink/components/TerminalFocusContext.d.ts +0 -10
  284. package/dist/ink/components/TerminalFocusContext.d.ts.map +0 -1
  285. package/dist/ink/components/TerminalFocusContext.js +0 -81
  286. package/dist/ink/components/TerminalFocusContext.js.map +0 -1
  287. package/dist/ink/components/TerminalSizeContext.d.ts +0 -6
  288. package/dist/ink/components/TerminalSizeContext.d.ts.map +0 -1
  289. package/dist/ink/components/TerminalSizeContext.js +0 -6
  290. package/dist/ink/components/TerminalSizeContext.js.map +0 -1
  291. package/dist/ink/components/Text.d.ts +0 -56
  292. package/dist/ink/components/Text.d.ts.map +0 -1
  293. package/dist/ink/components/Text.js +0 -201
  294. package/dist/ink/components/Text.js.map +0 -1
  295. package/dist/ink/constants.d.ts +0 -2
  296. package/dist/ink/constants.d.ts.map +0 -1
  297. package/dist/ink/constants.js +0 -6
  298. package/dist/ink/constants.js.map +0 -1
  299. package/dist/ink/devtools.d.ts +0 -3
  300. package/dist/ink/devtools.d.ts.map +0 -1
  301. package/dist/ink/devtools.js +0 -5
  302. package/dist/ink/devtools.js.map +0 -1
  303. package/dist/ink/dom.d.ts +0 -77
  304. package/dist/ink/dom.d.ts.map +0 -1
  305. package/dist/ink/dom.js +0 -322
  306. package/dist/ink/dom.js.map +0 -1
  307. package/dist/ink/events/click-event.d.ts +0 -32
  308. package/dist/ink/events/click-event.d.ts.map +0 -1
  309. package/dist/ink/events/click-event.js +0 -30
  310. package/dist/ink/events/click-event.js.map +0 -1
  311. package/dist/ink/events/dispatcher.d.ts +0 -41
  312. package/dist/ink/events/dispatcher.d.ts.map +0 -1
  313. package/dist/ink/events/dispatcher.js +0 -181
  314. package/dist/ink/events/dispatcher.js.map +0 -1
  315. package/dist/ink/events/emitter.d.ts +0 -6
  316. package/dist/ink/events/emitter.d.ts.map +0 -1
  317. package/dist/ink/events/emitter.js +0 -36
  318. package/dist/ink/events/emitter.js.map +0 -1
  319. package/dist/ink/events/event-handlers.d.ts +0 -47
  320. package/dist/ink/events/event-handlers.d.ts.map +0 -1
  321. package/dist/ink/events/event-handlers.js +0 -34
  322. package/dist/ink/events/event-handlers.js.map +0 -1
  323. package/dist/ink/events/event.d.ts +0 -6
  324. package/dist/ink/events/event.d.ts.map +0 -1
  325. package/dist/ink/events/event.js +0 -16
  326. package/dist/ink/events/event.js.map +0 -1
  327. package/dist/ink/events/focus-event.d.ts +0 -14
  328. package/dist/ink/events/focus-event.d.ts.map +0 -1
  329. package/dist/ink/events/focus-event.js +0 -20
  330. package/dist/ink/events/focus-event.js.map +0 -1
  331. package/dist/ink/events/input-event.d.ts +0 -31
  332. package/dist/ink/events/input-event.d.ts.map +0 -1
  333. package/dist/ink/events/input-event.js +0 -163
  334. package/dist/ink/events/input-event.js.map +0 -1
  335. package/dist/ink/events/keyboard-event.d.ts +0 -20
  336. package/dist/ink/events/keyboard-event.d.ts.map +0 -1
  337. package/dist/ink/events/keyboard-event.js +0 -44
  338. package/dist/ink/events/keyboard-event.js.map +0 -1
  339. package/dist/ink/events/terminal-event.d.ts +0 -55
  340. package/dist/ink/events/terminal-event.d.ts.map +0 -1
  341. package/dist/ink/events/terminal-event.js +0 -79
  342. package/dist/ink/events/terminal-event.js.map +0 -1
  343. package/dist/ink/events/terminal-focus-event.d.ts +0 -14
  344. package/dist/ink/events/terminal-focus-event.d.ts.map +0 -1
  345. package/dist/ink/events/terminal-focus-event.js +0 -19
  346. package/dist/ink/events/terminal-focus-event.js.map +0 -1
  347. package/dist/ink/focus.d.ts +0 -44
  348. package/dist/ink/focus.d.ts.map +0 -1
  349. package/dist/ink/focus.js +0 -164
  350. package/dist/ink/focus.js.map +0 -1
  351. package/dist/ink/frame.d.ts +0 -95
  352. package/dist/ink/frame.d.ts.map +0 -1
  353. package/dist/ink/frame.js +0 -35
  354. package/dist/ink/frame.js.map +0 -1
  355. package/dist/ink/get-max-width.d.ts +0 -18
  356. package/dist/ink/get-max-width.d.ts.map +0 -1
  357. package/dist/ink/get-max-width.js +0 -26
  358. package/dist/ink/get-max-width.js.map +0 -1
  359. package/dist/ink/hit-test.d.ts +0 -34
  360. package/dist/ink/hit-test.d.ts.map +0 -1
  361. package/dist/ink/hit-test.js +0 -119
  362. package/dist/ink/hit-test.js.map +0 -1
  363. package/dist/ink/hooks/use-animation-frame.d.ts +0 -27
  364. package/dist/ink/hooks/use-animation-frame.d.ts.map +0 -1
  365. package/dist/ink/hooks/use-animation-frame.js +0 -52
  366. package/dist/ink/hooks/use-animation-frame.js.map +0 -1
  367. package/dist/ink/hooks/use-app.d.ts +0 -6
  368. package/dist/ink/hooks/use-app.d.ts.map +0 -1
  369. package/dist/ink/hooks/use-app.js +0 -13
  370. package/dist/ink/hooks/use-app.js.map +0 -1
  371. package/dist/ink/hooks/use-declared-cursor.d.ts +0 -27
  372. package/dist/ink/hooks/use-declared-cursor.d.ts.map +0 -1
  373. package/dist/ink/hooks/use-declared-cursor.js +0 -67
  374. package/dist/ink/hooks/use-declared-cursor.js.map +0 -1
  375. package/dist/ink/hooks/use-input.d.ts +0 -38
  376. package/dist/ink/hooks/use-input.d.ts.map +0 -1
  377. package/dist/ink/hooks/use-input.js +0 -86
  378. package/dist/ink/hooks/use-input.js.map +0 -1
  379. package/dist/ink/hooks/use-interval.d.ts +0 -19
  380. package/dist/ink/hooks/use-interval.d.ts.map +0 -1
  381. package/dist/ink/hooks/use-interval.js +0 -59
  382. package/dist/ink/hooks/use-interval.js.map +0 -1
  383. package/dist/ink/hooks/use-search-highlight.d.ts +0 -31
  384. package/dist/ink/hooks/use-search-highlight.d.ts.map +0 -1
  385. package/dist/ink/hooks/use-search-highlight.js +0 -39
  386. package/dist/ink/hooks/use-search-highlight.js.map +0 -1
  387. package/dist/ink/hooks/use-selection.d.ts +0 -40
  388. package/dist/ink/hooks/use-selection.d.ts.map +0 -1
  389. package/dist/ink/hooks/use-selection.js +0 -68
  390. package/dist/ink/hooks/use-selection.js.map +0 -1
  391. package/dist/ink/hooks/use-stdin.d.ts +0 -6
  392. package/dist/ink/hooks/use-stdin.d.ts.map +0 -1
  393. package/dist/ink/hooks/use-stdin.js +0 -13
  394. package/dist/ink/hooks/use-stdin.js.map +0 -1
  395. package/dist/ink/hooks/use-tab-status.d.ts +0 -14
  396. package/dist/ink/hooks/use-tab-status.d.ts.map +0 -1
  397. package/dist/ink/hooks/use-tab-status.js +0 -61
  398. package/dist/ink/hooks/use-tab-status.js.map +0 -1
  399. package/dist/ink/hooks/use-terminal-focus.d.ts +0 -11
  400. package/dist/ink/hooks/use-terminal-focus.d.ts.map +0 -1
  401. package/dist/ink/hooks/use-terminal-focus.js +0 -22
  402. package/dist/ink/hooks/use-terminal-focus.js.map +0 -1
  403. package/dist/ink/hooks/use-terminal-title.d.ts +0 -13
  404. package/dist/ink/hooks/use-terminal-title.d.ts.map +0 -1
  405. package/dist/ink/hooks/use-terminal-title.js +0 -36
  406. package/dist/ink/hooks/use-terminal-title.js.map +0 -1
  407. package/dist/ink/hooks/use-terminal-viewport.d.ts +0 -30
  408. package/dist/ink/hooks/use-terminal-viewport.d.ts.map +0 -1
  409. package/dist/ink/hooks/use-terminal-viewport.js +0 -81
  410. package/dist/ink/hooks/use-terminal-viewport.js.map +0 -1
  411. package/dist/ink/ink.d.ts +0 -371
  412. package/dist/ink/ink.d.ts.map +0 -1
  413. package/dist/ink/ink.js +0 -1686
  414. package/dist/ink/ink.js.map +0 -1
  415. package/dist/ink/instances.d.ts +0 -4
  416. package/dist/ink/instances.d.ts.map +0 -1
  417. package/dist/ink/instances.js +0 -10
  418. package/dist/ink/instances.js.map +0 -1
  419. package/dist/ink/line-width-cache.d.ts +0 -2
  420. package/dist/ink/line-width-cache.d.ts.map +0 -1
  421. package/dist/ink/line-width-cache.js +0 -23
  422. package/dist/ink/line-width-cache.js.map +0 -1
  423. package/dist/ink/log-update.d.ts +0 -18
  424. package/dist/ink/log-update.d.ts.map +0 -1
  425. package/dist/ink/log-update.js +0 -637
  426. package/dist/ink/log-update.js.map +0 -1
  427. package/dist/ink/measure-element.d.ts +0 -17
  428. package/dist/ink/measure-element.d.ts.map +0 -1
  429. package/dist/ink/measure-element.js +0 -11
  430. package/dist/ink/measure-element.js.map +0 -1
  431. package/dist/ink/measure-text.d.ts +0 -7
  432. package/dist/ink/measure-text.d.ts.map +0 -1
  433. package/dist/ink/measure-text.js +0 -38
  434. package/dist/ink/measure-text.js.map +0 -1
  435. package/dist/ink/node-cache.d.ts +0 -21
  436. package/dist/ink/node-cache.d.ts.map +0 -1
  437. package/dist/ink/node-cache.js +0 -36
  438. package/dist/ink/node-cache.js.map +0 -1
  439. package/dist/ink/optimizer.d.ts +0 -16
  440. package/dist/ink/optimizer.d.ts.map +0 -1
  441. package/dist/ink/optimizer.js +0 -85
  442. package/dist/ink/optimizer.js.map +0 -1
  443. package/dist/ink/output.d.ts +0 -120
  444. package/dist/ink/output.d.ts.map +0 -1
  445. package/dist/ink/output.js +0 -559
  446. package/dist/ink/output.js.map +0 -1
  447. package/dist/ink/parse-keypress.d.ts +0 -112
  448. package/dist/ink/parse-keypress.d.ts.map +0 -1
  449. package/dist/ink/parse-keypress.js +0 -719
  450. package/dist/ink/parse-keypress.js.map +0 -1
  451. package/dist/ink/parse-keypress.test.d.ts +0 -2
  452. package/dist/ink/parse-keypress.test.d.ts.map +0 -1
  453. package/dist/ink/parse-keypress.test.js +0 -37
  454. package/dist/ink/parse-keypress.test.js.map +0 -1
  455. package/dist/ink/reconciler.d.ts +0 -12
  456. package/dist/ink/reconciler.d.ts.map +0 -1
  457. package/dist/ink/reconciler.js +0 -456
  458. package/dist/ink/reconciler.js.map +0 -1
  459. package/dist/ink/render-border.d.ts +0 -25
  460. package/dist/ink/render-border.d.ts.map +0 -1
  461. package/dist/ink/render-border.js +0 -141
  462. package/dist/ink/render-border.js.map +0 -1
  463. package/dist/ink/render-node-to-output.d.ts +0 -46
  464. package/dist/ink/render-node-to-output.d.ts.map +0 -1
  465. package/dist/ink/render-node-to-output.js +0 -1257
  466. package/dist/ink/render-node-to-output.js.map +0 -1
  467. package/dist/ink/render-to-screen.d.ts +0 -47
  468. package/dist/ink/render-to-screen.d.ts.map +0 -1
  469. package/dist/ink/render-to-screen.js +0 -213
  470. package/dist/ink/render-to-screen.js.map +0 -1
  471. package/dist/ink/renderer.d.ts +0 -15
  472. package/dist/ink/renderer.d.ts.map +0 -1
  473. package/dist/ink/renderer.js +0 -169
  474. package/dist/ink/renderer.js.map +0 -1
  475. package/dist/ink/root.d.ts +0 -75
  476. package/dist/ink/root.d.ts.map +0 -1
  477. package/dist/ink/root.js +0 -89
  478. package/dist/ink/root.js.map +0 -1
  479. package/dist/ink/screen.d.ts +0 -270
  480. package/dist/ink/screen.d.ts.map +0 -1
  481. package/dist/ink/screen.js +0 -1194
  482. package/dist/ink/screen.js.map +0 -1
  483. package/dist/ink/searchHighlight.d.ts +0 -21
  484. package/dist/ink/searchHighlight.d.ts.map +0 -1
  485. package/dist/ink/searchHighlight.js +0 -82
  486. package/dist/ink/searchHighlight.js.map +0 -1
  487. package/dist/ink/selection.d.ts +0 -230
  488. package/dist/ink/selection.d.ts.map +0 -1
  489. package/dist/ink/selection.js +0 -814
  490. package/dist/ink/selection.js.map +0 -1
  491. package/dist/ink/squash-text-nodes.d.ts +0 -23
  492. package/dist/ink/squash-text-nodes.d.ts.map +0 -1
  493. package/dist/ink/squash-text-nodes.js +0 -60
  494. package/dist/ink/squash-text-nodes.js.map +0 -1
  495. package/dist/ink/stringWidth.d.ts +0 -2
  496. package/dist/ink/stringWidth.d.ts.map +0 -1
  497. package/dist/ink/stringWidth.js +0 -207
  498. package/dist/ink/stringWidth.js.map +0 -1
  499. package/dist/ink/styles.d.ts +0 -307
  500. package/dist/ink/styles.d.ts.map +0 -1
  501. package/dist/ink/styles.js +0 -302
  502. package/dist/ink/styles.js.map +0 -1
  503. package/dist/ink/supports-hyperlinks.d.ts +0 -14
  504. package/dist/ink/supports-hyperlinks.d.ts.map +0 -1
  505. package/dist/ink/supports-hyperlinks.js +0 -48
  506. package/dist/ink/supports-hyperlinks.js.map +0 -1
  507. package/dist/ink/tabstops.d.ts +0 -2
  508. package/dist/ink/tabstops.d.ts.map +0 -1
  509. package/dist/ink/tabstops.js +0 -43
  510. package/dist/ink/tabstops.js.map +0 -1
  511. package/dist/ink/terminal-focus-state.d.ts +0 -7
  512. package/dist/ink/terminal-focus-state.d.ts.map +0 -1
  513. package/dist/ink/terminal-focus-state.js +0 -43
  514. package/dist/ink/terminal-focus-state.js.map +0 -1
  515. package/dist/ink/terminal-querier.d.ts +0 -130
  516. package/dist/ink/terminal-querier.d.ts.map +0 -1
  517. package/dist/ink/terminal-querier.js +0 -184
  518. package/dist/ink/terminal-querier.js.map +0 -1
  519. package/dist/ink/terminal.d.ts +0 -56
  520. package/dist/ink/terminal.d.ts.map +0 -1
  521. package/dist/ink/terminal.js +0 -249
  522. package/dist/ink/terminal.js.map +0 -1
  523. package/dist/ink/termio/csi.d.ts +0 -166
  524. package/dist/ink/termio/csi.d.ts.map +0 -1
  525. package/dist/ink/termio/csi.js +0 -285
  526. package/dist/ink/termio/csi.js.map +0 -1
  527. package/dist/ink/termio/dec.d.ts +0 -38
  528. package/dist/ink/termio/dec.d.ts.map +0 -1
  529. package/dist/ink/termio/dec.js +0 -59
  530. package/dist/ink/termio/dec.js.map +0 -1
  531. package/dist/ink/termio.d.ts +0 -25
  532. package/dist/ink/termio.d.ts.map +0 -1
  533. package/dist/ink/termio.js +0 -32
  534. package/dist/ink/termio.js.map +0 -1
  535. package/dist/ink/useTerminalNotification.d.ts +0 -27
  536. package/dist/ink/useTerminalNotification.d.ts.map +0 -1
  537. package/dist/ink/useTerminalNotification.js +0 -62
  538. package/dist/ink/useTerminalNotification.js.map +0 -1
  539. package/dist/ink/warn.d.ts +0 -2
  540. package/dist/ink/warn.d.ts.map +0 -1
  541. package/dist/ink/warn.js +0 -14
  542. package/dist/ink/warn.js.map +0 -1
  543. package/dist/ink/widest-line.d.ts +0 -2
  544. package/dist/ink/widest-line.d.ts.map +0 -1
  545. package/dist/ink/widest-line.js +0 -18
  546. package/dist/ink/widest-line.js.map +0 -1
  547. package/dist/ink/wrap-text.d.ts +0 -3
  548. package/dist/ink/wrap-text.d.ts.map +0 -1
  549. package/dist/ink/wrap-text.js +0 -61
  550. package/dist/ink/wrap-text.js.map +0 -1
  551. package/dist/ink/wrapAnsi.d.ts +0 -8
  552. package/dist/ink/wrapAnsi.d.ts.map +0 -1
  553. package/dist/ink/wrapAnsi.js +0 -13
  554. package/dist/ink/wrapAnsi.js.map +0 -1
  555. package/dist/ink-ui/components/TerminalCursor.d.ts +0 -15
  556. package/dist/ink-ui/components/TerminalCursor.d.ts.map +0 -1
  557. package/dist/ink-ui/components/TerminalCursor.js +0 -49
  558. package/dist/ink-ui/components/TerminalCursor.js.map +0 -1
  559. package/dist/ink-ui/runtime/stdout.d.ts +0 -11
  560. package/dist/ink-ui/runtime/stdout.d.ts.map +0 -1
  561. package/dist/ink-ui/runtime/stdout.js +0 -82
  562. package/dist/ink-ui/runtime/stdout.js.map +0 -1
  563. package/dist/runtime/goal-coordinator.d.ts +0 -66
  564. package/dist/runtime/goal-coordinator.d.ts.map +0 -1
  565. package/dist/runtime/goal-coordinator.js +0 -200
  566. package/dist/runtime/goal-coordinator.js.map +0 -1
  567. package/dist/screens/REPL.d.ts +0 -21
  568. package/dist/screens/REPL.d.ts.map +0 -1
  569. package/dist/screens/REPL.js +0 -139
  570. package/dist/screens/REPL.js.map +0 -1
  571. package/dist/services/goal-sidecar.d.ts +0 -96
  572. package/dist/services/goal-sidecar.d.ts.map +0 -1
  573. package/dist/services/goal-sidecar.js +0 -145
  574. package/dist/services/goal-sidecar.js.map +0 -1
  575. package/dist/tools/goal.d.ts +0 -17
  576. package/dist/tools/goal.d.ts.map +0 -1
  577. package/dist/tools/goal.js +0 -191
  578. package/dist/tools/goal.js.map +0 -1
  579. package/dist/ui/ink/components/App.d.ts +0 -6
  580. package/dist/ui/ink/components/App.d.ts.map +0 -1
  581. package/dist/ui/ink/components/App.js +0 -38
  582. package/dist/ui/ink/components/App.js.map +0 -1
  583. package/dist/ui/ink/components/CommandPanel.d.ts +0 -13
  584. package/dist/ui/ink/components/CommandPanel.d.ts.map +0 -1
  585. package/dist/ui/ink/components/CommandPanel.js +0 -41
  586. package/dist/ui/ink/components/CommandPanel.js.map +0 -1
  587. package/dist/ui/ink/components/InputLine.d.ts +0 -8
  588. package/dist/ui/ink/components/InputLine.d.ts.map +0 -1
  589. package/dist/ui/ink/components/InputLine.js +0 -15
  590. package/dist/ui/ink/components/InputLine.js.map +0 -1
  591. package/dist/ui/ink/components/StatusBar.d.ts +0 -9
  592. package/dist/ui/ink/components/StatusBar.d.ts.map +0 -1
  593. package/dist/ui/ink/components/StatusBar.js +0 -18
  594. package/dist/ui/ink/components/StatusBar.js.map +0 -1
  595. package/dist/ui/ink/components/index.d.ts +0 -5
  596. package/dist/ui/ink/components/index.d.ts.map +0 -1
  597. package/dist/ui/ink/components/index.js +0 -5
  598. package/dist/ui/ink/components/index.js.map +0 -1
  599. package/dist/utils/chalk.d.ts +0 -9
  600. package/dist/utils/chalk.d.ts.map +0 -1
  601. package/dist/utils/chalk.js +0 -16
  602. package/dist/utils/chalk.js.map +0 -1
package/dist/tools/git.js CHANGED
@@ -13,18 +13,40 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.GIT_TOOLS = exports.gitPushTool = exports.gitStatusTool = void 0;
14
14
  const tool_1 = require("../framework/tool");
15
15
  const child_process_1 = require("child_process");
16
+ const path_1 = require("path");
17
+ function normalizeStagePath(value) {
18
+ if (value.length === 0 ||
19
+ value.includes('\0') ||
20
+ value.includes('\r') ||
21
+ value.includes('\n') ||
22
+ value.includes('\\') ||
23
+ value.startsWith('/') ||
24
+ value.startsWith(':') ||
25
+ ['*', '?', '[', ']'].some(character => value.includes(character))) {
26
+ return null;
27
+ }
28
+ const normalized = path_1.posix.normalize(value);
29
+ if (normalized === '.' || normalized === '..' || normalized.startsWith('../')) {
30
+ return null;
31
+ }
32
+ return normalized;
33
+ }
34
+ function parseStagedPaths(output) {
35
+ return output.split('\0').filter(Boolean);
36
+ }
16
37
  async function execGit(command, cwd, timeout = 30000) {
17
38
  return execGitArgs(command.split(' '), cwd, timeout);
18
39
  }
19
40
  async function execGitArgs(args, cwd, timeout = 30000) {
20
- return new Promise((resolve) => {
41
+ return new Promise(resolve => {
21
42
  const workdir = cwd || process.cwd();
22
43
  (0, child_process_1.execFile)('git', args, {
23
44
  cwd: workdir,
24
45
  timeout,
25
46
  maxBuffer: 1024 * 1024,
26
47
  }, (error, stdout, stderr) => {
27
- const output = stdout.toString().trim();
48
+ // Preserve the leading status columns from `git status --porcelain`.
49
+ const output = stdout.toString().trimEnd();
28
50
  const errOutput = stderr.toString().trim();
29
51
  if (error) {
30
52
  resolve({
@@ -36,7 +58,7 @@ async function execGitArgs(args, cwd, timeout = 30000) {
36
58
  else {
37
59
  resolve({
38
60
  success: true,
39
- output: output || '(no output)',
61
+ output,
40
62
  error: errOutput || undefined,
41
63
  });
42
64
  }
@@ -49,13 +71,13 @@ async function execGitArgs(args, cwd, timeout = 30000) {
49
71
  async function checkUncommittedChanges(cwd) {
50
72
  const statusResult = await execGit('status --porcelain', cwd);
51
73
  if (!statusResult.success) {
52
- return { hasChanges: false, files: [] };
74
+ return { success: false, error: statusResult.error || 'unknown git status error' };
53
75
  }
54
76
  const files = statusResult.output
55
77
  .split('\n')
56
78
  .filter(line => line.trim())
57
79
  .map(line => line.slice(3).trim()); // 去除状态码
58
- return { hasChanges: files.length > 0, files };
80
+ return { success: true, hasChanges: files.length > 0, files };
59
81
  }
60
82
  /**
61
83
  * 检查远程认证状态
@@ -144,15 +166,16 @@ exports.gitStatusTool = (0, tool_1.buildTool)({
144
166
  // ============================================================================
145
167
  exports.gitPushTool = (0, tool_1.buildTool)({
146
168
  name: 'git_push',
147
- description: `安全执行 git push,自动验证 git status 和认证状态。
169
+ description: `安全执行 git push,自动验证 git status、显式 staging 边界和认证状态。
148
170
 
149
171
  工作流程:
150
172
  1. 检查 git status --porcelain(未暂存/未提交的文件)
151
- 2. 可选自动 git add -A 添加所有变更
173
+ 2. 仅对显式文件 paths 执行 git add -- <paths>;拒绝目录、glob/pathspec 和预暂存越界文件
152
174
  3. git commit(如果需要)
153
- 4. 检查远程认证状态
154
- 5. git push
155
- 6. 验证 push 成功
175
+ 4. 若提交后仍有未提交文件,在任何远程写入前停止
176
+ 5. 检查远程认证状态
177
+ 6. git push
178
+ 7. 验证 push 成功
156
179
 
157
180
  Issue #18/#23 修复:不再在未验证的情况下声称成功。`,
158
181
  parameters: {
@@ -164,7 +187,12 @@ Issue #18/#23 修复:不再在未验证的情况下声称成功。`,
164
187
  },
165
188
  add_all: {
166
189
  type: 'boolean',
167
- description: '是否自动 git add -A(默认 true)',
190
+ description: '已废弃且禁止;请使用 paths 显式列出要暂存的文件',
191
+ },
192
+ paths: {
193
+ type: 'array',
194
+ items: { type: 'string' },
195
+ description: '要暂存的精确仓库相对文件路径;存在工作区变更时必填',
168
196
  },
169
197
  cwd: {
170
198
  type: 'string',
@@ -179,29 +207,164 @@ Issue #18/#23 修复:不再在未验证的情况下声称成功。`,
179
207
  },
180
208
  execute: async (args) => {
181
209
  const message = args.message;
182
- const addAll = args.add_all ?? true;
210
+ const addAll = args.add_all ?? false;
211
+ const rawPaths = args.paths;
183
212
  const cwd = args.cwd;
184
213
  const verify = args.verify ?? true;
185
214
  if (!message || typeof message !== 'string') {
186
215
  return { success: false, output: '', error: 'git_push requires a commit message' };
187
216
  }
217
+ if (addAll) {
218
+ return {
219
+ success: false,
220
+ output: '',
221
+ error: 'git_push add_all=true is disabled; provide an explicit paths allowlist',
222
+ };
223
+ }
224
+ if (rawPaths !== undefined && !Array.isArray(rawPaths)) {
225
+ return { success: false, output: '', error: 'git_push paths must be an array of strings' };
226
+ }
227
+ const paths = rawPaths ?? [];
228
+ if (paths.some(path => typeof path !== 'string')) {
229
+ return {
230
+ success: false,
231
+ output: '',
232
+ error: 'git_push paths must contain only strings',
233
+ };
234
+ }
235
+ const normalizedPaths = paths.map(normalizeStagePath);
236
+ if (normalizedPaths.some(path => path === null)) {
237
+ return {
238
+ success: false,
239
+ output: '',
240
+ error: 'git_push paths must be exact repository-relative files without glob or pathspec syntax',
241
+ };
242
+ }
243
+ const stagePaths = [...new Set(normalizedPaths)];
188
244
  const log = [];
189
245
  // 1. 检查当前状态
190
246
  log.push('🔍 Checking git status...');
191
247
  const changes = await checkUncommittedChanges(cwd);
248
+ if (!changes.success) {
249
+ return {
250
+ success: false,
251
+ output: log.join('\n'),
252
+ error: `git status failed: ${changes.error}`,
253
+ };
254
+ }
192
255
  if (changes.hasChanges) {
193
256
  log.push(` Found ${changes.files.length} uncommitted files: ${changes.files.slice(0, 5).join(', ')}${changes.files.length > 5 ? '...' : ''}`);
194
- // 2. git add(如果启用)
195
- if (addAll) {
196
- log.push('📦 Running git add -A...');
197
- const addResult = await execGit('add -A', cwd);
198
- if (!addResult.success) {
199
- return { success: false, output: log.join('\n'), error: `git add failed: ${addResult.error}` };
257
+ // 2. 只暂存显式文件 allowlist;永不继承或扩大现有 staging 边界。
258
+ if (stagePaths.length === 0) {
259
+ return {
260
+ success: false,
261
+ output: log.join('\n'),
262
+ error: 'Uncommitted changes require an explicit file paths allowlist',
263
+ };
264
+ }
265
+ const expectedStagePaths = new Set(stagePaths);
266
+ for (const path of stagePaths) {
267
+ const exactPathResult = await execGitArgs(['ls-files', '--cached', '--others', '--exclude-standard', '-z', '--', path], cwd);
268
+ if (!exactPathResult.success) {
269
+ return {
270
+ success: false,
271
+ output: log.join('\n'),
272
+ error: `Exact staging-path verification failed for ${path}: ${exactPathResult.error}`,
273
+ };
274
+ }
275
+ const matchingPaths = parseStagedPaths(exactPathResult.output);
276
+ if (matchingPaths.length !== 1 || matchingPaths[0] !== path) {
277
+ return {
278
+ success: false,
279
+ output: log.join('\n'),
280
+ error: `git_push paths must identify exact files, not directories or expanded pathspecs: ${path}`,
281
+ };
200
282
  }
201
- log.push(' ✓ Files added to staging');
202
283
  }
203
- else {
204
- log.push(' ⚠ add_all=false, skipping git add');
284
+ const initialStagedResult = await execGitArgs(['diff', '--cached', '--name-only', '-z'], cwd);
285
+ if (!initialStagedResult.success) {
286
+ return {
287
+ success: false,
288
+ output: log.join('\n'),
289
+ error: `Initial staged-file verification failed: ${initialStagedResult.error}`,
290
+ };
291
+ }
292
+ const unexpectedInitialPaths = parseStagedPaths(initialStagedResult.output).filter(path => !expectedStagePaths.has(path));
293
+ if (unexpectedInitialPaths.length > 0) {
294
+ return {
295
+ success: false,
296
+ output: log.join('\n'),
297
+ error: `Pre-staged files fall outside the explicit allowlist: ${unexpectedInitialPaths.join(', ')}`,
298
+ };
299
+ }
300
+ const indexSnapshotResult = await execGitArgs(['write-tree'], cwd);
301
+ if (!indexSnapshotResult.success || !/^[0-9a-f]{40,64}$/.test(indexSnapshotResult.output)) {
302
+ return {
303
+ success: false,
304
+ output: log.join('\n'),
305
+ error: `Unable to snapshot the Git index before staging: ${indexSnapshotResult.error || 'invalid tree id'}`,
306
+ };
307
+ }
308
+ const restoreIndex = async () => {
309
+ const result = await execGitArgs(['read-tree', indexSnapshotResult.output], cwd);
310
+ return result.success ? undefined : result.error || 'unknown index restore error';
311
+ };
312
+ log.push(`📦 Staging ${stagePaths.length} explicit file(s)...`);
313
+ const addResult = await execGitArgs(['add', '--', ...stagePaths], cwd);
314
+ if (!addResult.success) {
315
+ const restoreError = await restoreIndex();
316
+ return {
317
+ success: false,
318
+ output: log.join('\n'),
319
+ error: restoreError
320
+ ? `git add failed: ${addResult.error}; index rollback failed: ${restoreError}`
321
+ : `git add failed: ${addResult.error}; index restored`,
322
+ };
323
+ }
324
+ log.push(` ✓ Staged: ${stagePaths.slice(0, 5).join(', ')}${stagePaths.length > 5 ? '...' : ''}`);
325
+ const stagedResult = await execGitArgs(['diff', '--cached', '--name-only', '-z'], cwd);
326
+ if (!stagedResult.success) {
327
+ const restoreError = await restoreIndex();
328
+ return {
329
+ success: false,
330
+ output: log.join('\n'),
331
+ error: restoreError
332
+ ? `Staged-file verification failed: ${stagedResult.error}; index rollback failed: ${restoreError}`
333
+ : `Staged-file verification failed: ${stagedResult.error}; index restored`,
334
+ };
335
+ }
336
+ const stagedFiles = parseStagedPaths(stagedResult.output);
337
+ const unexpectedStagedPaths = stagedFiles.filter(path => !expectedStagePaths.has(path));
338
+ const missingStagedPaths = stagePaths.filter(path => !stagedFiles.includes(path));
339
+ if (unexpectedStagedPaths.length > 0 || missingStagedPaths.length > 0) {
340
+ const restoreError = await restoreIndex();
341
+ return {
342
+ success: false,
343
+ output: log.join('\n'),
344
+ error: [
345
+ 'Staged files do not exactly match the explicit allowlist',
346
+ unexpectedStagedPaths.length > 0
347
+ ? `unexpected: ${unexpectedStagedPaths.join(', ')}`
348
+ : '',
349
+ missingStagedPaths.length > 0 ? `missing: ${missingStagedPaths.join(', ')}` : '',
350
+ restoreError ? `index rollback failed: ${restoreError}` : 'index restored',
351
+ ]
352
+ .filter(Boolean)
353
+ .join('; '),
354
+ };
355
+ }
356
+ log.push(` ✓ Verified ${stagedFiles.length} staged file(s)`);
357
+ const preCommitHead = await execGitArgs(['rev-parse', 'HEAD'], cwd);
358
+ if (!preCommitHead.success || !/^[0-9a-f]{40,64}$/.test(preCommitHead.output)) {
359
+ const restoreError = await restoreIndex();
360
+ return {
361
+ success: false,
362
+ output: log.join('\n'),
363
+ error: [
364
+ `Unable to snapshot HEAD before commit: ${preCommitHead.error || 'invalid commit id'}`,
365
+ restoreError ? `index rollback failed: ${restoreError}` : 'index restored',
366
+ ].join('; '),
367
+ };
205
368
  }
206
369
  // 3. git commit
207
370
  log.push(`📝 Committing with message: "${message.slice(0, 50)}..."`);
@@ -212,12 +375,46 @@ Issue #18/#23 修复:不再在未验证的情况下声称成功。`,
212
375
  log.push(' ⚠ Nothing new to commit');
213
376
  }
214
377
  else {
215
- return { success: false, output: log.join('\n'), error: `git commit failed: ${commitResult.error}` };
378
+ const postFailureHead = await execGitArgs(['rev-parse', 'HEAD'], cwd);
379
+ const restoreError = await restoreIndex();
380
+ const headChanged = postFailureHead.success && postFailureHead.output !== preCommitHead.output;
381
+ const headStatus = !postFailureHead.success
382
+ ? `HEAD verification failed: ${postFailureHead.error || 'unknown error'}`
383
+ : headChanged
384
+ ? `HEAD changed unexpectedly from ${preCommitHead.output} to ${postFailureHead.output}; manual recovery required`
385
+ : undefined;
386
+ return {
387
+ success: false,
388
+ output: log.join('\n'),
389
+ error: [
390
+ `git commit failed: ${commitResult.error}`,
391
+ restoreError ? `index rollback failed: ${restoreError}` : 'index restored',
392
+ headStatus,
393
+ ]
394
+ .filter(Boolean)
395
+ .join('; '),
396
+ };
216
397
  }
217
398
  }
218
399
  else {
219
400
  log.push(' ✓ Commit successful');
220
401
  }
402
+ const postCommitChanges = await checkUncommittedChanges(cwd);
403
+ if (!postCommitChanges.success) {
404
+ return {
405
+ success: false,
406
+ output: log.join('\n'),
407
+ error: `Post-commit git status failed: ${postCommitChanges.error}`,
408
+ };
409
+ }
410
+ if (postCommitChanges.hasChanges) {
411
+ log.push(` ⚠ ${postCommitChanges.files.length} file(s) remain outside the committed boundary`);
412
+ return {
413
+ success: false,
414
+ output: log.join('\n'),
415
+ error: 'Commit created but push was not attempted because the working tree is not clean',
416
+ };
417
+ }
221
418
  }
222
419
  else {
223
420
  log.push(' ✓ Working directory clean, no changes to commit');
@@ -230,7 +427,7 @@ Issue #18/#23 修复:不再在未验证的情况下声称成功。`,
230
427
  return {
231
428
  success: false,
232
429
  output: log.join('\n'),
233
- error: auth.error || 'Remote authentication failed - please configure git credentials'
430
+ error: auth.error || 'Remote authentication failed - please configure git credentials',
234
431
  };
235
432
  }
236
433
  log.push(' ✓ Authentication verified');
@@ -239,14 +436,39 @@ Issue #18/#23 修复:不再在未验证的情况下声称成功。`,
239
436
  log.push('🚀 Pushing to remote...');
240
437
  const pushResult = await execGit('push', cwd, 60000); // 60s timeout
241
438
  if (!pushResult.success) {
242
- return { success: false, output: log.join('\n'), error: `git push failed: ${pushResult.error}` };
439
+ return {
440
+ success: false,
441
+ output: log.join('\n'),
442
+ error: `git push failed: ${pushResult.error}`,
443
+ };
243
444
  }
244
445
  log.push(' ✓ Push completed');
245
446
  // 6. 验证最终状态(v0.1.11 增强)
246
447
  log.push('✅ Verifying final status...');
247
448
  const finalChanges = await checkUncommittedChanges(cwd);
449
+ if (!finalChanges.success) {
450
+ return {
451
+ success: false,
452
+ output: log.join('\n'),
453
+ error: `Final git status failed: ${finalChanges.error}`,
454
+ };
455
+ }
248
456
  const logResult = await execGit('log --oneline -1', cwd);
457
+ if (!logResult.success) {
458
+ return {
459
+ success: false,
460
+ output: log.join('\n'),
461
+ error: `Final git log failed: ${logResult.error}`,
462
+ };
463
+ }
249
464
  const untrackedResult = await execGit('status --short', cwd);
465
+ if (!untrackedResult.success) {
466
+ return {
467
+ success: false,
468
+ output: log.join('\n'),
469
+ error: `Final git status --short failed: ${untrackedResult.error}`,
470
+ };
471
+ }
250
472
  // v0.1.11: 检查是否有未追踪文件(?? 状态)
251
473
  const untrackedFiles = untrackedResult.output
252
474
  .split('\n')
@@ -266,8 +488,29 @@ Issue #18/#23 修复:不再在未验证的情况下声称成功。`,
266
488
  error: 'Push completed but some files remain uncommitted - check git status',
267
489
  };
268
490
  }
491
+ const branchResult = await execGitArgs(['branch', '--show-current'], cwd);
492
+ if (!branchResult.success || !branchResult.output.trim()) {
493
+ return {
494
+ success: false,
495
+ output: log.join('\n'),
496
+ error: `Push completed but current branch verification failed: ${branchResult.error || 'empty branch'}`,
497
+ };
498
+ }
499
+ const branch = branchResult.output.trim();
500
+ const remoteResult = await execGitArgs(['config', '--get', `branch.${branch}.remote`], cwd);
501
+ if (!remoteResult.success || !remoteResult.output.trim()) {
502
+ return {
503
+ success: false,
504
+ output: log.join('\n'),
505
+ error: `Push completed but upstream remote verification failed: ${remoteResult.error || 'missing branch remote'}`,
506
+ };
507
+ }
508
+ const remote = remoteResult.output.trim();
509
+ const latestCommit = logResult.output.split('\n')[0];
269
510
  log.push(` ✓ Working directory clean`);
270
- log.push(` ✓ Latest commit: ${logResult.output.split('\n')[0]}`);
511
+ log.push(` ✓ Pushed branch: ${branch}`);
512
+ log.push(` ✓ Remote: ${remote}`);
513
+ log.push(` ✓ Latest commit: ${latestCommit}`);
271
514
  return {
272
515
  success: true,
273
516
  output: log.join('\n'),
@@ -275,8 +518,13 @@ Issue #18/#23 修复:不再在未验证的情况下声称成功。`,
275
518
  },
276
519
  isDestructive: () => true,
277
520
  isConcurrencySafe: () => false,
278
- checkPermissions: () => ({ behavior: 'ask', reason: 'git push modifies remote repository' }),
279
- userFacingName: (args) => `Git Push: ${args.message?.slice(0, 30)}`,
521
+ checkPermissions: args => ({
522
+ behavior: 'ask',
523
+ reason: Array.isArray(args.paths) && args.paths.length > 0
524
+ ? `git push will stage ${args.paths.length} explicit path(s), commit, and modify the remote repository`
525
+ : 'git push will modify the remote repository and refuses uncommitted changes without explicit paths',
526
+ }),
527
+ userFacingName: args => `Git Push: ${args.message?.slice(0, 30)}`,
280
528
  });
281
529
  // ============================================================================
282
530
  // 导出
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/tools/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/tools/git.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAcH,OAAO,EAEL,KAAK,aAAa,EAElB,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAwB3B,eAAO,MAAM,wBAAwB,aAAqE,CAAC;AAC3G,eAAO,MAAM,oBAAoB,IAAI,CAAC;AA+BtC,eAAO,MAAM,KAAK,EAAE,aAAa,EAsxBhC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,aAAa,EAAE,CAEjD;AAscD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB;AAutBD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,MAAM,CAAC,CAmDjB;AAcD;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAIrC;AAGD,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,gCAAgC,EAChC,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,cAAc,EACd,KAAK,cAAc,EACnB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAcH,OAAO,EAEL,KAAK,aAAa,EAElB,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAyB3B,eAAO,MAAM,wBAAwB,aAMnC,CAAC;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AA+BtC,eAAO,MAAM,KAAK,EAAE,aAAa,EAuxBhC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,aAAa,EAAE,CAEjD;AAscD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB;AAguBD;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,WAAW,CAAC,EAAE,WAAW,EACzB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,MAAM,CAAC,CAuDjB;AAcD;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAIrC;AAGD,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,gCAAgC,EAChC,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,cAAc,EACd,KAAK,cAAc,EACnB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC"}
@@ -20,6 +20,7 @@ const fs_1 = require("fs");
20
20
  const path_1 = require("path");
21
21
  const readline_1 = require("readline");
22
22
  const tool_1 = require("../framework/tool");
23
+ const external_assertion_1 = require("../framework/external-assertion");
23
24
  const tool_state_1 = require("../framework/tool-state");
24
25
  const tool_artifacts_1 = require("../core/tool-artifacts");
25
26
  const environment_1 = require("../product/environment");
@@ -34,7 +35,13 @@ const git_1 = require("./git");
34
35
  const lsp_1 = require("./lsp");
35
36
  const tools_1 = require("../runtime/goals/tools");
36
37
  const bash_security_1 = require("./bash_security");
37
- exports.BATCH_READ_ALLOWED_TOOLS = new Set(['git_status', 'list_files', 'glob', 'grep', 'read_file']);
38
+ exports.BATCH_READ_ALLOWED_TOOLS = new Set([
39
+ 'git_status',
40
+ 'list_files',
41
+ 'glob',
42
+ 'grep',
43
+ 'read_file',
44
+ ]);
38
45
  exports.BATCH_READ_MAX_STEPS = 8;
39
46
  const BATCH_READ_STEP_OUTPUT_MAX_BYTES = 1600;
40
47
  function compactOneLine(text, maxLength) {
@@ -506,7 +513,6 @@ exports.TOOLS = [
506
513
  const name = args.name;
507
514
  const type = args.type;
508
515
  const content = args.content;
509
- const description = args.description || content.slice(0, 80);
510
516
  if (!name || typeof name !== 'string') {
511
517
  return { success: false, output: '', error: 'memory_save requires a name parameter' };
512
518
  }
@@ -520,6 +526,7 @@ exports.TOOLS = [
520
526
  if (!content || typeof content !== 'string') {
521
527
  return { success: false, output: '', error: 'memory_save requires a content parameter' };
522
528
  }
529
+ const description = args.description || content.slice(0, 80);
523
530
  try {
524
531
  const projectPath = context?.cwd || process.cwd();
525
532
  const entry = {
@@ -1310,7 +1317,11 @@ async function editFile_(path, old_string, new_string, replace_all, fuzzy_match,
1310
1317
  }
1311
1318
  const fileStat = safeStatSync(resolved);
1312
1319
  if (!fileStat) {
1313
- return { success: false, output: '', error: `Cannot access file: ${normalizedPath} (may be a dangling symlink)` };
1320
+ return {
1321
+ success: false,
1322
+ output: '',
1323
+ error: `Cannot access file: ${normalizedPath} (may be a dangling symlink)`,
1324
+ };
1314
1325
  }
1315
1326
  if (fileStat.isDirectory()) {
1316
1327
  return {
@@ -1588,7 +1599,11 @@ async function grep_(pattern, basePath, globPattern, contextLines, cwd) {
1588
1599
  }
1589
1600
  const baseStat = safeStatSync(base);
1590
1601
  if (!baseStat) {
1591
- return { success: false, output: '', error: `Cannot access path: ${base} (may be a dangling symlink or missing)` };
1602
+ return {
1603
+ success: false,
1604
+ output: '',
1605
+ error: `Cannot access path: ${base} (may be a dangling symlink or missing)`,
1606
+ };
1592
1607
  }
1593
1608
  if (baseStat.isDirectory()) {
1594
1609
  collectFiles(base);
@@ -1826,6 +1841,9 @@ async function executeTool(name, args, abortSignal, toolContext) {
1826
1841
  turnId: toolContext?.turnId,
1827
1842
  };
1828
1843
  const result = await tool.execute(args, context);
1844
+ // Assertions are generated by the runtime allowlist, never accepted from a
1845
+ // tool's display summary or arbitrary custom ToolResult payload.
1846
+ const externalAssertion = (0, external_assertion_1.deriveToolExternalAssertion)({ name, args, result });
1829
1847
  const summary = summarizeToolResult(tool, args, result);
1830
1848
  const outputBytes = Buffer.byteLength(result.output || '', 'utf8');
1831
1849
  let output = result.output || '';
@@ -1842,6 +1860,7 @@ async function executeTool(name, args, abortSignal, toolContext) {
1842
1860
  output,
1843
1861
  summary,
1844
1862
  outputBytes,
1863
+ externalAssertion,
1845
1864
  };
1846
1865
  if (!result.success) {
1847
1866
  payload.error = result.error;