@nodetool-ai/runtime 0.8.3 → 0.8.4-a13.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/dist/.nodetool-build-stamp +1 -1
- package/dist/canvas-codec.d.ts +3 -0
- package/dist/canvas-codec.d.ts.map +1 -0
- package/dist/canvas-codec.js +12 -0
- package/dist/canvas-codec.js.map +1 -0
- package/dist/context-packer.d.ts +1 -1
- package/dist/context-packer.js +1 -1
- package/dist/context.d.ts +3 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +13 -3
- package/dist/context.js.map +1 -1
- package/dist/host-binaries.d.ts.map +1 -1
- package/dist/host-binaries.js +4 -3
- package/dist/host-binaries.js.map +1 -1
- package/dist/http-client-spans.d.ts +9 -0
- package/dist/http-client-spans.d.ts.map +1 -0
- package/dist/http-client-spans.js +88 -0
- package/dist/http-client-spans.js.map +1 -0
- package/dist/image-codec.d.ts +6 -3
- package/dist/image-codec.d.ts.map +1 -1
- package/dist/image-codec.js +17 -17
- package/dist/image-codec.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/media-ref-bytes.d.ts.map +1 -1
- package/dist/media-ref-bytes.js +31 -6
- package/dist/media-ref-bytes.js.map +1 -1
- package/dist/otlp-json-trace-exporter.d.ts +89 -0
- package/dist/otlp-json-trace-exporter.d.ts.map +1 -0
- package/dist/otlp-json-trace-exporter.js +155 -0
- package/dist/otlp-json-trace-exporter.js.map +1 -0
- package/dist/providers/antigravity-provider.d.ts +113 -0
- package/dist/providers/antigravity-provider.d.ts.map +1 -0
- package/dist/providers/antigravity-provider.js +527 -0
- package/dist/providers/antigravity-provider.js.map +1 -0
- package/dist/providers/azure-openai-provider.d.ts +69 -0
- package/dist/providers/azure-openai-provider.d.ts.map +1 -0
- package/dist/providers/azure-openai-provider.js +233 -0
- package/dist/providers/azure-openai-provider.js.map +1 -0
- package/dist/providers/base-provider.d.ts.map +1 -1
- package/dist/providers/base-provider.js +19 -1
- package/dist/providers/base-provider.js.map +1 -1
- package/dist/providers/bedrock-provider.d.ts +52 -0
- package/dist/providers/bedrock-provider.d.ts.map +1 -0
- package/dist/providers/bedrock-provider.js +648 -0
- package/dist/providers/bedrock-provider.js.map +1 -0
- package/dist/providers/bedrock-transport.d.ts +37 -0
- package/dist/providers/bedrock-transport.d.ts.map +1 -0
- package/dist/providers/bedrock-transport.js +186 -0
- package/dist/providers/bedrock-transport.js.map +1 -0
- package/dist/providers/chatgpt-provider.d.ts.map +1 -1
- package/dist/providers/chatgpt-provider.js +77 -32
- package/dist/providers/chatgpt-provider.js.map +1 -1
- package/dist/providers/claude-agent-provider.d.ts +29 -51
- package/dist/providers/claude-agent-provider.d.ts.map +1 -1
- package/dist/providers/claude-agent-provider.js +144 -202
- package/dist/providers/claude-agent-provider.js.map +1 -1
- package/dist/providers/claude-cli.d.ts +265 -0
- package/dist/providers/claude-cli.d.ts.map +1 -0
- package/dist/providers/claude-cli.js +488 -0
- package/dist/providers/claude-cli.js.map +1 -0
- package/dist/providers/codex-provider.d.ts +9 -2
- package/dist/providers/codex-provider.d.ts.map +1 -1
- package/dist/providers/codex-provider.js +25 -11
- package/dist/providers/codex-provider.js.map +1 -1
- package/dist/providers/core-tools.d.ts +4 -1
- package/dist/providers/core-tools.d.ts.map +1 -1
- package/dist/providers/core-tools.js +5 -3
- package/dist/providers/core-tools.js.map +1 -1
- package/dist/providers/dreamina-pending.d.ts +22 -0
- package/dist/providers/dreamina-pending.d.ts.map +1 -0
- package/dist/providers/dreamina-pending.js +86 -0
- package/dist/providers/dreamina-pending.js.map +1 -0
- package/dist/providers/dreamina-provider.d.ts +5 -0
- package/dist/providers/dreamina-provider.d.ts.map +1 -1
- package/dist/providers/dreamina-provider.js +88 -19
- package/dist/providers/dreamina-provider.js.map +1 -1
- package/dist/providers/extension-tab.d.ts +18 -5
- package/dist/providers/extension-tab.d.ts.map +1 -1
- package/dist/providers/extension-tab.js +71 -15
- package/dist/providers/extension-tab.js.map +1 -1
- package/dist/providers/gemini-web-provider.d.ts +14 -14
- package/dist/providers/gemini-web-provider.d.ts.map +1 -1
- package/dist/providers/gemini-web-provider.js +264 -189
- package/dist/providers/gemini-web-provider.js.map +1 -1
- package/dist/providers/http-transport.d.ts.map +1 -1
- package/dist/providers/http-transport.js +2 -0
- package/dist/providers/http-transport.js.map +1 -1
- package/dist/providers/index.d.ts +8 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +30 -7
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/node-llama-cpp-provider.d.ts.map +1 -1
- package/dist/providers/node-llama-cpp-provider.js +2 -4
- package/dist/providers/node-llama-cpp-provider.js.map +1 -1
- package/dist/providers/openai-provider.d.ts +2 -0
- package/dist/providers/openai-provider.d.ts.map +1 -1
- package/dist/providers/openai-provider.js +9 -5
- package/dist/providers/openai-provider.js.map +1 -1
- package/dist/providers/safe-url.d.ts.map +1 -1
- package/dist/providers/safe-url.js +8 -0
- package/dist/providers/safe-url.js.map +1 -1
- package/dist/providers/vgenv-provider.d.ts +33 -0
- package/dist/providers/vgenv-provider.d.ts.map +1 -0
- package/dist/providers/vgenv-provider.js +261 -0
- package/dist/providers/vgenv-provider.js.map +1 -0
- package/dist/python-graph-resolver.d.ts.map +1 -1
- package/dist/python-graph-resolver.js +12 -2
- package/dist/python-graph-resolver.js.map +1 -1
- package/dist/python-stdio-bridge.d.ts.map +1 -1
- package/dist/python-stdio-bridge.js +33 -10
- package/dist/python-stdio-bridge.js.map +1 -1
- package/dist/run-trace-processor.d.ts +3 -0
- package/dist/run-trace-processor.d.ts.map +1 -1
- package/dist/run-trace-processor.js +56 -40
- package/dist/run-trace-processor.js.map +1 -1
- package/dist/telemetry.d.ts +2 -2
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +33 -34
- package/dist/telemetry.js.map +1 -1
- package/dist/token-counter.d.ts +4 -13
- package/dist/token-counter.d.ts.map +1 -1
- package/dist/token-counter.js +68 -18
- package/dist/token-counter.js.map +1 -1
- package/dist/trace-context-manager.d.ts +12 -0
- package/dist/trace-context-manager.d.ts.map +1 -0
- package/dist/trace-context-manager.js +30 -0
- package/dist/trace-context-manager.js.map +1 -0
- package/dist/trace-exporters.d.ts +1 -1
- package/dist/trace-exporters.d.ts.map +1 -1
- package/dist/trace-exporters.js +4 -5
- package/dist/trace-exporters.js.map +1 -1
- package/dist/trace-semantic-conventions.d.ts +2 -0
- package/dist/trace-semantic-conventions.d.ts.map +1 -0
- package/dist/trace-semantic-conventions.js +2 -0
- package/dist/trace-semantic-conventions.js.map +1 -0
- package/dist/tracing-module.d.ts +3 -0
- package/dist/tracing-module.d.ts.map +1 -0
- package/dist/tracing-module.js +12 -0
- package/dist/tracing-module.js.map +1 -0
- package/package.json +35 -18
|
@@ -1,68 +1,54 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { type ClaudeCliSpawnFn, type ClaudeQueryFn, type ClaudeToolResultBlock } from "./claude-cli.js";
|
|
2
2
|
import { BaseProvider } from "./base-provider.js";
|
|
3
3
|
import { type LanguageModel, type Message, type MessageContent, type ProviderSession, type ProviderStreamItem, type ProviderSkill, type ProviderTool, type ToolCall } from "./types.js";
|
|
4
4
|
import type { RunBudget, TurnBudget } from "../turn-budget.js";
|
|
5
|
-
|
|
6
|
-
* The subset of the SDK `query` signature this provider depends on. We only
|
|
7
|
-
* pass a string for text-only turns or a structured user message for images,
|
|
8
|
-
* and consume the result as an async iterable. Injectable for tests.
|
|
9
|
-
*/
|
|
10
|
-
export type ClaudeQueryFn = (params: {
|
|
11
|
-
prompt: string | AsyncIterable<SDKUserMessage>;
|
|
12
|
-
options?: Options;
|
|
13
|
-
}) => AsyncIterable<SDKMessage>;
|
|
14
|
-
/** The SDK `createSdkMcpServer` factory. Injectable for tests. */
|
|
15
|
-
export type ClaudeCreateMcpServerFn = (opts: {
|
|
16
|
-
name: string;
|
|
17
|
-
version?: string;
|
|
18
|
-
tools: Array<SdkMcpToolDefinition>;
|
|
19
|
-
}) => McpSdkServerConfigWithInstance;
|
|
5
|
+
export type { ClaudeQueryFn };
|
|
20
6
|
interface ClaudeAgentProviderOptions {
|
|
21
|
-
/**
|
|
22
|
-
* Inject the SDK `query` (tests). Defaults to the real `query`, lazily
|
|
23
|
-
* imported on first use so the browser worker bundle that pulls in this
|
|
24
|
-
* barrel never tries to bundle the Node-only SDK.
|
|
25
|
-
*/
|
|
7
|
+
/** Replace the CLI session runner (tests). */
|
|
26
8
|
queryFn?: ClaudeQueryFn;
|
|
27
|
-
/**
|
|
28
|
-
|
|
9
|
+
/** Start the CLI process another way (tests). */
|
|
10
|
+
spawn?: ClaudeCliSpawnFn;
|
|
29
11
|
}
|
|
30
12
|
export declare class ClaudeAgentProvider extends BaseProvider {
|
|
31
|
-
/** The
|
|
13
|
+
/** The CLI runs with bypassPermissions, so its built-in `WebSearch` is live. */
|
|
32
14
|
get supportsNativeWebSearch(): boolean;
|
|
33
15
|
static requiredSecrets(): string[];
|
|
34
16
|
private readonly injectedQueryFn;
|
|
35
|
-
private readonly
|
|
17
|
+
private readonly spawnFn;
|
|
18
|
+
/** `CLAUDE_CLI_PATH` from settings or the environment, when set. */
|
|
19
|
+
private readonly configuredCliPath;
|
|
20
|
+
/** The resolved executable. Cleared on failure so a later install is found. */
|
|
21
|
+
private cliPath;
|
|
36
22
|
/**
|
|
37
23
|
* Within-process cache of the active session per thread. The persisted
|
|
38
24
|
* `provider_session` column is the source of truth; this only spares a DB
|
|
39
25
|
* round-trip for back-to-back turns in the same process.
|
|
40
26
|
*/
|
|
41
27
|
private readonly sessions;
|
|
42
|
-
constructor(
|
|
43
|
-
/** The subscription token is the
|
|
28
|
+
constructor(secrets?: Record<string, unknown>, options?: ClaudeAgentProviderOptions);
|
|
29
|
+
/** The subscription token is the CLI's business — never hand it to a sandbox. */
|
|
44
30
|
getContainerEnv(): {};
|
|
45
31
|
/**
|
|
46
|
-
* Tools run inside the
|
|
47
|
-
* tools are exposed as
|
|
32
|
+
* Tools run inside the CLI's own agent loop ({@link generateLoop}): NodeTool's
|
|
33
|
+
* tools are exposed as a host-served MCP server whose handlers call back into
|
|
48
34
|
* the harness's tool executor. The single-turn {@link generateMessages} stays
|
|
49
35
|
* tool-free.
|
|
50
36
|
*/
|
|
51
37
|
hasToolSupport(): Promise<boolean>;
|
|
52
38
|
/**
|
|
53
|
-
* Stable model aliases the
|
|
54
|
-
* avoid pinning a version that ages out; the concrete model id the
|
|
39
|
+
* Stable model aliases the CLI resolves to the latest dated model. Aliases
|
|
40
|
+
* avoid pinning a version that ages out; the concrete model id the CLI
|
|
55
41
|
* selects is captured from the stream for accurate cost attribution.
|
|
56
42
|
*/
|
|
57
43
|
getAvailableLanguageModels(): Promise<LanguageModel[]>;
|
|
58
|
-
/**
|
|
44
|
+
/** The CLI executable, located once per provider. */
|
|
45
|
+
resolveCliPath(): Promise<string>;
|
|
46
|
+
/** The session runner: the injected one, or the real CLI. */
|
|
59
47
|
private loadQuery;
|
|
60
|
-
/** Resolve the SDK `createSdkMcpServer`, lazily importing the Node-only pkg. */
|
|
61
|
-
private loadCreateMcpServer;
|
|
62
48
|
/**
|
|
63
|
-
* Run the
|
|
64
|
-
* {@link generateMessages}; with `tools` we expose them as
|
|
65
|
-
* server whose handlers call `executeTool`, let the
|
|
49
|
+
* Run the CLI's own agent loop. Tool-free turns behave exactly like
|
|
50
|
+
* {@link generateMessages}; with `tools` we expose them as a host-served MCP
|
|
51
|
+
* server whose handlers call `executeTool`, let the CLI loop (`maxTurns > 1`),
|
|
66
52
|
* and translate its `tool_use`/`tool_result` stream into ToolCall items and
|
|
67
53
|
* persistable {@link ProviderMessageEvent}s.
|
|
68
54
|
*/
|
|
@@ -75,14 +61,14 @@ export declare class ClaudeAgentProvider extends BaseProvider {
|
|
|
75
61
|
workspaceDir?: string;
|
|
76
62
|
/**
|
|
77
63
|
* The user's DB skills. Materialized into an isolated local plugin so the
|
|
78
|
-
*
|
|
64
|
+
* CLI's native `Skill` tool can list and load them on demand, keeping
|
|
79
65
|
* `settingSources: []` intact (no `~/.claude` / `CLAUDE.md` leakage). The
|
|
80
66
|
* caller hands these in instead of baking a skill catalog into the system
|
|
81
67
|
* prompt — this provider owns skill resolution.
|
|
82
68
|
*/
|
|
83
69
|
skills?: ProviderSkill[];
|
|
84
70
|
}): AsyncGenerator<ProviderStreamItem>;
|
|
85
|
-
private
|
|
71
|
+
private generateCliLoop;
|
|
86
72
|
generateMessages(args: {
|
|
87
73
|
messages: Message[];
|
|
88
74
|
model: string;
|
|
@@ -104,11 +90,11 @@ export declare class ClaudeAgentProvider extends BaseProvider {
|
|
|
104
90
|
/**
|
|
105
91
|
* Shared session machinery for {@link generateMessages} and
|
|
106
92
|
* {@link generateLoop}: decide resume vs fresh (best-effort, with a
|
|
107
|
-
* full-history priming fallback), then drive one
|
|
93
|
+
* full-history priming fallback), then drive one CLI turn via {@link runTurn}.
|
|
108
94
|
* `config` selects single-turn streaming vs the tool/message-emitting loop.
|
|
109
95
|
*/
|
|
110
96
|
private runWithSession;
|
|
111
|
-
/** Drive one
|
|
97
|
+
/** Drive one CLI session and translate its messages into stream items. */
|
|
112
98
|
private runTurn;
|
|
113
99
|
/** Record token usage from a terminal `result` message (success or error). */
|
|
114
100
|
private trackResultUsage;
|
|
@@ -128,19 +114,11 @@ export declare class ClaudeAgentProvider extends BaseProvider {
|
|
|
128
114
|
signal?: AbortSignal;
|
|
129
115
|
}): Promise<Message>;
|
|
130
116
|
}
|
|
131
|
-
type McpContentBlock =
|
|
132
|
-
type: "text";
|
|
133
|
-
text: string;
|
|
134
|
-
} | {
|
|
135
|
-
type: "image";
|
|
136
|
-
data: string;
|
|
137
|
-
mimeType: string;
|
|
138
|
-
};
|
|
117
|
+
type McpContentBlock = ClaudeToolResultBlock;
|
|
139
118
|
/**
|
|
140
119
|
* Convert a tool result into MCP content blocks. Text passes through; image
|
|
141
|
-
* parts become MCP image blocks (the
|
|
120
|
+
* parts become MCP image blocks (the CLI forwards them to Claude as real
|
|
142
121
|
* images). An image that can't be inlined becomes a failure note.
|
|
143
122
|
*/
|
|
144
123
|
export declare function toolResultToMcpContent(result: string | MessageContent[]): McpContentBlock[];
|
|
145
|
-
export {};
|
|
146
124
|
//# sourceMappingURL=claude-agent-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-agent-provider.d.ts","sourceRoot":"","sources":["../../src/providers/claude-agent-provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claude-agent-provider.d.ts","sourceRoot":"","sources":["../../src/providers/claude-agent-provider.ts"],"names":[],"mappings":"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"}
|