@kortyx/hooks 0.24.0 → 0.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.js +251 -152
- package/dist/index.js.map +1 -1
- package/dist/internal.js +30 -9
- package/dist/internal.js.map +1 -1
- package/package.json +4 -4
package/dist/internal.js
CHANGED
|
@@ -26,6 +26,21 @@ module.exports = __toCommonJS(internal_exports);
|
|
|
26
26
|
// src/reason-engine.ts
|
|
27
27
|
var import_node_crypto = require("crypto");
|
|
28
28
|
var import_core = require("@kortyx/core");
|
|
29
|
+
var import_errors = require("@kortyx/core/errors");
|
|
30
|
+
function assertModelFinish(result) {
|
|
31
|
+
if (result.finishReason?.unified !== "content-filter") return;
|
|
32
|
+
throw Object.assign(
|
|
33
|
+
new import_errors.KortyxError("PROVIDER_REFUSAL", "The provider refused the request.", {
|
|
34
|
+
category: "provider",
|
|
35
|
+
retryable: false,
|
|
36
|
+
safeMessage: "The provider refused the request."
|
|
37
|
+
}),
|
|
38
|
+
{
|
|
39
|
+
...result.usage ? { usage: result.usage } : {},
|
|
40
|
+
finishReason: result.finishReason
|
|
41
|
+
}
|
|
42
|
+
);
|
|
43
|
+
}
|
|
29
44
|
var toError = (value) => value instanceof Error ? value : new Error(String(value));
|
|
30
45
|
var createRuntimeId = () => {
|
|
31
46
|
try {
|
|
@@ -139,15 +154,18 @@ async function runReasonEngine(args) {
|
|
|
139
154
|
};
|
|
140
155
|
const failTrace = (span, error) => {
|
|
141
156
|
const detail = error;
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
157
|
+
try {
|
|
158
|
+
span?.fail?.(error, {
|
|
159
|
+
...detail?.usage ? { usage: detail.usage } : {},
|
|
160
|
+
...detail?.finishReason ? { finishReason: detail.finishReason } : {},
|
|
161
|
+
...detail?.providerMetadata ? { providerMetadata: detail.providerMetadata } : {},
|
|
162
|
+
attributes: {
|
|
163
|
+
providerId: args.model.provider.id,
|
|
164
|
+
modelId: args.model.modelId
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
} catch {
|
|
168
|
+
}
|
|
151
169
|
};
|
|
152
170
|
try {
|
|
153
171
|
if (stream) {
|
|
@@ -232,6 +250,8 @@ async function runReasonEngine(args) {
|
|
|
232
250
|
}
|
|
233
251
|
}
|
|
234
252
|
}
|
|
253
|
+
(0, import_core.throwIfExecutionAborted)(abortSignal);
|
|
254
|
+
assertModelFinish({ finishReason, usage });
|
|
235
255
|
if (emit) {
|
|
236
256
|
emitNodeEvent(args.emitEvent, args.nodeId, "text-end", {
|
|
237
257
|
...commonMeta
|
|
@@ -253,6 +273,7 @@ async function runReasonEngine(args) {
|
|
|
253
273
|
}
|
|
254
274
|
const response = await model.invoke(messages);
|
|
255
275
|
(0, import_core.throwIfExecutionAborted)(abortSignal);
|
|
276
|
+
assertModelFinish(response);
|
|
256
277
|
if (response.content) args.onTextChunk?.(response.content);
|
|
257
278
|
if (emit) {
|
|
258
279
|
emitNodeEvent(args.emitEvent, args.nodeId, "text-start", {
|
package/dist/internal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/internal.ts","../src/reason-engine.ts"],"sourcesContent":["export type {\n RunReasonEngineArgs,\n RunReasonEngineResult,\n} from \"./reason-engine\";\nexport { runReasonEngine } from \"./reason-engine\";\nexport type {\n KortyxTelemetryConfig,\n KortyxTraceAdapter,\n KortyxTraceMetadata,\n ReasonTraceAdapter,\n} from \"./tracing\";\n","import { randomUUID } from \"node:crypto\";\nimport {\n createExecutionCancelledError,\n throwIfExecutionAborted,\n} from \"@kortyx/core\";\nimport type {\n KortyxContinuation,\n KortyxFinishReason,\n KortyxPromptMessage,\n KortyxProviderMetadata,\n KortyxReasoningOptions,\n KortyxResponseFormat,\n KortyxToolCall,\n KortyxToolDefinition,\n KortyxUsage,\n KortyxWarning,\n ProviderModelRef,\n} from \"@kortyx/providers\";\nimport type {\n KortyxTraceMetadata,\n ReasonTraceAdapter,\n ReasonTraceSpan,\n} from \"./tracing\";\n\nexport interface RunReasonEngineArgs {\n model: ProviderModelRef;\n input: string;\n system?: string | undefined;\n temperature?: number | undefined;\n maxOutputTokens?: number | undefined;\n stopSequences?: string[] | undefined;\n abortSignal?: AbortSignal | undefined;\n reasoning?: KortyxReasoningOptions | undefined;\n responseFormat?: KortyxResponseFormat | undefined;\n providerOptions?: Record<string, unknown> | undefined;\n tools?: KortyxToolDefinition[] | undefined;\n messages?: KortyxPromptMessage[] | undefined;\n defaultTemperature?: number | undefined;\n stream?: boolean | undefined;\n emit?: boolean | undefined;\n nodeId?: string | undefined;\n emitEvent?: ((event: string, payload: unknown) => void) | undefined;\n onTextChunk?: ((text: string) => void) | undefined;\n id?: string | undefined;\n opId?: string | undefined;\n segmentId?: string | undefined;\n telemetry?: KortyxTraceMetadata | undefined;\n reasonTrace?: ReasonTraceAdapter | undefined;\n}\n\nexport interface RunReasonEngineResult {\n continuation?: KortyxContinuation;\n text: string;\n raw?: unknown;\n usage?: KortyxUsage;\n finishReason?: KortyxFinishReason;\n toolCalls?: KortyxToolCall[];\n providerMetadata?: KortyxProviderMetadata;\n warnings?: KortyxWarning[];\n}\n\nconst toError = (value: unknown): Error =>\n value instanceof Error ? value : new Error(String(value));\n\nconst createRuntimeId = (): string => {\n try {\n return randomUUID();\n } catch {\n return `${Date.now()}-${Math.random().toString(36).slice(2)}`;\n }\n};\n\nconst emitNodeEvent = (\n emitEvent: RunReasonEngineArgs[\"emitEvent\"],\n nodeId: string | undefined,\n event: string,\n payload: Record<string, unknown>,\n): void => {\n if (!emitEvent) return;\n emitEvent(event, {\n ...payload,\n ...(typeof nodeId === \"string\" && nodeId.length > 0\n ? { node: nodeId }\n : {}),\n });\n};\n\nexport const resolveProviderOptions = (\n defaults: Record<string, unknown> | undefined,\n overrides: Record<string, unknown> | undefined,\n): Record<string, unknown> | undefined => {\n const providerOptions =\n defaults || overrides ? { ...defaults, ...overrides } : undefined;\n // Provider namespaces inherit model defaults (including transport) while\n // allowing individual call settings to override them.\n for (const [key, value] of Object.entries(overrides ?? {})) {\n const previous = defaults?.[key];\n if (\n previous &&\n value &&\n typeof previous === \"object\" &&\n typeof value === \"object\" &&\n !Array.isArray(previous) &&\n !Array.isArray(value)\n ) {\n if (providerOptions) providerOptions[key] = { ...previous, ...value };\n }\n }\n return providerOptions;\n};\n\nexport async function runReasonEngine(\n args: RunReasonEngineArgs,\n): Promise<RunReasonEngineResult> {\n let stream = args.stream ?? args.model.options?.streaming ?? true;\n const emit = args.emit ?? true;\n const temperature =\n args.temperature ??\n args.model.options?.temperature ??\n args.defaultTemperature;\n const maxOutputTokens =\n args.maxOutputTokens ?? args.model.options?.maxOutputTokens;\n const stopSequences = args.stopSequences ?? args.model.options?.stopSequences;\n const abortSignal = args.abortSignal ?? args.model.options?.abortSignal;\n const reasoning = args.reasoning ?? args.model.options?.reasoning;\n const responseFormat =\n args.responseFormat ?? args.model.options?.responseFormat;\n const providerOptions = resolveProviderOptions(\n args.model.options?.providerOptions,\n args.providerOptions,\n );\n const tools = args.tools ?? args.model.options?.tools;\n\n throwIfExecutionAborted(abortSignal);\n const model = args.model.provider.getModel(args.model.modelId, {\n ...(temperature !== undefined ? { temperature } : {}),\n streaming: stream,\n ...(maxOutputTokens !== undefined ? { maxOutputTokens } : {}),\n ...(stopSequences !== undefined ? { stopSequences } : {}),\n ...(abortSignal !== undefined ? { abortSignal } : {}),\n ...(reasoning !== undefined ? { reasoning } : {}),\n ...(responseFormat !== undefined ? { responseFormat } : {}),\n ...(tools !== undefined ? { tools } : {}),\n ...(providerOptions !== undefined ? { providerOptions } : {}),\n });\n\n if (tools?.length && !model.supportsToolStreaming) stream = false;\n\n const messages: KortyxPromptMessage[] =\n args.messages !== undefined\n ? args.messages\n : [\n ...(typeof args.system === \"string\" && args.system.length > 0\n ? [{ role: \"system\" as const, content: args.system }]\n : []),\n { role: \"user\" as const, content: String(args.input ?? \"\") },\n ];\n\n const opId =\n typeof args.opId === \"string\" && args.opId.length > 0\n ? args.opId\n : createRuntimeId();\n const segmentId =\n typeof args.segmentId === \"string\" && args.segmentId.length > 0\n ? args.segmentId\n : createRuntimeId();\n\n const commonMeta: Record<string, unknown> = {\n ...(typeof args.id === \"string\" && args.id.length > 0\n ? { id: args.id }\n : {}),\n opId,\n segmentId,\n };\n const traceSpan = args.reasonTrace?.startSpan({\n name: \"runReasonEngine\",\n attributes: {\n ...commonMeta,\n providerId: args.model.provider.id,\n modelId: args.model.modelId,\n stream,\n emit,\n ...(args.telemetry?.operation\n ? { operation: args.telemetry.operation }\n : {}),\n ...(args.telemetry?.prompt?.name\n ? { promptName: args.telemetry.prompt.name }\n : {}),\n ...(args.telemetry?.prompt?.version !== undefined\n ? { promptVersion: args.telemetry.prompt.version }\n : {}),\n ...(args.telemetry?.prompt?.type\n ? { promptType: args.telemetry.prompt.type }\n : {}),\n ...(typeof args.nodeId === \"string\" && args.nodeId.length > 0\n ? { nodeId: args.nodeId }\n : {}),\n },\n telemetry: {\n ...(args.telemetry ?? {}),\n input:\n args.telemetry?.input ??\n messages.map(\n ({ continuation: _continuation, raw: _raw, ...message }) => message,\n ),\n },\n });\n const modelRequestStartedAt = Date.now();\n let firstTextTokenAt: number | undefined;\n let lastTextTokenAt: number | undefined;\n\n const generationTimingAttributes = (): Record<string, number> =>\n firstTextTokenAt === undefined || lastTextTokenAt === undefined\n ? {}\n : {\n ttftMs: Math.max(0, firstTextTokenAt - modelRequestStartedAt),\n streamDurationMs: Math.max(0, lastTextTokenAt - firstTextTokenAt),\n timeToLastTokenMs: Math.max(\n 0,\n lastTextTokenAt - modelRequestStartedAt,\n ),\n };\n\n const endTrace = (\n span: ReasonTraceSpan | undefined,\n result: RunReasonEngineResult,\n ): void => {\n span?.end?.({\n ...(result.usage !== undefined ? { usage: result.usage } : {}),\n ...(result.finishReason !== undefined\n ? { finishReason: result.finishReason }\n : {}),\n ...(result.providerMetadata !== undefined\n ? { providerMetadata: result.providerMetadata }\n : {}),\n ...(result.warnings !== undefined ? { warnings: result.warnings } : {}),\n attributes: {\n textLength: result.text.length,\n ...generationTimingAttributes(),\n },\n telemetry: {\n ...(args.telemetry ?? {}),\n output: args.telemetry?.output ?? result.text,\n },\n });\n };\n\n const failTrace = (\n span: ReasonTraceSpan | undefined,\n error: unknown,\n ): void => {\n const detail = error as Partial<RunReasonEngineResult> | undefined;\n span?.fail?.(error, {\n ...(detail?.usage ? { usage: detail.usage } : {}),\n ...(detail?.finishReason ? { finishReason: detail.finishReason } : {}),\n ...(detail?.providerMetadata\n ? { providerMetadata: detail.providerMetadata }\n : {}),\n attributes: {\n providerId: args.model.provider.id,\n modelId: args.model.modelId,\n },\n });\n };\n\n try {\n if (stream) {\n let continuation: KortyxContinuation | undefined;\n let final = \"\";\n let raw: unknown;\n let usage: KortyxUsage | undefined;\n let finishReason: KortyxFinishReason | undefined;\n let toolCalls: KortyxToolCall[] | undefined;\n let providerMetadata: KortyxProviderMetadata | undefined;\n let warnings: KortyxWarning[] | undefined;\n\n if (emit) {\n emitNodeEvent(args.emitEvent, args.nodeId, \"text-start\", {\n ...commonMeta,\n });\n }\n\n const response = await model.stream(messages);\n for await (const chunk of response) {\n throwIfExecutionAborted(abortSignal);\n switch (chunk.type) {\n case \"text-delta\": {\n if (chunk.delta.length === 0) break;\n const tokenAt = Date.now();\n firstTextTokenAt ??= tokenAt;\n lastTextTokenAt = tokenAt;\n final += chunk.delta;\n args.onTextChunk?.(chunk.delta);\n if (chunk.raw !== undefined) {\n raw = chunk.raw;\n }\n if (chunk.providerMetadata !== undefined) {\n providerMetadata = chunk.providerMetadata;\n }\n if (emit) {\n emitNodeEvent(args.emitEvent, args.nodeId, \"text-delta\", {\n ...commonMeta,\n delta: chunk.delta,\n });\n }\n break;\n }\n case \"finish\": {\n continuation = chunk.continuation;\n if (chunk.raw !== undefined) {\n raw = chunk.raw;\n }\n if (chunk.usage !== undefined) {\n usage = chunk.usage;\n }\n if (chunk.finishReason !== undefined) {\n finishReason = chunk.finishReason;\n }\n if (chunk.toolCalls !== undefined) {\n toolCalls = chunk.toolCalls;\n }\n if (chunk.providerMetadata !== undefined) {\n providerMetadata = chunk.providerMetadata;\n }\n if (chunk.warnings !== undefined) {\n warnings = chunk.warnings;\n }\n break;\n }\n case \"raw\": {\n raw = chunk.raw;\n if (chunk.providerMetadata !== undefined) {\n providerMetadata = chunk.providerMetadata;\n }\n break;\n }\n case \"error\": {\n if (chunk.raw !== undefined) {\n raw = chunk.raw;\n }\n if (chunk.providerMetadata !== undefined) {\n providerMetadata = chunk.providerMetadata;\n }\n if (chunk.warnings !== undefined) {\n warnings = chunk.warnings;\n }\n throw toError(chunk.error);\n }\n }\n }\n\n if (emit) {\n emitNodeEvent(args.emitEvent, args.nodeId, \"text-end\", {\n ...commonMeta,\n });\n }\n\n const result = {\n text: final,\n ...(continuation ? { continuation } : {}),\n ...(raw !== undefined ? { raw } : {}),\n ...(usage !== undefined ? { usage } : {}),\n ...(finishReason !== undefined ? { finishReason } : {}),\n ...(toolCalls !== undefined ? { toolCalls } : {}),\n ...(providerMetadata !== undefined ? { providerMetadata } : {}),\n ...(warnings !== undefined ? { warnings } : {}),\n };\n throwIfExecutionAborted(abortSignal);\n endTrace(traceSpan, result);\n return result;\n }\n\n const response = await model.invoke(messages);\n throwIfExecutionAborted(abortSignal);\n if (response.content) args.onTextChunk?.(response.content);\n\n if (emit) {\n emitNodeEvent(args.emitEvent, args.nodeId, \"text-start\", {\n ...commonMeta,\n });\n if (response.content) {\n emitNodeEvent(args.emitEvent, args.nodeId, \"text-delta\", {\n ...commonMeta,\n delta: response.content,\n });\n }\n emitNodeEvent(args.emitEvent, args.nodeId, \"text-end\", {\n ...commonMeta,\n });\n }\n\n const result = {\n text: response.content,\n ...(response.continuation ? { continuation: response.continuation } : {}),\n ...(response.raw !== undefined ? { raw: response.raw } : {}),\n ...(response.usage !== undefined ? { usage: response.usage } : {}),\n ...(response.finishReason !== undefined\n ? { finishReason: response.finishReason }\n : {}),\n ...(response.toolCalls !== undefined\n ? { toolCalls: response.toolCalls }\n : {}),\n ...(response.providerMetadata !== undefined\n ? { providerMetadata: response.providerMetadata }\n : {}),\n ...(response.warnings !== undefined\n ? { warnings: response.warnings }\n : {}),\n };\n endTrace(traceSpan, result);\n return result;\n } catch (error) {\n const failure = abortSignal?.aborted\n ? createExecutionCancelledError()\n : error;\n failTrace(traceSpan, failure);\n throw failure;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,yBAA2B;AAC3B,kBAGO;AAyDP,IAAM,UAAU,CAAC,UACf,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAE1D,IAAM,kBAAkB,MAAc;AACpC,MAAI;AACF,eAAO,+BAAW;AAAA,EACpB,QAAQ;AACN,WAAO,GAAG,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;AAAA,EAC7D;AACF;AAEA,IAAM,gBAAgB,CACpB,WACA,QACA,OACA,YACS;AACT,MAAI,CAAC,UAAW;AAChB,YAAU,OAAO;AAAA,IACf,GAAG;AAAA,IACH,GAAI,OAAO,WAAW,YAAY,OAAO,SAAS,IAC9C,EAAE,MAAM,OAAO,IACf,CAAC;AAAA,EACP,CAAC;AACH;AAEO,IAAM,yBAAyB,CACpC,UACA,cACwC;AACxC,QAAM,kBACJ,YAAY,YAAY,EAAE,GAAG,UAAU,GAAG,UAAU,IAAI;AAG1D,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,aAAa,CAAC,CAAC,GAAG;AAC1D,UAAM,WAAW,WAAW,GAAG;AAC/B,QACE,YACA,SACA,OAAO,aAAa,YACpB,OAAO,UAAU,YACjB,CAAC,MAAM,QAAQ,QAAQ,KACvB,CAAC,MAAM,QAAQ,KAAK,GACpB;AACA,UAAI,gBAAiB,iBAAgB,GAAG,IAAI,EAAE,GAAG,UAAU,GAAG,MAAM;AAAA,IACtE;AAAA,EACF;AACA,SAAO;AACT;AAEA,eAAsB,gBACpB,MACgC;AAChC,MAAI,SAAS,KAAK,UAAU,KAAK,MAAM,SAAS,aAAa;AAC7D,QAAM,OAAO,KAAK,QAAQ;AAC1B,QAAM,cACJ,KAAK,eACL,KAAK,MAAM,SAAS,eACpB,KAAK;AACP,QAAM,kBACJ,KAAK,mBAAmB,KAAK,MAAM,SAAS;AAC9C,QAAM,gBAAgB,KAAK,iBAAiB,KAAK,MAAM,SAAS;AAChE,QAAM,cAAc,KAAK,eAAe,KAAK,MAAM,SAAS;AAC5D,QAAM,YAAY,KAAK,aAAa,KAAK,MAAM,SAAS;AACxD,QAAM,iBACJ,KAAK,kBAAkB,KAAK,MAAM,SAAS;AAC7C,QAAM,kBAAkB;AAAA,IACtB,KAAK,MAAM,SAAS;AAAA,IACpB,KAAK;AAAA,EACP;AACA,QAAM,QAAQ,KAAK,SAAS,KAAK,MAAM,SAAS;AAEhD,2CAAwB,WAAW;AACnC,QAAM,QAAQ,KAAK,MAAM,SAAS,SAAS,KAAK,MAAM,SAAS;AAAA,IAC7D,GAAI,gBAAgB,SAAY,EAAE,YAAY,IAAI,CAAC;AAAA,IACnD,WAAW;AAAA,IACX,GAAI,oBAAoB,SAAY,EAAE,gBAAgB,IAAI,CAAC;AAAA,IAC3D,GAAI,kBAAkB,SAAY,EAAE,cAAc,IAAI,CAAC;AAAA,IACvD,GAAI,gBAAgB,SAAY,EAAE,YAAY,IAAI,CAAC;AAAA,IACnD,GAAI,cAAc,SAAY,EAAE,UAAU,IAAI,CAAC;AAAA,IAC/C,GAAI,mBAAmB,SAAY,EAAE,eAAe,IAAI,CAAC;AAAA,IACzD,GAAI,UAAU,SAAY,EAAE,MAAM,IAAI,CAAC;AAAA,IACvC,GAAI,oBAAoB,SAAY,EAAE,gBAAgB,IAAI,CAAC;AAAA,EAC7D,CAAC;AAED,MAAI,OAAO,UAAU,CAAC,MAAM,sBAAuB,UAAS;AAE5D,QAAM,WACJ,KAAK,aAAa,SACd,KAAK,WACL;AAAA,IACE,GAAI,OAAO,KAAK,WAAW,YAAY,KAAK,OAAO,SAAS,IACxD,CAAC,EAAE,MAAM,UAAmB,SAAS,KAAK,OAAO,CAAC,IAClD,CAAC;AAAA,IACL,EAAE,MAAM,QAAiB,SAAS,OAAO,KAAK,SAAS,EAAE,EAAE;AAAA,EAC7D;AAEN,QAAM,OACJ,OAAO,KAAK,SAAS,YAAY,KAAK,KAAK,SAAS,IAChD,KAAK,OACL,gBAAgB;AACtB,QAAM,YACJ,OAAO,KAAK,cAAc,YAAY,KAAK,UAAU,SAAS,IAC1D,KAAK,YACL,gBAAgB;AAEtB,QAAM,aAAsC;AAAA,IAC1C,GAAI,OAAO,KAAK,OAAO,YAAY,KAAK,GAAG,SAAS,IAChD,EAAE,IAAI,KAAK,GAAG,IACd,CAAC;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACA,QAAM,YAAY,KAAK,aAAa,UAAU;AAAA,IAC5C,MAAM;AAAA,IACN,YAAY;AAAA,MACV,GAAG;AAAA,MACH,YAAY,KAAK,MAAM,SAAS;AAAA,MAChC,SAAS,KAAK,MAAM;AAAA,MACpB;AAAA,MACA;AAAA,MACA,GAAI,KAAK,WAAW,YAChB,EAAE,WAAW,KAAK,UAAU,UAAU,IACtC,CAAC;AAAA,MACL,GAAI,KAAK,WAAW,QAAQ,OACxB,EAAE,YAAY,KAAK,UAAU,OAAO,KAAK,IACzC,CAAC;AAAA,MACL,GAAI,KAAK,WAAW,QAAQ,YAAY,SACpC,EAAE,eAAe,KAAK,UAAU,OAAO,QAAQ,IAC/C,CAAC;AAAA,MACL,GAAI,KAAK,WAAW,QAAQ,OACxB,EAAE,YAAY,KAAK,UAAU,OAAO,KAAK,IACzC,CAAC;AAAA,MACL,GAAI,OAAO,KAAK,WAAW,YAAY,KAAK,OAAO,SAAS,IACxD,EAAE,QAAQ,KAAK,OAAO,IACtB,CAAC;AAAA,IACP;AAAA,IACA,WAAW;AAAA,MACT,GAAI,KAAK,aAAa,CAAC;AAAA,MACvB,OACE,KAAK,WAAW,SAChB,SAAS;AAAA,QACP,CAAC,EAAE,cAAc,eAAe,KAAK,MAAM,GAAG,QAAQ,MAAM;AAAA,MAC9D;AAAA,IACJ;AAAA,EACF,CAAC;AACD,QAAM,wBAAwB,KAAK,IAAI;AACvC,MAAI;AACJ,MAAI;AAEJ,QAAM,6BAA6B,MACjC,qBAAqB,UAAa,oBAAoB,SAClD,CAAC,IACD;AAAA,IACE,QAAQ,KAAK,IAAI,GAAG,mBAAmB,qBAAqB;AAAA,IAC5D,kBAAkB,KAAK,IAAI,GAAG,kBAAkB,gBAAgB;AAAA,IAChE,mBAAmB,KAAK;AAAA,MACtB;AAAA,MACA,kBAAkB;AAAA,IACpB;AAAA,EACF;AAEN,QAAM,WAAW,CACf,MACA,WACS;AACT,UAAM,MAAM;AAAA,MACV,GAAI,OAAO,UAAU,SAAY,EAAE,OAAO,OAAO,MAAM,IAAI,CAAC;AAAA,MAC5D,GAAI,OAAO,iBAAiB,SACxB,EAAE,cAAc,OAAO,aAAa,IACpC,CAAC;AAAA,MACL,GAAI,OAAO,qBAAqB,SAC5B,EAAE,kBAAkB,OAAO,iBAAiB,IAC5C,CAAC;AAAA,MACL,GAAI,OAAO,aAAa,SAAY,EAAE,UAAU,OAAO,SAAS,IAAI,CAAC;AAAA,MACrE,YAAY;AAAA,QACV,YAAY,OAAO,KAAK;AAAA,QACxB,GAAG,2BAA2B;AAAA,MAChC;AAAA,MACA,WAAW;AAAA,QACT,GAAI,KAAK,aAAa,CAAC;AAAA,QACvB,QAAQ,KAAK,WAAW,UAAU,OAAO;AAAA,MAC3C;AAAA,IACF,CAAC;AAAA,EACH;AAEA,QAAM,YAAY,CAChB,MACA,UACS;AACT,UAAM,SAAS;AACf,UAAM,OAAO,OAAO;AAAA,MAClB,GAAI,QAAQ,QAAQ,EAAE,OAAO,OAAO,MAAM,IAAI,CAAC;AAAA,MAC/C,GAAI,QAAQ,eAAe,EAAE,cAAc,OAAO,aAAa,IAAI,CAAC;AAAA,MACpE,GAAI,QAAQ,mBACR,EAAE,kBAAkB,OAAO,iBAAiB,IAC5C,CAAC;AAAA,MACL,YAAY;AAAA,QACV,YAAY,KAAK,MAAM,SAAS;AAAA,QAChC,SAAS,KAAK,MAAM;AAAA,MACtB;AAAA,IACF,CAAC;AAAA,EACH;AAEA,MAAI;AACF,QAAI,QAAQ;AACV,UAAI;AACJ,UAAI,QAAQ;AACZ,UAAI;AACJ,UAAI;AACJ,UAAI;AACJ,UAAI;AACJ,UAAI;AACJ,UAAI;AAEJ,UAAI,MAAM;AACR,sBAAc,KAAK,WAAW,KAAK,QAAQ,cAAc;AAAA,UACvD,GAAG;AAAA,QACL,CAAC;AAAA,MACH;AAEA,YAAMA,YAAW,MAAM,MAAM,OAAO,QAAQ;AAC5C,uBAAiB,SAASA,WAAU;AAClC,iDAAwB,WAAW;AACnC,gBAAQ,MAAM,MAAM;AAAA,UAClB,KAAK,cAAc;AACjB,gBAAI,MAAM,MAAM,WAAW,EAAG;AAC9B,kBAAM,UAAU,KAAK,IAAI;AACzB,iCAAqB;AACrB,8BAAkB;AAClB,qBAAS,MAAM;AACf,iBAAK,cAAc,MAAM,KAAK;AAC9B,gBAAI,MAAM,QAAQ,QAAW;AAC3B,oBAAM,MAAM;AAAA,YACd;AACA,gBAAI,MAAM,qBAAqB,QAAW;AACxC,iCAAmB,MAAM;AAAA,YAC3B;AACA,gBAAI,MAAM;AACR,4BAAc,KAAK,WAAW,KAAK,QAAQ,cAAc;AAAA,gBACvD,GAAG;AAAA,gBACH,OAAO,MAAM;AAAA,cACf,CAAC;AAAA,YACH;AACA;AAAA,UACF;AAAA,UACA,KAAK,UAAU;AACb,2BAAe,MAAM;AACrB,gBAAI,MAAM,QAAQ,QAAW;AAC3B,oBAAM,MAAM;AAAA,YACd;AACA,gBAAI,MAAM,UAAU,QAAW;AAC7B,sBAAQ,MAAM;AAAA,YAChB;AACA,gBAAI,MAAM,iBAAiB,QAAW;AACpC,6BAAe,MAAM;AAAA,YACvB;AACA,gBAAI,MAAM,cAAc,QAAW;AACjC,0BAAY,MAAM;AAAA,YACpB;AACA,gBAAI,MAAM,qBAAqB,QAAW;AACxC,iCAAmB,MAAM;AAAA,YAC3B;AACA,gBAAI,MAAM,aAAa,QAAW;AAChC,yBAAW,MAAM;AAAA,YACnB;AACA;AAAA,UACF;AAAA,UACA,KAAK,OAAO;AACV,kBAAM,MAAM;AACZ,gBAAI,MAAM,qBAAqB,QAAW;AACxC,iCAAmB,MAAM;AAAA,YAC3B;AACA;AAAA,UACF;AAAA,UACA,KAAK,SAAS;AACZ,gBAAI,MAAM,QAAQ,QAAW;AAC3B,oBAAM,MAAM;AAAA,YACd;AACA,gBAAI,MAAM,qBAAqB,QAAW;AACxC,iCAAmB,MAAM;AAAA,YAC3B;AACA,gBAAI,MAAM,aAAa,QAAW;AAChC,yBAAW,MAAM;AAAA,YACnB;AACA,kBAAM,QAAQ,MAAM,KAAK;AAAA,UAC3B;AAAA,QACF;AAAA,MACF;AAEA,UAAI,MAAM;AACR,sBAAc,KAAK,WAAW,KAAK,QAAQ,YAAY;AAAA,UACrD,GAAG;AAAA,QACL,CAAC;AAAA,MACH;AAEA,YAAMC,UAAS;AAAA,QACb,MAAM;AAAA,QACN,GAAI,eAAe,EAAE,aAAa,IAAI,CAAC;AAAA,QACvC,GAAI,QAAQ,SAAY,EAAE,IAAI,IAAI,CAAC;AAAA,QACnC,GAAI,UAAU,SAAY,EAAE,MAAM,IAAI,CAAC;AAAA,QACvC,GAAI,iBAAiB,SAAY,EAAE,aAAa,IAAI,CAAC;AAAA,QACrD,GAAI,cAAc,SAAY,EAAE,UAAU,IAAI,CAAC;AAAA,QAC/C,GAAI,qBAAqB,SAAY,EAAE,iBAAiB,IAAI,CAAC;AAAA,QAC7D,GAAI,aAAa,SAAY,EAAE,SAAS,IAAI,CAAC;AAAA,MAC/C;AACA,+CAAwB,WAAW;AACnC,eAAS,WAAWA,OAAM;AAC1B,aAAOA;AAAA,IACT;AAEA,UAAM,WAAW,MAAM,MAAM,OAAO,QAAQ;AAC5C,6CAAwB,WAAW;AACnC,QAAI,SAAS,QAAS,MAAK,cAAc,SAAS,OAAO;AAEzD,QAAI,MAAM;AACR,oBAAc,KAAK,WAAW,KAAK,QAAQ,cAAc;AAAA,QACvD,GAAG;AAAA,MACL,CAAC;AACD,UAAI,SAAS,SAAS;AACpB,sBAAc,KAAK,WAAW,KAAK,QAAQ,cAAc;AAAA,UACvD,GAAG;AAAA,UACH,OAAO,SAAS;AAAA,QAClB,CAAC;AAAA,MACH;AACA,oBAAc,KAAK,WAAW,KAAK,QAAQ,YAAY;AAAA,QACrD,GAAG;AAAA,MACL,CAAC;AAAA,IACH;AAEA,UAAM,SAAS;AAAA,MACb,MAAM,SAAS;AAAA,MACf,GAAI,SAAS,eAAe,EAAE,cAAc,SAAS,aAAa,IAAI,CAAC;AAAA,MACvE,GAAI,SAAS,QAAQ,SAAY,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC;AAAA,MAC1D,GAAI,SAAS,UAAU,SAAY,EAAE,OAAO,SAAS,MAAM,IAAI,CAAC;AAAA,MAChE,GAAI,SAAS,iBAAiB,SAC1B,EAAE,cAAc,SAAS,aAAa,IACtC,CAAC;AAAA,MACL,GAAI,SAAS,cAAc,SACvB,EAAE,WAAW,SAAS,UAAU,IAChC,CAAC;AAAA,MACL,GAAI,SAAS,qBAAqB,SAC9B,EAAE,kBAAkB,SAAS,iBAAiB,IAC9C,CAAC;AAAA,MACL,GAAI,SAAS,aAAa,SACtB,EAAE,UAAU,SAAS,SAAS,IAC9B,CAAC;AAAA,IACP;AACA,aAAS,WAAW,MAAM;AAC1B,WAAO;AAAA,EACT,SAAS,OAAO;AACd,UAAM,UAAU,aAAa,cACzB,2CAA8B,IAC9B;AACJ,cAAU,WAAW,OAAO;AAC5B,UAAM;AAAA,EACR;AACF;","names":["response","result"]}
|
|
1
|
+
{"version":3,"sources":["../src/internal.ts","../src/reason-engine.ts"],"sourcesContent":["export type {\n RunReasonEngineArgs,\n RunReasonEngineResult,\n} from \"./reason-engine\";\nexport { runReasonEngine } from \"./reason-engine\";\nexport type {\n KortyxTelemetryConfig,\n KortyxTraceAdapter,\n KortyxTraceMetadata,\n ReasonTraceAdapter,\n} from \"./tracing\";\n","import { randomUUID } from \"node:crypto\";\nimport {\n createExecutionCancelledError,\n throwIfExecutionAborted,\n} from \"@kortyx/core\";\nimport { KortyxError } from \"@kortyx/core/errors\";\nimport type {\n KortyxContinuation,\n KortyxFinishReason,\n KortyxPromptMessage,\n KortyxProviderMetadata,\n KortyxReasoningOptions,\n KortyxResponseFormat,\n KortyxToolCall,\n KortyxToolDefinition,\n KortyxUsage,\n KortyxWarning,\n ProviderModelRef,\n} from \"@kortyx/providers\";\nimport type {\n KortyxTraceMetadata,\n ReasonTraceAdapter,\n ReasonTraceSpan,\n} from \"./tracing\";\n\nfunction assertModelFinish(result: {\n finishReason?: KortyxFinishReason | undefined;\n usage?: KortyxUsage | undefined;\n}): void {\n if (result.finishReason?.unified !== \"content-filter\") return;\n throw Object.assign(\n new KortyxError(\"PROVIDER_REFUSAL\", \"The provider refused the request.\", {\n category: \"provider\",\n retryable: false,\n safeMessage: \"The provider refused the request.\",\n }),\n {\n ...(result.usage ? { usage: result.usage } : {}),\n finishReason: result.finishReason,\n },\n );\n}\n\nexport interface RunReasonEngineArgs {\n model: ProviderModelRef;\n input: string;\n system?: string | undefined;\n temperature?: number | undefined;\n maxOutputTokens?: number | undefined;\n stopSequences?: string[] | undefined;\n abortSignal?: AbortSignal | undefined;\n reasoning?: KortyxReasoningOptions | undefined;\n responseFormat?: KortyxResponseFormat | undefined;\n providerOptions?: Record<string, unknown> | undefined;\n tools?: KortyxToolDefinition[] | undefined;\n messages?: KortyxPromptMessage[] | undefined;\n defaultTemperature?: number | undefined;\n stream?: boolean | undefined;\n emit?: boolean | undefined;\n nodeId?: string | undefined;\n emitEvent?: ((event: string, payload: unknown) => void) | undefined;\n onTextChunk?: ((text: string) => void) | undefined;\n id?: string | undefined;\n opId?: string | undefined;\n segmentId?: string | undefined;\n telemetry?: KortyxTraceMetadata | undefined;\n reasonTrace?: ReasonTraceAdapter | undefined;\n}\n\nexport interface RunReasonEngineResult {\n continuation?: KortyxContinuation;\n text: string;\n raw?: unknown;\n usage?: KortyxUsage;\n finishReason?: KortyxFinishReason;\n toolCalls?: KortyxToolCall[];\n providerMetadata?: KortyxProviderMetadata;\n warnings?: KortyxWarning[];\n}\n\nconst toError = (value: unknown): Error =>\n value instanceof Error ? value : new Error(String(value));\n\nconst createRuntimeId = (): string => {\n try {\n return randomUUID();\n } catch {\n return `${Date.now()}-${Math.random().toString(36).slice(2)}`;\n }\n};\n\nconst emitNodeEvent = (\n emitEvent: RunReasonEngineArgs[\"emitEvent\"],\n nodeId: string | undefined,\n event: string,\n payload: Record<string, unknown>,\n): void => {\n if (!emitEvent) return;\n emitEvent(event, {\n ...payload,\n ...(typeof nodeId === \"string\" && nodeId.length > 0\n ? { node: nodeId }\n : {}),\n });\n};\n\nexport const resolveProviderOptions = (\n defaults: Record<string, unknown> | undefined,\n overrides: Record<string, unknown> | undefined,\n): Record<string, unknown> | undefined => {\n const providerOptions =\n defaults || overrides ? { ...defaults, ...overrides } : undefined;\n // Provider namespaces inherit model defaults (including transport) while\n // allowing individual call settings to override them.\n for (const [key, value] of Object.entries(overrides ?? {})) {\n const previous = defaults?.[key];\n if (\n previous &&\n value &&\n typeof previous === \"object\" &&\n typeof value === \"object\" &&\n !Array.isArray(previous) &&\n !Array.isArray(value)\n ) {\n if (providerOptions) providerOptions[key] = { ...previous, ...value };\n }\n }\n return providerOptions;\n};\n\nexport async function runReasonEngine(\n args: RunReasonEngineArgs,\n): Promise<RunReasonEngineResult> {\n let stream = args.stream ?? args.model.options?.streaming ?? true;\n const emit = args.emit ?? true;\n const temperature =\n args.temperature ??\n args.model.options?.temperature ??\n args.defaultTemperature;\n const maxOutputTokens =\n args.maxOutputTokens ?? args.model.options?.maxOutputTokens;\n const stopSequences = args.stopSequences ?? args.model.options?.stopSequences;\n const abortSignal = args.abortSignal ?? args.model.options?.abortSignal;\n const reasoning = args.reasoning ?? args.model.options?.reasoning;\n const responseFormat =\n args.responseFormat ?? args.model.options?.responseFormat;\n const providerOptions = resolveProviderOptions(\n args.model.options?.providerOptions,\n args.providerOptions,\n );\n const tools = args.tools ?? args.model.options?.tools;\n\n throwIfExecutionAborted(abortSignal);\n const model = args.model.provider.getModel(args.model.modelId, {\n ...(temperature !== undefined ? { temperature } : {}),\n streaming: stream,\n ...(maxOutputTokens !== undefined ? { maxOutputTokens } : {}),\n ...(stopSequences !== undefined ? { stopSequences } : {}),\n ...(abortSignal !== undefined ? { abortSignal } : {}),\n ...(reasoning !== undefined ? { reasoning } : {}),\n ...(responseFormat !== undefined ? { responseFormat } : {}),\n ...(tools !== undefined ? { tools } : {}),\n ...(providerOptions !== undefined ? { providerOptions } : {}),\n });\n\n if (tools?.length && !model.supportsToolStreaming) stream = false;\n\n const messages: KortyxPromptMessage[] =\n args.messages !== undefined\n ? args.messages\n : [\n ...(typeof args.system === \"string\" && args.system.length > 0\n ? [{ role: \"system\" as const, content: args.system }]\n : []),\n { role: \"user\" as const, content: String(args.input ?? \"\") },\n ];\n\n const opId =\n typeof args.opId === \"string\" && args.opId.length > 0\n ? args.opId\n : createRuntimeId();\n const segmentId =\n typeof args.segmentId === \"string\" && args.segmentId.length > 0\n ? args.segmentId\n : createRuntimeId();\n\n const commonMeta: Record<string, unknown> = {\n ...(typeof args.id === \"string\" && args.id.length > 0\n ? { id: args.id }\n : {}),\n opId,\n segmentId,\n };\n const traceSpan = args.reasonTrace?.startSpan({\n name: \"runReasonEngine\",\n attributes: {\n ...commonMeta,\n providerId: args.model.provider.id,\n modelId: args.model.modelId,\n stream,\n emit,\n ...(args.telemetry?.operation\n ? { operation: args.telemetry.operation }\n : {}),\n ...(args.telemetry?.prompt?.name\n ? { promptName: args.telemetry.prompt.name }\n : {}),\n ...(args.telemetry?.prompt?.version !== undefined\n ? { promptVersion: args.telemetry.prompt.version }\n : {}),\n ...(args.telemetry?.prompt?.type\n ? { promptType: args.telemetry.prompt.type }\n : {}),\n ...(typeof args.nodeId === \"string\" && args.nodeId.length > 0\n ? { nodeId: args.nodeId }\n : {}),\n },\n telemetry: {\n ...(args.telemetry ?? {}),\n input:\n args.telemetry?.input ??\n messages.map(\n ({ continuation: _continuation, raw: _raw, ...message }) => message,\n ),\n },\n });\n const modelRequestStartedAt = Date.now();\n let firstTextTokenAt: number | undefined;\n let lastTextTokenAt: number | undefined;\n\n const generationTimingAttributes = (): Record<string, number> =>\n firstTextTokenAt === undefined || lastTextTokenAt === undefined\n ? {}\n : {\n ttftMs: Math.max(0, firstTextTokenAt - modelRequestStartedAt),\n streamDurationMs: Math.max(0, lastTextTokenAt - firstTextTokenAt),\n timeToLastTokenMs: Math.max(\n 0,\n lastTextTokenAt - modelRequestStartedAt,\n ),\n };\n\n const endTrace = (\n span: ReasonTraceSpan | undefined,\n result: RunReasonEngineResult,\n ): void => {\n span?.end?.({\n ...(result.usage !== undefined ? { usage: result.usage } : {}),\n ...(result.finishReason !== undefined\n ? { finishReason: result.finishReason }\n : {}),\n ...(result.providerMetadata !== undefined\n ? { providerMetadata: result.providerMetadata }\n : {}),\n ...(result.warnings !== undefined ? { warnings: result.warnings } : {}),\n attributes: {\n textLength: result.text.length,\n ...generationTimingAttributes(),\n },\n telemetry: {\n ...(args.telemetry ?? {}),\n output: args.telemetry?.output ?? result.text,\n },\n });\n };\n\n const failTrace = (\n span: ReasonTraceSpan | undefined,\n error: unknown,\n ): void => {\n const detail = error as Partial<RunReasonEngineResult> | undefined;\n try {\n span?.fail?.(error, {\n ...(detail?.usage ? { usage: detail.usage } : {}),\n ...(detail?.finishReason ? { finishReason: detail.finishReason } : {}),\n ...(detail?.providerMetadata\n ? { providerMetadata: detail.providerMetadata }\n : {}),\n attributes: {\n providerId: args.model.provider.id,\n modelId: args.model.modelId,\n },\n });\n } catch {\n /* Reporting must not replace the execution failure. */\n }\n };\n\n try {\n if (stream) {\n let continuation: KortyxContinuation | undefined;\n let final = \"\";\n let raw: unknown;\n let usage: KortyxUsage | undefined;\n let finishReason: KortyxFinishReason | undefined;\n let toolCalls: KortyxToolCall[] | undefined;\n let providerMetadata: KortyxProviderMetadata | undefined;\n let warnings: KortyxWarning[] | undefined;\n\n if (emit) {\n emitNodeEvent(args.emitEvent, args.nodeId, \"text-start\", {\n ...commonMeta,\n });\n }\n\n const response = await model.stream(messages);\n for await (const chunk of response) {\n throwIfExecutionAborted(abortSignal);\n switch (chunk.type) {\n case \"text-delta\": {\n if (chunk.delta.length === 0) break;\n const tokenAt = Date.now();\n firstTextTokenAt ??= tokenAt;\n lastTextTokenAt = tokenAt;\n final += chunk.delta;\n args.onTextChunk?.(chunk.delta);\n if (chunk.raw !== undefined) {\n raw = chunk.raw;\n }\n if (chunk.providerMetadata !== undefined) {\n providerMetadata = chunk.providerMetadata;\n }\n if (emit) {\n emitNodeEvent(args.emitEvent, args.nodeId, \"text-delta\", {\n ...commonMeta,\n delta: chunk.delta,\n });\n }\n break;\n }\n case \"finish\": {\n continuation = chunk.continuation;\n if (chunk.raw !== undefined) {\n raw = chunk.raw;\n }\n if (chunk.usage !== undefined) {\n usage = chunk.usage;\n }\n if (chunk.finishReason !== undefined) {\n finishReason = chunk.finishReason;\n }\n if (chunk.toolCalls !== undefined) {\n toolCalls = chunk.toolCalls;\n }\n if (chunk.providerMetadata !== undefined) {\n providerMetadata = chunk.providerMetadata;\n }\n if (chunk.warnings !== undefined) {\n warnings = chunk.warnings;\n }\n break;\n }\n case \"raw\": {\n raw = chunk.raw;\n if (chunk.providerMetadata !== undefined) {\n providerMetadata = chunk.providerMetadata;\n }\n break;\n }\n case \"error\": {\n if (chunk.raw !== undefined) {\n raw = chunk.raw;\n }\n if (chunk.providerMetadata !== undefined) {\n providerMetadata = chunk.providerMetadata;\n }\n if (chunk.warnings !== undefined) {\n warnings = chunk.warnings;\n }\n throw toError(chunk.error);\n }\n }\n }\n\n throwIfExecutionAborted(abortSignal);\n assertModelFinish({ finishReason, usage });\n if (emit) {\n emitNodeEvent(args.emitEvent, args.nodeId, \"text-end\", {\n ...commonMeta,\n });\n }\n\n const result = {\n text: final,\n ...(continuation ? { continuation } : {}),\n ...(raw !== undefined ? { raw } : {}),\n ...(usage !== undefined ? { usage } : {}),\n ...(finishReason !== undefined ? { finishReason } : {}),\n ...(toolCalls !== undefined ? { toolCalls } : {}),\n ...(providerMetadata !== undefined ? { providerMetadata } : {}),\n ...(warnings !== undefined ? { warnings } : {}),\n };\n throwIfExecutionAborted(abortSignal);\n endTrace(traceSpan, result);\n return result;\n }\n\n const response = await model.invoke(messages);\n throwIfExecutionAborted(abortSignal);\n assertModelFinish(response);\n if (response.content) args.onTextChunk?.(response.content);\n\n if (emit) {\n emitNodeEvent(args.emitEvent, args.nodeId, \"text-start\", {\n ...commonMeta,\n });\n if (response.content) {\n emitNodeEvent(args.emitEvent, args.nodeId, \"text-delta\", {\n ...commonMeta,\n delta: response.content,\n });\n }\n emitNodeEvent(args.emitEvent, args.nodeId, \"text-end\", {\n ...commonMeta,\n });\n }\n\n const result = {\n text: response.content,\n ...(response.continuation ? { continuation: response.continuation } : {}),\n ...(response.raw !== undefined ? { raw: response.raw } : {}),\n ...(response.usage !== undefined ? { usage: response.usage } : {}),\n ...(response.finishReason !== undefined\n ? { finishReason: response.finishReason }\n : {}),\n ...(response.toolCalls !== undefined\n ? { toolCalls: response.toolCalls }\n : {}),\n ...(response.providerMetadata !== undefined\n ? { providerMetadata: response.providerMetadata }\n : {}),\n ...(response.warnings !== undefined\n ? { warnings: response.warnings }\n : {}),\n };\n endTrace(traceSpan, result);\n return result;\n } catch (error) {\n const failure = abortSignal?.aborted\n ? createExecutionCancelledError()\n : error;\n failTrace(traceSpan, failure);\n throw failure;\n }\n}\n"],"mappings":"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","names":["response","result"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kortyx/hooks",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Lifecycle hooks and extension points for Kortyx.",
|
|
6
6
|
"keywords": [
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
],
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"zod": "^4.3.6",
|
|
40
|
-
"@kortyx/core": "0.
|
|
41
|
-
"@kortyx/
|
|
42
|
-
"@kortyx/
|
|
40
|
+
"@kortyx/core": "0.9.0",
|
|
41
|
+
"@kortyx/providers": "0.7.0",
|
|
42
|
+
"@kortyx/telemetry-contracts": "0.6.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"turbo": "2.6.1",
|