@tokenite/shared 1.0.1

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 (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +42 -0
  3. package/dist/catalog/agent-runtime.d.ts +3 -0
  4. package/dist/catalog/agent-runtime.js +3 -0
  5. package/dist/catalog/bindings/anthropic.d.ts +2 -0
  6. package/dist/catalog/bindings/anthropic.js +11 -0
  7. package/dist/catalog/bindings/bedrock.d.ts +2 -0
  8. package/dist/catalog/bindings/bedrock.js +10 -0
  9. package/dist/catalog/bindings/google.d.ts +2 -0
  10. package/dist/catalog/bindings/google.js +12 -0
  11. package/dist/catalog/bindings/grok.d.ts +2 -0
  12. package/dist/catalog/bindings/grok.js +14 -0
  13. package/dist/catalog/bindings/index.d.ts +18 -0
  14. package/dist/catalog/bindings/index.js +36 -0
  15. package/dist/catalog/bindings/openai.d.ts +2 -0
  16. package/dist/catalog/bindings/openai.js +14 -0
  17. package/dist/catalog/bindings/types.d.ts +15 -0
  18. package/dist/catalog/bindings/types.js +11 -0
  19. package/dist/catalog/capabilities.d.ts +12 -0
  20. package/dist/catalog/capabilities.js +9 -0
  21. package/dist/catalog/flavors/anthropic.d.ts +3 -0
  22. package/dist/catalog/flavors/anthropic.js +26 -0
  23. package/dist/catalog/flavors/gemini.d.ts +3 -0
  24. package/dist/catalog/flavors/gemini.js +16 -0
  25. package/dist/catalog/flavors/index.d.ts +10 -0
  26. package/dist/catalog/flavors/index.js +10 -0
  27. package/dist/catalog/flavors/openai.d.ts +3 -0
  28. package/dist/catalog/flavors/openai.js +20 -0
  29. package/dist/catalog/flavors/types.d.ts +22 -0
  30. package/dist/catalog/flavors/types.js +2 -0
  31. package/dist/catalog/helpers.d.ts +5 -0
  32. package/dist/catalog/helpers.js +5 -0
  33. package/dist/catalog/index.d.ts +9 -0
  34. package/dist/catalog/index.js +8 -0
  35. package/dist/catalog/models/anthropic.d.ts +7 -0
  36. package/dist/catalog/models/anthropic.js +10 -0
  37. package/dist/catalog/models/google.d.ts +8 -0
  38. package/dist/catalog/models/google.js +11 -0
  39. package/dist/catalog/models/grok.d.ts +10 -0
  40. package/dist/catalog/models/grok.js +13 -0
  41. package/dist/catalog/models/index.d.ts +20 -0
  42. package/dist/catalog/models/index.js +19 -0
  43. package/dist/catalog/models/openai.d.ts +12 -0
  44. package/dist/catalog/models/openai.js +15 -0
  45. package/dist/catalog/models/types.d.ts +17 -0
  46. package/dist/catalog/models/types.js +45 -0
  47. package/dist/catalog/providers/anthropic.d.ts +2 -0
  48. package/dist/catalog/providers/anthropic.js +13 -0
  49. package/dist/catalog/providers/bedrock.d.ts +2 -0
  50. package/dist/catalog/providers/bedrock.js +20 -0
  51. package/dist/catalog/providers/google.d.ts +2 -0
  52. package/dist/catalog/providers/google.js +12 -0
  53. package/dist/catalog/providers/grok.d.ts +2 -0
  54. package/dist/catalog/providers/grok.js +12 -0
  55. package/dist/catalog/providers/index.d.ts +17 -0
  56. package/dist/catalog/providers/index.js +28 -0
  57. package/dist/catalog/providers/openai.d.ts +2 -0
  58. package/dist/catalog/providers/openai.js +12 -0
  59. package/dist/catalog/providers/types.d.ts +32 -0
  60. package/dist/catalog/providers/types.js +2 -0
  61. package/dist/catalog/tiers.d.ts +12 -0
  62. package/dist/catalog/tiers.js +9 -0
  63. package/dist/config.d.ts +3 -0
  64. package/dist/config.js +11 -0
  65. package/dist/constants.d.ts +31 -0
  66. package/dist/constants.js +11 -0
  67. package/dist/index.d.ts +20 -0
  68. package/dist/index.js +20 -0
  69. package/dist/parse.d.ts +2 -0
  70. package/dist/parse.js +12 -0
  71. package/dist/providers/index.d.ts +3 -0
  72. package/dist/providers/index.js +3 -0
  73. package/dist/result.d.ts +18 -0
  74. package/dist/result.js +9 -0
  75. package/dist/schemas/access-token.d.ts +32 -0
  76. package/dist/schemas/access-token.js +20 -0
  77. package/dist/schemas/account-invitation.d.ts +39 -0
  78. package/dist/schemas/account-invitation.js +20 -0
  79. package/dist/schemas/account-member.d.ts +19 -0
  80. package/dist/schemas/account-member.js +15 -0
  81. package/dist/schemas/account.d.ts +45 -0
  82. package/dist/schemas/account.js +25 -0
  83. package/dist/schemas/api-key.d.ts +44 -0
  84. package/dist/schemas/api-key.js +17 -0
  85. package/dist/schemas/app.d.ts +185 -0
  86. package/dist/schemas/app.js +41 -0
  87. package/dist/schemas/budget.d.ts +10 -0
  88. package/dist/schemas/budget.js +9 -0
  89. package/dist/schemas/cli-login.d.ts +42 -0
  90. package/dist/schemas/cli-login.js +25 -0
  91. package/dist/schemas/discovery.d.ts +7 -0
  92. package/dist/schemas/discovery.js +6 -0
  93. package/dist/schemas/error-codes.d.ts +154 -0
  94. package/dist/schemas/error-codes.js +62 -0
  95. package/dist/schemas/error.d.ts +20 -0
  96. package/dist/schemas/error.js +12 -0
  97. package/dist/schemas/provider.d.ts +11 -0
  98. package/dist/schemas/provider.js +4 -0
  99. package/dist/schemas/proxy-response.d.ts +49 -0
  100. package/dist/schemas/proxy-response.js +15 -0
  101. package/dist/schemas/sponsored-api-key.d.ts +65 -0
  102. package/dist/schemas/sponsored-api-key.js +30 -0
  103. package/dist/schemas/usage.d.ts +25 -0
  104. package/dist/schemas/usage.js +19 -0
  105. package/dist/schemas/user.d.ts +20 -0
  106. package/dist/schemas/user.js +13 -0
  107. package/package.json +60 -0
@@ -0,0 +1,49 @@
1
+ import { z } from 'zod';
2
+ export declare const proxyUsageSchema: z.ZodObject<{
3
+ inputTokens: z.ZodNumber;
4
+ outputTokens: z.ZodNumber;
5
+ }, z.core.$strip>;
6
+ export type ProxyUsage = z.infer<typeof proxyUsageSchema>;
7
+ export declare const proxySuccessSchema: z.ZodObject<{
8
+ provider: z.ZodEnum<{
9
+ anthropic: "anthropic";
10
+ openai: "openai";
11
+ bedrock: "bedrock";
12
+ google: "google";
13
+ grok: "grok";
14
+ }>;
15
+ model: z.ZodString;
16
+ usage: z.ZodNullable<z.ZodObject<{
17
+ inputTokens: z.ZodNumber;
18
+ outputTokens: z.ZodNumber;
19
+ }, z.core.$strip>>;
20
+ data: z.ZodUnknown;
21
+ }, z.core.$strip>;
22
+ export type ProxySuccess = z.infer<typeof proxySuccessSchema>;
23
+ export declare const proxyResponseSchema: z.ZodUnion<readonly [z.ZodObject<{
24
+ provider: z.ZodEnum<{
25
+ anthropic: "anthropic";
26
+ openai: "openai";
27
+ bedrock: "bedrock";
28
+ google: "google";
29
+ grok: "grok";
30
+ }>;
31
+ model: z.ZodString;
32
+ usage: z.ZodNullable<z.ZodObject<{
33
+ inputTokens: z.ZodNumber;
34
+ outputTokens: z.ZodNumber;
35
+ }, z.core.$strip>>;
36
+ data: z.ZodUnknown;
37
+ }, z.core.$strip>, z.ZodObject<{
38
+ error: z.ZodObject<{
39
+ code: z.ZodString;
40
+ message: z.ZodString;
41
+ source: z.ZodEnum<{
42
+ proxy: "proxy";
43
+ provider: "provider";
44
+ }>;
45
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
46
+ }, z.core.$strip>;
47
+ }, z.core.$strip>]>;
48
+ export type ProxyResponse = z.infer<typeof proxyResponseSchema>;
49
+ //# sourceMappingURL=proxy-response.d.ts.map
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ import { providerSchema } from './provider.js';
3
+ import { errorResponseSchema } from './error.js';
4
+ export const proxyUsageSchema = z.object({
5
+ inputTokens: z.number(),
6
+ outputTokens: z.number(),
7
+ });
8
+ export const proxySuccessSchema = z.object({
9
+ provider: providerSchema,
10
+ model: z.string(),
11
+ usage: proxyUsageSchema.nullable(),
12
+ data: z.unknown(),
13
+ });
14
+ export const proxyResponseSchema = z.union([proxySuccessSchema, errorResponseSchema]);
15
+ //# sourceMappingURL=proxy-response.js.map
@@ -0,0 +1,65 @@
1
+ import { z } from 'zod';
2
+ export declare const sponsoredApiKeySchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ appId: z.ZodString;
5
+ provider: z.ZodEnum<{
6
+ anthropic: "anthropic";
7
+ openai: "openai";
8
+ bedrock: "bedrock";
9
+ google: "google";
10
+ grok: "grok";
11
+ }>;
12
+ encryptedKey: z.ZodString;
13
+ keyHint: z.ZodString;
14
+ totalBudgetUsd: z.ZodNumber;
15
+ totalSpentUsd: z.ZodDefault<z.ZodNumber>;
16
+ perUserBudgetUsd: z.ZodNullable<z.ZodNumber>;
17
+ isActive: z.ZodDefault<z.ZodBoolean>;
18
+ createdAt: z.ZodString;
19
+ }, z.core.$strip>;
20
+ export type SponsoredApiKey = z.infer<typeof sponsoredApiKeySchema>;
21
+ export declare const addSponsoredApiKeyRequest: z.ZodObject<{
22
+ provider: z.ZodOptional<z.ZodEnum<{
23
+ anthropic: "anthropic";
24
+ openai: "openai";
25
+ bedrock: "bedrock";
26
+ google: "google";
27
+ grok: "grok";
28
+ }>>;
29
+ apiKey: z.ZodString;
30
+ totalBudgetUsd: z.ZodNumber;
31
+ perUserBudgetUsd: z.ZodOptional<z.ZodNumber>;
32
+ }, z.core.$strip>;
33
+ export type AddSponsoredApiKeyRequest = z.infer<typeof addSponsoredApiKeyRequest>;
34
+ export declare const sponsoredKeyConsumerSchema: z.ZodObject<{
35
+ userId: z.ZodString;
36
+ email: z.ZodString;
37
+ spentUsd: z.ZodNumber;
38
+ requestCount: z.ZodNumber;
39
+ }, z.core.$strip>;
40
+ export type SponsoredKeyConsumer = z.infer<typeof sponsoredKeyConsumerSchema>;
41
+ export declare const sponsoredApiKeyResponse: z.ZodObject<{
42
+ provider: z.ZodEnum<{
43
+ anthropic: "anthropic";
44
+ openai: "openai";
45
+ bedrock: "bedrock";
46
+ google: "google";
47
+ grok: "grok";
48
+ }>;
49
+ id: z.ZodString;
50
+ createdAt: z.ZodString;
51
+ keyHint: z.ZodString;
52
+ isActive: z.ZodDefault<z.ZodBoolean>;
53
+ appId: z.ZodString;
54
+ totalBudgetUsd: z.ZodNumber;
55
+ totalSpentUsd: z.ZodDefault<z.ZodNumber>;
56
+ perUserBudgetUsd: z.ZodNullable<z.ZodNumber>;
57
+ consumers: z.ZodArray<z.ZodObject<{
58
+ userId: z.ZodString;
59
+ email: z.ZodString;
60
+ spentUsd: z.ZodNumber;
61
+ requestCount: z.ZodNumber;
62
+ }, z.core.$strip>>;
63
+ }, z.core.$strip>;
64
+ export type SponsoredApiKeyResponse = z.infer<typeof sponsoredApiKeyResponse>;
65
+ //# sourceMappingURL=sponsored-api-key.d.ts.map
@@ -0,0 +1,30 @@
1
+ import { z } from 'zod';
2
+ import { providerSchema } from './provider.js';
3
+ export const sponsoredApiKeySchema = z.object({
4
+ id: z.string().uuid(),
5
+ appId: z.string().uuid(),
6
+ provider: providerSchema,
7
+ encryptedKey: z.string(),
8
+ keyHint: z.string().max(8),
9
+ totalBudgetUsd: z.number(),
10
+ totalSpentUsd: z.number().default(0),
11
+ perUserBudgetUsd: z.number().nullable(),
12
+ isActive: z.boolean().default(true),
13
+ createdAt: z.string().datetime(),
14
+ });
15
+ export const addSponsoredApiKeyRequest = z.object({
16
+ provider: providerSchema.optional(),
17
+ apiKey: z.string().min(1),
18
+ totalBudgetUsd: z.number().positive(),
19
+ perUserBudgetUsd: z.number().positive().optional(),
20
+ });
21
+ export const sponsoredKeyConsumerSchema = z.object({
22
+ userId: z.string().uuid(),
23
+ email: z.string(),
24
+ spentUsd: z.number(),
25
+ requestCount: z.number().int(),
26
+ });
27
+ export const sponsoredApiKeyResponse = sponsoredApiKeySchema
28
+ .omit({ encryptedKey: true })
29
+ .extend({ consumers: z.array(sponsoredKeyConsumerSchema) });
30
+ //# sourceMappingURL=sponsored-api-key.js.map
@@ -0,0 +1,25 @@
1
+ import { z } from 'zod';
2
+ export declare const usageLogSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ userId: z.ZodString;
5
+ appId: z.ZodString;
6
+ accessTokenId: z.ZodString;
7
+ provider: z.ZodEnum<{
8
+ anthropic: "anthropic";
9
+ openai: "openai";
10
+ bedrock: "bedrock";
11
+ google: "google";
12
+ grok: "grok";
13
+ }>;
14
+ model: z.ZodString;
15
+ inputTokens: z.ZodNumber;
16
+ outputTokens: z.ZodNumber;
17
+ costUsd: z.ZodNumber;
18
+ platformFeeUsd: z.ZodNumber;
19
+ createdAt: z.ZodString;
20
+ }, z.core.$strip>;
21
+ export type UsageLog = z.infer<typeof usageLogSchema>;
22
+ export declare const PLATFORM_FEE_RATE = 0.05;
23
+ export declare const calculatePlatformFee: (costUsd: number) => number;
24
+ export declare const calculateTotalDebit: (costUsd: number) => number;
25
+ //# sourceMappingURL=usage.d.ts.map
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+ import { providerSchema } from './provider.js';
3
+ export const usageLogSchema = z.object({
4
+ id: z.string().uuid(),
5
+ userId: z.string().uuid(),
6
+ appId: z.string().uuid(),
7
+ accessTokenId: z.string().uuid(),
8
+ provider: providerSchema,
9
+ model: z.string(),
10
+ inputTokens: z.number().int().nonnegative(),
11
+ outputTokens: z.number().int().nonnegative(),
12
+ costUsd: z.number().nonnegative(),
13
+ platformFeeUsd: z.number().nonnegative(),
14
+ createdAt: z.string().datetime(),
15
+ });
16
+ export const PLATFORM_FEE_RATE = 0.05;
17
+ export const calculatePlatformFee = (costUsd) => Math.round(costUsd * PLATFORM_FEE_RATE * 1_000_000) / 1_000_000;
18
+ export const calculateTotalDebit = (costUsd) => costUsd + calculatePlatformFee(costUsd);
19
+ //# sourceMappingURL=usage.js.map
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ export declare const userSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ email: z.ZodString;
5
+ passwordHash: z.ZodOptional<z.ZodString>;
6
+ createdAt: z.ZodString;
7
+ }, z.core.$strip>;
8
+ export type User = z.infer<typeof userSchema>;
9
+ export declare const createUserRequest: z.ZodObject<{
10
+ email: z.ZodString;
11
+ password: z.ZodOptional<z.ZodString>;
12
+ }, z.core.$strip>;
13
+ export type CreateUserRequest = z.infer<typeof createUserRequest>;
14
+ export declare const userResponse: z.ZodObject<{
15
+ id: z.ZodString;
16
+ email: z.ZodString;
17
+ createdAt: z.ZodString;
18
+ }, z.core.$strip>;
19
+ export type UserResponse = z.infer<typeof userResponse>;
20
+ //# sourceMappingURL=user.d.ts.map
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ export const userSchema = z.object({
3
+ id: z.string().uuid(),
4
+ email: z.string().email(),
5
+ passwordHash: z.string().optional(),
6
+ createdAt: z.string().datetime(),
7
+ });
8
+ export const createUserRequest = z.object({
9
+ email: z.string().email(),
10
+ password: z.string().min(8).max(128).optional(),
11
+ });
12
+ export const userResponse = userSchema.omit({ passwordHash: true });
13
+ //# sourceMappingURL=user.js.map
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@tokenite/shared",
3
+ "version": "1.0.1",
4
+ "description": "Shared types, schemas, and model catalog for the Tokenite SDK and CLI. Public protocol surface.",
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.ts",
9
+ "import": "./dist/index.js"
10
+ },
11
+ "./providers": {
12
+ "types": "./dist/providers/index.d.ts",
13
+ "import": "./dist/providers/index.js"
14
+ },
15
+ "./catalog": {
16
+ "types": "./dist/catalog/index.d.ts",
17
+ "import": "./dist/catalog/index.js"
18
+ },
19
+ "./schemas/cli-login": {
20
+ "types": "./dist/schemas/cli-login.d.ts",
21
+ "import": "./dist/schemas/cli-login.js"
22
+ },
23
+ "./schemas/discovery": {
24
+ "types": "./dist/schemas/discovery.d.ts",
25
+ "import": "./dist/schemas/discovery.js"
26
+ },
27
+ "./result": {
28
+ "types": "./dist/result.d.ts",
29
+ "import": "./dist/result.js"
30
+ }
31
+ },
32
+ "files": [
33
+ "dist",
34
+ "README.md",
35
+ "LICENSE"
36
+ ],
37
+ "license": "MIT",
38
+ "engines": {
39
+ "node": ">=18"
40
+ },
41
+ "publishConfig": {
42
+ "access": "public"
43
+ },
44
+ "repository": {
45
+ "type": "git",
46
+ "url": "git+https://github.com/eran-broder/tokenite-shared.git"
47
+ },
48
+ "homepage": "https://github.com/eran-broder/tokenite-shared#readme",
49
+ "bugs": {
50
+ "url": "https://github.com/eran-broder/tokenite-shared/issues"
51
+ },
52
+ "dependencies": {
53
+ "zod": "^4.3.6"
54
+ },
55
+ "scripts": {
56
+ "build": "tsc",
57
+ "dev": "tsc --watch",
58
+ "typecheck": "tsc --noEmit"
59
+ }
60
+ }