@vascend/talos 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (620) hide show
  1. package/README.md +202 -0
  2. package/dist/backend/asset-events.d.ts +31 -0
  3. package/dist/backend/asset-events.js +149 -0
  4. package/dist/backend/assets.d.ts +31 -0
  5. package/dist/backend/assets.js +210 -0
  6. package/dist/backend/auth.d.ts +18 -0
  7. package/dist/backend/auth.js +59 -0
  8. package/dist/backend/config.d.ts +14 -0
  9. package/dist/backend/config.js +41 -0
  10. package/dist/backend/conversations.d.ts +21 -0
  11. package/dist/backend/conversations.js +141 -0
  12. package/dist/backend/crypto.d.ts +9 -0
  13. package/dist/backend/crypto.js +68 -0
  14. package/dist/backend/engine.d.ts +13 -0
  15. package/dist/backend/engine.js +78 -0
  16. package/dist/backend/http.d.ts +25 -0
  17. package/dist/backend/http.js +112 -0
  18. package/dist/backend/index.d.ts +1 -0
  19. package/dist/backend/index.js +24 -0
  20. package/dist/backend/routes.d.ts +14 -0
  21. package/dist/backend/routes.js +169 -0
  22. package/dist/backend/sdk.d.ts +12 -0
  23. package/dist/backend/sdk.js +11 -0
  24. package/dist/backend/server.d.ts +12 -0
  25. package/dist/backend/server.js +91 -0
  26. package/dist/backend/temp-image-store.d.ts +46 -0
  27. package/dist/backend/temp-image-store.js +197 -0
  28. package/dist/backend/types.d.ts +103 -0
  29. package/dist/backend/types.js +29 -0
  30. package/dist/backend/users.d.ts +13 -0
  31. package/dist/backend/users.js +76 -0
  32. package/dist/backend/ws-handler.d.ts +14 -0
  33. package/dist/backend/ws-handler.js +72 -0
  34. package/dist/backend/ws.d.ts +19 -0
  35. package/dist/backend/ws.js +146 -0
  36. package/dist/core/agent.d.ts +56 -0
  37. package/dist/core/agent.js +1783 -0
  38. package/dist/core/background.d.ts +45 -0
  39. package/dist/core/background.js +140 -0
  40. package/dist/core/bootstrap.d.ts +45 -0
  41. package/dist/core/bootstrap.js +294 -0
  42. package/dist/core/cli-args.d.ts +41 -0
  43. package/dist/core/cli-args.js +282 -0
  44. package/dist/core/collapsible-output.d.ts +38 -0
  45. package/dist/core/collapsible-output.js +143 -0
  46. package/dist/core/compaction-checkpoint.d.ts +9 -0
  47. package/dist/core/compaction-checkpoint.js +58 -0
  48. package/dist/core/compaction.d.ts +42 -0
  49. package/dist/core/compaction.js +270 -0
  50. package/dist/core/config.d.ts +49 -0
  51. package/dist/core/config.js +417 -0
  52. package/dist/core/context-ledger.d.ts +99 -0
  53. package/dist/core/context-ledger.js +222 -0
  54. package/dist/core/context-policy.d.ts +17 -0
  55. package/dist/core/context-policy.js +81 -0
  56. package/dist/core/continuation-review.d.ts +23 -0
  57. package/dist/core/continuation-review.js +64 -0
  58. package/dist/core/crash-report.d.ts +3 -0
  59. package/dist/core/crash-report.js +27 -0
  60. package/dist/core/credentials.d.ts +11 -0
  61. package/dist/core/credentials.js +183 -0
  62. package/dist/core/doctor.d.ts +24 -0
  63. package/dist/core/doctor.js +125 -0
  64. package/dist/core/effort.d.ts +5 -0
  65. package/dist/core/effort.js +42 -0
  66. package/dist/core/env-paths.d.ts +3 -0
  67. package/dist/core/env-paths.js +38 -0
  68. package/dist/core/execution-guidance.d.ts +9 -0
  69. package/dist/core/execution-guidance.js +73 -0
  70. package/dist/core/execution-target.d.ts +41 -0
  71. package/dist/core/execution-target.js +69 -0
  72. package/dist/core/file-coordination.d.ts +66 -0
  73. package/dist/core/file-coordination.js +176 -0
  74. package/dist/core/file-lease-store.d.ts +14 -0
  75. package/dist/core/file-lease-store.js +89 -0
  76. package/dist/core/image-limits.d.ts +26 -0
  77. package/dist/core/image-limits.js +205 -0
  78. package/dist/core/interruptible-completion.d.ts +3 -0
  79. package/dist/core/interruptible-completion.js +42 -0
  80. package/dist/core/kingdoms-mode-state.d.ts +24 -0
  81. package/dist/core/kingdoms-mode-state.js +139 -0
  82. package/dist/core/licenza.d.ts +38 -0
  83. package/dist/core/licenza.js +125 -0
  84. package/dist/core/model-limits.d.ts +2 -0
  85. package/dist/core/model-limits.js +36 -0
  86. package/dist/core/output-lifecycle.d.ts +44 -0
  87. package/dist/core/output-lifecycle.js +190 -0
  88. package/dist/core/package-update.d.ts +15 -0
  89. package/dist/core/package-update.js +121 -0
  90. package/dist/core/permission-queue.d.ts +2 -0
  91. package/dist/core/permission-queue.js +20 -0
  92. package/dist/core/prompt-attachment.d.ts +21 -0
  93. package/dist/core/prompt-attachment.js +123 -0
  94. package/dist/core/request-plan.d.ts +16 -0
  95. package/dist/core/request-plan.js +36 -0
  96. package/dist/core/run-timing.d.ts +17 -0
  97. package/dist/core/run-timing.js +123 -0
  98. package/dist/core/self-update.d.ts +17 -0
  99. package/dist/core/self-update.js +54 -0
  100. package/dist/core/session-refs.d.ts +27 -0
  101. package/dist/core/session-refs.js +126 -0
  102. package/dist/core/session-storage.d.ts +4 -0
  103. package/dist/core/session-storage.js +48 -0
  104. package/dist/core/session-title.d.ts +1 -0
  105. package/dist/core/session-title.js +21 -0
  106. package/dist/core/session-usage.d.ts +17 -0
  107. package/dist/core/session-usage.js +74 -0
  108. package/dist/core/session.d.ts +58 -0
  109. package/dist/core/session.js +296 -0
  110. package/dist/core/settings.d.ts +17 -0
  111. package/dist/core/settings.js +107 -0
  112. package/dist/core/storage-retention.d.ts +21 -0
  113. package/dist/core/storage-retention.js +227 -0
  114. package/dist/core/text-sanitize.d.ts +1 -0
  115. package/dist/core/text-sanitize.js +35 -0
  116. package/dist/core/tool-artifacts.d.ts +6 -0
  117. package/dist/core/tool-artifacts.js +51 -0
  118. package/dist/core/tool-compress.d.ts +8 -0
  119. package/dist/core/tool-compress.js +111 -0
  120. package/dist/core/tool-executor.d.ts +16 -0
  121. package/dist/core/tool-executor.js +97 -0
  122. package/dist/core/tool-result-index.d.ts +52 -0
  123. package/dist/core/tool-result-index.js +327 -0
  124. package/dist/core/tool-result-store.d.ts +38 -0
  125. package/dist/core/tool-result-store.js +190 -0
  126. package/dist/core/tool-scheduler.d.ts +16 -0
  127. package/dist/core/tool-scheduler.js +35 -0
  128. package/dist/core/trust.d.ts +21 -0
  129. package/dist/core/trust.js +95 -0
  130. package/dist/core/types.d.ts +402 -0
  131. package/dist/core/types.js +1 -0
  132. package/dist/core/update-check.d.ts +26 -0
  133. package/dist/core/update-check.js +89 -0
  134. package/dist/core/update-process.d.ts +10 -0
  135. package/dist/core/update-process.js +31 -0
  136. package/dist/core/user-inbox.d.ts +23 -0
  137. package/dist/core/user-inbox.js +56 -0
  138. package/dist/core/user-input.d.ts +10 -0
  139. package/dist/core/user-input.js +35 -0
  140. package/dist/core/version.d.ts +1 -0
  141. package/dist/core/version.js +10 -0
  142. package/dist/core/vibe-modes.d.ts +38 -0
  143. package/dist/core/vibe-modes.js +383 -0
  144. package/dist/core/workspace-roots.d.ts +13 -0
  145. package/dist/core/workspace-roots.js +91 -0
  146. package/dist/core/workspace-sessions.d.ts +51 -0
  147. package/dist/core/workspace-sessions.js +243 -0
  148. package/dist/cowork/client.d.ts +29 -0
  149. package/dist/cowork/client.js +49 -0
  150. package/dist/cowork/engine-bridge.d.ts +22 -0
  151. package/dist/cowork/engine-bridge.js +98 -0
  152. package/dist/cowork/index.d.ts +11 -0
  153. package/dist/cowork/index.js +16 -0
  154. package/dist/cowork/ipc.d.ts +97 -0
  155. package/dist/cowork/ipc.js +96 -0
  156. package/dist/cowork/manager.d.ts +66 -0
  157. package/dist/cowork/manager.js +325 -0
  158. package/dist/cowork/store.d.ts +23 -0
  159. package/dist/cowork/store.js +182 -0
  160. package/dist/cowork/sync.d.ts +20 -0
  161. package/dist/cowork/sync.js +164 -0
  162. package/dist/cowork/types.d.ts +78 -0
  163. package/dist/cowork/types.js +21 -0
  164. package/dist/extensions/ext-tools.d.ts +3 -0
  165. package/dist/extensions/ext-tools.js +73 -0
  166. package/dist/extensions/loader.d.ts +91 -0
  167. package/dist/extensions/loader.js +474 -0
  168. package/dist/extensions/settings.d.ts +20 -0
  169. package/dist/extensions/settings.js +86 -0
  170. package/dist/extensions/types.d.ts +219 -0
  171. package/dist/extensions/types.js +1 -0
  172. package/dist/horizon/async-queue.d.ts +9 -0
  173. package/dist/horizon/async-queue.js +46 -0
  174. package/dist/horizon/engine.d.ts +85 -0
  175. package/dist/horizon/engine.js +603 -0
  176. package/dist/horizon/index.d.ts +4 -0
  177. package/dist/horizon/index.js +2 -0
  178. package/dist/horizon/main-team.d.ts +163 -0
  179. package/dist/horizon/main-team.js +774 -0
  180. package/dist/horizon/types.d.ts +233 -0
  181. package/dist/horizon/types.js +1 -0
  182. package/dist/index.d.ts +2 -0
  183. package/dist/index.js +233 -0
  184. package/dist/mcp/protocol.d.ts +81 -0
  185. package/dist/mcp/protocol.js +122 -0
  186. package/dist/package.json +1 -0
  187. package/dist/packages/packages.d.ts +12 -0
  188. package/dist/packages/packages.js +323 -0
  189. package/dist/prompts/templates.d.ts +13 -0
  190. package/dist/prompts/templates.js +139 -0
  191. package/dist/providers/anthropic-oauth.d.ts +13 -0
  192. package/dist/providers/anthropic-oauth.js +124 -0
  193. package/dist/providers/anthropic.d.ts +27 -0
  194. package/dist/providers/anthropic.js +526 -0
  195. package/dist/providers/catalog.d.ts +15 -0
  196. package/dist/providers/catalog.js +166 -0
  197. package/dist/providers/effort.d.ts +12 -0
  198. package/dist/providers/effort.js +102 -0
  199. package/dist/providers/model-catalog.d.ts +43 -0
  200. package/dist/providers/model-catalog.js +70 -0
  201. package/dist/providers/model-effort.d.ts +5 -0
  202. package/dist/providers/model-effort.js +43 -0
  203. package/dist/providers/model-registry.d.ts +39 -0
  204. package/dist/providers/model-registry.js +142 -0
  205. package/dist/providers/models-dev.d.ts +9 -0
  206. package/dist/providers/models-dev.js +97 -0
  207. package/dist/providers/oauth-callback-server.d.ts +28 -0
  208. package/dist/providers/oauth-callback-server.js +184 -0
  209. package/dist/providers/oauth-orchestrator.d.ts +58 -0
  210. package/dist/providers/oauth-orchestrator.js +159 -0
  211. package/dist/providers/oauth-store.d.ts +12 -0
  212. package/dist/providers/oauth-store.js +139 -0
  213. package/dist/providers/open-browser.d.ts +20 -0
  214. package/dist/providers/open-browser.js +92 -0
  215. package/dist/providers/openai-compat.d.ts +14 -0
  216. package/dist/providers/openai-compat.js +523 -0
  217. package/dist/providers/openai-oauth.d.ts +15 -0
  218. package/dist/providers/openai-oauth.js +382 -0
  219. package/dist/providers/openrouter-auth.d.ts +73 -0
  220. package/dist/providers/openrouter-auth.js +321 -0
  221. package/dist/providers/openrouter-manual-fallback.d.ts +25 -0
  222. package/dist/providers/openrouter-manual-fallback.js +161 -0
  223. package/dist/providers/openrouter.d.ts +15 -0
  224. package/dist/providers/openrouter.js +107 -0
  225. package/dist/providers/plan-limits.d.ts +6 -0
  226. package/dist/providers/plan-limits.js +175 -0
  227. package/dist/providers/provider-reset.d.ts +4 -0
  228. package/dist/providers/provider-reset.js +83 -0
  229. package/dist/providers/quota-limits.d.ts +4 -0
  230. package/dist/providers/quota-limits.js +33 -0
  231. package/dist/providers/registry.d.ts +33 -0
  232. package/dist/providers/registry.js +213 -0
  233. package/dist/providers/retry.d.ts +37 -0
  234. package/dist/providers/retry.js +347 -0
  235. package/dist/rpc/server.d.ts +23 -0
  236. package/dist/rpc/server.js +222 -0
  237. package/dist/sdk.d.ts +67 -0
  238. package/dist/sdk.js +64 -0
  239. package/dist/skills/skills.d.ts +17 -0
  240. package/dist/skills/skills.js +155 -0
  241. package/dist/text-sanitize.js +28 -0
  242. package/dist/tools/ask-user.d.ts +2 -0
  243. package/dist/tools/ask-user.js +60 -0
  244. package/dist/tools/builtin.d.ts +48 -0
  245. package/dist/tools/builtin.js +2494 -0
  246. package/dist/tools/capabilities.d.ts +5 -0
  247. package/dist/tools/capabilities.js +55 -0
  248. package/dist/tools/computer-capture.d.ts +2 -0
  249. package/dist/tools/computer-capture.js +91 -0
  250. package/dist/tools/computer-posix.d.ts +5 -0
  251. package/dist/tools/computer-posix.js +136 -0
  252. package/dist/tools/computer-use.d.ts +14 -0
  253. package/dist/tools/computer-use.js +108 -0
  254. package/dist/tools/discovery.d.ts +12 -0
  255. package/dist/tools/discovery.js +205 -0
  256. package/dist/tools/execute.d.ts +2 -0
  257. package/dist/tools/execute.js +73 -0
  258. package/dist/tools/normalize-input.d.ts +17 -0
  259. package/dist/tools/normalize-input.js +174 -0
  260. package/dist/tools/output-artifact.d.ts +3 -0
  261. package/dist/tools/output-artifact.js +80 -0
  262. package/dist/tools/pagination.d.ts +15 -0
  263. package/dist/tools/pagination.js +93 -0
  264. package/dist/tools/plan-status.d.ts +2 -0
  265. package/dist/tools/plan-status.js +109 -0
  266. package/dist/tools/program-input.d.ts +3 -0
  267. package/dist/tools/program-input.js +19 -0
  268. package/dist/tools/program.d.ts +3 -0
  269. package/dist/tools/program.js +567 -0
  270. package/dist/tools/protocol-catalog.d.ts +12 -0
  271. package/dist/tools/protocol-catalog.js +46 -0
  272. package/dist/tools/ramification-tools.d.ts +12 -0
  273. package/dist/tools/ramification-tools.js +528 -0
  274. package/dist/tools/regex-compat.d.ts +9 -0
  275. package/dist/tools/regex-compat.js +96 -0
  276. package/dist/tools/registry.d.ts +51 -0
  277. package/dist/tools/registry.js +185 -0
  278. package/dist/tools/resolve.d.ts +2 -0
  279. package/dist/tools/resolve.js +107 -0
  280. package/dist/tools/shell-env.d.ts +2 -0
  281. package/dist/tools/shell-env.js +7 -0
  282. package/dist/tools/team-input.d.ts +3 -0
  283. package/dist/tools/team-input.js +129 -0
  284. package/dist/tools/team-tools.d.ts +7 -0
  285. package/dist/tools/team-tools.js +348 -0
  286. package/dist/tools/workspace-sessions.d.ts +2 -0
  287. package/dist/tools/workspace-sessions.js +35 -0
  288. package/dist/tui/account-entry.d.ts +1 -0
  289. package/dist/tui/account-entry.js +93 -0
  290. package/dist/tui/attachment-highlight.d.ts +1 -0
  291. package/dist/tui/attachment-highlight.js +24 -0
  292. package/dist/tui/attachment-refs.d.ts +2 -0
  293. package/dist/tui/attachment-refs.js +3 -0
  294. package/dist/tui/bottom-input.d.ts +219 -0
  295. package/dist/tui/bottom-input.js +1958 -0
  296. package/dist/tui/branding.d.ts +107 -0
  297. package/dist/tui/branding.js +750 -0
  298. package/dist/tui/clipboard-image.d.ts +10 -0
  299. package/dist/tui/clipboard-image.js +163 -0
  300. package/dist/tui/clipboard-text.d.ts +9 -0
  301. package/dist/tui/clipboard-text.js +51 -0
  302. package/dist/tui/clipboard-windows.d.ts +8 -0
  303. package/dist/tui/clipboard-windows.js +84 -0
  304. package/dist/tui/collapsible-command.d.ts +15 -0
  305. package/dist/tui/collapsible-command.js +48 -0
  306. package/dist/tui/command-feedback.d.ts +10 -0
  307. package/dist/tui/command-feedback.js +46 -0
  308. package/dist/tui/command-output-registry.d.ts +28 -0
  309. package/dist/tui/command-output-registry.js +103 -0
  310. package/dist/tui/command-transcript.d.ts +12 -0
  311. package/dist/tui/command-transcript.js +90 -0
  312. package/dist/tui/commands.d.ts +20 -0
  313. package/dist/tui/commands.js +131 -0
  314. package/dist/tui/context-bar.d.ts +4 -0
  315. package/dist/tui/context-bar.js +74 -0
  316. package/dist/tui/context-meter.d.ts +25 -0
  317. package/dist/tui/context-meter.js +81 -0
  318. package/dist/tui/cost-binding.d.ts +8 -0
  319. package/dist/tui/cost-binding.js +43 -0
  320. package/dist/tui/cost-tracker.d.ts +49 -0
  321. package/dist/tui/cost-tracker.js +122 -0
  322. package/dist/tui/diff.d.ts +9 -0
  323. package/dist/tui/diff.js +119 -0
  324. package/dist/tui/i18n-catalog.d.ts +5 -0
  325. package/dist/tui/i18n-catalog.js +184 -0
  326. package/dist/tui/i18n.d.ts +6 -0
  327. package/dist/tui/i18n.js +10 -0
  328. package/dist/tui/image-attachments.d.ts +46 -0
  329. package/dist/tui/image-attachments.js +167 -0
  330. package/dist/tui/images.d.ts +12 -0
  331. package/dist/tui/images.js +87 -0
  332. package/dist/tui/intro.d.ts +13 -0
  333. package/dist/tui/intro.js +109 -0
  334. package/dist/tui/language-preference.d.ts +6 -0
  335. package/dist/tui/language-preference.js +24 -0
  336. package/dist/tui/live-output.d.ts +2 -0
  337. package/dist/tui/live-output.js +18 -0
  338. package/dist/tui/locales.d.ts +19 -0
  339. package/dist/tui/locales.js +22 -0
  340. package/dist/tui/login-menu.d.ts +17 -0
  341. package/dist/tui/login-menu.js +58 -0
  342. package/dist/tui/logo.d.ts +8 -0
  343. package/dist/tui/logo.js +305 -0
  344. package/dist/tui/markdown-inline.d.ts +3 -0
  345. package/dist/tui/markdown-inline.js +99 -0
  346. package/dist/tui/markdown-table.d.ts +4 -0
  347. package/dist/tui/markdown-table.js +63 -0
  348. package/dist/tui/markdown.d.ts +11 -0
  349. package/dist/tui/markdown.js +257 -0
  350. package/dist/tui/mcp-transcript.d.ts +7 -0
  351. package/dist/tui/mcp-transcript.js +40 -0
  352. package/dist/tui/model-details.d.ts +2 -0
  353. package/dist/tui/model-details.js +21 -0
  354. package/dist/tui/model-selection.d.ts +7 -0
  355. package/dist/tui/model-selection.js +41 -0
  356. package/dist/tui/native-scrollback.d.ts +27 -0
  357. package/dist/tui/native-scrollback.js +134 -0
  358. package/dist/tui/onboarding.d.ts +72 -0
  359. package/dist/tui/onboarding.js +207 -0
  360. package/dist/tui/paste-collapse.d.ts +39 -0
  361. package/dist/tui/paste-collapse.js +117 -0
  362. package/dist/tui/perm-mode.d.ts +8 -0
  363. package/dist/tui/perm-mode.js +41 -0
  364. package/dist/tui/prompt-queue-store.d.ts +26 -0
  365. package/dist/tui/prompt-queue-store.js +87 -0
  366. package/dist/tui/prompt-queue.d.ts +47 -0
  367. package/dist/tui/prompt-queue.js +187 -0
  368. package/dist/tui/provider-menu.d.ts +33 -0
  369. package/dist/tui/provider-menu.js +175 -0
  370. package/dist/tui/question.d.ts +24 -0
  371. package/dist/tui/question.js +32 -0
  372. package/dist/tui/queue-screen.d.ts +25 -0
  373. package/dist/tui/queue-screen.js +152 -0
  374. package/dist/tui/queue-team.d.ts +3 -0
  375. package/dist/tui/queue-team.js +28 -0
  376. package/dist/tui/queued-questions.d.ts +20 -0
  377. package/dist/tui/queued-questions.js +163 -0
  378. package/dist/tui/quick-help.d.ts +1 -0
  379. package/dist/tui/quick-help.js +53 -0
  380. package/dist/tui/repl.d.ts +78 -0
  381. package/dist/tui/repl.js +4130 -0
  382. package/dist/tui/restore-queued-input.d.ts +3 -0
  383. package/dist/tui/restore-queued-input.js +20 -0
  384. package/dist/tui/review-detail.d.ts +6 -0
  385. package/dist/tui/review-detail.js +56 -0
  386. package/dist/tui/review-files.d.ts +3 -0
  387. package/dist/tui/review-files.js +22 -0
  388. package/dist/tui/review-render.d.ts +22 -0
  389. package/dist/tui/review-render.js +98 -0
  390. package/dist/tui/review-screen.d.ts +38 -0
  391. package/dist/tui/review-screen.js +358 -0
  392. package/dist/tui/review-store.d.ts +60 -0
  393. package/dist/tui/review-store.js +270 -0
  394. package/dist/tui/review-team.d.ts +2 -0
  395. package/dist/tui/review-team.js +27 -0
  396. package/dist/tui/selector-mouse.d.ts +26 -0
  397. package/dist/tui/selector-mouse.js +65 -0
  398. package/dist/tui/selector.d.ts +51 -0
  399. package/dist/tui/selector.js +299 -0
  400. package/dist/tui/session-replay.d.ts +10 -0
  401. package/dist/tui/session-replay.js +78 -0
  402. package/dist/tui/session-usage.d.ts +22 -0
  403. package/dist/tui/session-usage.js +55 -0
  404. package/dist/tui/skill-transcript.d.ts +5 -0
  405. package/dist/tui/skill-transcript.js +31 -0
  406. package/dist/tui/startup.d.ts +5 -0
  407. package/dist/tui/startup.js +61 -0
  408. package/dist/tui/status-line-loader.d.ts +8 -0
  409. package/dist/tui/status-line-loader.js +33 -0
  410. package/dist/tui/status-line.d.ts +38 -0
  411. package/dist/tui/status-line.js +213 -0
  412. package/dist/tui/system-language.d.ts +8 -0
  413. package/dist/tui/system-language.js +41 -0
  414. package/dist/tui/task-labels.d.ts +2 -0
  415. package/dist/tui/task-labels.js +7 -0
  416. package/dist/tui/term-bg.d.ts +4 -0
  417. package/dist/tui/term-bg.js +67 -0
  418. package/dist/tui/terminal-screen.d.ts +12 -0
  419. package/dist/tui/terminal-screen.js +1 -0
  420. package/dist/tui/terminal-text.d.ts +7 -0
  421. package/dist/tui/terminal-text.js +123 -0
  422. package/dist/tui/theme.d.ts +25 -0
  423. package/dist/tui/theme.js +383 -0
  424. package/dist/tui/tool-style.d.ts +7 -0
  425. package/dist/tui/tool-style.js +119 -0
  426. package/dist/tui/update-prompt.d.ts +14 -0
  427. package/dist/tui/update-prompt.js +104 -0
  428. package/dist/tui/usage-footer.d.ts +9 -0
  429. package/dist/tui/usage-footer.js +123 -0
  430. package/dist/tui/vascend-login.d.ts +68 -0
  431. package/dist/tui/vascend-login.js +355 -0
  432. package/dist/tui/web-login.d.ts +28 -0
  433. package/dist/tui/web-login.js +115 -0
  434. package/dist/vascend/activity-status.d.ts +12 -0
  435. package/dist/vascend/activity-status.js +68 -0
  436. package/dist/vascend/architecture-map.d.ts +73 -0
  437. package/dist/vascend/architecture-map.js +424 -0
  438. package/dist/vascend/attention-layout.d.ts +19 -0
  439. package/dist/vascend/attention-layout.js +141 -0
  440. package/dist/vascend/budget-allocator.d.ts +31 -0
  441. package/dist/vascend/budget-allocator.js +79 -0
  442. package/dist/vascend/candidate-collector.d.ts +20 -0
  443. package/dist/vascend/candidate-collector.js +220 -0
  444. package/dist/vascend/code-events.d.ts +24 -0
  445. package/dist/vascend/code-events.js +304 -0
  446. package/dist/vascend/code-graph-memory.d.ts +38 -0
  447. package/dist/vascend/code-graph-memory.js +334 -0
  448. package/dist/vascend/code-graph-runtime.d.ts +19 -0
  449. package/dist/vascend/code-graph-runtime.js +190 -0
  450. package/dist/vascend/code-graph-types.d.ts +58 -0
  451. package/dist/vascend/code-graph-types.js +50 -0
  452. package/dist/vascend/code-parser.d.ts +4 -0
  453. package/dist/vascend/code-parser.js +257 -0
  454. package/dist/vascend/competitor-knowledge.d.ts +53 -0
  455. package/dist/vascend/competitor-knowledge.js +262 -0
  456. package/dist/vascend/completeness.d.ts +16 -0
  457. package/dist/vascend/completeness.js +90 -0
  458. package/dist/vascend/context-autotuner.d.ts +45 -0
  459. package/dist/vascend/context-autotuner.js +231 -0
  460. package/dist/vascend/context-candidate.d.ts +45 -0
  461. package/dist/vascend/context-candidate.js +150 -0
  462. package/dist/vascend/context-capsule.d.ts +51 -0
  463. package/dist/vascend/context-capsule.js +133 -0
  464. package/dist/vascend/context-fabric.d.ts +108 -0
  465. package/dist/vascend/context-fabric.js +480 -0
  466. package/dist/vascend/context-feedback-loop.d.ts +56 -0
  467. package/dist/vascend/context-feedback-loop.js +204 -0
  468. package/dist/vascend/context-learning-identity.d.ts +4 -0
  469. package/dist/vascend/context-learning-identity.js +8 -0
  470. package/dist/vascend/context-links.d.ts +14 -0
  471. package/dist/vascend/context-links.js +83 -0
  472. package/dist/vascend/context-lint.d.ts +22 -0
  473. package/dist/vascend/context-lint.js +91 -0
  474. package/dist/vascend/context-market-selection.d.ts +17 -0
  475. package/dist/vascend/context-market-selection.js +50 -0
  476. package/dist/vascend/context-metrics.d.ts +25 -0
  477. package/dist/vascend/context-metrics.js +57 -0
  478. package/dist/vascend/context-pack-render.d.ts +16 -0
  479. package/dist/vascend/context-pack-render.js +52 -0
  480. package/dist/vascend/context-pareto.d.ts +33 -0
  481. package/dist/vascend/context-pareto.js +165 -0
  482. package/dist/vascend/context-pattern-explorer.d.ts +41 -0
  483. package/dist/vascend/context-pattern-explorer.js +276 -0
  484. package/dist/vascend/context-regret.d.ts +32 -0
  485. package/dist/vascend/context-regret.js +93 -0
  486. package/dist/vascend/context-retriever.d.ts +22 -0
  487. package/dist/vascend/context-retriever.js +243 -0
  488. package/dist/vascend/context-scope-index.d.ts +5 -0
  489. package/dist/vascend/context-scope-index.js +96 -0
  490. package/dist/vascend/context-scorer.d.ts +35 -0
  491. package/dist/vascend/context-scorer.js +162 -0
  492. package/dist/vascend/context-search-index.d.ts +12 -0
  493. package/dist/vascend/context-search-index.js +25 -0
  494. package/dist/vascend/context-snapshot.d.ts +22 -0
  495. package/dist/vascend/context-snapshot.js +135 -0
  496. package/dist/vascend/context-window-compiler.d.ts +42 -0
  497. package/dist/vascend/context-window-compiler.js +237 -0
  498. package/dist/vascend/contract-memory.d.ts +61 -0
  499. package/dist/vascend/contract-memory.js +435 -0
  500. package/dist/vascend/council.d.ts +58 -0
  501. package/dist/vascend/council.js +337 -0
  502. package/dist/vascend/decision-promotion.d.ts +48 -0
  503. package/dist/vascend/decision-promotion.js +410 -0
  504. package/dist/vascend/delta-context.d.ts +12 -0
  505. package/dist/vascend/delta-context.js +36 -0
  506. package/dist/vascend/dev-context-compiler.d.ts +27 -0
  507. package/dist/vascend/dev-context-compiler.js +133 -0
  508. package/dist/vascend/dev-context-layout.d.ts +30 -0
  509. package/dist/vascend/dev-context-layout.js +262 -0
  510. package/dist/vascend/evidence-slots.d.ts +14 -0
  511. package/dist/vascend/evidence-slots.js +55 -0
  512. package/dist/vascend/expansion-levels.d.ts +15 -0
  513. package/dist/vascend/expansion-levels.js +178 -0
  514. package/dist/vascend/file-lock.d.ts +7 -0
  515. package/dist/vascend/file-lock.js +95 -0
  516. package/dist/vascend/granular-kingdom.d.ts +25 -0
  517. package/dist/vascend/granular-kingdom.js +259 -0
  518. package/dist/vascend/granular-launcher.d.ts +48 -0
  519. package/dist/vascend/granular-launcher.js +202 -0
  520. package/dist/vascend/kingdom-bus.d.ts +25 -0
  521. package/dist/vascend/kingdom-bus.js +54 -0
  522. package/dist/vascend/kingdom-channel.d.ts +22 -0
  523. package/dist/vascend/kingdom-channel.js +180 -0
  524. package/dist/vascend/kingdom-kpi.d.ts +48 -0
  525. package/dist/vascend/kingdom-kpi.js +172 -0
  526. package/dist/vascend/kingdom-live.d.ts +28 -0
  527. package/dist/vascend/kingdom-live.js +61 -0
  528. package/dist/vascend/kingdom-run.d.ts +18 -0
  529. package/dist/vascend/kingdom-run.js +506 -0
  530. package/dist/vascend/kingdom-scribe.d.ts +20 -0
  531. package/dist/vascend/kingdom-scribe.js +52 -0
  532. package/dist/vascend/kingdom.d.ts +79 -0
  533. package/dist/vascend/kingdom.js +870 -0
  534. package/dist/vascend/lexical-index.d.ts +10 -0
  535. package/dist/vascend/lexical-index.js +99 -0
  536. package/dist/vascend/lexical-search.d.ts +29 -0
  537. package/dist/vascend/lexical-search.js +262 -0
  538. package/dist/vascend/long-term-context.d.ts +51 -0
  539. package/dist/vascend/long-term-context.js +194 -0
  540. package/dist/vascend/mandate.d.ts +33 -0
  541. package/dist/vascend/mandate.js +107 -0
  542. package/dist/vascend/memory-packet.d.ts +13 -0
  543. package/dist/vascend/memory-packet.js +155 -0
  544. package/dist/vascend/memory-status.d.ts +22 -0
  545. package/dist/vascend/memory-status.js +73 -0
  546. package/dist/vascend/memory-store.d.ts +62 -0
  547. package/dist/vascend/memory-store.js +273 -0
  548. package/dist/vascend/objective-revision.d.ts +69 -0
  549. package/dist/vascend/objective-revision.js +319 -0
  550. package/dist/vascend/patch-plan-store.d.ts +33 -0
  551. package/dist/vascend/patch-plan-store.js +240 -0
  552. package/dist/vascend/patch-plan.d.ts +97 -0
  553. package/dist/vascend/patch-plan.js +345 -0
  554. package/dist/vascend/plan-progress.d.ts +11 -0
  555. package/dist/vascend/plan-progress.js +68 -0
  556. package/dist/vascend/plan-store.d.ts +64 -0
  557. package/dist/vascend/plan-store.js +460 -0
  558. package/dist/vascend/proof-chains.d.ts +19 -0
  559. package/dist/vascend/proof-chains.js +120 -0
  560. package/dist/vascend/ramification-store.d.ts +25 -0
  561. package/dist/vascend/ramification-store.js +94 -0
  562. package/dist/vascend/ramification.d.ts +193 -0
  563. package/dist/vascend/ramification.js +583 -0
  564. package/dist/vascend/recall-planner.d.ts +17 -0
  565. package/dist/vascend/recall-planner.js +109 -0
  566. package/dist/vascend/requirements.d.ts +31 -0
  567. package/dist/vascend/requirements.js +151 -0
  568. package/dist/vascend/reviewer.d.ts +9 -0
  569. package/dist/vascend/reviewer.js +93 -0
  570. package/dist/vascend/room-graph.d.ts +29 -0
  571. package/dist/vascend/room-graph.js +242 -0
  572. package/dist/vascend/room-memory.d.ts +57 -0
  573. package/dist/vascend/room-memory.js +631 -0
  574. package/dist/vascend/runtime.d.ts +84 -0
  575. package/dist/vascend/runtime.js +286 -0
  576. package/dist/vascend/self-improve.d.ts +104 -0
  577. package/dist/vascend/self-improve.js +396 -0
  578. package/dist/vascend/session-search.d.ts +52 -0
  579. package/dist/vascend/session-search.js +349 -0
  580. package/dist/vascend/supersession-graph.d.ts +14 -0
  581. package/dist/vascend/supersession-graph.js +70 -0
  582. package/dist/vascend/team-areas.d.ts +9 -0
  583. package/dist/vascend/team-areas.js +28 -0
  584. package/dist/vascend/team-handoff.d.ts +24 -0
  585. package/dist/vascend/team-handoff.js +37 -0
  586. package/dist/vascend/team-scheduler.d.ts +13 -0
  587. package/dist/vascend/team-scheduler.js +74 -0
  588. package/dist/vascend/team-session.d.ts +42 -0
  589. package/dist/vascend/team-session.js +142 -0
  590. package/dist/vascend/test-failure-memory.d.ts +76 -0
  591. package/dist/vascend/test-failure-memory.js +354 -0
  592. package/dist/vascend/token-market.d.ts +42 -0
  593. package/dist/vascend/token-market.js +144 -0
  594. package/dist/vascend/tuner-baseline-store.d.ts +52 -0
  595. package/dist/vascend/tuner-baseline-store.js +446 -0
  596. package/dist/vascend/user-profile.d.ts +44 -0
  597. package/dist/vascend/user-profile.js +131 -0
  598. package/dist/vascend/vision.d.ts +94 -0
  599. package/dist/vascend/vision.js +375 -0
  600. package/dist/vascend/work-agent.d.ts +12 -0
  601. package/dist/vascend/work-agent.js +83 -0
  602. package/dist/vascend/work-queue.d.ts +62 -0
  603. package/dist/vascend/work-queue.js +255 -0
  604. package/dist/vascend/work-runner.d.ts +64 -0
  605. package/dist/vascend/work-runner.js +137 -0
  606. package/dist/vascend/worktree.d.ts +38 -0
  607. package/dist/vascend/worktree.js +206 -0
  608. package/dist/vendor/computer-use/README.md +7 -0
  609. package/dist/vendor/computer-use/computer-desktop.js +211 -0
  610. package/dist/vendor/computer-use/computer-observe.js +315 -0
  611. package/dist/vendor/computer-use/computer-scripts.js +1230 -0
  612. package/dist/vendor/computer-use/computer-tools.js +2136 -0
  613. package/dist/vendor/computer-use/package.json +1 -0
  614. package/dist/vendor/computer-use/rac/atomic-input.js +91 -0
  615. package/dist/vendor/computer-use/rac/grammatica.js +101 -0
  616. package/dist/vendor/computer-use/rac/parser.js +185 -0
  617. package/dist/vendor/computer-use/rac/protocol.js +136 -0
  618. package/install.ps1 +30 -0
  619. package/install.sh +50 -0
  620. package/package.json +56 -0
