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.
- package/CHANGELOG.md +87 -0
- package/LICENSE +661 -0
- package/README.md +116 -3
- package/THIRD_PARTY_NOTICES.md +40 -0
- package/dist/archive/zip.js +73 -0
- package/dist/args.js +100 -0
- package/dist/automations/history-store.js +34 -0
- package/dist/automations/policy-store.js +43 -0
- package/dist/automations/runner.js +107 -0
- package/dist/automations/schedule.js +85 -0
- package/dist/automations/windows-task.js +53 -0
- package/dist/commands/advanced-cli.js +233 -0
- package/dist/commands/checkpoint-cli.js +45 -0
- package/dist/commands/config-cli.js +107 -0
- package/dist/commands/context.js +17 -0
- package/dist/commands/extensions-cli.js +207 -0
- package/dist/commands/project-cli.js +74 -0
- package/dist/commands/project-commands.js +143 -0
- package/dist/commands/provider-cli.js +244 -0
- package/dist/commands/services-cli.js +248 -0
- package/dist/commands/session-cli.js +171 -0
- package/dist/commands/system-cli.js +405 -0
- package/dist/config/commands.js +60 -0
- package/dist/config/load.js +382 -0
- package/dist/config/migrations.js +48 -0
- package/dist/config/types.js +11 -0
- package/dist/diagnostics/development-log.js +154 -0
- package/dist/diagnostics/doctor.js +104 -0
- package/dist/diagnostics/redact.js +80 -0
- package/dist/diagnostics/zip.js +52 -0
- package/dist/errors.js +156 -0
- package/dist/events/bridge.js +130 -0
- package/dist/extensions/installer.js +178 -0
- package/dist/extensions/package-schema.js +24 -0
- package/dist/headless/result.js +84 -0
- package/dist/headless/run.js +230 -0
- package/dist/i18n/en/approval.js +46 -0
- package/dist/i18n/en/common.js +9 -0
- package/dist/i18n/en/credentials.js +92 -0
- package/dist/i18n/en/errors.js +267 -0
- package/dist/i18n/en/firstrun.js +101 -0
- package/dist/i18n/en/providers.js +37 -0
- package/dist/i18n/en/screen.js +774 -0
- package/dist/i18n/en/tools.js +127 -0
- package/dist/i18n/en.js +14 -0
- package/dist/i18n/error-view.js +307 -0
- package/dist/i18n/index.js +19 -0
- package/dist/i18n/kernel-map.js +139 -0
- package/dist/io.js +45 -0
- package/dist/main.js +331 -0
- package/dist/paths.js +41 -0
- package/dist/protocol/v2/codec.js +9 -0
- package/dist/protocol/v2/events.js +555 -0
- package/dist/protocol/v2/index.js +4 -0
- package/dist/protocol/v2/replay.js +28 -0
- package/dist/protocol/v2/types.js +1 -0
- package/dist/provider/control-plane.js +135 -0
- package/dist/provider/environment-keys.js +275 -0
- package/dist/provider/health.js +110 -0
- package/dist/provider/missing-key.js +48 -0
- package/dist/provider/model-catalog.js +168 -0
- package/dist/provider/openrouter-login.js +172 -0
- package/dist/provider/provider-text.js +13 -0
- package/dist/provider/store.js +95 -0
- package/dist/provider/system-keyring.js +214 -0
- package/dist/runtime/active-run.js +63 -0
- package/dist/runtime/agent-tree.js +74 -0
- package/dist/runtime/attachments.js +84 -0
- package/dist/runtime/brokered-executor.js +395 -0
- package/dist/runtime/context-archive.js +69 -0
- package/dist/runtime/context-status.js +76 -0
- package/dist/runtime/create-runtime.js +111 -0
- package/dist/runtime/model-profile.js +361 -0
- package/dist/runtime/output-store.js +137 -0
- package/dist/runtime/provider-attempts.js +185 -0
- package/dist/runtime/replay-buffer.js +153 -0
- package/dist/runtime/repo.js +95 -0
- package/dist/runtime/session-facade.js +135 -0
- package/dist/runtime/session-summary.js +125 -0
- package/dist/runtime/supervisor.js +265 -0
- package/dist/runtime/talos-composition.js +1011 -0
- package/dist/runtime/types.js +5 -0
- package/dist/runtime/usage-snapshot.js +82 -0
- package/dist/security/auto-classifier.js +38 -0
- package/dist/security/credential-free-environment.js +54 -0
- package/dist/security/evaluate.js +243 -0
- package/dist/security/execution-backends.js +236 -0
- package/dist/security/execution-broker.js +102 -0
- package/dist/security/forge-scan.js +74 -0
- package/dist/security/from-approval.js +39 -0
- package/dist/security/mxc-execution-backend.js +281 -0
- package/dist/security/permission-engine.js +138 -0
- package/dist/security/permission-explanation.js +54 -0
- package/dist/security/persist.js +179 -0
- package/dist/security/plugin-guard.js +230 -0
- package/dist/security/process-tree-evidence-store.js +74 -0
- package/dist/security/process-tree-probe.js +554 -0
- package/dist/security/project-resource-inventory.js +186 -0
- package/dist/security/project-trust-gate.js +38 -0
- package/dist/security/project-trust.js +367 -0
- package/dist/security/rule-parser.js +201 -0
- package/dist/security/shell-segmentation.js +68 -0
- package/dist/security/trust-authority.js +324 -0
- package/dist/security/types.js +1 -0
- package/dist/security/workspace-identity.js +102 -0
- package/dist/services/automation-facade.js +59 -0
- package/dist/services/forge-facade.js +77 -0
- package/dist/services/hook-facade.js +240 -0
- package/dist/services/index.js +16 -0
- package/dist/services/library-facade.js +174 -0
- package/dist/services/mcp-facade.js +348 -0
- package/dist/services/memory-facade.js +126 -0
- package/dist/services/notes-facade.js +157 -0
- package/dist/services/plugin-facade.js +308 -0
- package/dist/services/research-facade.js +110 -0
- package/dist/services/task-board-facade.js +236 -0
- package/dist/services/workflow-catalog.js +246 -0
- package/dist/sessions/export-format.js +98 -0
- package/dist/sessions/metadata-store.js +160 -0
- package/dist/sessions/share.js +122 -0
- package/dist/sessions/transfer.js +16 -0
- package/dist/subcommands.js +62 -0
- package/dist/tui/agent-roster.js +36 -0
- package/dist/tui/agent-view.js +51 -0
- package/dist/tui/app.js +4098 -0
- package/dist/tui/approval.js +36 -0
- package/dist/tui/boot/boot-sequence.js +76 -0
- package/dist/tui/boot/cinematic.js +243 -0
- package/dist/tui/boot/desktop-logo.js +82 -0
- package/dist/tui/boot.js +3 -0
- package/dist/tui/busy-input.js +58 -0
- package/dist/tui/catalog-service.js +560 -0
- package/dist/tui/components/assistant-stream.js +1 -0
- package/dist/tui/components/command-menu.js +68 -0
- package/dist/tui/components/composer.js +219 -0
- package/dist/tui/components/diff.js +35 -0
- package/dist/tui/components/footer.js +48 -0
- package/dist/tui/components/header.js +6 -0
- package/dist/tui/components/markdown.js +305 -0
- package/dist/tui/components/status-indicator.js +38 -0
- package/dist/tui/components/terminal-shell.js +214 -0
- package/dist/tui/components/thinking-row.js +19 -0
- package/dist/tui/components/tool-row.js +97 -0
- package/dist/tui/components/transcript-virtualizer.js +165 -0
- package/dist/tui/components/transcript.js +43 -0
- package/dist/tui/descendant-approvals.js +104 -0
- package/dist/tui/diff-model.js +77 -0
- package/dist/tui/editor-history.js +21 -0
- package/dist/tui/editor.js +210 -0
- package/dist/tui/event-adapter.js +436 -0
- package/dist/tui/exit-output.js +58 -0
- package/dist/tui/external-editor.js +53 -0
- package/dist/tui/file-completion.js +89 -0
- package/dist/tui/focus-manager.js +5 -0
- package/dist/tui/highlight.js +30 -0
- package/dist/tui/input-router.js +18 -0
- package/dist/tui/interrupt.js +99 -0
- package/dist/tui/keybindings.js +194 -0
- package/dist/tui/keymap-resolver.js +91 -0
- package/dist/tui/launch-state.js +148 -0
- package/dist/tui/line-diff.js +57 -0
- package/dist/tui/live-activity.js +56 -0
- package/dist/tui/metrics.js +123 -0
- package/dist/tui/onboarding.js +36 -0
- package/dist/tui/overlays/agent-tree.js +43 -0
- package/dist/tui/overlays/approval-dialog.js +642 -0
- package/dist/tui/overlays/automation-center.js +51 -0
- package/dist/tui/overlays/checkpoint-picker.js +47 -0
- package/dist/tui/overlays/context-inspector.js +36 -0
- package/dist/tui/overlays/effort-line.js +110 -0
- package/dist/tui/overlays/forge-center.js +46 -0
- package/dist/tui/overlays/help-dialog.js +16 -0
- package/dist/tui/overlays/history-picker.js +37 -0
- package/dist/tui/overlays/hook-center.js +70 -0
- package/dist/tui/overlays/library-center.js +55 -0
- package/dist/tui/overlays/mcp-center.js +60 -0
- package/dist/tui/overlays/memory-center.js +63 -0
- package/dist/tui/overlays/model-picker.js +77 -0
- package/dist/tui/overlays/notes-center.js +53 -0
- package/dist/tui/overlays/overlay-host.js +8 -0
- package/dist/tui/overlays/plugin-center.js +76 -0
- package/dist/tui/overlays/provider-picker.js +171 -0
- package/dist/tui/overlays/queue-editor.js +32 -0
- package/dist/tui/overlays/research-center.js +59 -0
- package/dist/tui/overlays/scroll-window.js +234 -0
- package/dist/tui/overlays/session-picker.js +115 -0
- package/dist/tui/overlays/tasks-center.js +83 -0
- package/dist/tui/overlays/theme-picker.js +21 -0
- package/dist/tui/overlays/transcript-search.js +58 -0
- package/dist/tui/overlays/trust-center.js +29 -0
- package/dist/tui/overlays/workflow-center.js +46 -0
- package/dist/tui/project-file-index.js +214 -0
- package/dist/tui/project-references.js +85 -0
- package/dist/tui/project-trust-prompt.js +289 -0
- package/dist/tui/prompt-history-store.js +116 -0
- package/dist/tui/queue-store.js +110 -0
- package/dist/tui/regions/budget.js +59 -0
- package/dist/tui/regions/views.js +96 -0
- package/dist/tui/render-coordinator.js +148 -0
- package/dist/tui/render-scheduler.js +4 -0
- package/dist/tui/run.js +69 -0
- package/dist/tui/selection-list.js +29 -0
- package/dist/tui/session-controller.js +791 -0
- package/dist/tui/session-export.js +54 -0
- package/dist/tui/setup-wizard.js +46 -0
- package/dist/tui/shell-input.js +35 -0
- package/dist/tui/shell-layout.js +48 -0
- package/dist/tui/shell-model.js +98 -0
- package/dist/tui/slash-commands.js +82 -0
- package/dist/tui/state.js +151 -0
- package/dist/tui/status-bar.js +125 -0
- package/dist/tui/status-view.js +40 -0
- package/dist/tui/terminal-capabilities.js +9 -0
- package/dist/tui/terminal-session.js +11 -0
- package/dist/tui/text-width.js +66 -0
- package/dist/tui/theme-catalog.js +27 -0
- package/dist/tui/theme-store.js +23 -0
- package/dist/tui/theme.js +23 -0
- package/dist/tui/tool-display.js +135 -0
- package/dist/tui/tool-facts.js +1 -0
- package/dist/tui/tools/bash-renderer.js +32 -0
- package/dist/tui/tools/change.js +61 -0
- package/dist/tui/tools/edit-renderer.js +17 -0
- package/dist/tui/tools/generic-renderer.js +13 -0
- package/dist/tui/tools/list-renderer.js +14 -0
- package/dist/tui/tools/read-renderer.js +13 -0
- package/dist/tui/tools/registry.js +20 -0
- package/dist/tui/tools/row-format.js +187 -0
- package/dist/tui/tools/search-renderer.js +38 -0
- package/dist/tui/tools/shared.js +97 -0
- package/dist/tui/tools/write-renderer.js +15 -0
- package/dist/tui/transcript-model.js +441 -0
- package/dist/tui/ui-preferences.js +79 -0
- package/dist/tui/usage-view.js +77 -0
- package/dist/tui/vim-mode.js +99 -0
- package/dist/update/check.js +15 -0
- package/dist/update/npm.js +51 -0
- package/dist/update/run.js +129 -0
- package/dist/version.js +2 -0
- package/dist/workspace/checkpoint-store.js +210 -0
- package/dist/workspace/checkpoint.js +413 -0
- package/dist/workspace/restore.js +232 -0
- package/package.json +64 -5
- package/vendor/context-engine/package.json +11 -0
- package/vendor/context-engine/src/compaction-planner.mjs +57 -0
- package/vendor/context-engine/src/contracts.mjs +48 -0
- package/vendor/context-engine/src/engine.mjs +445 -0
- package/vendor/context-engine/src/node/context-export.mjs +164 -0
- package/vendor/context-engine/src/node/legacy-import.mjs +92 -0
- package/vendor/context-engine/src/node/migrations/001-context.sql +126 -0
- package/vendor/context-engine/src/node/sqlite-store.mjs +85 -0
- package/vendor/context-engine/src/node/sqlite-worker.mjs +559 -0
- package/vendor/context-engine/src/profiles.mjs +10 -0
- package/vendor/context-engine/src/retrieval.mjs +104 -0
- package/vendor/context-engine/src/summary.mjs +97 -0
- package/vendor/context-engine/src/usage.mjs +34 -0
- package/vendor/harness-ui/package.json +38 -0
- package/vendor/harness-ui/src/acp-agent.mjs +350 -0
- package/vendor/harness-ui/src/agent-service.mjs +2188 -0
- package/vendor/harness-ui/src/agui-events.mjs +452 -0
- package/vendor/harness-ui/src/ambiente-solo-server.mjs +121 -0
- package/vendor/harness-ui/src/artifact-store.mjs +39 -0
- package/vendor/harness-ui/src/assistenza.mjs +123 -0
- package/vendor/harness-ui/src/automation-scheduler.mjs +69 -0
- package/vendor/harness-ui/src/automation-store.mjs +145 -0
- package/vendor/harness-ui/src/browser-annota.mjs +639 -0
- package/vendor/harness-ui/src/browser-frame.mjs +211 -0
- package/vendor/harness-ui/src/browser-proxy-universale.mjs +519 -0
- package/vendor/harness-ui/src/browser-proxy.mjs +87 -0
- package/vendor/harness-ui/src/browser-sessione-viva.mjs +329 -0
- package/vendor/harness-ui/src/browser-stream.mjs +445 -0
- package/vendor/harness-ui/src/browser-vivo.mjs +694 -0
- package/vendor/harness-ui/src/chat-image-attachments.mjs +72 -0
- package/vendor/harness-ui/src/config.mjs +697 -0
- package/vendor/harness-ui/src/contesto-del-progetto.mjs +385 -0
- package/vendor/harness-ui/src/context-asset-adapter.mjs +72 -0
- package/vendor/harness-ui/src/context-desktop-service.mjs +253 -0
- package/vendor/harness-ui/src/context-embedding-runtime.mjs +252 -0
- package/vendor/harness-ui/src/context-inference-scheduler.mjs +81 -0
- package/vendor/harness-ui/src/context-native-compaction.mjs +75 -0
- package/vendor/harness-ui/src/context-provider-adapter.mjs +141 -0
- package/vendor/harness-ui/src/context-runtime.mjs +118 -0
- package/vendor/harness-ui/src/context-token-counters.mjs +184 -0
- package/vendor/harness-ui/src/context-tool-catalog.mjs +86 -0
- package/vendor/harness-ui/src/context-tool-output.mjs +72 -0
- package/vendor/harness-ui/src/costo-elenco.mjs +252 -0
- package/vendor/harness-ui/src/custom-task.mjs +171 -0
- package/vendor/harness-ui/src/doctor.mjs +142 -0
- package/vendor/harness-ui/src/document-filename.mjs +97 -0
- package/vendor/harness-ui/src/document-generator.mjs +493 -0
- package/vendor/harness-ui/src/document-report.mjs +331 -0
- package/vendor/harness-ui/src/duckduckgo-search.mjs +155 -0
- package/vendor/harness-ui/src/elenco-profondo.mjs +337 -0
- package/vendor/harness-ui/src/favicon-proxy.mjs +113 -0
- package/vendor/harness-ui/src/forge-contract.mjs +221 -0
- package/vendor/harness-ui/src/frequent-dirs.mjs +134 -0
- package/vendor/harness-ui/src/generated-image-store.mjs +147 -0
- package/vendor/harness-ui/src/generation-idle.mjs +332 -0
- package/vendor/harness-ui/src/gguf-header.mjs +207 -0
- package/vendor/harness-ui/src/git-service.mjs +626 -0
- package/vendor/harness-ui/src/gitignore-elenco.mjs +604 -0
- package/vendor/harness-ui/src/harness-receipt-keypair.mjs +207 -0
- package/vendor/harness-ui/src/hf-direct-transfer.mjs +170 -0
- package/vendor/harness-ui/src/hf-hub-client.mjs +106 -0
- package/vendor/harness-ui/src/hf-image-proxy.mjs +105 -0
- package/vendor/harness-ui/src/hf-model-transfer.mjs +245 -0
- package/vendor/harness-ui/src/hook-registry.mjs +186 -0
- package/vendor/harness-ui/src/http-app.mjs +6259 -0
- package/vendor/harness-ui/src/http-lifecycle.mjs +132 -0
- package/vendor/harness-ui/src/id-archivio.mjs +27 -0
- package/vendor/harness-ui/src/image-generator.mjs +143 -0
- package/vendor/harness-ui/src/istruzioni-di-progetto.mjs +234 -0
- package/vendor/harness-ui/src/kernel/dist/kernelPerIlBanco.js +518 -0
- package/vendor/harness-ui/src/kernel/talosHarness.mjs +10437 -0
- package/vendor/harness-ui/src/library-policy-store.mjs +175 -0
- package/vendor/harness-ui/src/library-store.mjs +652 -0
- package/vendor/harness-ui/src/llama-server-supervisor.mjs +629 -0
- package/vendor/harness-ui/src/local-model-store.mjs +339 -0
- package/vendor/harness-ui/src/local-runtime-contract.mjs +66 -0
- package/vendor/harness-ui/src/local-runtime-events.mjs +44 -0
- package/vendor/harness-ui/src/local-runtime-llama-server.mjs +244 -0
- package/vendor/harness-ui/src/local-runtime-probe.mjs +401 -0
- package/vendor/harness-ui/src/machine-capacity.mjs +66 -0
- package/vendor/harness-ui/src/mappa-cartelle.mjs +491 -0
- package/vendor/harness-ui/src/mcp-client.mjs +98 -0
- package/vendor/harness-ui/src/mcp-registry.mjs +157 -0
- package/vendor/harness-ui/src/mcp-session.mjs +177 -0
- package/vendor/harness-ui/src/memory-store.mjs +227 -0
- package/vendor/harness-ui/src/model-catalog-models-dev.mjs +276 -0
- package/vendor/harness-ui/src/model-catalog.mjs +129 -0
- package/vendor/harness-ui/src/model-destination.mjs +189 -0
- package/vendor/harness-ui/src/modifica-ancorata.mjs +177 -0
- package/vendor/harness-ui/src/native-provider-adapter.mjs +205 -0
- package/vendor/harness-ui/src/notes-store.mjs +250 -0
- package/vendor/harness-ui/src/openai-compatible-runtime.mjs +428 -0
- package/vendor/harness-ui/src/openrouter-oauth.mjs +339 -0
- package/vendor/harness-ui/src/path-policy.mjs +442 -0
- package/vendor/harness-ui/src/plugin-registry.mjs +780 -0
- package/vendor/harness-ui/src/plugin-session.mjs +180 -0
- package/vendor/harness-ui/src/process-policy.mjs +345 -0
- package/vendor/harness-ui/src/prompt-enhancer-provider.mjs +94 -0
- package/vendor/harness-ui/src/provider-auth-cloud.mjs +95 -0
- package/vendor/harness-ui/src/provider-credential-store.mjs +541 -0
- package/vendor/harness-ui/src/provider-probe.mjs +582 -0
- package/vendor/harness-ui/src/provider-registry.mjs +1633 -0
- package/vendor/harness-ui/src/pty-terminal.mjs +312 -0
- package/vendor/harness-ui/src/public-problem.mjs +109 -0
- package/vendor/harness-ui/src/research/card.mjs +235 -0
- package/vendor/harness-ui/src/research/citations.mjs +142 -0
- package/vendor/harness-ui/src/research/collector.mjs +275 -0
- package/vendor/harness-ui/src/research/deposito-a-pezzi.mjs +139 -0
- package/vendor/harness-ui/src/research/dossier.mjs +114 -0
- package/vendor/harness-ui/src/research/esportazioni.mjs +560 -0
- package/vendor/harness-ui/src/research/fetch-cache.mjs +465 -0
- package/vendor/harness-ui/src/research/fidelity.mjs +122 -0
- package/vendor/harness-ui/src/research/independence.mjs +159 -0
- package/vendor/harness-ui/src/research/ledger.mjs +166 -0
- package/vendor/harness-ui/src/research/markdown-server.mjs +565 -0
- package/vendor/harness-ui/src/research/narration.mjs +181 -0
- package/vendor/harness-ui/src/research/open-cards.mjs +131 -0
- package/vendor/harness-ui/src/research/opposing.mjs +305 -0
- package/vendor/harness-ui/src/research/outline.mjs +111 -0
- package/vendor/harness-ui/src/research/page-budget.mjs +209 -0
- package/vendor/harness-ui/src/research/pdf.mjs +291 -0
- package/vendor/harness-ui/src/research/plan.mjs +301 -0
- package/vendor/harness-ui/src/research/raccolta-viva.mjs +452 -0
- package/vendor/harness-ui/src/research/recheck-document.mjs +69 -0
- package/vendor/harness-ui/src/research/recheck-history.mjs +192 -0
- package/vendor/harness-ui/src/research/recheck.mjs +194 -0
- package/vendor/harness-ui/src/research/report.mjs +203 -0
- package/vendor/harness-ui/src/research/run.mjs +527 -0
- package/vendor/harness-ui/src/research/synthesis.mjs +318 -0
- package/vendor/harness-ui/src/research/verification.mjs +572 -0
- package/vendor/harness-ui/src/research-orchestrator.mjs +2679 -0
- package/vendor/harness-ui/src/research-store.mjs +1133 -0
- package/vendor/harness-ui/src/runtime-build-manifest.mjs +26 -0
- package/vendor/harness-ui/src/runtime-contract.mjs +59 -0
- package/vendor/harness-ui/src/runtime-owner-adapter.mjs +1348 -0
- package/vendor/harness-ui/src/runtime-owner-contract.mjs +32 -0
- package/vendor/harness-ui/src/scheda-di-lavoro.mjs +249 -0
- package/vendor/harness-ui/src/search-source-store.mjs +172 -0
- package/vendor/harness-ui/src/session-registry.mjs +6095 -0
- package/vendor/harness-ui/src/session-store.mjs +220 -0
- package/vendor/harness-ui/src/sessione-pronta.mjs +73 -0
- package/vendor/harness-ui/src/setup-stato.mjs +31 -0
- package/vendor/harness-ui/src/sezioni-istruzioni.mjs +204 -0
- package/vendor/harness-ui/src/skill-registry.mjs +120 -0
- package/vendor/harness-ui/src/sse-replay-coalescente.mjs +0 -0
- package/vendor/harness-ui/src/static-files.mjs +96 -0
- package/vendor/harness-ui/src/stream-partition.mjs +123 -0
- package/vendor/harness-ui/src/subagent-orchestrator.mjs +453 -0
- package/vendor/harness-ui/src/task-catalog.mjs +65 -0
- package/vendor/harness-ui/src/tasks-store.mjs +220 -0
- package/vendor/harness-ui/src/terminal-registry.mjs +312 -0
- package/vendor/harness-ui/src/terminal-ws.mjs +170 -0
- package/vendor/harness-ui/src/tool-forge-store.mjs +299 -0
- package/vendor/harness-ui/src/tool-schema-normalize.mjs +100 -0
- package/vendor/harness-ui/src/usage-cache.mjs +315 -0
- package/vendor/harness-ui/src/workspace-browser.mjs +213 -0
- package/vendor/harness-ui/src/workspace-context.mjs +124 -0
- package/vendor/harness-ui/src/workspace-disk.mjs +62 -0
- package/vendor/harness-ui/src/workspace-files.mjs +589 -0
- package/vendor/harness-ui/src/workspace-info.mjs +189 -0
- package/vendor/harness-ui/src/workspace-launch-store.mjs +150 -0
- package/vendor/harness-ui/src/workspace-tree.mjs +67 -0
- package/vendor/harness-ui/src/workspace-watcher.mjs +161 -0
- package/vendor/manifest.json +170 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* library-policy-store.mjs — FASE N (29/8), il tool `library_context_policy_update`
|
|
3
|
+
* (l'8° e ultimo tool mobile della Libreria). Owner: "procedi con la
|
|
4
|
+
* prima [voce di 'cosa manca'] e ricordati la ricerca" — letto per
|
|
5
|
+
* intero `libraryContextPolicyTools.ts`/`libraryPolicy.ts` (mobile),
|
|
6
|
+
* non presunto, dopo averlo inizialmente deferito senza leggerlo.
|
|
7
|
+
*
|
|
8
|
+
* ⛔⛔⛔ Cosa governa DAVVERO questo tool, verificato alla fonte: quale
|
|
9
|
+
* delle QUATTRO modalità di iniezione automatica del contenuto
|
|
10
|
+
* Libreria nel contesto è attiva — `broad_compat_v1` (inietta
|
|
11
|
+
* ampiamente), `smart_relevant_v1` (inietta solo il rilevante),
|
|
12
|
+
* `ask_before_use_v1` (chiede consenso prima), `agentic_on_demand_v1`
|
|
13
|
+
* (MAI iniettato d'ufficio — solo `library_search`/`library_read`
|
|
14
|
+
* chiamati esplicitamente dal modello). Il desktop, per OGNI tipo di
|
|
15
|
+
* contenuto dinamico (MCP/skill/plugin/Libreria), ha costruito SOLO
|
|
16
|
+
* l'ultima — nessuna iniezione automatica esiste da nessuna parte nel
|
|
17
|
+
* kernel o nel backend. ⇒ `mode` su questo harness ha UN SOLO valore
|
|
18
|
+
* possibile oggi: tentare le altre tre torna un rifiuto onesto, non
|
|
19
|
+
* un no-op silenzioso — mai un tool che finge di poter fare qualcosa
|
|
20
|
+
* che non può.
|
|
21
|
+
*
|
|
22
|
+
* `enabled`/`included`/`excluded_file_ids` restano invece
|
|
23
|
+
* GENUINAMENTE utili anche sotto l'unica modalità che esiste:
|
|
24
|
+
* `enabled:false` è un interruttore reale ("il modello non vede più
|
|
25
|
+
* la Libreria di questo progetto", verificato dai 4 tool di lettura
|
|
26
|
+
* che leggono questa politica prima di rispondere) — non un campo
|
|
27
|
+
* morto in attesa di un'infrastruttura futura.
|
|
28
|
+
*
|
|
29
|
+
* Storage per-progetto, dentro `.harness-ui-library/` (stessa cartella
|
|
30
|
+
* delle voci — è la POLITICA di QUELLA Libreria, non una preferenza
|
|
31
|
+
* globale del server): `.harness-ui-library/policy.json`.
|
|
32
|
+
*
|
|
33
|
+
* ⛔ Un solo scope, non i tre di mobile (`global`/`chat`/`turn`): quella
|
|
34
|
+
* gerarchia esiste sul mobile perché l'iniezione automatica avviene
|
|
35
|
+
* PER TURNO e serve un modo di scavalcarla per un turno solo — un
|
|
36
|
+
* meccanismo che qui non c'è. Un solo livello per-progetto è la
|
|
37
|
+
* semplificazione onesta, non un taglio: non c'è nient'altro da
|
|
38
|
+
* scavalcare.
|
|
39
|
+
*/
|
|
40
|
+
import { promises as fsp } from 'node:fs';
|
|
41
|
+
import { join } from 'node:path';
|
|
42
|
+
import { randomUUID } from 'node:crypto';
|
|
43
|
+
|
|
44
|
+
import { CARTELLA_LIBRERIA } from './library-store.mjs';
|
|
45
|
+
|
|
46
|
+
export class LibraryPolicyError extends Error {
|
|
47
|
+
constructor(message, code = 'LIBRARY_POLICY_INVALID') {
|
|
48
|
+
super(message);
|
|
49
|
+
this.name = 'LibraryPolicyError';
|
|
50
|
+
this.code = code;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export class LibraryPolicyConflictError extends Error {
|
|
55
|
+
constructor(revisioneAttesa, revisioneAttuale) {
|
|
56
|
+
super(`Library policy changed before this update (expected revision ${revisioneAttesa}, current revision ${revisioneAttuale}).`);
|
|
57
|
+
this.name = 'LibraryPolicyConflictError';
|
|
58
|
+
this.code = 'LIBRARY_POLICY_CONFLICT';
|
|
59
|
+
this.revisioneAttesa = revisioneAttesa;
|
|
60
|
+
this.revisioneAttuale = revisioneAttuale;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const NOME_FILE_POLITICA = 'policy.json';
|
|
65
|
+
// ⛔ L'UNICA modalità che questo harness implementa davvero — vedi la doc del modulo sul perché. Elencata comunque per intero: il tool deve poter dire "chiesto X, supportato solo Y", mai fingere che X non esista come concetto.
|
|
66
|
+
export const MODALITA_SUPPORTATE = Object.freeze(['agentic_on_demand_v1']);
|
|
67
|
+
export const MODALITA_CONOSCIUTE = Object.freeze(['broad_compat_v1', 'smart_relevant_v1', 'ask_before_use_v1', 'agentic_on_demand_v1']);
|
|
68
|
+
const MAX_RICEVUTE = 32;
|
|
69
|
+
|
|
70
|
+
function politicaDefault() {
|
|
71
|
+
return { revision: 0, enabled: true, mode: 'agentic_on_demand_v1', includedFileIds: [], excludedFileIds: [] };
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function normalizzaListaId(valori) {
|
|
75
|
+
return [...new Set((Array.isArray(valori) ? valori : []).map((v) => String(v).trim()).filter(Boolean))].slice(0, 64);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Legge la politica corrente — `.harness-ui-library/policy.json`
|
|
80
|
+
* assente è uno stato VALIDO (il default: abilitata, l'unica modalità
|
|
81
|
+
* esistente, nessun override), mai un errore. Un file presente ma
|
|
82
|
+
* malformato FERMA la lettura con un errore dichiarato — stesso
|
|
83
|
+
* principio "gli stati sono tre" di `library-store.mjs`.
|
|
84
|
+
*/
|
|
85
|
+
export async function leggiPolitica({ cartella }, deps = {}) {
|
|
86
|
+
const readFileFn = deps.readFileFn ?? fsp.readFile;
|
|
87
|
+
const percorso = join(cartella, CARTELLA_LIBRERIA, NOME_FILE_POLITICA);
|
|
88
|
+
let testo;
|
|
89
|
+
try {
|
|
90
|
+
testo = await readFileFn(percorso, 'utf8');
|
|
91
|
+
} catch (errore) {
|
|
92
|
+
if (errore?.code === 'ENOENT') return politicaDefault();
|
|
93
|
+
throw new LibraryPolicyError(`Impossibile leggere ${NOME_FILE_POLITICA}: ${errore.message}`, 'LIBRARY_POLICY_READ_FAILED');
|
|
94
|
+
}
|
|
95
|
+
let politica;
|
|
96
|
+
try {
|
|
97
|
+
politica = JSON.parse(testo);
|
|
98
|
+
} catch {
|
|
99
|
+
throw new LibraryPolicyError(`${NOME_FILE_POLITICA} non è JSON valido`, 'LIBRARY_POLICY_MALFORMED');
|
|
100
|
+
}
|
|
101
|
+
if (!Number.isSafeInteger(politica.revision) || politica.revision < 0) {
|
|
102
|
+
throw new LibraryPolicyError(`${NOME_FILE_POLITICA} ha una "revision" non valida`, 'LIBRARY_POLICY_MALFORMED');
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
revision: politica.revision,
|
|
106
|
+
enabled: typeof politica.enabled === 'boolean' ? politica.enabled : true,
|
|
107
|
+
mode: MODALITA_CONOSCIUTE.includes(politica.mode) ? politica.mode : 'agentic_on_demand_v1',
|
|
108
|
+
includedFileIds: normalizzaListaId(politica.includedFileIds),
|
|
109
|
+
excludedFileIds: normalizzaListaId(politica.excludedFileIds),
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Scrive una nuova politica — concorrenza ottimistica: `revisioneAttesa`
|
|
115
|
+
* deve combaciare con la revisione VERA sul disco in questo istante,
|
|
116
|
+
* altrimenti `LibraryPolicyConflictError` (mai una scrittura silenziosa
|
|
117
|
+
* su un cambiamento nel frattempo — porto diretto del contratto mobile,
|
|
118
|
+
* `TalosLibraryPolicyConflictError`).
|
|
119
|
+
*/
|
|
120
|
+
export async function scriviPolitica({ cartella, valore, revisioneAttesa }, deps = {}) {
|
|
121
|
+
const readFileFn = deps.readFileFn ?? fsp.readFile;
|
|
122
|
+
const mkdirFn = deps.mkdirFn ?? fsp.mkdir;
|
|
123
|
+
const writeFileFn = deps.writeFileFn ?? fsp.writeFile;
|
|
124
|
+
const attuale = await leggiPolitica({ cartella }, { readFileFn });
|
|
125
|
+
if (attuale.revision !== revisioneAttesa) {
|
|
126
|
+
throw new LibraryPolicyConflictError(revisioneAttesa, attuale.revision);
|
|
127
|
+
}
|
|
128
|
+
const cartellaLibreria = join(cartella, CARTELLA_LIBRERIA);
|
|
129
|
+
await mkdirFn(cartellaLibreria, { recursive: true });
|
|
130
|
+
const aggiornata = {
|
|
131
|
+
revision: attuale.revision + 1,
|
|
132
|
+
enabled: typeof valore.enabled === 'boolean' ? valore.enabled : attuale.enabled,
|
|
133
|
+
mode: valore.mode ?? attuale.mode,
|
|
134
|
+
includedFileIds: normalizzaListaId(valore.includedFileIds ?? attuale.includedFileIds),
|
|
135
|
+
excludedFileIds: normalizzaListaId(valore.excludedFileIds ?? attuale.excludedFileIds),
|
|
136
|
+
aggiornatoIl: new Date().toISOString(),
|
|
137
|
+
};
|
|
138
|
+
await writeFileFn(join(cartellaLibreria, NOME_FILE_POLITICA), JSON.stringify(aggiornata, null, 2), 'utf8');
|
|
139
|
+
return aggiornata;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Una Map nuova per sessione — stessa vita di `creaCursoriLibreria`
|
|
144
|
+
* (un'istanza per run, un `receipt_id` non sopravvive a un resume:
|
|
145
|
+
* `undo` con un id di un run precedente torna onestamente "non
|
|
146
|
+
* trovato", mai un crash — mobile stesso lo prevede come esito
|
|
147
|
+
* normale, "missing, expired, already used").
|
|
148
|
+
*/
|
|
149
|
+
export function creaRicevutePolitica() {
|
|
150
|
+
return new Map();
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/** Ricorda una ricevuta di undo — FIFO, tetto MAX_RICEVUTE, stesso schema di eviction di `impaginaVoci`/mobile. */
|
|
154
|
+
export function ricordaRicevutaPolitica(ricevute, ricevuta) {
|
|
155
|
+
ricevute.delete(ricevuta.receiptId);
|
|
156
|
+
ricevute.set(ricevuta.receiptId, ricevuta);
|
|
157
|
+
while (ricevute.size > MAX_RICEVUTE) {
|
|
158
|
+
const piuVecchia = ricevute.keys().next().value;
|
|
159
|
+
if (piuVecchia === undefined) break;
|
|
160
|
+
ricevute.delete(piuVecchia);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/** Costruisce una ricevuta pronta per `ricordaRicevutaPolitica` — id nuovo generato qui, mai passato dal chiamante. */
|
|
165
|
+
export function creaRicevutaPolitica({ azione, prima, revisionePrima, revisioneDopo }, deps = {}) {
|
|
166
|
+
const randomUUIDFn = deps.randomUUIDFn ?? randomUUID;
|
|
167
|
+
return {
|
|
168
|
+
receiptId: `libpol-${randomUUIDFn()}`,
|
|
169
|
+
azione,
|
|
170
|
+
prima,
|
|
171
|
+
revisionePrima,
|
|
172
|
+
revisioneDopo,
|
|
173
|
+
creatoIl: new Date().toISOString(),
|
|
174
|
+
};
|
|
175
|
+
}
|