@coalex-ai/sdk 2.6.1 → 2.7.0-beta.699

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 CHANGED
@@ -116,22 +116,23 @@ instrumentOpenAI(); // returns boolean
116
116
 
117
117
  ### LangChain.js
118
118
 
119
- With `@arizeai/openinference-instrumentation-langchain` 4.x installed, `autoInstrument()` captures
120
- LangChain.js 0.3 and 1.x (`@langchain/core`) in a CommonJS app: `LLM`, `CHAIN`, `PROMPT` and `TOOL`
121
- spans. Call `register()` first, since the spans go to the globally registered provider and not to
122
- a `tracerProvider` option, and instrument before the app first loads LangChain. On its first call
123
- the result reads `langchain: "already_instrumented"` although the instrumentation is active.
124
-
125
- In an ESM app neither `autoInstrument()` nor `autoInstrumentAsync()` captures LangChain yet. Hand
126
- the instrumentor LangChain's callback manager instead, before your LangChain code runs:
119
+ With `@arizeai/openinference-instrumentation-langchain` 4.x installed, `autoInstrument()`,
120
+ `autoInstrumentAsync()` and `instrumentLangChain()` capture LangChain.js 0.3 and 1.x
121
+ (`@langchain/core`) in a CommonJS app and in an ESM app (`"type": "module"`): `LLM`, `CHAIN`,
122
+ `PROMPT` and `TOOL` spans. Call `register()`, or pass a `tracerProvider`, and instrument before
123
+ the app first loads LangChain:
127
124
 
128
125
  ```typescript
129
- import { LangChainInstrumentation } from "@arizeai/openinference-instrumentation-langchain";
130
-
131
126
  register({ apiKey: process.env.COALEX_API_KEY, serviceName: "my-agent" });
132
- new LangChainInstrumentation().manuallyInstrument(await import("@langchain/core/callbacks/manager"));
127
+ autoInstrument(); // { langchain: "success", ... }
128
+
129
+ // Import and run your LangChain code after this point.
133
130
  ```
134
131
 
132
+ The instrumentor hooks `require()` of LangChain's CommonJS build only, so the SDK also loads its
133
+ ES module build and hands it to the instrumentor. `autoInstrument()` loads it with `require()`,
134
+ which needs Node 20.19 or 22.12; on an older Node an ESM app calls `autoInstrumentAsync()`.
135
+
135
136
  Which lines are proven, and on which versions:
