@layer-ai/sdk 0.7.1 → 0.8.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.
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/config/validator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAsCzD,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,CAE7D"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/config/validator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AA0CzD,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,eAAe,CAE7D"}
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import { ROUTING_STRATEGIES, ANALYSIS_METHODS, REANALYSIS_PERIODS } from '../types/history.js';
2
3
  const GateConfigSchema = z.object({
3
4
  // Required fields
4
5
  name: z.string().min(1, 'Gate name cannot be empty'),
@@ -9,7 +10,7 @@ const GateConfigSchema = z.object({
9
10
  temperature: z.number().min(0).max(2).optional(),
10
11
  maxTokens: z.number().positive().optional(),
11
12
  topP: z.number().min(0).max(1).optional(),
12
- routingStrategy: z.enum(['single', 'fallback', 'round-robin']).optional(),
13
+ routingStrategy: z.enum(ROUTING_STRATEGIES).optional(),
13
14
  fallbackModels: z.array(z.string()).optional(),
14
15
  allowOverrides: z.union([
15
16
  z.boolean(),
@@ -20,6 +21,7 @@ const GateConfigSchema = z.object({
20
21
  costWeight: z.number().min(0).max(1).optional(),
21
22
  latencyWeight: z.number().min(0).max(1).optional(),
22
23
  qualityWeight: z.number().min(0).max(1).optional(),
24
+ analysisMethod: z.enum(ANALYSIS_METHODS).optional(),
23
25
  maxCostPer1kTokens: z.number().positive().optional(),
24
26
  maxLatencyMs: z.number().positive().optional(),
25
27
  taskAnalysis: z.object({
@@ -27,6 +29,8 @@ const GateConfigSchema = z.object({
27
29
  alternatives: z.array(z.string()),
28
30
  reasoning: z.string(),
29
31
  }).optional(),
32
+ reanalysisPeriod: z.enum(REANALYSIS_PERIODS).optional(),
33
+ autoApplyRecommendations: z.boolean().optional(),
30
34
  });
31
35
  const LayerConfigFileSchema = z.object({
32
36
  gates: z.array(GateConfigSchema).min(1, 'Config must contain at least one gate'),
@@ -0,0 +1,57 @@
1
+ import type { SupportedModel } from './gates.js';
2
+ import type { TaskAnalysis } from './smart-routing.js';
3
+ import type { ModelType } from './model-registry.js';
4
+ export declare const ANALYSIS_METHODS: readonly ["cost", "balanced", "performance", "custom"];
5
+ export type AnalysisMethod = typeof ANALYSIS_METHODS[number];
6
+ export declare const ROUTING_STRATEGIES: readonly ["single", "fallback", "round-robin"];
7
+ export type RoutingStrategy = typeof ROUTING_STRATEGIES[number];
8
+ export declare const REANALYSIS_PERIODS: readonly ["daily", "weekly", "monthly", "never"];
9
+ export type ReanalysisPeriod = typeof REANALYSIS_PERIODS[number];
10
+ export declare const APPLIED_BY_VALUES: readonly ["user", "auto"];
11
+ export type AppliedBy = typeof APPLIED_BY_VALUES[number];
12
+ export declare const ACTIVITY_ACTIONS: readonly ["manual_update", "auto_update", "reanalysis", "rollback"];
13
+ export type ActivityAction = typeof ACTIVITY_ACTIONS[number];
14
+ export interface GateHistory {
15
+ id: string;
16
+ gateId: string;
17
+ name: string;
18
+ description: string;
19
+ model: SupportedModel;
20
+ fallbackModels: SupportedModel[];
21
+ routingStrategy?: RoutingStrategy;
22
+ temperature?: number;
23
+ maxTokens?: number;
24
+ topP?: number;
25
+ costWeight: number;
26
+ latencyWeight: number;
27
+ qualityWeight: number;
28
+ analysisMethod: AnalysisMethod;
29
+ taskType?: ModelType;
30
+ taskAnalysis?: TaskAnalysis;
31
+ systemPrompt?: string;
32
+ reanalysisPeriod: ReanalysisPeriod;
33
+ autoApplyRecommendations: boolean;
34
+ appliedBy: AppliedBy;
35
+ appliedAt: Date;
36
+ changedFields?: string[];
37
+ createdAt: Date;
38
+ }
39
+ export interface ActivityLog {
40
+ id: string;
41
+ gateId: string;
42
+ userId: string | null;
43
+ action: ActivityAction;
44
+ details: {
45
+ historyId?: string;
46
+ changedFields?: string[];
47
+ reasoning?: string;
48
+ previousModel?: string;
49
+ newModel?: string;
50
+ [key: string]: any;
51
+ };
52
+ timestamp: Date;
53
+ }
54
+ export interface RollbackGateRequest {
55
+ historyId: string;
56
+ }
57
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/types/history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,eAAO,MAAM,gBAAgB,wDAAyD,CAAC;AACvF,MAAM,MAAM,cAAc,GAAG,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAE7D,eAAO,MAAM,kBAAkB,gDAAiD,CAAC;AACjF,MAAM,MAAM,eAAe,GAAG,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAEhE,eAAO,MAAM,kBAAkB,kDAAmD,CAAC;AACnF,MAAM,MAAM,gBAAgB,GAAG,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAEjE,eAAO,MAAM,iBAAiB,2BAA4B,CAAC;AAC3D,MAAM,MAAM,SAAS,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,gBAAgB,qEAAsE,CAAC;AACpG,MAAM,MAAM,cAAc,GAAG,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAG7D,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,cAAc,CAAC;IACtB,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,wBAAwB,EAAE,OAAO,CAAC;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,EAAE,IAAI,CAAC;CACjB;AAGD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IACF,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,5 @@
1
+ export const ANALYSIS_METHODS = ['cost', 'balanced', 'performance', 'custom'];
2
+ export const ROUTING_STRATEGIES = ['single', 'fallback', 'round-robin'];
3
+ export const REANALYSIS_PERIODS = ['daily', 'weekly', 'monthly', 'never'];
4
+ export const APPLIED_BY_VALUES = ['user', 'auto'];
5
+ export const ACTIVITY_ACTIONS = ['manual_update', 'auto_update', 'reanalysis', 'rollback'];
@@ -7,4 +7,5 @@ export * from './logs.js';
7
7
  export * from './smart-routing.js';
8
8
  export * from './config.js';
9
9
  export * from './provider-keys.js';
10
+ export * from './history.js';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC"}
@@ -8,3 +8,4 @@ export * from './logs.js';
8
8
  export * from './smart-routing.js';
9
9
  export * from './config.js';
10
10
  export * from './provider-keys.js';
11
+ export * from './history.js';
@@ -1,6 +1,7 @@
1
1
  import type { SupportedModel } from "./gates.js";
2
2
  import { TaskAnalysis } from "./smart-routing.js";
3
3
  import type { ModelType } from "./model-registry.js";
4
+ import type { AnalysisMethod, RoutingStrategy, ReanalysisPeriod } from "./history.js";
4
5
  export interface User {
5
6
  id: string;
6
7
  email: string;
@@ -29,15 +30,16 @@ export interface GateBase {
29
30
  maxTokens?: number;
30
31
  topP?: number;
31
32
  tags?: string[];
32
- routingStrategy?: 'single' | 'fallback' | 'round-robin';
33
+ routingStrategy?: RoutingStrategy;
33
34
  fallbackModels?: SupportedModel[];
34
35
  costWeight?: number;
35
36
  latencyWeight?: number;
36
37
  qualityWeight?: number;
38
+ analysisMethod?: AnalysisMethod;
37
39
  maxCostPer1kTokens?: number;
38
40
  maxLatencyMs?: number;
39
41
  taskAnalysis?: TaskAnalysis;
40
- reanalysisPeriod?: 'daily' | 'weekly' | 'monthly' | 'never';
42
+ reanalysisPeriod?: ReanalysisPeriod;
41
43
  autoApplyRecommendations?: boolean;
42
44
  }
43
45
  export interface Gate extends GateBase {
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/types/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/types/models.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@layer-ai/sdk",
3
- "version": "0.7.1",
3
+ "version": "0.8.0",
4
4
  "description": "Configure multiple AI models at runtime without code changes or deployments",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",