@ironflow/browser 0.19.2 → 0.20.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/README.md +108 -6
- package/dist/agents/index.d.ts +34 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +24 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/invoke.d.ts +16 -0
- package/dist/agents/invoke.d.ts.map +1 -0
- package/dist/agents/invoke.js +222 -0
- package/dist/agents/invoke.js.map +1 -0
- package/dist/agents/readMemory.d.ts +18 -0
- package/dist/agents/readMemory.d.ts.map +1 -0
- package/dist/agents/readMemory.js +87 -0
- package/dist/agents/readMemory.js.map +1 -0
- package/dist/agents/subscribe.d.ts +23 -0
- package/dist/agents/subscribe.d.ts.map +1 -0
- package/dist/agents/subscribe.js +117 -0
- package/dist/agents/subscribe.js.map +1 -0
- package/dist/agents/types.d.ts +156 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +7 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/client.d.ts +22 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +37 -14
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/subscription.d.ts +6 -0
- package/dist/subscription.d.ts.map +1 -1
- package/dist/subscription.js +8 -0
- package/dist/subscription.js.map +1 -1
- package/package.json +8 -8
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ironflow.agents.subscribe()` — typed wrapper over `client.subscribe()`
|
|
3
|
+
* for an agent run's event stream.
|
|
4
|
+
*
|
|
5
|
+
* Spec: see ./spec.md
|
|
6
|
+
*/
|
|
7
|
+
import { ValidationError, } from "@ironflow/core";
|
|
8
|
+
const MAX_RUN_ID_LENGTH = 128;
|
|
9
|
+
// Permits server-issued runIds (e.g., `run_<uuid>`, `run-2025-...`) but
|
|
10
|
+
// rejects NATS subject metacharacters that would widen the subscribe to
|
|
11
|
+
// other runs (`*`, `>`, `.`) or break the topic shape.
|
|
12
|
+
const RUN_ID_PATTERN = /^[A-Za-z0-9_-]+$/;
|
|
13
|
+
function validateRunId(runId) {
|
|
14
|
+
if (typeof runId !== "string" || runId.length === 0) {
|
|
15
|
+
throw new ValidationError("agents.subscribe: runId must be a non-empty string");
|
|
16
|
+
}
|
|
17
|
+
if (runId.length > MAX_RUN_ID_LENGTH) {
|
|
18
|
+
throw new ValidationError(`agents.subscribe: runId exceeds ${MAX_RUN_ID_LENGTH} chars`);
|
|
19
|
+
}
|
|
20
|
+
if (!RUN_ID_PATTERN.test(runId)) {
|
|
21
|
+
throw new ValidationError("agents.subscribe: runId may only contain [A-Za-z0-9_-] (no NATS metacharacters)");
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Promise-returning wrapper. Returns a Subscription whose `unsubscribe()`
|
|
26
|
+
* is idempotent.
|
|
27
|
+
*
|
|
28
|
+
* Topic dispatch:
|
|
29
|
+
* system.run.{runId}.completed → onComplete
|
|
30
|
+
* system.run.{runId}.failed → onFailed
|
|
31
|
+
* system.run.{runId}.cancelled → onCancelled
|
|
32
|
+
* system.run.{runId}.{created|updated|resumed} → onProgress
|
|
33
|
+
* system.run.{runId}.step.{stepId}.{type} → onStep
|
|
34
|
+
*/
|
|
35
|
+
export async function subscribe(client, runId, callbacks, opts = {}) {
|
|
36
|
+
validateRunId(runId);
|
|
37
|
+
const sub = await client.subscribe(`system.run.${runId}.>`, {
|
|
38
|
+
// Default replay 1000 covers events emitted between `agents.invoke`
|
|
39
|
+
// returning a runId via `onRunStarted` and this subscribe attaching.
|
|
40
|
+
replay: opts.replay ?? 1000,
|
|
41
|
+
onEvent: (event) => dispatch(event, runId, callbacks),
|
|
42
|
+
onError: callbacks.onError,
|
|
43
|
+
});
|
|
44
|
+
// Wrap the underlying unsubscribe to make it idempotent.
|
|
45
|
+
let unsubscribed = false;
|
|
46
|
+
const wrapped = {
|
|
47
|
+
id: sub.id ?? "",
|
|
48
|
+
pattern: sub.pattern ?? `system.run.${runId}.>`,
|
|
49
|
+
connectionState: sub.connectionState ?? "connected",
|
|
50
|
+
unsubscribe() {
|
|
51
|
+
if (unsubscribed)
|
|
52
|
+
return;
|
|
53
|
+
unsubscribed = true;
|
|
54
|
+
try {
|
|
55
|
+
sub.unsubscribe();
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
/* swallow — idempotent */
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
return wrapped;
|
|
63
|
+
}
|
|
64
|
+
function dispatch(event, runId, callbacks) {
|
|
65
|
+
const topic = event.topic;
|
|
66
|
+
const stepPrefix = `system.run.${runId}.step.`;
|
|
67
|
+
if (topic.startsWith(stepPrefix)) {
|
|
68
|
+
if (!callbacks.onStep)
|
|
69
|
+
return;
|
|
70
|
+
const remainder = topic.slice(stepPrefix.length); // "{stepId}.{type}"
|
|
71
|
+
const dotIdx = remainder.indexOf(".");
|
|
72
|
+
const stepId = dotIdx === -1 ? remainder : remainder.slice(0, dotIdx);
|
|
73
|
+
const type = dotIdx === -1 ? "" : remainder.slice(dotIdx + 1);
|
|
74
|
+
const stepEvent = {
|
|
75
|
+
topic,
|
|
76
|
+
stepId,
|
|
77
|
+
type,
|
|
78
|
+
data: event.data,
|
|
79
|
+
};
|
|
80
|
+
callbacks.onStep(stepEvent);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (topic.endsWith(".completed")) {
|
|
84
|
+
callbacks.onComplete?.({ output: event.data?.output });
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (topic.endsWith(".failed")) {
|
|
88
|
+
const err = event.data?.error;
|
|
89
|
+
if (typeof err === "string") {
|
|
90
|
+
callbacks.onFailed?.({ message: err });
|
|
91
|
+
}
|
|
92
|
+
else if (err && typeof err === "object") {
|
|
93
|
+
callbacks.onFailed?.({
|
|
94
|
+
message: err.message ?? "Run failed",
|
|
95
|
+
code: err.code,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
callbacks.onFailed?.({ message: "Run failed" });
|
|
100
|
+
}
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
if (topic.endsWith(".cancelled")) {
|
|
104
|
+
callbacks.onCancelled?.();
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
// Non-terminal: created / updated / resumed.
|
|
108
|
+
if (callbacks.onProgress) {
|
|
109
|
+
const progressEvent = {
|
|
110
|
+
topic,
|
|
111
|
+
status: event.data?.status,
|
|
112
|
+
data: event.data,
|
|
113
|
+
};
|
|
114
|
+
callbacks.onProgress(progressEvent);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=subscribe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../src/agents/subscribe.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public types for `ironflow.agents.{invoke, subscribe, readMemory}`.
|
|
3
|
+
*
|
|
4
|
+
* Spec: see ./spec.md
|
|
5
|
+
*/
|
|
6
|
+
import type { InvokeResult, ProjectionStateResult, Run, Subscription, SubscriptionCallbacks, SubscriptionErrorInfo, WaitResult } from "@ironflow/core";
|
|
7
|
+
/**
|
|
8
|
+
* Options for `ironflow.agents.invoke()`.
|
|
9
|
+
*/
|
|
10
|
+
export interface AgentInvokeOptions {
|
|
11
|
+
/**
|
|
12
|
+
* Local timeout in milliseconds. When elapsed, throws
|
|
13
|
+
* `AgentInvokeTimeoutError` and best-effort calls
|
|
14
|
+
* `cancelRun(runId)` server-side. Default: 30000.
|
|
15
|
+
*/
|
|
16
|
+
timeoutMs?: number;
|
|
17
|
+
/**
|
|
18
|
+
* Caller cancellation. When the signal aborts, throws an `AbortError`
|
|
19
|
+
* (DOMException) and best-effort calls `cancelRun(runId)`.
|
|
20
|
+
*/
|
|
21
|
+
signal?: AbortSignal;
|
|
22
|
+
/**
|
|
23
|
+
* Server-side dedup. Same key → same `runId` returned across retries.
|
|
24
|
+
* Wires to existing event-idempotency path.
|
|
25
|
+
*/
|
|
26
|
+
idempotencyKey?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Number of historical events to replay on subscribe. Default: 100.
|
|
29
|
+
* Replay covers the race window between Trigger return and subscribe attach.
|
|
30
|
+
*/
|
|
31
|
+
replay?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Called once with the runId as soon as `Trigger` returns and before
|
|
34
|
+
* the wait begins. Lets callers attach a separate progress subscription
|
|
35
|
+
* (e.g., `agents.subscribe(runId)`) without waiting for the terminal
|
|
36
|
+
* event. May return a Promise; the SDK awaits it so any async setup
|
|
37
|
+
* (subscription attach) completes before terminal events dispatch.
|
|
38
|
+
*/
|
|
39
|
+
onRunStarted?: (runId: string) => void | Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Result returned from a successful `ironflow.agents.invoke()`.
|
|
43
|
+
*/
|
|
44
|
+
export interface AgentInvokeResult<TOutput = unknown> {
|
|
45
|
+
runId: string;
|
|
46
|
+
output: TOutput | undefined;
|
|
47
|
+
durationMs: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Callbacks for `ironflow.agents.subscribe()`.
|
|
51
|
+
*/
|
|
52
|
+
export interface AgentSubscribeCallbacks {
|
|
53
|
+
/** Non-terminal run lifecycle events (created, updated, resumed). */
|
|
54
|
+
onProgress?: (event: AgentProgressEvent) => void;
|
|
55
|
+
/** Step lifecycle events (created, completed, etc.). */
|
|
56
|
+
onStep?: (event: AgentStepEvent) => void;
|
|
57
|
+
/** Terminal `run.completed`. */
|
|
58
|
+
onComplete?: (result: {
|
|
59
|
+
output: unknown;
|
|
60
|
+
}) => void;
|
|
61
|
+
/** Terminal `run.failed`. */
|
|
62
|
+
onFailed?: (error: {
|
|
63
|
+
message: string;
|
|
64
|
+
code?: string;
|
|
65
|
+
}) => void;
|
|
66
|
+
/** Terminal `run.cancelled`. */
|
|
67
|
+
onCancelled?: () => void;
|
|
68
|
+
/** Transport / parse error. */
|
|
69
|
+
onError?: (err: SubscriptionErrorInfo) => void;
|
|
70
|
+
}
|
|
71
|
+
export interface AgentProgressEvent {
|
|
72
|
+
topic: string;
|
|
73
|
+
status?: string;
|
|
74
|
+
data?: unknown;
|
|
75
|
+
}
|
|
76
|
+
export interface AgentStepEvent {
|
|
77
|
+
topic: string;
|
|
78
|
+
stepId: string;
|
|
79
|
+
type: string;
|
|
80
|
+
data?: unknown;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Options for `ironflow.agents.readMemory()`.
|
|
84
|
+
*/
|
|
85
|
+
export interface AgentReadMemoryOptions {
|
|
86
|
+
/**
|
|
87
|
+
* Sequence number returned by an earlier `streams.append`. When set,
|
|
88
|
+
* `readMemory` calls `waitForProjectionCatchup` before reading state
|
|
89
|
+
* so the result reflects events up to and including `minSeq`
|
|
90
|
+
* (read-your-writes).
|
|
91
|
+
*
|
|
92
|
+
* If `minSeq` exceeds the projection's eventual `last_event_seq`, the
|
|
93
|
+
* catchup blocks until `timeoutMs` and throws
|
|
94
|
+
* `MemoryCatchupTimeoutError`.
|
|
95
|
+
*/
|
|
96
|
+
minSeq?: number | bigint;
|
|
97
|
+
/**
|
|
98
|
+
* Catchup timeout in milliseconds. Default 30000. Ignored when
|
|
99
|
+
* `minSeq` is not provided.
|
|
100
|
+
*/
|
|
101
|
+
timeoutMs?: number;
|
|
102
|
+
/**
|
|
103
|
+
* Caller cancellation. Throws an `AbortError` (DOMException) if the
|
|
104
|
+
* signal aborts before the call completes.
|
|
105
|
+
*/
|
|
106
|
+
signal?: AbortSignal;
|
|
107
|
+
/**
|
|
108
|
+
* Partition key for partitioned projections. Passed through to both
|
|
109
|
+
* the catchup wait and the state read.
|
|
110
|
+
*/
|
|
111
|
+
partition?: string;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Result returned from a successful `ironflow.agents.readMemory()`.
|
|
115
|
+
*/
|
|
116
|
+
export interface AgentMemoryResult<TState = unknown> {
|
|
117
|
+
/** Materialized projection state. */
|
|
118
|
+
state: TState;
|
|
119
|
+
/** Projection version. */
|
|
120
|
+
version: number;
|
|
121
|
+
/** Last event id applied to the state, if any. */
|
|
122
|
+
lastEventId?: string;
|
|
123
|
+
/**
|
|
124
|
+
* `true` when `minSeq` was honored or skipped (no `minSeq` provided).
|
|
125
|
+
* Always `true` on a successful return — the catchup throws on timeout.
|
|
126
|
+
*/
|
|
127
|
+
caughtUp: boolean;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Minimum surface that `ironflow.agents.{invoke, subscribe, readMemory}`
|
|
131
|
+
* need from the client. Defining it as an interface lets the helpers be
|
|
132
|
+
* unit-tested with a mock client and keeps the public client surface
|
|
133
|
+
* tight.
|
|
134
|
+
*/
|
|
135
|
+
export interface AgentClientLike {
|
|
136
|
+
invoke<T = unknown>(functionId: string, options: {
|
|
137
|
+
data: T;
|
|
138
|
+
idempotencyKey?: string;
|
|
139
|
+
}): Promise<InvokeResult>;
|
|
140
|
+
subscribe<T = unknown>(pattern: string | string[], callbacks: SubscriptionCallbacks<T> & {
|
|
141
|
+
replay?: number;
|
|
142
|
+
includeMetadata?: boolean;
|
|
143
|
+
}): Promise<Subscription | {
|
|
144
|
+
unsubscribe(): void;
|
|
145
|
+
}>;
|
|
146
|
+
cancelRun(runId: string, reason?: string): Promise<Run>;
|
|
147
|
+
getProjection<TState = unknown>(name: string, options?: {
|
|
148
|
+
partition?: string;
|
|
149
|
+
}): Promise<ProjectionStateResult<TState>>;
|
|
150
|
+
waitForProjectionCatchup(name: string, opts: {
|
|
151
|
+
minSeq: number | bigint;
|
|
152
|
+
timeoutMs?: number;
|
|
153
|
+
partition?: string;
|
|
154
|
+
}): Promise<WaitResult>;
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
package/dist/client.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ import type { IronflowConfig, IronflowConfigOptions } from "./config.js";
|
|
|
9
9
|
import { type BrowserSubscribeOptions, type SubscriptionGroup } from "./subscription.js";
|
|
10
10
|
import { BrowserKVClient } from "./kv.js";
|
|
11
11
|
import { BrowserConfigClient } from "./config-client.js";
|
|
12
|
+
import { type AgentsNamespace } from "./agents/index.js";
|
|
12
13
|
/**
|
|
13
14
|
* Ironflow browser client singleton
|
|
14
15
|
*/
|
|
@@ -18,6 +19,21 @@ declare class IronflowClient {
|
|
|
18
19
|
private transport;
|
|
19
20
|
private subscriptionManager;
|
|
20
21
|
private visibilityHandler;
|
|
22
|
+
/**
|
|
23
|
+
* `agents` namespace — browser helpers for `agent()` functions.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const result = await ironflow.agents.invoke("my-agent", { task: "..." });
|
|
28
|
+
* console.log(result.runId, result.output);
|
|
29
|
+
*
|
|
30
|
+
* const sub = await ironflow.agents.subscribe(runId, {
|
|
31
|
+
* onStep: (e) => console.log("step", e.stepId, e.type),
|
|
32
|
+
* onComplete: (r) => console.log("done", r.output),
|
|
33
|
+
* });
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
readonly agents: AgentsNamespace;
|
|
21
37
|
/**
|
|
22
38
|
* Configure the client
|
|
23
39
|
*
|
|
@@ -103,6 +119,11 @@ declare class IronflowClient {
|
|
|
103
119
|
* Register a global error handler
|
|
104
120
|
*/
|
|
105
121
|
onError(callback: (error: SubscriptionErrorInfo) => void): () => void;
|
|
122
|
+
/**
|
|
123
|
+
* Number of currently active subscriptions. Useful for leak audits and
|
|
124
|
+
* diagnostics. Returns 0 if the client is not configured.
|
|
125
|
+
*/
|
|
126
|
+
getActiveSubscriptionCount(): number;
|
|
106
127
|
/**
|
|
107
128
|
* Invoke a workflow function by ID
|
|
108
129
|
*
|
|
@@ -115,6 +136,7 @@ declare class IronflowClient {
|
|
|
115
136
|
*/
|
|
116
137
|
invoke<TInput = unknown>(functionId: string, options: {
|
|
117
138
|
data: TInput;
|
|
139
|
+
idempotencyKey?: string;
|
|
118
140
|
}): Promise<InvokeResult>;
|
|
119
141
|
/**
|
|
120
142
|
* Get run status
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAEV,GAAG,EAEH,eAAe,EACf,cAAc,EACd,YAAY,EACZ,WAAW,EACX,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,UAAU,EACV,YAAY,EACZ,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,+BAA+B,EAC/B,0BAA0B,EAC1B,uBAAuB,EACvB,4BAA4B,EAC5B,MAAM,EACN,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,IAAI,EACJ,eAAe,EACf,eAAe,EACf,MAAM,EACN,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,wBAAwB,EACxB,eAAe,EACf,4BAA4B,EAE5B,gBAAgB,EAChB,oBAAoB,EACpB,IAAI,EACJ,eAAe,EACf,eAAe,EACf,MAAM,EACP,MAAM,gBAAgB,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Singleton client for browser-based real-time interactions with Ironflow.
|
|
5
5
|
*/
|
|
6
|
-
import { NotConfiguredError, IronflowError, RunFailedError, RunCancelledError, UnauthenticatedError, EnterpriseRequiredError, UnauthorizedError, ValidationError, createLogger, createNoopLogger, DEFAULT_TIMEOUTS, HEADERS, TriggerResponseSchema, TriggerSyncResponseSchema, RunResponseSchema, ListRunsResponseSchema, RunStatusSchema, ErrorResponseSchema, safeJsonParse, patterns, } from "@ironflow/core";
|
|
6
|
+
import { NotConfiguredError, IronflowError, RunFailedError, RunCancelledError, UnauthenticatedError, EnterpriseRequiredError, UnauthorizedError, ValidationError, createLogger, createNoopLogger, DEFAULT_TIMEOUTS, HEADERS, TriggerResponseSchema, TriggerSyncResponseSchema, RunResponseSchema, ListRunsResponseSchema, RunStatusSchema, ErrorResponseSchema, safeJsonParse, patterns, peelProjectionEnvelope, } from "@ironflow/core";
|
|
7
7
|
import { mergeConfig } from "./config.js";
|
|
8
8
|
import { SubscriptionManager, } from "./subscription.js";
|
|
9
9
|
import { createWebSocketTransport } from "./transport/websocket.js";
|
|
@@ -11,6 +11,7 @@ import { createConnectRPCTransport } from "./transport/connectrpc.js";
|
|
|
11
11
|
import { filterWaitStreamFrames } from "./projection-stream.js";
|
|
12
12
|
import { BrowserKVClient } from "./kv.js";
|
|
13
13
|
import { BrowserConfigClient } from "./config-client.js";
|
|
14
|
+
import { createAgentsNamespace } from "./agents/index.js";
|
|
14
15
|
/**
|
|
15
16
|
* Ironflow browser client singleton
|
|
16
17
|
*/
|
|
@@ -20,6 +21,27 @@ class IronflowClient {
|
|
|
20
21
|
transport = null;
|
|
21
22
|
subscriptionManager = null;
|
|
22
23
|
visibilityHandler = null;
|
|
24
|
+
/**
|
|
25
|
+
* `agents` namespace — browser helpers for `agent()` functions.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const result = await ironflow.agents.invoke("my-agent", { task: "..." });
|
|
30
|
+
* console.log(result.runId, result.output);
|
|
31
|
+
*
|
|
32
|
+
* const sub = await ironflow.agents.subscribe(runId, {
|
|
33
|
+
* onStep: (e) => console.log("step", e.stepId, e.type),
|
|
34
|
+
* onComplete: (r) => console.log("done", r.output),
|
|
35
|
+
* });
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
agents = createAgentsNamespace({
|
|
39
|
+
invoke: (functionId, options) => this.invoke(functionId, options),
|
|
40
|
+
subscribe: (pattern, cbs) => this.subscribe(pattern, cbs),
|
|
41
|
+
cancelRun: (runId, reason) => this.cancelRun(runId, reason),
|
|
42
|
+
getProjection: (name, options) => this.getProjection(name, options),
|
|
43
|
+
waitForProjectionCatchup: (name, opts) => this.waitForProjectionCatchup(name, opts),
|
|
44
|
+
});
|
|
23
45
|
/**
|
|
24
46
|
* Configure the client
|
|
25
47
|
*
|
|
@@ -214,6 +236,13 @@ class IronflowClient {
|
|
|
214
236
|
this.ensureConfigured();
|
|
215
237
|
return this.subscriptionManager.onError(callback);
|
|
216
238
|
}
|
|
239
|
+
/**
|
|
240
|
+
* Number of currently active subscriptions. Useful for leak audits and
|
|
241
|
+
* diagnostics. Returns 0 if the client is not configured.
|
|
242
|
+
*/
|
|
243
|
+
getActiveSubscriptionCount() {
|
|
244
|
+
return this.subscriptionManager?.activeSubscriptionCount ?? 0;
|
|
245
|
+
}
|
|
217
246
|
// ============================================================================
|
|
218
247
|
// Workflow Operations
|
|
219
248
|
// ============================================================================
|
|
@@ -232,6 +261,7 @@ class IronflowClient {
|
|
|
232
261
|
const response = await this.request(TriggerResponseSchema, "POST", "/ironflow.v1.IronflowService/Trigger", {
|
|
233
262
|
event: functionId,
|
|
234
263
|
data: options.data,
|
|
264
|
+
idempotency_key: options.idempotencyKey,
|
|
235
265
|
});
|
|
236
266
|
return {
|
|
237
267
|
runIds: response.runIds ?? [],
|
|
@@ -1001,9 +1031,12 @@ class IronflowClient {
|
|
|
1001
1031
|
*/
|
|
1002
1032
|
async getProjection(name, options) {
|
|
1003
1033
|
this.ensureConfigured();
|
|
1034
|
+
// Normalize empty-string partition to undefined so peel falls back to
|
|
1035
|
+
// "__global__" instead of returning empty-string partition.
|
|
1036
|
+
const partition = options?.partition ? options.partition : undefined;
|
|
1004
1037
|
let url = `${this.config.serverUrl}/api/v1/projections/${encodeURIComponent(name)}`;
|
|
1005
|
-
if (
|
|
1006
|
-
url += `?partition=${encodeURIComponent(
|
|
1038
|
+
if (partition) {
|
|
1039
|
+
url += `?partition=${encodeURIComponent(partition)}`;
|
|
1007
1040
|
}
|
|
1008
1041
|
const timeout = this.config.timeout ?? DEFAULT_TIMEOUTS.CLIENT;
|
|
1009
1042
|
const controller = new AbortController();
|
|
@@ -1025,17 +1058,7 @@ class IronflowClient {
|
|
|
1025
1058
|
throw new IronflowError(error?.message || `Get projection failed: ${response.status}`, { code: error?.code || "GET_PROJECTION_FAILED" });
|
|
1026
1059
|
}
|
|
1027
1060
|
const data = await response.json();
|
|
1028
|
-
return
|
|
1029
|
-
name: data.name,
|
|
1030
|
-
partition: data.state?.partition_key ?? "__global__",
|
|
1031
|
-
state: data.state?.state ?? {},
|
|
1032
|
-
lastEventId: data.state?.last_event_id ?? "",
|
|
1033
|
-
lastEventTime: data.state?.last_event_time
|
|
1034
|
-
? new Date(data.state.last_event_time)
|
|
1035
|
-
: new Date(0),
|
|
1036
|
-
version: data.state?.version ?? 0,
|
|
1037
|
-
mode: data.mode,
|
|
1038
|
-
};
|
|
1061
|
+
return peelProjectionEnvelope(data, partition);
|
|
1039
1062
|
}
|
|
1040
1063
|
finally {
|
|
1041
1064
|
clearTimeout(timeoutId);
|