@contractspec/lib.evolution 1.56.1 → 1.58.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 (42) hide show
  1. package/dist/analyzer/posthog-telemetry-reader.d.ts +20 -0
  2. package/dist/analyzer/posthog-telemetry-reader.d.ts.map +1 -0
  3. package/dist/analyzer/spec-analyzer.d.ts +31 -0
  4. package/dist/analyzer/spec-analyzer.d.ts.map +1 -0
  5. package/dist/approval/integration.d.ts +39 -0
  6. package/dist/approval/integration.d.ts.map +1 -0
  7. package/dist/generator/ai-spec-generator.d.ts +51 -0
  8. package/dist/generator/ai-spec-generator.d.ts.map +1 -0
  9. package/dist/generator/spec-generator.d.ts +42 -0
  10. package/dist/generator/spec-generator.d.ts.map +1 -0
  11. package/dist/index.d.ts +7 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +1069 -0
  14. package/dist/node/index.js +1068 -0
  15. package/dist/types.d.ts +128 -0
  16. package/dist/types.d.ts.map +1 -0
  17. package/package.json +24 -20
  18. package/dist/ai-agent/src/approval/index.d.mts +0 -1
  19. package/dist/ai-agent/src/approval/workflow.d.mts +0 -136
  20. package/dist/ai-agent/src/approval/workflow.d.mts.map +0 -1
  21. package/dist/ai-agent/src/types.d.mts +0 -30
  22. package/dist/ai-agent/src/types.d.mts.map +0 -1
  23. package/dist/analyzer/spec-analyzer.d.mts +0 -35
  24. package/dist/analyzer/spec-analyzer.d.mts.map +0 -1
  25. package/dist/analyzer/spec-analyzer.mjs +0 -305
  26. package/dist/analyzer/spec-analyzer.mjs.map +0 -1
  27. package/dist/approval/integration.d.mts +0 -44
  28. package/dist/approval/integration.d.mts.map +0 -1
  29. package/dist/approval/integration.mjs +0 -126
  30. package/dist/approval/integration.mjs.map +0 -1
  31. package/dist/generator/ai-spec-generator.d.mts +0 -56
  32. package/dist/generator/ai-spec-generator.d.mts.map +0 -1
  33. package/dist/generator/ai-spec-generator.mjs +0 -186
  34. package/dist/generator/ai-spec-generator.mjs.map +0 -1
  35. package/dist/generator/spec-generator.d.mts +0 -46
  36. package/dist/generator/spec-generator.d.mts.map +0 -1
  37. package/dist/generator/spec-generator.mjs +0 -121
  38. package/dist/generator/spec-generator.mjs.map +0 -1
  39. package/dist/index.d.mts +0 -6
  40. package/dist/index.mjs +0 -6
  41. package/dist/types.d.mts +0 -132
  42. package/dist/types.d.mts.map +0 -1
@@ -0,0 +1,128 @@
1
+ import type { OperationSpec, OpKind, ResourceRefDescriptor } from '@contractspec/lib.contracts';
2
+ import type { AnySchemaModel } from '@contractspec/lib.schema';
3
+ import type { LifecycleStage } from '@contractspec/lib.lifecycle';
4
+ export type AnomalySeverity = 'low' | 'medium' | 'high';
5
+ export type SuggestionStatus = 'pending' | 'approved' | 'rejected';
6
+ export interface OperationCoordinate {
7
+ key: string;
8
+ version: string;
9
+ tenantId?: string;
10
+ }
11
+ export interface OperationMetricSample {
12
+ operation: OperationCoordinate;
13
+ durationMs: number;
14
+ success: boolean;
15
+ timestamp: Date;
16
+ payloadSizeBytes?: number;
17
+ errorCode?: string;
18
+ errorMessage?: string;
19
+ actor?: string;
20
+ channel?: string;
21
+ traceId?: string;
22
+ metadata?: Record<string, unknown>;
23
+ }
24
+ export interface SpecUsageStats {
25
+ operation: OperationCoordinate;
26
+ totalCalls: number;
27
+ successRate: number;
28
+ errorRate: number;
29
+ averageLatencyMs: number;
30
+ p95LatencyMs: number;
31
+ p99LatencyMs: number;
32
+ maxLatencyMs: number;
33
+ lastSeenAt: Date;
34
+ windowStart: Date;
35
+ windowEnd: Date;
36
+ topErrors: Record<string, number>;
37
+ }
38
+ export interface SuggestionEvidence {
39
+ type: 'telemetry' | 'user-feedback' | 'simulation' | 'test';
40
+ description: string;
41
+ data?: Record<string, unknown>;
42
+ }
43
+ export interface SpecAnomaly {
44
+ operation: OperationCoordinate;
45
+ severity: AnomalySeverity;
46
+ metric: 'latency' | 'error-rate' | 'throughput' | 'policy' | 'schema';
47
+ description: string;
48
+ detectedAt: Date;
49
+ threshold?: number;
50
+ observedValue?: number;
51
+ evidence: SuggestionEvidence[];
52
+ }
53
+ export interface PatternConfidence {
54
+ score: number;
55
+ sampleSize: number;
56
+ pValue?: number;
57
+ }
58
+ export interface IntentPattern {
59
+ id: string;
60
+ type: 'latency-regression' | 'error-spike' | 'missing-operation' | 'chained-intent' | 'throughput-drop' | 'schema-mismatch';
61
+ description: string;
62
+ operation?: OperationCoordinate;
63
+ confidence: PatternConfidence;
64
+ metadata?: Record<string, unknown>;
65
+ evidence: SuggestionEvidence[];
66
+ }
67
+ export interface SpecSuggestionProposal {
68
+ summary: string;
69
+ rationale: string;
70
+ changeType: 'new-spec' | 'revision' | 'policy-update' | 'schema-update';
71
+ kind?: OpKind;
72
+ spec?: OperationSpec<AnySchemaModel, AnySchemaModel | ResourceRefDescriptor<boolean>>;
73
+ diff?: string;
74
+ metadata?: Record<string, unknown>;
75
+ }
76
+ export interface SpecSuggestion {
77
+ id: string;
78
+ intent: IntentPattern;
79
+ target?: OperationCoordinate;
80
+ proposal: SpecSuggestionProposal;
81
+ confidence: number;
82
+ createdAt: Date;
83
+ createdBy: string;
84
+ status: SuggestionStatus;
85
+ evidence: SuggestionEvidence[];
86
+ priority: 'low' | 'medium' | 'high';
87
+ tags?: string[];
88
+ approvals?: {
89
+ reviewer?: string;
90
+ notes?: string;
91
+ decidedAt?: Date;
92
+ status?: SuggestionStatus;
93
+ };
94
+ }
95
+ export interface EvolutionConfig {
96
+ minConfidence?: number;
97
+ autoApproveThreshold?: number;
98
+ maxSuggestionsPerOperation?: number;
99
+ requireApproval?: boolean;
100
+ maxConcurrentExperiments?: number;
101
+ }
102
+ export interface SpecSuggestionFilters {
103
+ status?: SuggestionStatus;
104
+ operationKey?: string;
105
+ }
106
+ export interface SpecSuggestionRepository {
107
+ create(suggestion: SpecSuggestion): Promise<void>;
108
+ getById(id: string): Promise<SpecSuggestion | undefined>;
109
+ updateStatus(id: string, status: SuggestionStatus, metadata?: {
110
+ reviewer?: string;
111
+ notes?: string;
112
+ decidedAt?: Date;
113
+ }): Promise<void>;
114
+ list(filters?: SpecSuggestionFilters): Promise<SpecSuggestion[]>;
115
+ }
116
+ export interface SpecSuggestionWriter {
117
+ write(suggestion: SpecSuggestion): Promise<string>;
118
+ }
119
+ export interface OptimizationHint {
120
+ operation: OperationCoordinate;
121
+ category: 'schema' | 'policy' | 'performance' | 'error-handling';
122
+ summary: string;
123
+ justification: string;
124
+ recommendedActions: string[];
125
+ lifecycleStage?: LifecycleStage;
126
+ lifecycleNotes?: string;
127
+ }
128
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contractspec/lib.evolution",
3
- "version": "1.56.1",
3
+ "version": "1.58.0",
4
4
  "description": "AI-powered contract evolution engine",
5
5
  "keywords": [
6
6
  "contractspec",
@@ -18,43 +18,47 @@
18
18
  "scripts": {
19
19
  "publish:pkg": "bun publish --tolerate-republish --ignore-scripts --verbose",
20
20
  "publish:pkg:canary": "bun publish:pkg --tag canary",
21
- "build": "bun build:types && bun build:bundle",
22
- "build:bundle": "tsdown",
23
- "build:types": "tsc --noEmit",
24
- "dev": "bun build:bundle --watch",
21
+ "build": "bun run prebuild && bun run build:bundle && bun run build:types",
22
+ "build:bundle": "contractspec-bun-build transpile",
23
+ "build:types": "contractspec-bun-build types",
24
+ "dev": "contractspec-bun-build dev",
25
25
  "clean": "rimraf dist .turbo",
26
26
  "lint": "bun lint:fix",
27
27
  "lint:fix": "eslint src --fix",
28
28
  "lint:check": "eslint src",
29
- "test": "bun test"
29
+ "test": "bun test",
30
+ "prebuild": "contractspec-bun-build prebuild",
31
+ "typecheck": "tsc --noEmit"
30
32
  },
31
33
  "dependencies": {
32
- "ai": "6.0.67",
34
+ "ai": "6.0.73",
33
35
  "zod": "^4.3.5",
34
- "@contractspec/lib.ai-agent": "1.56.1",
35
- "@contractspec/lib.contracts": "1.56.1",
36
- "@contractspec/lib.lifecycle": "1.56.1",
37
- "@contractspec/lib.observability": "1.56.1",
38
- "@contractspec/lib.schema": "1.56.1"
36
+ "@contractspec/lib.ai-agent": "1.58.0",
37
+ "@contractspec/lib.contracts": "1.58.0",
38
+ "@contractspec/lib.lifecycle": "1.58.0",
39
+ "@contractspec/lib.observability": "1.58.0",
40
+ "@contractspec/lib.schema": "1.58.0"
39
41
  },
40
42
  "peerDependencies": {
41
43
  "@prisma/client": "7.3.0"
42
44
  },
43
45
  "devDependencies": {
44
- "@contractspec/tool.tsdown": "1.56.1",
45
- "@contractspec/tool.typescript": "1.56.1",
46
- "tsdown": "^0.19.0",
47
- "typescript": "^5.9.3"
46
+ "@contractspec/tool.typescript": "1.58.0",
47
+ "typescript": "^5.9.3",
48
+ "@contractspec/tool.bun": "1.57.0"
48
49
  },
49
50
  "exports": {
50
- ".": "./dist/index.mjs",
51
- "./*": "./*"
51
+ ".": "./src/index.ts"
52
52
  },
53
53
  "publishConfig": {
54
54
  "access": "public",
55
55
  "exports": {
56
- ".": "./dist/index.js",
57
- "./*": "./*"
56
+ ".": {
57
+ "types": "./dist/index.d.ts",
58
+ "bun": "./dist/index.js",
59
+ "node": "./dist/node/index.mjs",
60
+ "default": "./dist/index.js"
61
+ }
58
62
  },
59
63
  "registry": "https://registry.npmjs.org/"
60
64
  },
@@ -1 +0,0 @@
1
- import { ApprovalRequest, ApprovalStatus, ApprovalStore, ApprovalWorkflow } from "./workflow.mjs";
@@ -1,136 +0,0 @@
1
- import { ToolCallInfo } from "../types.mjs";
2
-
3
- //#region ../ai-agent/src/approval/workflow.d.ts
4
- type ApprovalStatus = 'pending' | 'approved' | 'rejected';
5
- /**
6
- * Approval request for a tool execution.
7
- *
8
- * When a tool has `needsApproval: true` in AI SDK v6, the agent
9
- * will pause and wait for approval before executing the tool.
10
- */
11
- interface ApprovalRequest {
12
- /** Unique request ID */
13
- id: string;
14
- /** Agent session ID */
15
- sessionId: string;
16
- /** Agent ID */
17
- agentId: string;
18
- /** Tenant ID for scoping */
19
- tenantId?: string;
20
- /** Tool name requiring approval */
21
- toolName: string;
22
- /** Tool call ID from AI SDK */
23
- toolCallId: string;
24
- /** Tool arguments */
25
- toolArgs: unknown;
26
- /** Human-readable reason for approval */
27
- reason: string;
28
- /** When the approval was requested */
29
- requestedAt: Date;
30
- /** Current status */
31
- status: ApprovalStatus;
32
- /** Additional context payload */
33
- payload?: Record<string, unknown>;
34
- /** Who resolved the approval */
35
- reviewer?: string;
36
- /** When the approval was resolved */
37
- resolvedAt?: Date;
38
- /** Reviewer notes */
39
- notes?: string;
40
- }
41
- /**
42
- * Storage interface for approval requests.
43
- */
44
- interface ApprovalStore {
45
- create(request: ApprovalRequest): Promise<void>;
46
- get(id: string): Promise<ApprovalRequest | null>;
47
- getByToolCallId(toolCallId: string): Promise<ApprovalRequest | null>;
48
- update(id: string, updates: Partial<Omit<ApprovalRequest, 'id' | 'sessionId'>>): Promise<void>;
49
- list(options?: {
50
- status?: ApprovalStatus;
51
- agentId?: string;
52
- tenantId?: string;
53
- }): Promise<ApprovalRequest[]>;
54
- }
55
- /**
56
- * Approval workflow for managing tool execution approvals.
57
- *
58
- * Integrates with AI SDK v6's `needsApproval` feature on tools.
59
- *
60
- * @example
61
- * ```typescript
62
- * const workflow = new ApprovalWorkflow();
63
- *
64
- * // When a tool needs approval
65
- * const request = await workflow.requestApproval({
66
- * sessionId: 'sess_123',
67
- * agentId: 'support.bot.v1',
68
- * toolName: 'delete_account',
69
- * toolCallId: 'call_abc',
70
- * toolArgs: { userId: 'user_123' },
71
- * reason: 'Account deletion requires human approval',
72
- * });
73
- *
74
- * // When approval is granted
75
- * await workflow.approve(request.id, 'admin@example.com', 'Verified identity');
76
- *
77
- * // Or rejected
78
- * await workflow.reject(request.id, 'admin@example.com', 'Suspicious activity');
79
- * ```
80
- */
81
- declare class ApprovalWorkflow {
82
- private readonly store;
83
- constructor(store?: ApprovalStore);
84
- /**
85
- * Request approval for a tool execution.
86
- */
87
- requestApproval(params: {
88
- sessionId: string;
89
- agentId: string;
90
- tenantId?: string;
91
- toolName: string;
92
- toolCallId: string;
93
- toolArgs: unknown;
94
- reason: string;
95
- payload?: Record<string, unknown>;
96
- }): Promise<ApprovalRequest>;
97
- /**
98
- * Request approval from an AI SDK tool call.
99
- */
100
- requestApprovalFromToolCall(toolCall: ToolCallInfo, context: {
101
- sessionId: string;
102
- agentId: string;
103
- tenantId?: string;
104
- reason?: string;
105
- }): Promise<ApprovalRequest>;
106
- /**
107
- * Approve a pending request.
108
- */
109
- approve(id: string, reviewer: string, notes?: string): Promise<void>;
110
- /**
111
- * Reject a pending request.
112
- */
113
- reject(id: string, reviewer: string, notes?: string): Promise<void>;
114
- /**
115
- * Get approval status for a tool call.
116
- */
117
- getStatus(toolCallId: string): Promise<ApprovalStatus | null>;
118
- /**
119
- * Check if a tool call is approved.
120
- */
121
- isApproved(toolCallId: string): Promise<boolean>;
122
- /**
123
- * List pending approvals.
124
- */
125
- listPending(options?: {
126
- agentId?: string;
127
- tenantId?: string;
128
- }): Promise<ApprovalRequest[]>;
129
- /**
130
- * Get approval request by ID.
131
- */
132
- get(id: string): Promise<ApprovalRequest | null>;
133
- }
134
- //#endregion
135
- export { ApprovalRequest, ApprovalStatus, ApprovalStore, ApprovalWorkflow };
136
- //# sourceMappingURL=workflow.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow.d.mts","names":[],"sources":["../../../../../ai-agent/src/approval/workflow.ts"],"sourcesContent":[],"mappings":";;;KAGY,cAAA;;AAAZ;AAQA;;;;AA0Be,UA1BE,eAAA,CA0BF;EAAI;EAQF,EAAA,EAAA,MAAA;EACC;EAAkB,SAAA,EAAA,MAAA;EACT;EAAR,OAAA,EAAA,MAAA;EAC4B;EAAR,QAAA,CAAA,EAAA,MAAA;EAGb;EAAL,QAAA,EAAA,MAAA;EAAR;EACR,UAAA,EAAA,MAAA;EAEQ;EAGC,QAAA,EAAA,OAAA;EAAR;EAAO,MAAA,EAAA,MAAA;EAyFA;EAEe,WAAA,EAvHb,IAuHa;EAcd;EACA,MAAA,EApIJ,cAoII;EAAR;EAuBQ,OAAA,CAAA,EAzJF,MAyJE,CAAA,MAAA,EAAA,OAAA,CAAA;EAOD;EAAR,QAAA,CAAA,EAAA,MAAA;EAe0D;EAYD,UAAA,CAAA,EAvL/C,IAuL+C;EAYf;EAAR,KAAA,CAAA,EAAA,MAAA;;;;;AA0Bd,UArNR,aAAA,CAqNQ;EAAO,MAAA,CAAA,OAAA,EApNd,eAoNc,CAAA,EApNI,OAoNJ,CAAA,IAAA,CAAA;mBAnNb,QAAQ;uCACY,QAAQ;8BAGlC,QAAQ,KAAK,wCACrB;;aAEQ;;;MAGP,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAyFD,gBAAA;;sBAEe;;;;;;;;;;;;cAcd;MACR,QAAQ;;;;wCAuBA;;;;;MAOT,QAAQ;;;;yDAekD;;;;wDAYD;;;;iCAYvB,QAAQ;;;;kCAQP;;;;;;;MAWlC,QAAQ;;;;mBAOW,QAAQ"}
@@ -1,30 +0,0 @@
1
- import { ModelMessage, StepResult, ToolSet } from "ai";
2
-
3
- //#region ../ai-agent/src/types.d.ts
4
-
5
- /**
6
- * Simplified tool call type for ContractSpec usage.
7
- * Compatible with AI SDK v6 TypedToolCall.
8
- */
9
- interface ToolCallInfo {
10
- type: 'tool-call';
11
- toolCallId: string;
12
- toolName: string;
13
- args: unknown;
14
- }
15
- type AgentStatus = 'idle' | 'running' | 'waiting' | 'completed' | 'failed' | 'escalated';
16
- interface AgentSessionState {
17
- sessionId: string;
18
- agentId: string;
19
- tenantId?: string;
20
- actorId?: string;
21
- status: AgentStatus;
22
- messages: ModelMessage[];
23
- steps: StepResult<ToolSet>[];
24
- createdAt: Date;
25
- updatedAt: Date;
26
- metadata?: Record<string, string>;
27
- }
28
- //#endregion
29
- export { AgentSessionState, ToolCallInfo };
30
- //# sourceMappingURL=types.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["../../../../ai-agent/src/types.ts"],"sourcesContent":[],"mappings":";;;;;AAWA;AAoCA;AA8DA;AAKU,UAvGO,YAAA,CAuGP;EACE,IAAA,EAAA,WAAA;EACQ,UAAA,EAAA,MAAA;EAAX,QAAA,EAAA,MAAA;EACI,IAAA,EAAA,OAAA;;KAtED,WAAA;UA8DK,iBAAA;;;;;UAKP;YACE;SACH,WAAW;aACP;aACA;aACA"}
@@ -1,35 +0,0 @@
1
- import { IntentPattern, OperationMetricSample, OptimizationHint, SpecAnomaly, SpecUsageStats } from "../types.mjs";
2
- import { Logger } from "@contractspec/lib.observability";
3
- import { LifecycleStage } from "@contractspec/lib.lifecycle";
4
-
5
- //#region src/analyzer/spec-analyzer.d.ts
6
- interface SpecAnalyzerOptions {
7
- logger?: Logger;
8
- minSampleSize?: number;
9
- errorRateThreshold?: number;
10
- latencyP99ThresholdMs?: number;
11
- throughputDropThreshold?: number;
12
- }
13
- declare class SpecAnalyzer {
14
- private readonly logger?;
15
- private readonly minSampleSize;
16
- private readonly errorRateThreshold;
17
- private readonly latencyP99ThresholdMs;
18
- private readonly throughputDropThreshold;
19
- constructor(options?: SpecAnalyzerOptions);
20
- analyzeSpecUsage(samples: OperationMetricSample[]): SpecUsageStats[];
21
- detectAnomalies(stats: SpecUsageStats[], baseline?: SpecUsageStats[]): SpecAnomaly[];
22
- toIntentPatterns(anomalies: SpecAnomaly[], stats: SpecUsageStats[]): IntentPattern[];
23
- suggestOptimizations(stats: SpecUsageStats[], anomalies: SpecAnomaly[], lifecycleContext?: {
24
- stage: LifecycleStage;
25
- }): OptimizationHint[];
26
- private operationKey;
27
- private buildUsageStats;
28
- private toSeverity;
29
- private mapMetricToIntent;
30
- private groupByOperation;
31
- private applyLifecycleContext;
32
- }
33
- //#endregion
34
- export { SpecAnalyzer, SpecAnalyzerOptions };
35
- //# sourceMappingURL=spec-analyzer.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spec-analyzer.d.mts","names":[],"sources":["../../src/analyzer/spec-analyzer.ts"],"sourcesContent":[],"mappings":";;;;;UAciB,mBAAA;WACN;EADM,aAAA,CAAA,EAAA,MAAmB;EAmBvB,kBAAY,CAAA,EAAA,MAAA;EAOF,qBAAA,CAAA,EAAA,MAAA;EAUK,uBAAA,CAAA,EAAA,MAAA;;AAoCjB,cArDE,YAAA,CAqDF;EACI,iBAAA,MAAA;EACV,iBAAA,aAAA;EAsFU,iBAAA,kBAAA;EACJ,iBAAA,qBAAA;EACN,iBAAA,uBAAA;EA8BM,WAAA,CAAA,OAAA,CAAA,EAtKY,mBAsKZ;EACI,gBAAA,CAAA,OAAA,EA7Ja,qBA6Jb,EAAA,CAAA,EA7JuC,cA6JvC,EAAA;EACiB,eAAA,CAAA,KAAA,EA1HrB,cA0HqB,EAAA,EAAA,QAAA,CAAA,EAzHjB,cAyHiB,EAAA,CAAA,EAxH3B,WAwH2B,EAAA;EAC3B,gBAAA,CAAA,SAAA,EAnCU,WAmCV,EAAA,EAAA,KAAA,EAlCM,cAkCN,EAAA,CAAA,EAjCA,aAiCA,EAAA;EAAgB,oBAAA,CAAA,KAAA,EAHV,cAGU,EAAA,EAAA,SAAA,EAFN,WAEM,EAAA,EAAA,iBAAA,EAAA;WADW;MAC3B"}