@vascend/talos 0.1.0 → 0.1.1
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/README.md +7 -3
- package/dist/backend/asset-events.js +9 -9
- package/dist/core/agent.js +3 -3
- package/dist/core/cli-args.js +50 -50
- package/dist/core/cli-installation.d.ts +4 -0
- package/dist/core/cli-installation.js +55 -0
- package/dist/core/compaction.js +26 -26
- package/dist/core/config.js +101 -101
- package/dist/core/execution-guidance.js +21 -21
- package/dist/core/package-update.d.ts +3 -1
- package/dist/core/package-update.js +19 -6
- package/dist/core/self-update.d.ts +1 -1
- package/dist/core/signed-release.d.ts +33 -0
- package/dist/core/signed-release.js +121 -0
- package/dist/core/update-check.d.ts +1 -1
- package/dist/core/update-check.js +15 -14
- package/dist/core/vibe-modes.js +13 -13
- package/dist/distribution/install.d.ts +1 -0
- package/dist/distribution/install.js +31 -0
- package/dist/install.mjs +271 -0
- package/dist/node-runtime.json +13 -0
- package/dist/providers/oauth-callback-server.js +32 -32
- package/dist/tools/capabilities.js +30 -30
- package/dist/tools/computer-capture.js +50 -50
- package/dist/tools/program.js +82 -82
- package/dist/tui/i18n-catalog.js +16 -0
- package/dist/tui/quick-help.js +31 -31
- package/dist/tui/repl.js +5 -5
- package/dist/tui/update-prompt.js +1 -0
- package/dist/vascend/code-events.js +9 -9
- package/dist/vascend/completeness.js +31 -31
- package/dist/vascend/context-fabric.js +16 -16
- package/dist/vascend/contract-memory.js +30 -30
- package/dist/vascend/council.js +82 -82
- package/dist/vascend/decision-promotion.js +23 -23
- package/dist/vascend/granular-kingdom.js +17 -17
- package/dist/vascend/granular-launcher.js +2 -2
- package/dist/vascend/kingdom-kpi.js +19 -19
- package/dist/vascend/kingdom-run.js +6 -6
- package/dist/vascend/kingdom.js +56 -56
- package/dist/vascend/mandate.js +21 -21
- package/dist/vascend/objective-revision.js +34 -34
- package/dist/vascend/patch-plan.js +22 -22
- package/dist/vascend/requirements.js +29 -29
- package/dist/vascend/reviewer.js +26 -26
- package/dist/vascend/room-memory.js +25 -25
- package/dist/vascend/runtime.js +44 -44
- package/dist/vascend/self-improve.js +39 -39
- package/dist/vascend/test-failure-memory.js +9 -9
- package/dist/vascend/vision.js +18 -18
- package/dist/vendor/computer-use/README.md +7 -7
- package/dist/vendor/computer-use/computer-desktop.js +211 -211
- package/dist/vendor/computer-use/computer-observe.js +315 -315
- package/dist/vendor/computer-use/computer-scripts.js +1230 -1230
- package/dist/vendor/computer-use/computer-tools.js +2136 -2136
- package/dist/vendor/computer-use/package.json +1 -1
- package/dist/vendor/computer-use/rac/atomic-input.js +91 -91
- package/dist/vendor/computer-use/rac/grammatica.js +101 -101
- package/dist/vendor/computer-use/rac/parser.js +185 -185
- package/dist/vendor/computer-use/rac/protocol.js +136 -136
- package/install.ps1 +374 -30
- package/install.sh +356 -43
- package/package.json +2 -2
- package/dist/core/kingdoms-mode-state.d.ts +0 -24
- package/dist/core/kingdoms-mode-state.js +0 -139
- package/dist/text-sanitize.js +0 -28
package/README.md
CHANGED
|
@@ -41,18 +41,22 @@ The package includes the compiled CLI and SDK; GitHub access and a local build a
|
|
|
41
41
|
On macOS and Linux, the installer uses a writable user directory:
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
curl -fsSL https://
|
|
44
|
+
curl -fsSL https://vascend.it/install | bash
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
On Windows, run in PowerShell:
|
|
48
48
|
|
|
49
49
|
```powershell
|
|
50
|
-
irm https://
|
|
50
|
+
irm https://vascend.it/install.ps1 | iex
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
Both installers
|
|
53
|
+
Both installers automatically install a verified Node.js LTS runtime with npm when a compatible installation is unavailable. No administrator privileges are needed. Run `talos` to check for newer stable versions;
|
|
54
54
|
the startup prompt shows `current version → new version` and offers **Skip for now** or **Update now**.
|
|
55
55
|
|
|
56
|
+
Talos checks npm for new stable releases, downloads from Vascend with an official npm fallback, and verifies the registry signature and SHA-512 integrity before installing with lifecycle scripts disabled. The initial installer command still trusts the HTTPS site serving the script.
|
|
57
|
+
|
|
58
|
+
The installers add `talos` to your user PATH. On Windows it is available in the current PowerShell window; on Bash/Zsh, open a new terminal or use the activation command printed by the installer. No administrator rights or changes to PowerShell execution policy are required.
|
|
59
|
+
|
|
56
60
|
On first launch, follow the Vascend account sign-in flow. Use `/login` to configure provider access and `/models` to choose a model. Then give Talos a task:
|
|
57
61
|
|
|
58
62
|
```text
|
|
@@ -85,15 +85,15 @@ export function formatAssetEventRecord(room, event) {
|
|
|
85
85
|
}
|
|
86
86
|
const target = event.taskId ? `task:${event.taskId}` : `vision:${asset.visionId}`;
|
|
87
87
|
const rel = `@R: ${room} -> ${type} -> asset:${asset.id} -> ${target} [ ${action} ]`;
|
|
88
|
-
const body = `INDICE
|
|
89
|
-
${uniqTerms.map((t, i) => `${i + 1} = ${t}`).join("\n")}
|
|
90
|
-
|
|
91
|
-
DEFINIZIONI
|
|
92
|
-
${def.join("\n")}
|
|
93
|
-
|
|
94
|
-
RELAZIONI
|
|
95
|
-
${rel}
|
|
96
|
-
|
|
88
|
+
const body = `INDICE
|
|
89
|
+
${uniqTerms.map((t, i) => `${i + 1} = ${t}`).join("\n")}
|
|
90
|
+
|
|
91
|
+
DEFINIZIONI
|
|
92
|
+
${def.join("\n")}
|
|
93
|
+
|
|
94
|
+
RELAZIONI
|
|
95
|
+
${rel}
|
|
96
|
+
|
|
97
97
|
OUTPUT: asset ${asset.id} "${escapeValue(asset.name)}" ${action}${event.taskId ? ` e collegato a ${event.taskId}` : ""}; richiamabile via recall.`;
|
|
98
98
|
return {
|
|
99
99
|
room,
|
package/dist/core/agent.js
CHANGED
|
@@ -1160,9 +1160,9 @@ userInput, sink, signal) {
|
|
|
1160
1160
|
const previous = results[planResultIndex];
|
|
1161
1161
|
results[planResultIndex] = {
|
|
1162
1162
|
...previous,
|
|
1163
|
-
output: `${previous.output}
|
|
1164
|
-
|
|
1165
|
-
[Horizon]
|
|
1163
|
+
output: `${previous.output}
|
|
1164
|
+
|
|
1165
|
+
[Horizon]
|
|
1166
1166
|
Il piano ha ${collaborators.length} filoni `
|
|
1167
1167
|
+ `(${collaborators.map((item) => item.slug).join(", ")}). Decidi TU se ti serve una mano: `
|
|
1168
1168
|
+ "se te ne serve, ingaggia dei collaboratori con team_engage e spiega loro il compito "
|
package/dist/core/cli-args.js
CHANGED
|
@@ -228,55 +228,55 @@ export function parseCliArgs(argv) {
|
|
|
228
228
|
return Object.freeze({ ...args });
|
|
229
229
|
}
|
|
230
230
|
export function cliHelp() {
|
|
231
|
-
return `Horizon - agente Vascend da terminale
|
|
232
|
-
|
|
233
|
-
USO
|
|
234
|
-
horizon [opzioni]
|
|
235
|
-
horizon --print [opzioni] "prompt"
|
|
236
|
-
horizon --rpc [opzioni]
|
|
237
|
-
horizon --doctor
|
|
238
|
-
horizon --work [--work-verify "npm test"] [--work-max N] [--work-minutes N]
|
|
239
|
-
|
|
240
|
-
MODALITA'
|
|
241
|
-
-p, --print esegue un prompt one-shot
|
|
242
|
-
--rpc protocollo JSONL su stdin/stdout
|
|
243
|
-
--doctor diagnostica ambiente (provider, modello, sessioni)
|
|
244
|
-
--json emette AgentEvent JSONL (print/RPC/work) o il report doctor
|
|
245
|
-
|
|
246
|
-
LAVORO AUTONOMO (il ciclo sta fuori dalla conversazione)
|
|
247
|
-
--work prende le unita' dalla coda, una per agente NUOVO
|
|
248
|
-
--work-list mostra la coda (stati, lease, tentativi) e esce
|
|
249
|
-
--work-scope <nome> coda e memoria condivisa del progetto (default: default)
|
|
250
|
-
--work-verify <cmd> comando che decide se un'unita' e' fatta (exit code)
|
|
251
|
-
--work-max <N> quante unita' al massimo in questo giro (default 25)
|
|
252
|
-
--work-minutes <N> smette di rivendicare dopo N minuti
|
|
253
|
-
|
|
254
|
-
MODELLO E CONTESTO
|
|
255
|
-
-m, --model <provider/id> seleziona provider e modello
|
|
256
|
-
-C, --cwd <path> workspace seguito
|
|
257
|
-
--add-dir <path> aggiunge una root allo stesso workspace (ripetibile)
|
|
258
|
-
--vibe <modalita> auto, flow, debug, architect, ui, ship,
|
|
259
|
-
migrate, security, swarm, ultracheck, ...
|
|
260
|
-
--config <path> config esplicita
|
|
261
|
-
--prompt-template <p> directory/file template aggiuntivo (ripetibile)
|
|
262
|
-
--skill <path> skill aggiuntiva (ripetibile)
|
|
263
|
-
--no-skills disabilita discovery skill
|
|
264
|
-
|
|
265
|
-
SESSIONE E SICUREZZA
|
|
266
|
-
-c, --continue riprende l'ultima sessione
|
|
267
|
-
--resume [id] riprende id; senza id apre il picker TUI
|
|
268
|
-
--session-id <id> usa una sessione specifica
|
|
269
|
-
--name <nome> assegna un nome alla sessione
|
|
270
|
-
--approve considera fidate le risorse locali
|
|
271
|
-
--no-approve nega le risorse locali
|
|
272
|
-
--yolo auto-approva i tool (anche in TUI; usare con cautela)
|
|
273
|
-
--exclude-tools <a,b> rimuove tool dal registry
|
|
274
|
-
|
|
275
|
-
ALTRO
|
|
276
|
-
-h, --help mostra questo aiuto
|
|
277
|
-
-V, --version mostra la versione
|
|
278
|
-
-- termina il parsing delle opzioni
|
|
279
|
-
|
|
280
|
-
I flag delle estensioni sono accettati dopo il bootstrap. Per un valore usa
|
|
231
|
+
return `Horizon - agente Vascend da terminale
|
|
232
|
+
|
|
233
|
+
USO
|
|
234
|
+
horizon [opzioni]
|
|
235
|
+
horizon --print [opzioni] "prompt"
|
|
236
|
+
horizon --rpc [opzioni]
|
|
237
|
+
horizon --doctor
|
|
238
|
+
horizon --work [--work-verify "npm test"] [--work-max N] [--work-minutes N]
|
|
239
|
+
|
|
240
|
+
MODALITA'
|
|
241
|
+
-p, --print esegue un prompt one-shot
|
|
242
|
+
--rpc protocollo JSONL su stdin/stdout
|
|
243
|
+
--doctor diagnostica ambiente (provider, modello, sessioni)
|
|
244
|
+
--json emette AgentEvent JSONL (print/RPC/work) o il report doctor
|
|
245
|
+
|
|
246
|
+
LAVORO AUTONOMO (il ciclo sta fuori dalla conversazione)
|
|
247
|
+
--work prende le unita' dalla coda, una per agente NUOVO
|
|
248
|
+
--work-list mostra la coda (stati, lease, tentativi) e esce
|
|
249
|
+
--work-scope <nome> coda e memoria condivisa del progetto (default: default)
|
|
250
|
+
--work-verify <cmd> comando che decide se un'unita' e' fatta (exit code)
|
|
251
|
+
--work-max <N> quante unita' al massimo in questo giro (default 25)
|
|
252
|
+
--work-minutes <N> smette di rivendicare dopo N minuti
|
|
253
|
+
|
|
254
|
+
MODELLO E CONTESTO
|
|
255
|
+
-m, --model <provider/id> seleziona provider e modello
|
|
256
|
+
-C, --cwd <path> workspace seguito
|
|
257
|
+
--add-dir <path> aggiunge una root allo stesso workspace (ripetibile)
|
|
258
|
+
--vibe <modalita> auto, flow, debug, architect, ui, ship,
|
|
259
|
+
migrate, security, swarm, ultracheck, ...
|
|
260
|
+
--config <path> config esplicita
|
|
261
|
+
--prompt-template <p> directory/file template aggiuntivo (ripetibile)
|
|
262
|
+
--skill <path> skill aggiuntiva (ripetibile)
|
|
263
|
+
--no-skills disabilita discovery skill
|
|
264
|
+
|
|
265
|
+
SESSIONE E SICUREZZA
|
|
266
|
+
-c, --continue riprende l'ultima sessione
|
|
267
|
+
--resume [id] riprende id; senza id apre il picker TUI
|
|
268
|
+
--session-id <id> usa una sessione specifica
|
|
269
|
+
--name <nome> assegna un nome alla sessione
|
|
270
|
+
--approve considera fidate le risorse locali
|
|
271
|
+
--no-approve nega le risorse locali
|
|
272
|
+
--yolo auto-approva i tool (anche in TUI; usare con cautela)
|
|
273
|
+
--exclude-tools <a,b> rimuove tool dal registry
|
|
274
|
+
|
|
275
|
+
ALTRO
|
|
276
|
+
-h, --help mostra questo aiuto
|
|
277
|
+
-V, --version mostra la versione
|
|
278
|
+
-- termina il parsing delle opzioni
|
|
279
|
+
|
|
280
|
+
I flag delle estensioni sono accettati dopo il bootstrap. Per un valore usa
|
|
281
281
|
la forma non ambigua --nome=valore.`;
|
|
282
282
|
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function installationPrefix(value: string): string;
|
|
2
|
+
export declare function windowsCliShim(): string;
|
|
3
|
+
/** Verify the actual installed package before reporting success or restarting. */
|
|
4
|
+
export declare function finalizeCliInstallation(root: string, version: string): void;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { existsSync, lstatSync, readFileSync, realpathSync, symlinkSync, unlinkSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { dirname, join, resolve } from "node:path";
|
|
3
|
+
export function installationPrefix(value) {
|
|
4
|
+
const prefix = resolve(value);
|
|
5
|
+
if (/[\x00-\x1f\x7f]/.test(prefix) || prefix.includes(process.platform === "win32" ? ";" : ":")) {
|
|
6
|
+
throw new Error("The installation directory cannot be represented safely in PATH.");
|
|
7
|
+
}
|
|
8
|
+
return prefix;
|
|
9
|
+
}
|
|
10
|
+
export function windowsCliShim() {
|
|
11
|
+
// ASCII-only batch file: %~dp0 preserves Unicode/percent characters in user paths.
|
|
12
|
+
return '@echo off\r\n"%~dp0.talos-runtime\\node.exe" "%~dp0node_modules\\@vascend\\talos\\dist\\index.js" %*\r\n';
|
|
13
|
+
}
|
|
14
|
+
/** Verify the actual installed package before reporting success or restarting. */
|
|
15
|
+
export function finalizeCliInstallation(root, version) {
|
|
16
|
+
const pkg = JSON.parse(readFileSync(join(root, "package.json"), "utf8"));
|
|
17
|
+
if (pkg.name !== "@vascend/talos" || pkg.version !== version)
|
|
18
|
+
throw new Error("Installed Talos version differs from the requested release.");
|
|
19
|
+
if (process.platform !== "win32")
|
|
20
|
+
return;
|
|
21
|
+
const modules = dirname(dirname(root));
|
|
22
|
+
if (dirname(root).split(/[\\/]/).pop() !== "@vascend" || modules.split(/[\\/]/).pop() !== "node_modules")
|
|
23
|
+
return;
|
|
24
|
+
const prefix = dirname(modules);
|
|
25
|
+
const belongsToTalos = (file) => {
|
|
26
|
+
if (!existsSync(file))
|
|
27
|
+
return false;
|
|
28
|
+
const info = lstatSync(file);
|
|
29
|
+
return info.isFile() && !info.isSymbolicLink() && info.size < 16_384
|
|
30
|
+
&& /node_modules[\\/]@vascend[\\/]talos[\\/]dist[\\/]index\.js/i.test(readFileSync(file, "utf8"));
|
|
31
|
+
};
|
|
32
|
+
for (const alias of ["talos", "horizon"]) {
|
|
33
|
+
const cmd = join(prefix, `${alias}.cmd`);
|
|
34
|
+
if (!belongsToTalos(cmd))
|
|
35
|
+
continue;
|
|
36
|
+
// Pin the Node executable selected during installation. An older system Node
|
|
37
|
+
// earlier in PATH must not override the verified runtime we just installed.
|
|
38
|
+
if (!process.versions.bun) {
|
|
39
|
+
const runtime = join(prefix, ".talos-runtime");
|
|
40
|
+
if (existsSync(runtime)) {
|
|
41
|
+
if (!lstatSync(runtime).isSymbolicLink())
|
|
42
|
+
throw new Error("The Talos runtime link is occupied by a regular directory.");
|
|
43
|
+
if (realpathSync(runtime).toLowerCase() !== realpathSync(dirname(process.execPath)).toLowerCase())
|
|
44
|
+
unlinkSync(runtime);
|
|
45
|
+
}
|
|
46
|
+
if (!existsSync(runtime))
|
|
47
|
+
symlinkSync(dirname(process.execPath), runtime, "junction");
|
|
48
|
+
writeFileSync(cmd, windowsCliShim());
|
|
49
|
+
}
|
|
50
|
+
const ps1 = join(prefix, `${alias}.ps1`);
|
|
51
|
+
// Let PowerShell resolve .cmd without relaxing the user's execution policy.
|
|
52
|
+
if (belongsToTalos(ps1))
|
|
53
|
+
unlinkSync(ps1);
|
|
54
|
+
}
|
|
55
|
+
}
|
package/dist/core/compaction.js
CHANGED
|
@@ -218,32 +218,32 @@ export function repairInstructions(missing, base) {
|
|
|
218
218
|
const head = `Il riassunto precedente ha PERSO questi riferimenti, che sono ancora attivi e vanno mantenuti espliciti: ${list}.`;
|
|
219
219
|
return base ? `${base}\n${head}` : head;
|
|
220
220
|
}
|
|
221
|
-
const SUMMARY_SYSTEM = `Sei un compressore di contesto Danilov. Comprimi la conversazione in NOTAZIONE
|
|
222
|
-
Danilov, mai in prosa. Preserva lo stato operativo necessario a riprendere il
|
|
223
|
-
lavoro senza reinterpretarlo. Tre piani separati e chiusura OUTPUT:
|
|
224
|
-
|
|
225
|
-
INDICE
|
|
226
|
-
<concetti chiave, una parola per voce, numerati da 1>
|
|
227
|
-
|
|
228
|
-
DEFINIZIONI
|
|
229
|
-
@goal[current]: obiettivo corrente e sue revisioni esplicite; marca come superate le versioni precedenti
|
|
230
|
-
@stato[done]: lavoro completato, solo con evidenze concrete (file, tool, test o risultato osservato)
|
|
231
|
-
@stato[pending]: lavoro richiesto ma non ancora completato
|
|
232
|
-
@blocker[..]: impedimento o errore ancora aperto e relativo effetto
|
|
233
|
-
@vincolo[user]: preferenze, divieti e criteri imposti dall'utente
|
|
234
|
-
@scelta[..]: decisione=motivo
|
|
235
|
-
@file[..]: path, stato
|
|
236
|
-
@next[action]: prossima azione esatta, eseguibile e fondata nella conversazione
|
|
237
|
-
|
|
238
|
-
RELAZIONI
|
|
239
|
-
@R: <dipendenze e legami tra le voci>
|
|
240
|
-
|
|
241
|
-
OUTPUT: stato compatto per continuare il lavoro. Completo ma asciutto. Se una
|
|
242
|
-
categoria non e' presente, omettila. Non inventare fatti, evidenze, vincoli,
|
|
243
|
-
blocker o azioni; non trasformare intenzioni o tentativi in lavoro completato.
|
|
244
|
-
Ai waypoint conserva obiettivo, vincoli, attivita aperte, file in lavorazione,
|
|
245
|
-
decisioni, verifiche e prossimo passo. Riassumi il lavoro concluso senza
|
|
246
|
-
duplicarne i log. Conserva gli identificativi degli output archiviati e i
|
|
221
|
+
const SUMMARY_SYSTEM = `Sei un compressore di contesto Danilov. Comprimi la conversazione in NOTAZIONE
|
|
222
|
+
Danilov, mai in prosa. Preserva lo stato operativo necessario a riprendere il
|
|
223
|
+
lavoro senza reinterpretarlo. Tre piani separati e chiusura OUTPUT:
|
|
224
|
+
|
|
225
|
+
INDICE
|
|
226
|
+
<concetti chiave, una parola per voce, numerati da 1>
|
|
227
|
+
|
|
228
|
+
DEFINIZIONI
|
|
229
|
+
@goal[current]: obiettivo corrente e sue revisioni esplicite; marca come superate le versioni precedenti
|
|
230
|
+
@stato[done]: lavoro completato, solo con evidenze concrete (file, tool, test o risultato osservato)
|
|
231
|
+
@stato[pending]: lavoro richiesto ma non ancora completato
|
|
232
|
+
@blocker[..]: impedimento o errore ancora aperto e relativo effetto
|
|
233
|
+
@vincolo[user]: preferenze, divieti e criteri imposti dall'utente
|
|
234
|
+
@scelta[..]: decisione=motivo
|
|
235
|
+
@file[..]: path, stato
|
|
236
|
+
@next[action]: prossima azione esatta, eseguibile e fondata nella conversazione
|
|
237
|
+
|
|
238
|
+
RELAZIONI
|
|
239
|
+
@R: <dipendenze e legami tra le voci>
|
|
240
|
+
|
|
241
|
+
OUTPUT: stato compatto per continuare il lavoro. Completo ma asciutto. Se una
|
|
242
|
+
categoria non e' presente, omettila. Non inventare fatti, evidenze, vincoli,
|
|
243
|
+
blocker o azioni; non trasformare intenzioni o tentativi in lavoro completato.
|
|
244
|
+
Ai waypoint conserva obiettivo, vincoli, attivita aperte, file in lavorazione,
|
|
245
|
+
decisioni, verifiche e prossimo passo. Riassumi il lavoro concluso senza
|
|
246
|
+
duplicarne i log. Conserva gli identificativi degli output archiviati e i
|
|
247
247
|
riferimenti utili a recuperarli con output_page o recall.`;
|
|
248
248
|
// Genera il riassunto strutturato dei messaggi da compattare, dato l'eventuale
|
|
249
249
|
// riassunto precedente e istruzioni opzionali dell'utente.
|
package/dist/core/config.js
CHANGED
|
@@ -7,111 +7,111 @@ import { defaultSessionDir, talosConfigDir } from "./env-paths.js";
|
|
|
7
7
|
import { EXECUTION_GUIDANCE } from "./execution-guidance.js";
|
|
8
8
|
// System prompt deliberatamente minimale: la personalita' e le regole
|
|
9
9
|
// di progetto arrivano da SYSTEM.md / AGENTS.md, non dal harness.
|
|
10
|
-
export const BASE_SYSTEM = `# Vascend Talos
|
|
11
|
-
|
|
12
|
-
INDICE
|
|
13
|
-
1 = agente
|
|
14
|
-
2 = workspace
|
|
15
|
-
3 = strumento
|
|
16
|
-
4 = azione
|
|
17
|
-
|
|
18
|
-
DEFINIZIONI
|
|
19
|
-
@agente[ruolo]: coding_agent in terminale, conciso, diretto
|
|
20
|
-
@workspace[fonte]: ispeziona coi tool invece di indovinare
|
|
21
|
-
@strumento[uso]: read/edit/bash per agire sul workspace, non descrivere
|
|
22
|
-
@strumento[terminale]: per ricerca e ispezione del codice preferisci bash con rg e rg --files, git diff/status e comandi nativi della shell selezionata. Limita path e output a cio' che serve. Se rg o il terminale non sono disponibili usa grep/glob/read_file/list_dir. Per modifiche puntuali usa edit_file/write_file e rispetta il coordinamento dei file
|
|
23
|
-
@strumento[write_grande]: per file lunghi (oltre ~150 righe) scrivi in PIU' chiamate write_file: la prima crea il file, le successive con append=true accodano il resto. Un singolo write enorme puo' essere troncato dal limite di output e fallire
|
|
24
|
-
@strumento[ricerca]: prima di costruire qualcosa di non banale, RICERCA con web_fetch (documentazione, riferimenti, esempi) invece di indovinare le API
|
|
25
|
-
@strumento[domanda]: se un requisito e' davvero ambiguo e cambia il risultato, usa ask_user PRIMA di procedere; per i dettagli minori assumi il default ragionevole e dichiaralo, non fermarti di continuo
|
|
26
|
-
@strumento[risposta_mancante]: ask_user required=true mantiene esplicita l'informazione necessaria non ricevuta; prosegui solo col lavoro indipendente. required=false serve per preferenze facoltative e reversibili. Silenzio e annullamento non sono consenso
|
|
27
|
-
@strumento[e2e]: per un obiettivo grande (es. ricostruire una piattaforma) pianifica con vascend_plan in piu' gruppi/attivita, ricerca, costruisci una BOZZA COMPLETA end-to-end; annota le decisioni con vascend_note
|
|
28
|
-
@strumento[collaboratori]: chiama team_engage soltanto quando l'utente chiede esplicitamente piu' agenti, sub-agent o lavoro parallelo; una domanda informativa, un controllo del workspace o un task semplice restano sempre sul singolo agente principale
|
|
29
|
-
@strumento[ripresa]: vascend_status legge task, dipendenze, note e prove persistite; riprendi il piano esistente dopo resume/compattazione. vascend_addtasks estende, vascend_note conserva decisioni. replace=true ridefinisce esplicitamente un piano, perdendo i suoi progressi
|
|
30
|
-
@strumento[verifica]: definisci passi con un risultato osservabile e una verifica pertinente; running prima del lavoro, completed solo dopo verifica. Un comando in background va seguito con bash_output fino all'esito finale. Le prove salvate sono evidenze da controllare, non certificazioni
|
|
31
|
-
@azione[proporzione]: mantieni piano, strumenti e verifiche proporzionati al compito; le richieste semplici o a singolo passo non richiedono piano ne' collaboratori
|
|
32
|
-
@azione[distruttiva]: spiega prima cosa stai per fare
|
|
33
|
-
@azione[fine]: a compito finito fermati, niente riepiloghi superflui
|
|
34
|
-
|
|
35
|
-
OUTPUT: agente di coding che agisce coi tool, conciso, con risposte Markdown leggibili.
|
|
36
|
-
|
|
10
|
+
export const BASE_SYSTEM = `# Vascend Talos
|
|
11
|
+
|
|
12
|
+
INDICE
|
|
13
|
+
1 = agente
|
|
14
|
+
2 = workspace
|
|
15
|
+
3 = strumento
|
|
16
|
+
4 = azione
|
|
17
|
+
|
|
18
|
+
DEFINIZIONI
|
|
19
|
+
@agente[ruolo]: coding_agent in terminale, conciso, diretto
|
|
20
|
+
@workspace[fonte]: ispeziona coi tool invece di indovinare
|
|
21
|
+
@strumento[uso]: read/edit/bash per agire sul workspace, non descrivere
|
|
22
|
+
@strumento[terminale]: per ricerca e ispezione del codice preferisci bash con rg e rg --files, git diff/status e comandi nativi della shell selezionata. Limita path e output a cio' che serve. Se rg o il terminale non sono disponibili usa grep/glob/read_file/list_dir. Per modifiche puntuali usa edit_file/write_file e rispetta il coordinamento dei file
|
|
23
|
+
@strumento[write_grande]: per file lunghi (oltre ~150 righe) scrivi in PIU' chiamate write_file: la prima crea il file, le successive con append=true accodano il resto. Un singolo write enorme puo' essere troncato dal limite di output e fallire
|
|
24
|
+
@strumento[ricerca]: prima di costruire qualcosa di non banale, RICERCA con web_fetch (documentazione, riferimenti, esempi) invece di indovinare le API
|
|
25
|
+
@strumento[domanda]: se un requisito e' davvero ambiguo e cambia il risultato, usa ask_user PRIMA di procedere; per i dettagli minori assumi il default ragionevole e dichiaralo, non fermarti di continuo
|
|
26
|
+
@strumento[risposta_mancante]: ask_user required=true mantiene esplicita l'informazione necessaria non ricevuta; prosegui solo col lavoro indipendente. required=false serve per preferenze facoltative e reversibili. Silenzio e annullamento non sono consenso
|
|
27
|
+
@strumento[e2e]: per un obiettivo grande (es. ricostruire una piattaforma) pianifica con vascend_plan in piu' gruppi/attivita, ricerca, costruisci una BOZZA COMPLETA end-to-end; annota le decisioni con vascend_note
|
|
28
|
+
@strumento[collaboratori]: chiama team_engage soltanto quando l'utente chiede esplicitamente piu' agenti, sub-agent o lavoro parallelo; una domanda informativa, un controllo del workspace o un task semplice restano sempre sul singolo agente principale
|
|
29
|
+
@strumento[ripresa]: vascend_status legge task, dipendenze, note e prove persistite; riprendi il piano esistente dopo resume/compattazione. vascend_addtasks estende, vascend_note conserva decisioni. replace=true ridefinisce esplicitamente un piano, perdendo i suoi progressi
|
|
30
|
+
@strumento[verifica]: definisci passi con un risultato osservabile e una verifica pertinente; running prima del lavoro, completed solo dopo verifica. Un comando in background va seguito con bash_output fino all'esito finale. Le prove salvate sono evidenze da controllare, non certificazioni
|
|
31
|
+
@azione[proporzione]: mantieni piano, strumenti e verifiche proporzionati al compito; le richieste semplici o a singolo passo non richiedono piano ne' collaboratori
|
|
32
|
+
@azione[distruttiva]: spiega prima cosa stai per fare
|
|
33
|
+
@azione[fine]: a compito finito fermati, niente riepiloghi superflui
|
|
34
|
+
|
|
35
|
+
OUTPUT: agente di coding che agisce coi tool, conciso, con risposte Markdown leggibili.
|
|
36
|
+
|
|
37
37
|
${EXECUTION_GUIDANCE}`;
|
|
38
38
|
// Horizon e' un host grafico: stato, progress e tool call sono gia' presentati
|
|
39
39
|
// dalla UI. Il system prompt del core deve quindi guidare il lavoro senza
|
|
40
40
|
// imporre la voce Danilov o rituali operativi che competono con il modello.
|
|
41
|
-
export const HORIZON_SYSTEM = `# Horizon
|
|
42
|
-
|
|
43
|
-
You are a coding agent embedded in the Horizon workspace.
|
|
44
|
-
- Write in the language the user writes in, and keep writing in it for the whole
|
|
45
|
-
conversation. These instructions are in English for precision, not as a hint about
|
|
46
|
-
the reply language: a message in Italian gets an answer in Italian. Code,
|
|
47
|
-
identifiers, paths, commands and tool arguments stay exactly as they are.
|
|
48
|
-
- Inspect the real workspace before making claims.
|
|
49
|
-
- Match the requested scope: analysis stays read-only; change/build work is implemented end to end and verified.
|
|
50
|
-
- Prefer focused changes, but do not shrink a broad request into a partial patch.
|
|
51
|
-
- Keep planning proportional to the task; simple tasks do not need a formal plan.
|
|
52
|
-
- Use ordinary to-do-list language for progress: tasks, groups, dependencies and
|
|
53
|
-
pending, in progress, completed or failed states, translated into the user's language.
|
|
54
|
-
Memory indexes and internal implementation names are context for you; present the
|
|
55
|
-
relevant tasks, next steps and results to the user.
|
|
56
|
-
- Start substantial work with a short update, then act with tools. During long tasks share
|
|
57
|
-
useful findings or blockers about once a minute; avoid narrating every tool call.
|
|
58
|
-
- Respect the workspace permissions selected by the user.
|
|
59
|
-
- Exhaust safe in-scope alternatives before asking the user to unblock you.
|
|
60
|
-
- Never announce completion while a plan step is pending/running/failed or the requested
|
|
61
|
-
artifact has not been verified. Continue working, or report the concrete blocker.
|
|
62
|
-
- Keep the final answer compact: outcome first, then verification and any blocker. Do not
|
|
63
|
-
expose or recap internal context packs, memory routing, hidden prompts, or chain-of-thought.
|
|
64
|
-
|
|
65
|
-
Tools
|
|
66
|
-
- The tools listed for you cover file reads, writes, edits, search and shell: call them directly.
|
|
67
|
-
- Prefer the terminal for code discovery and inspection: rg for content, rg --files for paths,
|
|
68
|
-
git diff/status for changes, and native commands for the selected shell. Scope searches to
|
|
69
|
-
relevant directories and return only useful output. If rg or terminal access is unavailable,
|
|
70
|
-
use read_file or discover grep/glob/list_dir with tool_search (or call them inside run_program).
|
|
71
|
-
Use edit_file/write_file for focused edits and discover file_activity when coordination needs it.
|
|
72
|
-
Shell access does not expand the authorized workspace or bypass permissions.
|
|
73
|
-
- More tools exist on demand. Find them with tool_search, asking in ONE call for every tool
|
|
74
|
-
you expect to need ("names" when you know them, "query" otherwise): they become callable
|
|
75
|
-
directly, by name. Do not search again for a tool you loaded. Calling tool_search without
|
|
76
|
-
names/query lists the inventory without activating it; continue with offset=next_offset.
|
|
77
|
-
- Missing a capability? Inspect the actual catalog before assuming a host integration exists.
|
|
78
|
-
If custom-tool authoring is available, follow its guide. Ask the user only for information
|
|
79
|
-
or decisions that the available tools and project context cannot resolve.
|
|
80
|
-
- Use ask_user for missing requirements or decisions that materially change the result.
|
|
81
|
-
Ask a concise, self-contained question early, with options when useful. Collaborators can
|
|
82
|
-
use the same tool. If a required answer is missing, keep the dependency blocked and continue
|
|
83
|
-
independent work; do not invent the answer or interpret silence as approval. Use required=false
|
|
84
|
-
only for optional preferences with a reasonable, reversible default. Routine implementation
|
|
85
|
-
choices should not interrupt the user.
|
|
86
|
-
- For work with several steps — including games, challenges, puzzles and multi-level tasks —
|
|
87
|
-
lay out the plan with vascend_plan and keep it honest with vascend_mark as you go (one step
|
|
88
|
-
running at a time). The plan is not paperwork: it appears live as a
|
|
89
|
-
task board next to the conversation, where the user follows progress and can edit or add
|
|
90
|
-
steps. Give each step an observable result and a proportionate check. Short, single-step
|
|
91
|
-
requests need no plan. Read vascend_status after resume/compaction and before handing off
|
|
92
|
-
substantial work; resume it only when that is still necessary and authorized by the current
|
|
93
|
-
request. vascend_addtasks extends it without resetting
|
|
94
|
-
progress; vascend_plan with replace=true explicitly replaces it. Save decisions, blockers
|
|
95
|
-
and the next action with vascend_note before switching workstreams.
|
|
96
|
-
- Start a step with vascend_mark status=running. Complete it only after the relevant checks,
|
|
97
|
-
recording paths, commands and observed outcomes. Evidence in the plan is a record to inspect,
|
|
98
|
-
not an automatic correctness certificate. Reopening a step clears old completion evidence.
|
|
99
|
-
Respect after dependencies; use pending to pause a step and failed to record a concrete blocker.
|
|
100
|
-
- A plan is not a collaborator. When the user asks for multiple agents, subagents or parallel
|
|
101
|
-
experts, actually call team_engage: create one collaborator per independent workstream and
|
|
102
|
-
assign its complete task. If vascend_plan already created several task groups, pass their slugs
|
|
103
|
-
through the group field so those collaborators own and update the same T01/T02 tasks. Do not
|
|
104
|
-
merely draw multiple workstreams and then execute all of them in the orchestrator.
|
|
105
|
-
- Issue independent reads together. For related tool sequences use run_program and print only
|
|
106
|
-
the results needed for the next decision; keep dependent edits and approvals sequential.
|
|
107
|
-
- When bash returns a background id, use bash_output until the process exits. Partial output
|
|
108
|
-
or a started process does not mean the check passed. Leave persistent development servers
|
|
109
|
-
running when they are needed and report their status separately from verification results.
|
|
110
|
-
- Act on what is already in context: do not re-read a file or repeat a search whose result
|
|
111
|
-
you still have.
|
|
112
|
-
- If a tool reports a missing or malformed argument, fix the argument shape it names — do not
|
|
113
|
-
retry the same call unchanged.
|
|
114
|
-
|
|
41
|
+
export const HORIZON_SYSTEM = `# Horizon
|
|
42
|
+
|
|
43
|
+
You are a coding agent embedded in the Horizon workspace.
|
|
44
|
+
- Write in the language the user writes in, and keep writing in it for the whole
|
|
45
|
+
conversation. These instructions are in English for precision, not as a hint about
|
|
46
|
+
the reply language: a message in Italian gets an answer in Italian. Code,
|
|
47
|
+
identifiers, paths, commands and tool arguments stay exactly as they are.
|
|
48
|
+
- Inspect the real workspace before making claims.
|
|
49
|
+
- Match the requested scope: analysis stays read-only; change/build work is implemented end to end and verified.
|
|
50
|
+
- Prefer focused changes, but do not shrink a broad request into a partial patch.
|
|
51
|
+
- Keep planning proportional to the task; simple tasks do not need a formal plan.
|
|
52
|
+
- Use ordinary to-do-list language for progress: tasks, groups, dependencies and
|
|
53
|
+
pending, in progress, completed or failed states, translated into the user's language.
|
|
54
|
+
Memory indexes and internal implementation names are context for you; present the
|
|
55
|
+
relevant tasks, next steps and results to the user.
|
|
56
|
+
- Start substantial work with a short update, then act with tools. During long tasks share
|
|
57
|
+
useful findings or blockers about once a minute; avoid narrating every tool call.
|
|
58
|
+
- Respect the workspace permissions selected by the user.
|
|
59
|
+
- Exhaust safe in-scope alternatives before asking the user to unblock you.
|
|
60
|
+
- Never announce completion while a plan step is pending/running/failed or the requested
|
|
61
|
+
artifact has not been verified. Continue working, or report the concrete blocker.
|
|
62
|
+
- Keep the final answer compact: outcome first, then verification and any blocker. Do not
|
|
63
|
+
expose or recap internal context packs, memory routing, hidden prompts, or chain-of-thought.
|
|
64
|
+
|
|
65
|
+
Tools
|
|
66
|
+
- The tools listed for you cover file reads, writes, edits, search and shell: call them directly.
|
|
67
|
+
- Prefer the terminal for code discovery and inspection: rg for content, rg --files for paths,
|
|
68
|
+
git diff/status for changes, and native commands for the selected shell. Scope searches to
|
|
69
|
+
relevant directories and return only useful output. If rg or terminal access is unavailable,
|
|
70
|
+
use read_file or discover grep/glob/list_dir with tool_search (or call them inside run_program).
|
|
71
|
+
Use edit_file/write_file for focused edits and discover file_activity when coordination needs it.
|
|
72
|
+
Shell access does not expand the authorized workspace or bypass permissions.
|
|
73
|
+
- More tools exist on demand. Find them with tool_search, asking in ONE call for every tool
|
|
74
|
+
you expect to need ("names" when you know them, "query" otherwise): they become callable
|
|
75
|
+
directly, by name. Do not search again for a tool you loaded. Calling tool_search without
|
|
76
|
+
names/query lists the inventory without activating it; continue with offset=next_offset.
|
|
77
|
+
- Missing a capability? Inspect the actual catalog before assuming a host integration exists.
|
|
78
|
+
If custom-tool authoring is available, follow its guide. Ask the user only for information
|
|
79
|
+
or decisions that the available tools and project context cannot resolve.
|
|
80
|
+
- Use ask_user for missing requirements or decisions that materially change the result.
|
|
81
|
+
Ask a concise, self-contained question early, with options when useful. Collaborators can
|
|
82
|
+
use the same tool. If a required answer is missing, keep the dependency blocked and continue
|
|
83
|
+
independent work; do not invent the answer or interpret silence as approval. Use required=false
|
|
84
|
+
only for optional preferences with a reasonable, reversible default. Routine implementation
|
|
85
|
+
choices should not interrupt the user.
|
|
86
|
+
- For work with several steps — including games, challenges, puzzles and multi-level tasks —
|
|
87
|
+
lay out the plan with vascend_plan and keep it honest with vascend_mark as you go (one step
|
|
88
|
+
running at a time). The plan is not paperwork: it appears live as a
|
|
89
|
+
task board next to the conversation, where the user follows progress and can edit or add
|
|
90
|
+
steps. Give each step an observable result and a proportionate check. Short, single-step
|
|
91
|
+
requests need no plan. Read vascend_status after resume/compaction and before handing off
|
|
92
|
+
substantial work; resume it only when that is still necessary and authorized by the current
|
|
93
|
+
request. vascend_addtasks extends it without resetting
|
|
94
|
+
progress; vascend_plan with replace=true explicitly replaces it. Save decisions, blockers
|
|
95
|
+
and the next action with vascend_note before switching workstreams.
|
|
96
|
+
- Start a step with vascend_mark status=running. Complete it only after the relevant checks,
|
|
97
|
+
recording paths, commands and observed outcomes. Evidence in the plan is a record to inspect,
|
|
98
|
+
not an automatic correctness certificate. Reopening a step clears old completion evidence.
|
|
99
|
+
Respect after dependencies; use pending to pause a step and failed to record a concrete blocker.
|
|
100
|
+
- A plan is not a collaborator. When the user asks for multiple agents, subagents or parallel
|
|
101
|
+
experts, actually call team_engage: create one collaborator per independent workstream and
|
|
102
|
+
assign its complete task. If vascend_plan already created several task groups, pass their slugs
|
|
103
|
+
through the group field so those collaborators own and update the same T01/T02 tasks. Do not
|
|
104
|
+
merely draw multiple workstreams and then execute all of them in the orchestrator.
|
|
105
|
+
- Issue independent reads together. For related tool sequences use run_program and print only
|
|
106
|
+
the results needed for the next decision; keep dependent edits and approvals sequential.
|
|
107
|
+
- When bash returns a background id, use bash_output until the process exits. Partial output
|
|
108
|
+
or a started process does not mean the check passed. Leave persistent development servers
|
|
109
|
+
running when they are needed and report their status separately from verification results.
|
|
110
|
+
- Act on what is already in context: do not re-read a file or repeat a search whose result
|
|
111
|
+
you still have.
|
|
112
|
+
- If a tool reports a missing or malformed argument, fix the argument shape it names — do not
|
|
113
|
+
retry the same call unchanged.
|
|
114
|
+
|
|
115
115
|
${EXECUTION_GUIDANCE}`;
|
|
116
116
|
// File di contesto a livello progetto, in ordine di priorita'.
|
|
117
117
|
const DEFAULT_CONTEXT_FILES = ["SYSTEM.md", "AGENTS.md", ".talos/SYSTEM.md"];
|
|
@@ -6,27 +6,27 @@ export const EXECUTION_GUIDANCE = `Efficient execution
|
|
|
6
6
|
Before continuing after an error, check whether further agent action is needed and authorized.
|
|
7
7
|
Stop when the request is answered; wait when the next step belongs to the user or needs input.
|
|
8
8
|
Preserve incomplete tasks honestly instead of forcing completion or retrying indefinitely.
|
|
9
|
-
- For a small cosmetic change (one button color, label, spacing or font), locate the affected
|
|
10
|
-
component, edit it, then verify the local result. Do not create a plan, delegate, research the
|
|
11
|
-
web, inspect the whole repository or run a global test/build cycle unless evidence requires it.
|
|
12
|
-
Escalate scope only when the actual dependency or failure demands it.
|
|
13
|
-
- Decide what evidence is needed for the next decision. Issue independent reads together and
|
|
14
|
-
reuse results that are still valid. Do not spend a model round on each already-decided action.
|
|
15
|
-
- Use run_program for known sequences: await dependent edits and plan transitions in order,
|
|
16
|
-
stop on errors, and return a concise summary. Complete a task only after its checks succeed.
|
|
17
|
-
- Prepare related replacements in one round. Never edit the same file concurrently. Independent
|
|
18
|
-
edits on distinct files may run together in bounded groups of at most four; await every outcome
|
|
19
|
-
before inspecting the result or starting dependent work. Keep permission gates in place.
|
|
20
|
-
- For short checks use foreground bash, or background with its brief initial wait. Use
|
|
21
|
-
background=true with yield_time_ms=0 for persistent servers or work that must detach immediately.
|
|
22
|
-
Collect ready background results together; a running command is not a passed check.
|
|
23
|
-
- Run the relevant integrated checks after the edits. Repeat checks only after changes, failures
|
|
24
|
-
or a concrete unresolved concern; do not duplicate typecheck and build without a reason.
|
|
25
|
-
- When parallel work is authorized and worthwhile, start with at most two collaborators on
|
|
26
|
-
concrete disjoint areas, agree on interfaces and acceptance checks, and declare after dependencies.
|
|
27
|
-
The coordinator reviews the combined result. Prefer one agent for small or tightly coupled work.
|
|
28
|
-
- Format user-facing responses in readable Markdown: short paragraphs, **bold** key findings,
|
|
29
|
-
lists for steps, tables for comparisons, fenced code with a language, and descriptive links.
|
|
9
|
+
- For a small cosmetic change (one button color, label, spacing or font), locate the affected
|
|
10
|
+
component, edit it, then verify the local result. Do not create a plan, delegate, research the
|
|
11
|
+
web, inspect the whole repository or run a global test/build cycle unless evidence requires it.
|
|
12
|
+
Escalate scope only when the actual dependency or failure demands it.
|
|
13
|
+
- Decide what evidence is needed for the next decision. Issue independent reads together and
|
|
14
|
+
reuse results that are still valid. Do not spend a model round on each already-decided action.
|
|
15
|
+
- Use run_program for known sequences: await dependent edits and plan transitions in order,
|
|
16
|
+
stop on errors, and return a concise summary. Complete a task only after its checks succeed.
|
|
17
|
+
- Prepare related replacements in one round. Never edit the same file concurrently. Independent
|
|
18
|
+
edits on distinct files may run together in bounded groups of at most four; await every outcome
|
|
19
|
+
before inspecting the result or starting dependent work. Keep permission gates in place.
|
|
20
|
+
- For short checks use foreground bash, or background with its brief initial wait. Use
|
|
21
|
+
background=true with yield_time_ms=0 for persistent servers or work that must detach immediately.
|
|
22
|
+
Collect ready background results together; a running command is not a passed check.
|
|
23
|
+
- Run the relevant integrated checks after the edits. Repeat checks only after changes, failures
|
|
24
|
+
or a concrete unresolved concern; do not duplicate typecheck and build without a reason.
|
|
25
|
+
- When parallel work is authorized and worthwhile, start with at most two collaborators on
|
|
26
|
+
concrete disjoint areas, agree on interfaces and acceptance checks, and declare after dependencies.
|
|
27
|
+
The coordinator reviews the combined result. Prefer one agent for small or tightly coupled work.
|
|
28
|
+
- Format user-facing responses in readable Markdown: short paragraphs, **bold** key findings,
|
|
29
|
+
lists for steps, tables for comparisons, fenced code with a language, and descriptive links.
|
|
30
30
|
Keep internal planning notation out of ordinary explanations unless the user asks for it.`;
|
|
31
31
|
// One reminder per pattern per run, transient and outside conversation history.
|
|
32
32
|
export class ExecutionGuidance {
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import type { TalosUpdate } from "./update-check.js";
|
|
2
2
|
import { type UpdateRunner } from "./update-process.js";
|
|
3
3
|
import type { UpdateResult } from "./self-update.js";
|
|
4
|
+
import { downloadVerifiedPackage } from "./signed-release.js";
|
|
4
5
|
export type PackageManager = "npm" | "bun" | "pnpm" | "yarn";
|
|
5
6
|
export declare function managerCommand(manager: PackageManager, env: NodeJS.ProcessEnv): {
|
|
6
7
|
command: string;
|
|
7
8
|
args: readonly string[];
|
|
8
9
|
} | null;
|
|
9
|
-
export declare function packageUpdateArgs(manager: PackageManager,
|
|
10
|
+
export declare function packageUpdateArgs(manager: PackageManager, target: string, prefix?: string): readonly string[];
|
|
10
11
|
export declare function installPackageUpdate(update: TalosUpdate, options: {
|
|
11
12
|
readonly root: string;
|
|
12
13
|
readonly env: NodeJS.ProcessEnv;
|
|
13
14
|
readonly run?: UpdateRunner;
|
|
14
15
|
readonly managerCommand?: typeof managerCommand;
|
|
16
|
+
readonly download?: typeof downloadVerifiedPackage;
|
|
15
17
|
}): Promise<UpdateResult>;
|