experimental-ash 0.45.0 → 0.46.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/CHANGELOG.md +13 -0
  2. package/dist/docs/internals/discovery.md +1 -1
  3. package/dist/docs/internals/hooks.md +7 -10
  4. package/dist/docs/public/advanced/hooks.mdx +5 -68
  5. package/dist/docs/public/advanced/project-layout.md +14 -14
  6. package/dist/src/compiled/.vendor-stamp.json +3 -2
  7. package/dist/src/compiled/@ai-sdk/anthropic/index.js +1 -1
  8. package/dist/src/compiled/@ai-sdk/google/index.js +1 -1
  9. package/dist/src/compiled/@ai-sdk/mcp/index.js +1 -1
  10. package/dist/src/compiled/@ai-sdk/openai/index.js +1 -1
  11. package/dist/src/compiled/@chat-adapter/slack/index.js +4 -4
  12. package/dist/src/compiled/@vercel/oidc/index.js +2 -2
  13. package/dist/src/compiled/@vercel/sandbox/index.js +18 -18
  14. package/dist/src/compiled/@workflow/core/attribute-changes.d.ts +1 -1
  15. package/dist/src/compiled/@workflow/core/define-hook.d.ts +1 -1
  16. package/dist/src/compiled/@workflow/core/events-consumer.d.ts +1 -1
  17. package/dist/src/compiled/@workflow/core/index.js +2 -2
  18. package/dist/src/compiled/@workflow/core/runtime/get-world-lazy.d.ts +1 -1
  19. package/dist/src/compiled/@workflow/core/runtime/helpers.d.ts +1 -1
  20. package/dist/src/compiled/@workflow/core/runtime/resume-hook.d.ts +1 -1
  21. package/dist/src/compiled/@workflow/core/runtime/run.d.ts +1 -1
  22. package/dist/src/compiled/@workflow/core/runtime/runs.d.ts +1 -1
  23. package/dist/src/compiled/@workflow/core/runtime/start.d.ts +1 -1
  24. package/dist/src/compiled/@workflow/core/runtime/step-executor.d.ts +3 -1
  25. package/dist/src/compiled/@workflow/core/runtime/suspension-handler.d.ts +1 -1
  26. package/dist/src/compiled/@workflow/core/runtime/world.d.ts +1 -1
  27. package/dist/src/compiled/@workflow/core/runtime.d.ts +1 -1
  28. package/dist/src/compiled/@workflow/core/runtime.js +16 -16
  29. package/dist/src/compiled/@workflow/core/serialization/types.d.ts +6 -0
  30. package/dist/src/compiled/@workflow/core/serialization.d.ts +2 -1
  31. package/dist/src/compiled/@workflow/core/step/context-storage.d.ts +2 -0
  32. package/dist/src/compiled/@workflow/core/symbols.d.ts +6 -0
  33. package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
  34. package/dist/src/compiled/@workflow/core/workflow/define-hook.d.ts +1 -1
  35. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  36. package/dist/src/compiled/@workflow/world/LICENSE.md +201 -0
  37. package/dist/src/compiled/@workflow/world/attributes.d.ts +110 -0
  38. package/dist/src/compiled/@workflow/world/events.d.ts +415 -0
  39. package/dist/src/compiled/@workflow/world/hooks.d.ts +72 -0
  40. package/dist/src/compiled/@workflow/world/index.d.ts +25 -0
  41. package/dist/src/compiled/@workflow/world/index.js +1 -0
  42. package/dist/src/compiled/@workflow/world/interfaces.d.ts +264 -0
  43. package/dist/src/compiled/@workflow/world/queue.d.ts +120 -0
  44. package/dist/src/compiled/@workflow/world/recovery.d.ts +13 -0
  45. package/dist/src/compiled/@workflow/world/runs.d.ts +144 -0
  46. package/dist/src/compiled/@workflow/world/serialization.d.ts +25 -0
  47. package/dist/src/compiled/@workflow/world/shared.d.ts +83 -0
  48. package/dist/src/compiled/@workflow/world/spec-version.d.ts +46 -0
  49. package/dist/src/compiled/@workflow/world/steps.d.ts +70 -0
  50. package/dist/src/compiled/@workflow/world/ulid.d.ts +35 -0
  51. package/dist/src/compiled/@workflow/world/waits.d.ts +21 -0
  52. package/dist/src/compiled/_chunks/node/{token-CoIbMZkq.js → token-ORseRyWn.js} +1 -1
  53. package/dist/src/compiled/_chunks/workflow/{coerce-BhzIW-Hm.js → coerce-BTuSKQr5.js} +1 -1
  54. package/dist/src/compiled/_chunks/workflow/{compat-DcEvieoj.js → compat-CG1hDp-3.js} +1 -1
  55. package/dist/src/compiled/_chunks/workflow/{core-XWIi7wKc.js → core-5Woff_dW.js} +1 -1
  56. package/dist/src/compiled/_chunks/workflow/{dist-Dl-X5RB3.js → dist-Chj-QcBs.js} +1 -1
  57. package/dist/src/compiled/_chunks/workflow/resume-hook-BlALLgSA.js +12 -0
  58. package/dist/src/compiled/_chunks/workflow/{schemas-DmgDnhW3.js → schemas-DWOIBELG.js} +1 -1
  59. package/dist/src/compiled/_chunks/workflow/sleep-Bg0t23kF.js +1 -0
  60. package/dist/src/compiled/_chunks/workflow/{symbols-DygIC1sj.js → symbols-u476uwyR.js} +1 -1
  61. package/dist/src/compiled/_chunks/workflow/{token-D9z1dMB6.js → token-CcaAeZHd.js} +1 -1
  62. package/dist/src/compiled/_chunks/workflow/{token-DV7rQw_t.js → token-nK4u-N7w.js} +1 -1
  63. package/dist/src/compiled/commander/index.js +1 -1
  64. package/dist/src/compiled/experimental-ai-sdk-code-mode/index.js +1 -1
  65. package/dist/src/compiled/gray-matter/index.js +1 -1
  66. package/dist/src/compiled/just-bash/index.js +1 -1
  67. package/dist/src/compiled/zod/index.js +1 -1
  68. package/dist/src/compiled/zod-validation-error/index.js +1 -1
  69. package/dist/src/compiler/manifest.d.ts +11 -0
  70. package/dist/src/compiler/manifest.js +1 -1
  71. package/dist/src/compiler/module-map.js +1 -1
  72. package/dist/src/compiler/normalize-instructions.d.ts +27 -4
  73. package/dist/src/compiler/normalize-instructions.js +1 -1
  74. package/dist/src/compiler/normalize-manifest.js +3 -1
  75. package/dist/src/compiler/normalize-subagent.js +1 -1
  76. package/dist/src/context/dynamic-instruction-lifecycle.d.ts +26 -0
  77. package/dist/src/context/dynamic-instruction-lifecycle.js +1 -0
  78. package/dist/src/context/dynamic-skill-lifecycle.js +1 -1
  79. package/dist/src/context/hook-lifecycle.js +1 -1
  80. package/dist/src/discover/filesystem.d.ts +2 -2
  81. package/dist/src/discover/filesystem.js +1 -1
  82. package/dist/src/discover/grammar.d.ts +16 -10
  83. package/dist/src/discover/grammar.js +1 -1
  84. package/dist/src/discover/manifest.d.ts +10 -7
  85. package/dist/src/discover/manifest.js +1 -1
  86. package/dist/src/execution/durable-session-store.js +1 -1
  87. package/dist/src/execution/workflow-steps.js +1 -1
  88. package/dist/src/harness/compaction.js +1 -1
  89. package/dist/src/harness/tool-loop.js +1 -1
  90. package/dist/src/harness/types.d.ts +2 -4
  91. package/dist/src/internal/application/package.js +1 -1
  92. package/dist/src/internal/authored-definition/core.d.ts +3 -1
  93. package/dist/src/internal/helpers/markdown.d.ts +1 -1
  94. package/dist/src/internal/helpers/markdown.js +1 -1
  95. package/dist/src/node_modules/.pnpm/autoevals@0.0.132_ws@8.21.0/node_modules/autoevals/jsdist/index.js +2 -2
  96. package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/client.js +1 -1
  97. package/dist/src/node_modules/.pnpm/openai@6.39.1_ws@8.21.0_zod@3.25.76/node_modules/openai/version.js +1 -0
  98. package/dist/src/node_modules/.pnpm/zod-to-json-schema@3.25.2_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +1 -1
  99. package/dist/src/packages/ash-scaffold/src/channels.js +1 -1
  100. package/dist/src/public/channels/slack/blocks.js +1 -1
  101. package/dist/src/public/definitions/hook.d.ts +4 -19
  102. package/dist/src/public/definitions/instructions.d.ts +19 -7
  103. package/dist/src/public/definitions/instructions.js +1 -1
  104. package/dist/src/public/hooks/index.d.ts +1 -1
  105. package/dist/src/public/instructions/index.d.ts +4 -1
  106. package/dist/src/public/instructions/index.js +1 -1
  107. package/dist/src/runtime/resolve-agent.js +1 -1
  108. package/dist/src/runtime/resolve-dynamic-instructions.d.ts +4 -0
  109. package/dist/src/runtime/resolve-dynamic-instructions.js +1 -0
  110. package/dist/src/runtime/types.d.ts +11 -0
  111. package/dist/src/shared/dynamic-tool-definition.d.ts +12 -0
  112. package/dist/src/shared/dynamic-tool-definition.js +1 -1
  113. package/package.json +4 -4
  114. package/dist/src/compiled/@ai-sdk/anthropic/package.json +0 -7
  115. package/dist/src/compiled/@ai-sdk/google/package.json +0 -7
  116. package/dist/src/compiled/@ai-sdk/mcp/package.json +0 -7
  117. package/dist/src/compiled/@ai-sdk/openai/package.json +0 -7
  118. package/dist/src/compiled/@ai-sdk/otel/package.json +0 -7
  119. package/dist/src/compiled/@ai-sdk/provider/package.json +0 -7
  120. package/dist/src/compiled/@chat-adapter/slack/package.json +0 -7
  121. package/dist/src/compiled/@chat-adapter/state-memory/package.json +0 -7
  122. package/dist/src/compiled/@opentelemetry/api/package.json +0 -7
  123. package/dist/src/compiled/@standard-schema/spec/package.json +0 -7
  124. package/dist/src/compiled/@vercel/oidc/package.json +0 -7
  125. package/dist/src/compiled/@vercel/sandbox/package.json +0 -7
  126. package/dist/src/compiled/@workflow/core/_workflow-world.d.ts +0 -60
  127. package/dist/src/compiled/@workflow/core/package.json +0 -7
  128. package/dist/src/compiled/@workflow/errors/package.json +0 -7
  129. package/dist/src/compiled/_chunks/workflow/resume-hook-B2kqAsX6.js +0 -12
  130. package/dist/src/compiled/_chunks/workflow/sleep-kQ0UwHn0.js +0 -1
  131. package/dist/src/compiled/chat/package.json +0 -7
  132. package/dist/src/compiled/chokidar/package.json +0 -7
  133. package/dist/src/compiled/commander/package.json +0 -7
  134. package/dist/src/compiled/experimental-ai-sdk-code-mode/package.json +0 -7
  135. package/dist/src/compiled/gray-matter/package.json +0 -7
  136. package/dist/src/compiled/jose/package.json +0 -7
  137. package/dist/src/compiled/jsonc-parser/package.json +0 -7
  138. package/dist/src/compiled/just-bash/package.json +0 -7
  139. package/dist/src/compiled/picocolors/package.json +0 -7
  140. package/dist/src/compiled/turndown/package.json +0 -7
  141. package/dist/src/compiled/zod/package.json +0 -7
  142. package/dist/src/compiled/zod-validation-error/package.json +0 -7
  143. package/dist/src/node_modules/.pnpm/openai@6.39.0_ws@8.21.0_zod@3.25.76/node_modules/openai/version.js +0 -1
  144. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/_vendor/partial-json-parser/parser.js +0 -0
  145. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/auth/workload-identity-auth.js +0 -0
  146. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/azure.js +0 -0
  147. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/core/api-promise.js +0 -0
  148. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/core/error.js +0 -0
  149. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/core/pagination.js +0 -0
  150. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/core/resource.js +0 -0
  151. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/core/streaming.js +0 -0
  152. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/core/uploads.js +0 -0
  153. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/error.js +0 -0
  154. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/index.js +0 -0
  155. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/decoders/line.js +0 -0
  156. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/detect-platform.js +0 -0
  157. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/errors.js +0 -0
  158. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/headers.js +0 -0
  159. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/parse.js +0 -0
  160. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/qs/formats.js +0 -0
  161. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/qs/stringify.js +0 -0
  162. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/qs/utils.js +0 -0
  163. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/request-options.js +0 -0
  164. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/shims.js +0 -0
  165. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/to-file.js +0 -0
  166. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/tslib.js +0 -0
  167. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/uploads.js +0 -0
  168. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/utils/base64.js +0 -0
  169. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/utils/bytes.js +0 -0
  170. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/utils/env.js +0 -0
  171. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/utils/log.js +0 -0
  172. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/utils/path.js +0 -0
  173. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/utils/query.js +0 -0
  174. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/utils/sleep.js +0 -0
  175. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/utils/uuid.js +0 -0
  176. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/utils/values.js +0 -0
  177. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/internal/utils.js +0 -0
  178. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/lib/AbstractChatCompletionRunner.js +0 -0
  179. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/lib/AssistantStream.js +0 -0
  180. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/lib/ChatCompletionRunner.js +0 -0
  181. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/lib/ChatCompletionStream.js +0 -0
  182. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/lib/ChatCompletionStreamingRunner.js +0 -0
  183. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/lib/EventStream.js +0 -0
  184. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/lib/ResponsesParser.js +0 -0
  185. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/lib/RunnableFunction.js +0 -0
  186. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/lib/Util.js +0 -0
  187. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/lib/chatCompletionUtils.js +0 -0
  188. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/lib/parser.js +0 -0
  189. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/lib/responses/ResponseStream.js +0 -0
  190. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/admin.js +0 -0
  191. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/admin-api-keys.js +0 -0
  192. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/audit-logs.js +0 -0
  193. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/certificates.js +0 -0
  194. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/data-retention.js +0 -0
  195. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/groups/groups.js +0 -0
  196. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/groups/roles.js +0 -0
  197. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/groups/users.js +0 -0
  198. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/invites.js +0 -0
  199. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/organization.js +0 -0
  200. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/api-keys.js +0 -0
  201. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/certificates.js +0 -0
  202. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/data-retention.js +0 -0
  203. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/groups/groups.js +0 -0
  204. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/groups/roles.js +0 -0
  205. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/hosted-tool-permissions.js +0 -0
  206. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/model-permissions.js +0 -0
  207. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/projects.js +0 -0
  208. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/rate-limits.js +0 -0
  209. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/roles.js +0 -0
  210. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/service-accounts.js +0 -0
  211. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/spend-alerts.js +0 -0
  212. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/users/roles.js +0 -0
  213. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/projects/users/users.js +0 -0
  214. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/roles.js +0 -0
  215. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/spend-alerts.js +0 -0
  216. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/usage.js +0 -0
  217. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/users/roles.js +0 -0
  218. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/admin/organization/users/users.js +0 -0
  219. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/audio/audio.js +0 -0
  220. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/audio/speech.js +0 -0
  221. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/audio/transcriptions.js +0 -0
  222. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/audio/translations.js +0 -0
  223. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/batches.js +0 -0
  224. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/beta/assistants.js +0 -0
  225. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/beta/beta.js +0 -0
  226. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/beta/chatkit/chatkit.js +0 -0
  227. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/beta/chatkit/sessions.js +0 -0
  228. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/beta/chatkit/threads.js +0 -0
  229. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/beta/realtime/realtime.js +0 -0
  230. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/beta/realtime/sessions.js +0 -0
  231. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/beta/realtime/transcription-sessions.js +0 -0
  232. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/beta/threads/messages.js +0 -0
  233. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/beta/threads/runs/runs.js +0 -0
  234. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/beta/threads/runs/steps.js +0 -0
  235. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/beta/threads/threads.js +0 -0
  236. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/chat/chat.js +0 -0
  237. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/chat/completions/completions.js +0 -0
  238. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/chat/completions/index.js +0 -0
  239. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/chat/completions/messages.js +0 -0
  240. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/chat/index.js +0 -0
  241. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/completions.js +0 -0
  242. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/containers/containers.js +0 -0
  243. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/containers/files/content.js +0 -0
  244. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/containers/files/files.js +0 -0
  245. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/conversations/conversations.js +0 -0
  246. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/conversations/items.js +0 -0
  247. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/embeddings.js +0 -0
  248. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/evals/evals.js +0 -0
  249. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/evals/runs/output-items.js +0 -0
  250. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/evals/runs/runs.js +0 -0
  251. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/files.js +0 -0
  252. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/fine-tuning/alpha/alpha.js +0 -0
  253. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/fine-tuning/alpha/graders.js +0 -0
  254. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/fine-tuning/checkpoints/checkpoints.js +0 -0
  255. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/fine-tuning/checkpoints/permissions.js +0 -0
  256. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/fine-tuning/fine-tuning.js +0 -0
  257. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/fine-tuning/jobs/checkpoints.js +0 -0
  258. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/fine-tuning/jobs/jobs.js +0 -0
  259. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/fine-tuning/methods.js +0 -0
  260. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/graders/grader-models.js +0 -0
  261. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/graders/graders.js +0 -0
  262. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/images.js +0 -0
  263. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/index.js +0 -0
  264. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/models.js +0 -0
  265. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/moderations.js +0 -0
  266. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/realtime/calls.js +0 -0
  267. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/realtime/client-secrets.js +0 -0
  268. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/realtime/realtime.js +0 -0
  269. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/responses/input-items.js +0 -0
  270. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/responses/input-tokens.js +0 -0
  271. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/responses/responses.js +0 -0
  272. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/shared.js +0 -0
  273. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/skills/content.js +0 -0
  274. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/skills/skills.js +0 -0
  275. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/skills/versions/content.js +0 -0
  276. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/skills/versions/versions.js +0 -0
  277. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/uploads/parts.js +0 -0
  278. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/uploads/uploads.js +0 -0
  279. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/vector-stores/file-batches.js +0 -0
  280. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/vector-stores/files.js +0 -0
  281. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/vector-stores/vector-stores.js +0 -0
  282. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/videos.js +0 -0
  283. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/webhooks/index.js +0 -0
  284. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/webhooks/webhooks.js +0 -0
  285. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/resources/webhooks.js +0 -0
  286. /package/dist/src/node_modules/.pnpm/{openai@6.39.0_ws@8.21.0_zod@3.25.76 → openai@6.39.1_ws@8.21.0_zod@3.25.76}/node_modules/openai/streaming.js +0 -0
