talos-code 0.0.1 → 0.2.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 (407) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/LICENSE +661 -0
  3. package/README.md +116 -3
  4. package/THIRD_PARTY_NOTICES.md +40 -0
  5. package/dist/archive/zip.js +73 -0
  6. package/dist/args.js +100 -0
  7. package/dist/automations/history-store.js +34 -0
  8. package/dist/automations/policy-store.js +43 -0
  9. package/dist/automations/runner.js +107 -0
  10. package/dist/automations/schedule.js +85 -0
  11. package/dist/automations/windows-task.js +53 -0
  12. package/dist/commands/advanced-cli.js +233 -0
  13. package/dist/commands/checkpoint-cli.js +45 -0
  14. package/dist/commands/config-cli.js +107 -0
  15. package/dist/commands/context.js +17 -0
  16. package/dist/commands/extensions-cli.js +207 -0
  17. package/dist/commands/project-cli.js +74 -0
  18. package/dist/commands/project-commands.js +143 -0
  19. package/dist/commands/provider-cli.js +244 -0
  20. package/dist/commands/services-cli.js +248 -0
  21. package/dist/commands/session-cli.js +171 -0
  22. package/dist/commands/system-cli.js +405 -0
  23. package/dist/config/commands.js +60 -0
  24. package/dist/config/load.js +382 -0
  25. package/dist/config/migrations.js +48 -0
  26. package/dist/config/types.js +11 -0
  27. package/dist/diagnostics/development-log.js +154 -0
  28. package/dist/diagnostics/doctor.js +104 -0
  29. package/dist/diagnostics/redact.js +80 -0
  30. package/dist/diagnostics/zip.js +52 -0
  31. package/dist/errors.js +156 -0
  32. package/dist/events/bridge.js +130 -0
  33. package/dist/extensions/installer.js +178 -0
  34. package/dist/extensions/package-schema.js +24 -0
  35. package/dist/headless/result.js +84 -0
  36. package/dist/headless/run.js +230 -0
  37. package/dist/i18n/en/approval.js +46 -0
  38. package/dist/i18n/en/common.js +9 -0
  39. package/dist/i18n/en/credentials.js +92 -0
  40. package/dist/i18n/en/errors.js +267 -0
  41. package/dist/i18n/en/firstrun.js +101 -0
  42. package/dist/i18n/en/providers.js +37 -0
  43. package/dist/i18n/en/screen.js +774 -0
  44. package/dist/i18n/en/tools.js +127 -0
  45. package/dist/i18n/en.js +14 -0
  46. package/dist/i18n/error-view.js +307 -0
  47. package/dist/i18n/index.js +19 -0
  48. package/dist/i18n/kernel-map.js +139 -0
  49. package/dist/io.js +45 -0
  50. package/dist/main.js +331 -0
  51. package/dist/paths.js +41 -0
  52. package/dist/protocol/v2/codec.js +9 -0
  53. package/dist/protocol/v2/events.js +555 -0
  54. package/dist/protocol/v2/index.js +4 -0
  55. package/dist/protocol/v2/replay.js +28 -0
  56. package/dist/protocol/v2/types.js +1 -0
  57. package/dist/provider/control-plane.js +135 -0
  58. package/dist/provider/environment-keys.js +275 -0
  59. package/dist/provider/health.js +110 -0
  60. package/dist/provider/missing-key.js +48 -0
  61. package/dist/provider/model-catalog.js +168 -0
  62. package/dist/provider/openrouter-login.js +172 -0
  63. package/dist/provider/provider-text.js +13 -0
  64. package/dist/provider/store.js +95 -0
  65. package/dist/provider/system-keyring.js +214 -0
  66. package/dist/runtime/active-run.js +63 -0
  67. package/dist/runtime/agent-tree.js +74 -0
  68. package/dist/runtime/attachments.js +84 -0
  69. package/dist/runtime/brokered-executor.js +395 -0
  70. package/dist/runtime/context-archive.js +69 -0
  71. package/dist/runtime/context-status.js +76 -0
  72. package/dist/runtime/create-runtime.js +111 -0
  73. package/dist/runtime/model-profile.js +361 -0
  74. package/dist/runtime/output-store.js +137 -0
  75. package/dist/runtime/provider-attempts.js +185 -0
  76. package/dist/runtime/replay-buffer.js +153 -0
  77. package/dist/runtime/repo.js +95 -0
  78. package/dist/runtime/session-facade.js +135 -0
  79. package/dist/runtime/session-summary.js +125 -0
  80. package/dist/runtime/supervisor.js +265 -0
  81. package/dist/runtime/talos-composition.js +1011 -0
  82. package/dist/runtime/types.js +5 -0
  83. package/dist/runtime/usage-snapshot.js +82 -0
  84. package/dist/security/auto-classifier.js +38 -0
  85. package/dist/security/credential-free-environment.js +54 -0
  86. package/dist/security/evaluate.js +243 -0
  87. package/dist/security/execution-backends.js +236 -0
  88. package/dist/security/execution-broker.js +102 -0
  89. package/dist/security/forge-scan.js +74 -0
  90. package/dist/security/from-approval.js +39 -0
  91. package/dist/security/mxc-execution-backend.js +281 -0
  92. package/dist/security/permission-engine.js +138 -0
  93. package/dist/security/permission-explanation.js +54 -0
  94. package/dist/security/persist.js +179 -0
  95. package/dist/security/plugin-guard.js +230 -0
  96. package/dist/security/process-tree-evidence-store.js +74 -0
  97. package/dist/security/process-tree-probe.js +554 -0
  98. package/dist/security/project-resource-inventory.js +186 -0
  99. package/dist/security/project-trust-gate.js +38 -0
  100. package/dist/security/project-trust.js +367 -0
  101. package/dist/security/rule-parser.js +201 -0
  102. package/dist/security/shell-segmentation.js +68 -0
  103. package/dist/security/trust-authority.js +324 -0
  104. package/dist/security/types.js +1 -0
  105. package/dist/security/workspace-identity.js +102 -0
  106. package/dist/services/automation-facade.js +59 -0
  107. package/dist/services/forge-facade.js +77 -0
  108. package/dist/services/hook-facade.js +240 -0
  109. package/dist/services/index.js +16 -0
  110. package/dist/services/library-facade.js +174 -0
  111. package/dist/services/mcp-facade.js +348 -0
  112. package/dist/services/memory-facade.js +126 -0
  113. package/dist/services/notes-facade.js +157 -0
  114. package/dist/services/plugin-facade.js +308 -0
  115. package/dist/services/research-facade.js +110 -0
  116. package/dist/services/task-board-facade.js +236 -0
  117. package/dist/services/workflow-catalog.js +246 -0
  118. package/dist/sessions/export-format.js +98 -0
  119. package/dist/sessions/metadata-store.js +160 -0
  120. package/dist/sessions/share.js +122 -0
  121. package/dist/sessions/transfer.js +16 -0
  122. package/dist/subcommands.js +62 -0
  123. package/dist/tui/agent-roster.js +36 -0
  124. package/dist/tui/agent-view.js +51 -0
  125. package/dist/tui/app.js +4098 -0
  126. package/dist/tui/approval.js +36 -0
  127. package/dist/tui/boot/boot-sequence.js +76 -0
  128. package/dist/tui/boot/cinematic.js +243 -0
  129. package/dist/tui/boot/desktop-logo.js +82 -0
  130. package/dist/tui/boot.js +3 -0
  131. package/dist/tui/busy-input.js +58 -0
  132. package/dist/tui/catalog-service.js +560 -0
  133. package/dist/tui/components/assistant-stream.js +1 -0
  134. package/dist/tui/components/command-menu.js +68 -0
  135. package/dist/tui/components/composer.js +219 -0
  136. package/dist/tui/components/diff.js +35 -0
  137. package/dist/tui/components/footer.js +48 -0
  138. package/dist/tui/components/header.js +6 -0
  139. package/dist/tui/components/markdown.js +305 -0
  140. package/dist/tui/components/status-indicator.js +38 -0
  141. package/dist/tui/components/terminal-shell.js +214 -0
  142. package/dist/tui/components/thinking-row.js +19 -0
  143. package/dist/tui/components/tool-row.js +97 -0
  144. package/dist/tui/components/transcript-virtualizer.js +165 -0
  145. package/dist/tui/components/transcript.js +43 -0
  146. package/dist/tui/descendant-approvals.js +104 -0
  147. package/dist/tui/diff-model.js +77 -0
  148. package/dist/tui/editor-history.js +21 -0
  149. package/dist/tui/editor.js +210 -0
  150. package/dist/tui/event-adapter.js +436 -0
  151. package/dist/tui/exit-output.js +58 -0
  152. package/dist/tui/external-editor.js +53 -0
  153. package/dist/tui/file-completion.js +89 -0
  154. package/dist/tui/focus-manager.js +5 -0
  155. package/dist/tui/highlight.js +30 -0
  156. package/dist/tui/input-router.js +18 -0
  157. package/dist/tui/interrupt.js +99 -0
  158. package/dist/tui/keybindings.js +194 -0
  159. package/dist/tui/keymap-resolver.js +91 -0
  160. package/dist/tui/launch-state.js +148 -0
  161. package/dist/tui/line-diff.js +57 -0
  162. package/dist/tui/live-activity.js +56 -0
  163. package/dist/tui/metrics.js +123 -0
  164. package/dist/tui/onboarding.js +36 -0
  165. package/dist/tui/overlays/agent-tree.js +43 -0
  166. package/dist/tui/overlays/approval-dialog.js +642 -0
  167. package/dist/tui/overlays/automation-center.js +51 -0
  168. package/dist/tui/overlays/checkpoint-picker.js +47 -0
  169. package/dist/tui/overlays/context-inspector.js +36 -0
  170. package/dist/tui/overlays/effort-line.js +110 -0
  171. package/dist/tui/overlays/forge-center.js +46 -0
  172. package/dist/tui/overlays/help-dialog.js +16 -0
  173. package/dist/tui/overlays/history-picker.js +37 -0
  174. package/dist/tui/overlays/hook-center.js +70 -0
  175. package/dist/tui/overlays/library-center.js +55 -0
  176. package/dist/tui/overlays/mcp-center.js +60 -0
  177. package/dist/tui/overlays/memory-center.js +63 -0
  178. package/dist/tui/overlays/model-picker.js +77 -0
  179. package/dist/tui/overlays/notes-center.js +53 -0
  180. package/dist/tui/overlays/overlay-host.js +8 -0
  181. package/dist/tui/overlays/plugin-center.js +76 -0
  182. package/dist/tui/overlays/provider-picker.js +171 -0
  183. package/dist/tui/overlays/queue-editor.js +32 -0
  184. package/dist/tui/overlays/research-center.js +59 -0
  185. package/dist/tui/overlays/scroll-window.js +234 -0
  186. package/dist/tui/overlays/session-picker.js +115 -0
  187. package/dist/tui/overlays/tasks-center.js +83 -0
  188. package/dist/tui/overlays/theme-picker.js +21 -0
  189. package/dist/tui/overlays/transcript-search.js +58 -0
  190. package/dist/tui/overlays/trust-center.js +29 -0
  191. package/dist/tui/overlays/workflow-center.js +46 -0
  192. package/dist/tui/project-file-index.js +214 -0
  193. package/dist/tui/project-references.js +85 -0
  194. package/dist/tui/project-trust-prompt.js +289 -0
  195. package/dist/tui/prompt-history-store.js +116 -0
  196. package/dist/tui/queue-store.js +110 -0
  197. package/dist/tui/regions/budget.js +59 -0
  198. package/dist/tui/regions/views.js +96 -0
  199. package/dist/tui/render-coordinator.js +148 -0
  200. package/dist/tui/render-scheduler.js +4 -0
  201. package/dist/tui/run.js +69 -0
  202. package/dist/tui/selection-list.js +29 -0
  203. package/dist/tui/session-controller.js +791 -0
  204. package/dist/tui/session-export.js +54 -0
  205. package/dist/tui/setup-wizard.js +46 -0
  206. package/dist/tui/shell-input.js +35 -0
  207. package/dist/tui/shell-layout.js +48 -0
  208. package/dist/tui/shell-model.js +98 -0
  209. package/dist/tui/slash-commands.js +82 -0
  210. package/dist/tui/state.js +151 -0
  211. package/dist/tui/status-bar.js +125 -0
  212. package/dist/tui/status-view.js +40 -0
  213. package/dist/tui/terminal-capabilities.js +9 -0
  214. package/dist/tui/terminal-session.js +11 -0
  215. package/dist/tui/text-width.js +66 -0
  216. package/dist/tui/theme-catalog.js +27 -0
  217. package/dist/tui/theme-store.js +23 -0
  218. package/dist/tui/theme.js +23 -0
  219. package/dist/tui/tool-display.js +135 -0
  220. package/dist/tui/tool-facts.js +1 -0
  221. package/dist/tui/tools/bash-renderer.js +32 -0
  222. package/dist/tui/tools/change.js +61 -0
  223. package/dist/tui/tools/edit-renderer.js +17 -0
  224. package/dist/tui/tools/generic-renderer.js +13 -0
  225. package/dist/tui/tools/list-renderer.js +14 -0
  226. package/dist/tui/tools/read-renderer.js +13 -0
  227. package/dist/tui/tools/registry.js +20 -0
  228. package/dist/tui/tools/row-format.js +187 -0
  229. package/dist/tui/tools/search-renderer.js +38 -0
  230. package/dist/tui/tools/shared.js +97 -0
  231. package/dist/tui/tools/write-renderer.js +15 -0
  232. package/dist/tui/transcript-model.js +441 -0
  233. package/dist/tui/ui-preferences.js +79 -0
  234. package/dist/tui/usage-view.js +77 -0
  235. package/dist/tui/vim-mode.js +99 -0
  236. package/dist/update/check.js +15 -0
  237. package/dist/update/npm.js +51 -0
  238. package/dist/update/run.js +129 -0
  239. package/dist/version.js +2 -0
  240. package/dist/workspace/checkpoint-store.js +210 -0
  241. package/dist/workspace/checkpoint.js +413 -0
  242. package/dist/workspace/restore.js +232 -0
  243. package/package.json +64 -5
  244. package/vendor/context-engine/package.json +11 -0
  245. package/vendor/context-engine/src/compaction-planner.mjs +57 -0
  246. package/vendor/context-engine/src/contracts.mjs +48 -0
  247. package/vendor/context-engine/src/engine.mjs +445 -0
  248. package/vendor/context-engine/src/node/context-export.mjs +164 -0
  249. package/vendor/context-engine/src/node/legacy-import.mjs +92 -0
  250. package/vendor/context-engine/src/node/migrations/001-context.sql +126 -0
  251. package/vendor/context-engine/src/node/sqlite-store.mjs +85 -0
  252. package/vendor/context-engine/src/node/sqlite-worker.mjs +559 -0
  253. package/vendor/context-engine/src/profiles.mjs +10 -0
  254. package/vendor/context-engine/src/retrieval.mjs +104 -0
  255. package/vendor/context-engine/src/summary.mjs +97 -0
  256. package/vendor/context-engine/src/usage.mjs +34 -0
  257. package/vendor/harness-ui/package.json +38 -0
  258. package/vendor/harness-ui/src/acp-agent.mjs +350 -0
  259. package/vendor/harness-ui/src/agent-service.mjs +2188 -0
  260. package/vendor/harness-ui/src/agui-events.mjs +452 -0
  261. package/vendor/harness-ui/src/ambiente-solo-server.mjs +121 -0
  262. package/vendor/harness-ui/src/artifact-store.mjs +39 -0
  263. package/vendor/harness-ui/src/assistenza.mjs +123 -0
  264. package/vendor/harness-ui/src/automation-scheduler.mjs +69 -0
  265. package/vendor/harness-ui/src/automation-store.mjs +145 -0
  266. package/vendor/harness-ui/src/browser-annota.mjs +639 -0
  267. package/vendor/harness-ui/src/browser-frame.mjs +211 -0
  268. package/vendor/harness-ui/src/browser-proxy-universale.mjs +519 -0
  269. package/vendor/harness-ui/src/browser-proxy.mjs +87 -0
  270. package/vendor/harness-ui/src/browser-sessione-viva.mjs +329 -0
  271. package/vendor/harness-ui/src/browser-stream.mjs +445 -0
  272. package/vendor/harness-ui/src/browser-vivo.mjs +694 -0
  273. package/vendor/harness-ui/src/chat-image-attachments.mjs +72 -0
  274. package/vendor/harness-ui/src/config.mjs +697 -0
  275. package/vendor/harness-ui/src/contesto-del-progetto.mjs +385 -0
  276. package/vendor/harness-ui/src/context-asset-adapter.mjs +72 -0
  277. package/vendor/harness-ui/src/context-desktop-service.mjs +253 -0
  278. package/vendor/harness-ui/src/context-embedding-runtime.mjs +252 -0
  279. package/vendor/harness-ui/src/context-inference-scheduler.mjs +81 -0
  280. package/vendor/harness-ui/src/context-native-compaction.mjs +75 -0
  281. package/vendor/harness-ui/src/context-provider-adapter.mjs +141 -0
  282. package/vendor/harness-ui/src/context-runtime.mjs +118 -0
  283. package/vendor/harness-ui/src/context-token-counters.mjs +184 -0
  284. package/vendor/harness-ui/src/context-tool-catalog.mjs +86 -0
  285. package/vendor/harness-ui/src/context-tool-output.mjs +72 -0
  286. package/vendor/harness-ui/src/costo-elenco.mjs +252 -0
  287. package/vendor/harness-ui/src/custom-task.mjs +171 -0
  288. package/vendor/harness-ui/src/doctor.mjs +142 -0
  289. package/vendor/harness-ui/src/document-filename.mjs +97 -0
  290. package/vendor/harness-ui/src/document-generator.mjs +493 -0
  291. package/vendor/harness-ui/src/document-report.mjs +331 -0
  292. package/vendor/harness-ui/src/duckduckgo-search.mjs +155 -0
  293. package/vendor/harness-ui/src/elenco-profondo.mjs +337 -0
  294. package/vendor/harness-ui/src/favicon-proxy.mjs +113 -0
  295. package/vendor/harness-ui/src/forge-contract.mjs +221 -0
  296. package/vendor/harness-ui/src/frequent-dirs.mjs +134 -0
  297. package/vendor/harness-ui/src/generated-image-store.mjs +147 -0
  298. package/vendor/harness-ui/src/generation-idle.mjs +332 -0
  299. package/vendor/harness-ui/src/gguf-header.mjs +207 -0
  300. package/vendor/harness-ui/src/git-service.mjs +626 -0
  301. package/vendor/harness-ui/src/gitignore-elenco.mjs +604 -0
  302. package/vendor/harness-ui/src/harness-receipt-keypair.mjs +207 -0
  303. package/vendor/harness-ui/src/hf-direct-transfer.mjs +170 -0
  304. package/vendor/harness-ui/src/hf-hub-client.mjs +106 -0
  305. package/vendor/harness-ui/src/hf-image-proxy.mjs +105 -0
  306. package/vendor/harness-ui/src/hf-model-transfer.mjs +245 -0
  307. package/vendor/harness-ui/src/hook-registry.mjs +186 -0
  308. package/vendor/harness-ui/src/http-app.mjs +6259 -0
  309. package/vendor/harness-ui/src/http-lifecycle.mjs +132 -0
  310. package/vendor/harness-ui/src/id-archivio.mjs +27 -0
  311. package/vendor/harness-ui/src/image-generator.mjs +143 -0
  312. package/vendor/harness-ui/src/istruzioni-di-progetto.mjs +234 -0
  313. package/vendor/harness-ui/src/kernel/dist/kernelPerIlBanco.js +518 -0
  314. package/vendor/harness-ui/src/kernel/talosHarness.mjs +10437 -0
  315. package/vendor/harness-ui/src/library-policy-store.mjs +175 -0
  316. package/vendor/harness-ui/src/library-store.mjs +652 -0
  317. package/vendor/harness-ui/src/llama-server-supervisor.mjs +629 -0
  318. package/vendor/harness-ui/src/local-model-store.mjs +339 -0
  319. package/vendor/harness-ui/src/local-runtime-contract.mjs +66 -0
  320. package/vendor/harness-ui/src/local-runtime-events.mjs +44 -0
  321. package/vendor/harness-ui/src/local-runtime-llama-server.mjs +244 -0
  322. package/vendor/harness-ui/src/local-runtime-probe.mjs +401 -0
  323. package/vendor/harness-ui/src/machine-capacity.mjs +66 -0
  324. package/vendor/harness-ui/src/mappa-cartelle.mjs +491 -0
  325. package/vendor/harness-ui/src/mcp-client.mjs +98 -0
  326. package/vendor/harness-ui/src/mcp-registry.mjs +157 -0
  327. package/vendor/harness-ui/src/mcp-session.mjs +177 -0
  328. package/vendor/harness-ui/src/memory-store.mjs +227 -0
  329. package/vendor/harness-ui/src/model-catalog-models-dev.mjs +276 -0
  330. package/vendor/harness-ui/src/model-catalog.mjs +129 -0
  331. package/vendor/harness-ui/src/model-destination.mjs +189 -0
  332. package/vendor/harness-ui/src/modifica-ancorata.mjs +177 -0
  333. package/vendor/harness-ui/src/native-provider-adapter.mjs +205 -0
  334. package/vendor/harness-ui/src/notes-store.mjs +250 -0
  335. package/vendor/harness-ui/src/openai-compatible-runtime.mjs +428 -0
  336. package/vendor/harness-ui/src/openrouter-oauth.mjs +339 -0
  337. package/vendor/harness-ui/src/path-policy.mjs +442 -0
  338. package/vendor/harness-ui/src/plugin-registry.mjs +780 -0
  339. package/vendor/harness-ui/src/plugin-session.mjs +180 -0
  340. package/vendor/harness-ui/src/process-policy.mjs +345 -0
  341. package/vendor/harness-ui/src/prompt-enhancer-provider.mjs +94 -0
  342. package/vendor/harness-ui/src/provider-auth-cloud.mjs +95 -0
  343. package/vendor/harness-ui/src/provider-credential-store.mjs +541 -0
  344. package/vendor/harness-ui/src/provider-probe.mjs +582 -0
  345. package/vendor/harness-ui/src/provider-registry.mjs +1633 -0
  346. package/vendor/harness-ui/src/pty-terminal.mjs +312 -0
  347. package/vendor/harness-ui/src/public-problem.mjs +109 -0
  348. package/vendor/harness-ui/src/research/card.mjs +235 -0
  349. package/vendor/harness-ui/src/research/citations.mjs +142 -0
  350. package/vendor/harness-ui/src/research/collector.mjs +275 -0
  351. package/vendor/harness-ui/src/research/deposito-a-pezzi.mjs +139 -0
  352. package/vendor/harness-ui/src/research/dossier.mjs +114 -0
  353. package/vendor/harness-ui/src/research/esportazioni.mjs +560 -0
  354. package/vendor/harness-ui/src/research/fetch-cache.mjs +465 -0
  355. package/vendor/harness-ui/src/research/fidelity.mjs +122 -0
  356. package/vendor/harness-ui/src/research/independence.mjs +159 -0
  357. package/vendor/harness-ui/src/research/ledger.mjs +166 -0
  358. package/vendor/harness-ui/src/research/markdown-server.mjs +565 -0
  359. package/vendor/harness-ui/src/research/narration.mjs +181 -0
  360. package/vendor/harness-ui/src/research/open-cards.mjs +131 -0
  361. package/vendor/harness-ui/src/research/opposing.mjs +305 -0
  362. package/vendor/harness-ui/src/research/outline.mjs +111 -0
  363. package/vendor/harness-ui/src/research/page-budget.mjs +209 -0
  364. package/vendor/harness-ui/src/research/pdf.mjs +291 -0
  365. package/vendor/harness-ui/src/research/plan.mjs +301 -0
  366. package/vendor/harness-ui/src/research/raccolta-viva.mjs +452 -0
  367. package/vendor/harness-ui/src/research/recheck-document.mjs +69 -0
  368. package/vendor/harness-ui/src/research/recheck-history.mjs +192 -0
  369. package/vendor/harness-ui/src/research/recheck.mjs +194 -0
  370. package/vendor/harness-ui/src/research/report.mjs +203 -0
  371. package/vendor/harness-ui/src/research/run.mjs +527 -0
  372. package/vendor/harness-ui/src/research/synthesis.mjs +318 -0
  373. package/vendor/harness-ui/src/research/verification.mjs +572 -0
  374. package/vendor/harness-ui/src/research-orchestrator.mjs +2679 -0
  375. package/vendor/harness-ui/src/research-store.mjs +1133 -0
  376. package/vendor/harness-ui/src/runtime-build-manifest.mjs +26 -0
  377. package/vendor/harness-ui/src/runtime-contract.mjs +59 -0
  378. package/vendor/harness-ui/src/runtime-owner-adapter.mjs +1348 -0
  379. package/vendor/harness-ui/src/runtime-owner-contract.mjs +32 -0
  380. package/vendor/harness-ui/src/scheda-di-lavoro.mjs +249 -0
  381. package/vendor/harness-ui/src/search-source-store.mjs +172 -0
  382. package/vendor/harness-ui/src/session-registry.mjs +6095 -0
  383. package/vendor/harness-ui/src/session-store.mjs +220 -0
  384. package/vendor/harness-ui/src/sessione-pronta.mjs +73 -0
  385. package/vendor/harness-ui/src/setup-stato.mjs +31 -0
  386. package/vendor/harness-ui/src/sezioni-istruzioni.mjs +204 -0
  387. package/vendor/harness-ui/src/skill-registry.mjs +120 -0
  388. package/vendor/harness-ui/src/sse-replay-coalescente.mjs +0 -0
  389. package/vendor/harness-ui/src/static-files.mjs +96 -0
  390. package/vendor/harness-ui/src/stream-partition.mjs +123 -0
  391. package/vendor/harness-ui/src/subagent-orchestrator.mjs +453 -0
  392. package/vendor/harness-ui/src/task-catalog.mjs +65 -0
  393. package/vendor/harness-ui/src/tasks-store.mjs +220 -0
  394. package/vendor/harness-ui/src/terminal-registry.mjs +312 -0
  395. package/vendor/harness-ui/src/terminal-ws.mjs +170 -0
  396. package/vendor/harness-ui/src/tool-forge-store.mjs +299 -0
  397. package/vendor/harness-ui/src/tool-schema-normalize.mjs +100 -0
  398. package/vendor/harness-ui/src/usage-cache.mjs +315 -0
  399. package/vendor/harness-ui/src/workspace-browser.mjs +213 -0
  400. package/vendor/harness-ui/src/workspace-context.mjs +124 -0
  401. package/vendor/harness-ui/src/workspace-disk.mjs +62 -0
  402. package/vendor/harness-ui/src/workspace-files.mjs +589 -0
  403. package/vendor/harness-ui/src/workspace-info.mjs +189 -0
  404. package/vendor/harness-ui/src/workspace-launch-store.mjs +150 -0
  405. package/vendor/harness-ui/src/workspace-tree.mjs +67 -0
  406. package/vendor/harness-ui/src/workspace-watcher.mjs +161 -0
  407. package/vendor/manifest.json +170 -0
