ai-functions 2.1.1 → 2.3.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 (286) hide show
  1. package/.turbo/turbo-build.log +1 -4
  2. package/CHANGELOG.md +68 -1
  3. package/README.md +397 -157
  4. package/dist/ai-promise.d.ts +50 -3
  5. package/dist/ai-promise.d.ts.map +1 -1
  6. package/dist/ai-promise.js +410 -51
  7. package/dist/ai-promise.js.map +1 -1
  8. package/dist/ai-schemas.d.ts +56 -0
  9. package/dist/ai-schemas.d.ts.map +1 -0
  10. package/dist/ai-schemas.js +53 -0
  11. package/dist/ai-schemas.js.map +1 -0
  12. package/dist/ai.d.ts +16 -242
  13. package/dist/ai.d.ts.map +1 -1
  14. package/dist/ai.js +54 -837
  15. package/dist/ai.js.map +1 -1
  16. package/dist/batch/anthropic.d.ts +6 -4
  17. package/dist/batch/anthropic.d.ts.map +1 -1
  18. package/dist/batch/anthropic.js +83 -145
  19. package/dist/batch/anthropic.js.map +1 -1
  20. package/dist/batch/bedrock.d.ts +8 -30
  21. package/dist/batch/bedrock.d.ts.map +1 -1
  22. package/dist/batch/bedrock.js +155 -338
  23. package/dist/batch/bedrock.js.map +1 -1
  24. package/dist/batch/cloudflare.d.ts +8 -20
  25. package/dist/batch/cloudflare.d.ts.map +1 -1
  26. package/dist/batch/cloudflare.js +68 -189
  27. package/dist/batch/cloudflare.js.map +1 -1
  28. package/dist/batch/google.d.ts +6 -20
  29. package/dist/batch/google.d.ts.map +1 -1
  30. package/dist/batch/google.js +70 -238
  31. package/dist/batch/google.js.map +1 -1
  32. package/dist/batch/index.d.ts +4 -1
  33. package/dist/batch/index.d.ts.map +1 -1
  34. package/dist/batch/index.js +4 -1
  35. package/dist/batch/index.js.map +1 -1
  36. package/dist/batch/memory.d.ts +1 -1
  37. package/dist/batch/memory.d.ts.map +1 -1
  38. package/dist/batch/memory.js +14 -10
  39. package/dist/batch/memory.js.map +1 -1
  40. package/dist/batch/openai.d.ts +11 -14
  41. package/dist/batch/openai.d.ts.map +1 -1
  42. package/dist/batch/openai.js +52 -156
  43. package/dist/batch/openai.js.map +1 -1
  44. package/dist/batch/provider.d.ts +111 -0
  45. package/dist/batch/provider.d.ts.map +1 -0
  46. package/dist/batch/provider.js +233 -0
  47. package/dist/batch/provider.js.map +1 -0
  48. package/dist/batch-map.d.ts.map +1 -1
  49. package/dist/batch-map.js +23 -17
  50. package/dist/batch-map.js.map +1 -1
  51. package/dist/batch-queue.d.ts +65 -0
  52. package/dist/batch-queue.d.ts.map +1 -1
  53. package/dist/batch-queue.js +169 -14
  54. package/dist/batch-queue.js.map +1 -1
  55. package/dist/budget.d.ts +272 -0
  56. package/dist/budget.d.ts.map +1 -0
  57. package/dist/budget.js +513 -0
  58. package/dist/budget.js.map +1 -0
  59. package/dist/cache.d.ts +295 -0
  60. package/dist/cache.d.ts.map +1 -0
  61. package/dist/cache.js +433 -0
  62. package/dist/cache.js.map +1 -0
  63. package/dist/context.d.ts +42 -8
  64. package/dist/context.d.ts.map +1 -1
  65. package/dist/context.js +64 -62
  66. package/dist/context.js.map +1 -1
  67. package/dist/digital-objects-registry.d.ts +229 -0
  68. package/dist/digital-objects-registry.d.ts.map +1 -0
  69. package/dist/digital-objects-registry.js +617 -0
  70. package/dist/digital-objects-registry.js.map +1 -0
  71. package/dist/embeddings.d.ts +2 -2
  72. package/dist/embeddings.d.ts.map +1 -1
  73. package/dist/errors.d.ts +22 -0
  74. package/dist/errors.d.ts.map +1 -0
  75. package/dist/errors.js +35 -0
  76. package/dist/errors.js.map +1 -0
  77. package/dist/eval/runner.d.ts +10 -1
  78. package/dist/eval/runner.d.ts.map +1 -1
  79. package/dist/eval/runner.js +41 -35
  80. package/dist/eval/runner.js.map +1 -1
  81. package/dist/eval-log/in-memory.d.ts +34 -0
  82. package/dist/eval-log/in-memory.d.ts.map +1 -0
  83. package/dist/eval-log/in-memory.js +84 -0
  84. package/dist/eval-log/in-memory.js.map +1 -0
  85. package/dist/eval-log/index.d.ts +29 -0
  86. package/dist/eval-log/index.d.ts.map +1 -0
  87. package/dist/eval-log/index.js +39 -0
  88. package/dist/eval-log/index.js.map +1 -0
  89. package/dist/eval-log/types.d.ts +101 -0
  90. package/dist/eval-log/types.d.ts.map +1 -0
  91. package/dist/eval-log/types.js +16 -0
  92. package/dist/eval-log/types.js.map +1 -0
  93. package/dist/function-registry.d.ts +116 -0
  94. package/dist/function-registry.d.ts.map +1 -0
  95. package/dist/function-registry.js +546 -0
  96. package/dist/function-registry.js.map +1 -0
  97. package/dist/generate.d.ts +9 -3
  98. package/dist/generate.d.ts.map +1 -1
  99. package/dist/generate.js +18 -22
  100. package/dist/generate.js.map +1 -1
  101. package/dist/index.d.ts +35 -20
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js +89 -42
  104. package/dist/index.js.map +1 -1
  105. package/dist/logger.d.ts +118 -0
  106. package/dist/logger.d.ts.map +1 -0
  107. package/dist/logger.js +187 -0
  108. package/dist/logger.js.map +1 -0
  109. package/dist/middleware/budget.d.ts +84 -0
  110. package/dist/middleware/budget.d.ts.map +1 -0
  111. package/dist/middleware/budget.js +110 -0
  112. package/dist/middleware/budget.js.map +1 -0
  113. package/dist/middleware/cache.d.ts +103 -0
  114. package/dist/middleware/cache.d.ts.map +1 -0
  115. package/dist/middleware/cache.js +228 -0
  116. package/dist/middleware/cache.js.map +1 -0
  117. package/dist/middleware/embed-cache.d.ts +99 -0
  118. package/dist/middleware/embed-cache.d.ts.map +1 -0
  119. package/dist/middleware/embed-cache.js +128 -0
  120. package/dist/middleware/embed-cache.js.map +1 -0
  121. package/dist/middleware/index.d.ts +11 -0
  122. package/dist/middleware/index.d.ts.map +1 -0
  123. package/dist/middleware/index.js +11 -0
  124. package/dist/middleware/index.js.map +1 -0
  125. package/dist/middleware/trace.d.ts +103 -0
  126. package/dist/middleware/trace.d.ts.map +1 -0
  127. package/dist/middleware/trace.js +176 -0
  128. package/dist/middleware/trace.js.map +1 -0
  129. package/dist/primitives.d.ts +120 -1
  130. package/dist/primitives.d.ts.map +1 -1
  131. package/dist/primitives.js +398 -26
  132. package/dist/primitives.js.map +1 -1
  133. package/dist/retry.d.ts +368 -0
  134. package/dist/retry.d.ts.map +1 -0
  135. package/dist/retry.js +646 -0
  136. package/dist/retry.js.map +1 -0
  137. package/dist/schema.d.ts.map +1 -1
  138. package/dist/schema.js +2 -10
  139. package/dist/schema.js.map +1 -1
  140. package/dist/telemetry.d.ts +128 -0
  141. package/dist/telemetry.d.ts.map +1 -0
  142. package/dist/telemetry.js +285 -0
  143. package/dist/telemetry.js.map +1 -0
  144. package/dist/template.d.ts.map +1 -1
  145. package/dist/template.js +6 -1
  146. package/dist/template.js.map +1 -1
  147. package/dist/tool-orchestration.d.ts +453 -0
  148. package/dist/tool-orchestration.d.ts.map +1 -0
  149. package/dist/tool-orchestration.js +763 -0
  150. package/dist/tool-orchestration.js.map +1 -0
  151. package/dist/type-guards.d.ts +28 -0
  152. package/dist/type-guards.d.ts.map +1 -0
  153. package/dist/type-guards.js +29 -0
  154. package/dist/type-guards.js.map +1 -0
  155. package/dist/types.d.ts +135 -17
  156. package/dist/types.d.ts.map +1 -1
  157. package/dist/types.js +36 -1
  158. package/dist/types.js.map +1 -1
  159. package/dist/wrap-for-v3.d.ts +80 -0
  160. package/dist/wrap-for-v3.d.ts.map +1 -0
  161. package/dist/wrap-for-v3.js +89 -0
  162. package/dist/wrap-for-v3.js.map +1 -0
  163. package/examples/00-quickstart.ts +232 -0
  164. package/examples/01-rag-chatbot.ts +212 -0
  165. package/examples/02-multi-agent-research.ts +290 -0
  166. package/examples/03-email-classification.ts +379 -0
  167. package/examples/04-content-moderation.ts +400 -0
  168. package/examples/05-document-extraction.ts +455 -0
  169. package/examples/06-streaming-chat-nextjs.ts +437 -0
  170. package/examples/07-cloudflare-worker.ts +483 -0
  171. package/examples/08-batch-processing.ts +491 -0
  172. package/examples/09-budget-constrained.ts +527 -0
  173. package/examples/10-tool-orchestration.ts +565 -0
  174. package/examples/11-retry-resilience.ts +403 -0
  175. package/examples/12-caching-strategies.ts +422 -0
  176. package/examples/README.md +145 -0
  177. package/package.json +10 -6
  178. package/src/ai-promise.ts +528 -99
  179. package/src/ai-schemas.ts +122 -0
  180. package/src/ai.ts +69 -1153
  181. package/src/batch/anthropic.ts +96 -161
  182. package/src/batch/bedrock.ts +203 -454
  183. package/src/batch/cloudflare.ts +99 -282
  184. package/src/batch/google.ts +91 -297
  185. package/src/batch/index.ts +4 -1
  186. package/src/batch/memory.ts +15 -10
  187. package/src/batch/openai.ts +65 -193
  188. package/src/batch/provider.ts +336 -0
  189. package/src/batch-map.ts +29 -24
  190. package/src/batch-queue.ts +200 -11
  191. package/src/budget.ts +740 -0
  192. package/src/cache.ts +681 -0
  193. package/src/context.ts +122 -76
  194. package/src/digital-objects-registry.ts +750 -0
  195. package/src/errors.ts +37 -0
  196. package/src/eval/runner.ts +63 -38
  197. package/src/eval-log/in-memory.ts +90 -0
  198. package/src/eval-log/index.ts +46 -0
  199. package/src/eval-log/types.ts +110 -0
  200. package/src/function-registry.ts +671 -0
  201. package/src/generate.ts +33 -33
  202. package/src/index.ts +325 -49
  203. package/src/logger.ts +232 -0
  204. package/src/middleware/budget.ts +171 -0
  205. package/src/middleware/cache.ts +299 -0
  206. package/src/middleware/embed-cache.ts +195 -0
  207. package/src/middleware/index.ts +23 -0
  208. package/src/middleware/trace.ts +248 -0
  209. package/src/primitives.ts +589 -62
  210. package/src/retry.ts +902 -0
  211. package/src/schema.ts +8 -17
  212. package/src/telemetry.ts +403 -0
  213. package/src/template.ts +8 -4
  214. package/src/tool-orchestration.ts +1173 -0
  215. package/src/type-guards.ts +31 -0
  216. package/src/types.ts +164 -25
  217. package/src/wrap-for-v3.ts +105 -0
  218. package/test/ai-promise.test.ts +1080 -0
  219. package/test/ai-proxy.test.ts +1 -1
  220. package/test/backward-compat.test.ts +147 -0
  221. package/test/batch-autosubmit-errors.test.ts +610 -0
  222. package/test/batch-blog-posts.test.ts +87 -129
  223. package/test/budget-tracking.test.ts +800 -0
  224. package/test/cache.test.ts +712 -0
  225. package/test/context-isolation.test.ts +687 -0
  226. package/test/core-functions.test.ts +183 -579
  227. package/test/decide.test.ts +154 -322
  228. package/test/define.test.ts +211 -8
  229. package/test/digital-objects-registry.test.ts +760 -0
  230. package/test/embedding-cache-middleware.test.ts +140 -0
  231. package/test/evals/deterministic.eval.test.ts +376 -0
  232. package/test/generate-core.test.ts +140 -229
  233. package/test/implicit-batch.test.ts +22 -65
  234. package/test/json-parse-error-handling.test.ts +463 -0
  235. package/test/retry-policy-integration.test.ts +117 -0
  236. package/test/retry.test.ts +1016 -0
  237. package/test/schema.test.ts +55 -19
  238. package/test/streaming.test.ts +316 -0
  239. package/test/template.test.ts +1164 -0
  240. package/test/tool-orchestration.test.ts +1040 -0
  241. package/test/wrap-for-v3.test.ts +612 -0
  242. package/vitest.config.js +6 -0
  243. package/vitest.config.ts +20 -0
  244. package/dist/rpc/auth.d.ts +0 -69
  245. package/dist/rpc/auth.d.ts.map +0 -1
  246. package/dist/rpc/auth.js +0 -136
  247. package/dist/rpc/auth.js.map +0 -1
  248. package/dist/rpc/client.d.ts +0 -62
  249. package/dist/rpc/client.d.ts.map +0 -1
  250. package/dist/rpc/client.js +0 -103
  251. package/dist/rpc/client.js.map +0 -1
  252. package/dist/rpc/deferred.d.ts +0 -60
  253. package/dist/rpc/deferred.d.ts.map +0 -1
  254. package/dist/rpc/deferred.js +0 -96
  255. package/dist/rpc/deferred.js.map +0 -1
  256. package/dist/rpc/index.d.ts +0 -22
  257. package/dist/rpc/index.d.ts.map +0 -1
  258. package/dist/rpc/index.js +0 -38
  259. package/dist/rpc/index.js.map +0 -1
  260. package/dist/rpc/local.d.ts +0 -42
  261. package/dist/rpc/local.d.ts.map +0 -1
  262. package/dist/rpc/local.js +0 -50
  263. package/dist/rpc/local.js.map +0 -1
  264. package/dist/rpc/server.d.ts +0 -165
  265. package/dist/rpc/server.d.ts.map +0 -1
  266. package/dist/rpc/server.js +0 -405
  267. package/dist/rpc/server.js.map +0 -1
  268. package/dist/rpc/session.d.ts +0 -32
  269. package/dist/rpc/session.d.ts.map +0 -1
  270. package/dist/rpc/session.js +0 -43
  271. package/dist/rpc/session.js.map +0 -1
  272. package/dist/rpc/transport.d.ts +0 -306
  273. package/dist/rpc/transport.d.ts.map +0 -1
  274. package/dist/rpc/transport.js +0 -731
  275. package/dist/rpc/transport.js.map +0 -1
  276. package/src/batch/anthropic.js +0 -256
  277. package/src/batch/bedrock.js +0 -584
  278. package/src/batch/cloudflare.js +0 -287
  279. package/src/batch/google.js +0 -359
  280. package/src/batch/index.js +0 -30
  281. package/src/batch/memory.js +0 -187
  282. package/src/batch/openai.js +0 -402
  283. package/src/eval/index.js +0 -7
  284. package/src/eval/models.js +0 -119
  285. package/src/eval/runner.js +0 -147
  286. package/test/schema.test.js +0 -96
