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.
- package/dist/api/authorizer.d.ts +12 -0
- package/dist/api/authorizer.d.ts.map +1 -0
- package/dist/api/authorizer.js +157 -0
- package/dist/api/authorizer.js.map +1 -0
- package/dist/api/config/intent-config.d.ts +45 -0
- package/dist/api/config/intent-config.d.ts.map +1 -0
- package/dist/api/config/intent-config.js +95 -0
- package/dist/api/config/intent-config.js.map +1 -0
- package/dist/api/index.d.ts +4 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +722 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/routing/intent-router.d.ts +56 -0
- package/dist/api/routing/intent-router.d.ts.map +1 -0
- package/dist/api/routing/intent-router.js +140 -0
- package/dist/api/routing/intent-router.js.map +1 -0
- package/dist/api/routing/intent-validator.d.ts +83 -0
- package/dist/api/routing/intent-validator.d.ts.map +1 -0
- package/dist/api/routing/intent-validator.js +187 -0
- package/dist/api/routing/intent-validator.js.map +1 -0
- package/dist/api/services/billing.d.ts +9 -0
- package/dist/api/services/billing.d.ts.map +1 -0
- package/dist/api/services/billing.js +49 -0
- package/dist/api/services/billing.js.map +1 -0
- package/dist/api/services/stripe.d.ts +17 -0
- package/dist/api/services/stripe.d.ts.map +1 -0
- package/dist/api/services/stripe.js +69 -0
- package/dist/api/services/stripe.js.map +1 -0
- package/dist/authorizer.zip +0 -0
- package/dist/cli/auth.d.ts +20 -0
- package/dist/cli/auth.d.ts.map +1 -0
- package/dist/cli/auth.js +264 -0
- package/dist/cli/auth.js.map +1 -0
- package/dist/cli/config.d.ts +17 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +94 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +371 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/proxy.d.ts +2 -0
- package/dist/cli/proxy.d.ts.map +1 -0
- package/dist/cli/proxy.js +171 -0
- package/dist/cli/proxy.js.map +1 -0
- package/dist/data/catalog.d.ts +54 -0
- package/dist/data/catalog.d.ts.map +1 -0
- package/dist/data/catalog.js +108 -0
- package/dist/data/catalog.js.map +1 -0
- package/dist/db/dal.d.ts +75 -0
- package/dist/db/dal.d.ts.map +1 -0
- package/dist/db/dal.js +124 -0
- package/dist/db/dal.js.map +1 -0
- package/dist/index.js +156 -0
- package/dist/index.ts +134 -0
- package/dist/logger.d.ts +8 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +19 -0
- package/dist/logger.js.map +1 -0
- package/dist/test/setup.d.ts +2 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/dist/test/setup.js +27 -0
- package/dist/test/setup.js.map +1 -0
- 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"}
|