@vascend/talos 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/README.md +37 -12
- package/dist/core/agent.d.ts +16 -3
- package/dist/core/agent.js +170 -70
- package/dist/core/background.d.ts +10 -3
- package/dist/core/background.js +55 -9
- package/dist/core/bootstrap.js +1 -0
- package/dist/core/compaction.js +1 -1
- package/dist/core/config-storage.d.ts +5 -0
- package/dist/core/config-storage.js +83 -0
- package/dist/core/config.d.ts +11 -2
- package/dist/core/config.js +24 -8
- package/dist/core/context-ledger.js +2 -1
- package/dist/core/context-policy.d.ts +1 -1
- package/dist/core/context-policy.js +10 -7
- package/dist/core/credentials.js +29 -30
- package/dist/core/effort.d.ts +1 -1
- package/dist/core/effort.js +5 -1
- package/dist/core/execution-guidance.d.ts +1 -1
- package/dist/core/execution-guidance.js +2 -0
- package/dist/core/file-coordination.d.ts +3 -0
- package/dist/core/file-coordination.js +28 -0
- package/dist/core/file-lease-store.d.ts +3 -0
- package/dist/core/file-lease-store.js +28 -12
- package/dist/core/fusion.d.ts +24 -0
- package/dist/core/fusion.js +80 -0
- package/dist/core/model-limits.d.ts +1 -0
- package/dist/core/model-limits.js +5 -1
- package/dist/core/permission-queue.js +15 -15
- package/dist/core/request-plan.js +4 -3
- package/dist/core/session-naming.d.ts +3 -0
- package/dist/core/session-naming.js +47 -0
- package/dist/core/session-usage.js +4 -1
- package/dist/core/session.d.ts +5 -2
- package/dist/core/session.js +22 -7
- package/dist/core/settings.d.ts +2 -0
- package/dist/core/settings.js +5 -16
- package/dist/core/step-policy.d.ts +18 -0
- package/dist/core/step-policy.js +6 -0
- package/dist/core/storage-health.d.ts +24 -0
- package/dist/core/storage-health.js +72 -0
- package/dist/core/tool-artifacts.d.ts +2 -0
- package/dist/core/tool-artifacts.js +21 -3
- package/dist/core/tool-result-index.js +29 -33
- package/dist/core/tool-result-store.js +6 -5
- package/dist/core/types.d.ts +26 -2
- package/dist/core/user-inbox.d.ts +9 -0
- package/dist/core/user-inbox.js +22 -3
- package/dist/core/user-input.js +1 -1
- package/dist/fusion/autopilot-fast.d.ts +59 -0
- package/dist/fusion/autopilot-fast.js +213 -0
- package/dist/fusion/autopilot.d.ts +75 -0
- package/dist/fusion/autopilot.js +308 -0
- package/dist/fusion/focus.d.ts +30 -0
- package/dist/fusion/focus.js +122 -0
- package/dist/fusion/gate.d.ts +30 -0
- package/dist/fusion/gate.js +95 -0
- package/dist/fusion/jev.d.ts +71 -0
- package/dist/fusion/jev.js +164 -0
- package/dist/fusion/receipts.d.ts +25 -0
- package/dist/fusion/receipts.js +34 -0
- package/dist/fusion/route.d.ts +25 -0
- package/dist/fusion/route.js +84 -0
- package/dist/fusion/run.d.ts +4 -0
- package/dist/fusion/run.js +186 -0
- package/dist/horizon/engine.d.ts +20 -1
- package/dist/horizon/engine.js +57 -0
- package/dist/horizon/index.d.ts +2 -2
- package/dist/horizon/index.js +1 -1
- package/dist/horizon/types.d.ts +29 -0
- package/dist/index.js +12 -0
- package/dist/providers/anthropic-oauth.d.ts +8 -3
- package/dist/providers/anthropic-oauth.js +13 -10
- package/dist/providers/anthropic.d.ts +9 -2
- package/dist/providers/anthropic.js +64 -21
- package/dist/providers/cli-models.d.ts +30 -0
- package/dist/providers/cli-models.js +194 -0
- package/dist/providers/model-effort.js +1 -1
- package/dist/providers/openai-oauth.d.ts +8 -3
- package/dist/providers/openai-oauth.js +9 -3
- package/dist/providers/openrouter-manual-fallback.d.ts +3 -1
- package/dist/providers/openrouter-manual-fallback.js +20 -20
- package/dist/providers/registry.js +3 -2
- package/dist/providers/retry.d.ts +3 -0
- package/dist/providers/retry.js +44 -1
- package/dist/remote/cifratura.d.ts +12 -0
- package/dist/remote/cifratura.js +66 -0
- package/dist/remote/index.d.ts +15 -0
- package/dist/remote/index.js +65 -0
- package/dist/remote/relay-client.d.ts +58 -0
- package/dist/remote/relay-client.js +315 -0
- package/dist/remote/sessione-remota.d.ts +60 -0
- package/dist/remote/sessione-remota.js +266 -0
- package/dist/sdk.d.ts +7 -2
- package/dist/sdk.js +3 -1
- package/dist/tools/builtin.js +41 -20
- package/dist/tools/capabilities.d.ts +3 -1
- package/dist/tools/capabilities.js +5 -2
- package/dist/tools/computer-use.js +2 -1
- package/dist/tools/pagination.js +1 -1
- package/dist/tools/program.js +34 -21
- package/dist/tools/team-tools.js +11 -6
- package/dist/tui/account-entry.js +14 -9
- package/dist/tui/agent-label.d.ts +2 -0
- package/dist/tui/agent-label.js +5 -0
- package/dist/tui/agent-sessions-screen.d.ts +35 -0
- package/dist/tui/agent-sessions-screen.js +178 -0
- package/dist/tui/agent-sessions.d.ts +53 -0
- package/dist/tui/agent-sessions.js +236 -0
- package/dist/tui/bottom-input.d.ts +57 -2
- package/dist/tui/bottom-input.js +449 -54
- package/dist/tui/branding.js +8 -4
- package/dist/tui/capability-lists.d.ts +10 -0
- package/dist/tui/capability-lists.js +41 -0
- package/dist/tui/command-output-registry.js +4 -0
- package/dist/tui/command-transcript.d.ts +1 -1
- package/dist/tui/command-transcript.js +17 -21
- package/dist/tui/commands.js +6 -2
- package/dist/tui/compaction-status.d.ts +7 -0
- package/dist/tui/compaction-status.js +39 -0
- package/dist/tui/config-recovery.d.ts +12 -0
- package/dist/tui/config-recovery.js +54 -0
- package/dist/tui/context-meter.d.ts +3 -0
- package/dist/tui/context-meter.js +35 -8
- package/dist/tui/diff.d.ts +9 -0
- package/dist/tui/diff.js +43 -19
- package/dist/tui/fusion-menu.d.ts +5 -0
- package/dist/tui/fusion-menu.js +89 -0
- package/dist/tui/i18n-catalog.js +351 -2
- package/dist/tui/live-command.d.ts +1 -0
- package/dist/tui/live-command.js +9 -0
- package/dist/tui/live-output.d.ts +1 -0
- package/dist/tui/live-output.js +11 -0
- package/dist/tui/logo.js +3 -0
- package/dist/tui/model-details.js +13 -12
- package/dist/tui/model-picker.d.ts +2 -0
- package/dist/tui/model-picker.js +59 -0
- package/dist/tui/model-selection.js +19 -10
- package/dist/tui/native-scrollback.d.ts +2 -1
- package/dist/tui/native-scrollback.js +31 -6
- package/dist/tui/prompt-queue-store.d.ts +1 -0
- package/dist/tui/prompt-queue-store.js +4 -0
- package/dist/tui/prompt-queue.d.ts +3 -0
- package/dist/tui/prompt-queue.js +19 -1
- package/dist/tui/provider-label.d.ts +2 -0
- package/dist/tui/provider-label.js +9 -0
- package/dist/tui/provider-menu.js +25 -24
- package/dist/tui/queue-screen.js +2 -1
- package/dist/tui/queued-questions.js +2 -4
- package/dist/tui/quick-help.d.ts +1 -1
- package/dist/tui/quick-help.js +3 -0
- package/dist/tui/remote-command.d.ts +7 -0
- package/dist/tui/remote-command.js +79 -0
- package/dist/tui/repl.d.ts +11 -2
- package/dist/tui/repl.js +457 -327
- package/dist/tui/review-store.d.ts +8 -1
- package/dist/tui/review-store.js +64 -11
- package/dist/tui/review-team.js +4 -3
- package/dist/tui/runtime-error.d.ts +2 -0
- package/dist/tui/runtime-error.js +26 -0
- package/dist/tui/scrollback-archive.d.ts +16 -0
- package/dist/tui/scrollback-archive.js +90 -0
- package/dist/tui/selector-mouse.d.ts +1 -0
- package/dist/tui/selector-mouse.js +1 -1
- package/dist/tui/selector.d.ts +11 -0
- package/dist/tui/selector.js +28 -4
- package/dist/tui/session-controls.d.ts +26 -0
- package/dist/tui/session-controls.js +65 -0
- package/dist/tui/session-naming-notice.d.ts +14 -0
- package/dist/tui/session-naming-notice.js +59 -0
- package/dist/tui/session-picker.d.ts +2 -0
- package/dist/tui/session-picker.js +32 -0
- package/dist/tui/session-replay.d.ts +1 -0
- package/dist/tui/session-replay.js +101 -32
- package/dist/tui/session-transcript-layout.d.ts +9 -0
- package/dist/tui/session-transcript-layout.js +41 -0
- package/dist/tui/startup.js +63 -33
- package/dist/tui/status-line.d.ts +1 -1
- package/dist/tui/status-line.js +20 -12
- package/dist/tui/storage-warning.d.ts +2 -0
- package/dist/tui/storage-warning.js +35 -0
- package/dist/tui/talos-art-data.d.ts +1 -0
- package/dist/tui/talos-art-data.js +2 -0
- package/dist/tui/talos-art.d.ts +1 -0
- package/dist/tui/talos-art.js +9 -0
- package/dist/tui/task-labels.d.ts +1 -0
- package/dist/tui/task-labels.js +8 -0
- package/dist/tui/terminal-text.d.ts +2 -1
- package/dist/tui/terminal-text.js +28 -2
- package/dist/tui/theme.js +2 -2
- package/dist/tui/tool-presentation.d.ts +3 -0
- package/dist/tui/tool-presentation.js +98 -0
- package/dist/tui/tool-style.js +4 -0
- package/dist/tui/transcript-store.d.ts +25 -0
- package/dist/tui/transcript-store.js +151 -0
- package/dist/tui/usage-footer.d.ts +1 -1
- package/dist/tui/usage-footer.js +3 -1
- package/dist/tui/vascend-id.d.ts +49 -0
- package/dist/tui/vascend-id.js +321 -0
- package/dist/tui/web-login-screen.js +4 -3
- package/dist/tui/web-login.d.ts +7 -15
- package/dist/tui/web-login.js +38 -78
- package/dist/tui/worker-transcripts.d.ts +31 -0
- package/dist/tui/worker-transcripts.js +91 -0
- package/dist/vascend/candidate-collector.d.ts +6 -5
- package/dist/vascend/candidate-collector.js +44 -43
- package/dist/vascend/context-feedback-loop.js +2 -0
- package/dist/vascend/context-lint.js +32 -2
- package/dist/vascend/context-market-selection.js +12 -5
- package/dist/vascend/context-pack-render.js +10 -4
- package/dist/vascend/context-packet-mirrors.d.ts +8 -0
- package/dist/vascend/context-packet-mirrors.js +24 -0
- package/dist/vascend/context-plan-events.d.ts +4 -0
- package/dist/vascend/context-plan-events.js +44 -0
- package/dist/vascend/context-snapshot.d.ts +1 -0
- package/dist/vascend/context-snapshot.js +8 -5
- package/dist/vascend/context-store-reader.d.ts +20 -0
- package/dist/vascend/context-store-reader.js +46 -0
- package/dist/vascend/context-window-compiler.d.ts +1 -0
- package/dist/vascend/context-window-compiler.js +1 -0
- package/dist/vascend/file-lock.d.ts +1 -0
- package/dist/vascend/file-lock.js +26 -0
- package/dist/vascend/granular-kingdom.d.ts +1 -0
- package/dist/vascend/granular-kingdom.js +52 -17
- package/dist/vascend/kingdom-bus.d.ts +1 -0
- package/dist/vascend/kingdom-bus.js +3 -0
- package/dist/vascend/kingdom-channel.d.ts +2 -0
- package/dist/vascend/kingdom-channel.js +3 -0
- package/dist/vascend/kingdom-live.d.ts +32 -4
- package/dist/vascend/kingdom-live.js +149 -13
- package/dist/vascend/kingdom-run.d.ts +5 -1
- package/dist/vascend/kingdom-run.js +6 -2
- package/dist/vascend/kingdom.d.ts +3 -0
- package/dist/vascend/kingdom.js +22 -11
- package/dist/vascend/memory-packet.d.ts +2 -1
- package/dist/vascend/memory-packet.js +31 -44
- package/dist/vascend/memory-store.d.ts +1 -0
- package/dist/vascend/memory-store.js +12 -4
- package/dist/vascend/plan-store.d.ts +3 -1
- package/dist/vascend/plan-store.js +6 -4
- package/dist/vascend/room-memory.d.ts +13 -2
- package/dist/vascend/room-memory.js +48 -6
- package/dist/vascend/runtime.d.ts +3 -11
- package/dist/vascend/runtime.js +11 -123
- package/dist/vascend/session-search.js +2 -0
- package/dist/vascend/team-session.js +3 -2
- package/dist/vascend/vision.d.ts +3 -1
- package/dist/vascend/vision.js +6 -4
- package/dist/vascend/worker-session.d.ts +20 -0
- package/dist/vascend/worker-session.js +83 -0
- package/package.json +2 -2
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// /remote: accende, mostra o spegne il controllo remoto (telefono, web).
|
|
2
|
+
// /remote accende (o mostra il link se e' gia' acceso)
|
|
3
|
+
// /remote status stato del collegamento e dispositivi collegati
|
|
4
|
+
// /remote off chiude la sessione per tutti
|
|
5
|
+
import { copyText } from "./clipboard-text.js";
|
|
6
|
+
import { tr } from "./i18n.js";
|
|
7
|
+
import { leggiSessione } from "./vascend-id.js";
|
|
8
|
+
import { RelayError, avviaRemoto, fermaRemoto, sessioneRemota } from "../remote/index.js";
|
|
9
|
+
function messaggioErrore(e) {
|
|
10
|
+
const code = e instanceof RelayError ? e.code : "rete";
|
|
11
|
+
switch (code) {
|
|
12
|
+
case "piano": return tr("Il controllo remoto è incluso nei piani Pro, Pro Max, Team ed Enterprise.", "Remote control is included in the Pro, Pro Max, Team and Enterprise plans.");
|
|
13
|
+
case "token": return tr("Serve un nuovo accesso per il controllo remoto: esci con /logout e riapri Talos.", "Remote control needs a new sign-in: run /logout and open Talos again.");
|
|
14
|
+
case "troppe_sessioni": return tr("Troppe sessioni remote aperte: chiudine qualcuna e riprova.", "Too many remote sessions open: close some and try again.");
|
|
15
|
+
case "occupato": return tr("Il servizio è occupato: riprova tra poco.", "The service is busy: try again shortly.");
|
|
16
|
+
default: return tr("Servizio del controllo remoto non raggiungibile: controlla la rete e riprova.", "Remote control service unreachable: check the network and try again.");
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function statoLeggibile(stato) {
|
|
20
|
+
switch (stato) {
|
|
21
|
+
case "collegato": return tr("collegato", "connected");
|
|
22
|
+
case "connessione": return tr("in collegamento", "connecting");
|
|
23
|
+
case "attesa": return tr("rete persa, riprovo", "network lost, retrying");
|
|
24
|
+
default: return tr("chiuso", "closed");
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export async function comandoRemoto(args, out, theme, env, cwd, avvisa) {
|
|
28
|
+
const azione = args.trim().toLowerCase();
|
|
29
|
+
const attiva = sessioneRemota();
|
|
30
|
+
if (azione === "off" || azione === "stop") {
|
|
31
|
+
const chiusa = await fermaRemoto();
|
|
32
|
+
out.write(chiusa
|
|
33
|
+
? theme.green(`\n ${tr("Controllo remoto chiuso per tutti i dispositivi.", "Remote control closed on every device.")}\n`)
|
|
34
|
+
: theme.dim(`\n ${tr("Il controllo remoto non è attivo.", "Remote control is not active.")}\n`));
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (azione === "status" || azione === "stato") {
|
|
38
|
+
out.write(attiva
|
|
39
|
+
? `\n ${tr("Controllo remoto: {stato}, dispositivi collegati: {n}", "Remote control: {stato}, connected devices: {n}", { stato: statoLeggibile(attiva.statoRelay()), n: String(attiva.dispositivi()) })}\n`
|
|
40
|
+
: theme.dim(`\n ${tr("Il controllo remoto non è attivo. /remote per accenderlo.", "Remote control is not active. /remote to turn it on.")}\n`));
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (azione && azione !== "on") {
|
|
44
|
+
out.write(theme.yellow(`\n ${tr("Uso: /remote, /remote status, /remote off", "Usage: /remote, /remote status, /remote off")}\n`));
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (!leggiSessione(env)) {
|
|
48
|
+
out.write(theme.yellow(`\n ${tr("Il controllo remoto usa il tuo account Vascend: accedi riaprendo Talos.", "Remote control uses your Vascend account: sign in by opening Talos again.")}\n`));
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
let sessione;
|
|
52
|
+
try {
|
|
53
|
+
sessione = attiva ?? await avviaRemoto(env, cwd, {
|
|
54
|
+
onStato: (stato, motivo) => {
|
|
55
|
+
if (stato === "chiuso")
|
|
56
|
+
avvisa(tr("Controllo remoto chiuso: {motivo}", "Remote control closed: {motivo}", { motivo: motivo ?? statoLeggibile(stato) }));
|
|
57
|
+
else if (stato === "attesa")
|
|
58
|
+
avvisa(tr("Controllo remoto: rete persa, riprovo", "Remote control: network lost, retrying"));
|
|
59
|
+
},
|
|
60
|
+
onPresenza: (n) => avvisa(tr("Controllo remoto: dispositivi collegati: {n}", "Remote control: connected devices: {n}", { n: String(n) })),
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
catch (e) {
|
|
64
|
+
out.write(theme.yellow(`\n ${messaggioErrore(e)}\n`));
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const copiato = await copyText(sessione.link).catch(() => false);
|
|
68
|
+
// Il link va in chat per intero, non in un riquadro che lo spezza.
|
|
69
|
+
const scrivi = out.writeConversation?.bind(out) ?? out.write.bind(out);
|
|
70
|
+
scrivi([
|
|
71
|
+
"",
|
|
72
|
+
` ${theme.green(tr("Controllo remoto attivo", "Remote control on"))}`,
|
|
73
|
+
` ${tr("Apri il link sul telefono, con lo stesso account Vascend:", "Open the link on your phone, with the same Vascend account:")}`,
|
|
74
|
+
` ${sessione.link}`,
|
|
75
|
+
` ${theme.dim(copiato ? tr("Copiato negli appunti. Il link contiene la chiave della sessione: non condividerlo.", "Copied to the clipboard. The link holds the session key: do not share it.") : tr("Il link contiene la chiave della sessione: non condividerlo.", "The link holds the session key: do not share it."))}`,
|
|
76
|
+
` ${theme.dim(tr("/remote status per lo stato, /remote off per chiudere.", "/remote status for the state, /remote off to close."))}`,
|
|
77
|
+
"",
|
|
78
|
+
].join("\n"));
|
|
79
|
+
}
|
package/dist/tui/repl.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ interface ReplDeps {
|
|
|
11
11
|
readonly recoverQueue?: boolean;
|
|
12
12
|
}
|
|
13
13
|
export interface InputControl {
|
|
14
|
+
cyclePermissionMode?(): void;
|
|
14
15
|
writeConversation?(text: string): void;
|
|
15
16
|
clearConversation?(): void;
|
|
16
17
|
replayConversation?(renderer: (columns: number) => string): void;
|
|
@@ -22,12 +23,17 @@ export interface InputControl {
|
|
|
22
23
|
pauseQueuedMessages?(): void;
|
|
23
24
|
readonly review?: ReviewStore;
|
|
24
25
|
showReview?(section?: string): void;
|
|
26
|
+
showAgents?(): void;
|
|
25
27
|
pause(): void;
|
|
26
28
|
resume(): void;
|
|
27
29
|
write(text: string): void;
|
|
28
30
|
replaceTail?(lines: readonly string[], count: number): void;
|
|
29
31
|
refresh?(): void;
|
|
30
32
|
setStatus(label: string | null): void;
|
|
33
|
+
readonly busyCommands?: boolean;
|
|
34
|
+
setCompacting?(active: boolean): void;
|
|
35
|
+
showSessionNaming?(title: string): void;
|
|
36
|
+
setSessionNaming?(phase: "start" | "end", title: string): void;
|
|
31
37
|
setStatusTool?(name: string | null): void;
|
|
32
38
|
setRoomStatus?(label: string | null, state?: "running" | "done" | "failed"): void;
|
|
33
39
|
setLogLine?(index: number, text: string): void;
|
|
@@ -70,9 +76,12 @@ export declare function endActiveTurnInbox(): void;
|
|
|
70
76
|
export declare function deliverToActiveTurn(raw: string, parts?: readonly ContentPart[]): boolean;
|
|
71
77
|
export declare function createSerialReadlineQueue(options: SerialReadlineQueueOptions): SerialReadlineQueue;
|
|
72
78
|
export declare function startRepl(deps: ReplDeps): Promise<void>;
|
|
73
|
-
export
|
|
79
|
+
export type TranscriptControl = Pick<InputControl, "write" | "setStatus" | "setTokens" | "logLength" | "refresh" | "setCompacting" | "setStatusTool" | "setRoomStatus" | "setSessionNaming" | "setLogLine" | "getLogLine" | "acceptQueuedMessage" | "pauseQueuedMessages" | "queueQuestion" | "review">;
|
|
80
|
+
export declare function makeSink(theme: TuiTheme, terminalColumns: () => number, cwd: string, env: NodeJS.ProcessEnv, ctl: TranscriptControl, plan?: {
|
|
74
81
|
sdir: string;
|
|
75
82
|
sid: string;
|
|
76
|
-
}): (event: AgentEvent) => void
|
|
83
|
+
}, replay?: boolean): ((event: AgentEvent) => void) & {
|
|
84
|
+
preview: () => string;
|
|
85
|
+
};
|
|
77
86
|
export declare function gitSummary(command: string): string | null;
|
|
78
87
|
export declare function oneLinePreview(text: string, max: number): string;
|