ai-props 2.1.3 → 2.4.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 (105) hide show
  1. package/.dev.vars +2 -0
  2. package/.turbo/turbo-build.log +1 -1
  3. package/CHANGELOG.md +20 -0
  4. package/README.md +2 -0
  5. package/dist/ai.d.ts.map +1 -1
  6. package/dist/ai.js +4 -4
  7. package/dist/ai.js.map +1 -1
  8. package/dist/cascade.d.ts +329 -0
  9. package/dist/cascade.d.ts.map +1 -0
  10. package/dist/cascade.js +522 -0
  11. package/dist/cascade.js.map +1 -0
  12. package/dist/client.d.ts +233 -0
  13. package/dist/client.d.ts.map +1 -0
  14. package/dist/client.js +191 -0
  15. package/dist/client.js.map +1 -0
  16. package/dist/durable-cascade.d.ts +280 -0
  17. package/dist/durable-cascade.d.ts.map +1 -0
  18. package/dist/durable-cascade.js +469 -0
  19. package/dist/durable-cascade.js.map +1 -0
  20. package/dist/event-bridge.d.ts +257 -0
  21. package/dist/event-bridge.d.ts.map +1 -0
  22. package/dist/event-bridge.js +317 -0
  23. package/dist/event-bridge.js.map +1 -0
  24. package/dist/generate.d.ts.map +1 -1
  25. package/dist/generate.js +12 -6
  26. package/dist/generate.js.map +1 -1
  27. package/dist/hoc.d.ts.map +1 -1
  28. package/dist/hoc.js +13 -13
  29. package/dist/hoc.js.map +1 -1
  30. package/dist/hono-jsx.d.ts +208 -0
  31. package/dist/hono-jsx.d.ts.map +1 -0
  32. package/dist/hono-jsx.js +459 -0
  33. package/dist/hono-jsx.js.map +1 -0
  34. package/dist/index.d.ts +1 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +2 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/mdx-types.d.ts +152 -0
  39. package/dist/mdx-types.d.ts.map +1 -0
  40. package/dist/mdx-types.js +9 -0
  41. package/dist/mdx-types.js.map +1 -0
  42. package/dist/mdx-utils.d.ts +106 -0
  43. package/dist/mdx-utils.d.ts.map +1 -0
  44. package/dist/mdx-utils.js +384 -0
  45. package/dist/mdx-utils.js.map +1 -0
  46. package/dist/mdx.d.ts +230 -0
  47. package/dist/mdx.d.ts.map +1 -0
  48. package/dist/mdx.js +820 -0
  49. package/dist/mdx.js.map +1 -0
  50. package/dist/rpc.d.ts +313 -0
  51. package/dist/rpc.d.ts.map +1 -0
  52. package/dist/rpc.js +359 -0
  53. package/dist/rpc.js.map +1 -0
  54. package/dist/streaming.d.ts +199 -0
  55. package/dist/streaming.d.ts.map +1 -0
  56. package/dist/streaming.js +402 -0
  57. package/dist/streaming.js.map +1 -0
  58. package/dist/validate.d.ts.map +1 -1
  59. package/dist/validate.js +11 -13
  60. package/dist/validate.js.map +1 -1
  61. package/dist/worker.d.ts +270 -0
  62. package/dist/worker.d.ts.map +1 -0
  63. package/dist/worker.js +405 -0
  64. package/dist/worker.js.map +1 -0
  65. package/package.json +39 -13
  66. package/src/ai.ts +12 -31
  67. package/src/cascade.ts +795 -0
  68. package/src/client.ts +440 -0
  69. package/src/durable-cascade.ts +743 -0
  70. package/src/event-bridge.ts +478 -0
  71. package/src/generate.ts +14 -12
  72. package/src/hoc.ts +15 -19
  73. package/src/hono-jsx.ts +675 -0
  74. package/src/index.ts +30 -0
  75. package/src/mdx-types.ts +169 -0
  76. package/src/mdx-utils.ts +437 -0
  77. package/src/mdx.ts +1008 -0
  78. package/src/rpc.ts +614 -0
  79. package/src/streaming.ts +618 -0
  80. package/src/validate.ts +15 -29
  81. package/src/worker.ts +547 -0
  82. package/test/cascade.test.ts +338 -0
  83. package/test/durable-cascade.test.ts +319 -0
  84. package/test/event-bridge.test.ts +351 -0
  85. package/test/generate.test.ts +6 -16
  86. package/test/mdx.test.ts +817 -0
  87. package/test/worker/capnweb-rpc.test.ts +1084 -0
  88. package/test/worker/full-flow.integration.test.ts +1463 -0
  89. package/test/worker/hono-jsx.test.ts +1258 -0
  90. package/test/worker/mdx-parsing.test.ts +1148 -0
  91. package/test/worker/setup.ts +56 -0
  92. package/test/worker.test.ts +595 -0
  93. package/tsconfig.json +2 -1
  94. package/vitest.config.js +6 -0
  95. package/vitest.config.ts +15 -1
  96. package/vitest.workers.config.ts +58 -0
  97. package/wrangler.jsonc +27 -0
  98. package/LICENSE +0 -21
  99. package/src/ai.js +0 -198
  100. package/src/cache.js +0 -182
  101. package/src/generate.js +0 -220
  102. package/src/hoc.js +0 -235
  103. package/src/index.js +0 -20
  104. package/src/types.js +0 -6
  105. package/src/validate.js +0 -252
