@vtxmacro/cli 2026.8.52 → 2026.8.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +83 -31
  2. package/bin/vtx.js +2427 -190
  3. package/package.json +52 -4
package/README.md CHANGED
@@ -10,7 +10,8 @@ vtx --version
10
10
  ```
11
11
 
12
12
  The host supports Windows x64 and Linux x64, including WSL. The package installs
13
- the exact supported OpenAI Codex runtime and GitHub Copilot SDK. The VTX host
13
+ the exact supported OpenAI Codex runtime, GitHub Copilot SDK, and official
14
+ DeepSeek Harness package wave. The VTX host
14
15
  verifies the Codex runtime's version and digest before use; it does not borrow a
15
16
  Codex binary from PATH or an editor extension.
16
17
  For Windows-login auto-start, install and configure the CLI from native Windows;
@@ -52,7 +53,7 @@ Both paths use a separate least-privilege `insights:inference` OAuth grant.
52
53
  VTX never receives an agent vendor password, OAuth token, or subscription
53
54
  credential.
54
55
 
55
- ### Durable subscription hosts
56
+ ### Durable inference hosts
56
57
 
57
58
  Codex remains the reference implementation and its existing App Server,
58
59
  authentication, quota, recovery, and provider-mode path are unchanged. GitHub
@@ -64,12 +65,14 @@ and VTX grant. VTX resolves the package-owned pinned Copilot platform runtime
64
65
  explicitly and rejects an `auto`-only catalog because it cannot prove the
65
66
  effective model.
66
67
 
67
- An explicitly capable Codex model can also control Main in **Agent** mode using
68
- the same VTX OAuth grant and private Codex login. VTX assigns the running bot but
69
- does not send a VTX-authored prompt or set the analysis cadence. Codex keeps a
70
- durable Agent thread, chooses when to wake, requests only the assignment-scoped
71
- VTX data it needs (or none), and submits the normal structured decision for VTX
72
- to validate and execute. Review and Screener remain Provider-only.
68
+ An explicitly capable durable Codex, Copilot, or DeepSeek Harness model can also
69
+ control Main in **Agent** mode using the same VTX OAuth grant and its own local
70
+ adapter-specific vendor credential: ChatGPT or Copilot login, or a DeepSeek API
71
+ key. VTX assigns the running bot but does not send a VTX-authored prompt or set
72
+ the analysis cadence. The assigned runtime keeps a durable Agent thread,
73
+ chooses when to wake, requests only the assignment-scoped VTX data it needs (or
74
+ none), and submits the normal structured decision for VTX to validate and
75
+ execute. Review and Screener remain Provider-only.
73
76
 
74
77
  Before the first Codex login, enable **Device code authorization for Codex** in
75
78
  ChatGPT Security settings. Only enter a device code from a login you initiated,
@@ -105,6 +108,27 @@ vtx inference-host doctor --adapter copilot --instance copilot-1 --json
105
108
  vtx inference-host service install --adapter copilot --instance copilot-1
106
109
  ```
107
110
 
111
+ For DeepSeek Harness, import the API key through stdin so it never appears in
112
+ process arguments, then install a distinct durable instance:
113
+
114
+ ```bash
115
+ vtx inference-host login --instance deepseek-1
116
+ vtx inference-host deepseek-login --instance deepseek-1 < /private/path/deepseek.key
117
+ vtx inference-host doctor --adapter deepseek-harness --instance deepseek-1 --json
118
+ vtx inference-host service install --adapter deepseek-harness --instance deepseek-1
119
+ ```
120
+
121
+ The DeepSeek key remains in the local OS credential store or the explicitly
122
+ selected private-file fallback; it is never written to the service manifest or
123
+ sent to VTX. Provider mode is tool-less. Main Agent mode uses a durable Harness
124
+ session with only the three assignment-scoped VTX tools. Review and Screener
125
+ remain Provider-only. An Agent dispatch whose provider outcome cannot be proved
126
+ is durably fenced and is not repeated after a service restart. Inspect
127
+ `status --json`, `doctor --json`, and service logs; revoke and relink the exact
128
+ instance after reconciling an ambiguous fence. An authentication fence clears
129
+ only after a successful replacement key import. Quota and rate-limit failures
130
+ honor their provider retry time or a bounded local cooldown.
131
+
108
132
  To connect another Codex subscription to the same VTX account, repeat the
