zeroauth 1.0.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 (64) hide show
  1. package/dist/api/authorizer.d.ts +12 -0
  2. package/dist/api/authorizer.d.ts.map +1 -0
  3. package/dist/api/authorizer.js +157 -0
  4. package/dist/api/authorizer.js.map +1 -0
  5. package/dist/api/config/intent-config.d.ts +45 -0
  6. package/dist/api/config/intent-config.d.ts.map +1 -0
  7. package/dist/api/config/intent-config.js +95 -0
  8. package/dist/api/config/intent-config.js.map +1 -0
  9. package/dist/api/index.d.ts +4 -0
  10. package/dist/api/index.d.ts.map +1 -0
  11. package/dist/api/index.js +722 -0
  12. package/dist/api/index.js.map +1 -0
  13. package/dist/api/routing/intent-router.d.ts +56 -0
  14. package/dist/api/routing/intent-router.d.ts.map +1 -0
  15. package/dist/api/routing/intent-router.js +140 -0
  16. package/dist/api/routing/intent-router.js.map +1 -0
  17. package/dist/api/routing/intent-validator.d.ts +83 -0
  18. package/dist/api/routing/intent-validator.d.ts.map +1 -0
  19. package/dist/api/routing/intent-validator.js +187 -0
  20. package/dist/api/routing/intent-validator.js.map +1 -0
  21. package/dist/api/services/billing.d.ts +9 -0
  22. package/dist/api/services/billing.d.ts.map +1 -0
  23. package/dist/api/services/billing.js +49 -0
  24. package/dist/api/services/billing.js.map +1 -0
  25. package/dist/api/services/stripe.d.ts +17 -0
  26. package/dist/api/services/stripe.d.ts.map +1 -0
  27. package/dist/api/services/stripe.js +69 -0
  28. package/dist/api/services/stripe.js.map +1 -0
  29. package/dist/authorizer.zip +0 -0
  30. package/dist/cli/auth.d.ts +20 -0
  31. package/dist/cli/auth.d.ts.map +1 -0
  32. package/dist/cli/auth.js +264 -0
  33. package/dist/cli/auth.js.map +1 -0
  34. package/dist/cli/config.d.ts +17 -0
  35. package/dist/cli/config.d.ts.map +1 -0
  36. package/dist/cli/config.js +94 -0
  37. package/dist/cli/config.js.map +1 -0
  38. package/dist/cli/index.d.ts +3 -0
  39. package/dist/cli/index.d.ts.map +1 -0
  40. package/dist/cli/index.js +371 -0
  41. package/dist/cli/index.js.map +1 -0
  42. package/dist/cli/proxy.d.ts +2 -0
  43. package/dist/cli/proxy.d.ts.map +1 -0
  44. package/dist/cli/proxy.js +171 -0
  45. package/dist/cli/proxy.js.map +1 -0
  46. package/dist/data/catalog.d.ts +54 -0
  47. package/dist/data/catalog.d.ts.map +1 -0
  48. package/dist/data/catalog.js +108 -0
  49. package/dist/data/catalog.js.map +1 -0
  50. package/dist/db/dal.d.ts +75 -0
  51. package/dist/db/dal.d.ts.map +1 -0
  52. package/dist/db/dal.js +124 -0
  53. package/dist/db/dal.js.map +1 -0
  54. package/dist/index.js +156 -0
  55. package/dist/index.ts +134 -0
  56. package/dist/logger.d.ts +8 -0
  57. package/dist/logger.d.ts.map +1 -0
  58. package/dist/logger.js +19 -0
  59. package/dist/logger.js.map +1 -0
  60. package/dist/test/setup.d.ts +2 -0
  61. package/dist/test/setup.d.ts.map +1 -0
  62. package/dist/test/setup.js +27 -0
  63. package/dist/test/setup.js.map +1 -0
  64. package/package.json +82 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Intent Router for ZeroAuth Routing