package/.dev.vars ADDED
@@ -0,0 +1,2 @@
1
+ AI_GATEWAY_TOKEN=oS40l795q0Hrn-uKQ2Zew6utQV-GPrey6d9lUrlt
2
+ AI_GATEWAY_URL=https://gateway.ai.cloudflare.com/v1/b6641681fe423910342b9ffa1364c76d/mdxai
@@ -1,4 +1,4 @@
1
1
 
2
- > ai-props@2.1.3 build /Users/nathanclevenger/projects/primitives.org.ai/packages/ai-props
2
+ > ai-props@2.3.0 build /Users/nathanclevenger/projects/primitives.org.ai/packages/ai-props
3
3
  > tsc
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,10 +1,30 @@
1
1
  # ai-props
2
2
 
3
+ ## 2.4.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [4d58f5f]
8
+ - ai-functions@2.4.0
9
+ - ai-providers@2.4.0
10
+ - language-models@2.4.0
11
+
12
+ ## 2.3.0
13
+
14
+ ### Patch Changes
15
+
16
+ - Updated dependencies [9e2779a]
17
+ - Updated dependencies [2787830]
18
+ - ai-functions@2.3.0
19
+ - language-models@2.3.0
20
+ - ai-providers@2.3.0
21
+
3
22
  ## 2.1.3
4
23
 
5
24
  ### Patch Changes
6
25
 
7
26
  - Documentation and testing improvements
27
+
8
28
  - Add deterministic AI testing suite with self-validating patterns
9
29
  - Apply StoryBrand narrative to all package READMEs
10
30
  - Update TESTING.md with four principles of deterministic AI testing
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # ai-props
2
2
 