109
133
  login and service-install commands with a stable local name such as
110
134
  `--instance codex-2`. Each named instance has an isolated VTX grant, Codex
@@ -131,26 +155,31 @@ The command never kills an arbitrary process, logs either account out, changes
131
155
  VTX profile settings, or controls a Trader. If any package-owned VTX automation
132
156
  is still live, recovery fails closed and preserves its evidence.
133
157
 
134
- For each VTX profile and lane, **Host #1** is tried first and later compatible
135
- hosts follow in the saved Host cascade order. Distinct computers may use the
136
- same authenticated subscription; provider quota remains account-level.
137
- Quota/credits exhaustion can advance only to a later host reporting a different
138
- account identity. Unusable authentication and exhausted recoverable host failures
158
+ For each VTX profile and lane, **Host #1** is selected. Provider-mode calls may
159
+ continue through later compatible hosts in the saved Host cascade order. Agent
160
+ mode keeps its durable thread and assignment on Host #1 and fences a failure
161
+ instead of automatically transferring it. Distinct computers may use the same
162
+ authenticated subscription; when account identity is reported, provider quota
163
+ remains account-level and quota exhaustion skips only positively matching
164
+ identities. Unusable authentication and exhausted recoverable Provider failures
139
165
  can advance the same logical call. VTX never changes
140
166
  provider, model, effort, or response mode, and never cascades a bad request,
141
167
  policy rejection, or uncertain dispatch outcome.
142
168
 
143
- Automated hosts do not impose a subscription-specific profile-count or
169
+ Automated hosts do not impose a provider-specific profile-count or
144
170
  concurrency limit by default. Set an explicit positive integer with
145
- `--max-concurrency` when you want a local limit. Every active turn shares the live subscription
146
- rate-limit gate and cooldown; unlimited local admission does not guarantee
147
- capacity beyond the authenticated account's current entitlement. Updating from
171
+ `--max-concurrency` when you want a local limit. Every active turn still
172
+ consumes capacity from its adapter-specific provider account or API key;
173
+ unlimited local admission does not guarantee provider capacity. Codex uses its
174
+ reported live subscription gate and cooldown. DeepSeek Harness is API-billed and
175
+ does not claim a stable account identity or provider rate-limit window. Updating from
148
176
  an older bounded host removes its previous numeric limit; run
149
177
  `service install --max-concurrency <positive-integer>` only to add one back.
150
178
 
151
179
  Every durable host uses a separate least-privilege `insights:inference`
152
180
  OAuth grant. Codex additionally keeps its ChatGPT subscription login in a dedicated
153
- private Codex home; Copilot uses its official cached user login.
181
+ private Codex home; Copilot uses its official cached user login; DeepSeek Harness
182
+ keeps its API key in the local VTX credential boundary.
154
183
  No vendor credential is written to the VTX service manifest. The per-user OS service starts immediately, starts again at login, and
155
184
  reconnects after sleep, network loss, or a worker exit. Stopping a VTX bot leaves
156
185
  the provider online and idle. Use `vtx inference-host run` only for foreground
@@ -176,7 +205,7 @@ confirmation page was blocked; the grant succeeded.
176
205
 
177
206
  ### Any compatible agent harness
178
207
 
179
- Codex, Claude Code, Cursor, GitHub Copilot, Antigravity, and other agents that can
208
+ Codex, DeepSeek Harness, Claude Code, Cursor, GitHub Copilot, Antigravity, and other agents that can
180
209
  run shell commands can use their existing first-party session without a
181
210
  VTX-owned vendor adapter:
182
211
 
@@ -192,7 +221,8 @@ vtx inference-host agent-run
192
221
  vtx inference-host agent-next --wait-seconds 50 --json
