@vascend/talos 0.1.4 → 0.1.6

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 (251) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +37 -12
  3. package/dist/core/agent.d.ts +16 -3
  4. package/dist/core/agent.js +170 -70
  5. package/dist/core/background.d.ts +10 -3
  6. package/dist/core/background.js +55 -9
  7. package/dist/core/bootstrap.js +1 -0
  8. package/dist/core/compaction.js +1 -1
  9. package/dist/core/config-storage.d.ts +5 -0
  10. package/dist/core/config-storage.js +83 -0
  11. package/dist/core/config.d.ts +11 -2
  12. package/dist/core/config.js +24 -8
  13. package/dist/core/context-ledger.js +2 -1
  14. package/dist/core/context-policy.d.ts +1 -1
  15. package/dist/core/context-policy.js +10 -7
  16. package/dist/core/credentials.js +29 -30
  17. package/dist/core/effort.d.ts +1 -1
  18. package/dist/core/effort.js +5 -1
  19. package/dist/core/execution-guidance.d.ts +1 -1
  20. package/dist/core/execution-guidance.js +2 -0
  21. package/dist/core/file-coordination.d.ts +3 -0
  22. package/dist/core/file-coordination.js +28 -0
  23. package/dist/core/file-lease-store.d.ts +3 -0
  24. package/dist/core/file-lease-store.js +28 -12
  25. package/dist/core/fusion.d.ts +24 -0
  26. package/dist/core/fusion.js +80 -0
  27. package/dist/core/model-limits.d.ts +1 -0
  28. package/dist/core/model-limits.js +5 -1
  29. package/dist/core/permission-queue.js +15 -15
  30. package/dist/core/request-plan.js +4 -3
  31. package/dist/core/session-naming.d.ts +3 -0
  32. package/dist/core/session-naming.js +47 -0
  33. package/dist/core/session-usage.js +4 -1
  34. package/dist/core/session.d.ts +5 -2
  35. package/dist/core/session.js +22 -7
  36. package/dist/core/settings.d.ts +2 -0
  37. package/dist/core/settings.js +5 -16
  38. package/dist/core/step-policy.d.ts +18 -0
  39. package/dist/core/step-policy.js +6 -0
  40. package/dist/core/storage-health.d.ts +24 -0
  41. package/dist/core/storage-health.js +72 -0
  42. package/dist/core/tool-artifacts.d.ts +2 -0
  43. package/dist/core/tool-artifacts.js +21 -3
  44. package/dist/core/tool-result-index.js +29 -33
  45. package/dist/core/tool-result-store.js +6 -5
  46. package/dist/core/types.d.ts +26 -2
  47. package/dist/core/user-inbox.d.ts +9 -0
  48. package/dist/core/user-inbox.js +22 -3
  49. package/dist/core/user-input.js +1 -1
  50. package/dist/fusion/autopilot-fast.d.ts +59 -0
  51. package/dist/fusion/autopilot-fast.js +213 -0
  52. package/dist/fusion/autopilot.d.ts +75 -0
  53. package/dist/fusion/autopilot.js +308 -0
  54. package/dist/fusion/focus.d.ts +30 -0
  55. package/dist/fusion/focus.js +122 -0
  56. package/dist/fusion/gate.d.ts +30 -0
  57. package/dist/fusion/gate.js +95 -0
  58. package/dist/fusion/jev.d.ts +71 -0
  59. package/dist/fusion/jev.js +164 -0
  60. package/dist/fusion/receipts.d.ts +25 -0
  61. package/dist/fusion/receipts.js +34 -0
  62. package/dist/fusion/route.d.ts +25 -0
  63. package/dist/fusion/route.js +84 -0
  64. package/dist/fusion/run.d.ts +4 -0
  65. package/dist/fusion/run.js +186 -0
  66. package/dist/horizon/engine.d.ts +20 -1
  67. package/dist/horizon/engine.js +57 -0
  68. package/dist/horizon/index.d.ts +2 -2
  69. package/dist/horizon/index.js +1 -1
  70. package/dist/horizon/types.d.ts +29 -0
  71. package/dist/index.js +12 -0
  72. package/dist/providers/anthropic-oauth.d.ts +8 -3
  73. package/dist/providers/anthropic-oauth.js +13 -10
  74. package/dist/providers/anthropic.d.ts +9 -2
  75. package/dist/providers/anthropic.js +64 -21
  76. package/dist/providers/cli-models.d.ts +30 -0
  77. package/dist/providers/cli-models.js +194 -0
  78. package/dist/providers/model-effort.js +1 -1
  79. package/dist/providers/openai-oauth.d.ts +8 -3
  80. package/dist/providers/openai-oauth.js +9 -3
  81. package/dist/providers/openrouter-manual-fallback.d.ts +3 -1
  82. package/dist/providers/openrouter-manual-fallback.js +20 -20
  83. package/dist/providers/registry.js +3 -2
  84. package/dist/providers/retry.d.ts +3 -0
  85. package/dist/providers/retry.js +44 -1
  86. package/dist/remote/cifratura.d.ts +12 -0
  87. package/dist/remote/cifratura.js +66 -0
  88. package/dist/remote/index.d.ts +15 -0
  89. package/dist/remote/index.js +65 -0
  90. package/dist/remote/relay-client.d.ts +58 -0
  91. package/dist/remote/relay-client.js +315 -0
  92. package/dist/remote/sessione-remota.d.ts +60 -0
  93. package/dist/remote/sessione-remota.js +266 -0
  94. package/dist/sdk.d.ts +7 -2
  95. package/dist/sdk.js +3 -1
  96. package/dist/tools/builtin.js +41 -20
  97. package/dist/tools/capabilities.d.ts +3 -1
  98. package/dist/tools/capabilities.js +5 -2
  99. package/dist/tools/computer-use.js +2 -1
  100. package/dist/tools/pagination.js +1 -1
  101. package/dist/tools/program.js +34 -21
  102. package/dist/tools/team-tools.js +11 -6
  103. package/dist/tui/account-entry.js +14 -9
  104. package/dist/tui/agent-label.d.ts +2 -0
  105. package/dist/tui/agent-label.js +5 -0
  106. package/dist/tui/agent-sessions-screen.d.ts +35 -0
  107. package/dist/tui/agent-sessions-screen.js +178 -0
  108. package/dist/tui/agent-sessions.d.ts +53 -0
  109. package/dist/tui/agent-sessions.js +236 -0
  110. package/dist/tui/bottom-input.d.ts +57 -2
  111. package/dist/tui/bottom-input.js +449 -54
  112. package/dist/tui/branding.js +8 -4
  113. package/dist/tui/capability-lists.d.ts +10 -0
  114. package/dist/tui/capability-lists.js +41 -0
  115. package/dist/tui/command-output-registry.js +4 -0
  116. package/dist/tui/command-transcript.d.ts +1 -1
  117. package/dist/tui/command-transcript.js +17 -21
  118. package/dist/tui/commands.js +6 -2
  119. package/dist/tui/compaction-status.d.ts +7 -0
  120. package/dist/tui/compaction-status.js +39 -0
  121. package/dist/tui/config-recovery.d.ts +12 -0
  122. package/dist/tui/config-recovery.js +54 -0
  123. package/dist/tui/context-meter.d.ts +3 -0
  124. package/dist/tui/context-meter.js +35 -8
  125. package/dist/tui/diff.d.ts +9 -0
  126. package/dist/tui/diff.js +43 -19
  127. package/dist/tui/fusion-menu.d.ts +5 -0
  128. package/dist/tui/fusion-menu.js +89 -0
  129. package/dist/tui/i18n-catalog.js +351 -2
  130. package/dist/tui/live-command.d.ts +1 -0
  131. package/dist/tui/live-command.js +9 -0
  132. package/dist/tui/live-output.d.ts +1 -0
  133. package/dist/tui/live-output.js +11 -0
  134. package/dist/tui/logo.js +3 -0
  135. package/dist/tui/model-details.js +13 -12
  136. package/dist/tui/model-picker.d.ts +2 -0
  137. package/dist/tui/model-picker.js +59 -0
  138. package/dist/tui/model-selection.js +19 -10
  139. package/dist/tui/native-scrollback.d.ts +2 -1
  140. package/dist/tui/native-scrollback.js +31 -6
  141. package/dist/tui/prompt-queue-store.d.ts +1 -0
  142. package/dist/tui/prompt-queue-store.js +4 -0
  143. package/dist/tui/prompt-queue.d.ts +3 -0
  144. package/dist/tui/prompt-queue.js +19 -1
  145. package/dist/tui/provider-label.d.ts +2 -0
  146. package/dist/tui/provider-label.js +9 -0
  147. package/dist/tui/provider-menu.js +25 -24
  148. package/dist/tui/queue-screen.js +2 -1
  149. package/dist/tui/queued-questions.js +2 -4
  150. package/dist/tui/quick-help.d.ts +1 -1
  151. package/dist/tui/quick-help.js +3 -0
  152. package/dist/tui/remote-command.d.ts +7 -0
  153. package/dist/tui/remote-command.js +79 -0
  154. package/dist/tui/repl.d.ts +11 -2
  155. package/dist/tui/repl.js +457 -327
  156. package/dist/tui/review-store.d.ts +8 -1
  157. package/dist/tui/review-store.js +64 -11
  158. package/dist/tui/review-team.js +4 -3
  159. package/dist/tui/runtime-error.d.ts +2 -0
  160. package/dist/tui/runtime-error.js +26 -0
  161. package/dist/tui/scrollback-archive.d.ts +16 -0
  162. package/dist/tui/scrollback-archive.js +90 -0
  163. package/dist/tui/selector-mouse.d.ts +1 -0
  164. package/dist/tui/selector-mouse.js +1 -1
  165. package/dist/tui/selector.d.ts +11 -0
  166. package/dist/tui/selector.js +28 -4
  167. package/dist/tui/session-controls.d.ts +26 -0
  168. package/dist/tui/session-controls.js +65 -0
  169. package/dist/tui/session-naming-notice.d.ts +14 -0
  170. package/dist/tui/session-naming-notice.js +59 -0
  171. package/dist/tui/session-picker.d.ts +2 -0
  172. package/dist/tui/session-picker.js +32 -0
  173. package/dist/tui/session-replay.d.ts +1 -0
  174. package/dist/tui/session-replay.js +101 -32
  175. package/dist/tui/session-transcript-layout.d.ts +9 -0
  176. package/dist/tui/session-transcript-layout.js +41 -0
  177. package/dist/tui/startup.js +63 -33
  178. package/dist/tui/status-line.d.ts +1 -1
  179. package/dist/tui/status-line.js +20 -12
  180. package/dist/tui/storage-warning.d.ts +2 -0
  181. package/dist/tui/storage-warning.js +35 -0
  182. package/dist/tui/talos-art-data.d.ts +1 -0
  183. package/dist/tui/talos-art-data.js +2 -0
  184. package/dist/tui/talos-art.d.ts +1 -0
  185. package/dist/tui/talos-art.js +9 -0
  186. package/dist/tui/task-labels.d.ts +1 -0
  187. package/dist/tui/task-labels.js +8 -0
  188. package/dist/tui/terminal-text.d.ts +2 -1
  189. package/dist/tui/terminal-text.js +28 -2
  190. package/dist/tui/theme.js +2 -2
  191. package/dist/tui/tool-presentation.d.ts +3 -0
  192. package/dist/tui/tool-presentation.js +98 -0
  193. package/dist/tui/tool-style.js +4 -0
  194. package/dist/tui/transcript-store.d.ts +25 -0
  195. package/dist/tui/transcript-store.js +151 -0
  196. package/dist/tui/usage-footer.d.ts +1 -1
  197. package/dist/tui/usage-footer.js +3 -1
  198. package/dist/tui/vascend-id.d.ts +49 -0
  199. package/dist/tui/vascend-id.js +321 -0
  200. package/dist/tui/web-login-screen.js +4 -3
  201. package/dist/tui/web-login.d.ts +7 -15
  202. package/dist/tui/web-login.js +38 -78
  203. package/dist/tui/worker-transcripts.d.ts +31 -0
  204. package/dist/tui/worker-transcripts.js +91 -0
  205. package/dist/vascend/candidate-collector.d.ts +6 -5
  206. package/dist/vascend/candidate-collector.js +44 -43
  207. package/dist/vascend/context-feedback-loop.js +2 -0
  208. package/dist/vascend/context-lint.js +32 -2
  209. package/dist/vascend/context-market-selection.js +12 -5
  210. package/dist/vascend/context-pack-render.js +10 -4
  211. package/dist/vascend/context-packet-mirrors.d.ts +8 -0
  212. package/dist/vascend/context-packet-mirrors.js +24 -0
  213. package/dist/vascend/context-plan-events.d.ts +4 -0
  214. package/dist/vascend/context-plan-events.js +44 -0
  215. package/dist/vascend/context-snapshot.d.ts +1 -0
  216. package/dist/vascend/context-snapshot.js +8 -5
  217. package/dist/vascend/context-store-reader.d.ts +20 -0
  218. package/dist/vascend/context-store-reader.js +46 -0
  219. package/dist/vascend/context-window-compiler.d.ts +1 -0
  220. package/dist/vascend/context-window-compiler.js +1 -0
  221. package/dist/vascend/file-lock.d.ts +1 -0
  222. package/dist/vascend/file-lock.js +26 -0
  223. package/dist/vascend/granular-kingdom.d.ts +1 -0
  224. package/dist/vascend/granular-kingdom.js +52 -17
  225. package/dist/vascend/kingdom-bus.d.ts +1 -0
  226. package/dist/vascend/kingdom-bus.js +3 -0
  227. package/dist/vascend/kingdom-channel.d.ts +2 -0
  228. package/dist/vascend/kingdom-channel.js +3 -0
  229. package/dist/vascend/kingdom-live.d.ts +32 -4
  230. package/dist/vascend/kingdom-live.js +149 -13
  231. package/dist/vascend/kingdom-run.d.ts +5 -1
  232. package/dist/vascend/kingdom-run.js +6 -2
  233. package/dist/vascend/kingdom.d.ts +3 -0
  234. package/dist/vascend/kingdom.js +22 -11
  235. package/dist/vascend/memory-packet.d.ts +2 -1
  236. package/dist/vascend/memory-packet.js +31 -44
  237. package/dist/vascend/memory-store.d.ts +1 -0
  238. package/dist/vascend/memory-store.js +12 -4
  239. package/dist/vascend/plan-store.d.ts +3 -1
  240. package/dist/vascend/plan-store.js +6 -4
  241. package/dist/vascend/room-memory.d.ts +13 -2
  242. package/dist/vascend/room-memory.js +48 -6
  243. package/dist/vascend/runtime.d.ts +3 -11
  244. package/dist/vascend/runtime.js +11 -123
  245. package/dist/vascend/session-search.js +2 -0
  246. package/dist/vascend/team-session.js +3 -2
  247. package/dist/vascend/vision.d.ts +3 -1
  248. package/dist/vascend/vision.js +6 -4
  249. package/dist/vascend/worker-session.d.ts +20 -0
  250. package/dist/vascend/worker-session.js +83 -0
  251. package/package.json +2 -2
