@ironflow/browser 0.20.2 → 0.22.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.
Files changed (66) hide show
  1. package/README.md +1 -1
  2. package/dist/agents/index.d.ts +34 -0
  3. package/dist/agents/index.d.ts.map +1 -0
  4. package/dist/agents/index.js +24 -0
  5. package/dist/agents/index.js.map +1 -0
  6. package/dist/agents/invoke.d.ts +16 -0
  7. package/dist/agents/invoke.d.ts.map +1 -0
  8. package/dist/agents/invoke.js +222 -0
  9. package/dist/agents/invoke.js.map +1 -0
  10. package/dist/agents/readMemory.d.ts +18 -0
  11. package/dist/agents/readMemory.d.ts.map +1 -0
  12. package/dist/agents/readMemory.js +87 -0
  13. package/dist/agents/readMemory.js.map +1 -0
  14. package/dist/agents/subscribe.d.ts +23 -0
  15. package/dist/agents/subscribe.d.ts.map +1 -0
  16. package/dist/agents/subscribe.js +117 -0
  17. package/dist/agents/subscribe.js.map +1 -0
  18. package/dist/agents/types.d.ts +156 -0
  19. package/dist/agents/types.d.ts.map +1 -0
  20. package/dist/agents/types.js +7 -0
  21. package/dist/agents/types.js.map +1 -0
  22. package/dist/client.d.ts +844 -0
  23. package/dist/client.d.ts.map +1 -0
  24. package/dist/client.js +2243 -0
  25. package/dist/client.js.map +1 -0
  26. package/dist/config-client.d.ts +43 -0
  27. package/dist/config-client.d.ts.map +1 -0
  28. package/dist/config-client.js +134 -0
  29. package/dist/config-client.js.map +1 -0
  30. package/dist/config.d.ts +91 -0
  31. package/dist/config.d.ts.map +1 -0
  32. package/dist/config.js +55 -0
  33. package/dist/config.js.map +1 -0
  34. package/dist/index.d.ts +53 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +53 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/kv.d.ts +79 -0
  39. package/dist/kv.d.ts.map +1 -0
  40. package/dist/kv.js +289 -0
  41. package/dist/kv.js.map +1 -0
  42. package/dist/projection-stream.d.ts +42 -0
  43. package/dist/projection-stream.d.ts.map +1 -0
  44. package/dist/projection-stream.js +48 -0
  45. package/dist/projection-stream.js.map +1 -0
  46. package/dist/subscription.d.ts +107 -0
  47. package/dist/subscription.d.ts.map +1 -0
  48. package/dist/subscription.js +450 -0
  49. package/dist/subscription.js.map +1 -0
  50. package/dist/transport/connectrpc.d.ts +74 -0
  51. package/dist/transport/connectrpc.d.ts.map +1 -0
  52. package/dist/transport/connectrpc.js +393 -0
  53. package/dist/transport/connectrpc.js.map +1 -0
  54. package/dist/transport/index.d.ts +7 -0
  55. package/dist/transport/index.d.ts.map +1 -0
  56. package/dist/transport/index.js +6 -0
  57. package/dist/transport/index.js.map +1 -0
  58. package/dist/transport/types.d.ts +69 -0
  59. package/dist/transport/types.d.ts.map +1 -0
  60. package/dist/transport/types.js +5 -0
  61. package/dist/transport/types.js.map +1 -0
  62. package/dist/transport/websocket.d.ts +38 -0
  63. package/dist/transport/websocket.d.ts.map +1 -0
  64. package/dist/transport/websocket.js +276 -0
  65. package/dist/transport/websocket.js.map +1 -0
  66. package/package.json +3 -3
@@ -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"}