@introspection-sdk/introspection-node 0.19.1 → 0.21.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.
Files changed (211) hide show
  1. package/README.md +28 -8
  2. package/dist/auth.d.ts +1 -1
  3. package/dist/client.d.ts +4 -3
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +16 -7
  6. package/dist/client.js.map +1 -1
  7. package/dist/dev-target.js +1 -1
  8. package/dist/index.d.ts +4 -7
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +3 -6
  11. package/dist/index.js.map +1 -1
  12. package/dist/otel/index.d.ts +1 -14
  13. package/dist/otel/index.d.ts.map +1 -1
  14. package/dist/otel/index.js +10 -18
  15. package/dist/otel/index.js.map +1 -1
  16. package/dist/otel/init.d.ts +19 -21
  17. package/dist/otel/init.d.ts.map +1 -1
  18. package/dist/otel/init.js +62 -48
  19. package/dist/otel/init.js.map +1 -1
  20. package/dist/otel/integrations/base.d.ts +17 -37
  21. package/dist/otel/integrations/base.d.ts.map +1 -1
  22. package/dist/otel/integrations/base.js +6 -13
  23. package/dist/otel/integrations/base.js.map +1 -1
  24. package/dist/otel/integrations/index.d.ts +3 -4
  25. package/dist/otel/integrations/index.d.ts.map +1 -1
  26. package/dist/otel/integrations/index.js +6 -25
  27. package/dist/otel/integrations/index.js.map +1 -1
  28. package/dist/otel/integrations/pi.d.ts.map +1 -1
  29. package/dist/otel/integrations/pi.js +9 -1
  30. package/dist/otel/integrations/pi.js.map +1 -1
  31. package/dist/otel/logs.d.ts +41 -8
  32. package/dist/otel/logs.d.ts.map +1 -1
  33. package/dist/otel/logs.js +95 -66
  34. package/dist/otel/logs.js.map +1 -1
  35. package/dist/otel/pi.d.ts +18 -5
  36. package/dist/otel/pi.d.ts.map +1 -1
  37. package/dist/otel/pi.js +38 -9
  38. package/dist/otel/pi.js.map +1 -1
  39. package/dist/otel/register.d.ts +2 -2
  40. package/dist/otel/register.d.ts.map +1 -1
  41. package/dist/otel/register.js +7 -9
  42. package/dist/otel/register.js.map +1 -1
  43. package/dist/otel/setup.d.ts +2 -2
  44. package/dist/otel/setup.d.ts.map +1 -1
  45. package/dist/otel/setup.js +16 -6
  46. package/dist/otel/setup.js.map +1 -1
  47. package/dist/otel/span-processor.d.ts +18 -5
  48. package/dist/otel/span-processor.d.ts.map +1 -1
  49. package/dist/otel/span-processor.js +50 -65
  50. package/dist/otel/span-processor.js.map +1 -1
  51. package/dist/resources/experiments.d.ts +10 -5
  52. package/dist/resources/experiments.d.ts.map +1 -1
  53. package/dist/resources/experiments.js +9 -25
  54. package/dist/resources/experiments.js.map +1 -1
  55. package/dist/resources/recipes.d.ts +6 -6
  56. package/dist/resources/recipes.d.ts.map +1 -1
  57. package/dist/resources/recipes.js +5 -23
  58. package/dist/resources/recipes.js.map +1 -1
  59. package/dist/resources/runtimes.d.ts +2 -2
  60. package/dist/resources/runtimes.d.ts.map +1 -1
  61. package/dist/resources/runtimes.js +2 -2
  62. package/dist/resources/runtimes.js.map +1 -1
  63. package/dist/runner.d.ts +8 -4
  64. package/dist/runner.d.ts.map +1 -1
  65. package/dist/runner.js +26 -18
  66. package/dist/runner.js.map +1 -1
  67. package/dist/types.d.ts +1 -1
  68. package/dist/types.d.ts.map +1 -1
  69. package/dist/types.js +1 -1
  70. package/dist/types.js.map +1 -1
  71. package/dist/utils.d.ts +45 -0
  72. package/dist/utils.d.ts.map +1 -1
  73. package/dist/utils.js +61 -2
  74. package/dist/utils.js.map +1 -1
  75. package/dist/version.d.ts +1 -1
  76. package/dist/version.d.ts.map +1 -1
  77. package/dist/version.js +1 -1
  78. package/dist/version.js.map +1 -1
  79. package/package.json +18 -60
  80. package/.turbo/turbo-build.log +0 -4
  81. package/dist/converters/claude.d.ts +0 -150
  82. package/dist/converters/claude.d.ts.map +0 -1
  83. package/dist/converters/claude.js +0 -211
  84. package/dist/converters/claude.js.map +0 -1
  85. package/dist/converters/gemini.d.ts +0 -90
  86. package/dist/converters/gemini.d.ts.map +0 -1
  87. package/dist/converters/gemini.js +0 -171
  88. package/dist/converters/gemini.js.map +0 -1
  89. package/dist/converters/index.d.ts +0 -9
  90. package/dist/converters/index.d.ts.map +0 -1
  91. package/dist/converters/index.js +0 -9
  92. package/dist/converters/index.js.map +0 -1
  93. package/dist/converters/openai.d.ts +0 -51
  94. package/dist/converters/openai.d.ts.map +0 -1
  95. package/dist/converters/openai.js +0 -269
  96. package/dist/converters/openai.js.map +0 -1
  97. package/dist/converters/openinference.d.ts +0 -107
  98. package/dist/converters/openinference.d.ts.map +0 -1
  99. package/dist/converters/openinference.js +0 -553
  100. package/dist/converters/openinference.js.map +0 -1
  101. package/dist/converters/vercel.d.ts +0 -21
  102. package/dist/converters/vercel.d.ts.map +0 -1
  103. package/dist/converters/vercel.js +0 -236
  104. package/dist/converters/vercel.js.map +0 -1
  105. package/dist/otel/anthropic.d.ts +0 -63
  106. package/dist/otel/anthropic.d.ts.map +0 -1
  107. package/dist/otel/anthropic.js +0 -475
  108. package/dist/otel/anthropic.js.map +0 -1
  109. package/dist/otel/claude-hooks.d.ts +0 -346
  110. package/dist/otel/claude-hooks.d.ts.map +0 -1
  111. package/dist/otel/claude-hooks.js +0 -647
  112. package/dist/otel/claude-hooks.js.map +0 -1
  113. package/dist/otel/claude-wrapper.d.ts +0 -93
  114. package/dist/otel/claude-wrapper.d.ts.map +0 -1
  115. package/dist/otel/claude-wrapper.js +0 -155
  116. package/dist/otel/claude-wrapper.js.map +0 -1
  117. package/dist/otel/gemini.d.ts +0 -56
  118. package/dist/otel/gemini.d.ts.map +0 -1
  119. package/dist/otel/gemini.js +0 -350
  120. package/dist/otel/gemini.js.map +0 -1
  121. package/dist/otel/integrations/anthropic.d.ts +0 -10
  122. package/dist/otel/integrations/anthropic.d.ts.map +0 -1
  123. package/dist/otel/integrations/anthropic.js +0 -26
  124. package/dist/otel/integrations/anthropic.js.map +0 -1
  125. package/dist/otel/integrations/claude-agent.d.ts +0 -12
  126. package/dist/otel/integrations/claude-agent.d.ts.map +0 -1
  127. package/dist/otel/integrations/claude-agent.js +0 -28
  128. package/dist/otel/integrations/claude-agent.js.map +0 -1
  129. package/dist/otel/integrations/gemini.d.ts +0 -11
  130. package/dist/otel/integrations/gemini.d.ts.map +0 -1
  131. package/dist/otel/integrations/gemini.js +0 -23
  132. package/dist/otel/integrations/gemini.js.map +0 -1
  133. package/dist/otel/integrations/langchain.d.ts +0 -15
  134. package/dist/otel/integrations/langchain.d.ts.map +0 -1
  135. package/dist/otel/integrations/langchain.js +0 -43
  136. package/dist/otel/integrations/langchain.js.map +0 -1
  137. package/dist/otel/integrations/mastra.d.ts +0 -14
  138. package/dist/otel/integrations/mastra.d.ts.map +0 -1
  139. package/dist/otel/integrations/mastra.js +0 -31
  140. package/dist/otel/integrations/mastra.js.map +0 -1
  141. package/dist/otel/integrations/openai-agents.d.ts +0 -11
  142. package/dist/otel/integrations/openai-agents.d.ts.map +0 -1
  143. package/dist/otel/integrations/openai-agents.js +0 -30
  144. package/dist/otel/integrations/openai-agents.js.map +0 -1
  145. package/dist/otel/integrations/vercel.d.ts +0 -14
  146. package/dist/otel/integrations/vercel.d.ts.map +0 -1
  147. package/dist/otel/integrations/vercel.js +0 -20
  148. package/dist/otel/integrations/vercel.js.map +0 -1
  149. package/dist/otel/langchain-handler.d.ts +0 -112
  150. package/dist/otel/langchain-handler.d.ts.map +0 -1
  151. package/dist/otel/langchain-handler.js +0 -561
  152. package/dist/otel/langchain-handler.js.map +0 -1
  153. package/dist/otel/mastra-exporter.d.ts +0 -87
  154. package/dist/otel/mastra-exporter.d.ts.map +0 -1
  155. package/dist/otel/mastra-exporter.js +0 -530
  156. package/dist/otel/mastra-exporter.js.map +0 -1
  157. package/dist/otel/openai.d.ts +0 -20
  158. package/dist/otel/openai.d.ts.map +0 -1
  159. package/dist/otel/openai.js +0 -55
  160. package/dist/otel/openai.js.map +0 -1
  161. package/dist/otel/tracing-processor.d.ts +0 -139
  162. package/dist/otel/tracing-processor.d.ts.map +0 -1
  163. package/dist/otel/tracing-processor.js +0 -434
  164. package/dist/otel/tracing-processor.js.map +0 -1
  165. package/eslint.config.mjs +0 -4
  166. package/src/auth.ts +0 -236
  167. package/src/client.ts +0 -163
  168. package/src/converters/claude.ts +0 -343
  169. package/src/converters/gemini.ts +0 -243
  170. package/src/converters/index.ts +0 -50
  171. package/src/converters/openai.ts +0 -300
  172. package/src/converters/openinference.ts +0 -665
  173. package/src/converters/vercel.ts +0 -302
  174. package/src/dev-target.ts +0 -79
  175. package/src/http.ts +0 -43
  176. package/src/index.ts +0 -266
  177. package/src/otel/anthropic.ts +0 -619
  178. package/src/otel/claude-hooks.ts +0 -1116
  179. package/src/otel/claude-wrapper.ts +0 -239
  180. package/src/otel/gemini.ts +0 -483
  181. package/src/otel/index.ts +0 -128
  182. package/src/otel/init.ts +0 -411
  183. package/src/otel/integrations/anthropic.ts +0 -36
  184. package/src/otel/integrations/base.ts +0 -158
  185. package/src/otel/integrations/claude-agent.ts +0 -36
  186. package/src/otel/integrations/gemini.ts +0 -30
  187. package/src/otel/integrations/index.ts +0 -152
  188. package/src/otel/integrations/langchain.ts +0 -60
  189. package/src/otel/integrations/mastra.ts +0 -48
  190. package/src/otel/integrations/openai-agents.ts +0 -47
  191. package/src/otel/integrations/pi.ts +0 -28
  192. package/src/otel/integrations/vercel.ts +0 -26
  193. package/src/otel/langchain-handler.ts +0 -804
  194. package/src/otel/logs.ts +0 -395
  195. package/src/otel/mastra-exporter.ts +0 -714
  196. package/src/otel/openai.ts +0 -93
  197. package/src/otel/pi.ts +0 -94
  198. package/src/otel/register.ts +0 -50
  199. package/src/otel/setup.ts +0 -215
  200. package/src/otel/span-processor.ts +0 -512
  201. package/src/otel/tracing-processor.ts +0 -637
  202. package/src/pagination.ts +0 -10
  203. package/src/proxy-from-env.d.ts +0 -7
  204. package/src/resources/experiments.ts +0 -176
  205. package/src/resources/recipes.ts +0 -74
  206. package/src/resources/runtimes.ts +0 -31
  207. package/src/runner.ts +0 -213
  208. package/src/types.ts +0 -13
  209. package/src/utils.ts +0 -95
  210. package/src/version.ts +0 -2
  211. package/tsconfig.json +0 -8
