scoutline 0.10.2 → 0.12.0
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 +99 -44
- package/dist/capabilities/diagnostics.d.ts +75 -0
- package/dist/capabilities/diagnostics.d.ts.map +1 -1
- package/dist/capabilities/diagnostics.js.map +1 -1
- package/dist/capabilities/quota.d.ts +64 -1
- package/dist/capabilities/quota.d.ts.map +1 -1
- package/dist/capabilities/quota.js.map +1 -1
- package/dist/capabilities/vision.d.ts +4 -3
- package/dist/capabilities/vision.d.ts.map +1 -1
- package/dist/capabilities/vision.js +7 -5
- package/dist/capabilities/vision.js.map +1 -1
- package/dist/commands/code.d.ts +9 -1
- package/dist/commands/code.d.ts.map +1 -1
- package/dist/commands/code.js +4 -4
- package/dist/commands/code.js.map +1 -1
- package/dist/commands/crawl.d.ts.map +1 -1
- package/dist/commands/crawl.js +14 -3
- package/dist/commands/crawl.js.map +1 -1
- package/dist/commands/doctor.d.ts +71 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +96 -15
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts +186 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +1221 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/map.d.ts.map +1 -1
- package/dist/commands/map.js +16 -3
- package/dist/commands/map.js.map +1 -1
- package/dist/commands/quota.d.ts +32 -0
- package/dist/commands/quota.d.ts.map +1 -1
- package/dist/commands/quota.js +165 -24
- package/dist/commands/quota.js.map +1 -1
- package/dist/commands/read.d.ts.map +1 -1
- package/dist/commands/read.js +9 -3
- package/dist/commands/read.js.map +1 -1
- package/dist/commands/repo.d.ts.map +1 -1
- package/dist/commands/repo.js +5 -3
- package/dist/commands/repo.js.map +1 -1
- package/dist/commands/research.d.ts +35 -7
- package/dist/commands/research.d.ts.map +1 -1
- package/dist/commands/research.js +93 -15
- package/dist/commands/research.js.map +1 -1
- package/dist/commands/tools.d.ts +8 -0
- package/dist/commands/tools.d.ts.map +1 -1
- package/dist/commands/tools.js +4 -4
- package/dist/commands/tools.js.map +1 -1
- package/dist/commands/vision.d.ts +10 -0
- package/dist/commands/vision.d.ts.map +1 -1
- package/dist/commands/vision.js +25 -2
- package/dist/commands/vision.js.map +1 -1
- package/dist/index.d.ts +136 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +894 -298
- package/dist/index.js.map +1 -1
- package/dist/lib/api-client.d.ts +1 -1
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +6 -2
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/cache.d.ts +9 -2
- package/dist/lib/cache.d.ts.map +1 -1
- package/dist/lib/cache.js +9 -2
- package/dist/lib/cache.js.map +1 -1
- package/dist/lib/code-mode.d.ts +8 -0
- package/dist/lib/code-mode.d.ts.map +1 -1
- package/dist/lib/code-mode.js +3 -1
- package/dist/lib/code-mode.js.map +1 -1
- package/dist/lib/config-store.d.ts +165 -0
- package/dist/lib/config-store.d.ts.map +1 -0
- package/dist/lib/config-store.js +332 -0
- package/dist/lib/config-store.js.map +1 -0
- package/dist/lib/config.d.ts +2 -2
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +19 -11
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/consumption.d.ts +144 -0
- package/dist/lib/consumption.d.ts.map +1 -0
- package/dist/lib/consumption.js +161 -0
- package/dist/lib/consumption.js.map +1 -0
- package/dist/lib/errors.d.ts +11 -0
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js +14 -0
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/execution.d.ts +32 -4
- package/dist/lib/execution.d.ts.map +1 -1
- package/dist/lib/execution.js +156 -13
- package/dist/lib/execution.js.map +1 -1
- package/dist/lib/mcp-client.d.ts +12 -0
- package/dist/lib/mcp-client.d.ts.map +1 -1
- package/dist/lib/mcp-client.js +16 -7
- package/dist/lib/mcp-client.js.map +1 -1
- package/dist/lib/mcp-config.d.ts +10 -0
- package/dist/lib/mcp-config.d.ts.map +1 -1
- package/dist/lib/mcp-config.js +13 -7
- package/dist/lib/mcp-config.js.map +1 -1
- package/dist/lib/monitor-client.d.ts +19 -3
- package/dist/lib/monitor-client.d.ts.map +1 -1
- package/dist/lib/monitor-client.js +21 -5
- package/dist/lib/monitor-client.js.map +1 -1
- package/dist/lib/provider-fallback.d.ts +150 -0
- package/dist/lib/provider-fallback.d.ts.map +1 -0
- package/dist/lib/provider-fallback.js +510 -0
- package/dist/lib/provider-fallback.js.map +1 -0
- package/dist/lib/quota-mapping.d.ts +402 -0
- package/dist/lib/quota-mapping.d.ts.map +1 -0
- package/dist/lib/quota-mapping.js +539 -0
- package/dist/lib/quota-mapping.js.map +1 -0
- package/dist/lib/quota-store.d.ts +271 -0
- package/dist/lib/quota-store.d.ts.map +1 -0
- package/dist/lib/quota-store.js +540 -0
- package/dist/lib/quota-store.js.map +1 -0
- package/dist/lib/trigger-detection.d.ts +149 -0
- package/dist/lib/trigger-detection.d.ts.map +1 -0
- package/dist/lib/trigger-detection.js +149 -0
- package/dist/lib/trigger-detection.js.map +1 -0
- package/dist/lib/tty.d.ts +8 -1
- package/dist/lib/tty.d.ts.map +1 -1
- package/dist/lib/tty.js +53 -1
- package/dist/lib/tty.js.map +1 -1
- package/dist/providers/brave/adapter.d.ts +26 -0
- package/dist/providers/brave/adapter.d.ts.map +1 -1
- package/dist/providers/brave/adapter.js +66 -4
- package/dist/providers/brave/adapter.js.map +1 -1
- package/dist/providers/brave/client.d.ts +46 -2
- package/dist/providers/brave/client.d.ts.map +1 -1
- package/dist/providers/brave/client.js +55 -3
- package/dist/providers/brave/client.js.map +1 -1
- package/dist/providers/exa/adapter.d.ts.map +1 -1
- package/dist/providers/exa/adapter.js +10 -1
- package/dist/providers/exa/adapter.js.map +1 -1
- package/dist/providers/firecrawl/adapter.d.ts.map +1 -1
- package/dist/providers/firecrawl/adapter.js +13 -3
- package/dist/providers/firecrawl/adapter.js.map +1 -1
- package/dist/providers/minimax/adapter.d.ts.map +1 -1
- package/dist/providers/minimax/adapter.js +4 -0
- package/dist/providers/minimax/adapter.js.map +1 -1
- package/dist/providers/selection.d.ts +114 -1
- package/dist/providers/selection.d.ts.map +1 -1
- package/dist/providers/selection.js +99 -3
- package/dist/providers/selection.js.map +1 -1
- package/dist/providers/tavily/adapter.d.ts.map +1 -1
- package/dist/providers/tavily/adapter.js +2 -0
- package/dist/providers/tavily/adapter.js.map +1 -1
- package/dist/providers/types.d.ts +33 -1
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js +8 -0
- package/dist/providers/types.js.map +1 -1
- package/dist/providers/zai/adapter.d.ts.map +1 -1
- package/dist/providers/zai/adapter.js +18 -5
- package/dist/providers/zai/adapter.js.map +1 -1
- package/package.json +2 -1
|
@@ -104,14 +104,72 @@ function readRequestIdSync(stateFilePath) {
|
|
|
104
104
|
return "unknown";
|
|
105
105
|
}
|
|
106
106
|
/**
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
107
|
+
* Wrap a string in POSIX-shell-safe double quotes so a resume command
|
|
108
|
+
* can be copy/pasted into a shell. Backslash-escapes the four POSIX
|
|
109
|
+
* special characters inside double quotes (`\`, `$`, backtick, and `"`).
|
|
110
|
+
* Literal newlines are preserved (POSIX keeps them inside double quotes);
|
|
111
|
+
* backslash-escaping a newline would create a line-continuation that the
|
|
112
|
+
* shell silently deletes, changing the query and the state-file hash.
|
|
113
|
+
*
|
|
114
|
+
* The command itself is rendered as a single string literal here — the
|
|
115
|
+
* tests assert `resumeCommand === 'scoutline --provider exa research
|
|
116
|
+
* \"Q with backslash \\\" \" --model pro ...'` style, so callers do
|
|
117
|
+
* not need to round-trip through a real shell.
|
|
118
|
+
*/
|
|
119
|
+
function shellQuote(value) {
|
|
120
|
+
return `"${value.replace(/[\\$"`]/g, (c) => `\\${c}`)}"`;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Build a canonical shell-safe resume command that names the Provider
|
|
124
|
+
* the user actually wants to resume AND every identity-bearing request
|
|
125
|
+
* option they actually set. The Provider id is threaded from
|
|
126
|
+
* `capability.run.cacheIdentity(request).provider` so the command
|
|
127
|
+
* matches the on-disk state file (the identity hash is keyed on the
|
|
128
|
+
* Provider, the credential fingerprint, and the full request — see
|
|
129
|
+
* `lib/async-job-state.ts`).
|
|
130
|
+
*
|
|
131
|
+
* Without `--provider`, a successful Tavily fallback to Exa would
|
|
132
|
+
* (today) print `scoutline research "<Q>"`, which resumes polling on
|
|
133
|
+
* the *default* Provider — creating a second paid job when only one
|
|
134
|
+
* already exists (Review Fix 3). Without the identity-bearing
|
|
135
|
+
* options, a re-run that omits `--model pro` would compute a
|
|
136
|
+
* different state-file hash and create a fresh job as well.
|
|
137
|
+
*
|
|
138
|
+
* Only options that were ACTUALLY set appear in the command —
|
|
139
|
+
* `undefined` values are omitted so the resume uses the user's own
|
|
140
|
+
* defaults rather than picking values that were never requested.
|
|
141
|
+
*/
|
|
142
|
+
export function buildResearchResumeCommand(query, options, providerId) {
|
|
143
|
+
const parts = ["scoutline", "--no-fallback", `--provider ${providerId}`, "research"];
|
|
144
|
+
parts.push(shellQuote(query));
|
|
145
|
+
if (options.model !== undefined)
|
|
146
|
+
parts.push(`--model ${options.model}`);
|
|
147
|
+
if (options.outputLength !== undefined)
|
|
148
|
+
parts.push(`--output-length ${options.outputLength}`);
|
|
149
|
+
if (options.citationFormat !== undefined)
|
|
150
|
+
parts.push(`--citation-format ${options.citationFormat}`);
|
|
151
|
+
if (options.domain !== undefined)
|
|
152
|
+
parts.push(`--domain ${shellQuote(options.domain)}`);
|
|
153
|
+
return parts.join(" ");
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Production SIGINT registrar FACTORY. The factory takes the
|
|
157
|
+
* per-attempt state-file path + canonical resume command and returns a
|
|
158
|
+
* registrar that installs the production handler. The factory form
|
|
159
|
+
* matches the test-injection shape (Review Fix 3): tests can pass a
|
|
160
|
+
* factory that captures the same arguments for assertion.
|
|
110
161
|
*/
|
|
111
162
|
function createProductionInterruptRegistrar(stateFilePath, resumeCommand) {
|
|
112
|
-
return (
|
|
163
|
+
return (_print) => {
|
|
113
164
|
const handler = () => {
|
|
114
|
-
|
|
165
|
+
// Read the state file synchronously, format the message, and
|
|
166
|
+
// exit 130 (128 + SIGINT). The `print` callback passed by the
|
|
167
|
+
// research handler already closes over `stateFilePath` and
|
|
168
|
+
// `resumeCommand` for the inner read+write work; here we just
|
|
169
|
+
// need it for the production exit path. Recompute a one-shot
|
|
170
|
+
// print to keep the production and test wires identical.
|
|
171
|
+
const requestId = readRequestIdSync(stateFilePath);
|
|
172
|
+
process.stderr.write(formatInterruptMessage(requestId, resumeCommand));
|
|
115
173
|
process.exit(130);
|
|
116
174
|
};
|
|
117
175
|
process.on("SIGINT", handler);
|
|
@@ -179,9 +237,14 @@ export async function research(query, options = {}, deps, _context) {
|
|
|
179
237
|
throw new ValidationError("Research query must contain at least one non-whitespace character");
|
|
180
238
|
}
|
|
181
239
|
const request = buildResearchRequest(query, options);
|
|
182
|
-
// Compute the state-file path
|
|
183
|
-
//
|
|
184
|
-
//
|
|
240
|
+
// Compute the state-file path AND the canonical resume command for
|
|
241
|
+
// the SIGINT handler. Both are derived from this attempt's
|
|
242
|
+
// capability (re-bound on every candidate the executor walks — the
|
|
243
|
+
// loser's capability was already torn down by the `finally` in a
|
|
244
|
+
// prior call to `research()`, so the `providerId` below names the
|
|
245
|
+
// Provider the user would resume). Identity hash uses the same
|
|
246
|
+
// formula as the adapter (CR3), so the file the handler reads is
|
|
247
|
+
// the one the adapter wrote (Review Fix 3).
|
|
185
248
|
const identity = deps.capability.run.cacheIdentity(request);
|
|
186
249
|
const identityHash = computeAsyncJobStateHash({
|
|
187
250
|
provider: identity.provider,
|
|
@@ -190,10 +253,13 @@ export async function research(query, options = {}, deps, _context) {
|
|
|
190
253
|
request: identity.request,
|
|
191
254
|
});
|
|
192
255
|
const stateFilePath = path.join(asyncJobStateDir("research"), `${identityHash}.json`);
|
|
193
|
-
const resumeCommand =
|
|
194
|
-
// Register the Ctrl-C handler. Production
|
|
195
|
-
//
|
|
196
|
-
|
|
256
|
+
const resumeCommand = buildResearchResumeCommand(query, options, identity.provider);
|
|
257
|
+
// Register the Ctrl-C handler. Production wires `process.on` inside
|
|
258
|
+
// `createProductionInterruptRegistrar`; tests inject a recorder
|
|
259
|
+
// factory that captures the (stateFilePath, resumeCommand) pair so
|
|
260
|
+
// they can assert the format and simulate the SIGINT (Review Fix 3).
|
|
261
|
+
const registerFactory = deps.registerInterrupt ?? ((sf, cmd) => createProductionInterruptRegistrar(sf, cmd));
|
|
262
|
+
const register = registerFactory(stateFilePath, resumeCommand);
|
|
197
263
|
const print = () => {
|
|
198
264
|
const requestId = readRequestIdSync(stateFilePath);
|
|
199
265
|
process.stderr.write(formatInterruptMessage(requestId, resumeCommand));
|
|
@@ -277,9 +343,21 @@ second task (no double charge).
|
|
|
277
343
|
|
|
278
344
|
Provider selection (precedence: --provider, then SCOUTLINE_PROVIDER,
|
|
279
345
|
then the configured default):
|
|
280
|
-
- Tavily
|
|
281
|
-
- Z.AI and
|
|
282
|
-
|
|
346
|
+
- Tavily and Exa advertise the research Capability and supply the Adapter.
|
|
347
|
+
- Z.AI, MiniMax, and Firecrawl do NOT advertise research (Firecrawl
|
|
348
|
+
/deep-research is deprecated). By default (0.11.0+) Provider
|
|
349
|
+
fallback emits a stderr notice and silently reroutes to the next
|
|
350
|
+
eligible configured supplier (Tavily or Exa). Under --no-fallback
|
|
351
|
+
(or SCOUTLINE_NO_FALLBACK=1) the preflight surfaces
|
|
352
|
+
UNSUPPORTED_CAPABILITY for the selected non-supplier.
|
|
353
|
+
|
|
354
|
+
> Accepted async risk: for \`research\`, a runtime failure on the
|
|
355
|
+
> effective Provider may fall back to another Provider even if the
|
|
356
|
+
> failed Provider had already accepted or charged a job (Tavily/Exa do
|
|
357
|
+
> not offer idempotency or refunds). Pass --no-fallback for
|
|
358
|
+
> cost-sensitive workflows. See
|
|
359
|
+
> https://github.com/vikasagarwal101/scoutline/blob/main/docs/adr/0002-provider-fallback.md
|
|
360
|
+
> (the ADR is not packaged with the npm tarball; follow the link).
|
|
283
361
|
|
|
284
362
|
Options:
|
|
285
363
|
--model <m> Research model: mini | pro | auto (default: auto)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"research.js","sourceRoot":"","sources":["../../src/commands/research.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"research.js","sourceRoot":"","sources":["../../src/commands/research.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/tools.d.ts
CHANGED
|
@@ -12,6 +12,12 @@ export interface ToolsOptions {
|
|
|
12
12
|
full?: boolean;
|
|
13
13
|
typescript?: boolean;
|
|
14
14
|
enableVision?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* T2b — Credential view: resolved env (injected env + file keys)
|
|
17
|
+
* forwarded to the underlying client so a wizard-written key
|
|
18
|
+
* authorises transport without ambient state.
|
|
19
|
+
*/
|
|
20
|
+
env?: NodeJS.ProcessEnv;
|
|
15
21
|
}
|
|
16
22
|
export declare function listTools(options?: ToolsOptions, context?: CommandContext): Promise<CommandResult>;
|
|
17
23
|
export declare function showTool(name: string, options?: ToolsOptions, context?: CommandContext): Promise<CommandResult>;
|
|
@@ -21,6 +27,8 @@ export interface CallToolOptions {
|
|
|
21
27
|
stdin?: boolean;
|
|
22
28
|
dryRun?: boolean;
|
|
23
29
|
enableVision?: boolean;
|
|
30
|
+
/** @inheritDoc ToolsOptions.env */
|
|
31
|
+
env?: NodeJS.ProcessEnv;
|
|
24
32
|
}
|
|
25
33
|
export declare function callTool(toolName: string, options?: CallToolOptions, context?: CommandContext): Promise<CommandResult>;
|
|
26
34
|
export declare const TOOLS_HELP: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9E,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9E,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED,wBAAsB,SAAS,CAC7B,OAAO,GAAE,YAAiB,EAC1B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CA0BxB;AAED,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,YAAiB,EAC1B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CAWxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAkCD,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,eAAoB,EAC7B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CA4BxB;AAGD,eAAO,MAAM,UAAU,QAmBf,CAAC;AAET,eAAO,MAAM,SAAS,QAgBd,CAAC"}
|
package/dist/commands/tools.js
CHANGED
|
@@ -13,7 +13,7 @@ import { ValidationError } from "../lib/errors.js";
|
|
|
13
13
|
import { redactTool } from "../lib/redact.js";
|
|
14
14
|
export async function listTools(options = {}, context) {
|
|
15
15
|
if (options.typescript) {
|
|
16
|
-
const codeClient = new ZaiCodeModeClient();
|
|
16
|
+
const codeClient = new ZaiCodeModeClient({ env: options.env });
|
|
17
17
|
try {
|
|
18
18
|
const interfaces = await codeClient.getAllInterfaces();
|
|
19
19
|
return { kind: "data", data: interfaces };
|
|
@@ -22,7 +22,7 @@ export async function listTools(options = {}, context) {
|
|
|
22
22
|
await codeClient.close().catch(() => { });
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
const client = new ZaiMcpClient({ enableVision: options.enableVision });
|
|
25
|
+
const client = new ZaiMcpClient({ enableVision: options.enableVision, env: options.env });
|
|
26
26
|
try {
|
|
27
27
|
const tools = await client.listTools();
|
|
28
28
|
const filtered = options.filter
|
|
@@ -38,7 +38,7 @@ export async function listTools(options = {}, context) {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
export async function showTool(name, options = {}, context) {
|
|
41
|
-
const client = new ZaiMcpClient({ enableVision: options.enableVision });
|
|
41
|
+
const client = new ZaiMcpClient({ enableVision: options.enableVision, env: options.env });
|
|
42
42
|
try {
|
|
43
43
|
const tool = await client.getTool(name);
|
|
44
44
|
if (!tool) {
|
|
@@ -89,7 +89,7 @@ export async function callTool(toolName, options = {}, context) {
|
|
|
89
89
|
}
|
|
90
90
|
throw error;
|
|
91
91
|
}
|
|
92
|
-
const client = new ZaiMcpClient({ enableVision: options.enableVision });
|
|
92
|
+
const client = new ZaiMcpClient({ enableVision: options.enableVision, env: options.env });
|
|
93
93
|
try {
|
|
94
94
|
const resolved = await client.resolveToolName(toolName);
|
|
95
95
|
if (options.dryRun) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import type { CommandContext, CommandResult } from "../command-invocation.js";
|
|
18
18
|
import type { VisionCapability } from "../capabilities/vision.js";
|
|
19
|
+
import type { ConsumptionSink } from "../lib/consumption.js";
|
|
19
20
|
type OutputType = "code" | "prompt" | "spec" | "description";
|
|
20
21
|
export declare const VISION_HELP: string;
|
|
21
22
|
/**
|
|
@@ -23,11 +24,20 @@ export declare const VISION_HELP: string;
|
|
|
23
24
|
* Provider's `VisionCapability`; `sleep`/`random` drive retry backoff
|
|
24
25
|
* deterministically under test. Vision bypasses the response cache, so
|
|
25
26
|
* no cache dependency is threaded here.
|
|
27
|
+
*
|
|
28
|
+
* PB-T2: `provider` + `consume` enable consumption emission at the
|
|
29
|
+
* execution seam. `provider` is the actual attempted descriptor ID
|
|
30
|
+
* (NOT the registry-derived effective provider); `consume` is the
|
|
31
|
+
* optional sink. When `consume` is absent, no event is emitted — the
|
|
32
|
+
* pre-PB-T2 byte-for-byte behavior.
|
|
26
33
|
*/
|
|
27
34
|
export interface VisionExecutionDependencies {
|
|
28
35
|
readonly capability: VisionCapability;
|
|
29
36
|
readonly sleep: (ms: number) => Promise<void>;
|
|
30
37
|
readonly random: () => number;
|
|
38
|
+
readonly provider?: import("../providers/types.js").ProviderId;
|
|
39
|
+
readonly consume?: ConsumptionSink;
|
|
40
|
+
readonly now?: () => number;
|
|
31
41
|
}
|
|
32
42
|
export declare function analyze(imageSource: string, prompt: string, deps: VisionExecutionDependencies, context?: CommandContext): Promise<CommandResult>;
|
|
33
43
|
export declare function uiToCode(imageSource: string, prompt: string, outputType: OutputType, deps: VisionExecutionDependencies, context?: CommandContext): Promise<CommandResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vision.d.ts","sourceRoot":"","sources":["../../src/commands/vision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAkC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"vision.d.ts","sourceRoot":"","sources":["../../src/commands/vision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAkC,MAAM,2BAA2B,CAAC;AAGlG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAQ7D,KAAK,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,aAAa,CAAC;AA2F7D,eAAO,MAAM,WAAW,QAAoB,CAAC;AAE7C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,uBAAuB,EAAE,UAAU,CAAC;IAC/D,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B;AA4CD,wBAAsB,OAAO,CAC3B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,2BAA2B,EACjC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CAcxB;AAED,wBAAsB,QAAQ,CAC5B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,2BAA2B,EACjC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CAmBxB;AAED,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,IAAI,EAAE,2BAA2B,EACjC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CAmBxB;AAED,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,IAAI,EAAE,2BAA2B,EACjC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CAmBxB;AAED,wBAAsB,OAAO,CAC3B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,IAAI,EAAE,2BAA2B,EACjC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CAmBxB;AAED,wBAAsB,KAAK,CACzB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,IAAI,EAAE,2BAA2B,EACjC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CAmBxB;AAED,wBAAsB,IAAI,CACxB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,2BAA2B,EACjC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CAmBxB;AAED,wBAAsB,KAAK,CACzB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,2BAA2B,EACjC,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,aAAa,CAAC,CAWxB"}
|
package/dist/commands/vision.js
CHANGED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { executeProviderOperation } from "../lib/execution.js";
|
|
18
18
|
import { ValidationError } from "../lib/errors.js";
|
|
19
|
+
import { defaultAmountForCapability } from "../lib/consumption.js";
|
|
19
20
|
import { isMiniMaxVisionOperationSupported, SPECIALIZED_VISION_OPERATION_SET, } from "../providers/minimax/vision-conformance.js";
|
|
20
21
|
const DEFAULT_PROMPTS = {
|
|
21
22
|
analyze: "Describe this image in detail.",
|
|
@@ -108,13 +109,35 @@ export const VISION_HELP = buildVisionHelp();
|
|
|
108
109
|
/**
|
|
109
110
|
* Invoke a Vision request through shared execution. Vision allows two
|
|
110
111
|
* retries (DESIGN.md §10); the default policy is applied by
|
|
111
|
-
* `executeProviderOperation`. No cache lookup
|
|
112
|
+
* `executeProviderOperation`. No cache lookup. Provider fallback is
|
|
113
|
+
* owned by the executor (executeWithFallback), not by this function.
|
|
114
|
+
*
|
|
115
|
+
* PB-T2: when `deps.consume` AND `deps.provider` are both present, one
|
|
116
|
+
* consumption event is emitted per `invoke()` attempt at the execution
|
|
117
|
+
* seam. Vision bills variable tokens (most adapters don't return
|
|
118
|
+
* per-call usage), so the default amount is `unknown` — never a
|
|
119
|
+
* fake-precise number.
|
|
112
120
|
*/
|
|
113
121
|
function runVision(request, deps) {
|
|
122
|
+
const operation = request.operation;
|
|
123
|
+
// Canonical capability id matches descriptor metadata
|
|
124
|
+
// (`vision.interpret-image`, `vision.chart`, etc.).
|
|
125
|
+
const capabilityId = operation === "interpret-image" ? "vision.interpret-image" : `vision.${String(operation)}`;
|
|
126
|
+
const consumption = deps.consume && deps.provider
|
|
127
|
+
? {
|
|
128
|
+
provider: deps.provider,
|
|
129
|
+
capabilityId,
|
|
130
|
+
category: "vision",
|
|
131
|
+
unit: "tokens",
|
|
132
|
+
amount: defaultAmountForCapability("vision"),
|
|
133
|
+
}
|
|
134
|
+
: undefined;
|
|
114
135
|
return executeProviderOperation("vision", () => deps.capability.invoke(request), {
|
|
115
136
|
sleep: deps.sleep,
|
|
116
137
|
random: deps.random,
|
|
117
|
-
|
|
138
|
+
...(deps.consume !== undefined ? { consume: deps.consume } : {}),
|
|
139
|
+
...(deps.now !== undefined ? { now: deps.now } : {}),
|
|
140
|
+
}, undefined, consumption);
|
|
118
141
|
}
|
|
119
142
|
export async function analyze(imageSource, prompt, deps, context) {
|
|
120
143
|
void context;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vision.js","sourceRoot":"","sources":["../../src/commands/vision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"vision.js","sourceRoot":"","sources":["../../src/commands/vision.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,13 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { type CommandInvocationAdapter } from "./command-invocation.js";
|
|
5
5
|
import { type ResponseCache } from "./lib/cache.js";
|
|
6
|
-
import type
|
|
6
|
+
import { type ScoutlineConfig } from "./lib/config-store.js";
|
|
7
|
+
import { type VerificationPromotionStore, type HintShownStore } from "./lib/config-store.js";
|
|
8
|
+
import { type QuotaStore, type QuotaState } from "./lib/quota-store.js";
|
|
9
|
+
import type { ProviderVerificationSummary } from "./capabilities/diagnostics.js";
|
|
10
|
+
import { type ConsumptionSink } from "./lib/consumption.js";
|
|
11
|
+
import type { ProviderDescriptor, ProviderId } from "./providers/types.js";
|
|
12
|
+
import { type InitDependencies, type InitPrompts } from "./commands/init.js";
|
|
7
13
|
/**
|
|
8
14
|
* Parse and validate the `--count` flag value (Fixup C — B11, Fixup D). Per
|
|
9
15
|
* DESIGN.md §7, count must be a safe integer >= 0. Invalid values (NaN,
|
|
@@ -48,6 +54,20 @@ export interface MainDependencies {
|
|
|
48
54
|
* fake Adapter without touching real transports.
|
|
49
55
|
*/
|
|
50
56
|
readonly providerDescriptors?: readonly ProviderDescriptor[];
|
|
57
|
+
/**
|
|
58
|
+
* Injectable config-file reader (T2a — Plan A). Production defaults to
|
|
59
|
+
* `readConfig` from `lib/config-store.js`, which reads the versioned
|
|
60
|
+
* `~/.scoutline/config.json`. Tests inject an in-memory double so
|
|
61
|
+
* `main()` stays hermetic — no real config-root I/O — and can drive
|
|
62
|
+
* file-only credential flows without touching disk.
|
|
63
|
+
*
|
|
64
|
+
* The reader returns the parsed {@link ScoutlineConfig}; `main` uses it
|
|
65
|
+
* to build `resolvedEnv` (file keys layered under the injected env) and
|
|
66
|
+
* to resolve `fallbackEnabled`. A returned config with no `providers`
|
|
67
|
+
* and no `fallbackEnabled` is a no-op: the env path is byte-for-byte
|
|
68
|
+
* unchanged from the pre-T2a behavior.
|
|
69
|
+
*/
|
|
70
|
+
readonly loadScoutlineConfig?: () => Promise<ScoutlineConfig>;
|
|
51
71
|
/**
|
|
52
72
|
* Injectable shared-Search execution dependencies. Production defaults
|
|
53
73
|
* to the on-disk cache and real sleep/random; tests inject in-memory
|
|
@@ -106,6 +126,121 @@ export interface MainDependencies {
|
|
|
106
126
|
readonly researchCache?: ResponseCache;
|
|
107
127
|
readonly researchSleep?: (ms: number) => Promise<void>;
|
|
108
128
|
readonly researchRandom?: () => number;
|
|
129
|
+
/**
|
|
130
|
+
* Optional injectable SIGINT registrar factory for the research
|
|
131
|
+
* command. Production wraps `process.on('SIGINT', ...)` inside the
|
|
132
|
+
* command module; tests inject a recorder so they can capture the
|
|
133
|
+
* registered callback, trigger it manually, and assert the printed
|
|
134
|
+
* resume command / state-file path / loser listener cleanup. The
|
|
135
|
+
* factory receives the per-attempt state-file path + canonical
|
|
136
|
+
* resume command (binding is computed inside the research handler
|
|
137
|
+
* from the per-attempt Provider capability). Review Fix 3.
|
|
138
|
+
*/
|
|
139
|
+
readonly researchRegisterInterrupt?: (stateFilePath: string, resumeCommand: string) => (print: () => void) => () => void;
|
|
140
|
+
/**
|
|
141
|
+
* Optional injectable prompt IO seam for the `init` wizard (T3a —
|
|
142
|
+
* Plan A). Production wires `createInquirerPrompts` (which lazily
|
|
143
|
+
* resolves `@inquirer/prompts`); tests inject a scripted double so
|
|
144
|
+
* the wizard runs fully hermetically without a real TTY.
|
|
145
|
+
*/
|
|
146
|
+
readonly initPrompts?: InitPrompts;
|
|
147
|
+
/**
|
|
148
|
+
* Optional injectable config-store seam for the `init` wizard (T3a).
|
|
149
|
+
* Production wires `createDefaultConfigStore()` (real `inspectConfig`
|
|
150
|
+
* + `writeConfig` against `~/.scoutline/config.json`); tests inject
|
|
151
|
+
* a temp-dir-backed double so onboarding assertions never touch the
|
|
152
|
+
* user's real config root.
|
|
153
|
+
*/
|
|
154
|
+
readonly initConfigStore?: InitDependencies["configStore"];
|
|
155
|
+
/**
|
|
156
|
+
* Optional injectable verification-promotion store (T3b). Production
|
|
157
|
+
* wires `createDefaultVerificationPromoter()` (real read-modify-write
|
|
158
|
+
* against `~/.scoutline/config.json`); tests inject an in-memory
|
|
159
|
+
* double so Doctor's promotion assertions stay hermetic. When
|
|
160
|
+
* omitted, the production promoter is constructed at dispatch time.
|
|
161
|
+
*
|
|
162
|
+
* Doctor calls `promote(providerId, checkedAt)` after a successful
|
|
163
|
+
* probe to flip the matching record from `unverified` to `verified`.
|
|
164
|
+
* Best-effort: a write failure is isolated and never turns a
|
|
165
|
+
* successful probe into a Doctor failure.
|
|
166
|
+
*/
|
|
167
|
+
readonly verificationPromoter?: VerificationPromotionStore;
|
|
168
|
+
/**
|
|
169
|
+
* Optional injectable hint-shown store (T3b). Production wires
|
|
170
|
+
* `createDefaultHintShownStore()`; tests inject an in-memory double
|
|
171
|
+
* so the trigger-detection hint persistence assertions are hermetic.
|
|
172
|
+
* When omitted, the production store is constructed at dispatch time.
|
|
173
|
+
*
|
|
174
|
+
* Trigger detection calls `setHintShown()` once after emitting the
|
|
175
|
+
* env-only hint so the hint never repeats.
|
|
176
|
+
*/
|
|
177
|
+
readonly hintShownStore?: HintShownStore;
|
|
178
|
+
/**
|
|
179
|
+
* Optional injectable quota snapshot store (PB-T1 — Plan B). Production
|
|
180
|
+
* defaults to `createDefaultQuotaStore()` (real atomic read-merge-write
|
|
181
|
+
* against `~/.scoutline/state.json`); tests inject an in-memory double
|
|
182
|
+
* so refresh assertions stay hermetic. When omitted, the production
|
|
183
|
+
* store is constructed at dispatch time.
|
|
184
|
+
*
|
|
185
|
+
* `main` refreshes the store BEFORE the `quota`/`doctor` handlers
|
|
186
|
+
* (force) and AFTER every other credentialed command (cadence-gated
|
|
187
|
+
* by the per-provider staleness threshold). All refreshes and store
|
|
188
|
+
* writes are awaited before `main` returns so they survive the bin's
|
|
189
|
+
* immediate `process.exit`.
|
|
190
|
+
*/
|
|
191
|
+
readonly quotaStore?: QuotaStore;
|
|
192
|
+
/**
|
|
193
|
+
* Optional injectable verification records for Doctor's per-Provider
|
|
194
|
+
* `verification` summary (PB-T5 — Plan B). Production maps
|
|
195
|
+
* `config.providers[id].verification` (Plan A) to
|
|
196
|
+
* `ProviderVerificationSummary` (capability contract — structural
|
|
197
|
+
* twin kept separate so the capability contract stays free of
|
|
198
|
+
* `lib/config-store.ts` imports); tests inject a crafted record so
|
|
199
|
+
* Doctor assertions stay hermetic — no real `~/.scoutline/config.json`
|
|
200
|
+
* read. When omitted, the production path derives the records from
|
|
201
|
+
* the loaded `config`.
|
|
202
|
+
*/
|
|
203
|
+
readonly verificationRecords?: Partial<Record<ProviderId, ProviderVerificationSummary>>;
|
|
204
|
+
/**
|
|
205
|
+
* Optional injectable consumption sink (PB-T2 — Plan B). Production
|
|
206
|
+
* defaults to `createQuotaStoreConsumptionSink({ store: quotaStore })`
|
|
207
|
+
* (writes through PB-T1's store, advancing `locallyUpdatedAt` and
|
|
208
|
+
* adjusting the matching category's count set); tests inject an
|
|
209
|
+
* in-memory double so event-sequence assertions stay hermetic.
|
|
210
|
+
*
|
|
211
|
+
* The sink records ONE event per billable `invoke()` attempt at the
|
|
212
|
+
* execution seam (`lib/execution.ts`), so cache hits emit nothing,
|
|
213
|
+
* retries emit one event per attempt, and observational handlers
|
|
214
|
+
* (`quota`/`doctor`) emit nothing. Variable/unknown-cost capabilities
|
|
215
|
+
* (Research, Vision, Crawl) persist an explicit `unknown` amount
|
|
216
|
+
* rather than a fake-precise number.
|
|
217
|
+
*
|
|
218
|
+
* Hermeticity gate: the PRODUCTION sink is constructed only in full
|
|
219
|
+
* production mode (no injected `loadScoutlineConfig` AND no injected
|
|
220
|
+
* `providerDescriptors`). Either injection signals a test that owns
|
|
221
|
+
* its own descriptor/config construction; the production sink would
|
|
222
|
+
* otherwise reach the user's real `~/.scoutline/state.json` during
|
|
223
|
+
* such a test. Dedicated consumption tests inject this field directly
|
|
224
|
+
* with `createInMemoryConsumptionSink()`.
|
|
225
|
+
*/
|
|
226
|
+
readonly consume?: ConsumptionSink;
|
|
227
|
+
/**
|
|
228
|
+
* Optional injectable quota snapshot for selection (PB-T4 — Plan B).
|
|
229
|
+
* Production reads it once via `quotaStore.read()` after the PB-T1
|
|
230
|
+
* pre-command refresh (the seven shared handlers consume it through
|
|
231
|
+
* `resolveEffectiveProvider`); tests inject a crafted snapshot so
|
|
232
|
+
* selection assertions are hermetic — no real `state.json` read.
|
|
233
|
+
*
|
|
234
|
+
* Hermeticity gate mirrors `quotaStore`/`consume`: the PRODUCTION
|
|
235
|
+
* read happens only in full production mode (no injected
|
|
236
|
+
* `loadScoutlineConfig` AND no injected `providerDescriptors`).
|
|
237
|
+
* Either injection signals a test that owns its own
|
|
238
|
+
* descriptor/config construction; such a test injects `quotaState`
|
|
239
|
+
* directly when it needs to assert a specific selection outcome, or
|
|
240
|
+
* leaves it absent so the resolver degrades to first-eligible (the
|
|
241
|
+
* pre-PB-T4 behaviour).
|
|
242
|
+
*/
|
|
243
|
+
readonly quotaState?: QuotaState;
|
|
109
244
|
}
|
|
110
245
|
export declare function main(args: readonly string[], dependencies: MainDependencies): Promise<number>;
|
|
111
246
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsCH,OAAO,EAAiB,KAAK,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|