@codemation/core-nodes-ocr 0.2.1 → 0.2.3
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 +14 -0
- package/dist/codemation.plugin.cjs +254 -8
- package/dist/codemation.plugin.cjs.map +1 -1
- package/dist/codemation.plugin.d.cts +7 -1
- package/dist/codemation.plugin.d.ts +7 -1
- package/dist/codemation.plugin.js +255 -9
- package/dist/codemation.plugin.js.map +1 -1
- package/dist/{index-C2KJPzqN.d.ts → index-rc7dB1Ws.d.ts} +353 -281
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/metadata.json +4 -4
- package/dist/{runtimeTypes-ffl603pJ.d.cts → runtimeTypes-MQgcsey7.d.cts} +265 -193
- package/package.json +2 -2
- package/dist/index-DoHR1J8T.d.ts +0 -880
- package/dist/index-OvXJkNm1.d.ts +0 -874
- package/dist/runtimeTypes-C6YqmQG-.d.cts +0 -762
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ZodType, z } from "zod";
|
|
2
|
-
import { ReadableStream } from "node:stream/web";
|
|
3
2
|
import { DependencyContainer as Container, InjectionToken as TypeToken } from "tsyringe";
|
|
3
|
+
import { ReadableStream } from "node:stream/web";
|
|
4
4
|
|
|
5
5
|
//#region ../core/src/contracts/baseTypes.d.ts
|
|
6
6
|
/**
|
|
@@ -14,6 +14,166 @@ type OutputPortKey = string;
|
|
|
14
14
|
type InputPortKey = string;
|
|
15
15
|
type NodeConnectionName = string;
|
|
16
16
|
//#endregion
|
|
17
|
+
//#region ../core/src/contracts/CostTrackingTelemetryContract.d.ts
|
|
18
|
+
type CostTrackingComponent = "chat" | "ocr" | "rag";
|
|
19
|
+
interface CostTrackingUsageRecord {
|
|
20
|
+
readonly component: CostTrackingComponent;
|
|
21
|
+
readonly provider: string;
|
|
22
|
+
readonly operation: string;
|
|
23
|
+
readonly pricingKey: string;
|
|
24
|
+
readonly usageUnit: string;
|
|
25
|
+
readonly quantity: number;
|
|
26
|
+
readonly modelName?: string;
|
|
27
|
+
readonly attributes?: TelemetryAttributes;
|
|
28
|
+
}
|
|
29
|
+
interface CostTrackingPriceQuote {
|
|
30
|
+
readonly currency: string;
|
|
31
|
+
readonly currencyScale: number;
|
|
32
|
+
readonly estimatedAmountMinor: number;
|
|
33
|
+
readonly estimateKind: "catalog";
|
|
34
|
+
}
|
|
35
|
+
interface CostTrackingTelemetry {
|
|
36
|
+
captureUsage(args: CostTrackingUsageRecord): Promise<CostTrackingPriceQuote | undefined>;
|
|
37
|
+
forScope(scope: TelemetryScope): CostTrackingTelemetry;
|
|
38
|
+
}
|
|
39
|
+
//#endregion
|
|
40
|
+
//#region ../core/src/contracts/telemetryTypes.d.ts
|
|
41
|
+
type TelemetryAttributePrimitive = string | number | boolean | null;
|
|
42
|
+
interface TelemetryAttributes {
|
|
43
|
+
readonly [key: string]: TelemetryAttributePrimitive | undefined;
|
|
44
|
+
}
|
|
45
|
+
interface TelemetryMetricRecord {
|
|
46
|
+
readonly name: string;
|
|
47
|
+
readonly value: number;
|
|
48
|
+
readonly unit?: string;
|
|
49
|
+
readonly attributes?: TelemetryAttributes;
|
|
50
|
+
}
|
|
51
|
+
interface TelemetrySpanEventRecord {
|
|
52
|
+
readonly name: string;
|
|
53
|
+
readonly occurredAt?: Date;
|
|
54
|
+
readonly attributes?: TelemetryAttributes;
|
|
55
|
+
}
|
|
56
|
+
interface TelemetryArtifactAttachment {
|
|
57
|
+
readonly kind: string;
|
|
58
|
+
readonly contentType: string;
|
|
59
|
+
readonly previewText?: string;
|
|
60
|
+
readonly previewJson?: JsonValue;
|
|
61
|
+
readonly payloadText?: string;
|
|
62
|
+
readonly payloadJson?: JsonValue;
|
|
63
|
+
readonly bytes?: number;
|
|
64
|
+
readonly truncated?: boolean;
|
|
65
|
+
readonly expiresAt?: Date;
|
|
66
|
+
}
|
|
67
|
+
interface TelemetryArtifactReference {
|
|
68
|
+
readonly artifactId: string;
|
|
69
|
+
readonly traceId?: string;
|
|
70
|
+
readonly spanId?: string;
|
|
71
|
+
}
|
|
72
|
+
interface TelemetrySpanEnd {
|
|
73
|
+
readonly status?: "ok" | "error";
|
|
74
|
+
readonly statusMessage?: string;
|
|
75
|
+
readonly endedAt?: Date;
|
|
76
|
+
readonly attributes?: TelemetryAttributes;
|
|
77
|
+
}
|
|
78
|
+
interface TelemetryChildSpanStart {
|
|
79
|
+
readonly name: string;
|
|
80
|
+
readonly kind?: "internal" | "client";
|
|
81
|
+
readonly startedAt?: Date;
|
|
82
|
+
readonly attributes?: TelemetryAttributes;
|
|
83
|
+
}
|
|
84
|
+
interface TelemetryScope {
|
|
85
|
+
readonly traceId?: string;
|
|
86
|
+
readonly spanId?: string;
|
|
87
|
+
readonly costTracking?: CostTrackingTelemetry;
|
|
88
|
+
addSpanEvent(args: TelemetrySpanEventRecord): Promise<void> | void;
|
|
89
|
+
recordMetric(args: TelemetryMetricRecord): Promise<void> | void;
|
|
90
|
+
attachArtifact(args: TelemetryArtifactAttachment): Promise<TelemetryArtifactReference> | TelemetryArtifactReference;
|
|
91
|
+
}
|
|
92
|
+
interface TelemetrySpanScope extends TelemetryScope {
|
|
93
|
+
readonly traceId: string;
|
|
94
|
+
readonly spanId: string;
|
|
95
|
+
end(args?: TelemetrySpanEnd): Promise<void> | void;
|
|
96
|
+
/**
|
|
97
|
+
* Lift this span into a {@link NodeExecutionTelemetry} scoped to a different (nodeId, activationId).
|
|
98
|
+
* Children created via the returned telemetry's `startChildSpan` get this span as their parent.
|
|
99
|
+
*
|
|
100
|
+
* Used at the sub-agent boundary so that nested runtime telemetry parents under the agent.tool.call
|
|
101
|
+
* span instead of the orchestrator's node-level span.
|
|
102
|
+
*/
|
|
103
|
+
asNodeTelemetry(args: Readonly<{
|
|
104
|
+
nodeId: NodeId;
|
|
105
|
+
activationId: NodeActivationId;
|
|
106
|
+
}>): NodeExecutionTelemetry;
|
|
107
|
+
}
|
|
108
|
+
interface NodeExecutionTelemetry extends ExecutionTelemetry, TelemetrySpanScope {
|
|
109
|
+
startChildSpan(args: TelemetryChildSpanStart): TelemetrySpanScope;
|
|
110
|
+
}
|
|
111
|
+
interface ExecutionTelemetry extends TelemetryScope {
|
|
112
|
+
readonly traceId: string;
|
|
113
|
+
readonly spanId: string;
|
|
114
|
+
forNode(args: Readonly<{
|
|
115
|
+
nodeId: NodeId;
|
|
116
|
+
activationId: NodeActivationId;
|
|
117
|
+
}>): NodeExecutionTelemetry;
|
|
118
|
+
}
|
|
119
|
+
//#endregion
|
|
120
|
+
//#region ../core/src/contracts/itemExpr.d.ts
|
|
121
|
+
declare const ITEM_EXPR_BRAND: unique symbol;
|
|
122
|
+
type ItemExprResolvedContext = Readonly<{
|
|
123
|
+
runId: RunId;
|
|
124
|
+
workflowId: WorkflowId;
|
|
125
|
+
nodeId: NodeId;
|
|
126
|
+
activationId: NodeActivationId;
|
|
127
|
+
data: RunDataSnapshot;
|
|
128
|
+
}>;
|
|
129
|
+
/**
|
|
130
|
+
* Context aligned with former {@link ItemInputMapperContext} — use **`data`** to read any completed upstream node.
|
|
131
|
+
*/
|
|
132
|
+
type ItemExprContext = ItemExprResolvedContext;
|
|
133
|
+
type ItemExprArgs<TItemJson = unknown> = Readonly<{
|
|
134
|
+
item: Item<TItemJson>;
|
|
135
|
+
itemIndex: number;
|
|
136
|
+
items: Items<TItemJson>;
|
|
137
|
+
ctx: ItemExprContext;
|
|
138
|
+
}>;
|
|
139
|
+
type ItemExprCallback<T, TItemJson = unknown> = (args: ItemExprArgs<TItemJson>) => T | Promise<T>;
|
|
140
|
+
type ItemExpr<T, TItemJson = unknown> = Readonly<{
|
|
141
|
+
readonly [ITEM_EXPR_BRAND]: true;
|
|
142
|
+
readonly fn: ItemExprCallback<T, TItemJson>;
|
|
143
|
+
}>;
|
|
144
|
+
//#endregion
|
|
145
|
+
//#region ../core/src/contracts/params.d.ts
|
|
146
|
+
type Expr<T, TItemJson = unknown> = ItemExpr<T, TItemJson>;
|
|
147
|
+
type ParamDeep<T, TItemJson = unknown> = Expr<T, TItemJson> | (T extends readonly (infer U)[] ? ReadonlyArray<ParamDeep<U, TItemJson>> : never) | (T extends object ? { [K in keyof T]: ParamDeep<T[K], TItemJson> } : T);
|
|
148
|
+
//#endregion
|
|
149
|
+
//#region ../core/src/contracts/retryPolicySpec.types.d.ts
|
|
150
|
+
/**
|
|
151
|
+
* In-process retry policy for runnable nodes. Serialized configs use the same
|
|
152
|
+
* `kind` discriminator (`JSON.stringify` / persisted workflows).
|
|
153
|
+
*
|
|
154
|
+
* `maxAttempts` is the total number of tries including the first (e.g. 3 means up to 2 delays after failures).
|
|
155
|
+
*/
|
|
156
|
+
type RetryPolicySpec = NoneRetryPolicySpec | FixedRetryPolicySpec | ExponentialRetryPolicySpec;
|
|
157
|
+
interface NoneRetryPolicySpec {
|
|
158
|
+
readonly kind: "none";
|
|
159
|
+
}
|
|
160
|
+
interface FixedRetryPolicySpec {
|
|
161
|
+
readonly kind: "fixed";
|
|
162
|
+
/** Total attempts including the first execution. Must be >= 1. */
|
|
163
|
+
readonly maxAttempts: number;
|
|
164
|
+
readonly delayMs: number;
|
|
165
|
+
}
|
|
166
|
+
interface ExponentialRetryPolicySpec {
|
|
167
|
+
readonly kind: "exponential";
|
|
168
|
+
/** Total attempts including the first execution. Must be >= 1. */
|
|
169
|
+
readonly maxAttempts: number;
|
|
170
|
+
readonly initialDelayMs: number;
|
|
171
|
+
readonly multiplier: number;
|
|
172
|
+
readonly maxDelayMs?: number;
|
|
173
|
+
/** When true, each delay is multiplied by a random factor in [1, 1.2). */
|
|
174
|
+
readonly jitter?: boolean;
|
|
175
|
+
}
|
|
176
|
+
//#endregion
|
|
17
177
|
//#region ../core/src/contracts/credentialTypes.d.ts
|
|
18
178
|
type CredentialTypeId = string;
|
|
19
179
|
type CredentialInstanceId = string;
|
|
@@ -149,6 +309,19 @@ type CredentialInstanceRecord<TPublicConfig extends CredentialJsonRecord = Crede
|
|
|
149
309
|
setupStatus: CredentialSetupStatus;
|
|
150
310
|
createdAt: string;
|
|
151
311
|
updatedAt: string;
|
|
312
|
+
/**
|
|
313
|
+
* Pointer to where the credential material bytes live. For OSS / standalone
|
|
314
|
+
* rows this is `{source: "local", ref: instanceId}` and the bytes co-locate
|
|
315
|
+
* with the row in the workspace DB. For managed-mode rows this is
|
|
316
|
+
* `{source: "control-plane", ref: <cp_id>}` and the bytes live at CP.
|
|
317
|
+
*
|
|
318
|
+
* The seam is read through `CredentialMaterialProvider`. See
|
|
319
|
+
* `docs/design/credentials-oauth-unification.md` ("Material provider seam").
|
|
320
|
+
*/
|
|
321
|
+
material: Readonly<{
|
|
322
|
+
source: "local" | "control-plane";
|
|
323
|
+
ref: string;
|
|
324
|
+
}>;
|
|
152
325
|
}>;
|
|
153
326
|
/**
|
|
154
327
|
* Arguments passed to `CredentialType.createSession` and `CredentialType.test`.
|
|
@@ -178,6 +351,130 @@ type CredentialType<TPublicConfig extends CredentialJsonRecord = CredentialJsonR
|
|
|
178
351
|
*/
|
|
179
352
|
type AnyCredentialType = CredentialType<any, any, unknown>;
|
|
180
353
|
//#endregion
|
|
354
|
+
//#region ../core/src/contracts/mcpTypes.d.ts
|
|
355
|
+
type McpServerTransport = "http";
|
|
356
|
+
interface McpServerDeclaration {
|
|
357
|
+
/** Globally unique slug, e.g. "gmail". Workflow authors reference this. */
|
|
358
|
+
id: string;
|
|
359
|
+
displayName: string;
|
|
360
|
+
description: string;
|
|
361
|
+
transport: McpServerTransport;
|
|
362
|
+
url: string;
|
|
363
|
+
/**
|
|
364
|
+
* Credential types accepted by this MCP server, matching CredentialRequirement.acceptedTypes.
|
|
365
|
+
* Absent or empty means no credential is required.
|
|
366
|
+
*/
|
|
367
|
+
acceptedCredentialTypes?: ReadonlyArray<string>;
|
|
368
|
+
/**
|
|
369
|
+
* Documentation only in MVP. The bind-time validator checks
|
|
370
|
+
* requiredScopes ⊆ CredentialInstance.scopesGranted.
|
|
371
|
+
*/
|
|
372
|
+
requiredScopes?: string[];
|
|
373
|
+
/** Non-secret static headers merged onto every MCP request. */
|
|
374
|
+
staticHeaders?: Record<string, string>;
|
|
375
|
+
/**
|
|
376
|
+
* Overrides for tool descriptions advertised by the MCP server.
|
|
377
|
+
* Applied by the connection pool after tools/list.
|
|
378
|
+
* Key: exact tool name as returned by the server.
|
|
379
|
+
*/
|
|
380
|
+
toolDescriptionOverrides?: Record<string, string>;
|
|
381
|
+
}
|
|
382
|
+
//#endregion
|
|
383
|
+
//#region ../core/src/contracts/collectionTypes.d.ts
|
|
384
|
+
/**
|
|
385
|
+
* Represents a typed store for a single collection.
|
|
386
|
+
* All rows include auto-managed id, created_at, and updated_at fields.
|
|
387
|
+
*/
|
|
388
|
+
interface CollectionStore<TRow extends Record<string, unknown> = Record<string, unknown>> {
|
|
389
|
+
/**
|
|
390
|
+
* Insert a new row. id, created_at, and updated_at are auto-populated.
|
|
391
|
+
*/
|
|
392
|
+
insert(row: TRow): Promise<TRow & {
|
|
393
|
+
id: string;
|
|
394
|
+
created_at: Date;
|
|
395
|
+
updated_at: Date;
|
|
396
|
+
}>;
|
|
397
|
+
/**
|
|
398
|
+
* Get a single row by id.
|
|
399
|
+
*/
|
|
400
|
+
get(id: string): Promise<(TRow & {
|
|
401
|
+
id: string;
|
|
402
|
+
created_at: Date;
|
|
403
|
+
updated_at: Date;
|
|
404
|
+
}) | null>;
|
|
405
|
+
/**
|
|
406
|
+
* Find a single row matching the provided filter.
|
|
407
|
+
*/
|
|
408
|
+
findOne(filter: Partial<TRow>): Promise<(TRow & {
|
|
409
|
+
id: string;
|
|
410
|
+
created_at: Date;
|
|
411
|
+
updated_at: Date;
|
|
412
|
+
}) | null>;
|
|
413
|
+
/**
|
|
414
|
+
* List rows with optional pagination and filtering.
|
|
415
|
+
*/
|
|
416
|
+
list(opts?: {
|
|
417
|
+
limit?: number;
|
|
418
|
+
offset?: number;
|
|
419
|
+
where?: Partial<TRow>;
|
|
420
|
+
}): Promise<{
|
|
421
|
+
rows: ReadonlyArray<TRow & {
|
|
422
|
+
id: string;
|
|
423
|
+
created_at: Date;
|
|
424
|
+
updated_at: Date;
|
|
425
|
+
}>;
|
|
426
|
+
total: number;
|
|
427
|
+
}>;
|
|
428
|
+
/**
|
|
429
|
+
* Update a row by id with partial data.
|
|
430
|
+
*/
|
|
431
|
+
update(id: string, patch: Partial<TRow>): Promise<TRow & {
|
|
432
|
+
id: string;
|
|
433
|
+
created_at: Date;
|
|
434
|
+
updated_at: Date;
|
|
435
|
+
}>;
|
|
436
|
+
/**
|
|
437
|
+
* Delete a row by id. Hard delete only (no soft delete).
|
|
438
|
+
*/
|
|
439
|
+
delete(id: string): Promise<{
|
|
440
|
+
deleted: boolean;
|
|
441
|
+
}>;
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Runtime collections context: keyed by collection name.
|
|
445
|
+
*/
|
|
446
|
+
type CollectionsContext = Readonly<Record<string, CollectionStore>>;
|
|
447
|
+
//#endregion
|
|
448
|
+
//#region ../core/src/authoring/defineNode.types.d.ts
|
|
449
|
+
type ResolvableCredentialType = AnyCredentialType | CredentialTypeId;
|
|
450
|
+
type DefinedNodeCredentialBinding = ResolvableCredentialType | Readonly<{
|
|
451
|
+
readonly type: ResolvableCredentialType | ReadonlyArray<ResolvableCredentialType>;
|
|
452
|
+
readonly label?: string;
|
|
453
|
+
readonly optional?: true;
|
|
454
|
+
readonly helpText?: string;
|
|
455
|
+
readonly helpUrl?: string;
|
|
456
|
+
}>;
|
|
457
|
+
type DefinedNodeCredentialBindings = Readonly<Record<string, DefinedNodeCredentialBinding>>;
|
|
458
|
+
type DefinedNodeConfigInput<TConfigResolved extends CredentialJsonRecord, TItemJson> = ParamDeep<TConfigResolved, TItemJson>;
|
|
459
|
+
interface DefinedNode<TKey$1 extends string, TConfig$1 extends CredentialJsonRecord, TInputJson$1, TOutputJson$1, _TBindings extends DefinedNodeCredentialBindings | undefined = undefined> {
|
|
460
|
+
readonly kind: "defined-node";
|
|
461
|
+
readonly key: TKey$1;
|
|
462
|
+
readonly title: string;
|
|
463
|
+
readonly description?: string;
|
|
464
|
+
create<TConfigItemJson = TInputJson$1>(config: DefinedNodeConfigInput<TConfig$1, TConfigItemJson>, name?: string, id?: string): RunnableNodeConfig<TInputJson$1, TOutputJson$1>;
|
|
465
|
+
register(context: {
|
|
466
|
+
registerNode<TValue>(token: TypeToken<TValue>, implementation?: TypeToken<TValue>): void;
|
|
467
|
+
}): void;
|
|
468
|
+
}
|
|
469
|
+
//#endregion
|
|
470
|
+
//#region ../core/src/policies/executionLimits/EngineExecutionLimitsPolicy.d.ts
|
|
471
|
+
interface EngineExecutionLimitsPolicyConfig {
|
|
472
|
+
readonly defaultMaxNodeActivations: number;
|
|
473
|
+
readonly hardMaxNodeActivations: number;
|
|
474
|
+
readonly defaultMaxSubworkflowDepth: number;
|
|
475
|
+
readonly hardMaxSubworkflowDepth: number;
|
|
476
|
+
}
|
|
477
|
+
//#endregion
|
|
181
478
|
//#region ../core/src/contracts/runTypes.d.ts
|
|
182
479
|
/**
|
|
183
480
|
* Test-suite linkage for a run. When set, this run was started by a TestSuiteOrchestrator
|
|
@@ -196,7 +493,7 @@ interface RunTestContext {
|
|
|
196
493
|
readonly testCaseLabel?: string;
|
|
197
494
|
}
|
|
198
495
|
type NodeInputsByPort = Readonly<Record<InputPortKey, Items>>;
|
|
199
|
-
type NodeExecutionStatus = "pending" | "queued" | "running" | "completed" | "failed" | "skipped";
|
|
496
|
+
type NodeExecutionStatus = "pending" | "queued" | "running" | "completed" | "failed" | "skipped" | "hitl-approved" | "hitl-rejected" | "hitl-timeout" | "hitl-auto-accepted" | "hitl-cancelled";
|
|
200
497
|
interface NodeExecutionError {
|
|
201
498
|
message: string;
|
|
202
499
|
name?: string;
|
|
@@ -225,34 +522,6 @@ type ConnectionInvocationAppendArgs = Readonly<{
|
|
|
225
522
|
parentInvocationId?: ConnectionInvocationId;
|
|
226
523
|
}>;
|
|
227
524
|
//#endregion
|
|
228
|
-
//#region ../core/src/contracts/retryPolicySpec.types.d.ts
|
|
229
|
-
/**
|
|
230
|
-
* In-process retry policy for runnable nodes. Serialized configs use the same
|
|
231
|
-
* `kind` discriminator (`JSON.stringify` / persisted workflows).
|
|
232
|
-
*
|
|
233
|
-
* `maxAttempts` is the total number of tries including the first (e.g. 3 means up to 2 delays after failures).
|
|
234
|
-
*/
|
|
235
|
-
type RetryPolicySpec = NoneRetryPolicySpec | FixedRetryPolicySpec | ExponentialRetryPolicySpec;
|
|
236
|
-
interface NoneRetryPolicySpec {
|
|
237
|
-
readonly kind: "none";
|
|
238
|
-
}
|
|
239
|
-
interface FixedRetryPolicySpec {
|
|
240
|
-
readonly kind: "fixed";
|
|
241
|
-
/** Total attempts including the first execution. Must be >= 1. */
|
|
242
|
-
readonly maxAttempts: number;
|
|
243
|
-
readonly delayMs: number;
|
|
244
|
-
}
|
|
245
|
-
interface ExponentialRetryPolicySpec {
|
|
246
|
-
readonly kind: "exponential";
|
|
247
|
-
/** Total attempts including the first execution. Must be >= 1. */
|
|
248
|
-
readonly maxAttempts: number;
|
|
249
|
-
readonly initialDelayMs: number;
|
|
250
|
-
readonly multiplier: number;
|
|
251
|
-
readonly maxDelayMs?: number;
|
|
252
|
-
/** When true, each delay is multiplied by a random factor in [1, 1.2). */
|
|
253
|
-
readonly jitter?: boolean;
|
|
254
|
-
}
|
|
255
|
-
//#endregion
|
|
256
525
|
//#region ../core/src/contracts/workflowTypes.d.ts
|
|
257
526
|
type NodeIdRef<TJson = unknown> = NodeId & Readonly<{
|
|
258
527
|
__codemationNodeJson?: TJson;
|
|
@@ -494,212 +763,53 @@ interface NodeErrorHandler {
|
|
|
494
763
|
}
|
|
495
764
|
type NodeErrorHandlerSpec = TypeToken<NodeErrorHandler> | NodeErrorHandler;
|
|
496
765
|
//#endregion
|
|
497
|
-
//#region ../core/src/contracts/
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
readonly component: CostTrackingComponent;
|
|
501
|
-
readonly provider: string;
|
|
502
|
-
readonly operation: string;
|
|
503
|
-
readonly pricingKey: string;
|
|
504
|
-
readonly usageUnit: string;
|
|
505
|
-
readonly quantity: number;
|
|
506
|
-
readonly modelName?: string;
|
|
507
|
-
readonly attributes?: TelemetryAttributes;
|
|
508
|
-
}
|
|
509
|
-
interface CostTrackingPriceQuote {
|
|
510
|
-
readonly currency: string;
|
|
511
|
-
readonly currencyScale: number;
|
|
512
|
-
readonly estimatedAmountMinor: number;
|
|
513
|
-
readonly estimateKind: "catalog";
|
|
514
|
-
}
|
|
515
|
-
interface CostTrackingTelemetry {
|
|
516
|
-
captureUsage(args: CostTrackingUsageRecord): Promise<CostTrackingPriceQuote | undefined>;
|
|
517
|
-
forScope(scope: TelemetryScope): CostTrackingTelemetry;
|
|
518
|
-
}
|
|
519
|
-
//#endregion
|
|
520
|
-
//#region ../core/src/contracts/telemetryTypes.d.ts
|
|
521
|
-
type TelemetryAttributePrimitive = string | number | boolean | null;
|
|
522
|
-
interface TelemetryAttributes {
|
|
523
|
-
readonly [key: string]: TelemetryAttributePrimitive | undefined;
|
|
524
|
-
}
|
|
525
|
-
interface TelemetryMetricRecord {
|
|
526
|
-
readonly name: string;
|
|
527
|
-
readonly value: number;
|
|
528
|
-
readonly unit?: string;
|
|
529
|
-
readonly attributes?: TelemetryAttributes;
|
|
530
|
-
}
|
|
531
|
-
interface TelemetrySpanEventRecord {
|
|
532
|
-
readonly name: string;
|
|
533
|
-
readonly occurredAt?: Date;
|
|
534
|
-
readonly attributes?: TelemetryAttributes;
|
|
535
|
-
}
|
|
536
|
-
interface TelemetryArtifactAttachment {
|
|
537
|
-
readonly kind: string;
|
|
538
|
-
readonly contentType: string;
|
|
539
|
-
readonly previewText?: string;
|
|
540
|
-
readonly previewJson?: JsonValue;
|
|
541
|
-
readonly payloadText?: string;
|
|
542
|
-
readonly payloadJson?: JsonValue;
|
|
543
|
-
readonly bytes?: number;
|
|
544
|
-
readonly truncated?: boolean;
|
|
545
|
-
readonly expiresAt?: Date;
|
|
546
|
-
}
|
|
547
|
-
interface TelemetryArtifactReference {
|
|
548
|
-
readonly artifactId: string;
|
|
549
|
-
readonly traceId?: string;
|
|
550
|
-
readonly spanId?: string;
|
|
551
|
-
}
|
|
552
|
-
interface TelemetrySpanEnd {
|
|
553
|
-
readonly status?: "ok" | "error";
|
|
554
|
-
readonly statusMessage?: string;
|
|
555
|
-
readonly endedAt?: Date;
|
|
556
|
-
readonly attributes?: TelemetryAttributes;
|
|
557
|
-
}
|
|
558
|
-
interface TelemetryChildSpanStart {
|
|
559
|
-
readonly name: string;
|
|
560
|
-
readonly kind?: "internal" | "client";
|
|
561
|
-
readonly startedAt?: Date;
|
|
562
|
-
readonly attributes?: TelemetryAttributes;
|
|
563
|
-
}
|
|
564
|
-
interface TelemetryScope {
|
|
565
|
-
readonly traceId?: string;
|
|
566
|
-
readonly spanId?: string;
|
|
567
|
-
readonly costTracking?: CostTrackingTelemetry;
|
|
568
|
-
addSpanEvent(args: TelemetrySpanEventRecord): Promise<void> | void;
|
|
569
|
-
recordMetric(args: TelemetryMetricRecord): Promise<void> | void;
|
|
570
|
-
attachArtifact(args: TelemetryArtifactAttachment): Promise<TelemetryArtifactReference> | TelemetryArtifactReference;
|
|
571
|
-
}
|
|
572
|
-
interface TelemetrySpanScope extends TelemetryScope {
|
|
573
|
-
readonly traceId: string;
|
|
574
|
-
readonly spanId: string;
|
|
575
|
-
end(args?: TelemetrySpanEnd): Promise<void> | void;
|
|
576
|
-
/**
|
|
577
|
-
* Lift this span into a {@link NodeExecutionTelemetry} scoped to a different (nodeId, activationId).
|
|
578
|
-
* Children created via the returned telemetry's `startChildSpan` get this span as their parent.
|
|
579
|
-
*
|
|
580
|
-
* Used at the sub-agent boundary so that nested runtime telemetry parents under the agent.tool.call
|
|
581
|
-
* span instead of the orchestrator's node-level span.
|
|
582
|
-
*/
|
|
583
|
-
asNodeTelemetry(args: Readonly<{
|
|
584
|
-
nodeId: NodeId;
|
|
585
|
-
activationId: NodeActivationId;
|
|
586
|
-
}>): NodeExecutionTelemetry;
|
|
587
|
-
}
|
|
588
|
-
interface NodeExecutionTelemetry extends ExecutionTelemetry, TelemetrySpanScope {
|
|
589
|
-
startChildSpan(args: TelemetryChildSpanStart): TelemetrySpanScope;
|
|
590
|
-
}
|
|
591
|
-
interface ExecutionTelemetry extends TelemetryScope {
|
|
592
|
-
readonly traceId: string;
|
|
593
|
-
readonly spanId: string;
|
|
594
|
-
forNode(args: Readonly<{
|
|
595
|
-
nodeId: NodeId;
|
|
596
|
-
activationId: NodeActivationId;
|
|
597
|
-
}>): NodeExecutionTelemetry;
|
|
598
|
-
}
|
|
599
|
-
//#endregion
|
|
600
|
-
//#region ../core/src/contracts/mcpTypes.d.ts
|
|
601
|
-
type McpServerTransport = "http";
|
|
602
|
-
interface McpServerDeclaration {
|
|
603
|
-
/** Globally unique slug, e.g. "gmail". Workflow authors reference this. */
|
|
604
|
-
id: string;
|
|
605
|
-
displayName: string;
|
|
606
|
-
description: string;
|
|
607
|
-
transport: McpServerTransport;
|
|
608
|
-
url: string;
|
|
609
|
-
/**
|
|
610
|
-
* Credential types accepted by this MCP server, matching CredentialRequirement.acceptedTypes.
|
|
611
|
-
* Absent or empty means no credential is required.
|
|
612
|
-
*/
|
|
613
|
-
acceptedCredentialTypes?: ReadonlyArray<string>;
|
|
614
|
-
/**
|
|
615
|
-
* Documentation only in MVP. The bind-time validator checks
|
|
616
|
-
* requiredScopes ⊆ CredentialInstance.scopesGranted.
|
|
617
|
-
*/
|
|
618
|
-
requiredScopes?: string[];
|
|
619
|
-
/** Non-secret static headers merged onto every MCP request. */
|
|
620
|
-
staticHeaders?: Record<string, string>;
|
|
621
|
-
/**
|
|
622
|
-
* Overrides for tool descriptions advertised by the MCP server.
|
|
623
|
-
* Applied by the connection pool after tools/list.
|
|
624
|
-
* Key: exact tool name as returned by the server.
|
|
625
|
-
*/
|
|
626
|
-
toolDescriptionOverrides?: Record<string, string>;
|
|
627
|
-
}
|
|
628
|
-
//#endregion
|
|
629
|
-
//#region ../core/src/contracts/collectionTypes.d.ts
|
|
766
|
+
//#region ../core/src/contracts/runtimeTypes.d.ts
|
|
767
|
+
/** Opaque unique identifier for a single HumanTask instance. */
|
|
768
|
+
type HumanTaskId = string;
|
|
630
769
|
/**
|
|
631
|
-
*
|
|
632
|
-
*
|
|
770
|
+
* Minimal handle handed to the `deliver` callback so it can route to the correct
|
|
771
|
+
* inbox channel.
|
|
633
772
|
*/
|
|
634
|
-
interface
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
updated_at: Date;
|
|
642
|
-
}>;
|
|
643
|
-
/**
|
|
644
|
-
* Get a single row by id.
|
|
645
|
-
*/
|
|
646
|
-
get(id: string): Promise<(TRow & {
|
|
647
|
-
id: string;
|
|
648
|
-
created_at: Date;
|
|
649
|
-
updated_at: Date;
|
|
650
|
-
}) | null>;
|
|
651
|
-
/**
|
|
652
|
-
* Find a single row matching the provided filter.
|
|
653
|
-
*/
|
|
654
|
-
findOne(filter: Partial<TRow>): Promise<(TRow & {
|
|
655
|
-
id: string;
|
|
656
|
-
created_at: Date;
|
|
657
|
-
updated_at: Date;
|
|
658
|
-
}) | null>;
|
|
659
|
-
/**
|
|
660
|
-
* List rows with optional pagination and filtering.
|
|
661
|
-
*/
|
|
662
|
-
list(opts?: {
|
|
663
|
-
limit?: number;
|
|
664
|
-
offset?: number;
|
|
665
|
-
where?: Partial<TRow>;
|
|
666
|
-
}): Promise<{
|
|
667
|
-
rows: ReadonlyArray<TRow & {
|
|
668
|
-
id: string;
|
|
669
|
-
created_at: Date;
|
|
670
|
-
updated_at: Date;
|
|
671
|
-
}>;
|
|
672
|
-
total: number;
|
|
673
|
-
}>;
|
|
773
|
+
interface HumanTaskHandle {
|
|
774
|
+
readonly taskId: HumanTaskId;
|
|
775
|
+
readonly runId: string;
|
|
776
|
+
readonly nodeId: string;
|
|
777
|
+
readonly expiresAt: Date;
|
|
778
|
+
/** TODO: real signed URL; placeholder empty string for now. */
|
|
779
|
+
readonly resumeUrl: string;
|
|
674
780
|
/**
|
|
675
|
-
*
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
id: string;
|
|
679
|
-
created_at: Date;
|
|
680
|
-
updated_at: Date;
|
|
681
|
-
}>;
|
|
682
|
-
/**
|
|
683
|
-
* Delete a row by id. Hard delete only (no soft delete).
|
|
781
|
+
* Arbitrary JSON metadata copied from `SuspensionRequest.request.metadata` at suspension time.
|
|
782
|
+
* Used by the agent runtime to round-trip the `agentCheckpoint` back to the
|
|
783
|
+
* resumed node via `ctx.resumeContext.task.metadata`.
|
|
684
784
|
*/
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
785
|
+
readonly metadata?: Readonly<Record<string, JsonValue>>;
|
|
786
|
+
}
|
|
787
|
+
/** Identity of the person who made a decision on the task. */
|
|
788
|
+
interface HumanTaskActor {
|
|
789
|
+
readonly actorId: string;
|
|
790
|
+
readonly displayName?: string;
|
|
688
791
|
}
|
|
689
792
|
/**
|
|
690
|
-
*
|
|
793
|
+
* Resume context injected into `NodeExecutionContext` when the engine re-activates
|
|
794
|
+
* a previously suspended node. `defineHumanApprovalNode` wraps this with parsed
|
|
795
|
+
* `TDecision`; at the engine layer `decision.value` is `unknown`.
|
|
691
796
|
*/
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
797
|
+
interface ResumeContext {
|
|
798
|
+
readonly decision: Readonly<{
|
|
799
|
+
kind: "decided";
|
|
800
|
+
value: unknown;
|
|
801
|
+
actor: HumanTaskActor;
|
|
802
|
+
decidedAt: Date;
|
|
803
|
+
}> | Readonly<{
|
|
804
|
+
kind: "timed_out";
|
|
805
|
+
at: Date;
|
|
806
|
+
}> | Readonly<{
|
|
807
|
+
kind: "auto_accepted";
|
|
808
|
+
at: Date;
|
|
809
|
+
}>;
|
|
810
|
+
readonly delivery: JsonValue;
|
|
811
|
+
readonly task: HumanTaskHandle;
|
|
700
812
|
}
|
|
701
|
-
//#endregion
|
|
702
|
-
//#region ../core/src/contracts/runtimeTypes.d.ts
|
|
703
813
|
interface NodeExecutionStatePublisher {
|
|
704
814
|
markQueued(args: {
|
|
705
815
|
nodeId: NodeId;
|
|
@@ -788,6 +898,14 @@ interface ExecutionContext {
|
|
|
788
898
|
* Collections registered in the codemation config, keyed by collection name.
|
|
789
899
|
*/
|
|
790
900
|
readonly collections?: CollectionsContext;
|
|
901
|
+
/**
|
|
902
|
+
* Resolve a DI token from the host container.
|
|
903
|
+
* Allows nodes to reach host-side services (e.g. `InboxChannelResolverToken`)
|
|
904
|
+
* without importing host code. Wired by `DefaultExecutionContextFactory`; throws
|
|
905
|
+
* a clear error when no resolver is configured (e.g. in unit tests that don't
|
|
906
|
+
* set up the full container).
|
|
907
|
+
*/
|
|
908
|
+
resolve<T>(token: TypeToken<T>): T;
|
|
791
909
|
}
|
|
792
910
|
interface NodeExecutionContext<TConfig$1 extends NodeConfigBase = NodeConfigBase> extends ExecutionContext {
|
|
793
911
|
nodeId: NodeId;
|
|
@@ -795,57 +913,11 @@ interface NodeExecutionContext<TConfig$1 extends NodeConfigBase = NodeConfigBase
|
|
|
795
913
|
config: TConfig$1;
|
|
796
914
|
telemetry: NodeExecutionTelemetry;
|
|
797
915
|
binary: NodeBinaryAttachmentService;
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
runId: RunId;
|
|
804
|
-
workflowId: WorkflowId;
|
|
805
|
-
nodeId: NodeId;
|
|
806
|
-
activationId: NodeActivationId;
|
|
807
|
-
data: RunDataSnapshot;
|
|
808
|
-
}>;
|
|
809
|
-
/**
|
|
810
|
-
* Context aligned with former {@link ItemInputMapperContext} — use **`data`** to read any completed upstream node.
|
|
811
|
-
*/
|
|
812
|
-
type ItemExprContext = ItemExprResolvedContext;
|
|
813
|
-
type ItemExprArgs<TItemJson = unknown> = Readonly<{
|
|
814
|
-
item: Item<TItemJson>;
|
|
815
|
-
itemIndex: number;
|
|
816
|
-
items: Items<TItemJson>;
|
|
817
|
-
ctx: ItemExprContext;
|
|
818
|
-
}>;
|
|
819
|
-
type ItemExprCallback<T, TItemJson = unknown> = (args: ItemExprArgs<TItemJson>) => T | Promise<T>;
|
|
820
|
-
type ItemExpr<T, TItemJson = unknown> = Readonly<{
|
|
821
|
-
readonly [ITEM_EXPR_BRAND]: true;
|
|
822
|
-
readonly fn: ItemExprCallback<T, TItemJson>;
|
|
823
|
-
}>;
|
|
824
|
-
//#endregion
|
|
825
|
-
//#region ../core/src/contracts/params.d.ts
|
|
826
|
-
type Expr<T, TItemJson = unknown> = ItemExpr<T, TItemJson>;
|
|
827
|
-
type ParamDeep<T, TItemJson = unknown> = Expr<T, TItemJson> | (T extends readonly (infer U)[] ? ReadonlyArray<ParamDeep<U, TItemJson>> : never) | (T extends object ? { [K in keyof T]: ParamDeep<T[K], TItemJson> } : T);
|
|
828
|
-
//#endregion
|
|
829
|
-
//#region ../core/src/authoring/defineNode.types.d.ts
|
|
830
|
-
type ResolvableCredentialType = AnyCredentialType | CredentialTypeId;
|
|
831
|
-
type DefinedNodeCredentialBinding = ResolvableCredentialType | Readonly<{
|
|
832
|
-
readonly type: ResolvableCredentialType | ReadonlyArray<ResolvableCredentialType>;
|
|
833
|
-
readonly label?: string;
|
|
834
|
-
readonly optional?: true;
|
|
835
|
-
readonly helpText?: string;
|
|
836
|
-
readonly helpUrl?: string;
|
|
837
|
-
}>;
|
|
838
|
-
type DefinedNodeCredentialBindings = Readonly<Record<string, DefinedNodeCredentialBinding>>;
|
|
839
|
-
type DefinedNodeConfigInput<TConfigResolved extends CredentialJsonRecord, TItemJson> = ParamDeep<TConfigResolved, TItemJson>;
|
|
840
|
-
interface DefinedNode<TKey$1 extends string, TConfig$1 extends CredentialJsonRecord, TInputJson$1, TOutputJson$1, _TBindings extends DefinedNodeCredentialBindings | undefined = undefined> {
|
|
841
|
-
readonly kind: "defined-node";
|
|
842
|
-
readonly key: TKey$1;
|
|
843
|
-
readonly title: string;
|
|
844
|
-
readonly description?: string;
|
|
845
|
-
create<TConfigItemJson = TInputJson$1>(config: DefinedNodeConfigInput<TConfig$1, TConfigItemJson>, name?: string, id?: string): RunnableNodeConfig<TInputJson$1, TOutputJson$1>;
|
|
846
|
-
register(context: {
|
|
847
|
-
registerNode<TValue>(token: TypeToken<TValue>, implementation?: TypeToken<TValue>): void;
|
|
848
|
-
}): void;
|
|
916
|
+
/**
|
|
917
|
+
* Present when this node activation is a HITL resume.
|
|
918
|
+
* The node checks `ctx.resumeContext !== undefined` and takes the resume branch.
|
|
919
|
+
*/
|
|
920
|
+
resumeContext?: ResumeContext;
|
|
849
921
|
}
|
|
850
922
|
//#endregion
|
|
851
923
|
//#region ../core/src/authoring/defineCollection.types.d.ts
|
|
@@ -872,5 +944,5 @@ interface DefinedCollection<TDefinition extends CollectionDefinition = Collectio
|
|
|
872
944
|
}): void;
|
|
873
945
|
}
|
|
874
946
|
//#endregion
|
|
875
|
-
export { TypeToken as a,
|
|
876
|
-
//# sourceMappingURL=index-
|
|
947
|
+
export { TypeToken as a, McpServerDeclaration as c, CredentialAuthDefinition as d, CredentialFieldSchema as f, CredentialTypeId as g, CredentialSessionFactory as h, Container as i, AnyCredentialType as l, CredentialMaterialSourceKind as m, DefinedCollection as n, EngineExecutionLimitsPolicyConfig as o, CredentialHealthTester as p, WorkflowDefinition as r, DefinedNode as s, CollectionDefinition as t, CredentialAdvancedSectionPresentation as u };
|
|
948
|
+
//# sourceMappingURL=index-rc7dB1Ws.d.ts.map
|