@@ -8,4 +8,4 @@ new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
8
8
 
9
9
  https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
10
10
  `);this.baseURL=l.baseURL,this.timeout=l.timeout??_a.DEFAULT_TIMEOUT,this.logger=l.logger??console;let u=`warn`;this.logLevel=u,this.logLevel=parseLogLevel(l.logLevel,`ClientOptions.logLevel`,this)??parseLogLevel(readEnv(`OPENAI_LOG`),`process.env['OPENAI_LOG']`,this)??u,this.fetchOptions=l.fetchOptions,this.maxRetries=l.maxRetries??2,this.fetch=l.fetch??getDefaultFetch(),__classPrivateFieldSet(this,_OpenAI_encoder,FallbackEncoder,`f`);let d=readEnv(`OPENAI_CUSTOM_HEADERS`);if(d){let e={};for(let t of d.split(`
11
- `)){let n=t.indexOf(`:`);n>=0&&(e[t.substring(0,n).trim()]=t.substring(n+1).trim())}l.defaultHeaders=buildHeaders([e,l.defaultHeaders])}this._options=l,s&&(this._workloadIdentityAuth=new WorkloadIdentityAuth(s,this.fetch)),this.apiKey=typeof n==`string`?n:null,this.adminAPIKey=r,this.organization=i,this.project=a,this.webhookSecret=o}withOptions(e){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this._options.apiKey,adminAPIKey:this.adminAPIKey,workloadIdentity:this._options.workloadIdentity,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:t},n={bearerAuth:!0,adminAPIKeyAuth:!0}){if(!(e.get(`authorization`)||e.get(`api-key`))&&!(t.has(`authorization`)||t.has(`api-key`))&&!(this._workloadIdentityAuth&&n.bearerAuth))throw Error(`Could not resolve authentication method. Expected either apiKey or adminAPIKey to be set. Or for one of the "Authorization" or "api-key" headers to be explicitly omitted`)}async authHeaders(e,t={bearerAuth:!0,adminAPIKeyAuth:!0}){return buildHeaders([t.bearerAuth?await this.bearerAuth(e):null,t.adminAPIKeyAuth?await this.adminAPIKeyAuth(e):null])}async bearerAuth(e){if(this._workloadIdentityAuth)return buildHeaders([{Authorization:`Bearer ${await this._workloadIdentityAuth.getToken()}`}]);if(this.apiKey!=null)return buildHeaders([{Authorization:`Bearer ${this.apiKey}`}])}async adminAPIKeyAuth(e){if(this.adminAPIKey!=null)return buildHeaders([{Authorization:`Bearer ${this.adminAPIKey}`}])}stringifyQuery(e){return stringifyQuery(e)}getUserAgent(){return`${this.constructor.name}/JS ${VERSION}`}defaultIdempotencyKey(){return`stainless-node-retry-${uuid4()}`}makeStatusError(e,t,n,r){return APIError.generate(e,t,n,r)}async _callApiKey(){let e=this._options.apiKey;if(typeof e!=`function`)return!1;let t;try{t=await e()}catch(e){throw e instanceof OpenAIError?e:new OpenAIError(`Failed to get token from 'apiKey' function: ${e.message}`,{cause:e})}if(typeof t!=`string`||!t)throw new OpenAIError(`Expected 'apiKey' function argument to return a string but it returned ${t}`);return this.apiKey=t,!0}buildURL(t,n,r){let i=!__classPrivateFieldGet(this,_OpenAI_instances,`m`,_OpenAI_baseURLOverridden).call(this)&&r||this.baseURL,a=isAbsoluteURL(t)?new URL(t):new URL(i+(i.endsWith(`/`)&&t.startsWith(`/`)?t.slice(1):t)),o=this.defaultQuery(),s=Object.fromEntries(a.searchParams);return(!isEmptyObj(o)||!isEmptyObj(s))&&(n={...s,...o,...n}),typeof n==`object`&&n&&!Array.isArray(n)&&(a.search=this.stringifyQuery(n)),a.toString()}async prepareOptions(e){(e.__security??{bearerAuth:!0}).bearerAuth&&await this._callApiKey()}async prepareRequest(e,{url:t,options:n}){}get(e,t){return this.methodRequest(`get`,e,t)}post(e,t){return this.methodRequest(`post`,e,t)}patch(e,t){return this.methodRequest(`patch`,e,t)}put(e,t){return this.methodRequest(`put`,e,t)}delete(e,t){return this.methodRequest(`delete`,e,t)}methodRequest(e,t,n){return this.request(Promise.resolve(n).then(n=>({method:e,path:t,...n})))}request(e,t=null){return new APIPromise(this,this.makeRequest(e,t,void 0))}async makeRequest(e,t,n){let s=await e,l=s.maxRetries??this.maxRetries;t??=l,await this.prepareOptions(s);let{req:u,url:d,timeout:f}=await this.buildRequest(s,{retryCount:l-t});await this.prepareRequest(u,{url:d,options:s});let p=`log_`+(Math.random()*(1<<24)|0).toString(16).padStart(6,`0`),m=n===void 0?``:`, retryOf: ${n}`,h=Date.now();if(loggerFor(this).debug(`[${p}] sending request`,formatRequestDetails({retryOfRequestLogID:n,method:s.method,url:d,options:s,headers:u.headers})),s.signal?.aborted)throw new APIUserAbortError;let g=s.__security??{bearerAuth:!0},_=new AbortController,v=await this.fetchWithAuth(d,u,f,_,g).catch(castToError),y=Date.now();if(v instanceof globalThis.Error){let e=`retrying, ${t} attempts remaining`;if(s.signal?.aborted)throw new APIUserAbortError;let r=isAbortError(v)||/timed? ?out/i.test(String(v)+(`cause`in v?String(v.cause):``));if(t)return loggerFor(this).info(`[${p}] connection ${r?`timed out`:`failed`} - ${e}`),loggerFor(this).debug(`[${p}] connection ${r?`timed out`:`failed`} (${e})`,formatRequestDetails({retryOfRequestLogID:n,url:d,durationMs:y-h,message:v.message})),this.retryRequest(s,t,n??p);throw loggerFor(this).info(`[${p}] connection ${r?`timed out`:`failed`} - error; no more retries left`),loggerFor(this).debug(`[${p}] connection ${r?`timed out`:`failed`} (error; no more retries left)`,formatRequestDetails({retryOfRequestLogID:n,url:d,durationMs:y-h,message:v.message})),v instanceof OAuthError||v instanceof SubjectTokenProviderError?v:r?new APIConnectionTimeoutError:new APIConnectionError({cause:v})}let b=`[${p}${m}${[...v.headers.entries()].filter(([e])=>e===`x-request-id`).map(([e,t])=>`, `+e+`: `+JSON.stringify(t)).join(``)}] ${u.method} ${d} ${v.ok?`succeeded`:`failed`} with status ${v.status} in ${y-h}ms`;if(!v.ok){if(v.status===401&&this._workloadIdentityAuth&&g.bearerAuth&&!s.__metadata?.hasStreamingBody&&!s.__metadata?.workloadIdentityTokenRefreshed)return await CancelReadableStream(v.body),this._workloadIdentityAuth.invalidateToken(),this.makeRequest({...s,__metadata:{...s.__metadata,workloadIdentityTokenRefreshed:!0}},t,n??p);let e=await this.shouldRetry(v);if(t&&e){let e=`retrying, ${t} attempts remaining`;return await CancelReadableStream(v.body),loggerFor(this).info(`${b} - ${e}`),loggerFor(this).debug(`[${p}] response error (${e})`,formatRequestDetails({retryOfRequestLogID:n,url:v.url,status:v.status,headers:v.headers,durationMs:y-h})),this.retryRequest(s,t,n??p,v.headers)}let i=e?`error; no more retries left`:`error; not retryable`;loggerFor(this).info(`${b} - ${i}`);let a=await v.text().catch(e=>castToError(e).message),o=safeJSON(a),c=o?void 0:a;throw loggerFor(this).debug(`[${p}] response error (${i})`,formatRequestDetails({retryOfRequestLogID:n,url:v.url,status:v.status,headers:v.headers,message:c,durationMs:Date.now()-h})),this.makeStatusError(v.status,o,c,v.headers)}return loggerFor(this).info(b),loggerFor(this).debug(`[${p}] response start`,formatRequestDetails({retryOfRequestLogID:n,url:v.url,status:v.status,headers:v.headers,durationMs:y-h})),{response:v,options:s,controller:_,requestLogID:p,retryOfRequestLogID:n,startTime:h}}getAPIList(e,t,n){return this.requestAPIList(t,n&&`then`in n?n.then(t=>({method:`get`,path:e,...t})):{method:`get`,path:e,...n})}requestAPIList(e,t){let n=this.makeRequest(t,null,void 0);return new PagePromise(this,n,e)}async fetchWithAuth(e,t,n,r,i={bearerAuth:!0,adminAPIKeyAuth:!0}){if(this._workloadIdentityAuth&&i.bearerAuth){let e=t.headers,n=e.get(`Authorization`);if(!n||n===`Bearer workload-identity-auth`){let t=await this._workloadIdentityAuth.getToken();e.set(`Authorization`,`Bearer ${t}`)}}return await this.fetchWithTimeout(e,t,n,r)}async fetchWithTimeout(e,t,n,r){let{signal:i,method:a,...o}=t||{},s=this._makeAbort(r);i&&i.addEventListener(`abort`,s,{once:!0});let c=setTimeout(s,n),l=globalThis.ReadableStream&&o.body instanceof globalThis.ReadableStream||typeof o.body==`object`&&o.body!==null&&Symbol.asyncIterator in o.body,u={signal:r.signal,...l?{duplex:`half`}:{},method:`GET`,...o};a&&(u.method=a.toUpperCase());try{return await this.fetch.call(void 0,e,u)}finally{clearTimeout(c)}}async shouldRetry(e){let t=e.headers.get(`x-should-retry`);return t===`true`?!0:t===`false`?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,t,n,r){let i,a=r?.get(`retry-after-ms`);if(a){let e=parseFloat(a);Number.isNaN(e)||(i=e)}let o=r?.get(`retry-after`);if(o&&!i){let e=parseFloat(o);i=Number.isNaN(e)?Date.parse(o)-Date.now():e*1e3}if(i===void 0){let n=e.maxRetries??this.maxRetries;i=this.calculateDefaultRetryTimeoutMillis(t,n)}return await sleep(i),this.makeRequest(e,t-1,n)}calculateDefaultRetryTimeoutMillis(e,t){let n=t-e;return Math.min(.5*2**n,8)*(1-Math.random()*.25)*1e3}async buildRequest(e,{retryCount:t=0}={}){let n={...e},{method:r,path:i,query:a,defaultBaseURL:o}=n,s=this.buildURL(i,a,o);`timeout`in n&&validatePositiveInteger(`timeout`,n.timeout),n.timeout=n.timeout??this.timeout;let{bodyHeaders:c,body:l,isStreamingBody:u}=this.buildBody({options:n});return u&&(e.__metadata={...e.__metadata,hasStreamingBody:!0}),{req:{method:r,headers:await this.buildHeaders({options:e,method:r,bodyHeaders:c,retryCount:t}),...n.signal&&{signal:n.signal},...globalThis.ReadableStream&&l instanceof globalThis.ReadableStream&&{duplex:`half`},...l&&{body:l},...this.fetchOptions??{},...n.fetchOptions??{}},url:s,timeout:n.timeout}}async buildHeaders({options:e,method:t,bodyHeaders:n,retryCount:r}){let i={};this.idempotencyHeader&&t!==`get`&&(e.idempotencyKey||=this.defaultIdempotencyKey(),i[this.idempotencyHeader]=e.idempotencyKey);let a=buildHeaders([i,{Accept:`application/json`,"User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(r),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...getPlatformHeaders(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(e,e.__security??{bearerAuth:!0}),this._options.defaultHeaders,n,e.headers]);return this.validateHeaders(a,e.__security??{bearerAuth:!0}),a.values}_makeAbort(e){return()=>e.abort()}buildBody({options:{body:t,headers:n}}){if(!t)return{bodyHeaders:void 0,body:void 0,isStreamingBody:!1};let r=buildHeaders([n]),i=globalThis.ReadableStream!==void 0&&t instanceof globalThis.ReadableStream,a=!i&&(typeof t==`string`||t instanceof ArrayBuffer||ArrayBuffer.isView(t)||globalThis.Blob!==void 0&&t instanceof globalThis.Blob||t instanceof URLSearchParams||t instanceof FormData);return ArrayBuffer.isView(t)||t instanceof ArrayBuffer||t instanceof DataView||typeof t==`string`&&r.values.has(`content-type`)||globalThis.Blob&&t instanceof globalThis.Blob||t instanceof FormData||t instanceof URLSearchParams||i?{bodyHeaders:void 0,body:t,isStreamingBody:!a}:typeof t==`object`&&(Symbol.asyncIterator in t||Symbol.iterator in t&&`next`in t&&typeof t.next==`function`)?{bodyHeaders:void 0,body:ReadableStreamFrom(t),isStreamingBody:!0}:typeof t==`object`&&r.values.get(`content-type`)===`application/x-www-form-urlencoded`?{bodyHeaders:{"content-type":`application/x-www-form-urlencoded`},body:this.stringifyQuery(t),isStreamingBody:!1}:{...__classPrivateFieldGet(this,_OpenAI_encoder,`f`).call(this,{body:t,headers:r}),isStreamingBody:!1}}};_a=OpenAI,_OpenAI_encoder=new WeakMap,_OpenAI_instances=new WeakSet,_OpenAI_baseURLOverridden=function(){return this.baseURL!==`https://api.openai.com/v1`},OpenAI.OpenAI=_a,OpenAI.DEFAULT_TIMEOUT=6e5,OpenAI.OpenAIError=OpenAIError,OpenAI.APIError=APIError,OpenAI.APIConnectionError=APIConnectionError,OpenAI.APIConnectionTimeoutError=APIConnectionTimeoutError,OpenAI.APIUserAbortError=APIUserAbortError,OpenAI.NotFoundError=NotFoundError,OpenAI.ConflictError=ConflictError,OpenAI.RateLimitError=RateLimitError,OpenAI.BadRequestError=BadRequestError,OpenAI.AuthenticationError=AuthenticationError,OpenAI.InternalServerError=InternalServerError,OpenAI.PermissionDeniedError=PermissionDeniedError,OpenAI.UnprocessableEntityError=UnprocessableEntityError,OpenAI.InvalidWebhookSignatureError=InvalidWebhookSignatureError,OpenAI.toFile=toFile,OpenAI.Completions=Completions,OpenAI.Chat=Chat,OpenAI.Embeddings=Embeddings,OpenAI.Files=Files,OpenAI.Images=Images,OpenAI.Audio=Audio,OpenAI.Moderations=Moderations,OpenAI.Models=Models,OpenAI.FineTuning=FineTuning,OpenAI.Graders=Graders,OpenAI.VectorStores=VectorStores,OpenAI.Webhooks=Webhooks,OpenAI.Beta=Beta,OpenAI.Batches=Batches,OpenAI.Uploads=Uploads,OpenAI.Admin=Admin,OpenAI.Responses=Responses,OpenAI.Realtime=Realtime,OpenAI.Conversations=Conversations,OpenAI.Evals=Evals,OpenAI.Containers=Containers,OpenAI.Skills=Skills,OpenAI.Videos=Videos;export{OpenAI};
11
+ `)){let n=t.indexOf(`:`);n>=0&&(e[t.substring(0,n).trim()]=t.substring(n+1).trim())}l.defaultHeaders=buildHeaders([e,l.defaultHeaders])}this._options=l,s&&(this._workloadIdentityAuth=new WorkloadIdentityAuth(s,this.fetch)),this.apiKey=typeof n==`string`?n:null,this.adminAPIKey=r,this.organization=i,this.project=a,this.webhookSecret=o}withOptions(e){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this._options.apiKey,adminAPIKey:this.adminAPIKey,workloadIdentity:this._options.workloadIdentity,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret,...e})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:e,nulls:t},n={bearerAuth:!0,adminAPIKeyAuth:!0}){if(!(e.get(`authorization`)||e.get(`api-key`))&&!(t.has(`authorization`)||t.has(`api-key`))&&!(this._workloadIdentityAuth&&n.bearerAuth))throw Error(`Could not resolve authentication method. Expected either apiKey or adminAPIKey to be set. Or for one of the "Authorization" or "api-key" headers to be explicitly omitted`)}async authHeaders(e,t={bearerAuth:!0,adminAPIKeyAuth:!0}){return buildHeaders([t.bearerAuth?await this.bearerAuth(e):null,t.adminAPIKeyAuth?await this.adminAPIKeyAuth(e):null])}async bearerAuth(e){if(this._workloadIdentityAuth)return buildHeaders([{Authorization:`Bearer ${await this._workloadIdentityAuth.getToken()}`}]);if(this.apiKey!=null)return buildHeaders([{Authorization:`Bearer ${this.apiKey}`}])}async adminAPIKeyAuth(e){if(this.adminAPIKey!=null)return buildHeaders([{Authorization:`Bearer ${this.adminAPIKey}`}])}stringifyQuery(e){return stringifyQuery(e)}getUserAgent(){return`${this.constructor.name}/JS ${VERSION}`}defaultIdempotencyKey(){return`stainless-node-retry-${uuid4()}`}makeStatusError(e,t,n,r){return APIError.generate(e,t,n,r)}async _callApiKey(){let e=this._options.apiKey;if(typeof e!=`function`)return!1;let t;try{t=await e()}catch(e){throw e instanceof OpenAIError?e:new OpenAIError(`Failed to get token from 'apiKey' function: ${e.message}`,{cause:e})}if(typeof t!=`string`||!t)throw new OpenAIError(`Expected 'apiKey' function argument to return a string but it returned ${t}`);return this.apiKey=t,!0}buildURL(t,n,r){let i=!__classPrivateFieldGet(this,_OpenAI_instances,`m`,_OpenAI_baseURLOverridden).call(this)&&r||this.baseURL,a=isAbsoluteURL(t)?new URL(t):new URL(i+(i.endsWith(`/`)&&t.startsWith(`/`)?t.slice(1):t)),o=this.defaultQuery(),s=Object.fromEntries(a.searchParams);return(!isEmptyObj(o)||!isEmptyObj(s))&&(n={...s,...o,...n}),typeof n==`object`&&n&&!Array.isArray(n)&&(a.search=this.stringifyQuery(n)),a.toString()}async prepareOptions(e){(e.__security??{bearerAuth:!0}).bearerAuth&&await this._callApiKey()}async prepareRequest(e,{url:t,options:n}){}get(e,t){return this.methodRequest(`get`,e,t)}post(e,t){return this.methodRequest(`post`,e,t)}patch(e,t){return this.methodRequest(`patch`,e,t)}put(e,t){return this.methodRequest(`put`,e,t)}delete(e,t){return this.methodRequest(`delete`,e,t)}methodRequest(e,t,n){return this.request(Promise.resolve(n).then(n=>({method:e,path:t,...n})))}request(e,t=null){return new APIPromise(this,this.makeRequest(e,t,void 0))}async makeRequest(e,t,n){let s=await e,l=s.maxRetries??this.maxRetries;t??=l,await this.prepareOptions(s);let{req:u,url:d,timeout:f}=await this.buildRequest(s,{retryCount:l-t});await this.prepareRequest(u,{url:d,options:s});let p=`log_`+(Math.random()*(1<<24)|0).toString(16).padStart(6,`0`),m=n===void 0?``:`, retryOf: ${n}`,h=Date.now();if(loggerFor(this).debug(`[${p}] sending request`,formatRequestDetails({retryOfRequestLogID:n,method:s.method,url:d,options:s,headers:u.headers})),s.signal?.aborted)throw new APIUserAbortError;let g=s.__security??{bearerAuth:!0},_=new AbortController,v=await this.fetchWithAuth(d,u,f,_,g).catch(castToError),y=Date.now();if(v instanceof globalThis.Error){let e=`retrying, ${t} attempts remaining`;if(s.signal?.aborted)throw new APIUserAbortError;let r=isAbortError(v)||/timed? ?out/i.test(String(v)+(`cause`in v?String(v.cause):``));if(t)return loggerFor(this).info(`[${p}] connection ${r?`timed out`:`failed`} - ${e}`),loggerFor(this).debug(`[${p}] connection ${r?`timed out`:`failed`} (${e})`,formatRequestDetails({retryOfRequestLogID:n,url:d,durationMs:y-h,message:v.message})),this.retryRequest(s,t,n??p);throw loggerFor(this).info(`[${p}] connection ${r?`timed out`:`failed`} - error; no more retries left`),loggerFor(this).debug(`[${p}] connection ${r?`timed out`:`failed`} (error; no more retries left)`,formatRequestDetails({retryOfRequestLogID:n,url:d,durationMs:y-h,message:v.message})),v instanceof OAuthError||v instanceof SubjectTokenProviderError?v:r?new APIConnectionTimeoutError:new APIConnectionError({message:getConnectionErrorMessage(v),cause:v})}let b=`[${p}${m}${[...v.headers.entries()].filter(([e])=>e===`x-request-id`).map(([e,t])=>`, `+e+`: `+JSON.stringify(t)).join(``)}] ${u.method} ${d} ${v.ok?`succeeded`:`failed`} with status ${v.status} in ${y-h}ms`;if(!v.ok){if(v.status===401&&this._workloadIdentityAuth&&g.bearerAuth&&!s.__metadata?.hasStreamingBody&&!s.__metadata?.workloadIdentityTokenRefreshed)return await CancelReadableStream(v.body),this._workloadIdentityAuth.invalidateToken(),this.makeRequest({...s,__metadata:{...s.__metadata,workloadIdentityTokenRefreshed:!0}},t,n??p);let e=await this.shouldRetry(v);if(t&&e){let e=`retrying, ${t} attempts remaining`;return await CancelReadableStream(v.body),loggerFor(this).info(`${b} - ${e}`),loggerFor(this).debug(`[${p}] response error (${e})`,formatRequestDetails({retryOfRequestLogID:n,url:v.url,status:v.status,headers:v.headers,durationMs:y-h})),this.retryRequest(s,t,n??p,v.headers)}let i=e?`error; no more retries left`:`error; not retryable`;loggerFor(this).info(`${b} - ${i}`);let a=await v.text().catch(e=>castToError(e).message),o=safeJSON(a),c=o?void 0:a;throw loggerFor(this).debug(`[${p}] response error (${i})`,formatRequestDetails({retryOfRequestLogID:n,url:v.url,status:v.status,headers:v.headers,message:c,durationMs:Date.now()-h})),this.makeStatusError(v.status,o,c,v.headers)}return loggerFor(this).info(b),loggerFor(this).debug(`[${p}] response start`,formatRequestDetails({retryOfRequestLogID:n,url:v.url,status:v.status,headers:v.headers,durationMs:y-h})),{response:v,options:s,controller:_,requestLogID:p,retryOfRequestLogID:n,startTime:h}}getAPIList(e,t,n){return this.requestAPIList(t,n&&`then`in n?n.then(t=>({method:`get`,path:e,...t})):{method:`get`,path:e,...n})}requestAPIList(e,t){let n=this.makeRequest(t,null,void 0);return new PagePromise(this,n,e)}async fetchWithAuth(e,t,n,r,i={bearerAuth:!0,adminAPIKeyAuth:!0}){if(this._workloadIdentityAuth&&i.bearerAuth){let e=t.headers,n=e.get(`Authorization`);if(!n||n===`Bearer workload-identity-auth`){let t=await this._workloadIdentityAuth.getToken();e.set(`Authorization`,`Bearer ${t}`)}}return await this.fetchWithTimeout(e,t,n,r)}async fetchWithTimeout(e,t,n,r){let{signal:i,method:a,...o}=t||{},s=this._makeAbort(r);i&&i.addEventListener(`abort`,s,{once:!0});let c=setTimeout(s,n),l=globalThis.ReadableStream&&o.body instanceof globalThis.ReadableStream||typeof o.body==`object`&&o.body!==null&&Symbol.asyncIterator in o.body,u={signal:r.signal,...l?{duplex:`half`}:{},method:`GET`,...o};a&&(u.method=a.toUpperCase());try{return await this.fetch.call(void 0,e,u)}finally{clearTimeout(c)}}async shouldRetry(e){let t=e.headers.get(`x-should-retry`);return t===`true`?!0:t===`false`?!1:e.status===408||e.status===409||e.status===429||e.status>=500}async retryRequest(e,t,n,r){let i,a=r?.get(`retry-after-ms`);if(a){let e=parseFloat(a);Number.isNaN(e)||(i=e)}let o=r?.get(`retry-after`);if(o&&!i){let e=parseFloat(o);i=Number.isNaN(e)?Date.parse(o)-Date.now():e*1e3}if(i===void 0){let n=e.maxRetries??this.maxRetries;i=this.calculateDefaultRetryTimeoutMillis(t,n)}return await sleep(i),this.makeRequest(e,t-1,n)}calculateDefaultRetryTimeoutMillis(e,t){let n=t-e;return Math.min(.5*2**n,8)*(1-Math.random()*.25)*1e3}async buildRequest(e,{retryCount:t=0}={}){let n={...e},{method:r,path:i,query:a,defaultBaseURL:o}=n,s=this.buildURL(i,a,o);`timeout`in n&&validatePositiveInteger(`timeout`,n.timeout),n.timeout=n.timeout??this.timeout;let{bodyHeaders:c,body:l,isStreamingBody:u}=this.buildBody({options:n});return u&&(e.__metadata={...e.__metadata,hasStreamingBody:!0}),{req:{method:r,headers:await this.buildHeaders({options:e,method:r,bodyHeaders:c,retryCount:t}),...n.signal&&{signal:n.signal},...globalThis.ReadableStream&&l instanceof globalThis.ReadableStream&&{duplex:`half`},...l&&{body:l},...this.fetchOptions??{},...n.fetchOptions??{}},url:s,timeout:n.timeout}}async buildHeaders({options:e,method:t,bodyHeaders:n,retryCount:r}){let i={};this.idempotencyHeader&&t!==`get`&&(e.idempotencyKey||=this.defaultIdempotencyKey(),i[this.idempotencyHeader]=e.idempotencyKey);let a=buildHeaders([i,{Accept:`application/json`,"User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(r),...e.timeout?{"X-Stainless-Timeout":String(Math.trunc(e.timeout/1e3))}:{},...getPlatformHeaders(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(e,e.__security??{bearerAuth:!0}),this._options.defaultHeaders,n,e.headers]);return this.validateHeaders(a,e.__security??{bearerAuth:!0}),a.values}_makeAbort(e){return()=>e.abort()}buildBody({options:{body:t,headers:n}}){if(!t)return{bodyHeaders:void 0,body:void 0,isStreamingBody:!1};let r=buildHeaders([n]),i=globalThis.ReadableStream!==void 0&&t instanceof globalThis.ReadableStream,a=!i&&(typeof t==`string`||t instanceof ArrayBuffer||ArrayBuffer.isView(t)||globalThis.Blob!==void 0&&t instanceof globalThis.Blob||t instanceof URLSearchParams||t instanceof FormData);return ArrayBuffer.isView(t)||t instanceof ArrayBuffer||t instanceof DataView||typeof t==`string`&&r.values.has(`content-type`)||globalThis.Blob&&t instanceof globalThis.Blob||t instanceof FormData||t instanceof URLSearchParams||i?{bodyHeaders:void 0,body:t,isStreamingBody:!a}:typeof t==`object`&&(Symbol.asyncIterator in t||Symbol.iterator in t&&`next`in t&&typeof t.next==`function`)?{bodyHeaders:void 0,body:ReadableStreamFrom(t),isStreamingBody:!0}:typeof t==`object`&&r.values.get(`content-type`)===`application/x-www-form-urlencoded`?{bodyHeaders:{"content-type":`application/x-www-form-urlencoded`},body:this.stringifyQuery(t),isStreamingBody:!1}:{...__classPrivateFieldGet(this,_OpenAI_encoder,`f`).call(this,{body:t,headers:r}),isStreamingBody:!1}}};_a=OpenAI,_OpenAI_encoder=new WeakMap,_OpenAI_instances=new WeakSet,_OpenAI_baseURLOverridden=function(){return this.baseURL!==`https://api.openai.com/v1`},OpenAI.OpenAI=_a,OpenAI.DEFAULT_TIMEOUT=6e5,OpenAI.OpenAIError=OpenAIError,OpenAI.APIError=APIError,OpenAI.APIConnectionError=APIConnectionError,OpenAI.APIConnectionTimeoutError=APIConnectionTimeoutError,OpenAI.APIUserAbortError=APIUserAbortError,OpenAI.NotFoundError=NotFoundError,OpenAI.ConflictError=ConflictError,OpenAI.RateLimitError=RateLimitError,OpenAI.BadRequestError=BadRequestError,OpenAI.AuthenticationError=AuthenticationError,OpenAI.InternalServerError=InternalServerError,OpenAI.PermissionDeniedError=PermissionDeniedError,OpenAI.UnprocessableEntityError=UnprocessableEntityError,OpenAI.InvalidWebhookSignatureError=InvalidWebhookSignatureError,OpenAI.toFile=toFile,OpenAI.Completions=Completions,OpenAI.Chat=Chat,OpenAI.Embeddings=Embeddings,OpenAI.Files=Files,OpenAI.Images=Images,OpenAI.Audio=Audio,OpenAI.Moderations=Moderations,OpenAI.Models=Models,OpenAI.FineTuning=FineTuning,OpenAI.Graders=Graders,OpenAI.VectorStores=VectorStores,OpenAI.Webhooks=Webhooks,OpenAI.Beta=Beta,OpenAI.Batches=Batches,OpenAI.Uploads=Uploads,OpenAI.Admin=Admin,OpenAI.Responses=Responses,OpenAI.Realtime=Realtime,OpenAI.Conversations=Conversations,OpenAI.Evals=Evals,OpenAI.Containers=Containers,OpenAI.Skills=Skills,OpenAI.Videos=Videos;function getConnectionErrorMessage(e){if(isUndiciDispatcherVersionMismatchError(e))return`Connection error. This may be caused by passing an undici dispatcher, such as ProxyAgent, that is incompatible with the fetch implementation. If you are using undici's ProxyAgent, pass the fetch implementation from the same undici package: import { fetch, ProxyAgent } from 'undici'; new OpenAI({ fetch, fetchOptions: { dispatcher: new ProxyAgent(...) } });`}function isUndiciDispatcherVersionMismatchError(e){let t=e;for(let e=0;e<8&&t&&typeof t==`object`;e++){let e=t;if(e.code===`UND_ERR_INVALID_ARG`&&typeof e.message==`string`&&e.message.includes(`invalid onRequestStart method`))return!0;t=e.cause}return!1}export{OpenAI};
@@ -0,0 +1 @@
1
+ const VERSION=`6.39.1`;export{VERSION};
@@ -1,3 +1,3 @@
1
- import{setResponseValueAndErrors}from"../errorMessages.js";let emojiRegex;const zodPatterns={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(emojiRegex===void 0&&(emojiRegex=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)),emojiRegex),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function parseStringDef(t,r){let i={type:`string`};if(t.checks)for(let a of t.checks)switch(a.kind){case`min`:setResponseValueAndErrors(i,`minLength`,typeof i.minLength==`number`?Math.max(i.minLength,a.value):a.value,a.message,r);break;case`max`:setResponseValueAndErrors(i,`maxLength`,typeof i.maxLength==`number`?Math.min(i.maxLength,a.value):a.value,a.message,r);break;case`email`:switch(r.emailStrategy){case`format:email`:addFormat(i,`email`,a.message,r);break;case`format:idn-email`:addFormat(i,`idn-email`,a.message,r);break;case`pattern:zod`:addPattern(i,zodPatterns.email,a.message,r);break}break;case`url`:addFormat(i,`uri`,a.message,r);break;case`uuid`:addFormat(i,`uuid`,a.message,r);break;case`regex`:addPattern(i,a.regex,a.message,r);break;case`cuid`:addPattern(i,zodPatterns.cuid,a.message,r);break;case`cuid2`:addPattern(i,zodPatterns.cuid2,a.message,r);break;case`startsWith`:addPattern(i,RegExp(`^${escapeLiteralCheckValue(a.value,r)}`),a.message,r);break;case`endsWith`:addPattern(i,RegExp(`${escapeLiteralCheckValue(a.value,r)}$`),a.message,r);break;case`datetime`:addFormat(i,`date-time`,a.message,r);break;case`date`:addFormat(i,`date`,a.message,r);break;case`time`:addFormat(i,`time`,a.message,r);break;case`duration`:addFormat(i,`duration`,a.message,r);break;case`length`:setResponseValueAndErrors(i,`minLength`,typeof i.minLength==`number`?Math.max(i.minLength,a.value):a.value,a.message,r),setResponseValueAndErrors(i,`maxLength`,typeof i.maxLength==`number`?Math.min(i.maxLength,a.value):a.value,a.message,r);break;case`includes`:addPattern(i,RegExp(escapeLiteralCheckValue(a.value,r)),a.message,r);break;case`ip`:a.version!==`v6`&&addFormat(i,`ipv4`,a.message,r),a.version!==`v4`&&addFormat(i,`ipv6`,a.message,r);break;case`base64url`:addPattern(i,zodPatterns.base64url,a.message,r);break;case`jwt`:addPattern(i,zodPatterns.jwt,a.message,r);break;case`cidr`:a.version!==`v6`&&addPattern(i,zodPatterns.ipv4Cidr,a.message,r),a.version!==`v4`&&addPattern(i,zodPatterns.ipv6Cidr,a.message,r);break;case`emoji`:addPattern(i,zodPatterns.emoji(),a.message,r);break;case`ulid`:addPattern(i,zodPatterns.ulid,a.message,r);break;case`base64`:switch(r.base64Strategy){case`format:binary`:addFormat(i,`binary`,a.message,r);break;case`contentEncoding:base64`:setResponseValueAndErrors(i,`contentEncoding`,`base64`,a.message,r);break;case`pattern:zod`:addPattern(i,zodPatterns.base64,a.message,r);break}break;case`nanoid`:addPattern(i,zodPatterns.nanoid,a.message,r);case`toLowerCase`:case`toUpperCase`:case`trim`:break;default:(e=>{})(a)}return i}function escapeLiteralCheckValue(e,t){return t.patternStrategy===`escape`?escapeNonAlphaNumeric(e):e}const ALPHA_NUMERIC=new Set(`ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789`);function escapeNonAlphaNumeric(e){let t=``;for(let n=0;n<e.length;n++)ALPHA_NUMERIC.has(e[n])||(t+=`\\`),t+=e[n];return t}function addFormat(t,n,r,i){t.format||t.anyOf?.some(e=>e.format)?(t.anyOf||=[],t.format&&(t.anyOf.push({format:t.format,...t.errorMessage&&i.errorMessages&&{errorMessage:{format:t.errorMessage.format}}}),delete t.format,t.errorMessage&&(delete t.errorMessage.format,Object.keys(t.errorMessage).length===0&&delete t.errorMessage)),t.anyOf.push({format:n,...r&&i.errorMessages&&{errorMessage:{format:r}}})):setResponseValueAndErrors(t,`format`,n,r,i)}function addPattern(t,n,r,i){t.pattern||t.allOf?.some(e=>e.pattern)?(t.allOf||=[],t.pattern&&(t.allOf.push({pattern:t.pattern,...t.errorMessage&&i.errorMessages&&{errorMessage:{pattern:t.errorMessage.pattern}}}),delete t.pattern,t.errorMessage&&(delete t.errorMessage.pattern,Object.keys(t.errorMessage).length===0&&delete t.errorMessage)),t.allOf.push({pattern:stringifyRegExpWithFlags(n,i),...r&&i.errorMessages&&{errorMessage:{pattern:r}}})):setResponseValueAndErrors(t,`pattern`,stringifyRegExpWithFlags(n,i),r,i)}function stringifyRegExpWithFlags(e,t){if(!t.applyRegexFlags||!e.flags)return e.source;let n={i:e.flags.includes(`i`),m:e.flags.includes(`m`),s:e.flags.includes(`s`)},r=n.i?e.source.toLowerCase():e.source,i=``,a=!1,o=!1,s=!1;for(let e=0;e<r.length;e++){if(a){i+=r[e],a=!1;continue}if(n.i){if(o){if(r[e].match(/[a-z]/)){s?(i+=r[e],i+=`${r[e-2]}-${r[e]}`.toUpperCase(),s=!1):r[e+1]===`-`&&r[e+2]?.match(/[a-z]/)?(i+=r[e],s=!0):i+=`${r[e]}${r[e].toUpperCase()}`;continue}}else if(r[e].match(/[a-z]/)){i+=`[${r[e]}${r[e].toUpperCase()}]`;continue}}if(n.m){if(r[e]===`^`){i+=`(^|(?<=[\r
1
+ import{setResponseValueAndErrors}from"../errorMessages.js";let emojiRegex;const zodPatterns={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(emojiRegex===void 0&&(emojiRegex=RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)),emojiRegex),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function parseStringDef(t,r){let i={type:`string`};if(t.checks)for(let a of t.checks)switch(a.kind){case`min`:setResponseValueAndErrors(i,`minLength`,typeof i.minLength==`number`?Math.max(i.minLength,a.value):a.value,a.message,r);break;case`max`:setResponseValueAndErrors(i,`maxLength`,typeof i.maxLength==`number`?Math.min(i.maxLength,a.value):a.value,a.message,r);break;case`email`:switch(r.emailStrategy){case`format:email`:addFormat(i,`email`,a.message,r);break;case`format:idn-email`:addFormat(i,`idn-email`,a.message,r);break;case`pattern:zod`:addPattern(i,zodPatterns.email,a.message,r);break}break;case`url`:addFormat(i,`uri`,a.message,r);break;case`uuid`:addFormat(i,`uuid`,a.message,r);break;case`regex`:addPattern(i,a.regex,a.message,r);break;case`cuid`:addPattern(i,zodPatterns.cuid,a.message,r);break;case`cuid2`:addPattern(i,zodPatterns.cuid2,a.message,r);break;case`startsWith`:addPattern(i,RegExp(`^${escapeLiteralCheckValue(a.value,r)}`),a.message,r);break;case`endsWith`:addPattern(i,RegExp(`${escapeLiteralCheckValue(a.value,r)}$`),a.message,r);break;case`datetime`:addFormat(i,`date-time`,a.message,r);break;case`date`:addFormat(i,`date`,a.message,r);break;case`time`:addFormat(i,`time`,a.message,r);break;case`duration`:addFormat(i,`duration`,a.message,r);break;case`length`:setResponseValueAndErrors(i,`minLength`,typeof i.minLength==`number`?Math.max(i.minLength,a.value):a.value,a.message,r),setResponseValueAndErrors(i,`maxLength`,typeof i.maxLength==`number`?Math.min(i.maxLength,a.value):a.value,a.message,r);break;case`includes`:addPattern(i,RegExp(escapeLiteralCheckValue(a.value,r)),a.message,r);break;case`ip`:a.version!==`v6`&&addFormat(i,`ipv4`,a.message,r),a.version!==`v4`&&addFormat(i,`ipv6`,a.message,r);break;case`base64url`:addPattern(i,zodPatterns.base64url,a.message,r);break;case`jwt`:addPattern(i,zodPatterns.jwt,a.message,r);break;case`cidr`:a.version!==`v6`&&addPattern(i,zodPatterns.ipv4Cidr,a.message,r),a.version!==`v4`&&addPattern(i,zodPatterns.ipv6Cidr,a.message,r);break;case`emoji`:addPattern(i,zodPatterns.emoji(),a.message,r);break;case`ulid`:addPattern(i,zodPatterns.ulid,a.message,r);break;case`base64`:switch(r.base64Strategy){case`format:binary`:addFormat(i,`binary`,a.message,r);break;case`contentEncoding:base64`:setResponseValueAndErrors(i,`contentEncoding`,`base64`,a.message,r);break;case`pattern:zod`:addPattern(i,zodPatterns.base64,a.message,r);break}break;case`nanoid`:addPattern(i,zodPatterns.nanoid,a.message,r);case`toLowerCase`:case`toUpperCase`:case`trim`:break;default:}return i}function escapeLiteralCheckValue(e,t){return t.patternStrategy===`escape`?escapeNonAlphaNumeric(e):e}const ALPHA_NUMERIC=new Set(`ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789`);function escapeNonAlphaNumeric(e){let t=``;for(let n=0;n<e.length;n++)ALPHA_NUMERIC.has(e[n])||(t+=`\\`),t+=e[n];return t}function addFormat(t,n,r,i){t.format||t.anyOf?.some(e=>e.format)?(t.anyOf||=[],t.format&&(t.anyOf.push({format:t.format,...t.errorMessage&&i.errorMessages&&{errorMessage:{format:t.errorMessage.format}}}),delete t.format,t.errorMessage&&(delete t.errorMessage.format,Object.keys(t.errorMessage).length===0&&delete t.errorMessage)),t.anyOf.push({format:n,...r&&i.errorMessages&&{errorMessage:{format:r}}})):setResponseValueAndErrors(t,`format`,n,r,i)}function addPattern(t,n,r,i){t.pattern||t.allOf?.some(e=>e.pattern)?(t.allOf||=[],t.pattern&&(t.allOf.push({pattern:t.pattern,...t.errorMessage&&i.errorMessages&&{errorMessage:{pattern:t.errorMessage.pattern}}}),delete t.pattern,t.errorMessage&&(delete t.errorMessage.pattern,Object.keys(t.errorMessage).length===0&&delete t.errorMessage)),t.allOf.push({pattern:stringifyRegExpWithFlags(n,i),...r&&i.errorMessages&&{errorMessage:{pattern:r}}})):setResponseValueAndErrors(t,`pattern`,stringifyRegExpWithFlags(n,i),r,i)}function stringifyRegExpWithFlags(e,t){if(!t.applyRegexFlags||!e.flags)return e.source;let n={i:e.flags.includes(`i`),m:e.flags.includes(`m`),s:e.flags.includes(`s`)},r=n.i?e.source.toLowerCase():e.source,i=``,a=!1,o=!1,s=!1;for(let e=0;e<r.length;e++){if(a){i+=r[e],a=!1;continue}if(n.i){if(o){if(r[e].match(/[a-z]/)){s?(i+=r[e],i+=`${r[e-2]}-${r[e]}`.toUpperCase(),s=!1):r[e+1]===`-`&&r[e+2]?.match(/[a-z]/)?(i+=r[e],s=!0):i+=`${r[e]}${r[e].toUpperCase()}`;continue}}else if(r[e].match(/[a-z]/)){i+=`[${r[e]}${r[e].toUpperCase()}]`;continue}}if(n.m){if(r[e]===`^`){i+=`(^|(?<=[\r
2
2
  ]))`;continue}else if(r[e]===`$`){i+=`($|(?=[\r
3
3
  ]))`;continue}}if(n.s&&r[e]===`.`){i+=o?`${r[e]}\r\n`:`[${r[e]}\r\n]`;continue}i+=r[e],r[e]===`\\`?a=!0:o&&r[e]===`]`?o=!1:!o&&r[e]===`[`&&(o=!0)}try{new RegExp(i)}catch{return console.warn(`Could not convert regex pattern at ${t.currentPath.join(`/`)} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return i}export{parseStringDef,zodPatterns};
@@ -1,4 +1,4 @@
1
- import{getSupportedModuleBaseName,matchesSupportedModuleBaseName}from"./module-files.js";import{pathExists,writeTextFile}from"./files.js";import{PNPM_WORKSPACE_PATH,ensurePnpmWorkspacePolicy}from"./pnpm-workspace.js";import{WEB_APP_TEMPLATE_FILES,WEB_APP_TEMPLATE_PACKAGE_JSON}from"./web-template.js";import"./project.js";import{patchPackageJson}from"./package-json.js";import{basename,join,resolve}from"node:path";import{readFile,readdir,writeFile}from"node:fs/promises";const SLACK_CHANNEL_DEFAULT_ROUTE=`/ash/v1/slack`,DEFAULT_SLACK_CONNECTOR_SLUG=`my-agent`,PACKAGE_DEPENDENCY_FIELDS=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`],WEB_VERCEL_JSON_PATH=`vercel.json`,WEB_VERCEL_JSON_SCHEMA=`https://openapi.vercel.sh/vercel.json`,WEB_DEFAULT_VERCEL_SERVICES={web:{entrypoint:`.`,framework:`nextjs`,routePrefix:`/`},ash:{buildCommand:`ash build`,entrypoint:`.`,framework:`ash`,routePrefix:`/_ash_internal/ash`}};function toSlackConnectorSlug(e){return e}function isJsonObject(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function readDependencyVersion(e,t){let n=JSON.parse(await readFile(e,`utf8`));if(!isJsonObject(n)||!isJsonObject(n.dependencies))return;let r=n.dependencies[t];return typeof r==`string`?r:void 0}function packageJsonHasDependency(e,t){for(let n of PACKAGE_DEPENDENCY_FIELDS){let r=e[n];if(isJsonObject(r)&&typeof r[t]==`string`)return!0}return!1}async function hasPackageDependency(e,t){if(!await pathExists(e))return!1;let r=JSON.parse(await readFile(e,`utf8`));return isJsonObject(r)&&packageJsonHasDependency(r,t)}async function ensurePackageDependency(e,t,r){return!await pathExists(e)||await readDependencyVersion(e,t)===r?[]:(await patchPackageJson(e,{dependencies:{[t]:r}}),[{path:e,dependencies:[t],devDependencies:[],scripts:[]}])}function resolveWebPackageVersions(e){return{ashPackageVersion:e?.ashPackageVersion??`0.45.0`,aiPackageVersion:e?.aiPackageVersion??`7.0.0-canary.159`,nextPackageVersion:e?.nextPackageVersion??`16.2.6`,reactPackageVersion:e?.reactPackageVersion??`19.2.6`,reactDomPackageVersion:e?.reactDomPackageVersion??`19.2.6`,streamdownPackageVersion:e?.streamdownPackageVersion??`2.5.0`,zodPackageVersion:e?.zodPackageVersion??`4.4.3`,tsgoPackageVersion:e?.tsgoPackageVersion??`7.0.0-dev.20260523.1`,typesNodePackageVersion:e?.typesNodePackageVersion??`25.9.1`,typesReactPackageVersion:e?.typesReactPackageVersion??`19.2.15`,typesReactDomPackageVersion:e?.typesReactDomPackageVersion??`19.2.3`}}function formatAshDependencySpecifier(e){return/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z-.]+)?$/.test(e)?`^${e}`:e}async function patchWebPackageJson(e,t){if(!await pathExists(e))return[];assertStampedVersion(`ashPackageVersion`,t.ashPackageVersion),assertStampedVersion(`aiPackageVersion`,t.aiPackageVersion),assertStampedVersion(`nextPackageVersion`,t.nextPackageVersion),assertStampedVersion(`reactPackageVersion`,t.reactPackageVersion),assertStampedVersion(`reactDomPackageVersion`,t.reactDomPackageVersion),assertStampedVersion(`streamdownPackageVersion`,t.streamdownPackageVersion),assertStampedVersion(`zodPackageVersion`,t.zodPackageVersion),assertStampedVersion(`tsgoPackageVersion`,t.tsgoPackageVersion),assertStampedVersion(`typesNodePackageVersion`,t.typesNodePackageVersion),assertStampedVersion(`typesReactPackageVersion`,t.typesReactPackageVersion),assertStampedVersion(`typesReactDomPackageVersion`,t.typesReactDomPackageVersion);let r={...WEB_APP_TEMPLATE_PACKAGE_JSON.dependencies,ai:t.aiPackageVersion,"experimental-ash":formatAshDependencySpecifier(t.ashPackageVersion),next:t.nextPackageVersion,react:t.reactPackageVersion,"react-dom":t.reactDomPackageVersion,streamdown:t.streamdownPackageVersion,zod:t.zodPackageVersion},i={...WEB_APP_TEMPLATE_PACKAGE_JSON.devDependencies,"@types/node":t.typesNodePackageVersion,"@types/react":t.typesReactPackageVersion,"@types/react-dom":t.typesReactDomPackageVersion,"@typescript/native-preview":t.tsgoPackageVersion},a=WEB_APP_TEMPLATE_PACKAGE_JSON.scripts;return await patchPackageJson(e,{dependencies:r,devDependencies:i,scripts:a}),[{path:e,dependencies:Object.keys(r),devDependencies:Object.keys(i),scripts:Object.keys(a)}]}function normalizeSlackConnectorSlug(e){return toSlackConnectorSlug((e.trim().replace(/^@/,``).split(`/`).at(-1)??``).toLowerCase().replace(/[^a-z0-9_-]+/g,`-`).replace(/^[^a-z0-9]+/,``).replace(/[^a-z0-9]+$/,``).slice(0,100).replace(/[^a-z0-9]+$/,``)||`my-agent`)}async function deriveSlackConnectorSlug(e,t){if(t!==void 0&&t.length>0&&t!==`.`)return normalizeSlackConnectorSlug(t);try{let t=await readFile(join(e,`package.json`),`utf8`),n=JSON.parse(t);if(typeof n.name==`string`&&n.name.length>0)return normalizeSlackConnectorSlug(n.name)}catch{}return normalizeSlackConnectorSlug(basename(resolve(e))||`my-agent`)}function buildSlackTemplate(e){return`import { connectSlackCredentials } from "@vercel/connect/ash";
1
+ import{getSupportedModuleBaseName,matchesSupportedModuleBaseName}from"./module-files.js";import{pathExists,writeTextFile}from"./files.js";import{PNPM_WORKSPACE_PATH,ensurePnpmWorkspacePolicy}from"./pnpm-workspace.js";import{WEB_APP_TEMPLATE_FILES,WEB_APP_TEMPLATE_PACKAGE_JSON}from"./web-template.js";import"./project.js";import{patchPackageJson}from"./package-json.js";import{basename,join,resolve}from"node:path";import{readFile,readdir,writeFile}from"node:fs/promises";const SLACK_CHANNEL_DEFAULT_ROUTE=`/ash/v1/slack`,DEFAULT_SLACK_CONNECTOR_SLUG=`my-agent`,PACKAGE_DEPENDENCY_FIELDS=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`],WEB_VERCEL_JSON_PATH=`vercel.json`,WEB_VERCEL_JSON_SCHEMA=`https://openapi.vercel.sh/vercel.json`,WEB_DEFAULT_VERCEL_SERVICES={web:{entrypoint:`.`,framework:`nextjs`,routePrefix:`/`},ash:{buildCommand:`ash build`,entrypoint:`.`,framework:`ash`,routePrefix:`/_ash_internal/ash`}};function toSlackConnectorSlug(e){return e}function isJsonObject(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}async function readDependencyVersion(e,t){let n=JSON.parse(await readFile(e,`utf8`));if(!isJsonObject(n)||!isJsonObject(n.dependencies))return;let r=n.dependencies[t];return typeof r==`string`?r:void 0}function packageJsonHasDependency(e,t){for(let n of PACKAGE_DEPENDENCY_FIELDS){let r=e[n];if(isJsonObject(r)&&typeof r[t]==`string`)return!0}return!1}async function hasPackageDependency(e,t){if(!await pathExists(e))return!1;let r=JSON.parse(await readFile(e,`utf8`));return isJsonObject(r)&&packageJsonHasDependency(r,t)}async function ensurePackageDependency(e,t,r){return!await pathExists(e)||await readDependencyVersion(e,t)===r?[]:(await patchPackageJson(e,{dependencies:{[t]:r}}),[{path:e,dependencies:[t],devDependencies:[],scripts:[]}])}function resolveWebPackageVersions(e){return{ashPackageVersion:e?.ashPackageVersion??`0.46.0`,aiPackageVersion:e?.aiPackageVersion??`7.0.0-canary.159`,nextPackageVersion:e?.nextPackageVersion??`16.2.6`,reactPackageVersion:e?.reactPackageVersion??`19.2.6`,reactDomPackageVersion:e?.reactDomPackageVersion??`19.2.6`,streamdownPackageVersion:e?.streamdownPackageVersion??`2.5.0`,zodPackageVersion:e?.zodPackageVersion??`4.4.3`,tsgoPackageVersion:e?.tsgoPackageVersion??`7.0.0-dev.20260523.1`,typesNodePackageVersion:e?.typesNodePackageVersion??`25.9.1`,typesReactPackageVersion:e?.typesReactPackageVersion??`19.2.15`,typesReactDomPackageVersion:e?.typesReactDomPackageVersion??`19.2.3`}}function formatAshDependencySpecifier(e){return/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z-.]+)?$/.test(e)?`^${e}`:e}async function patchWebPackageJson(e,t){if(!await pathExists(e))return[];assertStampedVersion(`ashPackageVersion`,t.ashPackageVersion),assertStampedVersion(`aiPackageVersion`,t.aiPackageVersion),assertStampedVersion(`nextPackageVersion`,t.nextPackageVersion),assertStampedVersion(`reactPackageVersion`,t.reactPackageVersion),assertStampedVersion(`reactDomPackageVersion`,t.reactDomPackageVersion),assertStampedVersion(`streamdownPackageVersion`,t.streamdownPackageVersion),assertStampedVersion(`zodPackageVersion`,t.zodPackageVersion),assertStampedVersion(`tsgoPackageVersion`,t.tsgoPackageVersion),assertStampedVersion(`typesNodePackageVersion`,t.typesNodePackageVersion),assertStampedVersion(`typesReactPackageVersion`,t.typesReactPackageVersion),assertStampedVersion(`typesReactDomPackageVersion`,t.typesReactDomPackageVersion);let r={...WEB_APP_TEMPLATE_PACKAGE_JSON.dependencies,ai:t.aiPackageVersion,"experimental-ash":formatAshDependencySpecifier(t.ashPackageVersion),next:t.nextPackageVersion,react:t.reactPackageVersion,"react-dom":t.reactDomPackageVersion,streamdown:t.streamdownPackageVersion,zod:t.zodPackageVersion},i={...WEB_APP_TEMPLATE_PACKAGE_JSON.devDependencies,"@types/node":t.typesNodePackageVersion,"@types/react":t.typesReactPackageVersion,"@types/react-dom":t.typesReactDomPackageVersion,"@typescript/native-preview":t.tsgoPackageVersion},a=WEB_APP_TEMPLATE_PACKAGE_JSON.scripts;return await patchPackageJson(e,{dependencies:r,devDependencies:i,scripts:a}),[{path:e,dependencies:Object.keys(r),devDependencies:Object.keys(i),scripts:Object.keys(a)}]}function normalizeSlackConnectorSlug(e){return toSlackConnectorSlug((e.trim().replace(/^@/,``).split(`/`).at(-1)??``).toLowerCase().replace(/[^a-z0-9_-]+/g,`-`).replace(/^[^a-z0-9]+/,``).replace(/[^a-z0-9]+$/,``).slice(0,100).replace(/[^a-z0-9]+$/,``)||`my-agent`)}async function deriveSlackConnectorSlug(e,t){if(t!==void 0&&t.length>0&&t!==`.`)return normalizeSlackConnectorSlug(t);try{let t=await readFile(join(e,`package.json`),`utf8`),n=JSON.parse(t);if(typeof n.name==`string`&&n.name.length>0)return normalizeSlackConnectorSlug(n.name)}catch{}return normalizeSlackConnectorSlug(basename(resolve(e))||`my-agent`)}function buildSlackTemplate(e){return`import { connectSlackCredentials } from "@vercel/connect/ash";
2
2
  import { slackChannel } from "experimental-ash/channels/slack";
3
3
 
4
4
  export default slackChannel({
@@ -1,3 +1,3 @@
1
1
  import{cardChildToFallbackText}from"#compiled/chat/index.js";import{truncatePlainText}from"#public/channels/slack/limits.js";function cardToBlocks(e){let n=[],r={usedNativeTable:!1};e.title&&n.push({type:`header`,text:{type:`plain_text`,text:truncatePlainText(e.title)??e.title,emoji:!0}}),e.subtitle&&n.push({type:`context`,elements:[{type:`mrkdwn`,text:e.subtitle}]}),e.imageUrl&&n.push({type:`image`,image_url:e.imageUrl,alt_text:e.title??``});for(let t of e.children)appendChildBlocks(t,n,r);return n}function cardToFallbackText(t){let n=[];t.title&&n.push(t.title),t.subtitle&&n.push(t.subtitle);for(let r of t.children){let t=cardChildToFallbackText(r);t&&t.length>0&&n.push(t)}return n.join(`
2
- `).trim()}function appendChildBlocks(t,n,r){switch(t.type){case`text`:n.push(textToBlock(t));return;case`image`:n.push(imageToBlock(t));return;case`divider`:n.push(dividerToBlock(t));return;case`actions`:n.push(actionsToBlock(t));return;case`section`:for(let e of t.children)appendChildBlocks(e,n,r);return;case`fields`:n.push(fieldsToBlock(t));return;case`link`:n.push(linkToBlock(t));return;case`table`:n.push(...tableToBlocks(t,r));return;default:{let r=cardChildToFallbackText(t);r&&n.push({type:`section`,text:{type:`mrkdwn`,text:r}})}}}function textToBlock(e){return e.style===`muted`?{type:`context`,elements:[{type:`mrkdwn`,text:e.content}]}:{type:`section`,text:{type:`mrkdwn`,text:e.style===`bold`?`*${e.content}*`:e.content}}}function imageToBlock(e){return{type:`image`,image_url:e.url,alt_text:e.alt??``}}function dividerToBlock(e){return{type:`divider`}}function actionsToBlock(e){let t=[];for(let n of e.children){let e=actionChildToElement(n);e&&t.push(e)}return{type:`actions`,elements:t}}function actionChildToElement(e){switch(e.type){case`button`:return buttonToElement(e);case`link-button`:return linkButtonToElement(e);case`select`:return selectToElement(e);case`radio_select`:return radioSelectToElement(e);default:return null}}function buttonToElement(e){let n={type:`button`,action_id:e.id,text:{type:`plain_text`,text:truncatePlainText(e.label)??e.label}};return e.value!==void 0&&(n.value=e.value),e.style&&e.style!==`default`&&(n.style=e.style),e.disabled===!0&&(n.disabled=!0),e.callbackUrl&&(n.url=e.callbackUrl),n}function linkButtonToElement(e){let n={type:`button`,action_id:`link:${e.url}`,text:{type:`plain_text`,text:truncatePlainText(e.label)??e.label},url:e.url};return e.style&&e.style!==`default`&&(n.style=e.style),n}function selectToElement(e){return{type:`static_select`,action_id:e.id,placeholder:{type:`plain_text`,text:e.placeholder??e.label},options:e.options.map(e=>({text:{type:`plain_text`,text:e.label},value:e.value,...e.description?{description:{type:`plain_text`,text:e.description}}:{}}))}}function radioSelectToElement(e){return{type:`radio_buttons`,action_id:e.id,options:e.options.map(e=>({text:{type:`plain_text`,text:e.label},value:e.value,...e.description?{description:{type:`plain_text`,text:e.description}}:{}}))}}function fieldsToBlock(e){return{type:`section`,fields:e.children.map(e=>({type:`mrkdwn`,text:`*${e.label}*\n${e.value}`}))}}function linkToBlock(e){return{type:`section`,text:{type:`mrkdwn`,text:`<${e.url}|${e.label}>`}}}function tableToBlocks(e,t){return!t.usedNativeTable&&e.rows.length<=100&&e.headers.length<=20?(t.usedNativeTable=!0,[{type:`table`,rows:[e.headers.map(tableCellToRawText),...e.rows.map(e=>e.map(tableCellToRawText))]}]):[tableToFallbackBlock(e)]}function tableCellToRawText(e){return{type:`raw_text`,text:e||` `}}function tableToFallbackBlock(e){let t=e.headers.map((t,n)=>{let r=t.length;for(let t of e.rows){let e=t[n]??``;e.length>r&&(r=e.length)}return r});return{type:`section`,text:{type:`mrkdwn`,text:["```",e.headers.map((e,n)=>e.padEnd(t[n]??0)).join(` | `),t.map(e=>`-`.repeat(e)).join(`-|-`),...e.rows.map(n=>e.headers.map((e,r)=>(n[r]??``).padEnd(t[r]??0)).join(` | `)),"```"].join(`
2
+ `).trim()}function appendChildBlocks(t,n,r){switch(t.type){case`text`:n.push(textToBlock(t));return;case`image`:n.push(imageToBlock(t));return;case`divider`:n.push(dividerToBlock(t));return;case`actions`:n.push(actionsToBlock(t));return;case`section`:for(let e of t.children)appendChildBlocks(e,n,r);return;case`fields`:n.push(fieldsToBlock(t));return;case`link`:n.push(linkToBlock(t));return;case`table`:n.push(...tableToBlocks(t,r));return;default:{let r=cardChildToFallbackText(t);r&&n.push({type:`section`,text:{type:`mrkdwn`,text:r}})}}}function textToBlock(e){return e.style===`muted`?{type:`context`,elements:[{type:`mrkdwn`,text:e.content}]}:{type:`section`,text:{type:`mrkdwn`,text:e.style===`bold`?`*${e.content}*`:e.content}}}function imageToBlock(e){return{type:`image`,image_url:e.url,alt_text:e.alt??``}}function dividerToBlock(e){return{type:`divider`}}function actionsToBlock(e){let t=[];for(let n of e.children){let e=actionChildToElement(n);e&&t.push(e)}return{type:`actions`,elements:t}}function actionChildToElement(e){switch(e.type){case`button`:return buttonToElement(e);case`link-button`:return linkButtonToElement(e);case`select`:return selectToElement(e);case`radio_select`:return radioSelectToElement(e);default:return null}}function buttonToElement(e){let n={type:`button`,action_id:e.id,text:{type:`plain_text`,text:truncatePlainText(e.label)??e.label}};return e.value!==void 0&&(n.value=e.value),e.style&&e.style!=="default"&&(n.style=e.style),e.disabled===!0&&(n.disabled=!0),e.callbackUrl&&(n.url=e.callbackUrl),n}function linkButtonToElement(e){let n={type:`button`,action_id:`link:${e.url}`,text:{type:`plain_text`,text:truncatePlainText(e.label)??e.label},url:e.url};return e.style&&e.style!=="default"&&(n.style=e.style),n}function selectToElement(e){return{type:`static_select`,action_id:e.id,placeholder:{type:`plain_text`,text:e.placeholder??e.label},options:e.options.map(e=>({text:{type:`plain_text`,text:e.label},value:e.value,...e.description?{description:{type:`plain_text`,text:e.description}}:{}}))}}function radioSelectToElement(e){return{type:`radio_buttons`,action_id:e.id,options:e.options.map(e=>({text:{type:`plain_text`,text:e.label},value:e.value,...e.description?{description:{type:`plain_text`,text:e.description}}:{}}))}}function fieldsToBlock(e){return{type:`section`,fields:e.children.map(e=>({type:`mrkdwn`,text:`*${e.label}*\n${e.value}`}))}}function linkToBlock(e){return{type:`section`,text:{type:`mrkdwn`,text:`<${e.url}|${e.label}>`}}}function tableToBlocks(e,t){return!t.usedNativeTable&&e.rows.length<=100&&e.headers.length<=20?(t.usedNativeTable=!0,[{type:`table`,rows:[e.headers.map(tableCellToRawText),...e.rows.map(e=>e.map(tableCellToRawText))]}]):[tableToFallbackBlock(e)]}function tableCellToRawText(e){return{type:`raw_text`,text:e||` `}}function tableToFallbackBlock(e){let t=e.headers.map((t,n)=>{let r=t.length;for(let t of e.rows){let e=t[n]??``;e.length>r&&(r=e.length)}return r});return{type:`section`,text:{type:`mrkdwn`,text:["```",e.headers.map((e,n)=>e.padEnd(t[n]??0)).join(` | `),t.map(e=>`-`.repeat(e)).join(`-|-`),...e.rows.map(n=>e.headers.map((e,r)=>(n[r]??``).padEnd(t[r]??0)).join(` | `)),"```"].join(`
3
3
  `)}}}export{cardToBlocks,cardToFallbackText};
@@ -1,4 +1,3 @@
1
- import type { ModelMessage } from "ai";
2
1
  import type { HandleMessageStreamEvent } from "../../protocol/message.js";
3
2
  import type { SessionContext } from "./callback-context.js";
4
3
  import type { ExactDefinition } from "./exact.js";
@@ -18,29 +17,15 @@ export interface HookContext extends SessionContext {
18
17
  readonly continuationToken?: string;
19
18
  };
20
19
  }
21
- /**
22
- * Result returned by a lifecycle hook (`lifecycle.session` or
23
- * `lifecycle.turn`).
24
- *
25
- * `modelContext` messages are appended to the next model call's message
26
- * list and never written to durable session history. Each lifecycle key
27
- * runs in registry order; contributions are concatenated session-then-turn
28
- * before the harness's first model call.
29
- *
30
- * Returning `void` (or `undefined`) means "no opinion" — the turn
31
- * proceeds with no additional model context from this hook.
32
- */
33
- export interface LifecycleHookResult {
34
- readonly modelContext?: readonly ModelMessage[];
35
- }
36
20
  /**
37
21
  * Lifecycle hook signature shared by `lifecycle.session` and
38
22
  * `lifecycle.turn`.
39
23
  *
40
- * `ctx` is the sole argument session identity, auth, turn info,
41
- * agent metadata, and channel metadata are all on `ctx`.
24
+ * Hooks are side-effect-onlythey cannot inject model context.
25
+ * To contribute runtime model messages, use `defineDynamic` +
26
+ * `defineInstructions` in `agent/instructions/`.
42
27
  */
43
- export type LifecycleHook = (ctx: HookContext) => void | LifecycleHookResult | Promise<void | LifecycleHookResult>;
28
+ export type LifecycleHook = (ctx: HookContext) => void | Promise<void>;
44
29
  /**
45
30
  * Side-effect-only handler for one accepted runtime stream event.
46
31
  *
@@ -1,19 +1,31 @@
1
+ import type { ModelMessage } from "ai";
1
2
  import type { ExactDefinition } from "#public/definitions/exact.js";
2
3
  /**
3
4
  * Public definition for an instructions prompt authored in markdown or
4
5
  * TypeScript.
5
6
  *
6
7
  * Authored at the agent root as either `instructions.md` or
7
- * `instructions.{ts,cts,mts,js,cjs,mjs}`. Module-backed instructions
8
- * sources execute once at build time — the resulting markdown is captured
9
- * into the compiled manifest. Authored definitions do not carry a `name`
10
- * field.
8
+ * `instructions.{ts,cts,mts,js,cjs,mjs}`, or inside the
9
+ * `agent/instructions/` directory for multi-file setups. Module-backed
10
+ * static instructions execute once at build time the resulting
11
+ * markdown is captured into the compiled manifest. Authored definitions
12
+ * do not carry a `name` field.
13
+ *
14
+ * When used inside a `defineDynamic` handler, `modelContext` provides
15
+ * runtime-resolved model messages. `markdown` is sugar for
16
+ * `[{ role: "system", content: markdown }]`.
11
17
  */
12
18
  export interface InstructionsDefinition {
13
- readonly markdown: string;
19
+ readonly markdown?: string;
20
+ readonly modelContext?: readonly ModelMessage[];
14
21
  }
15
22
  /**
16
- * Defines an instructions prompt in TypeScript using the same shape
17
- * discovery produces from markdown.
23
+ * Defines an instructions prompt in TypeScript. When used as a static
24
+ * default export, `markdown` is required. When used inside a
25
+ * `defineDynamic` handler, at least one of `markdown` or
26
+ * `modelContext` must be provided.
27
+ *
28
+ * Stamps an {@link INSTRUCTIONS_BRAND} symbol on the result so the
29
+ * dynamic instruction lifecycle can detect branded entries.
18
30
  */
19
31
  export declare function defineInstructions<TInstructions extends InstructionsDefinition>(definition: ExactDefinition<TInstructions, InstructionsDefinition>): TInstructions;
@@ -1 +1 @@
1
- function defineInstructions(e){return e}export{defineInstructions};
1
+ import{INSTRUCTIONS_BRAND}from"#shared/dynamic-tool-definition.js";function defineInstructions(e){return Object.assign(e,{[INSTRUCTIONS_BRAND]:!0}),e}export{defineInstructions};
@@ -6,4 +6,4 @@
6
6
  * authoring shape and {@link HookContext} for the runtime context every
7
7
  * handler receives.
8
8
  */
9
- export { type HookContext, type HookDefinition, type LifecycleHook, type LifecycleHookResult, type LifecycleHooks, type StreamEventHook, type StreamEventHooks, defineHook, } from "../definitions/hook.js";
9
+ export { type HookContext, type HookDefinition, type LifecycleHook, type LifecycleHooks, type StreamEventHook, type StreamEventHooks, defineHook, } from "../definitions/hook.js";
@@ -1,4 +1,7 @@
1
1
  /**
2
- * Instructions prompt authoring helpers for `agent/instructions.ts` files.
2
+ * Instructions prompt authoring helpers for `agent/instructions.ts`
3
+ * and `agent/instructions/*.ts` files.
3
4
  */
4
5
  export { defineInstructions, type InstructionsDefinition, } from "#public/definitions/instructions.js";
6
+ export { defineDynamic } from "#public/definitions/tool.js";
7
+ export type { DynamicResolveContext, DynamicSentinel } from "#shared/dynamic-tool-definition.js";
@@ -1 +1 @@
1
- import{defineInstructions}from"#public/definitions/instructions.js";export{defineInstructions};
1
+ import{defineDynamic}from"#public/definitions/tool.js";import{defineInstructions}from"#public/definitions/instructions.js";export{defineDynamic,defineInstructions};
@@ -1 +1 @@
1
- import{ResolveAgentError,createResolvedModuleSourceRef}from"#runtime/resolve-helpers.js";import{resolveChannelDefinition}from"#runtime/resolve-channel.js";import{resolveConnectionDefinition}from"#runtime/resolve-connection.js";import{resolveHookDefinition}from"#runtime/resolve-hook.js";import{resolveSandboxDefinition}from"#runtime/resolve-sandbox.js";import{resolveDynamicSkillDefinition}from"#runtime/resolve-dynamic-skill.js";import{resolveDynamicToolDefinition}from"#runtime/resolve-dynamic-tool.js";import{resolveToolDefinition}from"#runtime/resolve-tool.js";async function resolveAgent(e){let t=e.manifest.skills.map(e=>({...e,metadata:e.metadata===void 0?void 0:{...e.metadata}})),r=[],i=[];for(let t of e.manifest.channels){if(t.kind===`disabled`){i.push(t.name);continue}r.push(await resolveChannelDefinition(t,e.moduleMap,e.nodeId))}let a=await Promise.all(e.manifest.tools.map(t=>resolveToolDefinition(t,e.moduleMap,e.nodeId))),o=await Promise.all((e.manifest.dynamicSkills??[]).map(t=>resolveDynamicSkillDefinition(t,e.moduleMap,e.nodeId))),s=await Promise.all(e.manifest.dynamicTools.map(t=>resolveDynamicToolDefinition(t,e.moduleMap,e.nodeId))),c=await Promise.all(e.manifest.hooks.map(t=>resolveHookDefinition(t,e.moduleMap,e.nodeId))),l=await Promise.all(e.manifest.connections.map(t=>resolveConnectionDefinition(t,e.moduleMap,e.nodeId))),u=e.manifest.sandbox===null?null:await resolveSandboxDefinition(e.manifest.sandbox,e.moduleMap,e.nodeId),d=createResolvedInstructions(e.manifest.instructions),f=e.manifest.workspaceResourceRoot,p={channels:r,config:createResolvedAgentConfig(e.manifest),connections:l,disabledFrameworkChannels:i,disabledFrameworkTools:[...e.manifest.disabledFrameworkTools],dynamicSkillResolvers:o,dynamicToolResolvers:s,hooks:c,metadata:{agentRoot:e.manifest.agentRoot,appRoot:e.manifest.appRoot,diagnosticsSummary:e.manifest.diagnosticsSummary},sandbox:u,workspaceResourceRoot:f,skills:t,tools:a,workspaceSpec:{rootEntries:[...f.rootEntries]}};return d===void 0?p:{...p,instructions:d}}function createResolvedInstructions(e){if(e!==void 0)return{name:e.name,logicalPath:e.logicalPath,markdown:e.markdown,sourceId:e.sourceId,sourceKind:e.sourceKind}}function createResolvedAgentConfig(e){let n={model:e.config.model.source===void 0?{id:e.config.model.id,contextWindowTokens:e.config.model.contextWindowTokens,providerOptions:e.config.model.providerOptions}:{contextWindowTokens:e.config.model.contextWindowTokens,id:e.config.model.id,providerOptions:e.config.model.providerOptions,source:{exportName:e.config.model.source.exportName,sourceKind:`module`,logicalPath:e.config.model.source.logicalPath,sourceId:e.config.model.source.sourceId}},name:e.config.name};if(e.config.compaction!==void 0){let t={};e.config.compaction.model!==void 0&&(t.model=e.config.compaction.model.source===void 0?{contextWindowTokens:e.config.compaction.model.contextWindowTokens,id:e.config.compaction.model.id,providerOptions:e.config.compaction.model.providerOptions}:{contextWindowTokens:e.config.compaction.model.contextWindowTokens,id:e.config.compaction.model.id,providerOptions:e.config.compaction.model.providerOptions,source:{exportName:e.config.compaction.model.source.exportName,sourceKind:`module`,logicalPath:e.config.compaction.model.source.logicalPath,sourceId:e.config.compaction.model.source.sourceId}}),e.config.compaction.thresholdPercent!==void 0&&(t.thresholdPercent=e.config.compaction.thresholdPercent),n.compaction=t}return e.config.experimental!==void 0&&(n.experimental={codeMode:e.config.experimental.codeMode}),e.config.source!==void 0&&(n.source=createResolvedModuleSourceRef(e.config.source)),n}export{ResolveAgentError,resolveAgent};
1
+ import{ResolveAgentError,createResolvedModuleSourceRef}from"#runtime/resolve-helpers.js";import{resolveChannelDefinition}from"#runtime/resolve-channel.js";import{resolveConnectionDefinition}from"#runtime/resolve-connection.js";import{resolveHookDefinition}from"#runtime/resolve-hook.js";import{resolveSandboxDefinition}from"#runtime/resolve-sandbox.js";import{resolveDynamicInstructionsDefinition}from"#runtime/resolve-dynamic-instructions.js";import{resolveDynamicSkillDefinition}from"#runtime/resolve-dynamic-skill.js";import{resolveDynamicToolDefinition}from"#runtime/resolve-dynamic-tool.js";import{resolveToolDefinition}from"#runtime/resolve-tool.js";async function resolveAgent(e){let t=e.manifest.skills.map(e=>({...e,metadata:e.metadata===void 0?void 0:{...e.metadata}})),r=[],i=[];for(let t of e.manifest.channels){if(t.kind===`disabled`){i.push(t.name);continue}r.push(await resolveChannelDefinition(t,e.moduleMap,e.nodeId))}let a=await Promise.all(e.manifest.tools.map(t=>resolveToolDefinition(t,e.moduleMap,e.nodeId))),o=await Promise.all((e.manifest.dynamicInstructions??[]).map(t=>resolveDynamicInstructionsDefinition(t,e.moduleMap,e.nodeId))),s=await Promise.all((e.manifest.dynamicSkills??[]).map(t=>resolveDynamicSkillDefinition(t,e.moduleMap,e.nodeId))),c=await Promise.all(e.manifest.dynamicTools.map(t=>resolveDynamicToolDefinition(t,e.moduleMap,e.nodeId))),l=await Promise.all(e.manifest.hooks.map(t=>resolveHookDefinition(t,e.moduleMap,e.nodeId))),u=await Promise.all(e.manifest.connections.map(t=>resolveConnectionDefinition(t,e.moduleMap,e.nodeId))),d=e.manifest.sandbox===null?null:await resolveSandboxDefinition(e.manifest.sandbox,e.moduleMap,e.nodeId),f=createResolvedInstructions(e.manifest.instructions),p=e.manifest.workspaceResourceRoot,m={channels:r,config:createResolvedAgentConfig(e.manifest),connections:u,disabledFrameworkChannels:i,disabledFrameworkTools:[...e.manifest.disabledFrameworkTools],dynamicInstructionsResolvers:o,dynamicSkillResolvers:s,dynamicToolResolvers:c,hooks:l,metadata:{agentRoot:e.manifest.agentRoot,appRoot:e.manifest.appRoot,diagnosticsSummary:e.manifest.diagnosticsSummary},sandbox:d,workspaceResourceRoot:p,skills:t,tools:a,workspaceSpec:{rootEntries:[...p.rootEntries]}};return f===void 0?m:{...m,instructions:f}}function createResolvedInstructions(e){if(e!==void 0)return{name:e.name,logicalPath:e.logicalPath,markdown:e.markdown,sourceId:e.sourceId,sourceKind:e.sourceKind}}function createResolvedAgentConfig(e){let n={model:e.config.model.source===void 0?{id:e.config.model.id,contextWindowTokens:e.config.model.contextWindowTokens,providerOptions:e.config.model.providerOptions}:{contextWindowTokens:e.config.model.contextWindowTokens,id:e.config.model.id,providerOptions:e.config.model.providerOptions,source:{exportName:e.config.model.source.exportName,sourceKind:`module`,logicalPath:e.config.model.source.logicalPath,sourceId:e.config.model.source.sourceId}},name:e.config.name};if(e.config.compaction!==void 0){let t={};e.config.compaction.model!==void 0&&(t.model=e.config.compaction.model.source===void 0?{contextWindowTokens:e.config.compaction.model.contextWindowTokens,id:e.config.compaction.model.id,providerOptions:e.config.compaction.model.providerOptions}:{contextWindowTokens:e.config.compaction.model.contextWindowTokens,id:e.config.compaction.model.id,providerOptions:e.config.compaction.model.providerOptions,source:{exportName:e.config.compaction.model.source.exportName,sourceKind:`module`,logicalPath:e.config.compaction.model.source.logicalPath,sourceId:e.config.compaction.model.source.sourceId}}),e.config.compaction.thresholdPercent!==void 0&&(t.thresholdPercent=e.config.compaction.thresholdPercent),n.compaction=t}return e.config.experimental!==void 0&&(n.experimental={codeMode:e.config.experimental.codeMode}),e.config.source!==void 0&&(n.source=createResolvedModuleSourceRef(e.config.source)),n}export{ResolveAgentError,resolveAgent};
@@ -0,0 +1,4 @@
1
+ import type { CompiledDynamicInstructionsDefinition } from "#compiler/manifest.js";
2
+ import type { CompiledModuleMap } from "#compiler/module-map.js";
3
+ import type { ResolvedDynamicInstructionsResolver } from "#runtime/types.js";
4
+ export declare function resolveDynamicInstructionsDefinition(definition: CompiledDynamicInstructionsDefinition, moduleMap: CompiledModuleMap, nodeId: string | undefined): Promise<ResolvedDynamicInstructionsResolver>;
@@ -0,0 +1 @@
1
+ import{expectFunction,expectObjectRecord}from"#internal/authored-module.js";import{toErrorMessage}from"#shared/errors.js";import{ResolveAgentError,loadResolvedModuleExport}from"#runtime/resolve-helpers.js";async function resolveDynamicInstructionsDefinition(i,a,o){try{let n=expectObjectRecord(expectObjectRecord(await loadResolvedModuleExport({definition:i,kindLabel:`dynamic-instructions`,moduleMap:a,nodeId:o}),describe(i,`to return an object`)).events,describe(i,`to provide an events object`)),r={};for(let t of i.eventNames)r[t]=expectFunction(n[t],describe(i,`to provide a handler for event "${t}"`));return{eventNames:[...i.eventNames],events:r,exportName:i.exportName,logicalPath:i.logicalPath,slug:i.slug,sourceId:i.sourceId,sourceKind:`module`}}catch(e){throw e instanceof ResolveAgentError?e:new ResolveAgentError(`Failed to resolve dynamic instructions from "${i.logicalPath}": ${toErrorMessage(e)}`,{logicalPath:i.logicalPath,sourceId:i.sourceId})}}function describe(e,t){return`Expected the dynamic instructions export "${e.exportName??`default`}" from "${e.logicalPath}" ${t}.`}export{resolveDynamicInstructionsDefinition};
@@ -273,6 +273,16 @@ export interface ResolvedDynamicSkillResolver extends Readonly<ModuleSourceRef>
273
273
  readonly eventNames: readonly string[];
274
274
  readonly events: Readonly<Record<string, (event: unknown, ctx: unknown) => unknown | Promise<unknown>>>;
275
275
  }
276
+ /**
277
+ * Runtime resolver for dynamic instructions declared via
278
+ * `defineDynamic({ events })` in `agent/instructions/`. Carries the live
279
+ * event handler functions loaded from the compiled module.
280
+ */
281
+ export interface ResolvedDynamicInstructionsResolver extends Readonly<ModuleSourceRef> {
282
+ readonly slug: string;
283
+ readonly eventNames: readonly string[];
284
+ readonly events: Readonly<Record<string, (event: unknown, ctx: unknown) => unknown | Promise<unknown>>>;
285
+ }
276
286
  /**
277
287
  * Runtime-owned authored agent model resolved from compiler artifacts.
278
288
  */
@@ -294,6 +304,7 @@ export interface ResolvedAgent {
294
304
  * filter the framework default tool set.
295
305
  */
296
306
  readonly disabledFrameworkTools: readonly string[];
307
+ readonly dynamicInstructionsResolvers: readonly ResolvedDynamicInstructionsResolver[];
297
308
  readonly dynamicSkillResolvers: readonly ResolvedDynamicSkillResolver[];
298
309
  readonly dynamicToolResolvers: readonly ResolvedDynamicToolResolver[];
299
310
  readonly metadata: ResolvedAgentMetadata;
@@ -106,4 +106,16 @@ export declare const TOOL_BRAND: unique symbol;
106
106
  * validate that entries are properly wrapped.
107
107
  */
108
108
  export declare function isBrandedToolEntry(value: unknown): boolean;
109
+ /**
110
+ * Symbol-based brand stamped by `defineInstructions` on every entry.
111
+ * Invisible in IntelliSense but checked at runtime to validate that
112
+ * dynamic instruction resolver returns are properly wrapped.
113
+ */
114
+ export declare const INSTRUCTIONS_BRAND: unique symbol;
115
+ /**
116
+ * Returns true if `value` was stamped by `defineInstructions` (has the
117
+ * brand symbol). Used to validate that dynamic instruction entries are
118
+ * properly wrapped.
119
+ */
120
+ export declare function isBrandedInstructionsEntry(value: unknown): boolean;
109
121
  export {};
@@ -1 +1 @@
1
- const ALLOWED_DYNAMIC_TOOL_EVENTS=new Set([`session.started`,`turn.started`,`step.started`]),DYNAMIC_SENTINEL_KIND=`ash:dynamic`;function isDynamicSentinel(e){return typeof e==`object`&&!!e&&e.kind===`ash:dynamic`}const TOOL_BRAND=Symbol.for(`ash:tool-brand`);function isBrandedToolEntry(e){return typeof e==`object`&&!!e&&e[TOOL_BRAND]===!0}export{ALLOWED_DYNAMIC_TOOL_EVENTS,DYNAMIC_SENTINEL_KIND,TOOL_BRAND,isBrandedToolEntry,isDynamicSentinel};
1
+ const ALLOWED_DYNAMIC_TOOL_EVENTS=new Set([`session.started`,`turn.started`,`step.started`]),DYNAMIC_SENTINEL_KIND=`ash:dynamic`;function isDynamicSentinel(e){return typeof e==`object`&&!!e&&e.kind===`ash:dynamic`}const TOOL_BRAND=Symbol.for(`ash:tool-brand`);function isBrandedToolEntry(e){return typeof e==`object`&&!!e&&e[TOOL_BRAND]===!0}const INSTRUCTIONS_BRAND=Symbol.for(`ash:instructions-brand`);function isBrandedInstructionsEntry(e){return typeof e==`object`&&!!e&&e[INSTRUCTIONS_BRAND]===!0}export{ALLOWED_DYNAMIC_TOOL_EVENTS,DYNAMIC_SENTINEL_KIND,INSTRUCTIONS_BRAND,TOOL_BRAND,isBrandedInstructionsEntry,isBrandedToolEntry,isDynamicSentinel};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "experimental-ash",
3
- "version": "0.45.0",
3
+ "version": "0.46.0",
4
4
  "bin": {
5
5
  "ash": "./bin/ash.js",
6
6
  "experimental-ash": "./bin/ash.js"
@@ -189,10 +189,10 @@
189
189
  "@types/react-test-renderer": "19.1.0",
190
190
  "@vercel/oidc": "3.5.0",
191
191
  "@vercel/sandbox": "2.1.0",
192
- "@workflow/core": "5.0.0-beta.10",
192
+ "@workflow/core": "5.0.0-beta.11",
193
193
  "@workflow/errors": "5.0.0-beta.6",
194
- "@workflow/world": "5.0.0-beta.5",
195
- "@workflow/world-local": "5.0.0-beta.11",
194
+ "@workflow/world": "5.0.0-beta.6",
195
+ "@workflow/world-local": "5.0.0-beta.12",
196
196
  "ai": "7.0.0-canary.159",
197
197
  "autoevals": "0.0.132",
198
198
  "chat": "4.29.0",
@@ -1,7 +0,0 @@
1
- {
2
- "name": "experimental-ash-compiled-ai-sdk-anthropic",
3
- "version": "4.0.0-canary.61",
4
- "private": true,
5
- "type": "module",
6
- "license": "Apache-2.0"
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "name": "experimental-ash-compiled-ai-sdk-google",
3
- "version": "4.0.0-canary.75",
4
- "private": true,
5
- "type": "module",
6
- "license": "Apache-2.0"
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "name": "experimental-ash-compiled-ai-sdk-mcp",
3
- "version": "2.0.0-canary.56",
4
- "private": true,
5
- "type": "module",
6
- "license": "Apache-2.0"
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "name": "experimental-ash-compiled-ai-sdk-openai",
3
- "version": "4.0.0-canary.66",
4
- "private": true,
5
- "type": "module",
6
- "license": "Apache-2.0"
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "name": "experimental-ash-compiled-ai-sdk-otel",
3
- "version": "1.0.0-canary.105",
4
- "private": true,
5
- "type": "module",
6
- "license": "Apache-2.0"
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "name": "experimental-ash-compiled-ai-sdk-provider",
3
- "version": "4.0.0-canary.17",
4
- "private": true,
5
- "type": "module",
6
- "license": "Apache-2.0"
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "name": "experimental-ash-compiled-chat-adapter-slack",
3
- "version": "4.29.0",
4
- "private": true,
5
- "type": "module",
6
- "license": "MIT"
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "name": "experimental-ash-compiled-chat-adapter-state-memory",
3
- "version": "4.29.0",
4
- "private": true,
5
- "type": "module",
6
- "license": "MIT"
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "name": "experimental-ash-compiled-opentelemetry-api",
3
- "version": "1.9.1",
4
- "private": true,
5
- "type": "module",
6
- "license": "Apache-2.0"
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "name": "experimental-ash-compiled-standard-schema-spec",
3
- "version": "1.1.0",
4
- "private": true,
5
- "type": "module",
6
- "license": "MIT"
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "name": "experimental-ash-compiled-vercel-oidc",
3
- "version": "3.5.0",
4
- "private": true,
5
- "type": "module",
6
- "license": "Apache-2.0"
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "name": "experimental-ash-compiled-vercel-sandbox",
3
- "version": "2.1.0",
4
- "private": true,
5
- "type": "module",
6
- "license": "Apache-2.0"
7
- }
@@ -1,60 +0,0 @@
1
- // Auto-generated stub for `@workflow/world` types referenced by a vendored .d.ts.
2
- // Emitted by scripts/vendor-compiled/@workflow/core.mjs.
3
-
4
- type JsonishRecord = Record<string, any>;
5
- type PaginatedResponse<T> = { cursor?: string | null; data: T[]; hasMore?: boolean };
6
-
7
- export type AttributeChange = JsonishRecord;
8
- export interface Event extends JsonishRecord {
9
- correlationId?: string | null;
10
- eventType?: string;
11
- }
12
- export type HealthCheckPayload = JsonishRecord;
13
- export interface Hook extends JsonishRecord {
14
- hookId: string;
15
- token: string;
16
- }
17
- export type ValidQueueName = string;
18
- export interface WorkflowRun extends JsonishRecord {
19
- runId: string;
20
- status: WorkflowRunStatus;
21
- }
22
- export type WorkflowRunStatus = "pending" | "running" | "completed" | "failed" | "cancelled";
23
- export interface World {
24
- specVersion?: number;
25
- createQueueHandler?: any;
26
- queue(...args: any[]): Promise<void>;
27
- runs: {
28
- get(id: string, params?: JsonishRecord): Promise<WorkflowRun>;
29
- list(params?: JsonishRecord): Promise<PaginatedResponse<WorkflowRun>>;
30
- };
31
- steps: {
32
- get(runId: string, stepId: string, params?: JsonishRecord): Promise<any>;
33
- list(params: JsonishRecord): Promise<PaginatedResponse<any>>;
34
- };
35
- events: {
36
- create(...args: any[]): Promise<any>;
37
- get(runId: string, eventId: string, params?: JsonishRecord): Promise<Event>;
38
- list(params: JsonishRecord): Promise<PaginatedResponse<Event>>;
39
- listByCorrelationId(params: JsonishRecord): Promise<PaginatedResponse<Event>>;
40
- };
41
- hooks: {
42
- get(hookId: string, params?: JsonishRecord): Promise<Hook>;
43
- getByToken(token: string, params?: JsonishRecord): Promise<Hook>;
44
- list(params: JsonishRecord): Promise<PaginatedResponse<Hook>>;
45
- };
46
- streams: {
47
- write(runId: string, name: string, chunk: string | Uint8Array): Promise<void>;
48
- writeMulti?(runId: string, name: string, chunks: (string | Uint8Array)[]): Promise<void>;
49
- close(runId: string, name: string): Promise<void>;
50
- get(runId: string, name: string, startIndex?: number): Promise<ReadableStream<Uint8Array>>;
51
- list(runId: string): Promise<string[]>;
52
- getChunks(runId: string, name: string, options?: JsonishRecord): Promise<any>;
53
- getInfo(runId: string, name: string): Promise<any>;
54
- };
55
- getEncryptionKeyForRun?(run: WorkflowRun): Promise<Uint8Array | undefined>;
56
- getEncryptionKeyForRun?(runId: string, context?: JsonishRecord): Promise<Uint8Array | undefined>;
57
- resolveLatestDeploymentId?(): Promise<string>;
58
- start?(): Promise<void>;
59
- close?(): Promise<void>;
60
- }
@@ -1,7 +0,0 @@
1
- {
2
- "name": "experimental-ash-compiled-workflow-core",
3
- "version": "5.0.0-beta.10",
4
- "private": true,
5
- "type": "module",
6
- "license": "Apache-2.0"
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "name": "experimental-ash-compiled-workflow-errors",
3
- "version": "5.0.0-beta.6",
4
- "private": true,
5
- "type": "module",
6
- "license": "Apache-2.0"
7
- }