193
222
  ```
194
223
 
195
- `agent-next` returns separate exact `system_prompt`, `user_prompt`,
224
+ That is the **Provider** loop. `agent-next` returns separate exact
225
+ `system_prompt`, `user_prompt`,
196
226
  `context_json`, and `output_schema_json` fields. The agent reasons in its own
197
227
  session, then writes one JSON object to `agent-complete` stdin. At minimum that
198
228
  object contains a `result` string. If the harness exposes exact token usage,
@@ -211,18 +241,39 @@ Use `not_dispatched` only when no harness inference began,
211
241
  `outcome_unknown` when dispatch itself cannot be confirmed. Pipe exactly one
212
242
  object to `vtx inference-host agent-fail --json`.
213
243
 
244
+ For **Agent** mode on an explicitly capable Main model, VTX supplies only the
245
+ assignment, allowed data contract, and normal decision schema. The foreground
246
+ agent chooses its own cadence and may request zero, one, or many data calls:
247
+
248
+ ```bash
249
+ vtx inference-host agent-assignment-next --wait-seconds 50 --json
250
+ vtx inference-host agent-data-call --json
251
+ vtx inference-host agent-decision-submit --json
252
+ vtx inference-host agent-decision-status --json
253
+ vtx inference-host agent-assignment-heartbeat --json
254
+ vtx inference-host agent-assignment-release --json
255
+ ```
256
+
257
+ `agent-assignment-next` returns the exact `output_schema`, data capabilities,
258
+ wake bounds, and `decision_input` shape. Submit a `candidate` matching that
259
+ schema plus `provenance` with `source: "external_agent"`, a stable
260
+ `agent_run_id`, and the requested and actual model and reasoning effort. Use
261
+ `agent-decision-status` after an uncertain submit response. Use
262
+ `agent-assignment-release` only when intentionally ending the foreground Agent
263
+ session; normal cadence is recorded with `agent-assignment-heartbeat`.
264
+
214
265
  Claude Code, Antigravity, Gemini CLI, Kiro, Grok Build, Cursor, Amp, Auggie,
215
- Junie, Warp/Oz, Qwen Code, and OpenCode remain on
216
- the explicit foreground agent loop. Their current subscription routing,
266
+ Junie, Warp/Oz, Qwen Code, and OpenCode remain on the explicit foreground host
267
+ path. Their current subscription routing,
217
268
  effective-model identity, schema, usage, or crash-recovery contracts do not yet
218
269
  meet every durable VTX acceptance fence. The public Insights matrix records the
219
270
  specific limitation instead of treating headless support alone as durability.
220
271
 
221
- Keep `agent-run` open in a separate terminal and keep calling `agent-next`
222
- while the host should remain available. The independent keeper preserves
223
- truthful liveness while the harness reasons. This same loop
224
- supports Main, Review, and Screener in Provider mode;
225
- and normally running VTX Client Mode or Server Mode bots. Server Mode keeps the
272
+ Keep `agent-run` open in a separate terminal while the foreground host should
273
+ remain available. Use the Provider job loop for Main, Review, or Screener, or the
274
+ Agent assignment loop for an explicitly capable Main model. The independent
275
+ keeper preserves truthful liveness while the harness reasons. Both loops support
276
+ normally running VTX Client Mode or Server Mode bots. Server Mode keeps the
226
277
  normal VTX call fee. Client Mode has no VTX platform fee. Neither mode falls back
227
278
  to another model when the agent host is unavailable.
228
279
 
@@ -234,10 +285,11 @@ running bot.
234
285
 
235
286
  ## Remove
236
287
 
237
- First uninstall any durable service, stop any foreground run or agent-run process,
238
- revoke the VTX inference grant, then uninstall the package. Cleanup refuses while
239
- a foreground host process still owns the host. Automated Codex users should also remove the
240
- dedicated Codex login:
288
+ First release any foreground Agent assignment, uninstall any durable service,
289
+ stop any foreground run or agent-run process, revoke the VTX inference grant,
290
+ then uninstall the package. Cleanup refuses while a foreground host process
291
+ still owns the host. Automated Codex users should also remove the dedicated
292
+ Codex login:
241
293
 
242
294
  ```bash
243
295
  vtx inference-host service stop