3
+ ![Stability: Experimental](https://img.shields.io/badge/stability-experimental-red)
4
+
3
5
  **Stop manually writing placeholder props. Let AI fill in the blanks.**
4
6
 
5
7
  You've built a beautiful component library. But every time you use a component, you're stuck inventing placeholder text, mock data, and dummy content. Your `<UserCard />` needs a bio. Your `<ProductCard />` needs a description. Your `<SEOHead />` needs meta tags.
package/dist/ai.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,WAAW,EAEZ,MAAM,YAAY,CAAA;AAGnB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClD,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,WAAW,CAAC,CAAC,CAAC,CA8ChB;AAmBD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,WAAW,CAAC,CAAC,CAAC,CAEhB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,EAC/E,MAAM,EAAE,CAAC,GACR,CAAC,CAEH;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;;;IAQ5B;;OAEG;yBACkB,OAAO,CAAC,CAAC,CAAC;IAE/B;;OAEG;6BAC4B,OAAO,CAAC,CAAC,CAAC,EAAE,KAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAI1D;;OAEG;4BAEQ,OAAO,CAAC,CAAC,CAAC,aACR,OAAO,CAAC,CAAC,CAAC,KACpB,OAAO,CAAC,CAAC,CAAC;EAKhB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAErE,UAAU,EAAE,CAAC,GACZ,WAAW,CAAC;KACZ,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CACrE,CAAC,CAkCD"}
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAA;AAG5F;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClD,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,WAAW,CAAC,CAAC,CAAC,CAwChB;AAmBD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,WAAW,CAAC,CAAC,CAAC,CAEhB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAE/F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;;;IAQ5B;;OAEG;yBACkB,OAAO,CAAC,CAAC,CAAC;IAE/B;;OAEG;6BAC4B,OAAO,CAAC,CAAC,CAAC,EAAE,KAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAI1D;;OAEG;4BAC2B,OAAO,CAAC,CAAC,CAAC,aAAa,OAAO,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAAC;EAK/E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAErE,UAAU,EAAE,CAAC,GACZ,WAAW,CAAC;KACZ,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CACrE,CAAC,CA+BD"}
package/dist/ai.js CHANGED
@@ -44,14 +44,14 @@ export function AI(options) {
44
44
  // Merge with defaults
45
45
  const propsWithDefaults = { ...defaults, ...partialProps };
46
46
  // Check if all required props are provided
47
- const missingRequired = required.filter(key => propsWithDefaults[key] === undefined);
47
+ const missingRequired = required.filter((key) => propsWithDefaults[key] === undefined);
48
48
  if (missingRequired.length > 0) {
49
49
  throw new Error(`Missing required props: ${missingRequired.join(', ')}`);
50
50
  }
51
51
  // Generate missing props
52
52
  const fullProps = await mergeWithGenerated(filteredSchema, propsWithDefaults, {
53
- model: config.model,
54
- system: config.system,
53
+ ...(config.model !== undefined && { model: config.model }),
54
+ ...(config.system !== undefined && { system: config.system }),
55
55
  });
56
56
  return fullProps;
57
57
  };
@@ -144,7 +144,7 @@ export function createComponentFactory(options) {
144
144
  * Generate multiple instances
145
145
  */
146
146
  generateMany: async (contexts) => {
147
- return Promise.all(contexts.map(ctx => component(ctx)));
147
+ return Promise.all(contexts.map((ctx) => component(ctx)));
148
148
  },
149
149
  /**
150
150
  * Generate with specific overrides
package/dist/ai.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,329 @@
1
+ /**
2
+ * Cascade Executor - Code -> Generative -> Agentic -> Human escalation pattern for AI Props
3
+ *
4
+ * Implements a tiered execution strategy that tries deterministic code first,
5
+ * then escalates to AI-powered prop generation, and finally to human-in-the-loop
6
+ * if all automated approaches fail.
7
+ *
8
+ * ## Features
9
+ *
10
+ * - **Tier Escalation**: Code -> Generative -> Agentic -> Human pattern
11
+ * - **Per-tier Timeouts**: Configurable timeouts for each tier
12
+ * - **5W+H Audit Events**: Who, What, When, Where, Why, How event emission
13
+ * - **Context Propagation**: Share context across tiers
14
+ * - **Retry Support**: Configurable retries per tier with backoff
15
+ * - **AI Gateway Support**: Configuration helpers for Cloudflare AI Gateway
16
+ *
17
+ * ## Basic Usage
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * import { CascadeExecutor, createCascadeStep } from 'ai-props/worker'
22
+ *
23
+ * const generateTitleCascade = new CascadeExecutor({
24
+ * tiers: {
25
+ * code: {
26
+ * name: 'template-title',
27
+ * execute: async (input) => {
28
+ * if (input.template) return { title: input.template }
29
+ * throw new Error('No template')
30
+ * }
31
+ * },
32
+ * generative: {
33
+ * name: 'ai-title',
34
+ * execute: async (input) => {
35
+ * const result = await generateProps({
36
+ * schema: { title: 'A compelling title' },
37
+ * context: input
38
+ * })
39
+ * return result.props
40
+ * }
41
+ * }
42
+ * }
43
+ * })
44
+ *
45
+ * const result = await generateTitleCascade.execute({ topic: 'AI' })
46
+ * console.log(result.value) // { title: '...' }
47
+ * console.log(result.tier) // 'code' or 'generative'
48
+ * ```
49
+ *
50
+ * @packageDocumentation
51
+ */
52
+ /**
53
+ * Ordered list of capability tiers
54
+ */
55
+ export declare const TIER_ORDER: readonly ["code", "generative", "agentic", "human"];
56
+ /**
57
+ * Default timeouts per tier (in milliseconds)
58
+ */
59
+ export declare const DEFAULT_TIER_TIMEOUTS: Record<CapabilityTier, number>;
60
+ /**
61
+ * Capability tier levels
62
+ */
63
+ export type CapabilityTier = 'code' | 'generative' | 'agentic' | 'human';
64
+ /**
65
+ * 5W+H Event for audit trails
66
+ */
67
+ export interface FiveWHEvent {
68
+ /** Who performed the action */
69
+ who: string;
70
+ /** What action was performed */
71
+ what: string;
72
+ /** When the action occurred (timestamp) */
73
+ when: number;
74
+ /** Where the action occurred (cascade/tier name) */
75
+ where: string;
76
+ /** Why the action was performed (reason/error) */
77
+ why?: string;
78
+ /** How the action was performed */
79
+ how?: {
80
+ status: 'running' | 'completed' | 'failed';
81
+ duration?: number;
82
+ metadata?: Record<string, unknown>;
83
+ };
84
+ }
85
+ /**
86
+ * Cascade step tracking
87
+ */
88
+ export interface CascadeStep {
89
+ id: string;
90
+ tier: string;
91
+ status: 'pending' | 'running' | 'completed' | 'failed';
92
+ startTime?: number;
93
+ endTime?: number;
94
+ error?: string;
95
+ }
96
+ /**
97
+ * Cascade context for tracing
98
+ */
99
+ export interface CascadeContext {
100
+ correlationId: string;
101
+ name: string;
102
+ steps: CascadeStep[];
103
+ }
104
+ /**
105
+ * Context passed to tier handlers
106
+ */
107
+ export interface TierContext<TInput = unknown> {
108
+ /** Correlation ID for tracing */
109
+ correlationId: string;
110
+ /** Current tier being executed */
111
+ tier: CapabilityTier;
112
+ /** Input data */
113
+ input: TInput;
114
+ /** Cascade context */
115
+ cascadeContext: CascadeContext;
116
+ /** Previous tier errors */
117
+ previousErrors: Array<{
118
+ tier: CapabilityTier;
119
+ error: string;
120
+ }>;
121
+ }
122
+ /**
123
+ * Handler for a specific tier
124
+ */
125
+ export interface TierHandler<TInput = unknown, TOutput = unknown> {
126
+ /** Handler name for debugging */
127
+ name: string;
128
+ /** Execute the tier logic */
129
+ execute: (input: TInput, context: TierContext<TInput>) => Promise<TOutput>;
130
+ }
131
+ /**
132
+ * Retry configuration per tier
133
+ */
134
+ export interface TierRetryConfig {
135
+ /** Maximum number of retries */
136
+ maxRetries: number;
137
+ /** Base delay in milliseconds */
138
+ baseDelay: number;
139
+ /** Multiplier for exponential backoff */
140
+ multiplier?: number;
141
+ }
142
+ /**
143
+ * Result from a single tier execution
144
+ */
145
+ export interface TierResult<TOutput = unknown> {
146
+ /** Tier that was executed */
147
+ tier: CapabilityTier;
148
+ /** Whether the tier succeeded */
149
+ success: boolean;
150
+ /** Result value (if success) */
151
+ value?: TOutput;
152
+ /** Error (if failure) */
153
+ error?: Error;
154
+ /** Whether the tier timed out */
155
+ timedOut?: boolean;
156
+ /** Duration in milliseconds */
157
+ duration: number;
158
+ /** Number of attempts */
159
+ attempts?: number;
160
+ }
161
+ /**
162
+ * Metrics from cascade execution
163
+ */
164
+ export interface CascadeMetrics {
165
+ /** Total execution duration */
166
+ totalDuration: number;
167
+ /** Duration per tier */
168
+ tierDurations: Partial<Record<CapabilityTier, number>>;
169
+ /** Number of retries per tier */
170
+ tierRetries?: Partial<Record<CapabilityTier, number>>;
171
+ }
172
+ /**
173
+ * Result from cascade execution
174
+ */
175
+ export interface CascadeResult<TOutput = unknown> {
176
+ /** Final result value */
177
+ value: TOutput;
178
+ /** Tier that produced the result */
179
+ tier: CapabilityTier;
180
+ /** History of all tier executions */
181
+ history: TierResult<TOutput>[];
182
+ /** Tiers that were skipped */
183
+ skippedTiers: CapabilityTier[];
184
+ /** Cascade context with tracing info */
185
+ context: CascadeContext;
186
+ /** Execution metrics */
187
+ metrics: CascadeMetrics;
188
+ }
189
+ /**
190
+ * Skip condition function
191
+ */
192
+ export type SkipCondition<TInput = unknown> = (input: TInput) => boolean;
193
+ /**
194
+ * Configuration for CascadeExecutor
195
+ */
196
+ export interface CascadeConfig<TInput = unknown, TOutput = unknown> {
197
+ /** Tier handlers */
198
+ tiers: Partial<Record<CapabilityTier, TierHandler<TInput, TOutput>>>;
199
+ /** Per-tier timeouts in milliseconds */
200
+ timeouts?: Partial<Record<CapabilityTier, number>>;
201
+ /** Total cascade timeout in milliseconds */
202
+ totalTimeout?: number;
203
+ /** Use default timeouts from capability-tiers */
204
+ useDefaultTimeouts?: boolean;
205
+ /** Actor identifier for 5W+H events */
206
+ actor?: string;
207
+ /** Cascade name for 5W+H events */
208
+ cascadeName?: string;
209
+ /** Event callback for 5W+H events */
210
+ onEvent?: (event: FiveWHEvent) => void;
211
+ /** Skip conditions per tier */
212
+ skipConditions?: Partial<Record<CapabilityTier, SkipCondition<TInput>>>;
213
+ /** Retry configuration per tier */
214
+ retryConfig?: Partial<Record<CapabilityTier, TierRetryConfig>>;
215
+ }
216
+ /**
217
+ * Error thrown when cascade times out
218
+ */
219
+ export declare class CascadeTimeoutError extends Error {
220
+ readonly timeout: number;
221
+ readonly elapsed: number;
222
+ constructor(timeout: number, elapsed: number);
223
+ }
224
+ /**
225
+ * Error thrown when a tier is skipped
226
+ */
227
+ export declare class TierSkippedError extends Error {
228
+ readonly tier: CapabilityTier;
229
+ readonly reason: string;
230
+ constructor(tier: CapabilityTier, reason: string);
231
+ }
232
+ /**
233
+ * Error thrown when all tiers fail
234
+ */
235
+ export declare class AllTiersFailedError extends Error {
236
+ readonly history: TierResult[];
237
+ constructor(history: TierResult[]);
238
+ }
239
+ /**
240
+ * Create a cascade context for tracing
241
+ */
242
+ export declare function createCascadeContext(options: {
243
+ name: string;
244
+ }): CascadeContext;
245
+ /**
246
+ * Record a step in the cascade context
247
+ */
248
+ export declare function recordStep(context: CascadeContext, tier: string, meta: {
249
+ actor: string;
250
+ action: string;
251
+ }): {
252
+ complete: () => void;
253
+ fail: (error: Error) => void;
254
+ };
255
+ /**
256
+ * CascadeExecutor implements the code -> generative -> agentic -> human pattern
257
+ *
258
+ * This is the base executor for cascade patterns, suitable for both
259
+ * synchronous and worker contexts.
260
+ */
261
+ export declare class CascadeExecutor<TInput = unknown, TOutput = unknown> {
262
+ protected readonly config: CascadeConfig<TInput, TOutput>;
263
+ protected readonly actor: string;
264
+ protected readonly cascadeName: string;
265
+ constructor(config: CascadeConfig<TInput, TOutput>);
266
+ /**
267
+ * Execute the cascade
268
+ */
269
+ execute(input: TInput): Promise<CascadeResult<TOutput>>;
270
+ /**
271
+ * Execute a single tier with timeout and retry support
272
+ */
273
+ protected executeTier(tier: CapabilityTier, handler: TierHandler<TInput, TOutput>, input: TInput, cascadeContext: CascadeContext, previousErrors: Array<{
274
+ tier: CapabilityTier;
275
+ error: string;
276
+ }>, cascadeStartTime: number, totalTimeoutPromise: Promise<never>): Promise<TierResult<TOutput>>;
277
+ /**
278
+ * Execute a function with a timeout
279
+ */
280
+ protected executeWithTimeout<R>(fn: () => Promise<R>, timeout: number | undefined, totalTimeoutPromise: Promise<never>): Promise<R>;
281
+ /**
282
+ * Get timeout for a tier
283
+ */
284
+ protected getTierTimeout(tier: CapabilityTier): number | undefined;
285
+ /**
286
+ * Get the next configured tier after the given tier
287
+ */
288
+ protected getNextConfiguredTier(currentTier: CapabilityTier): CapabilityTier | undefined;
289
+ /**
290
+ * Emit a 5W+H event
291
+ */
292
+ protected emitEvent(event: FiveWHEvent): void;
293
+ /**
294
+ * Sleep for a given duration
295
+ */
296
+ protected sleep(ms: number): Promise<void>;
297
+ }
298
+ /**
299
+ * Create a cascade step configuration for common patterns
300
+ *
301
+ * @example
302
+ * ```typescript
303
+ * const titleCascade = createCascadeStep({
304
+ * name: 'generate-title',
305
+ * code: async (input) => {
306
+ * if (input.template) return { title: input.template }
307
+ * throw new Error('No template')
308
+ * },
309
+ * generative: async (input, ctx) => {
310
+ * const result = await generateProps({
311
+ * schema: { title: 'A compelling title' },
312
+ * context: input
313
+ * })
314
+ * return result.props
315
+ * }
316
+ * })
317
+ * ```
318
+ */
319
+ export declare function createCascadeStep<TInput = unknown, TOutput = unknown>(config: {
320
+ name: string;
321
+ code?: (input: TInput, ctx: TierContext<TInput>) => Promise<TOutput>;
322
+ generative?: (input: TInput, ctx: TierContext<TInput>) => Promise<TOutput>;
323
+ agentic?: (input: TInput, ctx: TierContext<TInput>) => Promise<TOutput>;
324
+ human?: (input: TInput, ctx: TierContext<TInput>) => Promise<TOutput>;
325
+ timeouts?: Partial<Record<CapabilityTier, number>>;
326
+ retryConfig?: Partial<Record<CapabilityTier, TierRetryConfig>>;
327
+ onEvent?: (event: FiveWHEvent) => void;
328
+ }): CascadeExecutor<TInput, TOutput>;
329
+ //# sourceMappingURL=cascade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cascade.d.ts","sourceRoot":"","sources":["../src/cascade.ts"],"names":[],"mappings":"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"}