agent-nuvira 3.4.0 → 3.5.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 +13 -13
- package/dist/agent-sdk/src/register.d.ts +23 -7
- package/dist/agent-sdk/src/register.d.ts.map +1 -1
- package/dist/agent-sdk/src/register.js +159 -5
- package/dist/agent-sdk/src/register.js.map +1 -1
- package/dist/agent-sdk/src/scaffold.d.ts +1 -1
- package/dist/agent-sdk/src/scaffold.js +1 -1
- package/dist/cli/agent.d.ts.map +1 -1
- package/dist/cli/agent.js +16 -3
- package/dist/cli/agent.js.map +1 -1
- package/dist/cli/chat.d.ts +202 -6
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +805 -34
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/config.d.ts +10 -0
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +39 -0
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +18 -3
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/duties.d.ts +11 -0
- package/dist/cli/duties.d.ts.map +1 -1
- package/dist/cli/duties.js +31 -0
- package/dist/cli/duties.js.map +1 -1
- package/dist/cli/mcp.d.ts +50 -0
- package/dist/cli/mcp.d.ts.map +1 -1
- package/dist/cli/mcp.js +496 -49
- package/dist/cli/mcp.js.map +1 -1
- package/dist/cli/memory.d.ts.map +1 -1
- package/dist/cli/memory.js +3 -2
- package/dist/cli/memory.js.map +1 -1
- package/dist/cli/models.d.ts.map +1 -1
- package/dist/cli/models.js +55 -0
- package/dist/cli/models.js.map +1 -1
- package/dist/cli/plugins.d.ts.map +1 -1
- package/dist/cli/plugins.js +26 -9
- package/dist/cli/plugins.js.map +1 -1
- package/dist/cli/sdk.d.ts.map +1 -1
- package/dist/cli/sdk.js +10 -3
- package/dist/cli/sdk.js.map +1 -1
- package/dist/cli/tool-install-prompt.d.ts.map +1 -1
- package/dist/cli/tool-install-prompt.js +23 -1
- package/dist/cli/tool-install-prompt.js.map +1 -1
- package/dist/cli/tools.d.ts +16 -0
- package/dist/cli/tools.d.ts.map +1 -1
- package/dist/cli/tools.js +101 -1
- package/dist/cli/tools.js.map +1 -1
- package/dist/config/manager.d.ts +6 -0
- package/dist/config/manager.d.ts.map +1 -1
- package/dist/config/manager.js +66 -0
- package/dist/config/manager.js.map +1 -1
- package/dist/config/types.d.ts +18 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/learning/auto-router.d.ts +28 -0
- package/dist/learning/auto-router.d.ts.map +1 -1
- package/dist/learning/auto-router.js +84 -5
- package/dist/learning/auto-router.js.map +1 -1
- package/dist/learning/duty-lease.d.ts +163 -0
- package/dist/learning/duty-lease.d.ts.map +1 -0
- package/dist/learning/duty-lease.js +301 -0
- package/dist/learning/duty-lease.js.map +1 -0
- package/dist/learning/exhaustion-report.d.ts +12 -0
- package/dist/learning/exhaustion-report.d.ts.map +1 -1
- package/dist/learning/exhaustion-report.js +3 -1
- package/dist/learning/exhaustion-report.js.map +1 -1
- package/dist/learning/model-capability.d.ts +33 -0
- package/dist/learning/model-capability.d.ts.map +1 -1
- package/dist/learning/model-capability.js +51 -0
- package/dist/learning/model-capability.js.map +1 -1
- package/dist/learning/model-first-router.d.ts +21 -22
- package/dist/learning/model-first-router.d.ts.map +1 -1
- package/dist/learning/model-first-router.js +61 -54
- package/dist/learning/model-first-router.js.map +1 -1
- package/dist/learning/model-selection.d.ts +27 -0
- package/dist/learning/model-selection.d.ts.map +1 -1
- package/dist/learning/model-selection.js +46 -0
- package/dist/learning/model-selection.js.map +1 -1
- package/dist/learning/model-warmup.d.ts +92 -0
- package/dist/learning/model-warmup.d.ts.map +1 -1
- package/dist/learning/model-warmup.js +137 -2
- package/dist/learning/model-warmup.js.map +1 -1
- package/dist/learning/reasoning-trace.d.ts +1 -1
- package/dist/learning/reasoning-trace.d.ts.map +1 -1
- package/dist/learning/reasoning-trace.js.map +1 -1
- package/dist/learning/resilient-call.d.ts +15 -1
- package/dist/learning/resilient-call.d.ts.map +1 -1
- package/dist/learning/resilient-call.js +38 -22
- package/dist/learning/resilient-call.js.map +1 -1
- package/dist/learning/retry-patience.d.ts +139 -0
- package/dist/learning/retry-patience.d.ts.map +1 -0
- package/dist/learning/retry-patience.js +169 -0
- package/dist/learning/retry-patience.js.map +1 -0
- package/dist/learning/working-state.d.ts +7 -0
- package/dist/learning/working-state.d.ts.map +1 -1
- package/dist/learning/working-state.js +23 -1
- package/dist/learning/working-state.js.map +1 -1
- package/dist/mcp/catalog.d.ts +206 -26
- package/dist/mcp/catalog.d.ts.map +1 -1
- package/dist/mcp/catalog.js +664 -52
- package/dist/mcp/catalog.js.map +1 -1
- package/dist/mcp/client.d.ts +6 -0
- package/dist/mcp/client.d.ts.map +1 -1
- package/dist/mcp/client.js +35 -5
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/custom-server.d.ts +120 -0
- package/dist/mcp/custom-server.d.ts.map +1 -0
- package/dist/mcp/custom-server.js +330 -0
- package/dist/mcp/custom-server.js.map +1 -0
- package/dist/mcp/manager.d.ts +9 -1
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +15 -2
- package/dist/mcp/manager.js.map +1 -1
- package/dist/mcp/mcp-oauth.d.ts +28 -0
- package/dist/mcp/mcp-oauth.d.ts.map +1 -1
- package/dist/mcp/mcp-oauth.js +63 -8
- package/dist/mcp/mcp-oauth.js.map +1 -1
- package/dist/mcp/oauth-authorize.d.ts +51 -0
- package/dist/mcp/oauth-authorize.d.ts.map +1 -0
- package/dist/mcp/oauth-authorize.js +133 -0
- package/dist/mcp/oauth-authorize.js.map +1 -0
- package/dist/mcp/oauth-connect.d.ts +53 -0
- package/dist/mcp/oauth-connect.d.ts.map +1 -0
- package/dist/mcp/oauth-connect.js +103 -0
- package/dist/mcp/oauth-connect.js.map +1 -0
- package/dist/mcp/pin-verifier.d.ts +44 -0
- package/dist/mcp/pin-verifier.d.ts.map +1 -0
- package/dist/mcp/pin-verifier.js +102 -0
- package/dist/mcp/pin-verifier.js.map +1 -0
- package/dist/mcp/prereqs.d.ts +145 -0
- package/dist/mcp/prereqs.d.ts.map +1 -0
- package/dist/mcp/prereqs.js +245 -0
- package/dist/mcp/prereqs.js.map +1 -0
- package/dist/mcp/runtime.d.ts +59 -0
- package/dist/mcp/runtime.d.ts.map +1 -0
- package/dist/mcp/runtime.js +77 -0
- package/dist/mcp/runtime.js.map +1 -0
- package/dist/mcp/server.d.ts +21 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +29 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/settings.d.ts +164 -0
- package/dist/mcp/settings.d.ts.map +1 -0
- package/dist/mcp/settings.js +358 -0
- package/dist/mcp/settings.js.map +1 -0
- package/dist/mcp/types.d.ts +62 -0
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/mcp/types.js.map +1 -1
- package/dist/memory/vector-store.d.ts +12 -0
- package/dist/memory/vector-store.d.ts.map +1 -1
- package/dist/memory/vector-store.js +23 -0
- package/dist/memory/vector-store.js.map +1 -1
- package/dist/plugins/agent-plugin.d.ts +35 -0
- package/dist/plugins/agent-plugin.d.ts.map +1 -1
- package/dist/plugins/agent-plugin.js +142 -24
- package/dist/plugins/agent-plugin.js.map +1 -1
- package/dist/sandbox/manager.d.ts +12 -0
- package/dist/sandbox/manager.d.ts.map +1 -1
- package/dist/sandbox/manager.js +43 -2
- package/dist/sandbox/manager.js.map +1 -1
- package/dist/tools/modality/browser.d.ts +39 -3
- package/dist/tools/modality/browser.d.ts.map +1 -1
- package/dist/tools/modality/browser.js +113 -16
- package/dist/tools/modality/browser.js.map +1 -1
- package/dist/tools/optional-deps.d.ts +48 -0
- package/dist/tools/optional-deps.d.ts.map +1 -0
- package/dist/tools/optional-deps.js +42 -0
- package/dist/tools/optional-deps.js.map +1 -0
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +68 -11
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/remediation-ladder.d.ts.map +1 -1
- package/dist/tools/remediation-ladder.js +9 -1
- package/dist/tools/remediation-ladder.js.map +1 -1
- package/dist/tools/tool-loop.d.ts +41 -3
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +317 -9
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/web-dashboard/chat-retry.d.ts +11 -1
- package/dist/web-dashboard/chat-retry.d.ts.map +1 -1
- package/dist/web-dashboard/chat-retry.js +18 -4
- package/dist/web-dashboard/chat-retry.js.map +1 -1
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +349 -2
- package/dist/web-dashboard/server.js.map +1 -1
- package/package.json +6 -2
- package/src/web-dashboard/public/assets/{index-DeD3L0kG.js → index-Bik91KJh.js} +115 -89
- package/src/web-dashboard/public/assets/index-Bik91KJh.js.map +1 -0
- package/src/web-dashboard/public/index.html +1 -1
- package/src/web-dashboard/public/assets/index-DeD3L0kG.js.map +0 -1
package/dist/cli/sdk.js
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
import { Command } from 'commander';
|
|
18
18
|
import { join } from 'node:path';
|
|
19
19
|
import { existsSync } from 'node:fs';
|
|
20
|
-
import { BaseCommand } from './commands.js';
|
|
20
|
+
import { BaseCommand, getCliName } from './commands.js';
|
|
21
21
|
import { logger } from '../utils/logger.js';
|
|
22
22
|
import { scaffold, listTemplates } from '../agent-sdk/src/scaffold.js';
|
|
23
23
|
import { registerAgent, unregisterAgent } from '../agent-sdk/src/register.js';
|
|
@@ -57,8 +57,9 @@ export class SDKCommand extends BaseCommand {
|
|
|
57
57
|
.description('Register a custom agent with the orchestrator')
|
|
58
58
|
.argument('<className>', 'Exported class name (e.g. CodeFormatter)')
|
|
59
59
|
.argument('<agentType>', 'Agent type for task plans (e.g. code-formatter)')
|
|
60
|
-
.argument('<sourceModule>', 'Import module path relative to
|
|
60
|
+
.argument('<sourceModule>', 'Import module path relative to src/agents/ (e.g. ./agents/my-agent.js)')
|
|
61
61
|
.option('-i, --icon <emoji>', 'Emoji icon for the agent (default: 🧩)', '🧩')
|
|
62
|
+
.option('-d, --description <text>', 'Description shown in plans and the progress UI')
|
|
62
63
|
.option('--orchestrator-path <path>', 'Path to orchestrator.ts (auto-detected if not set)')
|
|
63
64
|
.action(async (className, agentType, sourceModule, options) => {
|
|
64
65
|
await this.handleRegister(className, agentType, sourceModule, options);
|
|
@@ -68,6 +69,7 @@ export class SDKCommand extends BaseCommand {
|
|
|
68
69
|
const unregisterCmd = new Command('unregister')
|
|
69
70
|
.description('Remove a custom agent from the orchestrator')
|
|
70
71
|
.argument('<agentType>', 'Agent type to remove (e.g. code-formatter)')
|
|
72
|
+
.option('-c, --class-name <name>', 'Exported class name — also removes the import it added')
|
|
71
73
|
.option('--orchestrator-path <path>', 'Path to orchestrator.ts (auto-detected if not set)')
|
|
72
74
|
.action(async (agentType, options) => {
|
|
73
75
|
await this.handleUnregister(agentType, options);
|
|
@@ -117,7 +119,8 @@ export class SDKCommand extends BaseCommand {
|
|
|
117
119
|
console.log(' npm run build');
|
|
118
120
|
console.log(' npm test');
|
|
119
121
|
console.log('');
|
|
120
|
-
logger.info(
|
|
122
|
+
logger.info(`To wire it in: ${getCliName()} sdk register ${agentName} <agent-type> ./agents/${agentName.toLowerCase()}.js`);
|
|
123
|
+
console.log(' (source checkout only — for an npm install, ship a plugin file to ~/.nuvira/agents/)');
|
|
121
124
|
}
|
|
122
125
|
catch (err) {
|
|
123
126
|
const msg = err instanceof Error ? err.message : String(err);
|
|
@@ -143,6 +146,8 @@ export class SDKCommand extends BaseCommand {
|
|
|
143
146
|
console.log(' Subcommands:');
|
|
144
147
|
console.log(' scaffold Generate a new custom agent project');
|
|
145
148
|
console.log(' templates List available scaffold templates');
|
|
149
|
+
console.log(' register Wire a custom agent into the orchestrator (source checkout)');
|
|
150
|
+
console.log(' unregister Remove a registered custom agent');
|
|
146
151
|
console.log(' info Show this information');
|
|
147
152
|
console.log('');
|
|
148
153
|
console.log(' Entry points:');
|
|
@@ -168,6 +173,7 @@ export class SDKCommand extends BaseCommand {
|
|
|
168
173
|
className,
|
|
169
174
|
agentType,
|
|
170
175
|
icon: options.icon,
|
|
176
|
+
...(options.description ? { description: options.description } : {}),
|
|
171
177
|
orchestratorPath: options.orchestratorPath,
|
|
172
178
|
});
|
|
173
179
|
if (result.success) {
|
|
@@ -191,6 +197,7 @@ export class SDKCommand extends BaseCommand {
|
|
|
191
197
|
logger.info(`Unregistering agent '${agentType}'...`);
|
|
192
198
|
const result = unregisterAgent({
|
|
193
199
|
agentType,
|
|
200
|
+
...(options.className ? { className: options.className } : {}),
|
|
194
201
|
orchestratorPath: options.orchestratorPath,
|
|
195
202
|
});
|
|
196
203
|
if (result.success) {
|
package/dist/cli/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/cli/sdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/cli/sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-install-prompt.d.ts","sourceRoot":"","sources":["../../src/cli/tool-install-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AASH,kEAAkE;AAClE,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9D,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAsRD,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;
|
|
1
|
+
{"version":3,"file":"tool-install-prompt.d.ts","sourceRoot":"","sources":["../../src/cli/tool-install-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AASH,kEAAkE;AAClE,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9D,sDAAsD;AACtD,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAsRD,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AA8BD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAY1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAYrF;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEzF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAInD;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEjE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EACvB,cAAc,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAC7C,MAAM,CA0BR;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAOtE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAMR;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACnC,MAAM,GAAG,IAAI,CAoCf;AAID;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,iBAAiB,CAAC,CAgC5B;AAED,+GAA+G;AAC/G,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CASpE"}
|
|
@@ -309,6 +309,22 @@ export function isKnownSystemTool(tool) {
|
|
|
309
309
|
* takeover (it would fire on any error text that happens to contain it).
|
|
310
310
|
*/
|
|
311
311
|
const MISSING_BINARY_RE = /(?:command not found|not found in (?:the )?\$?PATH|no such file or directory|\bENOENT\b|exit (?:code )?127|\.sh: [a-z0-9_.+-]+: command not found|is not recognized as an internal or external command|is not recognized as the name of a cmdlet|not recognized as the name of a cmdlet|exit (?:code )?9009)/i;
|
|
312
|
+
/**
|
|
313
|
+
* A service behind a CLI binary that is DOWN — the opposite of a missing binary.
|
|
314
|
+
*
|
|
315
|
+
* WHY THIS EXISTS (live, 2026-10-12). Docker 29.7 was installed at
|
|
316
|
+
* /opt/homebrew/bin/docker with its daemon stopped. `docker ps` failed with
|
|
317
|
+
* "failed to connect to the docker API at unix:///…/docker.sock; check if the
|
|
318
|
+
* path is correct and if the daemon is running: dial unix …: connect: no such
|
|
319
|
+
* file or directory". The tail of that message matches MISSING_BINARY_RE's bare
|
|
320
|
+
* `no such file or directory`, so the takeover fired, told the user docker was
|
|
321
|
+
* missing, and offered `brew install --cask docker` for a tool that was already
|
|
322
|
+
* installed — exactly the wrong fix, since the daemon is what needs starting.
|
|
323
|
+
*
|
|
324
|
+
* The signal names the failing SERVICE (docker's socket / colima / the daemon
|
|
325
|
+
* itself), so a genuine "docker: command not found" still reports as missing.
|
|
326
|
+
*/
|
|
327
|
+
const SERVICE_DOWN_RE = /(?:cannot connect to the docker daemon|is the docker daemon running|failed to connect to the docker API|error during connect|docker daemon is not running|dial (?:unix|tcp) [^\s)]+: connect: (?:no such file or directory|connection refused))/i;
|
|
312
328
|
/**
|
|
313
329
|
* Candidate tool names in a shell command line: the first token of every
|
|
314
330
|
* pipeline / `&&` / `;` segment, with `sudo`/`env`-style prefixes stripped.
|
|
@@ -338,7 +354,13 @@ export function commandToolNames(command) {
|
|
|
338
354
|
* remembers: "agent kicks in and says I can install all of those software".
|
|
339
355
|
*/
|
|
340
356
|
export function installableToolsFromFailure(command, output) {
|
|
341
|
-
|
|
357
|
+
const out = String(output ?? '');
|
|
358
|
+
if (!MISSING_BINARY_RE.test(out))
|
|
359
|
+
return [];
|
|
360
|
+
// The binary may be present while the SERVICE behind it is down (docker with
|
|
361
|
+
// a stopped daemon reads as "no such file or directory" on the socket). That
|
|
362
|
+
// is a service to START, never a package to install — see SERVICE_DOWN_RE.
|
|
363
|
+
if (SERVICE_DOWN_RE.test(out))
|
|
342
364
|
return [];
|
|
343
365
|
const found = [];
|
|
344
366
|
for (const name of commandToolNames(command)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-install-prompt.js","sourceRoot":"","sources":["../../src/cli/tool-install-prompt.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-install-prompt.js","sourceRoot":"","sources":["../../src/cli/tool-install-prompt.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/tools.d.ts
CHANGED
|
@@ -10,6 +10,22 @@ import { Command } from 'commander';
|
|
|
10
10
|
import { BaseCommand } from './commands.js';
|
|
11
11
|
export declare class ToolsCommand extends BaseCommand {
|
|
12
12
|
create(): Command;
|
|
13
|
+
/**
|
|
14
|
+
* Is an optional tool actually available? Delegates to the TOOL's own probe for
|
|
15
|
+
* `browser` (so "installed" means the same thing here as it does at call time)
|
|
16
|
+
* and resolves the recipe's package otherwise. The probe cache is cleared first
|
|
17
|
+
* so the answer reflects THIS moment, not the first check of the process.
|
|
18
|
+
*/
|
|
19
|
+
private optionalInstalled;
|
|
20
|
+
/** `nuvira tools optional` — what is optional, and whether it is installed. */
|
|
21
|
+
private listOptional;
|
|
22
|
+
/**
|
|
23
|
+
* `nuvira tools install <name>` — run the recipe, then VERIFY by re-probing
|
|
24
|
+
* the same availability check the tool itself uses. The command reports what
|
|
25
|
+
* it ran and what the probe says afterwards; it never reports success on the
|
|
26
|
+
* strength of the install command's exit code alone.
|
|
27
|
+
*/
|
|
28
|
+
private installOptional;
|
|
13
29
|
private toolsets;
|
|
14
30
|
private listTools;
|
|
15
31
|
private showTool;
|
package/dist/cli/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/cli/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/cli/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQ5C,qBAAa,YAAa,SAAQ,WAAW;IAC3C,MAAM,IAAI,OAAO;IAqCjB;;;;;OAKG;YACW,iBAAiB;IAc/B,+EAA+E;YACjE,YAAY;IAW1B;;;;;OAKG;YACW,eAAe;IAqD7B,OAAO,CAAC,QAAQ;IAuChB,OAAO,CAAC,SAAS;IA4BjB,OAAO,CAAC,QAAQ;CAiBjB"}
|
package/dist/cli/tools.js
CHANGED
|
@@ -7,10 +7,13 @@
|
|
|
7
7
|
* re-implementation (STANDING RULE).
|
|
8
8
|
*/
|
|
9
9
|
import { Command } from 'commander';
|
|
10
|
+
import { createRequire } from 'node:module';
|
|
10
11
|
import { BaseCommand } from './commands.js';
|
|
11
12
|
import { logger } from '../utils/logger.js';
|
|
13
|
+
import { runShellSync } from '../utils/shell.js';
|
|
12
14
|
import { listTools, getTool, toolJsonSchemas } from '../tools/registry.js';
|
|
13
15
|
import { getToolsetStatus, setToolsetEnabled, validateToolsetCoverage } from '../tools/toolsets.js';
|
|
16
|
+
import { OPTIONAL_TOOL_RECIPES, describeOptionalTools, getOptionalToolRecipe } from '../tools/optional-deps.js';
|
|
14
17
|
import { ConfigManager } from '../config/manager.js';
|
|
15
18
|
export class ToolsCommand extends BaseCommand {
|
|
16
19
|
create() {
|
|
@@ -27,9 +30,106 @@ export class ToolsCommand extends BaseCommand {
|
|
|
27
30
|
.description('List toolset groups (capability gating) with enabled state; enable/disable a group')
|
|
28
31
|
.option('-e, --enable <name>', 'Enable a toolset')
|
|
29
32
|
.option('-d, --disable <name>', 'Disable a toolset (removes its tools from the model schema + blocks execution)')
|
|
30
|
-
.action((opts) => this.toolsets(opts)))
|
|
33
|
+
.action((opts) => this.toolsets(opts)))
|
|
34
|
+
.addCommand(new Command('install')
|
|
35
|
+
.description('Install the optional dependency an optional tool needs (see `nuvira tools optional`)')
|
|
36
|
+
.argument('[name]', 'Optional tool to install (e.g. browser); omit to list them')
|
|
37
|
+
.option('--package-only', 'Install the npm package but skip its one-time binary download')
|
|
38
|
+
.action((name, opts) => this.installOptional(name, opts)))
|
|
39
|
+
.addCommand(new Command('optional')
|
|
40
|
+
.description('List tools that are shipped but need an optional dependency installed')
|
|
41
|
+
.action(() => this.listOptional()));
|
|
31
42
|
return command;
|
|
32
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Is an optional tool actually available? Delegates to the TOOL's own probe for
|
|
46
|
+
* `browser` (so "installed" means the same thing here as it does at call time)
|
|
47
|
+
* and resolves the recipe's package otherwise. The probe cache is cleared first
|
|
48
|
+
* so the answer reflects THIS moment, not the first check of the process.
|
|
49
|
+
*/
|
|
50
|
+
async optionalInstalled(recipeId, packageName) {
|
|
51
|
+
if (recipeId === 'browser') {
|
|
52
|
+
const { isBrowserAvailable, resetBrowserAvailability } = await import('../tools/modality/browser.js');
|
|
53
|
+
resetBrowserAvailability();
|
|
54
|
+
return isBrowserAvailable();
|
|
55
|
+
}
|
|
56
|
+
try {
|
|
57
|
+
createRequire(import.meta.url).resolve(packageName);
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/** `nuvira tools optional` — what is optional, and whether it is installed. */
|
|
65
|
+
async listOptional() {
|
|
66
|
+
logger.highlight('\n📦 Optional tools (shipped, but not usable until their dependency is installed)');
|
|
67
|
+
console.log('');
|
|
68
|
+
for (const recipe of OPTIONAL_TOOL_RECIPES) {
|
|
69
|
+
const installed = await this.optionalInstalled(recipe.id, recipe.packageName);
|
|
70
|
+
console.log(` ${installed ? '🟢 installed' : '⛔ not installed'} ${recipe.id.padEnd(10)} ${recipe.enables}`);
|
|
71
|
+
}
|
|
72
|
+
console.log('');
|
|
73
|
+
logger.info('Install one with `nuvira tools install <name>`.');
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* `nuvira tools install <name>` — run the recipe, then VERIFY by re-probing
|
|
77
|
+
* the same availability check the tool itself uses. The command reports what
|
|
78
|
+
* it ran and what the probe says afterwards; it never reports success on the
|
|
79
|
+
* strength of the install command's exit code alone.
|
|
80
|
+
*/
|
|
81
|
+
async installOptional(name, opts) {
|
|
82
|
+
const recipe = name ? getOptionalToolRecipe(name) : null;
|
|
83
|
+
if (!recipe) {
|
|
84
|
+
logger.error(name ? `Unknown optional tool: ${name}` : 'Name which optional tool to install.');
|
|
85
|
+
for (const line of describeOptionalTools())
|
|
86
|
+
console.log(` ${line}`);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
// Verify with the tool's OWN probe, not with our own bookkeeping.
|
|
90
|
+
const probe = () => this.optionalInstalled(recipe.id, recipe.packageName);
|
|
91
|
+
const already = await probe();
|
|
92
|
+
logger.highlight(`\n📦 ${recipe.id} — ${recipe.enables}`);
|
|
93
|
+
logger.info(`${recipe.packageName}: ${already ? 'already installed' : 'not installed'}`);
|
|
94
|
+
if (!already) {
|
|
95
|
+
logger.info(`Running: ${recipe.installPackage}`);
|
|
96
|
+
const install = runShellSync(recipe.installPackage, { timeoutMs: 600_000, source: 'tools-install' });
|
|
97
|
+
if (!install.success) {
|
|
98
|
+
logger.error(`Install failed (exit ${install.exitCode}).`);
|
|
99
|
+
const detail = (install.stderr || install.stdout).trim().split('\n').slice(-6).join('\n');
|
|
100
|
+
if (detail)
|
|
101
|
+
console.log(detail);
|
|
102
|
+
logger.info(recipe.manualHint);
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
logger.success(`${recipe.packageName} installed.`);
|
|
106
|
+
}
|
|
107
|
+
if (recipe.installBinaries && !opts.packageOnly) {
|
|
108
|
+
// The npm package is only the DRIVER — playwright cannot open a page until
|
|
109
|
+
// its browser binary is downloaded, so this step is part of "installed".
|
|
110
|
+
logger.info(`Running: ${recipe.installBinaries} (one-time browser download)`);
|
|
111
|
+
const binaries = runShellSync(recipe.installBinaries, { timeoutMs: 900_000, source: 'tools-install' });
|
|
112
|
+
if (!binaries.success) {
|
|
113
|
+
logger.warn(`Could not download the browser binary (exit ${binaries.exitCode}).`);
|
|
114
|
+
logger.info(`Finish it with: ${recipe.installBinaries}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else if (recipe.installBinaries) {
|
|
118
|
+
logger.warn(`Skipped the binary download (--package-only). Finish with: ${recipe.installBinaries}`);
|
|
119
|
+
}
|
|
120
|
+
// Verify with the tool's OWN probe, not with our own bookkeeping.
|
|
121
|
+
const available = await probe();
|
|
122
|
+
if (available) {
|
|
123
|
+
logger.success(`${recipe.id} tool is now available.`);
|
|
124
|
+
if (recipe.id === 'browser') {
|
|
125
|
+
logger.info('Try it: ask the agent to open a page, and the session stays open across steps (close it with action "close").');
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
logger.warn(`${recipe.id} is still reported unavailable by the tool's own check.`);
|
|
130
|
+
logger.info(recipe.manualHint);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
33
133
|
toolsets(opts) {
|
|
34
134
|
// One ConfigManager for the whole invocation: the status read must see the
|
|
35
135
|
// file, not the empty all-enabled default (readToolsetsState(undefined) = {}).
|
package/dist/cli/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/cli/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/cli/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/config/manager.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BuffConfig, ProviderConfig } from './types.js';
|
|
2
2
|
import { Vault } from '../enterprise/vault.js';
|
|
3
3
|
import { WorkspaceStore } from './workspace.js';
|
|
4
|
+
import { type ResolvedMCPSettings } from '../mcp/settings.js';
|
|
4
5
|
/** True when a key value is a docs placeholder / env-var name, not a real credential. */
|
|
5
6
|
export declare function isPlaceholderApiKey(key: string | undefined | null): boolean;
|
|
6
7
|
/**
|
|
@@ -116,6 +117,11 @@ export declare class ConfigManager {
|
|
|
116
117
|
* Get the full config
|
|
117
118
|
*/
|
|
118
119
|
getAll(): BuffConfig;
|
|
120
|
+
/**
|
|
121
|
+
* The RESOLVED `mcp` settings (defaults + bounds applied) — the accessor the
|
|
122
|
+
* MCP layer and the dashboard share, so both read the same numbers.
|
|
123
|
+
*/
|
|
124
|
+
getMcpConfig(): ResolvedMCPSettings;
|
|
119
125
|
/**
|
|
120
126
|
* Save current configuration to disk
|
|
121
127
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/config/manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAgB,cAAc,EAAE,MAAM,YAAY,CAAC;AAMtE,OAAO,EAAE,KAAK,EAAgC,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAqB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/config/manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAgB,cAAc,EAAE,MAAM,YAAY,CAAC;AAMtE,OAAO,EAAE,KAAK,EAAgC,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAqB,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAsB,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AA6BlF,yFAAyF;AACzF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAK3E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CActF;AA8CD,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,GAAG,CAAqC;IAChD,OAAO,CAAC,SAAS,CAAS;IAC1B,kFAAkF;IAClF,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B;;;;;OAKG;IACH,OAAO,CAAC,KAAK,CAAsB;IACnC,+DAA+D;IAC/D,OAAO,CAAC,cAAc,CAA+B;gBAEzC,SAAS,CAAC,EAAE,MAAM;IAuB9B,oEAAoE;IACpE,OAAO,CAAC,SAAS;IAQjB;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAcxB,6EAA6E;IAC7E,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI;IAItC,iEAAiE;IACjE,QAAQ,IAAI,KAAK,GAAG,IAAI;IAIxB;;;;;OAKG;IACH,iBAAiB,IAAI,cAAc;IAOnC;;OAEG;IACH,OAAO,CAAC,UAAU;IAoMlB;;;;;;;;OAQG;IACH,OAAO,CAAC,eAAe;IAgCvB;;;;;;;;;;OAUG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAqCzC;;;;;OAKG;IACG,kBAAkB,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IA0E9E;;;;;;;;;OASG;IACH,OAAO,CAAC,gBAAgB;IA6BxB;;;;;;;;;OASG;IACH,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,cAAc,CAAA;KAAE;IAU9E;;OAEG;IACH,MAAM,IAAI,UAAU;IAKpB;;;OAGG;IACH,YAAY,IAAI,mBAAmB;IAKnC;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IAgJvC;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAyC7D;;;;;;;;;OASG;IACH,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAwBjD;;;;OAIG;IACH,mBAAmB,IAAI,IAAI;CAe5B"}
|
package/dist/config/manager.js
CHANGED
|
@@ -7,6 +7,7 @@ import { resolveDefaultProvider } from '../learning/model-selection.js';
|
|
|
7
7
|
import { CATALOG_ENV_VARS, isCatalogKeyless } from '../inference/provider-catalog.js';
|
|
8
8
|
import { Vault, isVaultRef, VAULT_REF_PREFIX } from '../enterprise/vault.js';
|
|
9
9
|
import { getWorkspaceStore } from './workspace.js';
|
|
10
|
+
import { resolveMcpSettings } from '../mcp/settings.js';
|
|
10
11
|
// NO hardcoded provider/model defaults: the default provider is the routing
|
|
11
12
|
// directive 'auto' (the best AVAILABLE provider is resolved at runtime from
|
|
12
13
|
// the user's keys + verified models — see resolveDefaultProvider), and every
|
|
@@ -96,6 +97,18 @@ const DEFAULT_CONFIG = {
|
|
|
96
97
|
tools: {
|
|
97
98
|
toolsets: {},
|
|
98
99
|
},
|
|
100
|
+
// MCP: written out explicitly so `nuvira config get mcp.maxToolsPerServer`
|
|
101
|
+
// answers without a server installed, and so the caps have ONE home
|
|
102
|
+
// (`src/mcp/settings.ts` owns the same defaults + bounds).
|
|
103
|
+
mcp: {
|
|
104
|
+
enabled: true,
|
|
105
|
+
autoConnect: true,
|
|
106
|
+
connectTimeoutMs: 2000,
|
|
107
|
+
maxToolsPerServer: 15,
|
|
108
|
+
maxToolsTotal: 60,
|
|
109
|
+
subagent: { inherit: 'conservative' },
|
|
110
|
+
servers: {},
|
|
111
|
+
},
|
|
99
112
|
};
|
|
100
113
|
export class ConfigManager {
|
|
101
114
|
config;
|
|
@@ -212,6 +225,12 @@ export class ConfigManager {
|
|
|
212
225
|
config.pricing = { ...(DEFAULT_CONFIG.pricing || {}) };
|
|
213
226
|
// Deep clone tools (toolsets) defaults
|
|
214
227
|
config.tools = { toolsets: { ...(DEFAULT_CONFIG.tools?.toolsets || {}) } };
|
|
228
|
+
// Deep clone MCP defaults (nested section + per-server map)
|
|
229
|
+
config.mcp = {
|
|
230
|
+
...(DEFAULT_CONFIG.mcp || {}),
|
|
231
|
+
subagent: { ...(DEFAULT_CONFIG.mcp?.subagent || {}) },
|
|
232
|
+
servers: { ...(DEFAULT_CONFIG.mcp?.servers || {}) },
|
|
233
|
+
};
|
|
215
234
|
if (existsSync(this.configPath)) {
|
|
216
235
|
try {
|
|
217
236
|
const raw = readFileSync(this.configPath, 'utf-8');
|
|
@@ -270,6 +289,25 @@ export class ConfigManager {
|
|
|
270
289
|
toolsets: { ...(config.tools?.toolsets || {}), ...(userConfig.tools.toolsets || {}) },
|
|
271
290
|
};
|
|
272
291
|
}
|
|
292
|
+
// Merge MCP config. Deep per-key merge so separate `config set`
|
|
293
|
+
// commands preserve each other (maxToolsTotal + subagent.inherit +
|
|
294
|
+
// servers.<name>.runtime), and per-server so one server's override
|
|
295
|
+
// never drops another's.
|
|
296
|
+
if (userConfig.mcp) {
|
|
297
|
+
const loadedMcp = userConfig.mcp;
|
|
298
|
+
config.mcp = {
|
|
299
|
+
...(config.mcp || {}),
|
|
300
|
+
...loadedMcp,
|
|
301
|
+
subagent: { ...(config.mcp?.subagent || {}), ...(loadedMcp.subagent || {}) },
|
|
302
|
+
servers: {
|
|
303
|
+
...(config.mcp?.servers || {}),
|
|
304
|
+
...Object.fromEntries(Object.entries(loadedMcp.servers ?? {}).map(([name, override]) => [
|
|
305
|
+
name,
|
|
306
|
+
{ ...(config.mcp?.servers?.[name] || {}), ...(override || {}) },
|
|
307
|
+
])),
|
|
308
|
+
},
|
|
309
|
+
};
|
|
310
|
+
}
|
|
273
311
|
// Merge I7 skills config (disabled[] + registries[]) — whole-array
|
|
274
312
|
// semantics: an empty array is meaningful ("nothing disabled") and
|
|
275
313
|
// must survive a load.
|
|
@@ -564,6 +602,14 @@ export class ConfigManager {
|
|
|
564
602
|
this.refreshIfChanged();
|
|
565
603
|
return { ...this.config };
|
|
566
604
|
}
|
|
605
|
+
/**
|
|
606
|
+
* The RESOLVED `mcp` settings (defaults + bounds applied) — the accessor the
|
|
607
|
+
* MCP layer and the dashboard share, so both read the same numbers.
|
|
608
|
+
*/
|
|
609
|
+
getMcpConfig() {
|
|
610
|
+
this.refreshIfChanged();
|
|
611
|
+
return resolveMcpSettings(this.config.mcp ?? null);
|
|
612
|
+
}
|
|
567
613
|
/**
|
|
568
614
|
* Save current configuration to disk
|
|
569
615
|
*/
|
|
@@ -640,6 +686,26 @@ export class ConfigManager {
|
|
|
640
686
|
image: { ...(this.config.modality?.image || {}), ...(config.modality.image || {}) },
|
|
641
687
|
};
|
|
642
688
|
}
|
|
689
|
+
if (config.mcp) {
|
|
690
|
+
// Per-key merge within the section, per-server within `servers`, so
|
|
691
|
+
// `config set mcp.maxToolsTotal 40` never wipes
|
|
692
|
+
// `mcp.servers.context7.runtime`, and setting two different servers'
|
|
693
|
+
// overrides preserves both (`servers: {}` in the section REPLACES nothing
|
|
694
|
+
// it did not name).
|
|
695
|
+
const incoming = config.mcp;
|
|
696
|
+
this.config.mcp = {
|
|
697
|
+
...(this.config.mcp || {}),
|
|
698
|
+
...incoming,
|
|
699
|
+
subagent: { ...(this.config.mcp?.subagent || {}), ...(incoming.subagent || {}) },
|
|
700
|
+
servers: {
|
|
701
|
+
...(this.config.mcp?.servers || {}),
|
|
702
|
+
...Object.fromEntries(Object.entries(incoming.servers ?? {}).map(([name, override]) => [
|
|
703
|
+
name,
|
|
704
|
+
{ ...(this.config.mcp?.servers?.[name] || {}), ...(override || {}) },
|
|
705
|
+
])),
|
|
706
|
+
},
|
|
707
|
+
};
|
|
708
|
+
}
|
|
643
709
|
if (config.dashboard) {
|
|
644
710
|
// `dashboard: { cwd: undefined }` CLEARS the setting — JSON.stringify drops
|
|
645
711
|
// the undefined, so the key leaves the file (the same "explicit empty
|