margin-meter 0.1.0 → 0.3.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.
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,74 @@
1
+ /**
2
+ * One-call auto-instrumentation of the common LLM JS clients.
3
+ *
4
+ * The TS twin of `margin_meter.instrument`. Unlike Python (where the SDKs expose
5
+ * patchable classes), JS agents construct client instances and call
6
+ * `client.chat.completions.create(...)` / `client.messages.create(...)` /
7
+ * `model.generateContent(...)`. So these helpers patch the METHOD ON THE
8
+ * INSTANCE the agent already holds — no import of the provider SDK, fully
9
+ * testable against a fake client object:
10
+ *
11
+ * import OpenAI from "openai";
12
+ * import { MarginMeter, instrumentOpenAI } from "margin-meter";
13
+ *
14
+ * const client = new OpenAI();
15
+ * const meter = new MarginMeter();
16
+ * const undo = instrumentOpenAI(client, meter, { workflowId: "aider-fix" });
17
+ * // ... client.chat.completions.create(...) calls are now metered ...
18
+ * undo();
19
+ *
20
+ * Honesty: the wrapper reads real tokens off the real response (`extractUsage`)
21
+ * — never fabricated — and a metering failure is fail-safe (the host's call
22
+ * still returns / still throws).
23
+ */
24
+ import type { MarginMeter, WrapOptions } from "./index.ts";
25
+ /** A requested client could not be instrumented (method missing / shape moved). */
26
+ export declare class MarginInstrumentError extends Error {
27
+ constructor(message: string);
28
+ }
29
+ /** Undo a patch — restores the exact original method. */
30
+ export type Uninstrument = () => void;
31
+ type MethodOwner = Record<string, unknown>;
32
+ /**
33
+ * Replace `owner[methodName]` with an auto-metered wrapper; return the undo.
34
+ * Provider-agnostic and the single testable seam for every instrumenter: it
35
+ * binds the original to its owner (so `this` is preserved), wraps it with
36
+ * `meter.wrap`, sets the wrapper back, and returns a thunk restoring the
37
+ * original.
38
+ */
39
+ export declare function patchMethod(owner: MethodOwner, methodName: string, meter: MarginMeter, opts: WrapOptions): Uninstrument;
40
+ type InstrumentOpts = Omit<WrapOptions, "provider" | "resolveModel" | "model">;
41
+ /** Instrument an OpenAI client's `chat.completions.create`. Returns the undo. */
42
+ export declare function instrumentOpenAI(client: unknown, meter: MarginMeter, opts: InstrumentOpts): Uninstrument;
43
+ /** Instrument an Anthropic client's `messages.create`. Returns the undo. */
44
+ export declare function instrumentAnthropic(client: unknown, meter: MarginMeter, opts: InstrumentOpts): Uninstrument;
45
+ /**
46
+ * Instrument a Gemini `GenerativeModel`'s `generateContent`. Returns the undo.
47
+ * The model name lives on the instance (`.model`), not the response, so it is
48
+ * resolved per call and the `models/` prefix stripped to match the pricing table.
49
+ */
50
+ export declare function instrumentGemini(model: unknown, meter: MarginMeter, opts: InstrumentOpts): Uninstrument;
51
+ /**
52
+ * Instrument an AWS Bedrock runtime client's Converse call. Returns the undo.
53
+ *
54
+ * The JS AWS SDK v3 uses a command pattern — `client.send(new ConverseCommand({
55
+ * modelId, messages }))` — so the seam is the client's `send` method, not a
56
+ * per-op method as in Python (boto3's `client.converse(...)`). The Converse
57
+ * response omits the model id, so it is recovered per call off the command's
58
+ * `input.modelId`; its gateway form (`us.anthropic.claude-…-v1:0`) prices through
59
+ * the server. The camelCase `usage` block (`inputTokens` / `outputTokens` +
60
+ * additive `cacheReadInputTokens` / `cacheWriteInputTokens`) is read by the
61
+ * bedrock extractor.
62
+ *
63
+ * Streaming: `ConverseStreamCommand` and `InvokeModelWithResponseStreamCommand`
64
+ * resolve to an object whose event stream rides under `.stream` / `.body`;
65
+ * `meter.wrap` swaps that field for a metered proxy and banks the usage from the
66
+ * stream's final event once the host has read it (MAR-1518).
67
+ *
68
+ * Scope note: a plain `InvokeModelCommand`, whose usage rides HTTP headers,
69
+ * carries no `usage` block on its return value, so `recordResponse` reads nothing
70
+ * rather than fabricating a count — the fail-safe path.
71
+ */
72
+ export declare function instrumentBedrock(client: unknown, meter: MarginMeter, opts: InstrumentOpts): Uninstrument;
73
+ export {};
74
+ //# sourceMappingURL=instrument.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrument.d.ts","sourceRoot":"","sources":["../src/instrument.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI3D,mFAAmF;AACnF,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED,yDAAyD;AACzD,MAAM,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC;AAEtC,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3C;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,WAAW,GAChB,YAAY,CAad;AAiBD,KAAK,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC,CAAC;AAE/E,iFAAiF;AACjF,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,cAAc,GACnB,YAAY,CAad;AAED,4EAA4E;AAC5E,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,cAAc,GACnB,YAAY,CAOd;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,cAAc,GACnB,YAAY,CAmBd;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,cAAc,GACnB,YAAY,CAsBd"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * One-call auto-instrumentation of the common LLM JS clients.
3
+ *
4
+ * The TS twin of `margin_meter.instrument`. Unlike Python (where the SDKs expose
5
+ * patchable classes), JS agents construct client instances and call
6
+ * `client.chat.completions.create(...)` / `client.messages.create(...)` /
7
+ * `model.generateContent(...)`. So these helpers patch the METHOD ON THE
8
+ * INSTANCE the agent already holds — no import of the provider SDK, fully
9
+ * testable against a fake client object:
10
+ *
11
+ * import OpenAI from "openai";
12
+ * import { MarginMeter, instrumentOpenAI } from "margin-meter";
13
+ *
14
+ * const client = new OpenAI();
15
+ * const meter = new MarginMeter();
16
+ * const undo = instrumentOpenAI(client, meter, { workflowId: "aider-fix" });
17
+ * // ... client.chat.completions.create(...) calls are now metered ...
18
+ * undo();
19
+ *
20
+ * Honesty: the wrapper reads real tokens off the real response (`extractUsage`)
21
+ * — never fabricated — and a metering failure is fail-safe (the host's call
22
+ * still returns / still throws).
23
+ */
24
+ import { BEDROCK, fromClient } from "./substrate.js";
25
+ /** A requested client could not be instrumented (method missing / shape moved). */
26
+ export class MarginInstrumentError extends Error {
27
+ constructor(message) {
28
+ super(message);
29
+ this.name = "MarginInstrumentError";
30
+ }
31
+ }
32
+ /**
33
+ * Replace `owner[methodName]` with an auto-metered wrapper; return the undo.
34
+ * Provider-agnostic and the single testable seam for every instrumenter: it
35
+ * binds the original to its owner (so `this` is preserved), wraps it with
36
+ * `meter.wrap`, sets the wrapper back, and returns a thunk restoring the
37
+ * original.
38
+ */
39
+ export function patchMethod(owner, methodName, meter, opts) {
40
+ const original = owner[methodName];
41
+ if (typeof original !== "function") {
42
+ throw new MarginInstrumentError(`cannot instrument: '${methodName}' is not a function on the given object`);
43
+ }
44
+ const bound = original.bind(owner);
45
+ const wrapped = meter.wrap(bound, opts);
46
+ owner[methodName] = wrapped;
47
+ return () => {
48
+ owner[methodName] = original;
49
+ };
50
+ }
51
+ /** Navigate a dotted path to the object that directly owns the final method. */
52
+ function ownerOf(root, path) {
53
+ let cur = root;
54
+ for (let i = 0; i < path.length - 1; i++) {
55
+ cur = cur == null ? undefined : cur[path[i]];
56
+ if (cur == null) {
57
+ throw new MarginInstrumentError(`cannot instrument: '${path.slice(0, i + 1).join(".")}' is missing — ` +
58
+ "the client shape may have changed; wrap the call directly with meter.wrap().");
59
+ }
60
+ }
61
+ return { owner: cur, method: path[path.length - 1] };
62
+ }
63
+ /** Instrument an OpenAI client's `chat.completions.create`. Returns the undo. */
64
+ export function instrumentOpenAI(client, meter, opts) {
65
+ const { owner, method } = ownerOf(client, ["chat", "completions", "create"]);
66
+ return patchMethod(owner, method, meter, {
67
+ ...opts,
68
+ provider: "openai",
69
+ // Read off THIS client's endpoint, so a client aimed at openrouter.ai is
70
+ // recorded as OpenRouter and one aimed at Azure as Azure. Undefined when the
71
+ // endpoint is unreadable — an unmeasured path, never an assumed one.
72
+ substrate: fromClient(client),
73
+ // A streamed OpenAI call omits usage unless asked; the wrapper injects
74
+ // stream_options.include_usage so its final chunk carries the count.
75
+ streamIncludeUsage: true,
76
+ });
77
+ }
78
+ /** Instrument an Anthropic client's `messages.create`. Returns the undo. */
79
+ export function instrumentAnthropic(client, meter, opts) {
80
+ const { owner, method } = ownerOf(client, ["messages", "create"]);
81
+ return patchMethod(owner, method, meter, {
82
+ ...opts,
83
+ provider: "anthropic",
84
+ substrate: fromClient(client),
85
+ });
86
+ }
87
+ /**
88
+ * Instrument a Gemini `GenerativeModel`'s `generateContent`. Returns the undo.
89
+ * The model name lives on the instance (`.model`), not the response, so it is
90
+ * resolved per call and the `models/` prefix stripped to match the pricing table.
91
+ */
92
+ export function instrumentGemini(model, meter, opts) {
93
+ const m = model;
94
+ if (typeof m?.generateContent !== "function") {
95
+ throw new MarginInstrumentError("cannot instrument: 'generateContent' is not a function on the given model — " +
96
+ "the SDK shape may have changed; wrap the call directly with meter.wrap().");
97
+ }
98
+ const resolveModel = () => {
99
+ const name = (m.model ?? m.modelName);
100
+ if (!name)
101
+ return undefined;
102
+ return String(name).split("/").pop();
103
+ };
104
+ return patchMethod(m, "generateContent", meter, {
105
+ ...opts,
106
+ provider: "google",
107
+ resolveModel,
108
+ substrate: fromClient(model),
109
+ });
110
+ }
111
+ /**
112
+ * Instrument an AWS Bedrock runtime client's Converse call. Returns the undo.
113
+ *
114
+ * The JS AWS SDK v3 uses a command pattern — `client.send(new ConverseCommand({
115
+ * modelId, messages }))` — so the seam is the client's `send` method, not a
116
+ * per-op method as in Python (boto3's `client.converse(...)`). The Converse
117
+ * response omits the model id, so it is recovered per call off the command's
118
+ * `input.modelId`; its gateway form (`us.anthropic.claude-…-v1:0`) prices through
119
+ * the server. The camelCase `usage` block (`inputTokens` / `outputTokens` +
120
+ * additive `cacheReadInputTokens` / `cacheWriteInputTokens`) is read by the
121
+ * bedrock extractor.
122
+ *
123
+ * Streaming: `ConverseStreamCommand` and `InvokeModelWithResponseStreamCommand`
124
+ * resolve to an object whose event stream rides under `.stream` / `.body`;
125
+ * `meter.wrap` swaps that field for a metered proxy and banks the usage from the
126
+ * stream's final event once the host has read it (MAR-1518).
127
+ *
128
+ * Scope note: a plain `InvokeModelCommand`, whose usage rides HTTP headers,
129
+ * carries no `usage` block on its return value, so `recordResponse` reads nothing
130
+ * rather than fabricating a count — the fail-safe path.
131
+ */
132
+ export function instrumentBedrock(client, meter, opts) {
133
+ const c = client;
134
+ if (typeof c?.send !== "function") {
135
+ throw new MarginInstrumentError("cannot instrument: 'send' is not a function on the given client — " +
136
+ "pass an @aws-sdk/client-bedrock-runtime BedrockRuntimeClient.");
137
+ }
138
+ // The model rides the command's `input.modelId` (botocore's `modelId=` twin).
139
+ const resolveModel = (args) => {
140
+ const command = args[0];
141
+ const input = command?.input;
142
+ const mid = input?.modelId;
143
+ return typeof mid === "string" && mid ? mid : undefined;
144
+ };
145
+ return patchMethod(c, "send", meter, {
146
+ ...opts,
147
+ provider: "bedrock",
148
+ resolveModel,
149
+ // Bedrock IS the path — the transport names itself, no endpoint to read.
150
+ substrate: BEDROCK,
151
+ });
152
+ }
153
+ //# sourceMappingURL=instrument.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrument.js","sourceRoot":"","sources":["../src/instrument.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * margin-meter/langsmith — turn a LangSmith `evaluate()` result into outcomes.
3
+ *
4
+ * The TypeScript twin of `sdk/python/margin_meter/langsmith.py`. LangSmith is the
5
+ * eval/observability layer of the LangChain ecosystem — one of the largest
6
+ * install bases in production LLM apps, and it ships a first-class JS/TS SDK, so a
7
+ * LangSmith customer is squarely in the TypeScript toolchain. `evaluate()`
8
+ * attaches one or more feedback scores to each example; a customer serializes that
9
+ * result — iterating `ExperimentResults` (each row carries
10
+ * `evaluation_results.results`) or via `result.to_pandas().to_dict(...)` (feedback
11
+ * lands in `feedback.<key>` columns) — and both are a match for
12
+ * `POST /api/ingest/outcomes` (`docs/INTEGRATION_LADDER.md` rung 2):
13
+ *
14
+ * import { MarginMeter, langsmith } from "margin-meter";
15
+ * const meter = new MarginMeter();
16
+ * const data = JSON.parse(await readFile("ls.json", "utf8"));
17
+ * await langsmith.recordResults(meter, data, "my-app", { threshold: 0.7 });
18
+ *
19
+ * The mapping is identical to the Python adapter's, on purpose — one LangSmith
20
+ * row → one outcome:
21
+ *
22
+ * - `qualityScore` ← the mean of the row's numeric feedback scores in [0, 1]
23
+ * (booleans count as 1.0 / 0.0). LangSmith attaches a score per evaluator, not
24
+ * one per row, so they are aggregated — the same rule the DeepEval, Braintrust
25
+ * and Ragas adapters apply. Both serializations are read: the object form
26
+ * (`evaluation_results.results = [{key, score}]`) and the pandas form
27
+ * (`feedback.<key>` columns).
28
+ * - `passed` ← LangSmith has NO single pass/fail verdict, so it is derived
29
+ * HONESTLY, never fabricated: (1) `threshold` given → mean ≥ threshold; (2) no
30
+ * threshold but every feedback is binary (0.0/1.0) → every evaluator passed;
31
+ * (3) no threshold and continuous scores → the row is SKIPPED with a warning.
32
+ * - `qualityMethod`/`graderKind` ← DERIVED from the evaluator KEYS, never assumed:
33
+ * a known LangChain LLM-judge evaluator (`correctness`, `qa`, `criteria`,
34
+ * `score_string`, …) → `llm_judge`/`judge`; a known code evaluator
35
+ * (`string_distance`, `exact_match`, `json_validity`, …) → `ground_truth`/`code`;
36
+ * anything else → `unknown`/`unknown` (the weaker-claim-wins honesty rule).
37
+ * Most LangSmith keys are user-named, so `unknown` is the honest common default.
38
+ * - `judgeModelId` ← an opt-in `margin_judge_model` field on the ROW (LangSmith
39
+ * rows have no metadata envelope), ridden only when the grade is an LLM judge
40
+ * (rung 6 provenance). A bare `model` field is NOT used.
41
+ * - `link` ← the row's `example_id`/`id`/`run_id`, else
42
+ * `langsmith:<index>` — never the input question (MAR-1548).
43
+ * - `valueUsd` ← opt-in `margin_value` on the ROW (rung 8); absent is the
44
+ * cost-per-outcome default, never 0.
45
+ *
46
+ * Same two promises as the other adapters: it consumes output the customer already
47
+ * produces (no new harness), and it never fabricates and is fail-safe.
48
+ */
49
+ import type { RecordOutcomeInput } from "./index.ts";
50
+ /** Where a warning goes. Defaults to `process.emitWarning`; a test injects a
51
+ * collector. */
52
+ export type WarnFn = (message: string) => void;
53
+ /** Grading provenance for one outcome. */
54
+ export interface GraderSignature {
55
+ qualityMethod: string;
56
+ graderKind: string;
57
+ }
58
+ /** Normalise an evaluator key for set membership: lower-case, keep only
59
+ * alphanumerics (so `string_distance`/`String Distance` collapse), strip a
60
+ * leading `not` negation. Returns undefined for a missing/blank name. */
61
+ export declare function normKey(raw: unknown): string | undefined;
62
+ /** The per-evaluator feedback scores of a row, as `{ [key]: score }`.
63
+ *
64
+ * Reads both real serializations: the object form
65
+ * (`evaluation_results.results = [{key, score}]`, or a bare top-level `results`
66
+ * list) and the pandas form (`feedback.<key>` columns). A null/non-numeric/
67
+ * out-of-[0,1] score is dropped so the ingest layer never rejects the row for a
68
+ * bad decimal. */
69
+ export declare function feedbackScores(row: unknown): Record<string, number>;
70
+ /** Derive `(qualityMethod, graderKind)` from the evaluator keys behind a row,
71
+ * weaker-claim-wins:
72
+ * - any model evaluator → llm_judge/judge
73
+ * - only recognised code evaluators → ground_truth/code
74
+ * - anything else → unknown/unknown */
75
+ export declare function evaluatorSignature(keys: Iterable<unknown>): GraderSignature;
76
+ /** The judging model, from an explicit `margin_judge_model` opt-in on the row, or
77
+ * undefined. A bare `model` field is deliberately NOT used. */
78
+ export declare function judgeModelFromRow(row: unknown): string | undefined;
79
+ /** Read an opt-in `margin_value` off a row — the value-per-outcome numerator
80
+ * (rung 8). Returns the USD amount, or undefined when absent. Throws on a
81
+ * malformed/implausible value (a present-but-null value included) so the
82
+ * caller can warn and drop it, matching the Python twin. */
83
+ export declare function valueFromRow(row: unknown): number | undefined;
84
+ /** A traceable link back to the example: its id, else the row index.
85
+ * ⛔ Never the input question (MAR-1548): /security says no prompt reaches us. */
86
+ export declare function linkFromRow(row: unknown, index: number): string;
87
+ /** Derive the pass/fail for a row, or undefined when it cannot be derived
88
+ * honestly (no scores, or continuous scores with no threshold). */
89
+ export declare function passedFromScores(scores: Record<string, number>, threshold: number | undefined): boolean | undefined;
90
+ /** Fields for {@link outcomeInput}. */
91
+ export interface OutcomeInputArgs {
92
+ workflowId: string;
93
+ passed: boolean;
94
+ qualityScore: number;
95
+ evaluatorKeys: Iterable<unknown>;
96
+ link: string;
97
+ judgeModelId?: string;
98
+ valueUsd?: number;
99
+ isSimulated?: boolean;
100
+ }
101
+ /** Translate one graded LangSmith row into `MarginMeter.recordOutcome` input.
102
+ * `judgeModelId` rides only when the grade is an LLM judge and a model was named;
103
+ * `valueUsd` rides only when a value was supplied. */
104
+ export declare function outcomeInput(args: OutcomeInputArgs): RecordOutcomeInput;
105
+ /** Options shared by the row-level translators. */
106
+ export interface TranslateOptions {
107
+ workflowId: string;
108
+ index?: number;
109
+ threshold?: number;
110
+ isSimulated?: boolean;
111
+ onWarn?: WarnFn;
112
+ }
113
+ /** Full translation of one LangSmith row, or undefined if it is not a real
114
+ * verdict (no feedback score, or an ambiguous continuous score with no
115
+ * threshold). A malformed `margin_value` warns and drops the value while keeping
116
+ * the pass/fail. */
117
+ export declare function rowToOutcomeInput(row: unknown, opts: TranslateOptions): RecordOutcomeInput | undefined;
118
+ /** Pull the flat list of per-example rows out of parsed LangSmith output — a bare
119
+ * list, or a `{results|rows|records: [...]}` envelope. */
120
+ export declare function extractRows(data: unknown): Record<string, unknown>[];
121
+ /** Yield `recordOutcome` inputs for every real verdict in parsed LangSmith output
122
+ * (any envelope shape {@link extractRows} understands). */
123
+ export declare function iterOutcomes(data: unknown, opts: {
124
+ workflowId: string;
125
+ threshold?: number;
126
+ isSimulated?: boolean;
127
+ onWarn?: WarnFn;
128
+ }): RecordOutcomeInput[];
129
+ /** The minimal meter surface {@link recordResults} needs — satisfied by
130
+ * `MarginMeter`, kept as a structural type so this module imports no runtime
131
+ * value from `index.ts`. */
132
+ export interface OutcomeSink {
133
+ recordOutcome(input: RecordOutcomeInput): Promise<unknown>;
134
+ flush(): Promise<void>;
135
+ }
136
+ /** How one `recordResults` batch landed. */
137
+ export interface RecordSummary {
138
+ recorded: number;
139
+ errors: number;
140
+ skipped: number;
141
+ }
142
+ /** Emit an outcome per verdict in parsed LangSmith output through `meter`.
143
+ * Fail-safe: a delivery fault on one row warns and counts an error; it never
144
+ * aborts the batch. Non-verdict rows are counted as skipped. */
145
+ export declare function recordResults(meter: OutcomeSink, data: unknown, workflowId: string, opts?: {
146
+ threshold?: number;
147
+ isSimulated?: boolean;
148
+ onWarn?: WarnFn;
149
+ }): Promise<RecordSummary>;
150
+ //# sourceMappingURL=langsmith.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"langsmith.d.ts","sourceRoot":"","sources":["../src/langsmith.ts"],"names":[],"mappings":"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"}