@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.
Files changed (143) hide show
  1. package/dist/.nodetool-build-stamp +1 -1
  2. package/dist/canvas-codec.d.ts +3 -0
  3. package/dist/canvas-codec.d.ts.map +1 -0
  4. package/dist/canvas-codec.js +12 -0
  5. package/dist/canvas-codec.js.map +1 -0
  6. package/dist/context-packer.d.ts +1 -1
  7. package/dist/context-packer.js +1 -1
  8. package/dist/context.d.ts +3 -0
  9. package/dist/context.d.ts.map +1 -1
  10. package/dist/context.js +13 -3
  11. package/dist/context.js.map +1 -1
  12. package/dist/host-binaries.d.ts.map +1 -1
  13. package/dist/host-binaries.js +4 -3
  14. package/dist/host-binaries.js.map +1 -1
  15. package/dist/http-client-spans.d.ts +9 -0
  16. package/dist/http-client-spans.d.ts.map +1 -0
  17. package/dist/http-client-spans.js +88 -0
  18. package/dist/http-client-spans.js.map +1 -0
  19. package/dist/image-codec.d.ts +6 -3
  20. package/dist/image-codec.d.ts.map +1 -1
  21. package/dist/image-codec.js +17 -17
  22. package/dist/image-codec.js.map +1 -1
  23. package/dist/index.d.ts +3 -2
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +3 -2
  26. package/dist/index.js.map +1 -1
  27. package/dist/media-ref-bytes.d.ts.map +1 -1
  28. package/dist/media-ref-bytes.js +31 -6
  29. package/dist/media-ref-bytes.js.map +1 -1
  30. package/dist/otlp-json-trace-exporter.d.ts +89 -0
  31. package/dist/otlp-json-trace-exporter.d.ts.map +1 -0
  32. package/dist/otlp-json-trace-exporter.js +155 -0
  33. package/dist/otlp-json-trace-exporter.js.map +1 -0
  34. package/dist/providers/antigravity-provider.d.ts +113 -0
  35. package/dist/providers/antigravity-provider.d.ts.map +1 -0
  36. package/dist/providers/antigravity-provider.js +527 -0
  37. package/dist/providers/antigravity-provider.js.map +1 -0
  38. package/dist/providers/azure-openai-provider.d.ts +69 -0
  39. package/dist/providers/azure-openai-provider.d.ts.map +1 -0
  40. package/dist/providers/azure-openai-provider.js +233 -0
  41. package/dist/providers/azure-openai-provider.js.map +1 -0
  42. package/dist/providers/base-provider.d.ts.map +1 -1
  43. package/dist/providers/base-provider.js +19 -1
  44. package/dist/providers/base-provider.js.map +1 -1
  45. package/dist/providers/bedrock-provider.d.ts +52 -0
  46. package/dist/providers/bedrock-provider.d.ts.map +1 -0
  47. package/dist/providers/bedrock-provider.js +648 -0
  48. package/dist/providers/bedrock-provider.js.map +1 -0
  49. package/dist/providers/bedrock-transport.d.ts +37 -0
  50. package/dist/providers/bedrock-transport.d.ts.map +1 -0
  51. package/dist/providers/bedrock-transport.js +186 -0
  52. package/dist/providers/bedrock-transport.js.map +1 -0
  53. package/dist/providers/chatgpt-provider.d.ts.map +1 -1
  54. package/dist/providers/chatgpt-provider.js +77 -32
  55. package/dist/providers/chatgpt-provider.js.map +1 -1
  56. package/dist/providers/claude-agent-provider.d.ts +29 -51
  57. package/dist/providers/claude-agent-provider.d.ts.map +1 -1
  58. package/dist/providers/claude-agent-provider.js +144 -202
  59. package/dist/providers/claude-agent-provider.js.map +1 -1
  60. package/dist/providers/claude-cli.d.ts +265 -0
  61. package/dist/providers/claude-cli.d.ts.map +1 -0
  62. package/dist/providers/claude-cli.js +488 -0
  63. package/dist/providers/claude-cli.js.map +1 -0
  64. package/dist/providers/codex-provider.d.ts +9 -2
  65. package/dist/providers/codex-provider.d.ts.map +1 -1
  66. package/dist/providers/codex-provider.js +25 -11
  67. package/dist/providers/codex-provider.js.map +1 -1
  68. package/dist/providers/core-tools.d.ts +4 -1
  69. package/dist/providers/core-tools.d.ts.map +1 -1
  70. package/dist/providers/core-tools.js +5 -3
  71. package/dist/providers/core-tools.js.map +1 -1
  72. package/dist/providers/dreamina-pending.d.ts +22 -0
  73. package/dist/providers/dreamina-pending.d.ts.map +1 -0
  74. package/dist/providers/dreamina-pending.js +86 -0
  75. package/dist/providers/dreamina-pending.js.map +1 -0
  76. package/dist/providers/dreamina-provider.d.ts +5 -0
  77. package/dist/providers/dreamina-provider.d.ts.map +1 -1
  78. package/dist/providers/dreamina-provider.js +88 -19
  79. package/dist/providers/dreamina-provider.js.map +1 -1
  80. package/dist/providers/extension-tab.d.ts +18 -5
  81. package/dist/providers/extension-tab.d.ts.map +1 -1
  82. package/dist/providers/extension-tab.js +71 -15
  83. package/dist/providers/extension-tab.js.map +1 -1
  84. package/dist/providers/gemini-web-provider.d.ts +14 -14
  85. package/dist/providers/gemini-web-provider.d.ts.map +1 -1
  86. package/dist/providers/gemini-web-provider.js +264 -189
  87. package/dist/providers/gemini-web-provider.js.map +1 -1
  88. package/dist/providers/http-transport.d.ts.map +1 -1
  89. package/dist/providers/http-transport.js +2 -0
  90. package/dist/providers/http-transport.js.map +1 -1
  91. package/dist/providers/index.d.ts +8 -0
  92. package/dist/providers/index.d.ts.map +1 -1
  93. package/dist/providers/index.js +30 -7
  94. package/dist/providers/index.js.map +1 -1
  95. package/dist/providers/node-llama-cpp-provider.d.ts.map +1 -1
  96. package/dist/providers/node-llama-cpp-provider.js +2 -4
  97. package/dist/providers/node-llama-cpp-provider.js.map +1 -1
  98. package/dist/providers/openai-provider.d.ts +2 -0
  99. package/dist/providers/openai-provider.d.ts.map +1 -1
  100. package/dist/providers/openai-provider.js +9 -5
  101. package/dist/providers/openai-provider.js.map +1 -1
  102. package/dist/providers/safe-url.d.ts.map +1 -1
  103. package/dist/providers/safe-url.js +8 -0
  104. package/dist/providers/safe-url.js.map +1 -1
  105. package/dist/providers/vgenv-provider.d.ts +33 -0
  106. package/dist/providers/vgenv-provider.d.ts.map +1 -0
  107. package/dist/providers/vgenv-provider.js +261 -0
  108. package/dist/providers/vgenv-provider.js.map +1 -0
  109. package/dist/python-graph-resolver.d.ts.map +1 -1
  110. package/dist/python-graph-resolver.js +12 -2
  111. package/dist/python-graph-resolver.js.map +1 -1
  112. package/dist/python-stdio-bridge.d.ts.map +1 -1
  113. package/dist/python-stdio-bridge.js +33 -10
  114. package/dist/python-stdio-bridge.js.map +1 -1
  115. package/dist/run-trace-processor.d.ts +3 -0
  116. package/dist/run-trace-processor.d.ts.map +1 -1
  117. package/dist/run-trace-processor.js +56 -40
  118. package/dist/run-trace-processor.js.map +1 -1
  119. package/dist/telemetry.d.ts +2 -2
  120. package/dist/telemetry.d.ts.map +1 -1
  121. package/dist/telemetry.js +33 -34
  122. package/dist/telemetry.js.map +1 -1
  123. package/dist/token-counter.d.ts +4 -13
  124. package/dist/token-counter.d.ts.map +1 -1
  125. package/dist/token-counter.js +68 -18
  126. package/dist/token-counter.js.map +1 -1
  127. package/dist/trace-context-manager.d.ts +12 -0
  128. package/dist/trace-context-manager.d.ts.map +1 -0
  129. package/dist/trace-context-manager.js +30 -0
  130. package/dist/trace-context-manager.js.map +1 -0
  131. package/dist/trace-exporters.d.ts +1 -1
  132. package/dist/trace-exporters.d.ts.map +1 -1
  133. package/dist/trace-exporters.js +4 -5
  134. package/dist/trace-exporters.js.map +1 -1
  135. package/dist/trace-semantic-conventions.d.ts +2 -0
  136. package/dist/trace-semantic-conventions.d.ts.map +1 -0
  137. package/dist/trace-semantic-conventions.js +2 -0
  138. package/dist/trace-semantic-conventions.js.map +1 -0
  139. package/dist/tracing-module.d.ts +3 -0
  140. package/dist/tracing-module.d.ts.map +1 -0
  141. package/dist/tracing-module.js +12 -0
  142. package/dist/tracing-module.js.map +1 -0
  143. package/package.json +35 -18