@@ -1 +0,0 @@
1
- {"version":3,"file":"tracing-processor.js","sourceRoot":"","sources":["../../src/otel/tracing-processor.ts"],"names":[],"mappings":"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"}
package/eslint.config.mjs DELETED
@@ -1,4 +0,0 @@
1
- import { config } from "@repo/eslint-config/react-internal";
2
-
3
- /** @type {import("eslint").Linter.Config} */
4
- export default config;
package/src/auth.ts DELETED
@@ -1,236 +0,0 @@
1
- /**
2
- * Service-account (machine) authentication for the Control Plane.
3
- *
4
- * Mints a short-lived, project-scoped Introspection access token via the
5
- * OAuth 2.0 `client_credentials` grant against CP `POST /v1/oauth/token`.
6
- * This is the headless / CI counterpart to a long-lived API key: the
7
- * confidential Application's `client_id` + `client_secret` stay server-side,
8
- * and you re-mint when the token expires (no refresh token is issued).
9
- *
10
- * The minted `access_token` is an ordinary CP bearer token, so it drops
11
- * straight into the existing client surface — pass it to
12
- * {@link IntrospectionClient}, or use
13
- * {@link IntrospectionClient.fromServiceAccount} to mint and construct in one
14
- * call, and the usual `client.runtimes("runtime-slug").run()` flow works unchanged.
15
- */
16
- import { stripTrailingSlash, toApiError } from "@introspection-sdk/http";
17
-
18
- const DEFAULT_BASE_API_URL = "https://api.introspection.dev";
19
- const GRANT_TYPE_CLIENT_CREDENTIALS = "client_credentials";
20
- const GRANT_TYPE_TOKEN_EXCHANGE =
21
- "urn:ietf:params:oauth:grant-type:token-exchange";
22
- const GRANT_TYPE_AUTHORIZATION_CODE = "authorization_code";
23
- const SUBJECT_TOKEN_TYPE_ID_TOKEN = "urn:ietf:params:oauth:token-type:id_token";
24
-
25
- function resolveBaseApiUrl(baseApiUrl?: string): string {
26
- return stripTrailingSlash(
27
- baseApiUrl ??
28
- process.env.INTROSPECTION_BASE_API_URL ??
29
- DEFAULT_BASE_API_URL,
30
- );
31
- }
32
-
33
- function resolveFetch(custom?: typeof fetch): typeof fetch {
34
- const fetchImpl = custom ?? globalThis.fetch;
35
- if (!fetchImpl) {
36
- throw new Error(
37
- "global fetch is unavailable; pass `fetch` or run on Node 18+",
38
- );
39
- }
40
- return fetchImpl;
41
- }
42
-
43
- async function postTokenForm(
44
- baseApiUrl: string,
45
- form: URLSearchParams,
46
- fetchImpl: typeof fetch,
47
- ): Promise<OAuthToken> {
48
- const res = await fetchImpl(`${baseApiUrl}/v1/oauth/token`, {
49
- method: "POST",
50
- headers: { "Content-Type": "application/x-www-form-urlencoded" },
51
- body: form.toString(),
52
- cache: "no-store",
53
- });
54
- if (!res.ok) throw await toApiError(res);
55
- return (await res.json()) as OAuthToken;
56
- }
57
-
58
- /**
59
- * CP `POST /v1/oauth/token` response. No refresh token is issued for the
60
- * machine grants — re-mint when it expires.
61
- */
62
- export interface OAuthToken {
63
- /** Project-scoped RS256 access token (`Authorization: Bearer …`). */
64
- access_token: string;
65
- /** Always `"Bearer"`. */
66
- token_type: string;
67
- /** Token lifetime in seconds. */
68
- expires_in: number;
69
- /** The granted (scope-capped) scope, when the CP returns one. */
70
- scope: string | null;
71
- /**
72
- * Data Plane API base URL for the token's project, resolved by the CP the
73
- * same way it is for the CLI login. `null` when the deployment can't be
74
- * resolved; the caller then needs an explicit DP URL. Hand this to the
75
- * browser SDK as `dpUrl` so the SPA connects without separate DP config.
76
- */
77
- dp_url: string | null;
78
- }
79
-
80
- export interface ServiceAccountTokenParams {
81
- /** Confidential Application client id (`intro_app_…`). */
82
- clientId: string;
83
- /** Confidential Application client secret (`intro_sk_…`). */
84
- clientSecret: string;
85
- /**
86
- * Project the token is scoped to. Required by the CP `client_credentials`
87
- * grant — the minted token is project-scoped and the project must belong to
88
- * the Application's organization.
89
- */
90
- project: string;
91
- /**
92
- * Optional space-separated scope. Capped server-side to the Application's
93
- * `allowed_scopes`; omit to receive the Application's default scope.
94
- */
95
- scope?: string;
96
- /**
97
- * CP API base URL. Defaults to `INTROSPECTION_BASE_API_URL` or
98
- * `https://api.introspection.dev`.
99
- */
100
- baseApiUrl?: string;
101
- /** Custom `fetch` (for tests or non-standard runtimes). */
102
- fetch?: typeof fetch;
103
- }
104
-
105
- /**
106
- * Back-compat alias: the `client_credentials` response is the same shape as
107
- * every other `/v1/oauth/token` response.
108
- */
109
- export type ServiceAccountToken = OAuthToken;
110
-
111
- /**
112
- * Mint a project-scoped CP access token from confidential service-account
113
- * credentials. See {@link ServiceAccountTokenParams}.
114
- *
115
- * @example
116
- * ```typescript
117
- * const { access_token, dp_url } = await serviceAccountToken({
118
- * clientId: process.env.INTROSPECTION_SERVICE_ACCOUNT_CLIENT_ID!,
119
- * clientSecret: process.env.INTROSPECTION_SERVICE_ACCOUNT_CLIENT_SECRET!,
120
- * project: process.env.INTRO_PROJECT!,
121
- * });
122
- * const client = new IntrospectionClient({ token: access_token });
123
- * ```
124
- */
125
- export async function serviceAccountToken(
126
- params: ServiceAccountTokenParams,
127
- ): Promise<OAuthToken> {
128
- const form = new URLSearchParams({
129
- grant_type: GRANT_TYPE_CLIENT_CREDENTIALS,
130
- client_id: params.clientId,
131
- client_secret: params.clientSecret,
132
- project: params.project,
133
- });
134
- if (params.scope) form.set("scope", params.scope);
135
- return postTokenForm(
136
- resolveBaseApiUrl(params.baseApiUrl),
137
- form,
138
- resolveFetch(params.fetch),
139
- );
140
- }
141
-
142
- export interface AuthorizationCodeParams {
143
- /** The authorization code returned to the redirect URI. */
144
- code: string;
145
- /** Public SPA Application `client_id` (PKCE — no secret). */
146
- clientId: string;
147
- /** The redirect URI the code was issued for (must match the authorize call). */
148
- redirectUri: string;
149
- /** The PKCE `code_verifier` paired with the authorize-step challenge. */
150
- codeVerifier: string;
151
- /**
152
- * CP API base URL. Defaults to `INTROSPECTION_BASE_API_URL` or
153
- * `https://api.introspection.dev`.
154
- */
155
- baseApiUrl?: string;
156
- /** Custom `fetch` (for tests or non-standard runtimes). */
157
- fetch?: typeof fetch;
158
- }
159
-
160
- /**
161
- * RFC 6749 / PKCE `authorization_code` exchange against CP
162
- * `POST /v1/oauth/token`. Run it in your backend so the browser hosted-login
163
- * flow does not hand-roll the token POST.
164
- */
165
- export async function authorizationCodeToken(
166
- params: AuthorizationCodeParams,
167
- ): Promise<OAuthToken> {
168
- const form = new URLSearchParams({
169
- grant_type: GRANT_TYPE_AUTHORIZATION_CODE,
170
- code: params.code,
171
- client_id: params.clientId,
172
- redirect_uri: params.redirectUri,
173
- code_verifier: params.codeVerifier,
174
- });
175
- return postTokenForm(
176
- resolveBaseApiUrl(params.baseApiUrl),
177
- form,
178
- resolveFetch(params.fetch),
179
- );
180
- }
181
-
182
- export interface TokenExchangeParams {
183
- /** The end user's subject token (e.g. a partner-IdP `id_token`). */
184
- subjectToken: string;
185
- /** The federated Application's `client_id` (public client — no secret). */
186
- clientId: string;
187
- /** Project the minted DP token is scoped to. */
188
- project: string;
189
- /**
190
- * The subject token's type URI. Defaults to
191
- * `urn:ietf:params:oauth:token-type:id_token`.
192
- */
193
- subjectTokenType?: string;
194
- /** Optional space-separated scope, capped server-side. */
195
- scope?: string;
196
- /**
197
- * CP API base URL. Defaults to `INTROSPECTION_BASE_API_URL` or
198
- * `https://api.introspection.dev`.
199
- */
200
- baseApiUrl?: string;
201
- /** Custom `fetch` (for tests or non-standard runtimes). */
202
- fetch?: typeof fetch;
203
- }
204
-
205
- /**
206
- * RFC 8693 token-exchange against CP `POST /v1/oauth/token`: trade an end
207
- * user's partner-IdP token for a project-scoped DP access token for a
208
- * `member_type=customer` member. Intended to run server-side in a broker (the
209
- * subject token shouldn't be re-handled in the browser longer than needed).
210
- *
211
- * @example
212
- * ```typescript
213
- * const { access_token, dp_url } = await tokenExchange({
214
- * subjectToken: idTokenFromPartnerIdp,
215
- * clientId: process.env.FEDERATED_CLIENT_ID!,
216
- * project: process.env.INTRO_PROJECT!,
217
- * });
218
- * ```
219
- */
220
- export async function tokenExchange(
221
- params: TokenExchangeParams,
222
- ): Promise<OAuthToken> {
223
- const form = new URLSearchParams({
224
- grant_type: GRANT_TYPE_TOKEN_EXCHANGE,
225
- subject_token: params.subjectToken,
226
- subject_token_type: params.subjectTokenType ?? SUBJECT_TOKEN_TYPE_ID_TOKEN,
227
- client_id: params.clientId,
228
- project: params.project,
229
- });
230
- if (params.scope) form.set("scope", params.scope);
231
- return postTokenForm(
232
- resolveBaseApiUrl(params.baseApiUrl),
233
- form,
234
- resolveFetch(params.fetch),
235
- );
236
- }
package/src/client.ts DELETED
@@ -1,163 +0,0 @@
1
- /**
2
- * Introspection REST Client for Node.js
3
- *
4
- * Exposes the Control Plane REST surface for running runtimes and operating
5
- * experiments. Calling `client.runtimes(slug).run()` or
6
- * `client.experiments(id).run()` returns a {@link Runner} bound to a Data
7
- * Plane sandbox.
8
- *
9
- * This class is **REST-only** and does not depend on the OpenTelemetry
10
- * SDK. For event tracking, feedback, identify, and baggage context
11
- * helpers, use {@link IntrospectionLogs} from
12
- * `@introspection-sdk/introspection-node/otel`.
13
- */
14
-
15
- import type { AdvancedOptions } from "@introspection-sdk/types";
16
- import { logger as sdkLogger } from "./utils.js";
17
- import type { IntrospectionClientOptions } from "./types.js";
18
- import { serviceAccountToken, type ServiceAccountTokenParams } from "./auth.js";
19
- import { HttpClient } from "./http.js";
20
- import {
21
- attachRuntimes,
22
- type RuntimeHandleFactory,
23
- type RuntimesApi,
24
- } from "./resources/runtimes.js";
25
- import {
26
- attachExperiments,
27
- type ExperimentHandleFactory,
28
- type ExperimentsApi,
29
- } from "./resources/experiments.js";
30
- import { attachRecipes, type RecipesApi } from "./resources/recipes.js";
31
- import { DEV_TARGET_HEADER, resolveDevTarget } from "./dev-target.js";
32
-
33
- /**
34
- * Introspection REST client.
35
- *
36
- * @example
37
- * ```typescript
38
- * const client = new IntrospectionClient({
39
- * token: process.env.INTROSPECTION_TOKEN,
40
- * });
41
- *
42
- * // Open a runner from a runtime, then drive it.
43
- * const runner = await client.runtimes("customer-agent").run({
44
- * identity: { user_id: "u_42" },
45
- * });
46
- * const run = await runner.tasks.create({ prompt: "Summarize this repo" });
47
- * for await (const ev of run.stream()) console.log(ev.type);
48
- *
49
- * await runner.close();
50
- * await client.shutdown();
51
- * ```
52
- */
53
- export class IntrospectionClient {
54
- /** @internal — HTTP client pointed at the CP API with the customer key. */
55
- readonly cpHttp: HttpClient;
56
- /** @internal — passed through to Runner so it can build its own DP HTTP client. */
57
- readonly advancedOptions: AdvancedOptions;
58
-
59
- /**
60
- * Read/resolve `/v1/runtimes` and open a runner with the callable handle.
61
- * Runtime lifecycle, version selection, and environment routing are managed
62
- * through the Introspection CLI and platform.
63
- */
64
- readonly runtimes: RuntimesApi & RuntimeHandleFactory;
65
-
66
- /**
67
- * CRUD on `/v1/experiments` and the `(id) => ExperimentHandle` factory.
68
- */
69
- readonly experiments: ExperimentsApi & ExperimentHandleFactory;
70
-
71
- /**
72
- * CRUD on `/v1/recipes`. Recipes are immutable build artefacts
73
- * (repository + git ref + commit sha) referenced by runtimes and
74
- * experiment arms.
75
- */
76
- readonly recipes: RecipesApi;
77
-
78
- constructor(options: IntrospectionClientOptions = {}) {
79
- const token = options.token || process.env.INTROSPECTION_TOKEN || "";
80
- const advanced = options.advanced || {};
81
- const baseApiUrl =
82
- advanced.baseApiUrl ||
83
- process.env.INTROSPECTION_BASE_API_URL ||
84
- "https://api.introspection.dev";
85
-
86
- if (!token) {
87
- sdkLogger.warn(
88
- "IntrospectionClient: No token provided. REST calls will fail.",
89
- );
90
- }
91
-
92
- // INTROSPECTION_DEV_TARGET rides every request as a header so it reaches
93
- // the paths a runner cannot: a bare `POST /v1/tasks` with a dev API key
94
- // mints its JWT from the key row and has no per-request claim to carry.
95
- // Merged first, so an explicit `additionalHeaders` entry still wins, and
96
- // stored on advancedOptions so the Runner's own DP client inherits it.
97
- const devTarget = resolveDevTarget();
98
- const additionalHeaders = devTarget
99
- ? { [DEV_TARGET_HEADER]: devTarget, ...advanced.additionalHeaders }
100
- : advanced.additionalHeaders;
101
- this.advancedOptions = { ...advanced, additionalHeaders };
102
-
103
- // CP HTTP client — talks to the customer-facing API with the customer
104
- // API key. Runners get their own HttpClient instances pointed at the
105
- // `deployment.endpoint` returned by `/v1/runtimes/{id}/run`.
106
- this.cpHttp = new HttpClient({
107
- apiUrl: baseApiUrl,
108
- token,
109
- additionalHeaders: this.advancedOptions.additionalHeaders,
110
- fetch: advanced.fetch,
111
- });
112
-
113
- this.runtimes = attachRuntimes(this, this.cpHttp);
114
- this.experiments = attachExperiments(this, this.cpHttp);
115
- this.recipes = attachRecipes(this.cpHttp);
116
-
117
- sdkLogger.info(`IntrospectionClient initialized: api=${baseApiUrl}`);
118
- }
119
-
120
- /**
121
- * Authenticate as a confidential service account and return a ready
122
- * client.
123
- *
124
- * Mints a short-lived, project-scoped CP access token via the
125
- * `client_credentials` grant (see {@link serviceAccountToken}) and wires
126
- * it in as the bearer token, so the runtime flow works exactly as it does
127
- * with an API key:
128
- *
129
- * @example
130
- * ```typescript
131
- * const client = await IntrospectionClient.fromServiceAccount({
132
- * clientId: process.env.INTROSPECTION_SERVICE_ACCOUNT_CLIENT_ID!,
133
- * clientSecret: process.env.INTROSPECTION_SERVICE_ACCOUNT_CLIENT_SECRET!,
134
- * project: process.env.INTRO_PROJECT!,
135
- * });
136
- *
137
- * // Resolved fresh from the runtime slug on every call.
138
- * const runner = await client.runtimes("customer-agent").run({
139
- * identity: { user_id: "u_demo" },
140
- * });
141
- * ```
142
- *
143
- * The token is not auto-refreshed: it lives for `expires_in` seconds, so
144
- * re-mint (call this again) for long-lived processes once it lapses.
145
- */
146
- static async fromServiceAccount(
147
- params: ServiceAccountTokenParams & { serviceName?: string },
148
- ): Promise<IntrospectionClient> {
149
- const { access_token } = await serviceAccountToken(params);
150
- return new IntrospectionClient({
151
- token: access_token,
152
- serviceName: params.serviceName,
153
- advanced: { baseApiUrl: params.baseApiUrl, fetch: params.fetch },
154
- });
155
- }
156
-
157
- /** Close the underlying HTTP client. */
158
- async shutdown(): Promise<void> {
159
- // HttpClient has no persistent connections to close, but reserved
160
- // for future use (e.g. agent keep-alive pools).
161
- sdkLogger.debug("IntrospectionClient shutdown complete");
162
- }
163
- }