package/dist/context.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Execution Context for AI Functions
3
3
  *
4
- * Provides configuration without polluting function signatures.
5
- * Settings flow from environment global context local context.
4
+ * Standalone context module with batch processing and budget tracking features.
5
+ * Settings flow from environment -> global context -> local context.
6
6
  *
7
7
  * @example
8
8
  * ```ts
@@ -61,18 +61,6 @@ export function resetContext() {
61
61
  let asyncLocalStorage = null;
62
62
  // Lazy initialization of AsyncLocalStorage
63
63
  let asyncLocalStorageInitialized = false;
64
- async function initAsyncLocalStorage() {
65
- if (asyncLocalStorageInitialized)
66
- return;
67
- asyncLocalStorageInitialized = true;
68
- try {
69
- const { AsyncLocalStorage } = await import('async_hooks');
70
- asyncLocalStorage = new AsyncLocalStorage();
71
- }
72
- catch {
73
- // Not in Node.js environment, use global context only
74
- }
75
- }
76
64
  // Initialize synchronously if possible (for Node.js environments)
77
65
  if (typeof process !== 'undefined' && process.versions?.node) {
78
66
  import('async_hooks')
@@ -84,15 +72,71 @@ if (typeof process !== 'undefined' && process.versions?.node) {
84
72
  asyncLocalStorageInitialized = true;
85
73
  });
86
74
  }
75
+ // ============================================================================
76
+ // Environment Defaults
77
+ // ============================================================================
78
+ function getEnvContext() {
79
+ if (typeof process === 'undefined')
80
+ return {};
81
+ const context = {};
82
+ // Model defaults
83
+ if (process.env['AI_MODEL']) {
84
+ context.model = process.env['AI_MODEL'];
85
+ }
86
+ // Provider defaults
87
+ if (process.env['AI_PROVIDER']) {
88
+ context.provider = process.env['AI_PROVIDER'];
89
+ }
90
+ else if (process.env['ANTHROPIC_API_KEY'] && !process.env['OPENAI_API_KEY']) {
91
+ context.provider = 'anthropic';
92
+ }
93
+ else if (process.env['OPENAI_API_KEY']) {
94
+ context.provider = 'openai';
95
+ }
96
+ else if (process.env['CLOUDFLARE_API_TOKEN']) {
97
+ context.provider = 'cloudflare';
98
+ }
99
+ else if (process.env['AWS_ACCESS_KEY_ID']) {
100
+ context.provider = 'bedrock';
101
+ }
102
+ return context;
103
+ }
104
+ function getEnvBatchContext() {
105
+ if (typeof process === 'undefined')
106
+ return {};
107
+ const context = {};
108
+ // Batch mode
109
+ if (process.env['AI_BATCH_MODE']) {
110
+ context.batchMode = process.env['AI_BATCH_MODE'];
111
+ }
112
+ // Flex threshold (when to start using flex processing)
113
+ if (process.env['AI_FLEX_THRESHOLD']) {
114
+ context.flexThreshold = parseInt(process.env['AI_FLEX_THRESHOLD'], 10);
115
+ }
116
+ // Batch threshold (when to switch from flex to full batch)
117
+ if (process.env['AI_BATCH_THRESHOLD']) {
118
+ context.batchThreshold = parseInt(process.env['AI_BATCH_THRESHOLD'], 10);
119
+ }
120
+ // Webhook URL
121
+ if (process.env['AI_BATCH_WEBHOOK_URL']) {
122
+ context.webhookUrl = process.env['AI_BATCH_WEBHOOK_URL'];
123
+ }
124
+ return context;
125
+ }
126
+ // ============================================================================
127
+ // Context Functions
128
+ // ============================================================================
87
129
  /**
88
130
  * Get the current execution context
89
- * Merges: environment defaults global context local context
131
+ * Merges: environment defaults -> global context -> local context
90
132
  */
91
133
  export function getContext() {
92
134
  const envContext = getEnvContext();
135
+ const envBatchContext = getEnvBatchContext();
93
136
  const localContext = asyncLocalStorage?.getStore();
94
137
  return {
95
138
  ...envContext,
139
+ ...envBatchContext,
96
140
  ...globalContext,
97
141
  ...localContext,
98
142
  };
@@ -124,51 +168,6 @@ export function withContext(context, fn) {
124
168
  }
125
169
  }
126
170
  // ============================================================================
127
- // Environment Defaults
128
- // ============================================================================
129
- function getEnvContext() {
130
- if (typeof process === 'undefined')
131
- return {};
132
- const context = {};
133
- // Model defaults
134
- if (process.env.AI_MODEL) {
135
- context.model = process.env.AI_MODEL;
136
- }
137
- // Provider defaults
138
- if (process.env.AI_PROVIDER) {
139
- context.provider = process.env.AI_PROVIDER;
140
- }
141
- else if (process.env.ANTHROPIC_API_KEY && !process.env.OPENAI_API_KEY) {
142
- context.provider = 'anthropic';
143
- }
144
- else if (process.env.OPENAI_API_KEY) {
145
- context.provider = 'openai';
146
- }
147
- else if (process.env.CLOUDFLARE_API_TOKEN) {
148
- context.provider = 'cloudflare';
149
- }
150
- else if (process.env.AWS_ACCESS_KEY_ID) {
151
- context.provider = 'bedrock';
152
- }
153
- // Batch mode
154
- if (process.env.AI_BATCH_MODE) {
155
- context.batchMode = process.env.AI_BATCH_MODE;
156
- }
157
- // Flex threshold (when to start using flex processing)
158
- if (process.env.AI_FLEX_THRESHOLD) {
159
- context.flexThreshold = parseInt(process.env.AI_FLEX_THRESHOLD, 10);
160
- }
161
- // Batch threshold (when to switch from flex to full batch)
162
- if (process.env.AI_BATCH_THRESHOLD) {
163
- context.batchThreshold = parseInt(process.env.AI_BATCH_THRESHOLD, 10);
164
- }
165
- // Webhook URL
166
- if (process.env.AI_BATCH_WEBHOOK_URL) {
167
- context.webhookUrl = process.env.AI_BATCH_WEBHOOK_URL;
168
- }
169
- return context;
170
- }
171
- // ============================================================================
172
171
  // Context Helpers
173
172
  // ============================================================================
174
173
  /**
@@ -179,12 +178,15 @@ export function getModel() {
179
178
  return ctx.model || 'sonnet';
180
179
  }
181
180
  /**
182
- * Get the effective provider from context
181
+ * Get the effective provider from context (typed as BatchProvider)
183
182
  */
184
183
  export function getProvider() {
185
184
  const ctx = getContext();
186
- return ctx.provider || 'openai';
185
+ return (ctx.provider || 'openai');
187
186
  }
187
+ // ============================================================================
188
+ // Batch-Specific Context Helpers
189
+ // ============================================================================
188
190
  /**
189
191
  * Get the effective batch mode from context
190
192
  */
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,229 @@
1
+ /**
2
+ * DigitalObjectsFunctionRegistry - Persistent function registry using digital-objects
3
+ *
4
+ * This implementation stores function definitions as Things and function calls as Actions,
5
+ * providing full persistence and audit trail capabilities.
6
+ *
7
+ * Nouns:
8
+ * - CodeFunction: Functions that generate executable code
9
+ * - GenerativeFunction: Functions that use AI to generate content
10
+ * - AgenticFunction: Functions that run in a loop with tools
11
+ * - HumanFunction: Functions that require human input/approval
12
+ *
13
+ * Verbs:
14
+ * - define: Function definition action
15
+ * - call: Function invocation action
16
+ * - complete: Successful completion action
17
+ * - fail: Failed execution action
18
+ *
19
+ * @packageDocumentation
20
+ */
21
+ import type { DigitalObjectsProvider, Thing, Action } from 'digital-objects';
22
+ import type { FunctionRegistry, DefinedFunction } from './types.js';
23
+ /**
24
+ * Noun names for function types
25
+ */
26
+ export declare const FUNCTION_NOUNS: {
27
+ readonly CODE: "CodeFunction";
28
+ readonly GENERATIVE: "GenerativeFunction";
29
+ readonly AGENTIC: "AgenticFunction";
30
+ readonly HUMAN: "HumanFunction";
31
+ };
32
+ /**
33
+ * Verb names for function actions
34
+ */
35
+ export declare const FUNCTION_VERBS: {
36
+ readonly DEFINE: "define";
37
+ readonly CALL: "call";
38
+ readonly COMPLETE: "complete";
39
+ readonly FAIL: "fail";
40
+ };
41
+ /**
42
+ * Stored function definition shape
43
+ */
44
+ export interface StoredFunctionDefinition {
45
+ name: string;
46
+ type: 'code' | 'generative' | 'agentic' | 'human';
47
+ description?: string;
48
+ args: unknown;
49
+ returnType?: unknown;
50
+ /** Inline deterministic code body for a `code` function (handlers are not persistable). */
51
+ code?: string;
52
+ language?: string;
53
+ instructions?: string;
54
+ /** @deprecated Legacy code-authoring fields; retained only for back-compat reads. */
55
+ includeTests?: boolean;
56
+ /** @deprecated Legacy code-authoring fields; retained only for back-compat reads. */
57
+ includeExamples?: boolean;
58
+ output?: string;
59
+ system?: string;
60
+ promptTemplate?: string;
61
+ model?: string;
62
+ temperature?: number;
63
+ tools?: unknown[];
64
+ maxIterations?: number;
65
+ stream?: boolean;
66
+ channel?: string;
67
+ timeout?: number;
68
+ assignee?: string;
69
+ }
70
+ /**
71
+ * Function call data stored in actions
72
+ */
73
+ export interface FunctionCallData {
74
+ args: unknown;
75
+ result?: unknown;
76
+ error?: string;
77
+ duration?: number;
78
+ }
79
+ /**
80
+ * Options for creating a DigitalObjectsFunctionRegistry
81
+ */
82
+ export interface DigitalObjectsRegistryOptions {
83
+ /** The digital-objects provider to use for storage */
84
+ provider: DigitalObjectsProvider;
85
+ /** Whether to auto-initialize nouns and verbs (default: true) */
86
+ autoInitialize?: boolean;
87
+ }
88
+ /**
89
+ * DigitalObjectsFunctionRegistry - Persistent function registry using digital-objects
90
+ *
91
+ * This class implements the FunctionRegistry interface using digital-objects for storage.
92
+ * Function definitions are stored as Things, and function calls are tracked as Actions.
93
+ *
94
+ * @example
95
+ * ```ts
96
+ * import { createMemoryProvider } from 'digital-objects'
97
+ * import { createDigitalObjectsRegistry, defineFunction } from 'ai-functions'
98
+ *
99
+ * const provider = createMemoryProvider()
100
+ * const registry = await createDigitalObjectsRegistry({ provider })
101
+ *
102
+ * // Define a function
103
+ * const summarize = defineFunction({
104
+ * type: 'generative',
105
+ * name: 'summarize',
106
+ * args: { text: 'Text to summarize' },
107
+ * output: 'string',
108
+ * })
109
+ *
110
+ * // Store it in the registry
111
+ * registry.set('summarize', summarize)
112
+ *
113
+ * // Later, retrieve it
114
+ * const fn = registry.get('summarize')
115
+ * if (fn) {
116
+ * const result = await fn.call({ text: 'Long article...' })
117
+ * }
118
+ * ```
119
+ */
120
+ export declare class DigitalObjectsFunctionRegistry implements FunctionRegistry {
121
+ private provider;
122
+ private initialized;
123
+ private autoInitialize;
124
+ private initPromise;
125
+ private functionCache;
126
+ constructor(options: DigitalObjectsRegistryOptions);
127
+ /**
128
+ * Initialize the registry by defining all necessary nouns and verbs
129
+ */
130
+ initialize(): Promise<void>;
131
+ private _initialize;
132
+ /**
133
+ * Ensure the registry is initialized before operations
134
+ */
135
+ private ensureInitialized;
136
+ /**
137
+ * Get a function by name
138
+ */
139
+ get(name: string): DefinedFunction | undefined;
140
+ /**
141
+ * Get a function by name (async version for loading from storage)
142
+ */
143
+ getAsync(name: string): Promise<DefinedFunction | undefined>;
144
+ /**
145
+ * Store a function definition
146
+ */
147
+ set(name: string, fn: DefinedFunction): void;
148
+ /**
149
+ * Store a function definition (async version)
150
+ */
151
+ setAsync(name: string, fn: DefinedFunction): Promise<Thing<StoredFunctionDefinition>>;
152
+ /**
153
+ * Check if a function exists
154
+ */
155
+ has(name: string): boolean;
156
+ /**
157
+ * Check if a function exists (async version that also checks storage)
158
+ */
159
+ hasAsync(name: string): Promise<boolean>;
160
+ /**
161
+ * List all function names
162
+ */
163
+ list(): string[];
164
+ /**
165
+ * List all function names (async version that includes storage)
166
+ */
167
+ listAsync(): Promise<string[]>;
168
+ /**
169
+ * Delete a function
170
+ */
171
+ delete(name: string): boolean;
172
+ /**
173
+ * Delete a function (async version)
174
+ */
175
+ deleteAsync(name: string): Promise<boolean>;
176
+ /**
177
+ * Clear all functions
178
+ */
179
+ clear(): void;
180
+ /**
181
+ * Clear all functions (async version)
182
+ */
183
+ clearAsync(): Promise<void>;
184
+ /**
185
+ * Record a function call as an Action
186
+ */
187
+ trackCall(functionName: string, args: unknown): Promise<Action<FunctionCallData>>;
188
+ /**
189
+ * Record a successful function completion
190
+ */
191
+ trackCompletion(callActionId: string, result: unknown, duration?: number): Promise<Action<FunctionCallData>>;
192
+ /**
193
+ * Record a function failure
194
+ */
195
+ trackFailure(callActionId: string, error: string, duration?: number): Promise<Action<FunctionCallData>>;
196
+ /**
197
+ * Get call history for a function
198
+ */
199
+ getCallHistory(functionName: string): Promise<Action<FunctionCallData>[]>;
200
+ /**
201
+ * Get all recent function calls
202
+ */
203
+ getRecentCalls(limit?: number): Promise<Action<FunctionCallData>[]>;
204
+ /**
205
+ * Get the underlying provider for advanced operations
206
+ */
207
+ getProvider(): DigitalObjectsProvider;
208
+ }
209
+ /**
210
+ * Create a DigitalObjectsFunctionRegistry
211
+ *
212
+ * @param options - Configuration options including the provider
213
+ * @returns An initialized DigitalObjectsFunctionRegistry
214
+ *
215
+ * @example
216
+ * ```ts
217
+ * import { createMemoryProvider } from 'digital-objects'
218
+ * import { createDigitalObjectsRegistry } from 'ai-functions'
219
+ *
220
+ * const provider = createMemoryProvider()
221
+ * const registry = await createDigitalObjectsRegistry({ provider })
222
+ *
223
+ * // Use the registry
224
+ * registry.set('myFunc', definedFunction)
225
+ * const fn = registry.get('myFunc')
226
+ * ```
227
+ */
228
+ export declare function createDigitalObjectsRegistry(options: DigitalObjectsRegistryOptions): Promise<DigitalObjectsFunctionRegistry>;
229
+ //# sourceMappingURL=digital-objects-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digital-objects-registry.d.ts","sourceRoot":"","sources":["../src/digital-objects-registry.ts"],"names":[],"mappings":"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"}