3
+ *
4
+ * Simplified router that converts intent:keyword → model_group_name
5
+ * and lets LiteLLM handle all model selection and failover
6
+ */
7
+ export interface RoutingResult {
8
+ targetModel: string;
9
+ routingType: "intent_to_group" | "direct_model";
10
+ originalRequest: string;
11
+ intent?: string;
12
+ modelGroupName?: string;
13
+ }
14
+ export interface RoutingError {
15
+ type: "invalid_intent" | "routing_failed";
16
+ message: string;
17
+ statusCode: number;
18
+ originalRequest: string;
19
+ help?: any;
20
+ }
21
+ export declare class IntentRouter {
22
+ /**
23
+ * Route a request: convert intent:keyword → model_group_name or pass through direct model
24
+ */
25
+ static routeRequest(modelParam: string): Promise<RoutingResult | RoutingError>;
26
+ /**
27
+ * Convert intent request to model group name for LiteLLM
28
+ */
29
+ private static routeIntentToModelGroup;
30
+ /**
31
+ * Route a direct model request (OpenAI compatibility)
32
+ */
33
+ private static routeDirectModel;
34
+ /**
35
+ * Create an intent error response
36
+ */
37
+ private static createIntentError;
38
+ /**
39
+ * Get routing metadata for response enhancement
40
+ */
41
+ static getRoutingMetadata(routingResult: RoutingResult): any;
42
+ /**
43
+ * Get available intents for help endpoints
44
+ */
45
+ static getAvailableIntentsInfo(): {
46
+ intents: {
47
+ name: string;
48
+ description: string;
49
+ examples: string[];
50
+ }[];
51
+ total_intents: number;
52
+ intent_format: string;
53
+ };
54
+ }
55
+ export default IntentRouter;
56
+ //# sourceMappingURL=intent-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-router.d.ts","sourceRoot":"","sources":["../../../src/api/routing/intent-router.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,iBAAiB,GAAG,cAAc,CAAC;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,gBAAgB,GAAG,gBAAgB,CAAC;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,qBAAa,YAAY;IACvB;;OAEG;WACU,YAAY,CACvB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,GAAG,YAAY,CAAC;IAkCxC;;OAEG;mBACkB,uBAAuB;IA0B5C;;OAEG;mBACkB,gBAAgB;IAYrC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAehC;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,aAAa,EAAE,aAAa,GAAG,GAAG;IA0B5D;;OAEG;IACH,MAAM,CAAC,uBAAuB;;;;;;;;;CAa/B;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ /**
3
+ * Intent Router for ZeroAuth Routing
4
+ *
5
+ * Simplified router that converts intent:keyword → model_group_name
6
+ * and lets LiteLLM handle all model selection and failover
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.IntentRouter = void 0;
13
+ const intent_config_1 = require("../config/intent-config");
14
+ const intent_validator_1 = __importDefault(require("./intent-validator"));
15
+ const logger_1 = require("../../logger");
16
+ class IntentRouter {
17
+ /**
18
+ * Route a request: convert intent:keyword → model_group_name or pass through direct model
19
+ */
20
+ static async routeRequest(modelParam) {
21
+ logger_1.log.info(`🔀 Routing request for model: "${modelParam}"`);
22
+ try {
23
+ //Parse the model parameter
24
+ const parsed = intent_validator_1.default.parseModelParameter(modelParam);
25
+ logger_1.log.info(`📋 Parsed request:`, {
26
+ type: parsed.type,
27
+ value: parsed.value,
28
+ isValid: parsed.isValid,
29
+ });
30
+ // Handle intent requests - convert to model group name
31
+ if (parsed.type === "intent") {
32
+ if (!parsed.isValid) {
33
+ return this.createIntentError(parsed.value, parsed.originalInput);
34
+ }
35
+ return this.routeIntentToModelGroup(parsed);
36
+ }
37
+ // Handle direct model requests (OpenAI compatibility)
38
+ return this.routeDirectModel(parsed);
39
+ }
40
+ catch (error) {
41
+ logger_1.log.error("❌ Routing error:", error);
42
+ return {
43
+ type: "routing_failed",
44
+ message: `Routing failed: ${error instanceof Error ? error.message : "Unknown error"}`,
45
+ statusCode: 500,
46
+ originalRequest: modelParam,
47
+ };
48
+ }
49
+ }
50
+ /**
51
+ * Convert intent request to model group name for LiteLLM
52
+ */
53
+ static async routeIntentToModelGroup(parsed) {
54
+ const intentName = parsed.intentName;
55
+ // Get model group name from intent config
56
+ const modelGroupName = intent_config_1.IntentConfig.getModelGroupName(intentName);
57
+ if (!modelGroupName) {
58
+ throw new Error(`Model group not found for intent: ${intentName}`);
59
+ }
60
+ logger_1.log.info(`🎯 Intent "${intentName}" → model group: "${modelGroupName}"`);
61
+ logger_1.log.info(` LiteLLM will handle model selection and failover from this group`);
62
+ // Return the model group name - LiteLLM handles the rest
63
+ return {
64
+ targetModel: modelGroupName, // Send group name to LiteLLM
65
+ routingType: "intent_to_group",
66
+ originalRequest: parsed.originalInput,
67
+ intent: intentName,
68
+ modelGroupName,
69
+ };
70
+ }
71
+ /**
72
+ * Route a direct model request (OpenAI compatibility)
73
+ */
74
+ static async routeDirectModel(parsed) {
75
+ logger_1.log.info(`📦 Direct model request: "${parsed.value}"`);
76
+ return {
77
+ targetModel: parsed.value,
78
+ routingType: "direct_model",
79
+ originalRequest: parsed.originalInput,
80
+ };
81
+ }
82
+ /**
83
+ * Create an intent error response
84
+ */
85
+ static createIntentError(intentName, originalRequest) {
86
+ const errorResponse = intent_validator_1.default.createIntentErrorResponse(intentName);
87
+ return {
88
+ type: "invalid_intent",
89
+ message: errorResponse.error.message,
90
+ statusCode: 400,
91
+ originalRequest,
92
+ help: errorResponse.error.zeroauth_help,
93
+ };
94
+ }
95
+ /**
96
+ * Get routing metadata for response enhancement
97
+ */
98
+ static getRoutingMetadata(routingResult) {
99
+ if (routingResult.routingType === "intent_to_group") {
100
+ return {
101
+ zeroauth: {
102
+ routing: {
103
+ type: "intent",
104
+ original_request: routingResult.originalRequest,
105
+ intent: routingResult.intent,
106
+ model_group: routingResult.modelGroupName,
107
+ note: "Model selected by LiteLLM from group",
108
+ },
109
+ },
110
+ };
111
+ }
112
+ return {
113
+ zeroauth: {
114
+ routing: {
115
+ type: "direct_model",
116
+ original_request: routingResult.originalRequest,
117
+ selected_model: routingResult.targetModel,
118
+ },
119
+ },
120
+ };
121
+ }
122
+ /**
123
+ * Get available intents for help endpoints
124
+ */
125
+ static getAvailableIntentsInfo() {
126
+ const intents = intent_config_1.IntentConfig.getAvailableIntents();
127
+ return {
128
+ intents: intents.map((intent) => ({
129
+ name: intent.name,
130
+ description: intent.description,
131
+ examples: intent.examples,
132
+ })),
133
+ total_intents: intents.length,
134
+ intent_format: "intent:<keyword>",
135
+ };
136
+ }
137
+ }
138
+ exports.IntentRouter = IntentRouter;
139
+ exports.default = IntentRouter;
140
+ //# sourceMappingURL=intent-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-router.js","sourceRoot":"","sources":["../../../src/api/routing/intent-router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Intent Validator for ZeroAuth Routing
3
+ *
4
+ * Handles parsing and validation of intent-based model requests
5
+ */
6
+ import { IntentDefinition } from "../config/intent-config";
7
+ export interface ParsedIntent {
8
+ type: "intent" | "model";
9
+ value: string;
10
+ originalInput: string;
11
+ isValid: boolean;
12
+ intentName?: string;
13
+ error?: string;
14
+ }
15
+ export interface IntentValidationResult {
16
+ isValid: boolean;
17
+ intent?: IntentDefinition;
18
+ error?: string;
19
+ help?: {
20
+ availableIntents: string[];
21
+ intentFormat: string;
22
+ };
23
+ }
24
+ export declare class IntentValidator {
25
+ private static INTENT_PREFIX;
26
+ /**
27
+ * Parse a model parameter to determine if it's an intent or regular model
28
+ */
29
+ static parseModelParameter(modelParam: string): ParsedIntent;
30
+ /**
31
+ * Validate an intent and return detailed result
32
+ */
33
+ static validateIntent(intentName: string): IntentValidationResult;
34
+ /**
35
+ * Create an OpenAI-compatible error response for invalid intents
36
+ */
37
+ static createIntentErrorResponse(invalidIntent: string): {
38
+ error: {
39
+ message: string;
40
+ type: string;
41
+ code: string;
42
+ zeroauth_help: {
43
+ available_intents: string[];
44
+ intent_format: string;
45
+ };
46
+ };
47
+ };
48
+ /**
49
+ * Get helpful information about available intents
50
+ */
51
+ static getIntentHelp(): {
52
+ available_intents: string[];
53
+ intent_examples: string[];
54
+ description: string;
55
+ };
56
+ /**
57
+ * Extract intent name from model parameter
58
+ */
59
+ static extractIntentName(modelParam: string): string | null;
60
+ /**
61
+ * Check if a model parameter is an intent request
62
+ */
63
+ static isIntentRequest(modelParam: string): boolean;
64
+ /**
65
+ * Validate intent format
66
+ */
67
+ static validateIntentFormat(modelParam: string): {
68
+ isValidFormat: boolean;
69
+ error?: string;
70
+ };
71
+ /**
72
+ * Comprehensive validation of model parameter
73
+ */
74
+ static validateModelParameter(modelParam: string): {
75
+ isValid: boolean;
76
+ type: "intent" | "model";
77
+ error?: string;
78
+ intent?: IntentDefinition;
79
+ help?: any;
80
+ };
81
+ }
82
+ export default IntentValidator;
83
+ //# sourceMappingURL=intent-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-validator.d.ts","sourceRoot":"","sources":["../../../src/api/routing/intent-validator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAgB,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE;QACL,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,aAAa,CAAa;IAEzC;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY;IAyB5D;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,sBAAsB;IAkBjE;;OAEG;IACH,MAAM,CAAC,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG;QACvD,KAAK,EAAE;YACL,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,aAAa,EAAE;gBACb,iBAAiB,EAAE,MAAM,EAAE,CAAC;gBAC5B,aAAa,EAAE,MAAM,CAAC;aACvB,CAAC;SACH,CAAC;KACH;IA+BD;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI;QACtB,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,WAAW,EAAE,MAAM,CAAC;KACrB;IAYD;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAO3D;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAInD;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG;QAC/C,aAAa,EAAE,OAAO,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;IA+BD;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG;QACjD,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,gBAAgB,CAAC;QAC1B,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ;CA6CF;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ /**
3
+ * Intent Validator for ZeroAuth Routing
4
+ *
5
+ * Handles parsing and validation of intent-based model requests
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.IntentValidator = void 0;
9
+ const intent_config_1 = require("../config/intent-config");
10
+ class IntentValidator {
11
+ /**
12
+ * Parse a model parameter to determine if it's an intent or regular model
13
+ */
14
+ static parseModelParameter(modelParam) {
15
+ const originalInput = modelParam;
16
+ // Check if it starts with intent: prefix
17
+ if (modelParam.startsWith(this.INTENT_PREFIX)) {
18
+ const intentName = modelParam.substring(this.INTENT_PREFIX.length);
19
+ return {
20
+ type: "intent",
21
+ value: intentName,
22
+ originalInput,
23
+ isValid: intent_config_1.IntentConfig.isValidIntent(intentName),
24
+ intentName: intentName,
25
+ };
26
+ }
27
+ // Not an intent, treat as regular model
28
+ return {
29
+ type: "model",
30
+ value: modelParam,
31
+ originalInput,
32
+ isValid: true, // Model validation happens elsewhere
33
+ };
34
+ }
35
+ /**
36
+ * Validate an intent and return detailed result
37
+ */
38
+ static validateIntent(intentName) {
39
+ const intent = intent_config_1.IntentConfig.getIntent(intentName);
40
+ if (intent) {
41
+ return {
42
+ isValid: true,
43
+ intent,
44
+ };
45
+ }
46
+ // Invalid intent - provide helpful error information
47
+ return {
48
+ isValid: false,
49
+ error: `Invalid intent: 'intent:${intentName}'`,
50
+ help: intent_config_1.IntentConfig.getIntentHelp(intentName),
51
+ };
52
+ }
53
+ /**
54
+ * Create an OpenAI-compatible error response for invalid intents
55
+ */
56
+ static createIntentErrorResponse(invalidIntent) {
57
+ const validation = this.validateIntent(invalidIntent);
58
+ if (!validation.help) {
59
+ // Fallback error if help is not available
60
+ return {
61
+ error: {
62
+ message: `Invalid intent: 'intent:${invalidIntent}'`,
63
+ type: "invalid_request_error",
64
+ code: "invalid_intent",
65
+ zeroauth_help: {
66
+ available_intents: [],
67
+ intent_format: "intent:<keyword>",
68
+ },
69
+ },
70
+ };
71
+ }
72
+ return {
73
+ error: {
74
+ message: `Invalid intent: 'intent:${invalidIntent}'`,
75
+ type: "invalid_request_error",
76
+ code: "invalid_intent",
77
+ zeroauth_help: {
78
+ available_intents: validation.help.availableIntents,
79
+ intent_format: validation.help.intentFormat,
80
+ },
81
+ },
82
+ };
83
+ }
84
+ /**
85
+ * Get helpful information about available intents
86
+ */
87
+ static getIntentHelp() {
88
+ const intents = intent_config_1.IntentConfig.getAvailableIntents();
89
+ return {
90
+ available_intents: intents.map((intent) => intent.name),
91
+ intent_examples: intents.flatMap((intent) => intent.examples),
92
+ description: "Use intent:<keyword> to route to model groups. Available intents: " +
93
+ intents.map((intent) => intent.name).join(", "),
94
+ };
95
+ }
96
+ /**
97
+ * Extract intent name from model parameter
98
+ */
99
+ static extractIntentName(modelParam) {
100
+ const parsed = this.parseModelParameter(modelParam);
101
+ return parsed.type === "intent" && parsed.isValid
102
+ ? parsed.intentName || null
103
+ : null;
104
+ }
105
+ /**
106
+ * Check if a model parameter is an intent request
107
+ */
108
+ static isIntentRequest(modelParam) {
109
+ return modelParam.startsWith(this.INTENT_PREFIX);
110
+ }
111
+ /**
112
+ * Validate intent format
113
+ */
114
+ static validateIntentFormat(modelParam) {
115
+ if (!modelParam.startsWith(this.INTENT_PREFIX)) {
116
+ return {
117
+ isValidFormat: false,
118
+ error: `Model parameter must start with '${this.INTENT_PREFIX}' for intent routing`,
119
+ };
120
+ }
121
+ const intentName = modelParam.substring(this.INTENT_PREFIX.length);
122
+ if (!intentName || intentName.trim() === "") {
123
+ return {
124
+ isValidFormat: false,
125
+ error: "Intent name cannot be empty",
126
+ };
127
+ }
128
+ // Basic validation for intent name format
129
+ if (!/^[a-zA-Z0-9_-]+$/.test(intentName)) {
130
+ return {
131
+ isValidFormat: false,
132
+ error: "Intent name can only contain letters, numbers, hyphens, and underscores",
133
+ };
134
+ }
135
+ return {
136
+ isValidFormat: true,
137
+ };
138
+ }
139
+ /**
140
+ * Comprehensive validation of model parameter
141
+ */
142
+ static validateModelParameter(modelParam) {
143
+ // First check if it's an intent format
144
+ if (this.isIntentRequest(modelParam)) {
145
+ const formatValidation = this.validateIntentFormat(modelParam);
146
+ if (!formatValidation.isValidFormat) {
147
+ return {
148
+ isValid: false,
149
+ type: "intent",
150
+ error: formatValidation.error || "Invalid intent format",
151
+ };
152
+ }
153
+ // Then validate the specific intent
154
+ const intentName = this.extractIntentName(modelParam);
155
+ if (!intentName) {
156
+ return {
157
+ isValid: false,
158
+ type: "intent",
159
+ error: "Unable to extract intent name",
160
+ };
161
+ }
162
+ const validation = this.validateIntent(intentName);
163
+ if (!validation.isValid) {
164
+ return {
165
+ isValid: false,
166
+ type: "intent",
167
+ error: validation.error,
168
+ help: validation.help,
169
+ };
170
+ }
171
+ return {
172
+ isValid: true,
173
+ type: "intent",
174
+ intent: validation.intent,
175
+ };
176
+ }
177
+ // Not an intent request, treat as regular model
178
+ return {
179
+ isValid: true,
180
+ type: "model",
181
+ };
182
+ }
183
+ }
184
+ exports.IntentValidator = IntentValidator;
185
+ IntentValidator.INTENT_PREFIX = "intent:";
186
+ exports.default = IntentValidator;
187
+ //# sourceMappingURL=intent-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-validator.js","sourceRoot":"","sources":["../../../src/api/routing/intent-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare class BillingService {
2
+ /**
3
+ * Ensures an Organization has a valid Stripe Customer ID.
4
+ * If not, creates one and updates the database.
5
+ */
6
+ static ensureCustomer(organizationId: string, email?: string, name?: string): Promise<string>;
7
+ static recordUsage(organizationId: string, tokens: number): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=billing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../../src/api/services/billing.ts"],"names":[],"mappings":"AAIA,qBAAa,cAAc;IACzB;;;OAGG;WACU,cAAc,CACzB,cAAc,EAAE,MAAM,EACtB,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC;WAiCL,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAYhE"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BillingService = void 0;
4
+ const dal_1 = require("../../db/dal");
5
+ const stripe_1 = require("./stripe");
6
+ const logger_1 = require("../../logger");
7
+ class BillingService {
8
+ /**
9
+ * Ensures an Organization has a valid Stripe Customer ID.
10
+ * If not, creates one and updates the database.
11
+ */
12
+ static async ensureCustomer(organizationId, email, name) {
13
+ const org = await dal_1.prisma.organization.findUnique({
14
+ where: { id: organizationId },
15
+ });
16
+ if (!org) {
17
+ throw new Error(`Organization ${organizationId} not found`);
18
+ }
19
+ if (org.stripe_customer_id) {
20
+ return org.stripe_customer_id;
21
+ }
22
+ logger_1.log.info({ organizationId, email }, "Organization missing Stripe ID. Provisioning...");
23
+ // Create Stripe Customer
24
+ const customer = await (0, stripe_1.createStripeCustomer)(organizationId, email || `billing@${organizationId}.zeroauth.ai`, name || org.name);
25
+ // Save to DB
26
+ await dal_1.prisma.organization.update({
27
+ where: { id: organizationId },
28
+ data: {
29
+ stripe_customer_id: customer.id,
30
+ },
31
+ });
32
+ return customer.id;
33
+ }
34
+ static async recordUsage(organizationId, tokens) {
35
+ try {
36
+ const stripeCustomerId = await this.ensureCustomer(organizationId);
37
+ await (0, stripe_1.reportUsage)(stripeCustomerId, tokens);
38
+ }
39
+ catch (error) {
40
+ // Don't modify the error, just log it.
41
+ // We generally don't want billing errors to block the AI response in the critical path,
42
+ // but for now we might want visibility.
43
+ logger_1.log.error({ error, organizationId }, "Failed to record usage");
44
+ // We swallow the error to not impact the user experience, but alert internally
45
+ }
46
+ }
47
+ }
48
+ exports.BillingService = BillingService;
49
+ //# sourceMappingURL=billing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../../src/api/services/billing.ts"],"names":[],"mappings":";;;AAAA,sCAAsC;AACtC,qCAA6D;AAC7D,yCAAmC;AAEnC,MAAa,cAAc;IACzB;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc,CACzB,cAAsB,EACtB,KAAc,EACd,IAAa;QAEb,MAAM,GAAG,GAAG,MAAM,YAAM,CAAC,YAAY,CAAC,UAAU,CAAC;YAC/C,KAAK,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE;SAC9B,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,gBAAgB,cAAc,YAAY,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC,kBAAkB,CAAC;QAChC,CAAC;QAED,YAAG,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,iDAAiD,CAAC,CAAC;QAEvF,yBAAyB;QACzB,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAoB,EACzC,cAAc,EACd,KAAK,IAAI,WAAW,cAAc,cAAc,EAChD,IAAI,IAAI,GAAG,CAAC,IAAI,CACjB,CAAC;QAEF,aAAa;QACb,MAAM,YAAM,CAAC,YAAY,CAAC,MAAM,CAAC;YAC/B,KAAK,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE;YAC7B,IAAI,EAAE;gBACJ,kBAAkB,EAAE,QAAQ,CAAC,EAAE;aAChC;SACF,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,EAAE,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,cAAsB,EAAE,MAAc;QAC7D,IAAI,CAAC;YACD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YACnE,MAAM,IAAA,oBAAW,EAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,wCAAwC;YACxC,wFAAwF;YACxF,wCAAwC;YACxC,YAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,wBAAwB,CAAC,CAAC;YAC/D,+EAA+E;QACnF,CAAC;IACH,CAAC;CACF;AAtDD,wCAsDC"}
@@ -0,0 +1,17 @@
1
+ import Stripe from "stripe";
2
+ /**
3
+ * Initialize Stripe Client
4
+ *
5
+ * In production: Connects to real Stripe API
6
+ * In development: Connects to stripe-mock container if STRIPE_API_BASE_URL is set
7
+ */
8
+ export declare const stripe: Stripe;
9
+ /**
10
+ * Creates a Stripe Customer for an Organization
11
+ */
12
+ export declare function createStripeCustomer(organizationId: string, email: string, name: string): Promise<Stripe.Customer>;
13
+ /**
14
+ * Reports usage for Metered Billing using Stripe's modern Metering API
15
+ */
16
+ export declare function reportUsage(customerId: string, tokens: number): Promise<void>;
17
+ //# sourceMappingURL=stripe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe.d.ts","sourceRoot":"","sources":["../../../src/api/services/stripe.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAM5B;;;;;GAKG;AACH,eAAO,MAAM,MAAM,QAOjB,CAAC;AAIH;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAgB1B;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAmBf"}