package/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Lorenzo Daniel Danilov and Vascend Technologies
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
package/README.md CHANGED
@@ -20,6 +20,28 @@ Epoch-based context engineering. Extensible workflows. One engine from terminal
20
20
 
21
21
  ---
22
22
 
23
+ ## Why I built Talos
24
+
25
+ I'm **Lorenzo Daniel Danilov**, and I lead [Vascend Technologies](https://vascend.it), an Italian AI lab.
26
+
27
+ I created Talos because I found existing agent harnesses too restrictive for the way I wanted to work, especially when it came to customization. I wanted to shape the tools, workflows and context management around the task, with control over how the agent operates.
28
+
29
+ After months of research, I introduced a new approach to context engineering in Talos: **epoch-based context engineering**, implemented through **Context Fabric** and **Epoch–Lease–Lens**. My aim is to give developers a harness they can understand, adapt and build on.
30
+
31
+ **Bring your next bug, refactor or investigation to Talos.** [Install it](#quick-start), choose your model and put its context controls to the test on your own project.
32
+
33
+ I'm Italian and **only 22 years old**, but I want to start contributing to AI research now. I'm driven by a passion for understanding, experimenting and turning ideas into tools that people can use. I founded [Vascend Technologies](https://vascend.it) to put that passion into practice: to learn, share what I discover and help Europe develop its own technology through free, open and accessible research.
34
+
35
+ Each project has been a step in my research journey, from mid-2025 to September 2026: **about 15 months of study, experimentation and development**. I apologize in advance for any bugs you may encounter. I have focused primarily on the core functionality, and some details still need work. I hope you will understand that choice and, if you find the project useful, help support it through feedback, bug reports or contributions.
36
+
37
+ Through these projects, I also want to share a personal conviction and an invitation to anyone with an idea they want to bring to life:
38
+
39
+ > **“Have the ambition to create. Those who never try to build their own future end up depending on the one built by others.”**
40
+
41
+ **Contact:** [LinkedIn](https://www.linkedin.com/in/lorenzo-danilov/) · [Instagram @lorenzo.danilov](https://www.instagram.com/lorenzo.danilov/) · [l.danilov@vascend.it](mailto:l.danilov@vascend.it)
42
+
43
+ ---
44
+
23
45
  **Give your coding agent a mission. Keep the controls.** Talos combines an extensible agent runtime with **Context Fabric**: a system that tracks the current objective, gives temporary focus an expiry and lets you inspect how context is assembled.
24
46
 
25
47
  Choose the model. Shape the workflow. Pin what matters. Carry the same engine into your scripts and applications.
@@ -28,6 +50,8 @@ Created by **Lorenzo Daniel Danilov** at **Vascend Technologies**, an Italian AI
28
50
 
29
51
  ## Quick start
30
52
 
53
+ > **Built with ambition. Still evolving.** Talos is not perfect yet and you may encounter bugs. We apologize in advance for any issues and will continue to maintain it with updates, fixes and improvements. Follow the [Talos changelog](https://vascend.it/en/talos/changelog) for release-by-release details, or contact [l.danilov@vascend.it](mailto:l.danilov@vascend.it) to report a problem.
54
+
31
55
  **Put Talos to work on your next real task.** With [Node.js 20 or newer](https://nodejs.org), run:
32
56
 
33
57
  ```bash
@@ -96,6 +120,12 @@ Full configuration and API key examples: [CLI reference](docs/CLI-REFERENCE.it.m
96
120
 
97
121
  </details>
98
122
 
123
+ ## Talos inside Horizon
124
+
125
+ **Prefer a desktop interface? Talos is also available inside [Vascend Horizon](https://vascend.it/en/ide).** Work with the agent from Horizon's interface, or install the standalone CLI to use Talos in your terminal.
126
+
127
+ [Explore Horizon →](https://vascend.it/en/ide)
128
+
99
129
  ## Why Talos
100
130
 
101
131
  **Choose Talos when the way your agent works matters as much as the model it uses.**
@@ -128,6 +158,12 @@ Explore the [work runner](src/vascend/work-runner.ts), [context lifecycle](docs/
128
158
 
129
159
  ## Epoch-based context engineering
130
160
 
161
+ [![Vascend Talos: mission control, context compiler, execution, receipt and compaction](assets/context-engine-infographic.png)](assets/context-engine-infographic.png)
162
+
163
+ [Open the full-resolution infographic](assets/context-engine-infographic.png)
164
+
165
+ A map of the context engine: mission control, scoped sources, context compilation, execution and feedback. Receipt, compaction and context lanes support the turn lifecycle.
166
+
131
167
  An **epoch** is a phase of work organized around a specific objective. Context Fabric tracks that objective across turns and builds the working context needed to pursue it.
132
168
 
133
169
  | Concept | How it works |
@@ -157,16 +193,6 @@ Our **five-scenario, deterministic offline context benchmark**, rerun on Septemb
157
193
 
158
194
  These are internal fixture results against the repository's `cursor-style-proxy`, **not measurements of the Cursor product or a live coding comparison with competing agents**. They measure context selection in this suite, not coding success, latency or your API bill. The value is reproducibility: inspect the [full report](docs/benchmark-results/context-gap-2026-09-11T08-44-47-116Z.md), [raw results](docs/benchmark-results/context-gap-2026-09-11T08-44-47-116Z.json) and [methodology](bench/README.md), or run `bun run bench:context` from a source checkout.
159
195
 
160
- ## Why I built Talos
161
-
162
- I'm **Lorenzo Daniel Danilov**, and I lead [Vascend Technologies](https://vascend.it), an Italian AI lab.
163
-
164
- I created Talos because I found existing agent harnesses too restrictive for the way I wanted to work, especially when it came to customization. I wanted to shape the tools, workflows and context management around the task, with control over how the agent operates.
165
-
166
- After months of research, I introduced a new approach to context engineering in Talos: **epoch-based context engineering**, implemented through **Context Fabric** and **Epoch–Lease–Lens**. My aim is to give developers a harness they can understand, adapt and build on.
167
-
168
- **Bring your next bug, refactor or investigation to Talos.** [Install it](#quick-start), choose your model and put its context controls to the test on your own project.
169
-
170
196
  ## Keep your place in the conversation
171
197
 
172
198
  **Keep writing while the agent asks a question.** Questions wait above the prompt. Open one when you are ready, choose an option or select **Other** to write your own answer. Your main prompt and answer drafts remain separate.
@@ -264,8 +290,7 @@ Report bugs in [Issues](https://github.com/VascendTechnologies/vascend-talos/iss
264
290
 
265
291
  Created by **Lorenzo Daniel Danilov** at [Vascend Technologies](https://vascend.it), an Italian AI lab. Inspired by the extensible agent philosophy of [Pi](https://pi.dev).
266
292
 
267
- **Contact:** [LinkedIn](https://www.linkedin.com/in/lorenzo-danilov/) · [Instagram @LorenzoDanilov](https://www.instagram.com/LorenzoDanilov/) · [l.danilov@vascend.it](mailto:l.danilov@vascend.it)
268
293
 
269
- The package is marked **`UNLICENSED`**. This repository does not grant an open-source license; use and distribution require permission from Vascend Technologies.
294
+ Talos is available under the [MIT license](LICENSE). Copyright (c) 2026 Lorenzo Daniel Danilov and Vascend Technologies. Source repository: [VascendTechnologies/vascend-talos](https://github.com/VascendTechnologies/vascend-talos).
270
295
 
271
296
  <p align="center"><strong>English</strong> · <a href="readme/README.it.md">Italiano</a> · <a href="readme/README.es.md">Español</a> · <a href="readme/README.de.md">Deutsch</a> · <a href="docs/README.md">Documentation</a></p>
@@ -1,4 +1,4 @@
1
- import type { EventSink, Message, Provider, ToolContext, ContentPart, ToolCallPart, SpawnAgentSpec } from "./types.js";
1
+ import type { AgentEvent, EventSink, Message, Provider, ToolContext, ContentPart, ToolCallPart, SpawnAgentSpec } from "./types.js";
2
2
  import type { ToolRegistry } from "../tools/registry.js";
3
3
  import type { Session } from "./session.js";
4
4
  import type { PiConfig } from "./config.js";
@@ -7,13 +7,26 @@ import { type UserInbox } from "./user-inbox.js";
7
7
  import { type ContextFabricResult } from "../vascend/context-fabric.js";
8
8
  import { type FileCoordinationContext } from "./file-coordination.js";
9
9
  import type { ExecutionTarget } from "./execution-target.js";
10
+ import type { StepPolicy } from "./step-policy.js";
10
11
  import { type WorkspaceSession } from "./workspace-sessions.js";
11
12
  export interface AgentDeps {
13
+ readonly fusionHarness?: import("./bootstrap.js").Harness;
14
+ /** Politica per passo (Fusion): guida effimera e tool ammessi nel passo. */
15
+ readonly stepPolicy?: StepPolicy;
16
+ /** Trasporto Jev dell'host per il canale client (sessione Vascend dell'host). */
17
+ readonly jevProxy?: import("../fusion/jev.js").JevProxy;
18
+ /** Full worker events for hosts with per-agent transcripts. */
19
+ readonly onWorkerEvent?: (actor: string, event: AgentEvent) => void;
12
20
  readonly provider: Provider;
13
21
  readonly tools: ToolRegistry;
14
22
  readonly session: Session;
15
23
  readonly config: PiConfig;
16
24
  readonly env?: NodeJS.ProcessEnv;
25
+ /** Correlazione di un follow-up gia' prelevato dall'inbox dall'host. */
26
+ readonly inputMessage?: {
27
+ readonly id: string;
28
+ readonly immediate?: boolean;
29
+ };
17
30
  /** Allowlist filesystem aggiuntiva, isolata al singolo runTurn. */
18
31
  readonly fsRoots?: readonly string[];
19
32
  readonly executionTarget?: ExecutionTarget;
@@ -25,8 +38,8 @@ export interface AgentDeps {
25
38
  * Viene marcata come non attendibile e non entra mai nella sessione.
26
39
  */
27
40
  readonly ephemeralContext?: string;
28
- readonly confirm: (action: string, detail: string) => Promise<boolean>;
29
- readonly ask?: (question: string, options?: readonly string[]) => Promise<string | null>;
41
+ readonly confirm: (action: string, detail: string, signal?: AbortSignal) => Promise<boolean>;
42
+ readonly ask?: (question: string, options?: readonly string[], signal?: AbortSignal) => Promise<string | null>;
30
43
  readonly spawnKingdom?: (castles: readonly SpawnAgentSpec[], opts?: {
31
44
  baseBranch?: string;
32
45
  detach?: boolean;