@apart-tech/intelligence-core 1.18.0 → 1.19.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/auth/ability.d.ts +1 -1
- package/dist/auth/ability.d.ts.map +1 -1
- package/dist/auth/ability.js +15 -0
- package/dist/auth/ability.js.map +1 -1
- package/dist/auth/ability.test.js +45 -2
- package/dist/auth/ability.test.js.map +1 -1
- package/dist/db/tenant.d.ts.map +1 -1
- package/dist/db/tenant.js +10 -0
- package/dist/db/tenant.js.map +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/services/chat-context-service.d.ts +33 -0
- package/dist/services/chat-context-service.d.ts.map +1 -0
- package/dist/services/chat-context-service.js +110 -0
- package/dist/services/chat-context-service.js.map +1 -0
- package/dist/services/chat-service.d.ts +83 -0
- package/dist/services/chat-service.d.ts.map +1 -0
- package/dist/services/chat-service.js +103 -0
- package/dist/services/chat-service.js.map +1 -0
- package/dist/services/chat-usage-service.d.ts +36 -0
- package/dist/services/chat-usage-service.d.ts.map +1 -0
- package/dist/services/chat-usage-service.js +89 -0
- package/dist/services/chat-usage-service.js.map +1 -0
- package/dist/services/llm-router-service.d.ts +29 -0
- package/dist/services/llm-router-service.d.ts.map +1 -0
- package/dist/services/llm-router-service.js +70 -0
- package/dist/services/llm-router-service.js.map +1 -0
- package/dist/services/org-llm-provider-service.d.ts +47 -0
- package/dist/services/org-llm-provider-service.d.ts.map +1 -0
- package/dist/services/org-llm-provider-service.js +126 -0
- package/dist/services/org-llm-provider-service.js.map +1 -0
- package/package.json +1 -1
- package/prisma/schema.prisma +108 -0
package/prisma/schema.prisma
CHANGED
|
@@ -45,6 +45,11 @@ model Organization {
|
|
|
45
45
|
nodeChunks NodeChunk[]
|
|
46
46
|
piiQueryLogs PiiQueryLog[]
|
|
47
47
|
documents Document[]
|
|
48
|
+
llmProviders OrgLlmProvider[]
|
|
49
|
+
chatSessions ChatSession[]
|
|
50
|
+
chatMessages ChatMessage[]
|
|
51
|
+
chatGuidelines OrgChatGuideline[]
|
|
52
|
+
priorityDocuments OrgPriorityDocument[]
|
|
48
53
|
|
|
49
54
|
@@map("organizations")
|
|
50
55
|
}
|
|
@@ -775,3 +780,106 @@ model SearchMetric {
|
|
|
775
780
|
@@index([organizationId, createdAt], map: "idx_search_metrics_org_time")
|
|
776
781
|
@@map("search_metrics")
|
|
777
782
|
}
|
|
783
|
+
|
|
784
|
+
// ── Chat Gateway ────────────────────────────────────────────────────────────
|
|
785
|
+
|
|
786
|
+
model OrgLlmProvider {
|
|
787
|
+
id String @id @default(uuid()) @db.Uuid
|
|
788
|
+
organizationId String @map("organization_id") @db.Uuid
|
|
789
|
+
provider String @db.VarChar(30)
|
|
790
|
+
displayName String @map("display_name") @db.VarChar(200)
|
|
791
|
+
encryptedApiKey String @map("encrypted_api_key") @db.Text
|
|
792
|
+
baseUrl String? @map("base_url") @db.VarChar(500)
|
|
793
|
+
models String[]
|
|
794
|
+
defaultModel String? @map("default_model") @db.VarChar(100)
|
|
795
|
+
dataResidency String @default("any") @map("data_residency") @db.VarChar(10)
|
|
796
|
+
enabled Boolean @default(true)
|
|
797
|
+
priority Int @default(0)
|
|
798
|
+
maxTokensPerMin Int? @map("max_tokens_per_min")
|
|
799
|
+
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz
|
|
800
|
+
updatedAt DateTime @default(now()) @map("updated_at") @db.Timestamptz
|
|
801
|
+
|
|
802
|
+
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade)
|
|
803
|
+
|
|
804
|
+
@@unique([organizationId, provider], map: "uq_org_llm_provider_org_provider")
|
|
805
|
+
@@index([organizationId], map: "idx_org_llm_providers_org")
|
|
806
|
+
@@map("org_llm_providers")
|
|
807
|
+
}
|
|
808
|
+
|
|
809
|
+
model ChatSession {
|
|
810
|
+
id String @id @default(uuid()) @db.Uuid
|
|
811
|
+
organizationId String @map("organization_id") @db.Uuid
|
|
812
|
+
userId String @map("user_id") @db.Uuid
|
|
813
|
+
title String? @db.VarChar(500)
|
|
814
|
+
privacy String @default("private") @db.VarChar(20)
|
|
815
|
+
status String @default("active") @db.VarChar(20)
|
|
816
|
+
workspaceId String? @map("workspace_id") @db.Uuid
|
|
817
|
+
graphCaptured Boolean @default(false) @map("graph_captured")
|
|
818
|
+
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz
|
|
819
|
+
updatedAt DateTime @default(now()) @map("updated_at") @db.Timestamptz
|
|
820
|
+
|
|
821
|
+
messages ChatMessage[]
|
|
822
|
+
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade)
|
|
823
|
+
|
|
824
|
+
@@index([organizationId, userId, createdAt], map: "idx_chat_sessions_org_user_time")
|
|
825
|
+
@@index([organizationId, privacy, createdAt], map: "idx_chat_sessions_org_privacy_time")
|
|
826
|
+
@@map("chat_sessions")
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
model ChatMessage {
|
|
830
|
+
id String @id @default(uuid()) @db.Uuid
|
|
831
|
+
sessionId String @map("session_id") @db.Uuid
|
|
832
|
+
organizationId String @map("organization_id") @db.Uuid
|
|
833
|
+
role String @db.VarChar(20)
|
|
834
|
+
content String @db.Text
|
|
835
|
+
contentClean String? @map("content_clean") @db.Text
|
|
836
|
+
model String? @db.VarChar(100)
|
|
837
|
+
providerId String? @map("provider_id") @db.Uuid
|
|
838
|
+
tokensIn Int? @map("tokens_in")
|
|
839
|
+
tokensOut Int? @map("tokens_out")
|
|
840
|
+
costCents Int? @map("cost_cents")
|
|
841
|
+
durationMs Int? @map("duration_ms")
|
|
842
|
+
piiDetected Boolean @default(false) @map("pii_detected")
|
|
843
|
+
piiReport Json? @map("pii_report")
|
|
844
|
+
contextNodeIds String[] @default([]) @map("context_node_ids")
|
|
845
|
+
documentIds String[] @default([]) @map("document_ids")
|
|
846
|
+
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz
|
|
847
|
+
|
|
848
|
+
session ChatSession @relation(fields: [sessionId], references: [id], onDelete: Cascade)
|
|
849
|
+
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade)
|
|
850
|
+
|
|
851
|
+
@@index([sessionId, createdAt], map: "idx_chat_messages_session_time")
|
|
852
|
+
@@index([organizationId, createdAt], map: "idx_chat_messages_org_time")
|
|
853
|
+
@@map("chat_messages")
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
model OrgChatGuideline {
|
|
857
|
+
id String @id @default(uuid()) @db.Uuid
|
|
858
|
+
organizationId String @map("organization_id") @db.Uuid
|
|
859
|
+
title String @db.VarChar(200)
|
|
860
|
+
content String @db.Text
|
|
861
|
+
priority Int @default(0)
|
|
862
|
+
enabled Boolean @default(true)
|
|
863
|
+
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz
|
|
864
|
+
updatedAt DateTime @default(now()) @map("updated_at") @db.Timestamptz
|
|
865
|
+
|
|
866
|
+
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade)
|
|
867
|
+
|
|
868
|
+
@@index([organizationId], map: "idx_org_chat_guidelines_org")
|
|
869
|
+
@@map("org_chat_guidelines")
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
model OrgPriorityDocument {
|
|
873
|
+
id String @id @default(uuid()) @db.Uuid
|
|
874
|
+
organizationId String @map("organization_id") @db.Uuid
|
|
875
|
+
nodeId String @map("node_id") @db.Uuid
|
|
876
|
+
boostWeight Int @default(1) @map("boost_weight")
|
|
877
|
+
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz
|
|
878
|
+
updatedAt DateTime @default(now()) @map("updated_at") @db.Timestamptz
|
|
879
|
+
|
|
880
|
+
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade)
|
|
881
|
+
|
|
882
|
+
@@unique([organizationId, nodeId], map: "uq_org_priority_doc_org_node")
|
|
883
|
+
@@index([organizationId], map: "idx_org_priority_documents_org")
|
|
884
|
+
@@map("org_priority_documents")
|
|
885
|
+
}
|