@@ -0,0 +1,337 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Valutatori (read-only) — uno per asse, prompt in notazione Danilov
3
+ // ---------------------------------------------------------------------------
4
+ // Coda comune dei prompt: ogni valutatore risponde SOLO JSON con lo stesso schema.
5
+ const VERDICT_SCHEMA = `OUTPUT: SOLO JSON {"score": 0-100, "approve": bool, "rationale": "1-2 frasi", "gaps": [stringhe brevi]}. ` +
6
+ `Niente prosa fuori dal JSON, niente markdown.`;
7
+ const EVAL_COMPLETENESS = {
8
+ id: "completeness",
9
+ axis: "completeness",
10
+ title: "Valutatore completezza",
11
+ weight: 1,
12
+ system: `# Valutatore del concilio — asse COMPLETEZZA
13
+ INDICE
14
+ 1 = goal
15
+ 2 = consegna
16
+ 3 = lacuna
17
+
18
+ DEFINIZIONI
19
+ @goal[reale]: l'obiettivo VERO dell'utente, non il piano svolto
20
+ @consegna[criterio]: completa = tutti i pezzi essenziali presenti e funzionanti (dati, flussi, UI, integrazioni richieste)
21
+ @lacuna[regola]: elenca SOLO pezzi ESSENZIALI assenti; niente nice-to-have
22
+ @score[scala]: 100=tutto consegnato, 0=nulla di sostanziale; misura la copertura del goal
23
+
24
+ RELAZIONI
25
+ @R1: @goal[reale] -> @consegna[criterio] [ misura la consegna sul goal vero ]
26
+ @R2: @consegna[criterio] -> @lacuna[regola] [ approve=false se manca l'essenziale ]
27
+
28
+ ${VERDICT_SCHEMA}`,
29
+ };
30
+ const EVAL_CORRECTNESS = {
31
+ id: "correctness",
32
+ axis: "correctness",
33
+ title: "Valutatore correttezza",
34
+ weight: 1,
35
+ system: `# Valutatore del concilio — asse CORRETTEZZA
36
+ INDICE
37
+ 1 = comportamento
38
+ 2 = errori
39
+ 3 = rischio
40
+
41
+ DEFINIZIONI
42
+ @comportamento[atteso]: l'operato fa cio' che il goal richiede senza rotture evidenti
43
+ @errori[segnali]: bug logici, regressioni, casi limite ignorati, contratti violati
44
+ @rischio[regola]: approve=false se ci sono difetti che rompono il flusso principale
45
+ @score[scala]: 100=corretto e robusto, 0=non funziona; penalizza i bug sul percorso critico
46
+
47
+ RELAZIONI
48
+ @R1: @comportamento[atteso] -> @errori[segnali] [ cerca difetti sul percorso critico ]
49
+ @R2: @errori[segnali] -> @rischio[regola] [ i difetti gravi abbassano score e approve ]
50
+
51
+ ${VERDICT_SCHEMA}`,
52
+ };
53
+ const EVAL_QUALITY = {
54
+ id: "quality",
55
+ axis: "quality",
56
+ title: "Valutatore qualita' e test",
57
+ weight: 1,
58
+ system: `# Valutatore del concilio — asse QUALITA'/TEST
59
+ INDICE
60
+ 1 = qualita
61
+ 2 = test
62
+ 3 = manutenibilita
63
+
64
+ DEFINIZIONI
65
+ @qualita[criterio]: codice coeso, convenzioni del progetto rispettate, niente duplicazione inutile
66
+ @test[criterio]: i percorsi importanti hanno verifica (test o prova esplicita); assente = lacuna
67
+ @manutenibilita[regola]: approve=false solo se la qualita' compromette l'uso o la tenuta del lavoro
68
+ @score[scala]: 100=pulito e verificato, 0=fragile e non testato; non essere perfezionista
69
+
70
+ RELAZIONI
71
+ @R1: @qualita[criterio] -> @test[criterio] [ qualita' include la verifica ]
72
+ @R2: @test[criterio] -> @manutenibilita[regola] [ pesa l'impatto reale, non l'estetica ]
73
+
74
+ ${VERDICT_SCHEMA}`,
75
+ };
76
+ const EVAL_REQUIREMENTS = {
77
+ id: "requirements",
78
+ axis: "requirements",
79
+ title: "Valutatore allineamento requisiti",
80
+ weight: 1,
81
+ system: `# Valutatore del concilio — asse REQUISITI
82
+ INDICE
83
+ 1 = requisiti
84
+ 2 = copertura
85
+ 3 = deriva
86
+
87
+ DEFINIZIONI
88
+ @requisiti[fonte]: i requisiti espliciti/impliciti del goal (e quelli estratti, se forniti)
89
+ @copertura[criterio]: ogni requisito ha una risposta nell'operato; mappa requisito->evidenza
90
+ @deriva[regola]: approve=false se requisiti chiave restano scoperti o l'operato devia dal richiesto
91
+ @score[scala]: 100=tutti i requisiti coperti, 0=fuori tema; misura l'aderenza al richiesto
92
+
93
+ RELAZIONI
94
+ @R1: @requisiti[fonte] -> @copertura[criterio] [ confronta operato e requisiti ]
95
+ @R2: @copertura[criterio] -> @deriva[regola] [ requisiti chiave scoperti = no approve ]
96
+
97
+ ${VERDICT_SCHEMA}`,
98
+ };
99
+ // Registro dei valutatori disponibili, per asse.
100
+ const ALL_EVALUATORS = {
101
+ completeness: EVAL_COMPLETENESS,
102
+ correctness: EVAL_CORRECTNESS,
103
+ quality: EVAL_QUALITY,
104
+ requirements: EVAL_REQUIREMENTS,
105
+ };
106
+ // Ordine di default del concilio (tutti gli assi).
107
+ const DEFAULT_AXES = ["completeness", "correctness", "quality", "requirements"];
108
+ function isAxis(value) {
109
+ return value === "completeness" || value === "correctness" || value === "quality" || value === "requirements";
110
+ }
111
+ // Seleziona i valutatori in base agli assi richiesti (deduplicati, ordine stabile).
112
+ // Assi sconosciuti vengono ignorati; lista vuota -> tutti gli assi di default.
113
+ export function selectEvaluators(axes) {
114
+ const wanted = (axes && axes.length ? axes : DEFAULT_AXES)
115
+ .map((a) => a.trim().toLowerCase())
116
+ .filter(isAxis);
117
+ const seen = new Set();
118
+ const out = [];
119
+ for (const axis of wanted.length ? wanted : DEFAULT_AXES) {
120
+ if (seen.has(axis))
121
+ continue;
122
+ seen.add(axis);
123
+ out.push(ALL_EVALUATORS[axis]);
124
+ }
125
+ return out;
126
+ }
127
+ // ---------------------------------------------------------------------------
128
+ // Aggregazione: verdetti dei valutatori -> verdetto del concilio
129
+ // ---------------------------------------------------------------------------
130
+ function clampScore(n) {
131
+ if (!Number.isFinite(n))
132
+ return 0;
133
+ return Math.max(0, Math.min(100, Math.round(n)));
134
+ }
135
+ // Aggrega i verdetti in un CouncilVerdict motivato. La soglia (0-100) determina
136
+ // l'approvazione: la consegna e' approvata se il grado di completamento pesato
137
+ // raggiunge la soglia E nessun valutatore segnala un blocco (approve=false).
138
+ export function aggregateVerdicts(verdicts, threshold) {
139
+ if (!verdicts.length) {
140
+ return {
141
+ completion: 0,
142
+ approved: false,
143
+ consensus: { approve: 0, total: 0 },
144
+ verdicts: [],
145
+ dissent: [],
146
+ gaps: [],
147
+ summary: "concilio vuoto: nessun valutatore",
148
+ };
149
+ }
150
+ // Grado di completamento = media PESATA dei punteggi.
151
+ const totalWeight = verdicts.reduce((s, v) => s + (v.weight > 0 ? v.weight : 1), 0);
152
+ const weighted = verdicts.reduce((s, v) => s + clampScore(v.score) * (v.weight > 0 ? v.weight : 1), 0);
153
+ const completion = clampScore(totalWeight > 0 ? weighted / totalWeight : 0);
154
+ const approveCount = verdicts.filter((v) => v.approve).length;
155
+ const dissent = verdicts.filter((v) => !v.approve).map((v) => v.title);
156
+ // Carenze deduplicate da tutti gli assi.
157
+ const gapSet = new Set();
158
+ for (const v of verdicts)
159
+ for (const g of v.gaps) {
160
+ const t = g.trim();
161
+ if (t)
162
+ gapSet.add(t);
163
+ }
164
+ const gaps = [...gapSet].slice(0, 16);
165
+ // Approvazione: soglia raggiunta E nessun dissenso (nessun blocco su un asse).
166
+ const approved = completion >= threshold && dissent.length === 0;
167
+ const summary = approved
168
+ ? `concilio: APPROVATO (${completion}/100, ${approveCount}/${verdicts.length} a favore)`
169
+ : `concilio: NON approvato (${completion}/100, soglia ${threshold}; dissenso: ${dissent.join(", ") || "nessuno"})`;
170
+ return {
171
+ completion,
172
+ approved,
173
+ consensus: { approve: approveCount, total: verdicts.length },
174
+ verdicts,
175
+ dissent,
176
+ gaps,
177
+ summary,
178
+ };
179
+ }
180
+ // Steer in notazione Danilov: se il concilio NON approva, fa continuare l'agente
181
+ // sui pezzi mancanti, riportando il grado di completamento e i dissensi per asse.
182
+ export function buildCouncilSteer(goal, verdict) {
183
+ const dissentRows = verdict.verdicts
184
+ .filter((v) => !v.approve)
185
+ .map((v) => `@asse[${v.axis}]: score=${v.score}/100, motivo="${v.rationale.replace(/"/g, "'").slice(0, 160)}"`)
186
+ .join("\n");
187
+ const gapRows = verdict.gaps.map((g, i) => `(${i + 1}) ${g}`).join(" ; ");
188
+ return `[VASCEND_CONCILIO]
189
+ INDICE
190
+ 1 = goal
191
+ 2 = verdetto
192
+ 3 = dissenso
193
+ 4 = azione
194
+
195
+ DEFINIZIONI
196
+ @goal[reale]: "${goal.replace(/"/g, "'").slice(0, 200)}"
197
+ @verdetto[grado]: completamento=${verdict.completion}/100, consenso=${verdict.consensus.approve}/${verdict.consensus.total}
198
+ ${dissentRows || "@dissenso[nessuno]: tutti gli assi approvano tranne la soglia"}
199
+ @mancante[pezzi]: ${gapRows || "nessuna lacuna esplicita: alza il grado sugli assi in dissenso"}
200
+ @azione[continua]: chiudi i dissensi degli assi e copri le lacune, poi il concilio rivota
201
+
202
+ RELAZIONI
203
+ @R1: @dissenso[assi] -> @azione[continua] [ risolvi prima gli assi che non approvano ]
204
+ @R2: @mancante[pezzi] -> @goal[reale] [ copri le lacune finche' il concilio approva ]
205
+
206
+ OUTPUT: lavora sui pezzi mancanti e sui dissensi elencati, poi completa le attivita. Il concilio rivaluta: punta ad approvazione (grado alto e zero dissensi).`;
207
+ }
208
+ // ---------------------------------------------------------------------------
209
+ // Esecuzione: interroga il provider per ogni valutatore, in parallelo
210
+ // ---------------------------------------------------------------------------
211
+ // Parsing robusto del verdetto di un valutatore: estrae il primo blocco JSON e
212
+ // normalizza i campi. In caso di parsing fallito ritorna null (il chiamante usa
213
+ // un fallback prudente che NON blocca).
214
+ export function parseEvaluatorVerdict(text, ev) {
215
+ const m = /\{[\s\S]*\}/.exec(text);
216
+ if (!m)
217
+ return null;
218
+ try {
219
+ const raw = JSON.parse(m[0]);
220
+ const score = clampScore(Number(raw.score));
221
+ const gaps = Array.isArray(raw.gaps)
222
+ ? raw.gaps.map(String).map((s) => s.trim()).filter(Boolean).slice(0, 12)
223
+ : [];
224
+ // approve: se esplicito usa quello; altrimenti deduci (score alto e niente lacune).
225
+ const approve = typeof raw.approve === "boolean" ? raw.approve : score >= 70 && gaps.length === 0;
226
+ const rationale = typeof raw.rationale === "string" ? raw.rationale.trim().slice(0, 400) : "";
227
+ return {
228
+ id: ev.id,
229
+ axis: ev.axis,
230
+ title: ev.title,
231
+ weight: ev.weight,
232
+ score,
233
+ approve,
234
+ rationale: rationale || (approve ? "approva" : "non approva"),
235
+ gaps,
236
+ fallback: false,
237
+ };
238
+ }
239
+ catch {
240
+ return null;
241
+ }
242
+ }
243
+ // Verdetto di fallback prudente: NON blocca (approve=true, score neutro) cosi'
244
+ // un valutatore in errore non ferma da solo la consegna; e' marcato fallback.
245
+ function fallbackVerdict(ev) {
246
+ return {
247
+ id: ev.id,
248
+ axis: ev.axis,
249
+ title: ev.title,
250
+ weight: ev.weight,
251
+ score: 100,
252
+ approve: true,
253
+ rationale: "valutatore non disponibile: verdetto neutro (non blocca)",
254
+ gaps: [],
255
+ fallback: true,
256
+ };
257
+ }
258
+ // Convoca il concilio: interroga il provider per OGNI valutatore IN PARALLELO,
259
+ // poi aggrega. Read-only e privo di tool. Robusto: ogni valutatore ha il suo
260
+ // fallback, e un errore globale non lancia (ritorna un verdetto neutro).
261
+ export async function runCouncil(input) {
262
+ const { harness, goal, evidence, signal } = input;
263
+ const threshold = clampThreshold(input.threshold ?? 75);
264
+ const evaluators = selectEvaluators(input.axes);
265
+ const resolved = harness.providers.resolve(harness.config.model);
266
+ if (!resolved) {
267
+ // Senza provider: concilio neutro che non blocca.
268
+ return aggregateVerdicts(evaluators.map(fallbackVerdict), threshold);
269
+ }
270
+ const reqBlock = input.requirements && input.requirements.length
271
+ ? `\n\nREQUISITI ESTRATTI (riferimento per l'asse requisiti):\n${input.requirements.map((r, i) => `(${i + 1}) ${r}`).join("\n")}`
272
+ : "";
273
+ const ask = async (ev) => {
274
+ const user = `GOAL dell'utente:\n${goal}\n\n` +
275
+ `OPERATO DELL'AGENTE (sintesi + attivita + output):\n${evidence}${reqBlock}\n\n` +
276
+ `Valuta SOLO il tuo asse (${ev.axis}). Rispondi SOLO JSON con score, approve, rationale, gaps.`;
277
+ try {
278
+ const res = await resolved.provider.complete({
279
+ system: ev.system,
280
+ messages: [{ role: "user", content: [{ type: "text", text: user }] }],
281
+ tools: [],
282
+ model: resolved.modelId,
283
+ maxTokens: harness.config.maxTokens,
284
+ signal,
285
+ sessionId: `council-${ev.id}-${harness.session.id}`,
286
+ });
287
+ return parseEvaluatorVerdict(res.text, ev) ?? fallbackVerdict(ev);
288
+ }
289
+ catch {
290
+ return fallbackVerdict(ev);
291
+ }
292
+ };
293
+ // Interrogazione PARALLELA: ogni valutatore e' indipendente.
294
+ const verdicts = await Promise.all(evaluators.map(ask));
295
+ return aggregateVerdicts(verdicts, threshold);
296
+ }
297
+ function clampThreshold(n) {
298
+ if (!Number.isFinite(n))
299
+ return 75;
300
+ return Math.max(0, Math.min(100, Math.round(n)));
301
+ }
302
+ // Il concilio e' OPT-IN (default OFF): e' un layer di valutazione piu' pesante
303
+ // del singolo critico. Si attiva con TALOS_COUNCIL=1/on/true/yes.
304
+ export function councilEnabled(env) {
305
+ const v = (env["TALOS_COUNCIL"] ?? "").trim().toLowerCase();
306
+ return v === "1" || v === "on" || v === "true" || v === "yes";
307
+ }
308
+ // Soglia di approvazione 0-100 (default 75).
309
+ export function councilThreshold(env) {
310
+ const n = Number(env["TALOS_COUNCIL_THRESHOLD"]);
311
+ return Number.isFinite(n) && n >= 0 && n <= 100 ? Math.round(n) : 75;
312
+ }
313
+ // Quante volte al massimo rivotare/svegliare l'agente (anti-loop, default 1).
314
+ export function councilRounds(env) {
315
+ const n = Number(env["TALOS_COUNCIL_ROUNDS"]);
316
+ return Number.isInteger(n) && n >= 0 ? n : 1;
317
+ }
318
+ // Assi da convocare, da CSV (es. "completeness,requirements"); default tutti.
319
+ export function councilAxes(env) {
320
+ const csv = (env["TALOS_COUNCIL_AXES"] ?? "").split(",").map((s) => s.trim()).filter(Boolean);
321
+ return selectEvaluators(csv).map((e) => e.axis);
322
+ }
323
+ export function councilOptions(env) {
324
+ return {
325
+ enabled: councilEnabled(env),
326
+ threshold: councilThreshold(env),
327
+ rounds: councilRounds(env),
328
+ axes: councilAxes(env),
329
+ };
330
+ }
331
+ // Riga di sintesi human-readable del verdetto del concilio (per la TUI).
332
+ export function formatCouncilVerdict(verdict) {
333
+ const rows = verdict.verdicts
334
+ .map((v) => ` ${v.approve ? "✓" : "✗"} ${v.title}: ${v.score}/100${v.fallback ? " (neutro)" : ""}${v.rationale ? ` — ${v.rationale}` : ""}`)
335
+ .join("\n");
336
+ return `${verdict.summary}\n${rows}`;
337
+ }
@@ -0,0 +1,48 @@
1
+ import type { Message } from "../core/types.js";
2
+ import type { RoomRecord } from "./room-memory.js";
3
+ export interface DecisionEvent {
4
+ readonly type: "decision.made";
5
+ readonly domain: "decisions";
6
+ readonly id: string;
7
+ readonly decision: string;
8
+ readonly reason: string;
9
+ readonly context: string;
10
+ readonly task: string | null;
11
+ readonly subject: string;
12
+ readonly summary: string;
13
+ readonly source: "user" | "assistant";
14
+ readonly createdAt: number;
15
+ }
16
+ export interface DecisionMatch {
17
+ readonly decision: string;
18
+ readonly reason: string;
19
+ readonly context: string;
20
+ readonly source: "user" | "assistant";
21
+ }
22
+ export declare function detectDecisions(text: string, source: "user" | "assistant"): readonly DecisionMatch[];
23
+ export declare function promoteDecisions(messages: readonly Message[], opts: {
24
+ task?: string | null;
25
+ ns?: string;
26
+ now: number;
27
+ startNum?: number;
28
+ }): readonly DecisionEvent[];
29
+ export declare function decisionToRoomRecord(ev: DecisionEvent): RoomRecord;
30
+ export interface DecisionSearchHit {
31
+ readonly event: DecisionEvent;
32
+ readonly score: number;
33
+ }
34
+ export declare class DecisionStore {
35
+ private readonly file;
36
+ private events;
37
+ private constructor();
38
+ static open(sessionDir: string, storeId: string): DecisionStore;
39
+ count(): number;
40
+ all(): readonly DecisionEvent[];
41
+ nextNum(ns?: string): number;
42
+ append(event: DecisionEvent): boolean;
43
+ appendAll(events: readonly DecisionEvent[]): readonly DecisionEvent[];
44
+ private reloadFromDisk;
45
+ byTask(task: string): readonly DecisionEvent[];
46
+ search(query: string, limit?: number): readonly DecisionSearchHit[];
47
+ indexBlock(): string;
48
+ }