@@ -0,0 +1,155 @@
1
+ function anyValue(value) {
2
+ if (typeof value === "string") {
3
+ return { stringValue: value };
4
+ }
5
+ if (typeof value === "boolean") {
6
+ return { boolValue: value };
7
+ }
8
+ if (typeof value === "number") {
9
+ if (Number.isInteger(value)) {
10
+ return { intValue: BigInt(value).toString() };
11
+ }
12
+ return { doubleValue: Number.isFinite(value) ? value : Number.isNaN(value) ? "NaN" : value > 0 ? "Infinity" : "-Infinity" };
13
+ }
14
+ if (value instanceof Uint8Array) {
15
+ return { bytesValue: Buffer.from(value).toString("base64") };
16
+ }
17
+ if (Array.isArray(value)) {
18
+ return { arrayValue: { values: value.map(anyValue) } };
19
+ }
20
+ if (typeof value === "object" && value !== null) {
21
+ return { kvlistValue: { values: Object.entries(value).filter(([, item]) => item != null).map(([key, item]) => ({ key, value: anyValue(item) })) } };
22
+ }
23
+ // Null entries in SDK attribute arrays represent an empty AnyValue.
24
+ return {};
25
+ }
26
+ function attributes(values) {
27
+ return Object.entries(values ?? {}).filter(([, value]) => value != null).map(([key, value]) => ({ key, value: anyValue(value) }));
28
+ }
29
+ function unixNano(time) {
30
+ return (BigInt(time[0]) * 1000000000n + BigInt(time[1])).toString();
31
+ }
32
+ function flags(traceFlags, isRemote) {
33
+ return (traceFlags & 0xff) | 0x100 | (isRemote ? 0x200 : 0);
34
+ }
35
+ function encodeSpan(span) {
36
+ const ctx = span.spanContext();
37
+ return {
38
+ traceId: ctx.traceId,
39
+ spanId: ctx.spanId,
40
+ parentSpanId: span.parentSpanContext?.spanId,
41
+ traceState: ctx.traceState?.serialize(),
42
+ name: span.name,
43
+ kind: span.kind + 1,
44
+ startTimeUnixNano: unixNano(span.startTime),
45
+ endTimeUnixNano: unixNano(span.endTime),
46
+ attributes: attributes(span.attributes),
47
+ droppedAttributesCount: span.droppedAttributesCount,
48
+ events: span.events.map((event) => ({
49
+ name: event.name, timeUnixNano: unixNano(event.time),
50
+ attributes: attributes(event.attributes), droppedAttributesCount: event.droppedAttributesCount ?? 0
51
+ })),
52
+ droppedEventsCount: span.droppedEventsCount,
53
+ links: span.links.map((link) => ({
54
+ traceId: link.context.traceId, spanId: link.context.spanId,
55
+ traceState: link.context.traceState?.serialize(), attributes: attributes(link.attributes),
56
+ droppedAttributesCount: link.droppedAttributesCount ?? 0,
57
+ flags: flags(link.context.traceFlags, link.context.isRemote)
58
+ })),
59
+ droppedLinksCount: span.droppedLinksCount,
60
+ status: span.status,
61
+ flags: flags(ctx.traceFlags, span.parentSpanContext?.isRemote)
62
+ };
63
+ }
64
+ /** OTLP JSON uses hex IDs, decimal strings for 64-bit integers, and numeric enums. */
65
+ export function encodeOtlpTraces(spans) {
66
+ const resources = new Map();
67
+ for (const span of spans) {
68
+ let scopes = resources.get(span.resource);
69
+ if (!scopes) {
70
+ scopes = new Map();
71
+ resources.set(span.resource, scopes);
72
+ }
73
+ const key = JSON.stringify(span.instrumentationScope);
74
+ let group = scopes.get(key);
75
+ if (!group) {
76
+ group = [];
77
+ scopes.set(key, group);
78
+ }
79
+ group.push(span);
80
+ }
81
+ return { resourceSpans: [...resources].map(([resource, scopes]) => ({
82
+ resource: { attributes: attributes(resource.attributes), droppedAttributesCount: 0 },
83
+ schemaUrl: resource.schemaUrl,
84
+ scopeSpans: [...scopes.values()].map((group) => {
85
+ const scope = group[0]?.instrumentationScope;
86
+ return {
87
+ scope: { name: scope?.name, version: scope?.version },
88
+ schemaUrl: scope?.schemaUrl,
89
+ spans: group.map(encodeSpan)
90
+ };
91
+ })
92
+ })) };
93
+ }
94
+ export function otlpExporterConfigFromEnv(env) {
95
+ const key = env["TRACELOOP_API_KEY"];
96
+ const base = env["OTEL_EXPORTER_OTLP_ENDPOINT"];
97
+ const traces = env["OTEL_EXPORTER_OTLP_TRACES_ENDPOINT"];
98
+ if (!key && !base && !traces) {
99
+ return null;
100
+ }
101
+ const headers = {};
102
+ for (const entry of (env["OTEL_EXPORTER_OTLP_HEADERS"] ?? "").split(",")) {
103
+ const separator = entry.indexOf("=");
104
+ if (separator < 1) {
105
+ continue;
106
+ }
107
+ const name = entry.slice(0, separator).trim().toLowerCase();
108
+ if (name) {
109
+ headers[name] = decodeURIComponent(entry.slice(separator + 1).trim());
110
+ }
111
+ }
112
+ if (key) {
113
+ headers["authorization"] = `Bearer ${key}`;
114
+ }
115
+ return {
116
+ url: traces || (base ? `${base.replace(/\/+$/, "")}/v1/traces` : "https://api.traceloop.com/v1/traces"),
117
+ headers
118
+ };
119
+ }
120
+ export class OtlpJsonTraceExporter {
121
+ config;
122
+ send;
123
+ pending = new Set();
124
+ stopped = false;
125
+ constructor(config, send = fetch) {
126
+ this.config = config;
127
+ this.send = send;
128
+ }
129
+ export(spans, callback) {
130
+ if (this.stopped) {
131
+ callback({ code: 1, error: new Error("Trace exporter is shut down") });
132
+ return;
133
+ }
134
+ const pending = this.post(spans).then(() => callback({ code: 0 }), (error) => callback({ code: 1, error: error instanceof Error ? error : new Error(String(error)) }));
135
+ this.pending.add(pending);
136
+ void pending.finally(() => this.pending.delete(pending));
137
+ }
138
+ async post(spans) {
139
+ await Promise.all(spans.map((span) => span.resource.waitForAsyncAttributes?.()));
140
+ // The endpoint is operator-configured, not a caller URL, so safeFetch is unnecessary.
141
+ const response = await this.send(this.config.url, {
142
+ method: "POST", headers: { ...this.config.headers, "content-type": "application/json" },
143
+ body: JSON.stringify(encodeOtlpTraces(spans)), signal: AbortSignal.timeout(10_000), redirect: "error"
144
+ });
145
+ await response.body?.cancel();
146
+ if (!response.ok) {
147
+ throw new Error(`OTLP trace export failed with HTTP ${response.status}`);
148
+ }
149
+ }
150
+ async shutdown() {
151
+ this.stopped = true;
152
+ await Promise.all(this.pending);
153
+ }
154
+ }
155
+ //# sourceMappingURL=otlp-json-trace-exporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otlp-json-trace-exporter.js","sourceRoot":"","sources":["../src/otlp-json-trace-exporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * AntigravityProvider — models reached through Google's Antigravity CLI
3
+ * (`agy`) in headless mode, on the machine's signed-in Antigravity account.
4
+ *
5
+ * There is no API key: `agy` authenticates with credentials cached by an
6
+ * earlier interactive `agy` session. Each turn spawns
7
+ * `agy --input-format stream-json --output-format stream-json`, writes the
8
+ * prompt as one `user` event on stdin, closes stdin, and reads the NDJSON event
9
+ * stream (`init`, `step_update`, `result`). See
10
+ * https://antigravity.google/docs/cli/headless/.
11
+ *
12
+ * The CLI runs its own agent with its own tools, so NodeTool tools are not
13
+ * offered to it. It runs in a dedicated empty scratch directory, never the
14
+ * server's working directory, because headless runs auto-allow file reads and
15
+ * writes inside the active workspace. Shell commands stay soft-denied: the
16
+ * provider never passes `--dangerously-skip-permissions`.
17
+ */
18
+ import { BaseProvider } from "./base-provider.js";
19
+ import { type LanguageModel, type Message, type ProviderEffort, type ProviderSession, type ProviderStreamItem, type ProviderTool } from "./types.js";
20
+ /** One spawned `agy` process: its stdout lines and how it ended. */
21
+ export interface AntigravityCliRun {
22
+ /** Stdout, split into lines. Ends when the process closes stdout. */
23
+ lines: AsyncIterable<string>;
24
+ /** Resolves when the process exits. */
25
+ exit: Promise<{
26
+ code: number | null;
27
+ stderr: string;
28
+ }>;
29
+ /** Stop the process. Safe to call after it exited. */
30
+ kill(): void;
31
+ }
32
+ /** Spawns `agy` with `args`, writing `stdin` and then closing it. */
33
+ export type AntigravityCliRunner = (args: string[], options: {
34
+ stdin: string;
35
+ cwd: string | null;
36
+ }) => Promise<AntigravityCliRun>;
37
+ export interface AntigravityProviderOptions {
38
+ /** Replaces the real subprocess, for tests. */
39
+ runCli?: AntigravityCliRunner;
40
+ }
41
+ export declare class AntigravityProvider extends BaseProvider {
42
+ static requiredSecrets(): string[];
43
+ private readonly runCli;
44
+ /**
45
+ * Within-process cache of the active conversation per thread. The persisted
46
+ * `provider_session` column is the source of truth; this only covers callers
47
+ * that do not thread a session token in (the CLI chat).
48
+ */
49
+ private readonly sessions;
50
+ private modelsCache;
51
+ constructor(_secrets?: Record<string, unknown>, options?: AntigravityProviderOptions);
52
+ /** The CLI's credentials never leave this process. */
53
+ getContainerEnv(): Record<string, string>;
54
+ /** `agy` runs its own tools. NodeTool tools are not forwarded to it. */
55
+ hasToolSupport(): Promise<boolean>;
56
+ unavailableReason(): Promise<string | null>;
57
+ /**
58
+ * The slugs `agy models` prints. Effort is part of the slug (for example
59
+ * `gemini-3.1-pro-high`). Empty when the CLI is missing or signed out.
60
+ */
61
+ getAvailableLanguageModels(): Promise<LanguageModel[]>;
62
+ private listModels;
63
+ generateMessages(args: {
64
+ messages: Message[];
65
+ model: string;
66
+ tools?: ProviderTool[];
67
+ toolChoice?: string | "any";
68
+ effort?: ProviderEffort;
69
+ threadId?: string | null;
70
+ providerSession?: ProviderSession | null;
71
+ loadFullHistory?: () => Promise<Message[]>;
72
+ signal?: AbortSignal;
73
+ }): AsyncGenerator<ProviderStreamItem>;
74
+ /** Run one `agy` turn and translate its event stream into stream items. */
75
+ private runTurn;
76
+ private trackResultUsage;
77
+ generateMessage(args: {
78
+ messages: Message[];
79
+ model: string;
80
+ tools?: ProviderTool[];
81
+ toolChoice?: string | "any";
82
+ effort?: ProviderEffort;
83
+ threadId?: string | null;
84
+ providerSession?: ProviderSession | null;
85
+ signal?: AbortSignal;
86
+ }): Promise<Message>;
87
+ }
88
+ /** The `agy` flags for one headless turn. */
89
+ export declare function buildCliArgs(plan: {
90
+ model: string;
91
+ conversation: string | null;
92
+ effort: ProviderEffort | undefined;
93
+ resultTool: ProviderTool | undefined;
94
+ }): string[];
95
+ /**
96
+ * Model slugs from `agy models` output. The CLI prints one model per line,
97
+ * possibly with a bullet or a trailing description, so this keeps the first
98
+ * token of each line that looks like a slug. Every slug carries a version
99
+ * number, which separates slugs from header words.
100
+ */
101
+ export declare function parseModelSlugs(lines: readonly string[]): string[];
102
+ /**
103
+ * The user messages added since the checkpoint. Assistant turns in the slice
104
+ * came from the resumed conversation itself, so they are not replayed.
105
+ */
106
+ export declare function buildResumeDelta(messages: readonly Message[], checkpoint: number): string;
107
+ /**
108
+ * The prompt for a fresh conversation. `agy` has no system-prompt flag and
109
+ * cannot import earlier turns, so instructions and prior history are sent as
110
+ * delimited blocks ahead of the new user turn.
111
+ */
112
+ export declare function buildFreshPrompt(messages: readonly Message[], systemPrompt: string): string;
113
+ //# sourceMappingURL=antigravity-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"antigravity-provider.d.ts","sourceRoot":"","sources":["../../src/providers/antigravity-provider.ts"],"names":[],"mappings":"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"}