@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.
@@ -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,7 @@
1
+ /**
2
+ * Public types for `ironflow.agents.{invoke, subscribe, readMemory}`.
3
+ *
4
+ * Spec: see ./spec.md
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
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 (options?.partition) {
1006
- url += `?partition=${encodeURIComponent(options.partition)}`;
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);