@@ -0,0 +1,159 @@
1
+ /*
2
+ * PORTO FEDELE di AVM/mobile/src/lib/research/researchIndependence.ts (147 righe, 11/09/2026).
3
+ *
4
+ * ⛔ Meccanico e fedele: stessi nomi esportati, stessa semantica, stessi casi
5
+ * limite. I tipi TypeScript diventano `@typedef` JSDoc; il resto è invariato.
6
+ *
7
+ * ⛔⛔ INDIPENDENZA-03 — tre fonti che ripetono la stessa non fanno tre prove.
8
+ *
9
+ * ## Il difetto che questo modulo chiude
10
+ *
11
+ * Un rapporto che dice «sostenuta da 3 fonti» sta facendo una promessa
12
+ * numerica. Se quelle tre sono tre siti che riprendono lo stesso comunicato, il
13
+ * 3 è **falso**: la prova è una sola, ripetuta tre volte, e chi legge decide con
14
+ * più fiducia di quanta ne meriti il fatto.
15
+ *
16
+ * È il modo più comune in cui una notizia sbagliata si consolida, e un agente
17
+ * che cerca sul web ci cade più facilmente di una persona: i primi risultati di
18
+ * una ricerca sono spesso proprio le riprese.
19
+ *
20
+ * ## ⛔ Si misura con quello che ABBIAMO, non con quello che servirebbe
21
+ *
22
+ * La cosa giusta in assoluto sarebbe risalire alla catena editoriale di ogni
23
+ * pagina. Non ce l'abbiamo, e fingere di averla sarebbe peggio di non contare
24
+ * affatto. Quello che abbiamo, senza chiedere un byte in più alla rete, è il
25
+ * **dominio registrabile** e le origini che una fonte cita quando il
26
+ * raccoglitore le ha viste. Con quei due si fanno tre regole difendibili:
27
+ *
28
+ * 1. due pagine dello stesso dominio non sono due fonti;
29
+ * 2. una fonte che cita **una sola** altra origine è una ripresa di quella;
30
+ * 3. ⛔ una fonte che cita **più** origini diverse resta indipendente — è un
31
+ * lavoro che ha messo insieme più cose, e punirlo sarebbe il verso
32
+ * sbagliato: toglierebbe valore proprio alle fonti migliori.
33
+ *
34
+ * Il numero che si mostra è quello dei GRUPPI, non quello degli URL.
35
+ */
36
+
37
+ /**
38
+ * ⛔ La lista pubblica dei suffissi è un file da megabyte che cambia ogni
39
+ * settimana: non entra in un'app che ha un tetto misurato sul grafo d'avvio.
40
+ *
41
+ * Qui basta molto meno. Serve a non tagliare `bbc.co.uk` in `co.uk`, che
42
+ * trasformerebbe due testate britanniche diverse in una fonte sola — cioè
43
+ * l'errore opposto a quello che stiamo curando, e il più insidioso: fa
44
+ * sembrare DIPENDENTI due prove che sono davvero indipendenti.
45
+ *
46
+ * ⇒ Si tengono i secondi livelli veri, quelli sotto cui chiunque registra.
47
+ * Un dominio fuori da questa lista viene trattato come normale, che è il caso
48
+ * di gran lunga più frequente e sbaglia nella direzione prudente.
49
+ *
50
+ * @type {ReadonlySet<string>}
51
+ */
52
+ const SUFFISSI_DI_SECONDO_LIVELLO = new Set([
53
+ 'co.uk', 'org.uk', 'ac.uk', 'gov.uk', 'me.uk', 'net.uk', 'sch.uk',
54
+ 'com.au', 'net.au', 'org.au', 'edu.au', 'gov.au',
55
+ 'co.jp', 'or.jp', 'ne.jp', 'ac.jp', 'go.jp',
56
+ 'com.br', 'net.br', 'org.br', 'gov.br',
57
+ 'co.nz', 'net.nz', 'org.nz', 'govt.nz',
58
+ 'co.in', 'net.in', 'org.in', 'gov.in',
59
+ 'com.cn', 'net.cn', 'org.cn', 'gov.cn',
60
+ 'co.za', 'org.za', 'gov.za',
61
+ 'com.mx', 'com.ar', 'com.tr', 'com.sg', 'com.hk', 'com.tw',
62
+ 'gov.it', 'edu.it',
63
+ ])
64
+
65
+ /**
66
+ * Il dominio sotto cui la fonte è registrata, o `null` se non è un indirizzo.
67
+ *
68
+ * ⛔ `null` è un esito, non un guasto: un URL illeggibile non deve inventare un
69
+ * gruppo, perché un gruppo in più vuol dire una prova in più che non esiste.
70
+ *
71
+ * @param {string} url
72
+ * @returns {string | null}
73
+ */
74
+ export function talosResearchRegistrableHost(url) {
75
+ /** @type {string} */
76
+ let host
77
+ try {
78
+ host = new URL(url).hostname.toLowerCase()
79
+ } catch {
80
+ return null
81
+ }
82
+ if (!host) return null
83
+
84
+ const parti = host.split('.').filter(Boolean)
85
+ if (parti.length <= 2) return parti.join('.') || null
86
+
87
+ const ultimiDue = parti.slice(-2).join('.')
88
+ // Con un suffisso a due livelli il dominio vero ha TRE etichette.
89
+ const quante = SUFFISSI_DI_SECONDO_LIVELLO.has(ultimiDue) ? 3 : 2
90
+ return parti.slice(-quante).join('.')
91
+ }
92
+
93
+ /**
94
+ * @typedef {object} TalosResearchSourceOrigin
95
+ * @property {string} url
96
+ * @property {readonly string[]} [cites] Le origini che questa fonte cita a sua
97
+ * volta, quando il raccoglitore le ha viste. Assente non vuol dire «nessuna»:
98
+ * vuol dire «non guardato», e allora la fonte resta per conto suo.
99
+ */
100
+
101
+ /**
102
+ * @typedef {object} TalosResearchIndependenceGroup
103
+ * @property {string} origin Il dominio che regge il gruppo: l'origine comune, o la fonte stessa.
104
+ * @property {readonly string[]} sources Gli URL che ci ricadono dentro, nell'ordine in cui sono arrivati.
105
+ */
106
+
107
+ /**
108
+ * @typedef {object} TalosResearchIndependence
109
+ * @property {number} total Quante fonti sono state passate, riprese comprese.
110
+ * @property {number} independent Quante prove distinte ci sono davvero.
111
+ * @property {readonly TalosResearchIndependenceGroup[]} groups
112
+ */
113
+
114
+ /**
115
+ * L'origine di cui una fonte è una RIPRESA, se lo è.
116
+ *
117
+ * Una sola origine citata, e diversa da sé: è una ripresa. Zero, o più di una,
118
+ * oppure solo sé stessa: no.
119
+ *
120
+ * @param {string} proprio
121
+ * @param {readonly string[] | undefined} cites
122
+ * @returns {string | null}
123
+ */
124
+ function origineDiCuiEUnaRipresa(proprio, cites) {
125
+ if (!cites?.length) return null
126
+ /** @type {Set<string>} */
127
+ const altre = new Set()
128
+ for (const citata of cites) {
129
+ const host = talosResearchRegistrableHost(citata)
130
+ if (host && host !== proprio) altre.add(host)
131
+ }
132
+ return altre.size === 1 ? [...altre][0] : null
133
+ }
134
+
135
+ /**
136
+ * @param {readonly TalosResearchSourceOrigin[]} sources
137
+ * @returns {TalosResearchIndependence}
138
+ */
139
+ export function talosResearchIndependentSources(sources) {
140
+ /** @type {Map<string, string[]>} */
141
+ const gruppi = new Map()
142
+
143
+ for (const source of sources) {
144
+ const proprio = talosResearchRegistrableHost(source.url)
145
+ // Un indirizzo illeggibile non entra: contarlo vorrebbe dire mostrare
146
+ // una prova in più di quante ne abbiamo.
147
+ if (!proprio) continue
148
+ const origine = origineDiCuiEUnaRipresa(proprio, source.cites) ?? proprio
149
+ const dentro = gruppi.get(origine)
150
+ if (dentro) dentro.push(source.url)
151
+ else gruppi.set(origine, [source.url])
152
+ }
153
+
154
+ return {
155
+ total: sources.length,
156
+ independent: gruppi.size,
157
+ groups: [...gruppi].map(([origin, urls]) => ({ origin, sources: urls })),
158
+ }
159
+ }
@@ -0,0 +1,166 @@
1
+ import { talosResearchDuration } from './outline.mjs'
2
+
3
+ /*
4
+ * PORTO FEDELE di AVM/mobile/src/lib/research/researchLedger.ts (162 righe, 11/09/2026).
5
+ *
6
+ * ⛔⛔ REGISTRO-01 — «Come è stato costruito», la sezione che mancava.
7
+ *
8
+ * ## Il difetto che chiude
9
+ *
10
+ * Una ricerca approfondita dura minuti e costa crediti. Alla fine la persona
11
+ * legge un rapporto e una percentuale, e deve decidere se fidarsi **senza aver
12
+ * visto niente di quello che è successo in mezzo**.
13
+ *
14
+ * ⛔ E non è trasparenza per bellezza: il numero dei passi e la loro durata
15
+ * sono l'unica cosa che distingue una ricerca che ha davvero **letto** le
16
+ * pagine da una che ha guardato quattro estratti. Due rapporti possono portare
17
+ * lo stesso 100% e dietro avere lavori incomparabili — e oggi si leggono
18
+ * uguali.
19
+ *
20
+ * ## La forma, dalla ricerca del 2026-08-20
21
+ *
22
+ * Il pattern concorde per gli agenti che lavorano a lungo è **sommario →
23
+ * dettaglio → dati grezzi**: si riassume per tappe, si interrompe la persona
24
+ * solo per ciò che decide, e il registro completo resta **a un clic**. Non
25
+ * dieci righe sempre aperte — un sommario che si apre.
26
+ *
27
+ * ⇒ Qui escono le due cose insieme, così la schermata non ricalcola e non
28
+ * decide: mostra.
29
+ *
30
+ * ⛔ Puro e senza I/O: i passi ce li ha già la corsa, e una sezione che
31
+ * chiedesse qualcosa a disco o alla rete sarebbe in ritardo proprio mentre la
32
+ * ricerca lavora.
33
+ */
34
+
35
+ /**
36
+ * @import { TalosResearchStep, TalosResearchStepKind, TalosResearchStepState } from './run.mjs'
37
+ */
38
+
39
+ /**
40
+ * @typedef {object} TalosResearchLedgerEntry
41
+ * @property {string} id
42
+ * @property {TalosResearchStepKind} kind
43
+ * @property {TalosResearchStepState} state
44
+ * @property {string | null} duration Leggibile — «3 s», «1 min 07 s» — o `null` se non è finito.
45
+ * @property {number} attempts Quante volte è stato avviato. Due tentativi non sono un tentativo.
46
+ * @property {string | null} error
47
+ */
48
+
49
+ /**
50
+ * @typedef {object} TalosResearchLedgerSummary
51
+ * @property {number} total
52
+ * @property {number} search
53
+ * @property {number} read ⛔ Pagine APERTE davvero, contate dalle fonti — non passi `read`.
54
+ * @property {number} synthesise
55
+ * @property {number} verify ⛔ Affermazioni che un giudice ha guardato, contate dai verdetti.
56
+ * @property {number} failed ⛔ A parte dagli altri: un lavoro incompleto va detto, non sommato.
57
+ * @property {number} interrupted
58
+ * @property {number} workedSeconds ⛔ Il tempo LAVORATO, non quello dall'inizio
59
+ * alla fine. Due passi da 3 s partiti insieme fanno 6 s di lavoro e 3 s di
60
+ * orologio. La persona l'attesa la conosce — l'ha vissuta; quello che non sa è
61
+ * quanto lavoro c'è dentro, ed è il numero che dice se un 100% è stato pagato.
62
+ */
63
+
64
+ /**
65
+ * @typedef {object} TalosResearchLedger
66
+ * @property {TalosResearchLedgerSummary} summary
67
+ * @property {readonly TalosResearchLedgerEntry[]} entries
68
+ */
69
+
70
+ /**
71
+ * ⛔⛔ LE PROVE, non i tipi di passo — e questa riga è nata da un errore MIO.
72
+ *
73
+ * La prima versione contava `kind === 'read'` e `kind === 'verify'`, e sul
74
+ * Pad il 2026-08-20 ha scritto «3 passi · 2 ricerche · **0 pagine lette · 0
75
+ * verifiche**» sotto un rapporto al 100% verificato da un giudice.
76
+ *
77
+ * MISURATO subito dopo, in `researchRuntime.ts`: il runtime emette **solo**
78
+ * `search` e `synthesise`. `read` e `verify` non vengono creati mai — non
79
+ * perché il lavoro non si faccia, ma perché avviene DENTRO quei due passi.
80
+ * Il collettore apre le pagine (`obtained: 'page'`) e il giudice verifica
81
+ * (`judge`, `judgedAt`): sono lì, con nome e ora.
82
+ *
83
+ * ⇒ Contare i tipi di passo faceva dire al registro una cosa falsa sul
84
+ * lavoro — esattamente nel verso che questa sezione esiste per impedire, e
85
+ * alla sua prima corsa vera. Si contano le **prove**: quante fonti sono
86
+ * state aperte per davvero, quante affermazioni un giudice ha guardato.
87
+ *
88
+ * ⛔ Resta un buco vero, ma è un altro: le durate della lettura e della
89
+ * verifica nessuno le registra, perché non hanno un passo loro. Il registro
90
+ * dice quante, non quanto — e non finge di sapere il resto.
91
+ *
92
+ * @typedef {object} TalosResearchLedgerEvidence
93
+ * @property {readonly { obtained?: 'page' | 'snippet' }[]} [sources] Le fonti raccolte: `obtained` dice se la pagina è stata APERTA.
94
+ * @property {readonly { checks?: { judge?: string | null } }[]} [claims] Le affermazioni: `judge` non nullo vuol dire che qualcuno ha guardato.
95
+ */
96
+
97
+ /**
98
+ * I secondi fra due istanti, o `null` se manca un capo.
99
+ * @param {string | null} from
100
+ * @param {string | null} to
101
+ * @returns {number | null}
102
+ */
103
+ function secondi(from, to) {
104
+ if (!from || !to) return null
105
+ const inizio = Date.parse(from)
106
+ const fine = Date.parse(to)
107
+ if (Number.isNaN(inizio) || Number.isNaN(fine)) return null
108
+ // Un tempo negativo è un orologio che è tornato indietro, non una durata.
109
+ return Math.max(0, Math.round((fine - inizio) / 1000))
110
+ }
111
+
112
+ /**
113
+ * @param {readonly TalosResearchStep[]} steps
114
+ * @param {TalosResearchLedgerEvidence} [evidence]
115
+ * @returns {TalosResearchLedger}
116
+ */
117
+ export function talosResearchLedger(steps, evidence = {}) {
118
+ /*
119
+ * ⛔ In ordine di ACCADIMENTO, non di identificativo.
120
+ *
121
+ * I rami partono in parallelo e gli id li assegna chi crea il piano: letti
122
+ * per id, i passi raccontano una storia che non è successa. Chi non è mai
123
+ * partito va in fondo — non ha un momento a cui appartenere.
124
+ */
125
+ const ordinati = [...steps].sort((a, b) => {
126
+ const ta = a.startedAt ? Date.parse(a.startedAt) : Number.POSITIVE_INFINITY
127
+ const tb = b.startedAt ? Date.parse(b.startedAt) : Number.POSITIVE_INFINITY
128
+ return ta - tb
129
+ })
130
+
131
+ const entries = ordinati.map((step) => {
132
+ const durata = secondi(step.startedAt, step.finishedAt)
133
+ return {
134
+ id: step.id,
135
+ kind: step.kind,
136
+ state: step.state,
137
+ duration: durata === null ? null : talosResearchDuration(durata),
138
+ attempts: step.attempts,
139
+ error: step.error,
140
+ }
141
+ })
142
+
143
+ /** @param {(step: TalosResearchStep) => boolean} predicato */
144
+ const quanti = (predicato) => steps.filter(predicato).length
145
+
146
+ return {
147
+ summary: {
148
+ total: steps.length,
149
+ search: quanti((step) => step.kind === 'search'),
150
+ // ⛔ Dalle PROVE, non dai tipi di passo. Vedi la nota sopra:
151
+ // il runtime non emette mai `read` né `verify`, e contarli
152
+ // faceva dire al registro «0 pagine lette» su un rapporto
153
+ // costruito leggendo le pagine.
154
+ read: (evidence.sources ?? []).filter((s) => s.obtained === 'page').length,
155
+ synthesise: quanti((step) => step.kind === 'synthesise'),
156
+ verify: (evidence.claims ?? []).filter((c) => Boolean(c.checks?.judge)).length,
157
+ failed: quanti((step) => step.state === 'failed'),
158
+ interrupted: quanti((step) => step.state === 'interrupted'),
159
+ workedSeconds: steps.reduce(
160
+ (somma, step) => somma + (secondi(step.startedAt, step.finishedAt) ?? 0),
161
+ 0,
162
+ ),
163
+ },
164
+ entries,
165
+ }
166
+ }