@glbgpt/cli 0.1.0 → 0.1.2
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 +12 -5
- package/dist/src/auth/authClient.js +3 -1
- package/dist/src/auth/authClient.js.map +1 -1
- package/dist/src/commands/execCommand.js +7 -0
- package/dist/src/commands/execCommand.js.map +1 -1
- package/dist/src/commands/loginCommand.js +5 -0
- package/dist/src/commands/loginCommand.js.map +1 -1
- package/dist/src/core/catalog.js +2 -1
- package/dist/src/core/catalog.js.map +1 -1
- package/dist/src/core/clientHeaders.d.ts +14 -0
- package/dist/src/core/clientHeaders.js +24 -0
- package/dist/src/core/clientHeaders.js.map +1 -0
- package/dist/src/core/contextPrune.js +7 -2
- package/dist/src/core/contextPrune.js.map +1 -1
- package/dist/src/core/httpChatBackend.js +2 -0
- package/dist/src/core/httpChatBackend.js.map +1 -1
- package/dist/src/core/toolRegistry.d.ts +2 -0
- package/dist/src/core/toolRegistry.js +4 -0
- package/dist/src/core/toolRegistry.js.map +1 -1
- package/dist/src/core/turnLoop.js +42 -11
- package/dist/src/core/turnLoop.js.map +1 -1
- package/dist/src/core/types.d.ts +15 -0
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/server.js +26 -3
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/media/aiApiClient.js +3 -2
- package/dist/src/media/aiApiClient.js.map +1 -1
- package/dist/src/telemetry/telemetry.d.ts +42 -0
- package/dist/src/telemetry/telemetry.js +97 -0
- package/dist/src/telemetry/telemetry.js.map +1 -0
- package/dist/src/tui/App.js +25 -1
- package/dist/src/tui/App.js.map +1 -1
- package/dist/src/tui/run.js +8 -0
- package/dist/src/tui/run.js.map +1 -1
- package/dist/src/web/index.d.ts +8 -0
- package/dist/src/web/index.js +10 -0
- package/dist/src/web/index.js.map +1 -0
- package/dist/src/web/webFetchTool.d.ts +18 -0
- package/dist/src/web/webFetchTool.js +222 -0
- package/dist/src/web/webFetchTool.js.map +1 -0
- package/dist/src/web/webSearchTool.d.ts +22 -0
- package/dist/src/web/webSearchTool.js +124 -0
- package/dist/src/web/webSearchTool.js.map +1 -0
- package/package.json +1 -1
- package/skills/globalgpt/SKILL.md +5 -0
package/README.md
CHANGED
|
@@ -36,7 +36,9 @@ Inside the TUI, type `/` for commands: `/model` `/models` `/image` `/video` `/ta
|
|
|
36
36
|
Attach images with `@image` (last generation), `Ctrl+V` or `@clipboard`, or `@./photo.png`.
|
|
37
37
|
Multi-line: end a line with `\` then Enter (or Ctrl+J); plain Enter sends; Esc interrupts.
|
|
38
38
|
On tool-capable models the assistant can also read files under the directory you started
|
|
39
|
-
`glbgpt` in (read-only — list, read, glob, grep) to answer questions about them
|
|
39
|
+
`glbgpt` in (read-only — list, read, glob, grep) to answer questions about them, search the
|
|
40
|
+
web when current information matters (a small per-search credit charge applies, at most a
|
|
41
|
+
few searches per message), and fetch public web pages by URL (free).
|
|
40
42
|
|
|
41
43
|
### Account
|
|
42
44
|
|
|
@@ -88,9 +90,9 @@ Flags: `-m/--model`, `--system <text>`, `--file <path...>`, `-i/--image <path|ur
|
|
|
88
90
|
`--max-credits <n>` (media budget for this run, default 4000; `0` disables media).
|
|
89
91
|
Exit code is `0` on success, non-zero on a usage/auth/turn error.
|
|
90
92
|
|
|
91
|
-
On tool-capable models the assistant can also read files under the current directory (read-only)
|
|
92
|
-
and generate images/videos: exec waits for in-flight generations
|
|
93
|
-
as a `media_result` event (`--jsonl`) or a stderr line.
|
|
93
|
+
On tool-capable models the assistant can also read files under the current directory (read-only),
|
|
94
|
+
search the web / fetch pages, and generate images/videos: exec waits for in-flight generations
|
|
95
|
+
before exiting and reports each as a `media_result` event (`--jsonl`) or a stderr line.
|
|
94
96
|
|
|
95
97
|
### mcp — use from other agents
|
|
96
98
|
|
|
@@ -100,7 +102,7 @@ account. Sign in once with `glbgpt login` first.
|
|
|
100
102
|
|
|
101
103
|
| Tool | What it does |
|
|
102
104
|
|---|---|
|
|
103
|
-
| `glbgpt_chat` | One chat turn: question in, answer out (system prompt, vision, JSON schema supported). |
|
|
105
|
+
| `glbgpt_chat` | One chat turn: question in, answer out (system prompt, vision, JSON schema, and — on tool-capable models — live web search/fetch supported). |
|
|
104
106
|
| `glbgpt_generate_image` | Generate an image; usually returns the finished result (URL + local file) in one call. |
|
|
105
107
|
| `glbgpt_generate_video` | Generate a video; returns a `task_id` to check. |
|
|
106
108
|
| `glbgpt_check_task` | Check a generation task. Waits server-side — the agent can just call it again immediately until done. |
|
|
@@ -179,6 +181,11 @@ always win.
|
|
|
179
181
|
|
|
180
182
|
## Notes
|
|
181
183
|
|
|
184
|
+
**Usage telemetry.** The CLI reports anonymous usage events (session starts, turn latency,
|
|
185
|
+
tool-call counts, error categories) to the GlobalGPT backend to help us improve the product.
|
|
186
|
+
It never collects prompt text, file contents, or file paths. Set `GLBGPT_DISABLE_TELEMETRY=1`
|
|
187
|
+
to turn it off entirely.
|
|
188
|
+
|
|
182
189
|
Credentials are stored at `~/.config/glbgpt/credentials.json` (dir `0700`, file `0600`). The
|
|
183
190
|
token is long-lived; on a 401 the CLI asks you to `glbgpt login` again. This is a pre-release
|
|
184
191
|
test build — please report anything that looks wrong.
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* expected payload, not solely the code.
|
|
7
7
|
*/
|
|
8
8
|
import { fetchOrDescribe, hostOf } from '../util/retry.js';
|
|
9
|
+
import { clientHeaders } from '../core/clientHeaders.js';
|
|
9
10
|
/**
|
|
10
11
|
* The plan display name, from `currentSubscription.plan_package` — the field the site
|
|
11
12
|
* renders. NOT `subscription_tag`, which is a 0/1 "has ever subscribed" flag.
|
|
@@ -70,7 +71,8 @@ export class AuthClient {
|
|
|
70
71
|
}
|
|
71
72
|
/** fetch against the account API, with a friendly message on a transient network failure. */
|
|
72
73
|
request(pathname, init) {
|
|
73
|
-
|
|
74
|
+
const headers = { ...init.headers, ...clientHeaders() };
|
|
75
|
+
return fetchOrDescribe(this.fetchImpl, `${this.baseUrl}${pathname}`, { ...init, headers }, this.host);
|
|
74
76
|
}
|
|
75
77
|
/** Exchange a one-time code (temp token) for the real JWT. */
|
|
76
78
|
async exchange(code) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authClient.js","sourceRoot":"","sources":["../../../src/auth/authClient.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"authClient.js","sourceRoot":"","sources":["../../../src/auth/authClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,10 +10,12 @@ import { getDefaultChatModel, resolveChatModel, modelSupportsTools } from '../tu
|
|
|
10
10
|
import { UsageError, resolvePromptText, injectFiles, loadOutputSchema } from '../exec/input.js';
|
|
11
11
|
import { ExecOutput } from '../exec/output.js';
|
|
12
12
|
import { createFsTools, workspaceRoot } from '../fs/index.js';
|
|
13
|
+
import { createWebTools } from '../web/index.js';
|
|
13
14
|
import { resolveImageRef, ImageRefError } from '../util/imageRef.js';
|
|
14
15
|
import { AiApiClient } from '../media/aiApiClient.js';
|
|
15
16
|
import { SessionBudget, resolveMaxCredits } from '../media/budget.js';
|
|
16
17
|
import { createExecMedia } from '../exec/media.js';
|
|
18
|
+
import { flushTelemetry, initTelemetryForCli, track } from '../telemetry/telemetry.js';
|
|
17
19
|
/**
|
|
18
20
|
* Run one non-interactive model call and render it per the chosen output mode.
|
|
19
21
|
* Returns the process exit code (0 success; 1 usage/auth/turn failure) rather than exiting,
|
|
@@ -96,6 +98,8 @@ export async function runExec(positional, opts, deps = {}) {
|
|
|
96
98
|
sinks.err('Not signed in. Run `glbgpt login` first (or set GLBGPT_TOKEN).\n');
|
|
97
99
|
return 1;
|
|
98
100
|
}
|
|
101
|
+
initTelemetryForCli(apiBaseUrl(), () => token ?? undefined);
|
|
102
|
+
track('session_start');
|
|
99
103
|
// 3. Assemble tools when the resolved model supports tool_use (catalog-driven):
|
|
100
104
|
// fs read tools + budget-gated media generation (spec 2026-07-19-mcp-media-tools-design.md).
|
|
101
105
|
const registry = new ToolRegistry();
|
|
@@ -104,6 +108,8 @@ export async function runExec(positional, opts, deps = {}) {
|
|
|
104
108
|
const root = await workspaceRoot(deps.workspaceRootDir);
|
|
105
109
|
for (const t of createFsTools(root))
|
|
106
110
|
registry.register(t);
|
|
111
|
+
for (const t of createWebTools({ baseUrl: apiBaseUrl(), getToken: () => token }))
|
|
112
|
+
registry.register(t);
|
|
107
113
|
media =
|
|
108
114
|
deps.execMedia ??
|
|
109
115
|
createExecMedia({
|
|
@@ -161,6 +167,7 @@ export async function runExec(positional, opts, deps = {}) {
|
|
|
161
167
|
output.mediaResult(r);
|
|
162
168
|
}
|
|
163
169
|
output.finishResult(result.structured);
|
|
170
|
+
await flushTelemetry();
|
|
164
171
|
return 0;
|
|
165
172
|
}
|
|
166
173
|
/** Read all of stdin as UTF-8. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execCommand.js","sourceRoot":"","sources":["../../../src/commands/execCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAuB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,UAAU,EAAqC,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAkB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"execCommand.js","sourceRoot":"","sources":["../../../src/commands/execCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { CredentialStore } from '../auth/credentialStore.js';
|
|
|
5
5
|
import { browserLogin, parsePastedCode } from '../auth/loginFlow.js';
|
|
6
6
|
import { openBrowser } from '../util/openBrowser.js';
|
|
7
7
|
import { apiBaseUrl, webBaseUrl, lang } from '../config/env.js';
|
|
8
|
+
import { flushTelemetry, initTelemetryForCli, track } from '../telemetry/telemetry.js';
|
|
8
9
|
/**
|
|
9
10
|
* `glbgpt login` — real dependency wiring for the login commands. Keeps orchestration logic
|
|
10
11
|
* in auth/loginFlow (unit-tested); this module handles I/O (browser, prompts, printing).
|
|
@@ -55,6 +56,10 @@ export async function runLogin(opts) {
|
|
|
55
56
|
readPastedCode: makePasteReader(),
|
|
56
57
|
});
|
|
57
58
|
console.error(`Logged in${result.email ? ` as ${result.email}` : ''}.`);
|
|
59
|
+
const creds = await credentialStore.load();
|
|
60
|
+
initTelemetryForCli(apiBaseUrl(), () => creds?.token);
|
|
61
|
+
track('login_success');
|
|
62
|
+
await flushTelemetry();
|
|
58
63
|
}
|
|
59
64
|
catch (err) {
|
|
60
65
|
console.error(`Login failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loginCommand.js","sourceRoot":"","sources":["../../../src/commands/loginCommand.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"loginCommand.js","sourceRoot":"","sources":["../../../src/commands/loginCommand.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAEvF;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAA8C;IAC3E,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAE9C,0FAA0F;IAC1F,6FAA6F;IAC7F,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,mCAAmC,eAAe,CAAC,QAAQ,EAAE,iDAAiD,CAAC,CAAC;IAChI,CAAC;IAED,0FAA0F;IAC1F,0FAA0F;IAC1F,+DAA+D;IAC/D,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC;IAE/D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;YAChC,UAAU,EAAE,UAAU,EAAE;YACxB,IAAI,EAAE,IAAI,EAAE;YACZ,UAAU;YACV,eAAe;YACf,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;gBACpC,IAAI,UAAU,EAAE,CAAC;oBACf,kFAAkF;oBAClF,8EAA8E;oBAC9E,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;oBACpD,WAAW,CAAC,WAAW,CAAC,CAAC;oBACzB,OAAO,CAAC,KAAK,CAAC,0CAA0C,WAAW,EAAE,CAAC,CAAC;oBACvE,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;gBAC7E,CAAC;qBAAM,CAAC;oBACN,IAAI,MAAM;wBAAE,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;;wBAC/F,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;oBAC1F,OAAO,CAAC,KAAK,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;gBACjC,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,iGAAiG,CAAC,CAAC;YACnH,CAAC;YACD,cAAc,EAAE,eAAe,EAAE;SAClC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC;QAC3C,mBAAmB,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtD,KAAK,CAAC,eAAe,CAAC,CAAC;QACvB,MAAM,cAAc,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,iBAAiB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe;IACtB,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QACjC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC;YACH,SAAS,CAAC;gBACR,IAAI,IAAY,CAAC;gBACjB,IAAI,CAAC;oBACH,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;gBACjF,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,IAAI,CAAC,CAAC,qEAAqE;gBACpF,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE,SAAS,CAAC,6BAA6B;gBACzD,IAAI,CAAC;oBACH,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACtC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY;gBAC/E,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,KAAK,EAAE,CAAC;QACb,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,eAAe,EAAE,CAAC,KAAK,EAAE,CAAC;IACpD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;IAClE,OAAO,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,eAAe,EAAE,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACpD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnF,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,mBAAmB,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,gBAAgB,KAAK,CAAC,KAAK,IAAI,WAAW,yCAAyC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrJ,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
|
package/dist/src/core/catalog.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { promises as fs } from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { configDir } from '../config/paths.js';
|
|
4
|
+
import { clientHeaders } from './clientHeaders.js';
|
|
4
5
|
import { applyChatCatalog } from '../tui/models.js';
|
|
5
6
|
import { applyMediaDisabled } from '../media/manifest.js';
|
|
6
7
|
/**
|
|
@@ -47,7 +48,7 @@ export function catalogCacheFile() {
|
|
|
47
48
|
export async function fetchRemoteCatalog(baseUrl, token, fetchImpl = fetch, timeoutMs = 10_000) {
|
|
48
49
|
try {
|
|
49
50
|
const res = await fetchImpl(`${baseUrl.replace(/\/+$/, '')}/ai-api/cli/v1/models`, {
|
|
50
|
-
headers: { Authorization: `Bearer ${token}
|
|
51
|
+
headers: { Authorization: `Bearer ${token}`, ...clientHeaders() },
|
|
51
52
|
signal: AbortSignal.timeout(timeoutMs),
|
|
52
53
|
});
|
|
53
54
|
if (!res.ok)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/core/catalog.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/core/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAkB,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAoB1D;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACzD,MAAM,CAAC,GAAG,GAA0B,CAAC;IACrC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC;QAC1C,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;aACV,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;aAC5D,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;YAChB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE;YACf,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE;YACrE,OAAO,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI;SACnD,CAAC,CAAC;QACP,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,+CAA+C;IACrF,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChH,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC;QAC/C,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrG,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,YAAY,CAAC,OAAsB;IAC1C,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5D,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,cAAc,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAe,EACf,KAAa,EACb,YAA0B,KAAK,EAC/B,SAAS,GAAG,MAAM;IAElB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,uBAAuB,EAAE;YACjF,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,GAAG,aAAa,EAAE,EAAE;YACjE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;SACvC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACzB,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAKjC;IACC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,gBAAgB,EAAE,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACvF,IAAI,MAAM;YAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,kDAAkD;IACpD,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,KAAK,IAAI,EAAE;QAC5B,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,iEAAiE;QAC1F,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACjF,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,MAAM,GAAG,GAAG,GAAG,SAAS,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;YAC9C,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACpG,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;QAC/B,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC;AAED,2FAA2F;AAC3F,sDAAsD;AACtD,IAAI,OAAO,GAAiD,IAAI,CAAC;AAEjE,iGAAiG;AACjG,MAAM,UAAU,aAAa,CAAC,IAAuC;IACnE,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,iBAAiB;AACjB,MAAM,UAAU,oBAAoB;IAClC,OAAO,GAAG,IAAI,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which entry point this process is serving. Set once at startup by the command entry;
|
|
3
|
+
* GLBGPT_SURFACE overrides it so wrappers (agent skills, scripts) can attribute themselves
|
|
4
|
+
* without a dedicated flag.
|
|
5
|
+
*/
|
|
6
|
+
export type Surface = 'tui' | 'exec' | 'mcp' | 'skill' | 'cmd';
|
|
7
|
+
export declare function setSurface(surface: Surface): void;
|
|
8
|
+
export declare function getSurface(): Surface;
|
|
9
|
+
/**
|
|
10
|
+
* Identification headers attached to every request against our own API. Servers that do not
|
|
11
|
+
* read them ignore them; the header name uses hyphens only (nginx drops underscore headers
|
|
12
|
+
* by default).
|
|
13
|
+
*/
|
|
14
|
+
export declare function clientHeaders(): Record<string, string>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { VERSION } from '../version.js';
|
|
2
|
+
const SURFACES = new Set(['tui', 'exec', 'mcp', 'skill', 'cmd']);
|
|
3
|
+
let currentSurface = 'cmd';
|
|
4
|
+
export function setSurface(surface) {
|
|
5
|
+
currentSurface = surface;
|
|
6
|
+
}
|
|
7
|
+
export function getSurface() {
|
|
8
|
+
const env = process.env.GLBGPT_SURFACE;
|
|
9
|
+
if (env && SURFACES.has(env))
|
|
10
|
+
return env;
|
|
11
|
+
return currentSurface;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Identification headers attached to every request against our own API. Servers that do not
|
|
15
|
+
* read them ignore them; the header name uses hyphens only (nginx drops underscore headers
|
|
16
|
+
* by default).
|
|
17
|
+
*/
|
|
18
|
+
export function clientHeaders() {
|
|
19
|
+
return {
|
|
20
|
+
'User-Agent': `glbgpt-cli/${VERSION} (${process.platform}; ${process.arch})`,
|
|
21
|
+
'X-GLB-Surface': getSurface(),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=clientHeaders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clientHeaders.js","sourceRoot":"","sources":["../../../src/core/clientHeaders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AASxC,MAAM,QAAQ,GAAwB,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAEtF,IAAI,cAAc,GAAY,KAAK,CAAC;AAEpC,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,cAAc,GAAG,OAAO,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IACvC,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,GAAc,CAAC;IACpD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL,YAAY,EAAE,cAAc,OAAO,KAAK,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,IAAI,GAAG;QAC5E,eAAe,EAAE,UAAU,EAAE;KAC9B,CAAC;AACJ,CAAC"}
|
|
@@ -8,11 +8,16 @@ import { PRUNE_KEEP_RECENT, PRUNE_MIN_CONTENT_BYTES, PRUNE_PLACEHOLDER } from '.
|
|
|
8
8
|
* only ever grows — so between triggers the projection is byte-stable and the
|
|
9
9
|
* upstream prompt cache keeps hitting.
|
|
10
10
|
*/
|
|
11
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Prunable = free to re-run. web_fetch joins the fs tools (local, no cost); web_search
|
|
13
|
+
* does NOT — clearing its results would nudge the model into re-searching, which bills.
|
|
14
|
+
*/
|
|
15
|
+
const PRUNABLE_TOOL_NAMES = new Set([...FS_TOOL_NAMES, 'web_fetch']);
|
|
16
|
+
/** True for a tool result we may clear: successful re-runnable output big enough to matter. */
|
|
12
17
|
function isPrunable(m) {
|
|
13
18
|
if (m.role !== 'tool' || typeof m.content !== 'string' || !m.tool_call_id)
|
|
14
19
|
return false;
|
|
15
|
-
if (!m.name || !
|
|
20
|
+
if (!m.name || !PRUNABLE_TOOL_NAMES.has(m.name))
|
|
16
21
|
return false; // media results carry task_id anchors
|
|
17
22
|
if (Buffer.byteLength(m.content, 'utf8') <= PRUNE_MIN_CONTENT_BYTES)
|
|
18
23
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextPrune.js","sourceRoot":"","sources":["../../../src/core/contextPrune.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEhG;;;;;;;GAOG;AAEH,
|
|
1
|
+
{"version":3,"file":"contextPrune.js","sourceRoot":"","sources":["../../../src/core/contextPrune.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEhG;;;;;;;GAOG;AAEH;;;GAGG;AACH,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;AAE1F,+FAA+F;AAC/F,SAAS,UAAU,CAAC,CAAc;IAChC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IACxF,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,sCAAsC;IACrG,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,uBAAuB;QAAE,OAAO,KAAK,CAAC;IAClF,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAChE,IAAI,OAAO,IAAI,MAAM;YAAE,OAAO,KAAK,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC,CAAC,sCAAsC;IACtD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAuB,EACvB,aAAkC;IAElC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,0EAA0E;QAC1E,6EAA6E;QAC7E,6EAA6E;QAC7E,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC;YAAE,SAAS;QACxF,IAAI,UAAU,CAAC,CAAC,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC;AACjF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAuB,EACvB,SAA8B;IAE9B,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACxB,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC;QAClE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE;QACtC,CAAC,CAAC,CAAC,CACN,CAAC;AACJ,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { clientHeaders } from './clientHeaders.js';
|
|
1
2
|
import { withRetry, isTransientNetworkError, describeNetworkError, hostOf } from '../util/retry.js';
|
|
2
3
|
import { describePaymentRequired } from '../media/errors.js';
|
|
3
4
|
import { PaymentRequiredError } from '../media/aiApiClient.js';
|
|
@@ -41,6 +42,7 @@ export class HttpChatBackend {
|
|
|
41
42
|
'Content-Type': 'application/json',
|
|
42
43
|
Accept: 'text/event-stream',
|
|
43
44
|
Authorization: `Bearer ${this.token}`,
|
|
45
|
+
...clientHeaders(),
|
|
44
46
|
},
|
|
45
47
|
body: JSON.stringify(req),
|
|
46
48
|
signal,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpChatBackend.js","sourceRoot":"","sources":["../../../src/core/httpChatBackend.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACpG,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,gFAAgF;AAChF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAelD;;;;;;GAMG;AACH,MAAM,OAAO,eAAe;IACT,OAAO,CAAS;IACzB,KAAK,CAAS;IACL,SAAS,CAAe;IACxB,OAAO,CAAS;IAChB,KAAK,CAAiC;IAEvD,YAAY,IAA4B;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,6DAA6D;IAC7D,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,GAAgB,EAAE,MAAoB;QAClD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,iCAAiC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAElC,0FAA0F;QAC1F,4FAA4F;QAC5F,qFAAqF;QACrF,IAAI,GAAa,CAAC;QAClB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,SAAS,CACnB,GAAG,EAAE,CACH,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;gBAClB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,MAAM,EAAE,mBAAmB;oBAC3B,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"httpChatBackend.js","sourceRoot":"","sources":["../../../src/core/httpChatBackend.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,8 @@ export declare class ToolRegistry {
|
|
|
17
17
|
* names (dispatch answers those with an instant error result — no side effects).
|
|
18
18
|
*/
|
|
19
19
|
isReadOnly(name: string): boolean;
|
|
20
|
+
/** Per-turn cap declared by the tool itself (undefined = only the global turn budget). */
|
|
21
|
+
maxCallsPerTurn(name: string): number | undefined;
|
|
20
22
|
/**
|
|
21
23
|
* OpenAI `tools` array for the chat request. `includeGated=false` omits gated tools
|
|
22
24
|
* (model lacks the catalog tool_use capability). Undefined when nothing remains.
|
|
@@ -22,6 +22,10 @@ export class ToolRegistry {
|
|
|
22
22
|
const entry = this.tools.get(name);
|
|
23
23
|
return entry ? entry.tool.readOnly === true : true;
|
|
24
24
|
}
|
|
25
|
+
/** Per-turn cap declared by the tool itself (undefined = only the global turn budget). */
|
|
26
|
+
maxCallsPerTurn(name) {
|
|
27
|
+
return this.tools.get(name)?.tool.maxCallsPerTurn;
|
|
28
|
+
}
|
|
25
29
|
/**
|
|
26
30
|
* OpenAI `tools` array for the chat request. `includeGated=false` omits gated tools
|
|
27
31
|
* (model lacks the catalog tool_use capability). Undefined when nothing remains.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolRegistry.js","sourceRoot":"","sources":["../../../src/core/toolRegistry.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,OAAO,YAAY;IACN,KAAK,GAAG,IAAI,GAAG,EAAgD,CAAC;IAEjF,uFAAuF;IACvF,QAAQ,CAAC,IAAgB,EAAE,OAA4B,EAAE;QACvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,IAAY;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,YAAY,GAAG,IAAI;QAC/B,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;aACvC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACrB,IAAI,EAAE,UAAmB;YACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE;SACjF,CAAC,CAAC,CAAC;QACN,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,OAAe;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,KAAK,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;QAC5C,CAAC;QACD,IAAI,IAA6B,CAAC;QAClC,IAAI,CAAC;YACH,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,KAAK,EAAE,4CAA4C,OAAO,EAAE,EAAE,CAAC;QAC1E,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACrE,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"toolRegistry.js","sourceRoot":"","sources":["../../../src/core/toolRegistry.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,OAAO,YAAY;IACN,KAAK,GAAG,IAAI,GAAG,EAAgD,CAAC;IAEjF,uFAAuF;IACvF,QAAQ,CAAC,IAAgB,EAAE,OAA4B,EAAE;QACvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,IAAY;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,CAAC;IAED,0FAA0F;IAC1F,eAAe,CAAC,IAAY;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC;IACpD,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,YAAY,GAAG,IAAI;QAC/B,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;aACvC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACrB,IAAI,EAAE,UAAmB;YACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE;SACjF,CAAC,CAAC,CAAC;QACN,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,OAAe;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,KAAK,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;QAC5C,CAAC;QACD,IAAI,IAA6B,CAAC;QAClC,IAAI,CAAC;YACH,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,KAAK,EAAE,4CAA4C,OAAO,EAAE,EAAE,CAAC;QAC1E,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACrE,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BUDGET_EXHAUSTED_MESSAGE, MAX_TOOL_CALLS_PER_TURN } from '../fs/limits.js';
|
|
2
|
+
import { track } from '../telemetry/telemetry.js';
|
|
2
3
|
/** Pathological backstop only — the tool budget below governs normal turns. */
|
|
3
4
|
const MAX_ROUNDS = 24;
|
|
4
5
|
/**
|
|
@@ -24,8 +25,12 @@ export class TurnLoop {
|
|
|
24
25
|
// trace. Otherwise a request that fails (e.g. an oversized image payload) stays in history
|
|
25
26
|
// and is re-sent every subsequent turn — poisoning the session so even "hello" keeps failing.
|
|
26
27
|
const checkpoint = session.messageCount();
|
|
28
|
+
const startedAt = Date.now();
|
|
27
29
|
const budget = opts.maxToolCalls ?? MAX_TOOL_CALLS_PER_TURN;
|
|
28
30
|
let toolCallsUsed = 0;
|
|
31
|
+
// Per-tool usage this turn, for tools that declare their own cap (e.g. web_search
|
|
32
|
+
// bounds per-turn spend). Enforced alongside the global budget below.
|
|
33
|
+
const perToolUsed = new Map();
|
|
29
34
|
session.addUserMessage(userContent);
|
|
30
35
|
for (let round = 0; round < MAX_ROUNDS; round++) {
|
|
31
36
|
let content;
|
|
@@ -57,6 +62,11 @@ export class TurnLoop {
|
|
|
57
62
|
}
|
|
58
63
|
session.addAssistantMessage(content.length > 0 ? content : null, toolCalls);
|
|
59
64
|
if (toolCalls.length === 0) {
|
|
65
|
+
track('turn_complete', {
|
|
66
|
+
model: session.model,
|
|
67
|
+
latency_ms: Date.now() - startedAt,
|
|
68
|
+
tool_calls: toolCallsUsed,
|
|
69
|
+
});
|
|
60
70
|
emit({ type: 'turn_complete' });
|
|
61
71
|
return;
|
|
62
72
|
}
|
|
@@ -68,7 +78,24 @@ export class TurnLoop {
|
|
|
68
78
|
// cannot conflict); any non-read-only tool (paid media with its confirmation
|
|
69
79
|
// dialog) keeps the round strictly sequential. Budget slots are assigned by call
|
|
70
80
|
// order up front so the outcome is deterministic either way.
|
|
71
|
-
|
|
81
|
+
// Budget + per-tool cap slots are assigned by call order UP FRONT so the outcome is
|
|
82
|
+
// deterministic whether the round runs sequentially or in parallel. A call denied by
|
|
83
|
+
// its tool's own cap consumes no global-budget slot (it never executes).
|
|
84
|
+
const denial = toolCalls.map((call) => {
|
|
85
|
+
const name = call.function.name;
|
|
86
|
+
const cap = this.registry.maxCallsPerTurn(name);
|
|
87
|
+
if (cap !== undefined) {
|
|
88
|
+
const used = perToolUsed.get(name) ?? 0;
|
|
89
|
+
if (used >= cap) {
|
|
90
|
+
return `The ${name} tool reached its limit for this turn (${cap} calls). Continue with what you have.`;
|
|
91
|
+
}
|
|
92
|
+
perToolUsed.set(name, used + 1);
|
|
93
|
+
}
|
|
94
|
+
if (toolCallsUsed >= budget)
|
|
95
|
+
return BUDGET_EXHAUSTED_MESSAGE;
|
|
96
|
+
toolCallsUsed += 1;
|
|
97
|
+
return null;
|
|
98
|
+
});
|
|
72
99
|
const parallel = toolCalls.length > 1 && toolCalls.every((c) => this.registry.isReadOnly(c.function.name));
|
|
73
100
|
if (parallel) {
|
|
74
101
|
for (const call of toolCalls) {
|
|
@@ -80,28 +107,28 @@ export class TurnLoop {
|
|
|
80
107
|
});
|
|
81
108
|
}
|
|
82
109
|
const results = await Promise.all(toolCalls.map(async (call, i) => {
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
110
|
+
const denied = denial[i];
|
|
111
|
+
const result = denied
|
|
112
|
+
? { error: denied }
|
|
113
|
+
: await this.registry.dispatch(call.function.name, call.function.arguments);
|
|
86
114
|
// Ends may arrive out of completion order; the TUI matches rows by call id.
|
|
87
115
|
emit({ type: 'tool_call_end', id: call.id, name: call.function.name, result });
|
|
88
116
|
return result;
|
|
89
117
|
}));
|
|
90
118
|
// Tool messages must follow the tool_calls order the model emitted.
|
|
91
119
|
toolCalls.forEach((call, i) => session.addToolMessage(call.id, call.function.name, results[i]));
|
|
92
|
-
toolCallsUsed = Math.min(budget, toolCallsUsed + toolCalls.length);
|
|
93
120
|
}
|
|
94
121
|
else {
|
|
95
|
-
for (
|
|
122
|
+
for (let i = 0; i < toolCalls.length; i++) {
|
|
123
|
+
const call = toolCalls[i];
|
|
96
124
|
const args = safeParseArgs(call.function.arguments);
|
|
97
125
|
emit({ type: 'tool_call_begin', id: call.id, name: call.function.name, args });
|
|
98
|
-
// Past
|
|
126
|
+
// Past a budget/cap, don't dispatch: feed the model an error instead, so it
|
|
99
127
|
// wraps up with what it has (a normal answer, not a hard stop).
|
|
100
|
-
const
|
|
101
|
-
|
|
128
|
+
const denied = denial[i];
|
|
129
|
+
const result = denied
|
|
130
|
+
? { error: denied }
|
|
102
131
|
: await this.registry.dispatch(call.function.name, call.function.arguments);
|
|
103
|
-
if (toolCallsUsed < budget)
|
|
104
|
-
toolCallsUsed += 1;
|
|
105
132
|
emit({ type: 'tool_call_end', id: call.id, name: call.function.name, result });
|
|
106
133
|
session.addToolMessage(call.id, call.function.name, result);
|
|
107
134
|
}
|
|
@@ -143,6 +170,8 @@ export class TurnLoop {
|
|
|
143
170
|
id: e.id,
|
|
144
171
|
type: 'function',
|
|
145
172
|
function: { name: e.name, arguments: e.args },
|
|
173
|
+
// Echoed verbatim in history (Gemini thought signatures) — see ToolCall.extra_content.
|
|
174
|
+
...(e.extraContent !== undefined ? { extra_content: e.extraContent } : {}),
|
|
146
175
|
}))
|
|
147
176
|
.filter((c) => c.function.name.length > 0);
|
|
148
177
|
return { content, toolCalls };
|
|
@@ -176,6 +205,8 @@ export class TurnLoop {
|
|
|
176
205
|
entry.name = tc.function.name;
|
|
177
206
|
if (tc.function?.arguments)
|
|
178
207
|
entry.args += tc.function.arguments;
|
|
208
|
+
if (tc.extra_content !== undefined)
|
|
209
|
+
entry.extraContent = tc.extra_content;
|
|
179
210
|
toolAcc.set(tc.index, entry);
|
|
180
211
|
}
|
|
181
212
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turnLoop.js","sourceRoot":"","sources":["../../../src/core/turnLoop.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"turnLoop.js","sourceRoot":"","sources":["../../../src/core/turnLoop.ts"],"names":[],"mappings":"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"}
|
package/dist/src/core/types.d.ts
CHANGED
|
@@ -39,6 +39,13 @@ export interface ToolCall {
|
|
|
39
39
|
/** JSON-encoded arguments string (may arrive in streamed pieces). */
|
|
40
40
|
arguments: string;
|
|
41
41
|
};
|
|
42
|
+
/**
|
|
43
|
+
* Opaque provider extras echoed back VERBATIM when this call is replayed in history.
|
|
44
|
+
* Gemini 3 (Vertex OpenAI-compat) delivers `{google: {thought_signature}}` here and
|
|
45
|
+
* REJECTS the next tool round without it (live-verified 2026-07-22). Only models that
|
|
46
|
+
* emit it ever see it back, so other providers are unaffected.
|
|
47
|
+
*/
|
|
48
|
+
extra_content?: unknown;
|
|
42
49
|
}
|
|
43
50
|
/** A streaming chunk in the OpenAI chat.completion.chunk shape (only the fields we consume). */
|
|
44
51
|
export interface ChatChunk {
|
|
@@ -54,6 +61,8 @@ export interface ChatChunk {
|
|
|
54
61
|
name?: string;
|
|
55
62
|
arguments?: string;
|
|
56
63
|
};
|
|
64
|
+
/** Provider extras on the call (Gemini thought signatures) — see ToolCall.extra_content. */
|
|
65
|
+
extra_content?: unknown;
|
|
57
66
|
}>;
|
|
58
67
|
};
|
|
59
68
|
finish_reason?: string | null;
|
|
@@ -104,6 +113,12 @@ export interface ClientTool {
|
|
|
104
113
|
* confirmation dialog) keeps the round strictly sequential.
|
|
105
114
|
*/
|
|
106
115
|
readOnly?: boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Per-turn call cap for THIS tool, enforced by TurnLoop on top of the global
|
|
118
|
+
* turn budget. Calls past the cap are answered with an error result instead of
|
|
119
|
+
* executing — used to bound per-turn spend on flat-priced tools (web_search).
|
|
120
|
+
*/
|
|
121
|
+
maxCallsPerTurn?: number;
|
|
107
122
|
execute(args: Record<string, unknown>): Promise<ToolResult>;
|
|
108
123
|
}
|
|
109
124
|
/** Result of running a client tool. Serialized to JSON as the tool message content. */
|