@autonomaai/api-schemas 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.
@@ -0,0 +1,77 @@
1
+ /**
2
+ * autonoma API Schemas
3
+ *
4
+ * Unified API schemas and validation utilities for all autonoma services.
5
+ *
6
+ * This package normalizes API contracts across:
7
+ * - Hummingbot MCP Server
8
+ * - Backend API
9
+ * - Market Maker Agent
10
+ * - Data Collector
11
+ * - RAG Service
12
+ */
13
+ export * from './validators';
14
+ export { migrateLegacyExecuteSignal, convertToLegacyFormat, createValidationMiddleware, generatePythonValidator } from './validators';
15
+ export type { ValidationResult, ValidationError } from './validators';
16
+ export { validateSuccessResponse, validateErrorResponse, validateCreateControllerRequest, validateController, validateTradingSignal, validateExecuteSignalRequest } from './validators';
17
+ export declare const API_SCHEMA_VERSION = "1.0.0";
18
+ export declare const SUPPORTED_FORMATS: string[];
19
+ export declare const SCHEMAS: {
20
+ readonly OPENAPI_SPEC: "openapi.yaml";
21
+ readonly JSON_SCHEMAS: "schemas/";
22
+ readonly GENERATED_TYPES: "generated-types.ts";
23
+ };
24
+ export declare const ENDPOINT_MIGRATIONS: {
25
+ readonly LEGACY_EXECUTE_SIGNAL: "/trading/execute-signal";
26
+ readonly LEGACY_CONTROLLER_SIGNAL: "/trading/{controller_id}/signal";
27
+ readonly UNIFIED_EXECUTE_SIGNAL: "/trading/signals/execute";
28
+ };
29
+ export declare const ERROR_CODES: {
30
+ readonly VALIDATION_FAILED: "VALIDATION_FAILED";
31
+ readonly CONTROLLER_NOT_FOUND: "CONTROLLER_NOT_FOUND";
32
+ readonly INVALID_SIGNAL: "INVALID_SIGNAL";
33
+ readonly EXCHANGE_ERROR: "EXCHANGE_ERROR";
34
+ readonly UNAUTHORIZED: "UNAUTHORIZED";
35
+ readonly RATE_LIMITED: "RATE_LIMITED";
36
+ readonly INTERNAL_ERROR: "INTERNAL_ERROR";
37
+ };
38
+ export declare const HTTP_STATUS: {
39
+ readonly OK: 200;
40
+ readonly CREATED: 201;
41
+ readonly BAD_REQUEST: 400;
42
+ readonly UNAUTHORIZED: 401;
43
+ readonly FORBIDDEN: 403;
44
+ readonly NOT_FOUND: 404;
45
+ readonly CONFLICT: 409;
46
+ readonly RATE_LIMITED: 429;
47
+ readonly INTERNAL_ERROR: 500;
48
+ readonly SERVICE_UNAVAILABLE: 503;
49
+ };
50
+ /**
51
+ * Create a standardized success response
52
+ */
53
+ export declare function createSuccessResponse<T = any>(message: string, data?: T, additionalFields?: Record<string, any>): {
54
+ data?: (T & ({} | null)) | undefined;
55
+ success: boolean;
56
+ message: string;
57
+ timestamp: string;
58
+ };
59
+ /**
60
+ * Create a standardized error response
61
+ */
62
+ export declare function createErrorResponse(error: string, detail?: string, errorCode?: string, additionalFields?: Record<string, any>): {
63
+ timestamp: string;
64
+ error_code?: string | undefined;
65
+ detail?: string | undefined;
66
+ success: boolean;
67
+ error: string;
68
+ };
69
+ /**
70
+ * Check if a response follows the standardized format
71
+ */
72
+ export declare function isStandardizedResponse(response: any): boolean;
73
+ /**
74
+ * Normalize a legacy response to the standardized format
75
+ */
76
+ export declare function normalizeLegacyResponse(response: any): any;
77
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,cAAc,cAAc,CAAC;AAG7B,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACxB,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,+BAA+B,EAC/B,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,EAC7B,MAAM,cAAc,CAAC;AAGtB,eAAO,MAAM,kBAAkB,UAAU,CAAC;AAC1C,eAAO,MAAM,iBAAiB,UAA4C,CAAC;AAG3E,eAAO,MAAM,OAAO;;;;CAIV,CAAC;AAGX,eAAO,MAAM,mBAAmB;;;;CAItB,CAAC;AAGX,eAAO,MAAM,WAAW;;;;;;;;CAQd,CAAC;AAGX,eAAO,MAAM,WAAW;;;;;;;;;;;CAWd,CAAC;AAEX;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,GAAG,GAAG,EAC3C,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,CAAC,EACR,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;;EASvC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;;;EAUvC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAO7D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,CAwB1D"}
package/dist/index.js ADDED
@@ -0,0 +1,109 @@
1
+ /**
2
+ * autonoma API Schemas
3
+ *
4
+ * Unified API schemas and validation utilities for all autonoma services.
5
+ *
6
+ * This package normalizes API contracts across:
7
+ * - Hummingbot MCP Server
8
+ * - Backend API
9
+ * - Market Maker Agent
10
+ * - Data Collector
11
+ * - RAG Service
12
+ */
13
+ // Export validation utilities
14
+ export * from './validators';
15
+ // Export schema migration helpers
16
+ export { migrateLegacyExecuteSignal, convertToLegacyFormat, createValidationMiddleware, generatePythonValidator } from './validators';
17
+ // Export validation functions
18
+ export { validateSuccessResponse, validateErrorResponse, validateCreateControllerRequest, validateController, validateTradingSignal, validateExecuteSignalRequest } from './validators';
19
+ // Version and metadata
20
+ export const API_SCHEMA_VERSION = '1.0.0';
21
+ export const SUPPORTED_FORMATS = ['openapi-3.0.3', 'json-schema-draft-07'];
22
+ // Schema format constants
23
+ export const SCHEMAS = {
24
+ OPENAPI_SPEC: 'openapi.yaml',
25
+ JSON_SCHEMAS: 'schemas/',
26
+ GENERATED_TYPES: 'generated-types.ts'
27
+ };
28
+ // Endpoint normalization mappings
29
+ export const ENDPOINT_MIGRATIONS = {
30
+ LEGACY_EXECUTE_SIGNAL: '/trading/execute-signal',
31
+ LEGACY_CONTROLLER_SIGNAL: '/trading/{controller_id}/signal',
32
+ UNIFIED_EXECUTE_SIGNAL: '/trading/signals/execute'
33
+ };
34
+ // Common error codes
35
+ export const ERROR_CODES = {
36
+ VALIDATION_FAILED: 'VALIDATION_FAILED',
37
+ CONTROLLER_NOT_FOUND: 'CONTROLLER_NOT_FOUND',
38
+ INVALID_SIGNAL: 'INVALID_SIGNAL',
39
+ EXCHANGE_ERROR: 'EXCHANGE_ERROR',
40
+ UNAUTHORIZED: 'UNAUTHORIZED',
41
+ RATE_LIMITED: 'RATE_LIMITED',
42
+ INTERNAL_ERROR: 'INTERNAL_ERROR'
43
+ };
44
+ // Standard HTTP status codes
45
+ export const HTTP_STATUS = {
46
+ OK: 200,
47
+ CREATED: 201,
48
+ BAD_REQUEST: 400,
49
+ UNAUTHORIZED: 401,
50
+ FORBIDDEN: 403,
51
+ NOT_FOUND: 404,
52
+ CONFLICT: 409,
53
+ RATE_LIMITED: 429,
54
+ INTERNAL_ERROR: 500,
55
+ SERVICE_UNAVAILABLE: 503
56
+ };
57
+ /**
58
+ * Create a standardized success response
59
+ */
60
+ export function createSuccessResponse(message, data, additionalFields) {
61
+ return {
62
+ success: true,
63
+ message,
64
+ timestamp: new Date().toISOString(),
65
+ ...(data !== undefined && { data }),
66
+ ...additionalFields
67
+ };
68
+ }
69
+ /**
70
+ * Create a standardized error response
71
+ */
72
+ export function createErrorResponse(error, detail, errorCode, additionalFields) {
73
+ return {
74
+ success: false,
75
+ error,
76
+ ...(detail && { detail }),
77
+ ...(errorCode && { error_code: errorCode }),
78
+ timestamp: new Date().toISOString(),
79
+ ...additionalFields
80
+ };
81
+ }
82
+ /**
83
+ * Check if a response follows the standardized format
84
+ */
85
+ export function isStandardizedResponse(response) {
86
+ return (typeof response === 'object' &&
87
+ response !== null &&
88
+ typeof response.success === 'boolean' &&
89
+ typeof response.timestamp === 'string');
90
+ }
91
+ /**
92
+ * Normalize a legacy response to the standardized format
93
+ */
94
+ export function normalizeLegacyResponse(response) {
95
+ // Already standardized
96
+ if (isStandardizedResponse(response)) {
97
+ return response;
98
+ }
99
+ // Handle common legacy patterns
100
+ if (response.status === 'success' || response.success === true) {
101
+ return createSuccessResponse(response.message || 'Operation completed successfully', response.data || response.result || response);
102
+ }
103
+ if (response.status === 'error' || response.error) {
104
+ return createErrorResponse(response.error || response.message || 'Operation failed', response.detail || response.description, response.error_code || response.code);
105
+ }
106
+ // Default: treat as successful data response
107
+ return createSuccessResponse('Operation completed successfully', response);
108
+ }
109
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Schema validation utilities for autonoma API schemas.
3
+ *
4
+ * Provides runtime validation for API requests and responses using JSON Schema.
5
+ */
6
+ export interface ValidationResult {
7
+ valid: boolean;
8
+ errors: ValidationError[];
9
+ data?: any;
10
+ }
11
+ export interface ValidationError {
12
+ field: string;
13
+ message: string;
14
+ value?: any;
15
+ code: string;
16
+ }
17
+ /**
18
+ * Validate a success response
19
+ */
20
+ export declare function validateSuccessResponse(data: any): ValidationResult;
21
+ /**
22
+ * Validate an error response
23
+ */
24
+ export declare function validateErrorResponse(data: any): ValidationResult;
25
+ /**
26
+ * Validate create controller request
27
+ */
28
+ export declare function validateCreateControllerRequest(data: any): ValidationResult;
29
+ /**
30
+ * Validate controller object
31
+ */
32
+ export declare function validateController(data: any): ValidationResult;
33
+ /**
34
+ * Validate trading signal
35
+ */
36
+ export declare function validateTradingSignal(data: any): ValidationResult;
37
+ /**
38
+ * Validate execute signal request (UNIFIED)
39
+ */
40
+ export declare function validateExecuteSignalRequest(data: any): ValidationResult;
41
+ export declare function validateYieldOpportunity(data: any): ValidationResult;
42
+ export declare function validateYieldSearchRequest(data: any): ValidationResult;
43
+ export declare function validateAllocationOptimization(data: any): ValidationResult;
44
+ export declare function validateDeFiSignal(data: any): ValidationResult;
45
+ export declare function validatePortfolioRiskAssessment(data: any): ValidationResult;
46
+ export declare function createYieldOpportunityResponse(opportunities: any[], metadata?: any): any;
47
+ export declare function createAllocationOptimizationResponse(optimization: any, metadata?: any): any;
48
+ export declare function createDeFiSignalResponse(execution_result: any, metadata?: any): any;
49
+ /**
50
+ * Express middleware factory for request validation
51
+ */
52
+ export declare function createValidationMiddleware(validator: (data: any) => ValidationResult): (req: any, res: any, next: any) => any;
53
+ /**
54
+ * FastAPI dependency for request validation (Python equivalent helper)
55
+ */
56
+ export declare function generatePythonValidator(schemaName: string): string;
57
+ /**
58
+ * Convert legacy execute signal format to unified format
59
+ */
60
+ export declare function migrateLegacyExecuteSignal(legacyData: any): any;
61
+ /**
62
+ * Convert unified format to legacy format for backward compatibility
63
+ */
64
+ export declare function convertToLegacyFormat(unifiedData: any, format: 'signal_type' | 'nested'): any;
65
+ //# sourceMappingURL=validators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAyZD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB,CAOnE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB,CAOjE;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB,CAO3E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB,CAO9D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB,CAOjE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB,CAOxE;AAMD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB,CAOpE;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB,CAOtE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB,CAO1E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB,CAO9D;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,GAAG,GAAG,gBAAgB,CAO3E;AAMD,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,GAAG,EAAE,EACpB,QAAQ,CAAC,EAAE,GAAG,GACb,GAAG,CAcL;AAED,wBAAgB,oCAAoC,CAClD,YAAY,EAAE,GAAG,EACjB,QAAQ,CAAC,EAAE,GAAG,GACb,GAAG,CAaL;AAED,wBAAgB,wBAAwB,CACtC,gBAAgB,EAAE,GAAG,EACrB,QAAQ,CAAC,EAAE,GAAG,GACb,GAAG,CAaL;AAMD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,gBAAgB,IAC3E,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,SAetC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAYlE;AAMD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,GAAG,GAAG,GAAG,CAiC/D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,GAAG,QAAQ,GAAG,GAAG,CAkB7F"}