|
@@ -5,7 +5,7 @@
|
|
|
// layer stack the profile boot composes), patched the
|
|
// layer stack the profile boot composes), patched the
|
|
|
// snapshot way — so a real chromium exercises the real HTTP uplink/WebSocket
|
|
// snapshot way — so a real chromium exercises the real HTTP uplink/WebSocket
|
|
|
// downlink, api-gateway, agent loop, tools, and persistence. Modes ride $DSH_SNAPSHOT:
|
|
// downlink, api-gateway, agent loop, tools, and persistence. Modes ride $DSH_SNAPSHOT:
|
|
|
-// replay (default, keyless: normally disables the llm-deepseek row and
|
|
|
|
|
|
|
+// replay (default, keyless: normally disables the direct DeepSeek rows and
|
|
|
// inserts dsh-llm-replay in providers mode), record (real adapter + key,
|
|
// inserts dsh-llm-replay in providers mode), record (real adapter + key,
|
|
|
// harvests fixtures from live session memory), refresh (keyless replay that
|
|
// harvests fixtures from live session memory), refresh (keyless replay that
|
|
|
// rewrites goldens). A first-run option keeps the real adapter mounted while
|
|
// rewrites goldens). A first-run option keeps the real adapter mounted while
|
|
@@ -18,7 +18,7 @@
|
|
|
// disabled (recorded fixtures must not embed this repo's AGENTS.md);
|
|
// disabled (recorded fixtures must not embed this repo's AGENTS.md);
|
|
|
// session-title-llm disabled (its fire-and-forget title call would race the
|
|
// session-title-llm disabled (its fire-and-forget title call would race the
|
|
|
// loop for the session's replay cursor); webserver pinned to port 0 with the
|
|
// loop for the session's replay cursor); webserver pinned to port 0 with the
|
|
|
-// built dist; ordinary keyless modes disable llm-deepseek and fill the open
|
|
|
|
|
|
|
+// built dist; ordinary keyless modes disable both direct adapters and fill the open
|
|
|
// llm seam post-boot with installLlmReplay on the settled root ctx
|
|
// llm seam post-boot with installLlmReplay on the settled root ctx
|
|
|
// (the plugin-row path discards the ReplayHandle; the direct install keeps
|
|
// (the plugin-row path discards the ReplayHandle; the direct install keeps
|
|
|
// assertConsumed for the teardown fixture-consumption check).
|
|
// assertConsumed for the teardown fixture-consumption check).
|
|
@@ -185,7 +185,7 @@ const WEB_PATCH_PATH = join(REPO_ROOT, 'packages/bundle/web-app/cordis.patch.yml
|
|
|
const INSTALL_ANCHOR = join(REPO_ROOT, 'apps/cli/package.json')
|
|
const INSTALL_ANCHOR = join(REPO_ROOT, 'apps/cli/package.json')
|
|
|
|
|
|
|
|
// Replay publishes the provider catalog the gateway routes to (providers
|
|
// Replay publishes the provider catalog the gateway routes to (providers
|
|
|
-// mode, never catch-all: with llm-deepseek disabled no adapter exists, so a
|
|
|
|
|
|
|
+// mode, never catch-all: with both direct adapters disabled no adapter exists, so a
|
|
|
// catch-all would leave resolveModelInfo unroutable and compaction-basic's
|
|
// catch-all would leave resolveModelInfo unroutable and compaction-basic's
|
|
|
// post-step pressure check would warn every step). The published
|
|
// post-step pressure check would warn every step). The published
|
|
|
// contextWindow keeps that pressure path provably inert for small fixtures.
|
|
// contextWindow keeps that pressure path provably inert for small fixtures.
|
|
@@ -301,7 +301,7 @@ export interface LaunchOptions {
|
|
|
* Replay fixture (session.jsonl) served by the inserted dsh-llm-replay row
|
|
* Replay fixture (session.jsonl) served by the inserted dsh-llm-replay row
|
|
|
* in replay/refresh modes; ignored in record mode (the real adapter
|
|
* in replay/refresh modes; ignored in record mode (the real adapter
|
|
|
* answers). Omit for scenarios issuing no model calls — a stray stream then
|
|
* answers). Omit for scenarios issuing no model calls — a stray stream then
|
|
|
- * fails loud with NO_ADAPTER (llm-deepseek is disabled and no replay row
|
|
|
|
|
|
|
+ * fails loud with NO_ADAPTER (both direct adapters are disabled and no replay row
|
|
|
* mounts). With {@link replayProvidersOnly}, the fixture must record no
|
|
* mounts). With {@link replayProvidersOnly}, the fixture must record no
|
|
|
* model calls (its header alone mounts the catalog).
|
|
* model calls (its header alone mounts the catalog).
|
|
|
*/
|
|
*/
|
|
@@ -358,6 +358,8 @@ export interface LaunchOptions {
|
|
|
* keyless first-run configuration lane; the default disables the adapter.
|
|
* keyless first-run configuration lane; the default disables the adapter.
|
|
|
*/
|
|
*/
|
|
|
deepSeekMissingCredential?: boolean
|
|
deepSeekMissingCredential?: boolean
|
|
|
|
|
+ /** Keep the shipped Messages adapter mounted for configuration scenarios; disabled in ordinary keyless replays. */
|
|
|
|
|
+ deepSeekMessages?: boolean
|
|
|
/** Leave the current welcome notice pending; ordinary scenarios pre-acknowledge it before browser boot. */
|
|
/** Leave the current welcome notice pending; ordinary scenarios pre-acknowledge it before browser boot. */
|
|
|
welcomeNoticePending?: boolean
|
|
welcomeNoticePending?: boolean
|
|
|
/**
|
|
/**
|
|
@@ -632,6 +634,9 @@ export async function launchWebScaffold(options: LaunchOptions = {}): Promise<We
|
|
|
...mode === 'record' || options.deepSeekMissingCredential === true
|
|
...mode === 'record' || options.deepSeekMissingCredential === true
|
|
|
? []
|
|
? []
|
|
|
: [{ id: 'llm-deepseek', disabled: true }],
|
|
: [{ id: 'llm-deepseek', disabled: true }],
|
|
|
|
|
+ ...options.deepSeekMessages === true
|
|
|
|
|
+ ? []
|
|
|
|
|
+ : [{ id: 'llm-deepseek-messages', disabled: true }],
|
|
|
]
|
|
]
|
|
|
|
|
|
|
|
// Sessions inherit the gateway's process.cwd() default; run the boot from
|
|
// Sessions inherit the gateway's process.cwd() default; run the boot from
|
|
@@ -719,7 +724,7 @@ export async function launchWebScaffold(options: LaunchOptions = {}): Promise<We
|
|
|
port = boundPort
|
|
port = boundPort
|
|
|
|
|
|
|
|
// Fill the open llm seam on the settled root ctx. Ordinary keyless modes
|
|
// Fill the open llm seam on the settled root ctx. Ordinary keyless modes
|
|
|
- // disable llm-deepseek; the first-run lane keeps it mounted but has no
|
|
|
|
|
|
|
+ // disable both direct adapters; the first-run lane keeps llm-deepseek but has no
|
|
|
// replay fixture and never streams. The direct install, unlike the plugin
|
|
// replay fixture and never streams. The direct install, unlike the plugin
|
|
|
// row, returns the ReplayHandle for the teardown consumption check.
|
|
// row, returns the ReplayHandle for the teardown consumption check.
|
|
|
if (options.replayProvidersOnly) {
|
|
if (options.replayProvidersOnly) {
|