136
137
  [Supported Frameworks](https://docs.coalex.ai/reference/supported-frameworks/).
137
138
 
@@ -1 +1 @@
1
- {"version":3,"file":"auto-instrument.d.ts","sourceRoot":"","sources":["../src/auto-instrument.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMzD,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,eAAe,GACf,sBAAsB,GACtB,OAAO,GACP,UAAU,CAAC;AAEf,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAyJD,wBAAgB,cAAc,CAC5B,OAAO,CAAC,EAAE,qBAAqB,GAC9B,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CA6BvC;AAED,wBAAsB,mBAAmB,CACvC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CA6BhD;AAED,wBAAgB,gBAAgB,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAMzE;AAED,wBAAgB,mBAAmB,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAM5E;AAED,wBAAgB,mBAAmB,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAM5E"}
1
+ {"version":3,"file":"auto-instrument.d.ts","sourceRoot":"","sources":["../src/auto-instrument.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAOzD,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,eAAe,GACf,sBAAsB,GACtB,OAAO,GACP,UAAU,CAAC;AAEf,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAqRD,wBAAgB,cAAc,CAC5B,OAAO,CAAC,EAAE,qBAAqB,GAC9B,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CA+BvC;AAED,wBAAsB,mBAAmB,CACvC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CA+BhD;AAED,wBAAgB,gBAAgB,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAMzE;AAED,wBAAgB,mBAAmB,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAM5E;AAED,wBAAgB,mBAAmB,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,OAAO,CAM5E"}
@@ -1,5 +1,6 @@
1
+ import { readFileSync } from "node:fs";
1
2
  import { createRequire } from "node:module";
2
- import { join } from "node:path";
3
+ import { dirname, join } from "node:path";
3
4
  import { fileURLToPath, pathToFileURL } from "node:url";
4
5
  import { log } from "./logger.js";
5
6
  const INSTRUMENTORS = [
@@ -100,25 +101,140 @@ async function loadAsync(pkg, resolveFrom) {
100
101
  return { kind: "failed", error };
101
102
  }
102
103
  }
103
- /** Enable one loaded instrumentor. Throws whatever the instrumentor throws. */
104
+ /**
105
+ * The instrumentor classes this SDK has enabled in this process. A second call finds its class here
106
+ * and reports `already_instrumented`. The instrumentor's own `isEnabled()` cannot tell: an
107
+ * `InstrumentationBase` enables itself in its constructor unless its config says otherwise.
108
+ */
109
+ const enabledBySdk = new WeakSet();
110
+ /** Enable one loaded instrumentor with the given provider. Throws whatever the instrumentor throws. */
104
111
  function enableInstrumentor(mod, config, tracerProvider) {
105
112
  // An ESM namespace wraps a CommonJS package's exports in `default`; a CommonJS require does not.
106
113
  const candidates = [mod, mod["default"]];
107
114
  const InstrumentorClass = candidates.find((c) => c && c[config.class])?.[config.class];
108
115
  if (!InstrumentorClass) {
109
116
  log.warn(`Found ${config.package} but it has no ${config.class} export`);
110
- return "error";
111
- }
112
- const instrumentor = new InstrumentorClass();
113
- if (instrumentor["_isInstrumentedByOpenTelemetry"] || instrumentor["isEnabled"]?.()) {
114
- return "already_instrumented";
117
+ return { status: "error" };
115
118
  }
119
+ if (enabledBySdk.has(InstrumentorClass))
120
+ return { status: "already_instrumented" };
121
+ // The OpenInference instrumentors take `{ instrumentationConfig }`. `enabled: false` keeps the
122
+ // constructor from enabling the instrumentor before the given provider is set. One that enables
123
+ // itself anyway still gets the provider, and is not enabled a second time.
124
+ const instrumentor = new InstrumentorClass({ instrumentationConfig: { enabled: false } });
116
125
  if (tracerProvider) {
117
126
  instrumentor["setTracerProvider"].call(instrumentor, tracerProvider);
118
127
  }
119
- instrumentor["enable"].call(instrumentor);
128
+ if (!instrumentor["isEnabled"]?.call(instrumentor)) {
129
+ instrumentor["enable"].call(instrumentor);
130
+ }
131
+ enabledBySdk.add(InstrumentorClass);
120
132
  log.debug(`Instrumented ${config.description} (${config.name})`);
121
- return "success";
133
+ return { status: "success", instrumentor };
134
+ }
135
+ /*
136
+ * LangChain's ES module build.
137
+ *
138
+ * The LangChain instrumentor hooks `require()` of `@langchain/core`'s CommonJS build only. An app
139
+ * that imports LangChain as an ES module loads the ESM build (`callbacks/manager.js`), which no hook
140
+ * matches, so the SDK loads that build itself, resolved from where the app resolves it, and hands it
141
+ * to the instrumentor's `manuallyInstrument()`. Node keeps one instance of an ES module, so the
142
+ * app's own import later gets the patched one. No span is doubled: each build has its own
143
+ * `CallbackManager`, a LangChain call goes through one of them, and the instrumentor unwraps a
144
+ * module before it wraps it again.
145
+ */
146
+ const LANGCHAIN_CORE = "@langchain/core";
147
+ const CALLBACK_MANAGER = "./callbacks/manager";
148
+ // The conditions Node's ESM resolver matches; the package's own key order decides between them.
149
+ const IMPORT_CONDITIONS = ["node", "import", "default"];
150
+ /** The file an `exports` entry names under the import conditions, or null. */
151
+ function exportTarget(entry) {
152
+ if (typeof entry === "string")
153
+ return entry;
154
+ if (Array.isArray(entry)) {
155
+ for (const item of entry) {
156
+ const target = exportTarget(item);
157
+ if (target)
158
+ return target;
159
+ }
160
+ return null;
161
+ }
162
+ if (entry && typeof entry === "object") {
163
+ for (const [condition, value] of Object.entries(entry)) {
164
+ if (!IMPORT_CONDITIONS.includes(condition))
165
+ continue;
166
+ const target = exportTarget(value);
167
+ if (target)
168
+ return target;
169
+ }
170
+ }
171
+ return null;
172
+ }
173
+ /**
174
+ * The ESM build of `@langchain/core/callbacks/manager` the app imports, or null when
175
+ * `@langchain/core` is not installed or has no ESM build apart from the CommonJS one the
176
+ * instrumentor hooks.
177
+ */
178
+ function resolveLangChainEsm(resolveFrom) {
179
+ const pkgJson = resolvePackage(`${LANGCHAIN_CORE}/package.json`, resolveFrom);
180
+ if (!pkgJson)
181
+ return null;
182
+ const pkg = JSON.parse(readFileSync(pkgJson, "utf8"));
183
+ const target = exportTarget(pkg.exports?.[CALLBACK_MANAGER]);
184
+ if (!target)
185
+ return null;
186
+ const esm = join(dirname(pkgJson), target);
187
+ return esm === resolvePackage(`${LANGCHAIN_CORE}/callbacks/manager`, resolveFrom) ? null : esm;
188
+ }
189
+ function canPatchLangChainEsm(enabled, config) {
190
+ return (config.name === "langchain" &&
191
+ enabled.status === "success" &&
192
+ typeof enabled.instrumentor?.["manuallyInstrument"] === "function");
193
+ }
194
+ function manuallyInstrument(instrumentor, mod) {
195
+ instrumentor["manuallyInstrument"].call(instrumentor, mod);
196
+ log.debug(`Instrumented the ES module build of ${LANGCHAIN_CORE}`);
197
+ }
198
+ /** The CommonJS build stays instrumented and the result stays `success`; the failure is logged. */
199
+ function warnEsmFailure(error) {
200
+ const msg = error instanceof Error ? error.message : String(error);
201
+ log.warn(`Failed to instrument the ES module build of ${LANGCHAIN_CORE}: ${msg}`);
202
+ }
203
+ /**
204
+ * `autoInstrument()` loads the ESM build with `require()`, which Node runs on an ES module from
205
+ * 20.19 and 22.12. An app on an older Node that imports LangChain as an ES module calls
206
+ * `autoInstrumentAsync()`, which loads it with `import()`.
207
+ */
208
+ function patchLangChainEsmSync(enabled, config, resolveFrom) {
209
+ if (!canPatchLangChainEsm(enabled, config))
210
+ return;
211
+ try {
212
+ const esm = resolveLangChainEsm(resolveFrom);
213
+ if (!esm)
214
+ return;
215
+ if (!process.features.require_module) {
216
+ log.warn(`This Node cannot require() an ES module, so autoInstrument() instruments the CommonJS build of ` +
217
+ `${LANGCHAIN_CORE} only. An app that imports LangChain as an ES module calls autoInstrumentAsync().`);
218
+ return;
219
+ }
220
+ manuallyInstrument(enabled.instrumentor, createRequire(esm)(esm));
221
+ }
222
+ catch (error) {
223
+ warnEsmFailure(error);
224
+ }
225
+ }
226
+ async function patchLangChainEsmAsync(enabled, config, resolveFrom) {
227
+ if (!canPatchLangChainEsm(enabled, config))
228
+ return;
229
+ try {
230
+ const esm = resolveLangChainEsm(resolveFrom);
231
+ if (!esm)
232
+ return;
233
+ manuallyInstrument(enabled.instrumentor, await import(pathToFileURL(esm).href));
234
+ }
235
+ catch (error) {
236
+ warnEsmFailure(error);
237
+ }
122
238
  }
123
239
  /** What a failure that is not a missing module becomes: logged, and `error` — never `not_installed`. */
124
240
  function reportFailure(config, error, suppressErrors) {
@@ -156,7 +272,9 @@ export function autoInstrument(options) {
156
272
  continue;
157
273
  }
158
274
  try {
159
- results[config.name] = enableInstrumentor(loaded.mod, config, options?.tracerProvider);
275
+ const enabled = enableInstrumentor(loaded.mod, config, options?.tracerProvider);
276
+ results[config.name] = enabled.status;
277
+ patchLangChainEsmSync(enabled, config, options?.resolveFrom);
160
278
  }
161
279
  catch (error) {
162
280
  results[config.name] = reportFailure(config, error, suppressErrors);
@@ -185,7 +303,9 @@ export async function autoInstrumentAsync(options) {
185
303
  continue;
186
304
  }
187
305
  try {
188
- results[config.name] = enableInstrumentor(loaded.mod, config, options?.tracerProvider);
306
+ const enabled = enableInstrumentor(loaded.mod, config, options?.tracerProvider);
307
+ results[config.name] = enabled.status;
308
+ await patchLangChainEsmAsync(enabled, config, options?.resolveFrom);
189
309
  }
190
310
  catch (error) {
191
311
  results[config.name] = reportFailure(config, error, suppressErrors);
@@ -1 +1 @@
1
- {"version":3,"file":"auto-instrument.js","sourceRoot":"","sources":["../src/auto-instrument.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-instrument.js","sourceRoot":"","sources":["../src/auto-instrument.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -51,6 +51,14 @@ export interface RegisterOptions {
51
51
  * own, so one refusal does not stop the others. `declare()` does the same after `register()`.
52
52
  */
53
53
  declare?: AgentInventory | AgentInventory[];
54
+ /**
55
+ * Export the text of a prompt fetched with `getPrompt()` as a reference to its Prompt Vault
56
+ * version (`coalex.prompt.ref`) instead of in full; the platform restores it from the vault when
57
+ * it stores the span. It needs a platform that restores references; one that does not keeps the
58
+ * marker in place of the text. Defaults to the `COALEX_PROMPT_REFS` env var
59
+ * (`1`/`true`/`yes`/`on`), or false when unset.
60
+ */
61
+ promptRefs?: boolean;
54
62
  }
55
63
  export declare function register(options?: RegisterOptions): void;
56
64
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3D,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAIxD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACpE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EACpB,gBAAgB,EAGhB,mBAAmB,EACnB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,aAAa,EACb,cAAc,EACd,UAAU,EACV,cAAc,EACd,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAChF,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACvI,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACzF,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAUhD,wBAAgB,SAAS,IAAI,YAAY,CAKxC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAKlC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,CAAC;CAC7C;AAED,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAwCxD;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AACrE,wBAAgB,OAAO,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAQ3E,0CAA0C;AAC1C,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
6
6
  import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";
7
7
  import { SafeOTLPSpanExporter } from "./safe-exporter.js";
8
8
  import { FilteringSpanExporter } from "./filtering-exporter.js";
9
+ import { PromptReferenceExporter } from "./prompt-refs.js";
9
10
  import { CoalexAttributePropagator } from "./span-processor.js";
10
11
  import { declareMany } from "./inventory.js";
11
12
  import { setLogger } from "./logger.js";
@@ -59,7 +60,10 @@ export function register(options) {
59
60
  url: `${endpoint}/v1/traces`,
60
61
  headers: sdkHeaders(apiKey),
61
62
  });
62
- const safeExporter = new SafeOTLPSpanExporter(baseExporter, suppressExportErrors);
63
+ const promptRefs = options?.promptRefs ??
64
+ ["1", "true", "yes", "on"].includes((process.env.COALEX_PROMPT_REFS ?? "").trim().toLowerCase());
65
+ const wireExporter = promptRefs ? new PromptReferenceExporter(baseExporter) : baseExporter;
66
+ const safeExporter = new SafeOTLPSpanExporter(wireExporter, suppressExportErrors);
63
67
  const finalExporter = filterNonAiSpans
64
68
  ? new FilteringSpanExporter(safeExporter)
65
69
  : safeExporter;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import type { Attributes } from "@opentelemetry/api";
2
+ import type { ReadableSpan, SpanExporter } from "@opentelemetry/sdk-trace-base";
3
+ /**
4
+ * Export a vault prompt as a reference instead of its text: `register({ promptRefs: true })`.
5
+ *
6
+ * The TypeScript twin of the Python SDK's `coalex/prompt_refs.py`, with the same wire format, which
7
+ * the transformer reads (`silver/prompt_refs.py`) to put the text back from the Prompt Vault when it
8
+ * stores the span:
9
+ *
10
+ * - The marker is `{{coalex.prompt.ref:<sha256>}}`, the SHA-256 of the prompt's UTF-8 text in hex.
11
+ * - `coalex.prompt.ref` is a JSON array, one entry per vault prompt the span references:
12
+ * `{"id", "version", "sha256", "attributes": {<attribute key>: <encoding>}}`. The encoding says how
13
+ * the text appeared in that attribute: `text` verbatim, `json` as a JSON string body (what
14
+ * `JSON.stringify` writes), `json_ascii` as one with every non-ASCII character escaped.
15
+ *
16
+ * A prompt is replaced only where its whole text appears and putting it back reproduces the
17
+ * attribute exactly; anything else (a prompt formatted with variables, edited at runtime, not from
18
+ * the vault, shorter than `MIN_PROMPT_CHARS`, or not well-formed UTF-16) is exported as it was.
19
+ */
20
+ export declare const REF_ATTRIBUTE = "coalex.prompt.ref";
21
+ export declare const MARKER_PREFIX = "{{coalex.prompt.ref:";
22
+ export declare const MARKER_SUFFIX = "}}";
23
+ export declare const ENCODINGS: readonly ["text", "json", "json_ascii"];
24
+ export type PromptRefEncoding = (typeof ENCODINGS)[number];
25
+ /** Below this a reference saves little, and a short prompt is likelier to occur inside other text. */
26
+ export declare const MIN_PROMPT_CHARS = 256;
27
+ export declare const MAX_REMEMBERED_PROMPTS = 64;
28
+ export interface VaultPrompt {
29
+ readonly id: string;
30
+ readonly version: number;
31
+ readonly content: string;
32
+ readonly sha256: string;
33
+ }
34
+ /** Whether a vault prompt's text is looked for under `key`. */
35
+ export declare function isPromptBearing(key: string): boolean;
36
+ export declare function contentSha256(content: string): string;
37
+ export declare function marker(sha256: string): string;
38
+ /** How `content` appears in an attribute under `encoding`. */
39
+ export declare function encode(content: string, encoding: PromptRefEncoding): string;
40
+ /** Make a prompt fetched from the vault replaceable on the spans that follow. */
41
+ export declare function rememberPrompt(id: string, version: number, content: string): void;
42
+ /** Forget every remembered prompt (tests). */
43
+ export declare function forgetAllPrompts(): void;
44
+ type Use = [VaultPrompt, PromptRefEncoding];
45
+ /** `value` with each marker put back as its prompt, as the transformer does. */
46
+ export declare function restore(value: string, uses: readonly Use[]): string;
47
+ /** The attributes with each remembered prompt replaced by a reference, or undefined when none occurs. */
48
+ export declare function referencePrompts(attributes: Attributes, prompts?: readonly VaultPrompt[]): Attributes | undefined;
49
+ interface ExportResult {
50
+ code: number;
51
+ error?: Error;
52
+ }
53
+ /** Replaces the text of every remembered vault prompt with a reference, then delegates. */
54
+ export declare class PromptReferenceExporter implements SpanExporter {
55
+ private readonly wrappedExporter;
56
+ constructor(wrappedExporter: SpanExporter);
57
+ export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): void;
58
+ shutdown(): Promise<void>;
59
+ forceFlush(): Promise<void>;
60
+ }
61
+ export {};
62
+ //# sourceMappingURL=prompt-refs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-refs.d.ts","sourceRoot":"","sources":["../src/prompt-refs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAEhF;;;;;;;;;;;;;;;;GAgBG;AAEH,eAAO,MAAM,aAAa,sBAAsB,CAAC;AACjD,eAAO,MAAM,aAAa,yBAAyB,CAAC;AACpD,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,SAAS,yCAA0C,CAAC;AACjE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3D,sGAAsG;AACtG,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAMzC,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAIpD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,8DAA8D;AAC9D,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAK3E;AASD,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CASjF;AAED,8CAA8C;AAC9C,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAOD,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AAE5C,gFAAgF;AAChF,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,GAAG,MAAM,CAKnE;AAmBD,yGAAyG;AACzG,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,SAAS,WAAW,EAAe,GAC3C,UAAU,GAAG,SAAS,CA0BxB;AAYD,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,2FAA2F;AAC3F,qBAAa,uBAAwB,YAAW,YAAY;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,YAAY;IAE1D,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAkBnF,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAG5B"}
@@ -0,0 +1,167 @@
1
+ import { createHash } from "node:crypto";
2
+ /**
3
+ * Export a vault prompt as a reference instead of its text: `register({ promptRefs: true })`.
4
+ *
5
+ * The TypeScript twin of the Python SDK's `coalex/prompt_refs.py`, with the same wire format, which
6
+ * the transformer reads (`silver/prompt_refs.py`) to put the text back from the Prompt Vault when it
7
+ * stores the span:
8
+ *
9
+ * - The marker is `{{coalex.prompt.ref:<sha256>}}`, the SHA-256 of the prompt's UTF-8 text in hex.
10
+ * - `coalex.prompt.ref` is a JSON array, one entry per vault prompt the span references:
11
+ * `{"id", "version", "sha256", "attributes": {<attribute key>: <encoding>}}`. The encoding says how
12
+ * the text appeared in that attribute: `text` verbatim, `json` as a JSON string body (what
13
+ * `JSON.stringify` writes), `json_ascii` as one with every non-ASCII character escaped.
14
+ *
15
+ * A prompt is replaced only where its whole text appears and putting it back reproduces the
16
+ * attribute exactly; anything else (a prompt formatted with variables, edited at runtime, not from
17
+ * the vault, shorter than `MIN_PROMPT_CHARS`, or not well-formed UTF-16) is exported as it was.
18
+ */
19
+ export const REF_ATTRIBUTE = "coalex.prompt.ref";
20
+ export const MARKER_PREFIX = "{{coalex.prompt.ref:";
21
+ export const MARKER_SUFFIX = "}}";
22
+ export const ENCODINGS = ["text", "json", "json_ascii"];
23
+ /** Below this a reference saves little, and a short prompt is likelier to occur inside other text. */
24
+ export const MIN_PROMPT_CHARS = 256;
25
+ export const MAX_REMEMBERED_PROMPTS = 64;
26
+ const EXACT_KEYS = ["input.value", "gen_ai.input.messages", "gen_ai.system_instructions"];
27
+ const MESSAGE_PREFIX = "llm.input_messages.";
28
+ const MESSAGE_TEXT_SUFFIXES = [".message.content", ".message_content.text"];
29
+ /** Whether a vault prompt's text is looked for under `key`. */
30
+ export function isPromptBearing(key) {
31
+ return (EXACT_KEYS.includes(key) || (key.startsWith(MESSAGE_PREFIX) && MESSAGE_TEXT_SUFFIXES.some((s) => key.endsWith(s))));
32
+ }
33
+ export function contentSha256(content) {
34
+ return createHash("sha256").update(content, "utf8").digest("hex");
35
+ }
36
+ export function marker(sha256) {
37
+ return `${MARKER_PREFIX}${sha256}${MARKER_SUFFIX}`;
38
+ }
39
+ /** How `content` appears in an attribute under `encoding`. */
40
+ export function encode(content, encoding) {
41
+ if (encoding === "text")
42
+ return content;
43
+ const body = JSON.stringify(content).slice(1, -1);
44
+ if (encoding === "json")
45
+ return body;
46
+ return body.replace(/[\u0080-￿]/g, (c) => `\\u${c.charCodeAt(0).toString(16).padStart(4, "0")}`);
47
+ }
48
+ /** Lone surrogates encode differently in each language, so a prompt holding one is never referenced. */
49
+ function isWellFormed(content) {
50
+ return !/[\ud800-\udbff](?![\udc00-\udfff])|(?<![\ud800-\udbff])[\udc00-\udfff]/.test(content);
51
+ }
52
+ const remembered = new Map();
53
+ /** Make a prompt fetched from the vault replaceable on the spans that follow. */
54
+ export function rememberPrompt(id, version, content) {
55
+ if (content.length < MIN_PROMPT_CHARS || !isWellFormed(content))
56
+ return;
57
+ const sha256 = contentSha256(content);
58
+ remembered.delete(sha256);
59
+ remembered.set(sha256, { id: String(id), version, content, sha256 });
60
+ while (remembered.size > MAX_REMEMBERED_PROMPTS) {
61
+ const oldest = remembered.keys().next().value;
62
+ remembered.delete(oldest);
63
+ }
64
+ }
65
+ /** Forget every remembered prompt (tests). */
66
+ export function forgetAllPrompts() {
67
+ remembered.clear();
68
+ }
69
+ function snapshot() {
70
+ // Longest first, so a prompt that contains another is replaced whole.
71
+ return [...remembered.values()].sort((a, b) => b.content.length - a.content.length);
72
+ }
73
+ /** `value` with each marker put back as its prompt, as the transformer does. */
74
+ export function restore(value, uses) {
75
+ for (const [prompt, encoding] of uses) {
76
+ value = value.split(marker(prompt.sha256)).join(encode(prompt.content, encoding));
77
+ }
78
+ return value;
79
+ }
80
+ function referenceValue(value, prompts) {
81
+ const original = value;
82
+ const uses = [];
83
+ for (const prompt of prompts) {
84
+ for (const encoding of ENCODINGS) {
85
+ const encoded = encode(prompt.content, encoding);
86
+ if (value.includes(encoded)) {
87
+ value = value.split(encoded).join(marker(prompt.sha256));
88
+ uses.push([prompt, encoding]);
89
+ break;
90
+ }
91
+ }
92
+ }
93
+ if (uses.length === 0 || restore(value, uses) !== original)
94
+ return [original, []];
95
+ return [value, uses];
96
+ }
97
+ /** The attributes with each remembered prompt replaced by a reference, or undefined when none occurs. */
98
+ export function referencePrompts(attributes, prompts = snapshot()) {
99
+ if (prompts.length === 0 || REF_ATTRIBUTE in attributes)
100
+ return undefined;
101
+ const out = { ...attributes };
102
+ const used = new Map();
103
+ const bySha = new Map(prompts.map((p) => [p.sha256, p]));
104
+ for (const [key, value] of Object.entries(attributes)) {
105
+ if (typeof value !== "string" || !isPromptBearing(key))
106
+ continue;
107
+ const [replaced, uses] = referenceValue(value, prompts);
108
+ if (uses.length === 0)
109
+ continue;
110
+ out[key] = replaced;
111
+ for (const [prompt, encoding] of uses) {
112
+ const keys = used.get(prompt.sha256) ?? {};
113
+ keys[key] = encoding;
114
+ used.set(prompt.sha256, keys);
115
+ }
116
+ }
117
+ if (used.size === 0)
118
+ return undefined;
119
+ out[REF_ATTRIBUTE] = JSON.stringify([...used.keys()].sort().map((sha) => {
120
+ const prompt = bySha.get(sha);
121
+ const keys = used.get(sha);
122
+ const attributesSorted = Object.fromEntries(Object.keys(keys).sort().map((k) => [k, keys[k]]));
123
+ return { attributes: attributesSorted, id: prompt.id, sha256: sha, version: prompt.version };
124
+ }));
125
+ return out;
126
+ }
127
+ /**
128
+ * A view of `span` carrying `attributes`. The span itself is left as instrumented, so another
129
+ * exporter in the same process still receives the prompt text.
130
+ */
131
+ function withAttributes(span, attributes) {
132
+ const view = Object.create(span);
133
+ Object.defineProperty(view, "attributes", { value: attributes, enumerable: true });
134
+ return view;
135
+ }
136
+ /** Replaces the text of every remembered vault prompt with a reference, then delegates. */
137
+ export class PromptReferenceExporter {
138
+ wrappedExporter;
139
+ constructor(wrappedExporter) {
140
+ this.wrappedExporter = wrappedExporter;
141
+ }
142
+ export(spans, resultCallback) {
143
+ const prompts = snapshot();
144
+ if (prompts.length === 0) {
145
+ this.wrappedExporter.export(spans, resultCallback);
146
+ return;
147
+ }
148
+ const out = spans.map((span) => {
149
+ try {
150
+ const attrs = referencePrompts(span.attributes ?? {}, prompts);
151
+ return attrs ? withAttributes(span, attrs) : span;
152
+ }
153
+ catch {
154
+ // A span that cannot be referenced is sent as it was.
155
+ return span;
156
+ }
157
+ });
158
+ this.wrappedExporter.export(out, resultCallback);
159
+ }
160
+ shutdown() {
161
+ return this.wrappedExporter.shutdown();
162
+ }
163
+ forceFlush() {
164
+ return this.wrappedExporter.forceFlush?.() ?? Promise.resolve();
165
+ }
166
+ }
167
+ //# sourceMappingURL=prompt-refs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-refs.js","sourceRoot":"","sources":["../src/prompt-refs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAKA,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,4CAA6C,CAAC;AAE3E,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAE/E,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,6FAA6F;IAC7F,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACjC;AAcD;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAgDjF"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAMA,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,4CAA6C,CAAC;AAE3E,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAE/E,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,6FAA6F;IAC7F,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACjC;AAcD;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAkDjF"}
package/dist/prompts.js CHANGED
@@ -2,6 +2,7 @@ import { trace } from "@opentelemetry/api";
2
2
  import { getConfig, getApiKey } from "./index.js";
3
3
  import { setLastPrompt } from "./context.js";
4
4
  import { coalexFetch, httpError, sdkHeaders } from "./http.js";
5
+ import { rememberPrompt } from "./prompt-refs.js";
5
6
  /**
6
7
  * The version keywords the Prompt Vault actually implements, and nothing else (COA-2363).
7
8
  *
@@ -47,7 +48,9 @@ export async function getPrompt(options) {
47
48
  const data = await resp.json();
48
49
  // Attribute subsequent spans to this prompt version (COA-368): store it as a fallback for
49
50
  // spans that start outside any invocation, and stamp the current span if one is recording.
51
+ // Remember the text too, so `register({ promptRefs: true })` can export it as a reference.
50
52
  setLastPrompt(data.version, data.prompt_type);
53
+ rememberPrompt(data.id, data.version, data.content);
51
54
  const active = trace.getActiveSpan();
52
55
  if (active?.isRecording()) {
53
56
  active.setAttribute("coalex.prompt_version", data.version);
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAc/D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAa3E,sGAAsG;AACtG,SAAS,cAAc,CAAC,OAA8B;IACpD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;IACrF,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAE,gBAAsC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACxH,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,IAAI,KAAK,CACb,uCAAuC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB;QACxF,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,+DAA+D,CAChG,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAyB;IACvD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC,CAAC;IAChE,MAAM,GAAG,GACP,GAAG,MAAM,CAAC,QAAQ,mBAAmB,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC5G,YAAY,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;IAEpD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,aAAa,EAAE,GAAG,EAAE;QACjD,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC;KAC5B,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,MAAM,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,IAAI,GAQN,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAEtB,0FAA0F;IAC1F,2FAA2F;IAC3F,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;IACrC,IAAI,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC;QAC1B,MAAM,CAAC,YAAY,CAAC,uBAAuB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,CAAC,YAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,OAAO,EAAE,IAAI,CAAC,QAAQ;QACtB,yFAAyF;QACzF,yFAAyF;QACzF,IAAI,EAAE,IAAI,CAAC,WAAW;QACtB,UAAU,EAAE,IAAI,CAAC,WAAW;QAC5B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;KAC9B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "2.6.1";
1
+ export declare const VERSION = "2.7.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // SDK version, sent in the X-SDK-Version header so the platform can see which
2
2
  // SDK releases customers run before removing a deprecated field (COA-261).
3
3
  // Keep in sync with package.json "version".
4
- export const VERSION = "2.6.1";
4
+ export const VERSION = "2.7.0";
5
5
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coalex-ai/sdk",
3
- "version": "2.6.1",
3
+ "version": "2.7.0-beta.699",
4
4
  "description": "Coalex TypeScript SDK for AI governance observability",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {