@agentlensai/server 0.9.0 → 0.11.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/cloud/auth/api-key-middleware.d.ts +66 -0
- package/dist/cloud/auth/api-key-middleware.d.ts.map +1 -0
- package/dist/cloud/auth/api-key-middleware.js +147 -0
- package/dist/cloud/auth/api-key-middleware.js.map +1 -0
- package/dist/cloud/auth/api-keys.d.ts +90 -0
- package/dist/cloud/auth/api-keys.d.ts.map +1 -0
- package/dist/cloud/auth/api-keys.js +162 -0
- package/dist/cloud/auth/api-keys.js.map +1 -0
- package/dist/cloud/auth/audit-log.d.ts +66 -0
- package/dist/cloud/auth/audit-log.d.ts.map +1 -0
- package/dist/cloud/auth/audit-log.js +92 -0
- package/dist/cloud/auth/audit-log.js.map +1 -0
- package/dist/cloud/auth/auth-service.d.ts +77 -0
- package/dist/cloud/auth/auth-service.d.ts.map +1 -0
- package/dist/cloud/auth/auth-service.js +229 -0
- package/dist/cloud/auth/auth-service.js.map +1 -0
- package/dist/cloud/auth/brute-force.d.ts +36 -0
- package/dist/cloud/auth/brute-force.d.ts.map +1 -0
- package/dist/cloud/auth/brute-force.js +67 -0
- package/dist/cloud/auth/brute-force.js.map +1 -0
- package/dist/cloud/auth/index.d.ts +11 -0
- package/dist/cloud/auth/index.d.ts.map +1 -0
- package/dist/cloud/auth/index.js +11 -0
- package/dist/cloud/auth/index.js.map +1 -0
- package/dist/cloud/auth/jwt.d.ts +34 -0
- package/dist/cloud/auth/jwt.d.ts.map +1 -0
- package/dist/cloud/auth/jwt.js +68 -0
- package/dist/cloud/auth/jwt.js.map +1 -0
- package/dist/cloud/auth/oauth.d.ts +37 -0
- package/dist/cloud/auth/oauth.d.ts.map +1 -0
- package/dist/cloud/auth/oauth.js +120 -0
- package/dist/cloud/auth/oauth.js.map +1 -0
- package/dist/cloud/auth/passwords.d.ts +25 -0
- package/dist/cloud/auth/passwords.d.ts.map +1 -0
- package/dist/cloud/auth/passwords.js +50 -0
- package/dist/cloud/auth/passwords.js.map +1 -0
- package/dist/cloud/auth/rbac.d.ts +51 -0
- package/dist/cloud/auth/rbac.d.ts.map +1 -0
- package/dist/cloud/auth/rbac.js +89 -0
- package/dist/cloud/auth/rbac.js.map +1 -0
- package/dist/cloud/auth/tokens.d.ts +18 -0
- package/dist/cloud/auth/tokens.d.ts.map +1 -0
- package/dist/cloud/auth/tokens.js +29 -0
- package/dist/cloud/auth/tokens.js.map +1 -0
- package/dist/cloud/billing/billing-service.d.ts +44 -0
- package/dist/cloud/billing/billing-service.d.ts.map +1 -0
- package/dist/cloud/billing/billing-service.js +153 -0
- package/dist/cloud/billing/billing-service.js.map +1 -0
- package/dist/cloud/billing/index.d.ts +11 -0
- package/dist/cloud/billing/index.d.ts.map +1 -0
- package/dist/cloud/billing/index.js +11 -0
- package/dist/cloud/billing/index.js.map +1 -0
- package/dist/cloud/billing/invoice-service.d.ts +57 -0
- package/dist/cloud/billing/invoice-service.d.ts.map +1 -0
- package/dist/cloud/billing/invoice-service.js +123 -0
- package/dist/cloud/billing/invoice-service.js.map +1 -0
- package/dist/cloud/billing/plan-management.d.ts +46 -0
- package/dist/cloud/billing/plan-management.d.ts.map +1 -0
- package/dist/cloud/billing/plan-management.js +157 -0
- package/dist/cloud/billing/plan-management.js.map +1 -0
- package/dist/cloud/billing/quota-enforcement.d.ts +53 -0
- package/dist/cloud/billing/quota-enforcement.d.ts.map +1 -0
- package/dist/cloud/billing/quota-enforcement.js +143 -0
- package/dist/cloud/billing/quota-enforcement.js.map +1 -0
- package/dist/cloud/billing/stripe-client.d.ts +142 -0
- package/dist/cloud/billing/stripe-client.d.ts.map +1 -0
- package/dist/cloud/billing/stripe-client.js +169 -0
- package/dist/cloud/billing/stripe-client.js.map +1 -0
- package/dist/cloud/billing/trial-service.d.ts +47 -0
- package/dist/cloud/billing/trial-service.d.ts.map +1 -0
- package/dist/cloud/billing/trial-service.js +104 -0
- package/dist/cloud/billing/trial-service.js.map +1 -0
- package/dist/cloud/billing/usage-metering.d.ts +83 -0
- package/dist/cloud/billing/usage-metering.d.ts.map +1 -0
- package/dist/cloud/billing/usage-metering.js +174 -0
- package/dist/cloud/billing/usage-metering.js.map +1 -0
- package/dist/cloud/ingestion/backpressure.d.ts +107 -0
- package/dist/cloud/ingestion/backpressure.d.ts.map +1 -0
- package/dist/cloud/ingestion/backpressure.js +134 -0
- package/dist/cloud/ingestion/backpressure.js.map +1 -0
- package/dist/cloud/ingestion/batch-writer.d.ts +115 -0
- package/dist/cloud/ingestion/batch-writer.d.ts.map +1 -0
- package/dist/cloud/ingestion/batch-writer.js +319 -0
- package/dist/cloud/ingestion/batch-writer.js.map +1 -0
- package/dist/cloud/ingestion/dlq-manager.d.ts +116 -0
- package/dist/cloud/ingestion/dlq-manager.d.ts.map +1 -0
- package/dist/cloud/ingestion/dlq-manager.js +244 -0
- package/dist/cloud/ingestion/dlq-manager.js.map +1 -0
- package/dist/cloud/ingestion/event-queue.d.ts +105 -0
- package/dist/cloud/ingestion/event-queue.d.ts.map +1 -0
- package/dist/cloud/ingestion/event-queue.js +185 -0
- package/dist/cloud/ingestion/event-queue.js.map +1 -0
- package/dist/cloud/ingestion/gateway.d.ts +68 -0
- package/dist/cloud/ingestion/gateway.d.ts.map +1 -0
- package/dist/cloud/ingestion/gateway.js +198 -0
- package/dist/cloud/ingestion/gateway.js.map +1 -0
- package/dist/cloud/ingestion/index.d.ts +7 -0
- package/dist/cloud/ingestion/index.d.ts.map +1 -0
- package/dist/cloud/ingestion/index.js +7 -0
- package/dist/cloud/ingestion/index.js.map +1 -0
- package/dist/cloud/ingestion/rate-limiter.d.ts +73 -0
- package/dist/cloud/ingestion/rate-limiter.d.ts.map +1 -0
- package/dist/cloud/ingestion/rate-limiter.js +153 -0
- package/dist/cloud/ingestion/rate-limiter.js.map +1 -0
- package/dist/cloud/migrate.d.ts +45 -0
- package/dist/cloud/migrate.d.ts.map +1 -0
- package/dist/cloud/migrate.js +147 -0
- package/dist/cloud/migrate.js.map +1 -0
- package/dist/cloud/migration/export-import.d.ts +56 -0
- package/dist/cloud/migration/export-import.d.ts.map +1 -0
- package/dist/cloud/migration/export-import.js +289 -0
- package/dist/cloud/migration/export-import.js.map +1 -0
- package/dist/cloud/migration/index.d.ts +5 -0
- package/dist/cloud/migration/index.d.ts.map +1 -0
- package/dist/cloud/migration/index.js +5 -0
- package/dist/cloud/migration/index.js.map +1 -0
- package/dist/cloud/org-service.d.ts +68 -0
- package/dist/cloud/org-service.d.ts.map +1 -0
- package/dist/cloud/org-service.js +169 -0
- package/dist/cloud/org-service.js.map +1 -0
- package/dist/cloud/partition-maintenance.d.ts +29 -0
- package/dist/cloud/partition-maintenance.d.ts.map +1 -0
- package/dist/cloud/partition-maintenance.js +96 -0
- package/dist/cloud/partition-maintenance.js.map +1 -0
- package/dist/cloud/retention/index.d.ts +7 -0
- package/dist/cloud/retention/index.d.ts.map +1 -0
- package/dist/cloud/retention/index.js +7 -0
- package/dist/cloud/retention/index.js.map +1 -0
- package/dist/cloud/retention/partition-management.d.ts +61 -0
- package/dist/cloud/retention/partition-management.d.ts.map +1 -0
- package/dist/cloud/retention/partition-management.js +167 -0
- package/dist/cloud/retention/partition-management.js.map +1 -0
- package/dist/cloud/retention/retention-job.d.ts +70 -0
- package/dist/cloud/retention/retention-job.d.ts.map +1 -0
- package/dist/cloud/retention/retention-job.js +160 -0
- package/dist/cloud/retention/retention-job.js.map +1 -0
- package/dist/cloud/retention/retention-policy.d.ts +27 -0
- package/dist/cloud/retention/retention-policy.d.ts.map +1 -0
- package/dist/cloud/retention/retention-policy.js +36 -0
- package/dist/cloud/retention/retention-policy.js.map +1 -0
- package/dist/cloud/routes/api-key-routes.d.ts +38 -0
- package/dist/cloud/routes/api-key-routes.d.ts.map +1 -0
- package/dist/cloud/routes/api-key-routes.js +84 -0
- package/dist/cloud/routes/api-key-routes.js.map +1 -0
- package/dist/cloud/routes/audit-routes.d.ts +36 -0
- package/dist/cloud/routes/audit-routes.d.ts.map +1 -0
- package/dist/cloud/routes/audit-routes.js +47 -0
- package/dist/cloud/routes/audit-routes.js.map +1 -0
- package/dist/cloud/routes/billing-routes.d.ts +51 -0
- package/dist/cloud/routes/billing-routes.d.ts.map +1 -0
- package/dist/cloud/routes/billing-routes.js +114 -0
- package/dist/cloud/routes/billing-routes.js.map +1 -0
- package/dist/cloud/routes/onboarding-routes.d.ts +34 -0
- package/dist/cloud/routes/onboarding-routes.d.ts.map +1 -0
- package/dist/cloud/routes/onboarding-routes.js +58 -0
- package/dist/cloud/routes/onboarding-routes.js.map +1 -0
- package/dist/cloud/routes/org-routes.d.ts +80 -0
- package/dist/cloud/routes/org-routes.d.ts.map +1 -0
- package/dist/cloud/routes/org-routes.js +153 -0
- package/dist/cloud/routes/org-routes.js.map +1 -0
- package/dist/cloud/routes/usage-routes.d.ts +18 -0
- package/dist/cloud/routes/usage-routes.d.ts.map +1 -0
- package/dist/cloud/routes/usage-routes.js +66 -0
- package/dist/cloud/routes/usage-routes.js.map +1 -0
- package/dist/cloud/storage/adapter.d.ts +102 -0
- package/dist/cloud/storage/adapter.d.ts.map +1 -0
- package/dist/cloud/storage/adapter.js +21 -0
- package/dist/cloud/storage/adapter.js.map +1 -0
- package/dist/cloud/storage/index.d.ts +8 -0
- package/dist/cloud/storage/index.d.ts.map +1 -0
- package/dist/cloud/storage/index.js +7 -0
- package/dist/cloud/storage/index.js.map +1 -0
- package/dist/cloud/storage/postgres-adapter.d.ts +34 -0
- package/dist/cloud/storage/postgres-adapter.d.ts.map +1 -0
- package/dist/cloud/storage/postgres-adapter.js +544 -0
- package/dist/cloud/storage/postgres-adapter.js.map +1 -0
- package/dist/cloud/storage/sqlite-adapter.d.ts +29 -0
- package/dist/cloud/storage/sqlite-adapter.d.ts.map +1 -0
- package/dist/cloud/storage/sqlite-adapter.js +176 -0
- package/dist/cloud/storage/sqlite-adapter.js.map +1 -0
- package/dist/cloud/tenant-pool.d.ts +49 -0
- package/dist/cloud/tenant-pool.d.ts.map +1 -0
- package/dist/cloud/tenant-pool.js +61 -0
- package/dist/cloud/tenant-pool.js.map +1 -0
- package/dist/db/capability-store.d.ts +4 -0
- package/dist/db/capability-store.d.ts.map +1 -1
- package/dist/db/capability-store.js +20 -0
- package/dist/db/capability-store.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -1
- package/dist/routes/audit.js +3 -3
- package/dist/routes/audit.js.map +1 -1
- package/dist/routes/capabilities-top.d.ts +15 -0
- package/dist/routes/capabilities-top.d.ts.map +1 -0
- package/dist/routes/capabilities-top.js +77 -0
- package/dist/routes/capabilities-top.js.map +1 -0
- package/dist/routes/community.d.ts.map +1 -1
- package/dist/routes/community.js +85 -3
- package/dist/routes/community.js.map +1 -1
- package/dist/routes/delegations-top.d.ts +12 -0
- package/dist/routes/delegations-top.d.ts.map +1 -0
- package/dist/routes/delegations-top.js +43 -0
- package/dist/routes/delegations-top.js.map +1 -0
- package/dist/services/community-service.d.ts +6 -0
- package/dist/services/community-service.d.ts.map +1 -1
- package/dist/services/community-service.js +31 -0
- package/dist/services/community-service.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage Adapter Interface (S-4.1)
|
|
3
|
+
*
|
|
4
|
+
* Abstracts over SQLite (self-hosted) and PostgreSQL (cloud) backends.
|
|
5
|
+
* All query functions go through this adapter. Feature parity is guaranteed
|
|
6
|
+
* by running the same test suite against both implementations.
|
|
7
|
+
*
|
|
8
|
+
* The adapter is tenant-aware: orgId is required on all operations.
|
|
9
|
+
* For SQLite self-hosted, orgId maps to tenantId. For Postgres, RLS
|
|
10
|
+
* enforces isolation via SET LOCAL app.current_org.
|
|
11
|
+
*/
|
|
12
|
+
import type { AgentLensEvent, EventQuery, EventQueryResult, Session, SessionQuery, Agent, HealthSnapshot } from '@agentlensai/core';
|
|
13
|
+
import type { AnalyticsResult, StorageStats } from '@agentlensai/core';
|
|
14
|
+
export interface PaginatedResult<T> {
|
|
15
|
+
items: T[];
|
|
16
|
+
total: number;
|
|
17
|
+
hasMore: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface AnalyticsQuery {
|
|
20
|
+
from: string;
|
|
21
|
+
to: string;
|
|
22
|
+
agentId?: string;
|
|
23
|
+
granularity: 'hour' | 'day' | 'week';
|
|
24
|
+
}
|
|
25
|
+
export interface CostAnalyticsResult {
|
|
26
|
+
buckets: Array<{
|
|
27
|
+
timestamp: string;
|
|
28
|
+
totalCostUsd: number;
|
|
29
|
+
eventCount: number;
|
|
30
|
+
model?: string;
|
|
31
|
+
}>;
|
|
32
|
+
totalCostUsd: number;
|
|
33
|
+
totalEvents: number;
|
|
34
|
+
}
|
|
35
|
+
export interface HealthAnalyticsResult {
|
|
36
|
+
snapshots: HealthSnapshot[];
|
|
37
|
+
}
|
|
38
|
+
export interface TokenUsageResult {
|
|
39
|
+
buckets: Array<{
|
|
40
|
+
timestamp: string;
|
|
41
|
+
inputTokens: number;
|
|
42
|
+
outputTokens: number;
|
|
43
|
+
totalTokens: number;
|
|
44
|
+
llmCallCount: number;
|
|
45
|
+
}>;
|
|
46
|
+
totals: {
|
|
47
|
+
inputTokens: number;
|
|
48
|
+
outputTokens: number;
|
|
49
|
+
totalTokens: number;
|
|
50
|
+
llmCallCount: number;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export interface SearchQuery {
|
|
54
|
+
query: string;
|
|
55
|
+
scope?: 'events' | 'sessions' | 'all';
|
|
56
|
+
from?: string;
|
|
57
|
+
to?: string;
|
|
58
|
+
limit?: number;
|
|
59
|
+
offset?: number;
|
|
60
|
+
}
|
|
61
|
+
export interface SearchResult {
|
|
62
|
+
items: Array<{
|
|
63
|
+
type: 'event' | 'session';
|
|
64
|
+
id: string;
|
|
65
|
+
score: number;
|
|
66
|
+
headline: string;
|
|
67
|
+
timestamp: string;
|
|
68
|
+
sessionId?: string;
|
|
69
|
+
}>;
|
|
70
|
+
total: number;
|
|
71
|
+
hasMore: boolean;
|
|
72
|
+
}
|
|
73
|
+
export interface StorageAdapter {
|
|
74
|
+
/** Query events with filters, scoped to org */
|
|
75
|
+
queryEvents(orgId: string, query: EventQuery): Promise<EventQueryResult>;
|
|
76
|
+
/** Get all events for a session, ordered by timestamp */
|
|
77
|
+
getEventsBySession(orgId: string, sessionId: string): Promise<AgentLensEvent[]>;
|
|
78
|
+
/** List sessions with filters and pagination */
|
|
79
|
+
getSessions(orgId: string, query: SessionQuery): Promise<PaginatedResult<Session>>;
|
|
80
|
+
/** Get a single session by ID */
|
|
81
|
+
getSession(orgId: string, sessionId: string): Promise<Session | null>;
|
|
82
|
+
/** List all agents for an org */
|
|
83
|
+
getAgents(orgId: string): Promise<Agent[]>;
|
|
84
|
+
/** Get storage statistics for an org */
|
|
85
|
+
getStats(orgId: string): Promise<StorageStats>;
|
|
86
|
+
/** Cost analytics with time-bucketed aggregation */
|
|
87
|
+
getCostAnalytics(orgId: string, query: AnalyticsQuery): Promise<CostAnalyticsResult>;
|
|
88
|
+
/** Health score analytics over time */
|
|
89
|
+
getHealthAnalytics(orgId: string, query: AnalyticsQuery): Promise<HealthAnalyticsResult>;
|
|
90
|
+
/** Token usage analytics with time-bucketed aggregation */
|
|
91
|
+
getTokenUsage(orgId: string, query: AnalyticsQuery): Promise<TokenUsageResult>;
|
|
92
|
+
/** General analytics (buckets + totals) */
|
|
93
|
+
getAnalytics(orgId: string, query: AnalyticsQuery): Promise<AnalyticsResult>;
|
|
94
|
+
/** Full-text search across events and sessions */
|
|
95
|
+
search(orgId: string, query: SearchQuery): Promise<SearchResult>;
|
|
96
|
+
}
|
|
97
|
+
export type StorageBackend = 'sqlite' | 'postgres';
|
|
98
|
+
/**
|
|
99
|
+
* Determine the active storage backend from environment.
|
|
100
|
+
*/
|
|
101
|
+
export declare function getStorageBackend(): StorageBackend;
|
|
102
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/cloud/storage/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,YAAY,EACZ,KAAK,EACL,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIvE,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAID,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IACH,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAID,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;QAC1B,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAID,MAAM,WAAW,cAAc;IAE7B,+CAA+C;IAC/C,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACzE,yDAAyD;IACzD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAGhF,gDAAgD;IAChD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IACnF,iCAAiC;IACjC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAGtE,iCAAiC;IACjC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAG3C,wCAAwC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAG/C,oDAAoD;IACpD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrF,uCAAuC;IACvC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACzF,2DAA2D;IAC3D,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/E,2CAA2C;IAC3C,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAG7E,kDAAkD;IAClD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAClE;AAID,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAIlD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage Adapter Interface (S-4.1)
|
|
3
|
+
*
|
|
4
|
+
* Abstracts over SQLite (self-hosted) and PostgreSQL (cloud) backends.
|
|
5
|
+
* All query functions go through this adapter. Feature parity is guaranteed
|
|
6
|
+
* by running the same test suite against both implementations.
|
|
7
|
+
*
|
|
8
|
+
* The adapter is tenant-aware: orgId is required on all operations.
|
|
9
|
+
* For SQLite self-hosted, orgId maps to tenantId. For Postgres, RLS
|
|
10
|
+
* enforces isolation via SET LOCAL app.current_org.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Determine the active storage backend from environment.
|
|
14
|
+
*/
|
|
15
|
+
export function getStorageBackend() {
|
|
16
|
+
const backend = process.env['STORAGE_BACKEND'] ?? process.env['DB_DIALECT'] ?? 'sqlite';
|
|
17
|
+
if (backend === 'postgresql' || backend === 'postgres')
|
|
18
|
+
return 'postgres';
|
|
19
|
+
return 'sqlite';
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/cloud/storage/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA+HH;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC;IACxF,IAAI,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IAC1E,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Storage Adapter — Public API
|
|
3
|
+
*/
|
|
4
|
+
export type { StorageAdapter, PaginatedResult, StorageBackend, AnalyticsQuery, CostAnalyticsResult, HealthAnalyticsResult, TokenUsageResult, SearchQuery, SearchResult, } from './adapter.js';
|
|
5
|
+
export { getStorageBackend } from './adapter.js';
|
|
6
|
+
export { SqliteStorageAdapter } from './sqlite-adapter.js';
|
|
7
|
+
export { PostgresStorageAdapter } from './postgres-adapter.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cloud/storage/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cloud/storage/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PostgreSQL Storage Adapter (S-4.2, S-4.3, S-4.4)
|
|
3
|
+
*
|
|
4
|
+
* Implements StorageAdapter for the cloud Postgres backend.
|
|
5
|
+
* Uses the tenant pool from B2A for automatic org scoping via
|
|
6
|
+
* SET LOCAL app.current_org within transactions.
|
|
7
|
+
*
|
|
8
|
+
* All queries use org_id composite indexes. RLS provides automatic
|
|
9
|
+
* tenant scoping as defense-in-depth (queries also filter by org_id
|
|
10
|
+
* explicitly for index usage).
|
|
11
|
+
*
|
|
12
|
+
* S-4.3: Analytics queries use date_trunc + window functions for Postgres.
|
|
13
|
+
* S-4.4: Full-text search uses tsvector/to_tsquery with GIN indexes.
|
|
14
|
+
*/
|
|
15
|
+
import type { AgentLensEvent, EventQuery, EventQueryResult, Session, SessionQuery, Agent } from '@agentlensai/core';
|
|
16
|
+
import type { AnalyticsResult, StorageStats } from '@agentlensai/core';
|
|
17
|
+
import type { StorageAdapter, PaginatedResult, AnalyticsQuery, CostAnalyticsResult, HealthAnalyticsResult, TokenUsageResult, SearchQuery, SearchResult } from './adapter.js';
|
|
18
|
+
import type { Pool } from '../tenant-pool.js';
|
|
19
|
+
export declare class PostgresStorageAdapter implements StorageAdapter {
|
|
20
|
+
private readonly pool;
|
|
21
|
+
constructor(pool: Pool);
|
|
22
|
+
queryEvents(orgId: string, query: EventQuery): Promise<EventQueryResult>;
|
|
23
|
+
getEventsBySession(orgId: string, sessionId: string): Promise<AgentLensEvent[]>;
|
|
24
|
+
getSessions(orgId: string, query: SessionQuery): Promise<PaginatedResult<Session>>;
|
|
25
|
+
getSession(orgId: string, sessionId: string): Promise<Session | null>;
|
|
26
|
+
getAgents(orgId: string): Promise<Agent[]>;
|
|
27
|
+
getStats(orgId: string): Promise<StorageStats>;
|
|
28
|
+
getCostAnalytics(orgId: string, query: AnalyticsQuery): Promise<CostAnalyticsResult>;
|
|
29
|
+
getHealthAnalytics(orgId: string, query: AnalyticsQuery): Promise<HealthAnalyticsResult>;
|
|
30
|
+
getTokenUsage(orgId: string, query: AnalyticsQuery): Promise<TokenUsageResult>;
|
|
31
|
+
getAnalytics(orgId: string, query: AnalyticsQuery): Promise<AnalyticsResult>;
|
|
32
|
+
search(orgId: string, query: SearchQuery): Promise<SearchResult>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=postgres-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres-adapter.d.ts","sourceRoot":"","sources":["../../../src/cloud/storage/postgres-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,YAAY,EACZ,KAAK,EAEN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACb,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAsK9C,qBAAa,sBAAuB,YAAW,cAAc;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,IAAI;IAEjC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAwBxE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAU/E,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAuBlF,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAWrE,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAU1C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAoC9C,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAuCpF,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA6CxF,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkD9E,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAyE5E,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;CAiKvE"}
|