@sayknow-cli/ai 0.4.2 → 0.4.4

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 (186) hide show
  1. package/dist/types/api-registry.d.ts +30 -0
  2. package/dist/types/auth-broker/client.d.ts +67 -0
  3. package/dist/types/auth-broker/index.d.ts +5 -0
  4. package/dist/types/auth-broker/refresher.d.ts +25 -0
  5. package/dist/types/auth-broker/remote-store.d.ts +99 -0
  6. package/dist/types/auth-broker/server.d.ts +32 -0
  7. package/dist/types/auth-broker/types.d.ts +110 -0
  8. package/dist/types/auth-broker/wire-schemas.d.ts +443 -0
  9. package/dist/types/auth-gateway/http.d.ts +40 -0
  10. package/dist/types/auth-gateway/index.d.ts +3 -0
  11. package/dist/types/auth-gateway/server.d.ts +36 -0
  12. package/dist/types/auth-gateway/types.d.ts +115 -0
  13. package/dist/types/auth-storage.d.ts +699 -0
  14. package/dist/types/cli.d.ts +2 -0
  15. package/dist/types/context-cap-policy.d.ts +10 -0
  16. package/dist/types/index.d.ts +53 -0
  17. package/dist/types/model-cache.d.ts +19 -0
  18. package/dist/types/model-manager.d.ts +64 -0
  19. package/dist/types/model-retirements.d.ts +6 -0
  20. package/dist/types/model-thinking.d.ts +74 -0
  21. package/dist/types/models.d.ts +21 -0
  22. package/dist/types/provider-details.d.ts +24 -0
  23. package/dist/types/provider-models/bundled-references.d.ts +4 -0
  24. package/dist/types/provider-models/descriptors.d.ts +48 -0
  25. package/dist/types/provider-models/google.d.ts +20 -0
  26. package/dist/types/provider-models/index.d.ts +5 -0
  27. package/dist/types/provider-models/ollama.d.ts +7 -0
  28. package/dist/types/provider-models/openai-compat.d.ts +256 -0
  29. package/dist/types/provider-models/special.d.ts +19 -0
  30. package/dist/types/providers/amazon-bedrock.d.ts +60 -0
  31. package/dist/types/providers/anthropic-messages-server-schema.d.ts +450 -0
  32. package/dist/types/providers/anthropic-messages-server.d.ts +17 -0
  33. package/dist/types/providers/anthropic.d.ts +209 -0
  34. package/dist/types/providers/aws-credential-config.d.ts +19 -0
  35. package/dist/types/providers/aws-credentials.d.ts +43 -0
  36. package/dist/types/providers/aws-eventstream.d.ts +38 -0
  37. package/dist/types/providers/aws-sigv4.d.ts +55 -0
  38. package/dist/types/providers/azure-openai-responses.d.ts +15 -0
  39. package/dist/types/providers/composer-discipline.d.ts +26 -0
  40. package/dist/types/providers/cursor/client-version.d.ts +10 -0
  41. package/dist/types/providers/cursor/gen/agent_pb.d.ts +13022 -0
  42. package/dist/types/providers/cursor.d.ts +45 -0
  43. package/dist/types/providers/error-message.d.ts +27 -0
  44. package/dist/types/providers/github-copilot-headers.d.ts +40 -0
  45. package/dist/types/providers/gitlab-duo.d.ts +27 -0
  46. package/dist/types/providers/google-auth.d.ts +24 -0
  47. package/dist/types/providers/google-gemini-cli.d.ts +75 -0
  48. package/dist/types/providers/google-gemini-headers.d.ts +43 -0
  49. package/dist/types/providers/google-shared.d.ts +179 -0
  50. package/dist/types/providers/google-types.d.ts +138 -0
  51. package/dist/types/providers/google-vertex.d.ts +7 -0
  52. package/dist/types/providers/google.d.ts +4 -0
  53. package/dist/types/providers/grammar.d.ts +1 -0
  54. package/dist/types/providers/kimi.d.ts +27 -0
  55. package/dist/types/providers/mock.d.ts +177 -0
  56. package/dist/types/providers/ollama.d.ts +41 -0
  57. package/dist/types/providers/openai-anthropic-shim.d.ts +31 -0
  58. package/dist/types/providers/openai-bounded-rate-limits.d.ts +3 -0
  59. package/dist/types/providers/openai-chat-server-schema.d.ts +815 -0
  60. package/dist/types/providers/openai-chat-server.d.ts +16 -0
  61. package/dist/types/providers/openai-codex/constants.d.ts +26 -0
  62. package/dist/types/providers/openai-codex/request-transformer.d.ts +50 -0
  63. package/dist/types/providers/openai-codex/response-handler.d.ts +18 -0
  64. package/dist/types/providers/openai-codex-responses.d.ts +68 -0
  65. package/dist/types/providers/openai-completions-compat.d.ts +27 -0
  66. package/dist/types/providers/openai-completions.d.ts +33 -0
  67. package/dist/types/providers/openai-request-transform.d.ts +4 -0
  68. package/dist/types/providers/openai-responses-server-schema.d.ts +392 -0
  69. package/dist/types/providers/openai-responses-server.d.ts +17 -0
  70. package/dist/types/providers/openai-responses-shared.d.ts +104 -0
  71. package/dist/types/providers/openai-responses.d.ts +32 -0
  72. package/dist/types/providers/pi-native-client.d.ts +13 -0
  73. package/dist/types/providers/pi-native-server.d.ts +60 -0
  74. package/dist/types/providers/register-builtins.d.ts +31 -0
  75. package/dist/types/providers/synthetic.d.ts +26 -0
  76. package/dist/types/providers/transform-messages.d.ts +14 -0
  77. package/dist/types/providers/vision-guard.d.ts +8 -0
  78. package/dist/types/rate-limit-utils.d.ts +19 -0
  79. package/dist/types/stream.d.ts +43 -0
  80. package/dist/types/types.d.ts +882 -0
  81. package/dist/types/usage/claude.d.ts +3 -0
  82. package/dist/types/usage/gemini.d.ts +2 -0
  83. package/dist/types/usage/github-copilot.d.ts +7 -0
  84. package/dist/types/usage/google-antigravity.d.ts +2 -0
  85. package/dist/types/usage/grok-cli.d.ts +10 -0
  86. package/dist/types/usage/kimi.d.ts +2 -0
  87. package/dist/types/usage/minimax-code.d.ts +2 -0
  88. package/dist/types/usage/openai-codex.d.ts +3 -0
  89. package/dist/types/usage/shared.d.ts +1 -0
  90. package/dist/types/usage/zai.d.ts +2 -0
  91. package/dist/types/usage.d.ts +258 -0
  92. package/dist/types/utils/abort.d.ts +19 -0
  93. package/dist/types/utils/anthropic-auth.d.ts +31 -0
  94. package/dist/types/utils/discovery/antigravity.d.ts +67 -0
  95. package/dist/types/utils/discovery/codex.d.ts +38 -0
  96. package/dist/types/utils/discovery/cursor.d.ts +23 -0
  97. package/dist/types/utils/discovery/gemini.d.ts +25 -0
  98. package/dist/types/utils/discovery/index.d.ts +4 -0
  99. package/dist/types/utils/discovery/openai-compatible.d.ts +74 -0
  100. package/dist/types/utils/event-stream.d.ts +39 -0
  101. package/dist/types/utils/fallback-transport.d.ts +66 -0
  102. package/dist/types/utils/fireworks-model-id.d.ts +10 -0
  103. package/dist/types/utils/foundry.d.ts +1 -0
  104. package/dist/types/utils/h2-fetch.d.ts +22 -0
  105. package/dist/types/utils/http-inspector.d.ts +35 -0
  106. package/dist/types/utils/idle-iterator.d.ts +67 -0
  107. package/dist/types/utils/json-parse.d.ts +18 -0
  108. package/dist/types/utils/oauth/alibaba-coding-plan.d.ts +18 -0
  109. package/dist/types/utils/oauth/anthropic.d.ts +22 -0
  110. package/dist/types/utils/oauth/api-key-login.d.ts +35 -0
  111. package/dist/types/utils/oauth/api-key-validation.d.ts +27 -0
  112. package/dist/types/utils/oauth/callback-server.d.ts +60 -0
  113. package/dist/types/utils/oauth/cerebras.d.ts +1 -0
  114. package/dist/types/utils/oauth/cloudflare-ai-gateway.d.ts +18 -0
  115. package/dist/types/utils/oauth/cursor.d.ts +15 -0
  116. package/dist/types/utils/oauth/deepinfra.d.ts +1 -0
  117. package/dist/types/utils/oauth/deepseek.d.ts +10 -0
  118. package/dist/types/utils/oauth/firepass.d.ts +1 -0
  119. package/dist/types/utils/oauth/fireworks.d.ts +1 -0
  120. package/dist/types/utils/oauth/fugu.d.ts +1 -0
  121. package/dist/types/utils/oauth/github-copilot.d.ts +38 -0
  122. package/dist/types/utils/oauth/gitlab-duo.d.ts +3 -0
  123. package/dist/types/utils/oauth/glm-zcode.d.ts +71 -0
  124. package/dist/types/utils/oauth/google-antigravity.d.ts +11 -0
  125. package/dist/types/utils/oauth/google-gemini-cli.d.ts +10 -0
  126. package/dist/types/utils/oauth/google-oauth-shared.d.ts +28 -0
  127. package/dist/types/utils/oauth/huggingface.d.ts +19 -0
  128. package/dist/types/utils/oauth/index.d.ts +39 -0
  129. package/dist/types/utils/oauth/kagi.d.ts +17 -0
  130. package/dist/types/utils/oauth/kilo.d.ts +5 -0
  131. package/dist/types/utils/oauth/kimi.d.ts +21 -0
  132. package/dist/types/utils/oauth/litellm.d.ts +18 -0
  133. package/dist/types/utils/oauth/lm-studio.d.ts +17 -0
  134. package/dist/types/utils/oauth/minimax-code.d.ts +28 -0
  135. package/dist/types/utils/oauth/moonshot.d.ts +1 -0
  136. package/dist/types/utils/oauth/nanogpt.d.ts +1 -0
  137. package/dist/types/utils/oauth/nvidia.d.ts +18 -0
  138. package/dist/types/utils/oauth/ollama-cloud.d.ts +2 -0
  139. package/dist/types/utils/oauth/ollama.d.ts +18 -0
  140. package/dist/types/utils/oauth/openai-codex.d.ts +21 -0
  141. package/dist/types/utils/oauth/opencode.d.ts +18 -0
  142. package/dist/types/utils/oauth/parallel.d.ts +17 -0
  143. package/dist/types/utils/oauth/perplexity.d.ts +9 -0
  144. package/dist/types/utils/oauth/pkce.d.ts +8 -0
  145. package/dist/types/utils/oauth/qianfan.d.ts +17 -0
  146. package/dist/types/utils/oauth/qwen-portal.d.ts +19 -0
  147. package/dist/types/utils/oauth/synthetic.d.ts +1 -0
  148. package/dist/types/utils/oauth/tavily.d.ts +17 -0
  149. package/dist/types/utils/oauth/together.d.ts +1 -0
  150. package/dist/types/utils/oauth/types.d.ts +45 -0
  151. package/dist/types/utils/oauth/venice.d.ts +18 -0
  152. package/dist/types/utils/oauth/vercel-ai-gateway.d.ts +18 -0
  153. package/dist/types/utils/oauth/vllm.d.ts +16 -0
  154. package/dist/types/utils/oauth/xai.d.ts +30 -0
  155. package/dist/types/utils/oauth/xiaomi.d.ts +25 -0
  156. package/dist/types/utils/oauth/zai.d.ts +18 -0
  157. package/dist/types/utils/oauth/zenmux.d.ts +1 -0
  158. package/dist/types/utils/overflow.d.ts +14 -0
  159. package/dist/types/utils/parse-bind.d.ts +23 -0
  160. package/dist/types/utils/provider-response.d.ts +3 -0
  161. package/dist/types/utils/retry-after.d.ts +3 -0
  162. package/dist/types/utils/retry-budget.d.ts +1 -0
  163. package/dist/types/utils/retry.d.ts +27 -0
  164. package/dist/types/utils/schema/adapt.d.ts +24 -0
  165. package/dist/types/utils/schema/compatibility.d.ts +30 -0
  166. package/dist/types/utils/schema/dereference.d.ts +11 -0
  167. package/dist/types/utils/schema/draft.d.ts +10 -0
  168. package/dist/types/utils/schema/equality.d.ts +4 -0
  169. package/dist/types/utils/schema/fields.d.ts +49 -0
  170. package/dist/types/utils/schema/index.d.ts +14 -0
  171. package/dist/types/utils/schema/json-schema-validator.d.ts +12 -0
  172. package/dist/types/utils/schema/meta-validator.d.ts +2 -0
  173. package/dist/types/utils/schema/normalize.d.ts +93 -0
  174. package/dist/types/utils/schema/root-combinator.d.ts +12 -0
  175. package/dist/types/utils/schema/spill.d.ts +8 -0
  176. package/dist/types/utils/schema/stamps.d.ts +25 -0
  177. package/dist/types/utils/schema/types.d.ts +4 -0
  178. package/dist/types/utils/schema/wire.d.ts +54 -0
  179. package/dist/types/utils/schema/zod-decontaminate.d.ts +31 -0
  180. package/dist/types/utils/sse-debug.d.ts +10 -0
  181. package/dist/types/utils/tool-call-healing.d.ts +71 -0
  182. package/dist/types/utils/tool-choice-capability.d.ts +41 -0
  183. package/dist/types/utils/tool-choice.d.ts +50 -0
  184. package/dist/types/utils/validation.d.ts +17 -0
  185. package/dist/types/utils.d.ts +89 -0
  186. package/package.json +25 -24
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Amazon Bedrock Converse Stream provider.
3
+ *
4
+ * Talks directly to `bedrock-runtime.{region}.amazonaws.com` over HTTPS with
5
+ * SigV4 signing and decodes the `application/vnd.amazon.eventstream` response.
6
+ * No `@aws-sdk/*`, no `@smithy/*`, no `proxy-agent`. Proxies are honored via
7
+ * Bun's native `HTTPS_PROXY` support.
8
+ */
9
+ import type { Effort } from "../model-thinking";
10
+ import type { StreamFunction, StreamOptions, ThinkingBudgets, Tool, ToolChoice } from "../types";
11
+ export type BedrockThinkingDisplay = "summarized" | "omitted";
12
+ export interface BedrockOptions extends StreamOptions {
13
+ region?: string;
14
+ profile?: string;
15
+ toolChoice?: ToolChoice;
16
+ reasoning?: Effort;
17
+ thinkingBudgets?: ThinkingBudgets;
18
+ interleavedThinking?: boolean;
19
+ /**
20
+ * Controls how Anthropic model returns thinking content in Bedrock responses.
21
+ * - `"summarized"`: thinking blocks include human-readable summaries (default here).
22
+ * - `"omitted"`: thinking content is suppressed; the encrypted signature still
23
+ * travels back for multi-turn continuity.
24
+ *
25
+ * Starting with Anthropic model Opus 4.7 the Anthropic API default is `"omitted"`, which
26
+ * leaves callers waiting on a silent stream during long reasoning runs (issue
27
+ * #1373). We default to `"summarized"` so adaptive-thinking models that accept
28
+ * the field keep producing visible thinking deltas. Older adaptive-thinking
29
+ * models (Opus 4.6, Sonnet 4.6+) reject the field, so we omit it for them.
30
+ */
31
+ thinkingDisplay?: BedrockThinkingDisplay;
32
+ }
33
+ interface WireToolSpec {
34
+ toolSpec: {
35
+ name: string;
36
+ description: string;
37
+ inputSchema: {
38
+ json: unknown;
39
+ };
40
+ };
41
+ }
42
+ interface WireToolChoice {
43
+ auto?: Record<string, never>;
44
+ any?: Record<string, never>;
45
+ tool?: {
46
+ name: string;
47
+ };
48
+ }
49
+ interface WireToolConfig {
50
+ tools: WireToolSpec[];
51
+ toolChoice?: WireToolChoice;
52
+ }
53
+ export declare const streamBedrock: StreamFunction<"bedrock-converse-stream">;
54
+ export declare function stripBedrockForcedToolChoiceForRetry<T extends {
55
+ toolConfig?: {
56
+ toolChoice?: unknown;
57
+ };
58
+ }>(body: T): T;
59
+ export declare function convertToolConfig(tools: Tool[] | undefined, toolChoice: BedrockOptions["toolChoice"]): WireToolConfig | undefined;
60
+ export {};
@@ -0,0 +1,450 @@
1
+ /**
2
+ * Zod schemas for the Anthropic Messages API request shape we accept on the
3
+ * gateway. Mirrors https://docs.anthropic.com/en/api/messages — only the
4
+ * shapes the gateway actually understands; unsupported fields are caught with
5
+ * `.refine(...)` so the error mentions them explicitly.
6
+ *
7
+ * Used by `anthropic-messages.ts:parseRequest` to validate the inbound JSON
8
+ * before walking it into pi-ai's canonical `Context`.
9
+ */
10
+ import type { ContentBlockParam, ImageBlockParam, MessageCreateParams, MessageParam, TextBlockParam, Tool, ToolChoice } from "@anthropic-ai/sdk/resources/messages";
11
+ import * as z from "zod/v4";
12
+ export declare const cacheControlSchema: z.ZodObject<{
13
+ type: z.ZodLiteral<"ephemeral">;
14
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
15
+ }, z.core.$loose>;
16
+ export declare const base64ImageSourceSchema: z.ZodObject<{
17
+ type: z.ZodLiteral<"base64">;
18
+ data: z.ZodString;
19
+ media_type: z.ZodString;
20
+ }, z.core.$strip>;
21
+ export declare const urlImageSourceSchema: z.ZodObject<{
22
+ type: z.ZodLiteral<"url">;
23
+ url: z.ZodURL;
24
+ }, z.core.$strip>;
25
+ export declare const fileImageSourceSchema: z.ZodObject<{
26
+ type: z.ZodLiteral<"file">;
27
+ file_id: z.ZodString;
28
+ }, z.core.$strip>;
29
+ export declare const imageSourceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
30
+ type: z.ZodLiteral<"base64">;
31
+ data: z.ZodString;
32
+ media_type: z.ZodString;
33
+ }, z.core.$strip>, z.ZodObject<{
34
+ type: z.ZodLiteral<"url">;
35
+ url: z.ZodURL;
36
+ }, z.core.$strip>, z.ZodObject<{
37
+ type: z.ZodLiteral<"file">;
38
+ file_id: z.ZodString;
39
+ }, z.core.$strip>], "type">;
40
+ export declare const systemSchema: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodObject<{
41
+ type: z.ZodLiteral<"text">;
42
+ text: z.ZodString;
43
+ cache_control: z.ZodOptional<z.ZodObject<{
44
+ type: z.ZodLiteral<"ephemeral">;
45
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
46
+ }, z.core.$loose>>;
47
+ }, z.core.$strip>>]>>;
48
+ export declare const userMessageSchema: z.ZodObject<{
49
+ role: z.ZodLiteral<"user">;
50
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
51
+ type: z.ZodLiteral<"text">;
52
+ text: z.ZodString;
53
+ cache_control: z.ZodOptional<z.ZodObject<{
54
+ type: z.ZodLiteral<"ephemeral">;
55
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
56
+ }, z.core.$loose>>;
57
+ }, z.core.$strip>, z.ZodObject<{
58
+ type: z.ZodLiteral<"image">;
59
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
60
+ type: z.ZodLiteral<"base64">;
61
+ data: z.ZodString;
62
+ media_type: z.ZodString;
63
+ }, z.core.$strip>, z.ZodObject<{
64
+ type: z.ZodLiteral<"url">;
65
+ url: z.ZodURL;
66
+ }, z.core.$strip>, z.ZodObject<{
67
+ type: z.ZodLiteral<"file">;
68
+ file_id: z.ZodString;
69
+ }, z.core.$strip>], "type">;
70
+ cache_control: z.ZodOptional<z.ZodObject<{
71
+ type: z.ZodLiteral<"ephemeral">;
72
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
73
+ }, z.core.$loose>>;
74
+ }, z.core.$strip>, z.ZodObject<{
75
+ type: z.ZodLiteral<"tool_result">;
76
+ tool_use_id: z.ZodString;
77
+ content: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
78
+ type: z.ZodLiteral<"text">;
79
+ text: z.ZodString;
80
+ cache_control: z.ZodOptional<z.ZodObject<{
81
+ type: z.ZodLiteral<"ephemeral">;
82
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
83
+ }, z.core.$loose>>;
84
+ }, z.core.$strip>, z.ZodObject<{
85
+ type: z.ZodLiteral<"image">;
86
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
87
+ type: z.ZodLiteral<"base64">;
88
+ data: z.ZodString;
89
+ media_type: z.ZodString;
90
+ }, z.core.$strip>, z.ZodObject<{
91
+ type: z.ZodLiteral<"url">;
92
+ url: z.ZodURL;
93
+ }, z.core.$strip>, z.ZodObject<{
94
+ type: z.ZodLiteral<"file">;
95
+ file_id: z.ZodString;
96
+ }, z.core.$strip>], "type">;
97
+ cache_control: z.ZodOptional<z.ZodObject<{
98
+ type: z.ZodLiteral<"ephemeral">;
99
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
100
+ }, z.core.$loose>>;
101
+ }, z.core.$strip>], "type">>]>>;
102
+ is_error: z.ZodOptional<z.ZodBoolean>;
103
+ cache_control: z.ZodOptional<z.ZodObject<{
104
+ type: z.ZodLiteral<"ephemeral">;
105
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
106
+ }, z.core.$loose>>;
107
+ }, z.core.$strip>], "type">, z.ZodObject<{
108
+ type: z.ZodString;
109
+ }, z.core.$loose>]>>]>;
110
+ }, z.core.$strip>;
111
+ export declare const assistantMessageSchema: z.ZodObject<{
112
+ role: z.ZodLiteral<"assistant">;
113
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
114
+ type: z.ZodLiteral<"text">;
115
+ text: z.ZodString;
116
+ cache_control: z.ZodOptional<z.ZodObject<{
117
+ type: z.ZodLiteral<"ephemeral">;
118
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
119
+ }, z.core.$loose>>;
120
+ }, z.core.$strip>, z.ZodObject<{
121
+ type: z.ZodLiteral<"thinking">;
122
+ thinking: z.ZodString;
123
+ signature: z.ZodOptional<z.ZodString>;
124
+ cache_control: z.ZodOptional<z.ZodObject<{
125
+ type: z.ZodLiteral<"ephemeral">;
126
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
127
+ }, z.core.$loose>>;
128
+ }, z.core.$strip>, z.ZodObject<{
129
+ type: z.ZodLiteral<"redacted_thinking">;
130
+ data: z.ZodString;
131
+ cache_control: z.ZodOptional<z.ZodObject<{
132
+ type: z.ZodLiteral<"ephemeral">;
133
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
134
+ }, z.core.$loose>>;
135
+ }, z.core.$strip>, z.ZodObject<{
136
+ type: z.ZodLiteral<"tool_use">;
137
+ id: z.ZodString;
138
+ name: z.ZodString;
139
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
140
+ cache_control: z.ZodOptional<z.ZodObject<{
141
+ type: z.ZodLiteral<"ephemeral">;
142
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
143
+ }, z.core.$loose>>;
144
+ }, z.core.$strip>], "type">, z.ZodObject<{
145
+ type: z.ZodString;
146
+ }, z.core.$loose>]>>]>;
147
+ }, z.core.$strip>;
148
+ export declare const messageSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
149
+ role: z.ZodLiteral<"user">;
150
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
151
+ type: z.ZodLiteral<"text">;
152
+ text: z.ZodString;
153
+ cache_control: z.ZodOptional<z.ZodObject<{
154
+ type: z.ZodLiteral<"ephemeral">;
155
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
156
+ }, z.core.$loose>>;
157
+ }, z.core.$strip>, z.ZodObject<{
158
+ type: z.ZodLiteral<"image">;
159
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
160
+ type: z.ZodLiteral<"base64">;
161
+ data: z.ZodString;
162
+ media_type: z.ZodString;
163
+ }, z.core.$strip>, z.ZodObject<{
164
+ type: z.ZodLiteral<"url">;
165
+ url: z.ZodURL;
166
+ }, z.core.$strip>, z.ZodObject<{
167
+ type: z.ZodLiteral<"file">;
168
+ file_id: z.ZodString;
169
+ }, z.core.$strip>], "type">;
170
+ cache_control: z.ZodOptional<z.ZodObject<{
171
+ type: z.ZodLiteral<"ephemeral">;
172
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
173
+ }, z.core.$loose>>;
174
+ }, z.core.$strip>, z.ZodObject<{
175
+ type: z.ZodLiteral<"tool_result">;
176
+ tool_use_id: z.ZodString;
177
+ content: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
178
+ type: z.ZodLiteral<"text">;
179
+ text: z.ZodString;
180
+ cache_control: z.ZodOptional<z.ZodObject<{
181
+ type: z.ZodLiteral<"ephemeral">;
182
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
183
+ }, z.core.$loose>>;
184
+ }, z.core.$strip>, z.ZodObject<{
185
+ type: z.ZodLiteral<"image">;
186
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
187
+ type: z.ZodLiteral<"base64">;
188
+ data: z.ZodString;
189
+ media_type: z.ZodString;
190
+ }, z.core.$strip>, z.ZodObject<{
191
+ type: z.ZodLiteral<"url">;
192
+ url: z.ZodURL;
193
+ }, z.core.$strip>, z.ZodObject<{
194
+ type: z.ZodLiteral<"file">;
195
+ file_id: z.ZodString;
196
+ }, z.core.$strip>], "type">;
197
+ cache_control: z.ZodOptional<z.ZodObject<{
198
+ type: z.ZodLiteral<"ephemeral">;
199
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
200
+ }, z.core.$loose>>;
201
+ }, z.core.$strip>], "type">>]>>;
202
+ is_error: z.ZodOptional<z.ZodBoolean>;
203
+ cache_control: z.ZodOptional<z.ZodObject<{
204
+ type: z.ZodLiteral<"ephemeral">;
205
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
206
+ }, z.core.$loose>>;
207
+ }, z.core.$strip>], "type">, z.ZodObject<{
208
+ type: z.ZodString;
209
+ }, z.core.$loose>]>>]>;
210
+ }, z.core.$strip>, z.ZodObject<{
211
+ role: z.ZodLiteral<"assistant">;
212
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
213
+ type: z.ZodLiteral<"text">;
214
+ text: z.ZodString;
215
+ cache_control: z.ZodOptional<z.ZodObject<{
216
+ type: z.ZodLiteral<"ephemeral">;
217
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
218
+ }, z.core.$loose>>;
219
+ }, z.core.$strip>, z.ZodObject<{
220
+ type: z.ZodLiteral<"thinking">;
221
+ thinking: z.ZodString;
222
+ signature: z.ZodOptional<z.ZodString>;
223
+ cache_control: z.ZodOptional<z.ZodObject<{
224
+ type: z.ZodLiteral<"ephemeral">;
225
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
226
+ }, z.core.$loose>>;
227
+ }, z.core.$strip>, z.ZodObject<{
228
+ type: z.ZodLiteral<"redacted_thinking">;
229
+ data: z.ZodString;
230
+ cache_control: z.ZodOptional<z.ZodObject<{
231
+ type: z.ZodLiteral<"ephemeral">;
232
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
233
+ }, z.core.$loose>>;
234
+ }, z.core.$strip>, z.ZodObject<{
235
+ type: z.ZodLiteral<"tool_use">;
236
+ id: z.ZodString;
237
+ name: z.ZodString;
238
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
239
+ cache_control: z.ZodOptional<z.ZodObject<{
240
+ type: z.ZodLiteral<"ephemeral">;
241
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
242
+ }, z.core.$loose>>;
243
+ }, z.core.$strip>], "type">, z.ZodObject<{
244
+ type: z.ZodString;
245
+ }, z.core.$loose>]>>]>;
246
+ }, z.core.$strip>], "role">;
247
+ export declare const toolSchema: z.ZodObject<{
248
+ name: z.ZodString;
249
+ description: z.ZodOptional<z.ZodString>;
250
+ input_schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
251
+ cache_control: z.ZodOptional<z.ZodObject<{
252
+ type: z.ZodLiteral<"ephemeral">;
253
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
254
+ }, z.core.$loose>>;
255
+ }, z.core.$strip>;
256
+ export declare const toolChoiceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
257
+ type: z.ZodLiteral<"auto">;
258
+ disable_parallel_tool_use: z.ZodOptional<z.ZodBoolean>;
259
+ }, z.core.$strip>, z.ZodObject<{
260
+ type: z.ZodLiteral<"any">;
261
+ disable_parallel_tool_use: z.ZodOptional<z.ZodBoolean>;
262
+ }, z.core.$strip>, z.ZodObject<{
263
+ type: z.ZodLiteral<"none">;
264
+ disable_parallel_tool_use: z.ZodOptional<z.ZodBoolean>;
265
+ }, z.core.$strip>, z.ZodObject<{
266
+ type: z.ZodLiteral<"tool">;
267
+ name: z.ZodString;
268
+ disable_parallel_tool_use: z.ZodOptional<z.ZodBoolean>;
269
+ }, z.core.$strip>], "type">;
270
+ export declare const thinkingConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
271
+ type: z.ZodLiteral<"enabled">;
272
+ budget_tokens: z.ZodNumber;
273
+ display: z.ZodOptional<z.ZodUnknown>;
274
+ }, z.core.$strip>, z.ZodObject<{
275
+ type: z.ZodLiteral<"disabled">;
276
+ display: z.ZodOptional<z.ZodUnknown>;
277
+ }, z.core.$strip>, z.ZodObject<{
278
+ type: z.ZodLiteral<"adaptive">;
279
+ budget_tokens: z.ZodOptional<z.ZodNumber>;
280
+ display: z.ZodOptional<z.ZodUnknown>;
281
+ }, z.core.$strip>], "type">;
282
+ export declare const anthropicMessagesRequestSchema: z.ZodObject<{
283
+ model: z.ZodString;
284
+ messages: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
285
+ role: z.ZodLiteral<"user">;
286
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
287
+ type: z.ZodLiteral<"text">;
288
+ text: z.ZodString;
289
+ cache_control: z.ZodOptional<z.ZodObject<{
290
+ type: z.ZodLiteral<"ephemeral">;
291
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
292
+ }, z.core.$loose>>;
293
+ }, z.core.$strip>, z.ZodObject<{
294
+ type: z.ZodLiteral<"image">;
295
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
296
+ type: z.ZodLiteral<"base64">;
297
+ data: z.ZodString;
298
+ media_type: z.ZodString;
299
+ }, z.core.$strip>, z.ZodObject<{
300
+ type: z.ZodLiteral<"url">;
301
+ url: z.ZodURL;
302
+ }, z.core.$strip>, z.ZodObject<{
303
+ type: z.ZodLiteral<"file">;
304
+ file_id: z.ZodString;
305
+ }, z.core.$strip>], "type">;
306
+ cache_control: z.ZodOptional<z.ZodObject<{
307
+ type: z.ZodLiteral<"ephemeral">;
308
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
309
+ }, z.core.$loose>>;
310
+ }, z.core.$strip>, z.ZodObject<{
311
+ type: z.ZodLiteral<"tool_result">;
312
+ tool_use_id: z.ZodString;
313
+ content: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
314
+ type: z.ZodLiteral<"text">;
315
+ text: z.ZodString;
316
+ cache_control: z.ZodOptional<z.ZodObject<{
317
+ type: z.ZodLiteral<"ephemeral">;
318
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
319
+ }, z.core.$loose>>;
320
+ }, z.core.$strip>, z.ZodObject<{
321
+ type: z.ZodLiteral<"image">;
322
+ source: z.ZodDiscriminatedUnion<[z.ZodObject<{
323
+ type: z.ZodLiteral<"base64">;
324
+ data: z.ZodString;
325
+ media_type: z.ZodString;
326
+ }, z.core.$strip>, z.ZodObject<{
327
+ type: z.ZodLiteral<"url">;
328
+ url: z.ZodURL;
329
+ }, z.core.$strip>, z.ZodObject<{
330
+ type: z.ZodLiteral<"file">;
331
+ file_id: z.ZodString;
332
+ }, z.core.$strip>], "type">;
333
+ cache_control: z.ZodOptional<z.ZodObject<{
334
+ type: z.ZodLiteral<"ephemeral">;
335
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
336
+ }, z.core.$loose>>;
337
+ }, z.core.$strip>], "type">>]>>;
338
+ is_error: z.ZodOptional<z.ZodBoolean>;
339
+ cache_control: z.ZodOptional<z.ZodObject<{
340
+ type: z.ZodLiteral<"ephemeral">;
341
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
342
+ }, z.core.$loose>>;
343
+ }, z.core.$strip>], "type">, z.ZodObject<{
344
+ type: z.ZodString;
345
+ }, z.core.$loose>]>>]>;
346
+ }, z.core.$strip>, z.ZodObject<{
347
+ role: z.ZodLiteral<"assistant">;
348
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
349
+ type: z.ZodLiteral<"text">;
350
+ text: z.ZodString;
351
+ cache_control: z.ZodOptional<z.ZodObject<{
352
+ type: z.ZodLiteral<"ephemeral">;
353
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
354
+ }, z.core.$loose>>;
355
+ }, z.core.$strip>, z.ZodObject<{
356
+ type: z.ZodLiteral<"thinking">;
357
+ thinking: z.ZodString;
358
+ signature: z.ZodOptional<z.ZodString>;
359
+ cache_control: z.ZodOptional<z.ZodObject<{
360
+ type: z.ZodLiteral<"ephemeral">;
361
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
362
+ }, z.core.$loose>>;
363
+ }, z.core.$strip>, z.ZodObject<{
364
+ type: z.ZodLiteral<"redacted_thinking">;
365
+ data: z.ZodString;
366
+ cache_control: z.ZodOptional<z.ZodObject<{
367
+ type: z.ZodLiteral<"ephemeral">;
368
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
369
+ }, z.core.$loose>>;
370
+ }, z.core.$strip>, z.ZodObject<{
371
+ type: z.ZodLiteral<"tool_use">;
372
+ id: z.ZodString;
373
+ name: z.ZodString;
374
+ input: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
375
+ cache_control: z.ZodOptional<z.ZodObject<{
376
+ type: z.ZodLiteral<"ephemeral">;
377
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
378
+ }, z.core.$loose>>;
379
+ }, z.core.$strip>], "type">, z.ZodObject<{
380
+ type: z.ZodString;
381
+ }, z.core.$loose>]>>]>;
382
+ }, z.core.$strip>], "role">>;
383
+ max_tokens: z.ZodNumber;
384
+ system: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodObject<{
385
+ type: z.ZodLiteral<"text">;
386
+ text: z.ZodString;
387
+ cache_control: z.ZodOptional<z.ZodObject<{
388
+ type: z.ZodLiteral<"ephemeral">;
389
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
390
+ }, z.core.$loose>>;
391
+ }, z.core.$strip>>]>>;
392
+ tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
393
+ name: z.ZodString;
394
+ description: z.ZodOptional<z.ZodString>;
395
+ input_schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
396
+ cache_control: z.ZodOptional<z.ZodObject<{
397
+ type: z.ZodLiteral<"ephemeral">;
398
+ ttl: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"1h">, z.ZodLiteral<"5m">]>>;
399
+ }, z.core.$loose>>;
400
+ }, z.core.$strip>>>;
401
+ tool_choice: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
402
+ type: z.ZodLiteral<"auto">;
403
+ disable_parallel_tool_use: z.ZodOptional<z.ZodBoolean>;
404
+ }, z.core.$strip>, z.ZodObject<{
405
+ type: z.ZodLiteral<"any">;
406
+ disable_parallel_tool_use: z.ZodOptional<z.ZodBoolean>;
407
+ }, z.core.$strip>, z.ZodObject<{
408
+ type: z.ZodLiteral<"none">;
409
+ disable_parallel_tool_use: z.ZodOptional<z.ZodBoolean>;
410
+ }, z.core.$strip>, z.ZodObject<{
411
+ type: z.ZodLiteral<"tool">;
412
+ name: z.ZodString;
413
+ disable_parallel_tool_use: z.ZodOptional<z.ZodBoolean>;
414
+ }, z.core.$strip>], "type">>;
415
+ temperature: z.ZodOptional<z.ZodNumber>;
416
+ top_p: z.ZodOptional<z.ZodNumber>;
417
+ top_k: z.ZodOptional<z.ZodNumber>;
418
+ stop_sequences: z.ZodOptional<z.ZodArray<z.ZodString>>;
419
+ stream: z.ZodOptional<z.ZodBoolean>;
420
+ thinking: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
421
+ type: z.ZodLiteral<"enabled">;
422
+ budget_tokens: z.ZodNumber;
423
+ display: z.ZodOptional<z.ZodUnknown>;
424
+ }, z.core.$strip>, z.ZodObject<{
425
+ type: z.ZodLiteral<"disabled">;
426
+ display: z.ZodOptional<z.ZodUnknown>;
427
+ }, z.core.$strip>, z.ZodObject<{
428
+ type: z.ZodLiteral<"adaptive">;
429
+ budget_tokens: z.ZodOptional<z.ZodNumber>;
430
+ display: z.ZodOptional<z.ZodUnknown>;
431
+ }, z.core.$strip>], "type">>;
432
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
433
+ container: z.ZodOptional<z.ZodUnknown>;
434
+ context_management: z.ZodOptional<z.ZodUnknown>;
435
+ mcp_servers: z.ZodOptional<z.ZodUnknown>;
436
+ service_tier: z.ZodOptional<z.ZodUnknown>;
437
+ }, z.core.$strip>;
438
+ /**
439
+ * Public types are sourced from the upstream Anthropic SDK so the gateway
440
+ * stays in lock-step with the canonical API surface; the schemas above are
441
+ * runtime validators for the subset we actually accept.
442
+ */
443
+ export type AnthropicMessagesRequest = MessageCreateParams;
444
+ export type AnthropicSystem = MessageCreateParams["system"];
445
+ export type AnthropicMessage = MessageParam;
446
+ export type AnthropicUserContentBlock = ContentBlockParam;
447
+ export type AnthropicAssistantContentBlock = ContentBlockParam;
448
+ export type AnthropicTool = Tool;
449
+ export type AnthropicToolChoice = ToolChoice;
450
+ export type AnthropicToolResultContent = TextBlockParam | ImageBlockParam;
@@ -0,0 +1,17 @@
1
+ import type { AssistantMessage, AssistantMessageEventStream } from "../types";
2
+ /**
3
+ * Anthropic Messages API (https://docs.anthropic.com/en/api/messages) ↔ pi-ai
4
+ * gateway translation. Inbound: foreign HTTP body → skc Context. Outbound:
5
+ * skc AssistantMessage[Stream] → Anthropic-shaped JSON / SSE.
6
+ */
7
+ import type { AuthGatewayParsedRequest as ParsedRequest } from "../auth-gateway/types";
8
+ export type { ParsedRequest };
9
+ export declare function parseRequest(body: unknown, headers?: Headers): ParsedRequest;
10
+ export declare function encodeResponse(message: AssistantMessage, requestedModelId: string): Record<string, unknown>;
11
+ export declare function encodeStream(events: AssistantMessageEventStream, requestedModelId: string): ReadableStream<Uint8Array>;
12
+ /**
13
+ * Anthropic error envelope: `{ type: "error", error: { type, message } }`.
14
+ * See https://docs.anthropic.com/en/api/errors. Returned as a `Response` so
15
+ * the gateway can hand it straight back to the client without extra wrapping.
16
+ */
17
+ export declare function formatError(status: number, type: string, message: string): Response;