@corgelabs/corge 0.0.1 → 1.0.1
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/ai/index.d.ts +3 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +3 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/schema.d.ts +83 -0
- package/dist/ai/schema.d.ts.map +1 -0
- package/dist/ai/schema.js +19 -0
- package/dist/ai/schema.js.map +1 -0
- package/dist/ai/service.d.ts +14 -0
- package/dist/ai/service.d.ts.map +1 -0
- package/dist/ai/service.js +266 -0
- package/dist/ai/service.js.map +1 -0
- package/dist/ai/utils.d.ts +10 -0
- package/dist/ai/utils.d.ts.map +1 -0
- package/dist/ai/utils.js +27 -0
- package/dist/ai/utils.js.map +1 -0
- package/dist/attachments/index.d.ts +4 -0
- package/dist/attachments/index.d.ts.map +1 -0
- package/dist/attachments/index.js +4 -0
- package/dist/attachments/index.js.map +1 -0
- package/dist/attachments/routes.d.ts +75 -0
- package/dist/attachments/routes.d.ts.map +1 -0
- package/dist/attachments/routes.js +18 -0
- package/dist/attachments/routes.js.map +1 -0
- package/dist/attachments/schema.d.ts +61 -0
- package/dist/attachments/schema.d.ts.map +1 -0
- package/dist/attachments/schema.js +30 -0
- package/dist/attachments/schema.js.map +1 -0
- package/dist/attachments/service.d.ts +27 -0
- package/dist/attachments/service.d.ts.map +1 -0
- package/dist/attachments/service.js +224 -0
- package/dist/attachments/service.js.map +1 -0
- package/dist/attachments/utils.d.ts +9 -0
- package/dist/attachments/utils.d.ts.map +1 -0
- package/dist/attachments/utils.js +80 -0
- package/dist/attachments/utils.js.map +1 -0
- package/dist/auth/index.d.ts +4 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +4 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/oidc.d.ts +25 -0
- package/dist/auth/oidc.d.ts.map +1 -0
- package/dist/auth/oidc.js +298 -0
- package/dist/auth/oidc.js.map +1 -0
- package/dist/auth/recovery.d.ts +41 -0
- package/dist/auth/recovery.d.ts.map +1 -0
- package/dist/auth/recovery.js +250 -0
- package/dist/auth/recovery.js.map +1 -0
- package/dist/auth/routes.d.ts +226 -0
- package/dist/auth/routes.d.ts.map +1 -0
- package/dist/auth/routes.js +96 -0
- package/dist/auth/routes.js.map +1 -0
- package/dist/auth/schema.d.ts +158 -0
- package/dist/auth/schema.d.ts.map +1 -0
- package/dist/auth/schema.js +82 -0
- package/dist/auth/schema.js.map +1 -0
- package/dist/auth/service.d.ts +96 -0
- package/dist/auth/service.d.ts.map +1 -0
- package/dist/auth/service.js +129 -0
- package/dist/auth/service.js.map +1 -0
- package/dist/auth/session.d.ts +51 -0
- package/dist/auth/session.d.ts.map +1 -0
- package/dist/auth/session.js +344 -0
- package/dist/auth/session.js.map +1 -0
- package/dist/auth/utils.d.ts +17 -0
- package/dist/auth/utils.d.ts.map +1 -0
- package/dist/auth/utils.js +96 -0
- package/dist/auth/utils.js.map +1 -0
- package/dist/bin/corge.js +542 -0
- package/dist/chat/context.d.ts +10 -0
- package/dist/chat/context.d.ts.map +1 -0
- package/dist/chat/context.js +221 -0
- package/dist/chat/context.js.map +1 -0
- package/dist/chat/index.d.ts +4 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/index.js +4 -0
- package/dist/chat/index.js.map +1 -0
- package/dist/chat/routes.d.ts +160 -0
- package/dist/chat/routes.d.ts.map +1 -0
- package/dist/chat/routes.js +210 -0
- package/dist/chat/routes.js.map +1 -0
- package/dist/chat/schema.d.ts +285 -0
- package/dist/chat/schema.d.ts.map +1 -0
- package/dist/chat/schema.js +74 -0
- package/dist/chat/schema.js.map +1 -0
- package/dist/chat/service.d.ts +64 -0
- package/dist/chat/service.d.ts.map +1 -0
- package/dist/chat/service.js +279 -0
- package/dist/chat/service.js.map +1 -0
- package/dist/chat/stream.d.ts +53 -0
- package/dist/chat/stream.d.ts.map +1 -0
- package/dist/chat/stream.js +339 -0
- package/dist/chat/stream.js.map +1 -0
- package/dist/chat/utils.d.ts +61 -0
- package/dist/chat/utils.d.ts.map +1 -0
- package/dist/chat/utils.js +285 -0
- package/dist/chat/utils.js.map +1 -0
- package/dist/cli/builder.d.ts +6 -0
- package/dist/cli/builder.d.ts.map +1 -0
- package/dist/cli/builder.js +91 -0
- package/dist/cli/builder.js.map +1 -0
- package/dist/cli/deployer.d.ts +2 -0
- package/dist/cli/deployer.d.ts.map +1 -0
- package/dist/cli/deployer.js +152 -0
- package/dist/cli/deployer.js.map +1 -0
- package/dist/cli/dev-server.d.ts +2 -0
- package/dist/cli/dev-server.d.ts.map +1 -0
- package/dist/cli/dev-server.js +70 -0
- package/dist/cli/dev-server.js.map +1 -0
- package/dist/cli/env.d.ts +4 -0
- package/dist/cli/env.d.ts.map +1 -0
- package/dist/cli/env.js +68 -0
- package/dist/cli/env.js.map +1 -0
- package/dist/cli/init.d.ts +6 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +97 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/config.d.ts +262 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +212 -0
- package/dist/config.js.map +1 -0
- package/dist/db/index.d.ts +3 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +3 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/schema.d.ts +410 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +294 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/db/service.d.ts +42 -0
- package/dist/db/service.d.ts.map +1 -0
- package/dist/db/service.js +372 -0
- package/dist/db/service.js.map +1 -0
- package/dist/db/utils.d.ts +25 -0
- package/dist/db/utils.d.ts.map +1 -0
- package/dist/db/utils.js +188 -0
- package/dist/db/utils.js.map +1 -0
- package/dist/emails/index.d.ts +4 -0
- package/dist/emails/index.d.ts.map +1 -0
- package/dist/emails/index.js +4 -0
- package/dist/emails/index.js.map +1 -0
- package/dist/emails/routes.d.ts +191 -0
- package/dist/emails/routes.d.ts.map +1 -0
- package/dist/emails/routes.js +39 -0
- package/dist/emails/routes.js.map +1 -0
- package/dist/emails/schema.d.ts +237 -0
- package/dist/emails/schema.d.ts.map +1 -0
- package/dist/emails/schema.js +98 -0
- package/dist/emails/schema.js.map +1 -0
- package/dist/emails/service.d.ts +22 -0
- package/dist/emails/service.d.ts.map +1 -0
- package/dist/emails/service.js +337 -0
- package/dist/emails/service.js.map +1 -0
- package/dist/emails/utils.d.ts +49 -0
- package/dist/emails/utils.d.ts.map +1 -0
- package/dist/emails/utils.js +341 -0
- package/dist/emails/utils.js.map +1 -0
- package/dist/files/index.d.ts +4 -0
- package/dist/files/index.d.ts.map +1 -0
- package/dist/files/index.js +4 -0
- package/dist/files/index.js.map +1 -0
- package/dist/files/routes.d.ts +72 -0
- package/dist/files/routes.d.ts.map +1 -0
- package/dist/files/routes.js +38 -0
- package/dist/files/routes.js.map +1 -0
- package/dist/files/schema.d.ts +57 -0
- package/dist/files/schema.d.ts.map +1 -0
- package/dist/files/schema.js +39 -0
- package/dist/files/schema.js.map +1 -0
- package/dist/files/service.d.ts +27 -0
- package/dist/files/service.d.ts.map +1 -0
- package/dist/files/service.js +175 -0
- package/dist/files/service.js.map +1 -0
- package/dist/files/utils.d.ts +3 -0
- package/dist/files/utils.d.ts.map +1 -0
- package/dist/files/utils.js +63 -0
- package/dist/files/utils.js.map +1 -0
- package/dist/index.d.ts +875 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9919 -0
- package/dist/index.js.map +7 -0
- package/dist/payments/billing.d.ts +29 -0
- package/dist/payments/billing.d.ts.map +1 -0
- package/dist/payments/billing.js +378 -0
- package/dist/payments/billing.js.map +1 -0
- package/dist/payments/index.d.ts +4 -0
- package/dist/payments/index.d.ts.map +1 -0
- package/dist/payments/index.js +4 -0
- package/dist/payments/index.js.map +1 -0
- package/dist/payments/routes.d.ts +340 -0
- package/dist/payments/routes.d.ts.map +1 -0
- package/dist/payments/routes.js +56 -0
- package/dist/payments/routes.js.map +1 -0
- package/dist/payments/schema.d.ts +412 -0
- package/dist/payments/schema.d.ts.map +1 -0
- package/dist/payments/schema.js +260 -0
- package/dist/payments/schema.js.map +1 -0
- package/dist/payments/service.d.ts +31 -0
- package/dist/payments/service.d.ts.map +1 -0
- package/dist/payments/service.js +322 -0
- package/dist/payments/service.js.map +1 -0
- package/dist/payments/utils.d.ts +61 -0
- package/dist/payments/utils.d.ts.map +1 -0
- package/dist/payments/utils.js +369 -0
- package/dist/payments/utils.js.map +1 -0
- package/dist/router/guard.d.ts +19 -0
- package/dist/router/guard.d.ts.map +1 -0
- package/dist/router/guard.js +243 -0
- package/dist/router/guard.js.map +1 -0
- package/dist/router/index.d.ts +3 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +3 -0
- package/dist/router/index.js.map +1 -0
- package/dist/router/schema.d.ts +103 -0
- package/dist/router/schema.d.ts.map +1 -0
- package/dist/router/schema.js +282 -0
- package/dist/router/schema.js.map +1 -0
- package/dist/router/service.d.ts +25 -0
- package/dist/router/service.d.ts.map +1 -0
- package/dist/router/service.js +339 -0
- package/dist/router/service.js.map +1 -0
- package/dist/tasks/index.d.ts +4 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js +4 -0
- package/dist/tasks/index.js.map +1 -0
- package/dist/tasks/routes.d.ts +54 -0
- package/dist/tasks/routes.d.ts.map +1 -0
- package/dist/tasks/routes.js +195 -0
- package/dist/tasks/routes.js.map +1 -0
- package/dist/tasks/schema.d.ts +261 -0
- package/dist/tasks/schema.d.ts.map +1 -0
- package/dist/tasks/schema.js +35 -0
- package/dist/tasks/schema.js.map +1 -0
- package/dist/tasks/service.d.ts +32 -0
- package/dist/tasks/service.d.ts.map +1 -0
- package/dist/tasks/service.js +201 -0
- package/dist/tasks/service.js.map +1 -0
- package/dist/tasks/steps.d.ts +18 -0
- package/dist/tasks/steps.d.ts.map +1 -0
- package/dist/tasks/steps.js +365 -0
- package/dist/tasks/steps.js.map +1 -0
- package/dist/tasks/utils.d.ts +75 -0
- package/dist/tasks/utils.d.ts.map +1 -0
- package/dist/tasks/utils.js +311 -0
- package/dist/tasks/utils.js.map +1 -0
- package/dist/tasks/watcher.d.ts +13 -0
- package/dist/tasks/watcher.d.ts.map +1 -0
- package/dist/tasks/watcher.js +255 -0
- package/dist/tasks/watcher.js.map +1 -0
- package/dist/tasks/worker.d.ts +28 -0
- package/dist/tasks/worker.d.ts.map +1 -0
- package/dist/tasks/worker.js +326 -0
- package/dist/tasks/worker.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/schema.d.ts +79 -0
- package/dist/utils/schema.d.ts.map +1 -0
- package/dist/utils/schema.js +41 -0
- package/dist/utils/schema.js.map +1 -0
- package/dist/utils/service.d.ts +32 -0
- package/dist/utils/service.d.ts.map +1 -0
- package/dist/utils/service.js +384 -0
- package/dist/utils/service.js.map +1 -0
- package/docs/SDK_SPEC.md +1645 -0
- package/infra/firestore.base.indexes.json +138 -0
- package/infra/firestore.base.rules +152 -0
- package/infra/storage.base.rules +8 -0
- package/package.json +58 -13
- package/src/ai/index.ts +2 -0
- package/src/ai/schema.ts +64 -0
- package/src/ai/service.ts +317 -0
- package/src/ai/utils.ts +38 -0
- package/src/attachments/index.ts +3 -0
- package/src/attachments/routes.ts +28 -0
- package/src/attachments/schema.ts +45 -0
- package/src/attachments/service.ts +315 -0
- package/src/attachments/utils.ts +115 -0
- package/src/auth/index.ts +3 -0
- package/src/auth/oidc.ts +419 -0
- package/src/auth/recovery.ts +365 -0
- package/src/auth/routes.ts +142 -0
- package/src/auth/schema.ts +181 -0
- package/src/auth/service.ts +183 -0
- package/src/auth/session.ts +414 -0
- package/src/auth/utils.ts +106 -0
- package/src/chat/context.ts +310 -0
- package/src/chat/index.ts +3 -0
- package/src/chat/routes.ts +264 -0
- package/src/chat/schema.ts +295 -0
- package/src/chat/service.ts +360 -0
- package/src/chat/stream.ts +481 -0
- package/src/chat/utils.ts +370 -0
- package/src/cli/builder.ts +93 -0
- package/src/cli/deployer.ts +184 -0
- package/src/cli/dev-server.ts +77 -0
- package/src/cli/env.ts +89 -0
- package/src/cli/init.ts +121 -0
- package/src/config.ts +447 -0
- package/src/db/index.ts +2 -0
- package/src/db/schema.ts +409 -0
- package/src/db/service.ts +477 -0
- package/src/db/utils.ts +250 -0
- package/src/emails/index.ts +3 -0
- package/src/emails/routes.ts +64 -0
- package/src/emails/schema.ts +239 -0
- package/src/emails/service.ts +488 -0
- package/src/emails/utils.ts +449 -0
- package/src/files/index.ts +3 -0
- package/src/files/routes.ts +44 -0
- package/src/files/schema.ts +76 -0
- package/src/files/service.ts +238 -0
- package/src/files/utils.ts +77 -0
- package/src/index.ts +425 -0
- package/src/payments/billing.ts +488 -0
- package/src/payments/index.ts +3 -0
- package/src/payments/routes.ts +92 -0
- package/src/payments/schema.ts +401 -0
- package/src/payments/service.ts +445 -0
- package/src/payments/utils.ts +472 -0
- package/src/router/guard.ts +319 -0
- package/src/router/index.ts +2 -0
- package/src/router/schema.ts +458 -0
- package/src/router/service.ts +453 -0
- package/src/tasks/index.ts +11 -0
- package/src/tasks/routes.ts +230 -0
- package/src/tasks/schema.ts +310 -0
- package/src/tasks/service.ts +254 -0
- package/src/tasks/steps.ts +472 -0
- package/src/tasks/utils.ts +445 -0
- package/src/tasks/watcher.ts +307 -0
- package/src/tasks/worker.ts +461 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/schema.ts +69 -0
- package/src/utils/service.ts +461 -0
- package/tests/e2e.test.ts +2531 -0
- package/tsconfig.base.json +12 -0
- package/README.md +0 -2
- package/index.d.ts +0 -1
- package/index.js +0 -1
package/src/index.ts
ADDED
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from 'node:async_hooks'
|
|
2
|
+
import { AiService } from './ai'
|
|
3
|
+
import {
|
|
4
|
+
AttachmentsService,
|
|
5
|
+
defineAttachmentTypes,
|
|
6
|
+
getRegisteredAttachmentTypes,
|
|
7
|
+
processAttachmentsInput,
|
|
8
|
+
processAttachmentsOutput,
|
|
9
|
+
processedAttachment,
|
|
10
|
+
registerAttachmentTypes,
|
|
11
|
+
scanAttachmentInput,
|
|
12
|
+
scanAttachmentOutput
|
|
13
|
+
} from './attachments'
|
|
14
|
+
import { AuthService } from './auth'
|
|
15
|
+
import {
|
|
16
|
+
ChatService,
|
|
17
|
+
defineAgent,
|
|
18
|
+
defineAgents,
|
|
19
|
+
defineContext,
|
|
20
|
+
openaiCompletionsBody,
|
|
21
|
+
streamChatBody
|
|
22
|
+
} from './chat'
|
|
23
|
+
import {
|
|
24
|
+
CORE_CONFIG,
|
|
25
|
+
defineConfig,
|
|
26
|
+
type AppBindings,
|
|
27
|
+
type DbRole
|
|
28
|
+
} from './config'
|
|
29
|
+
import {
|
|
30
|
+
DbService,
|
|
31
|
+
defineCollection,
|
|
32
|
+
defineCollections,
|
|
33
|
+
entryId,
|
|
34
|
+
fileRef,
|
|
35
|
+
fileScan,
|
|
36
|
+
fileScanError,
|
|
37
|
+
registerCollections,
|
|
38
|
+
unregisterCollections,
|
|
39
|
+
type EntryId
|
|
40
|
+
} from './db'
|
|
41
|
+
import {
|
|
42
|
+
EmailsService,
|
|
43
|
+
clearEmailTemplates,
|
|
44
|
+
defineEmailTemplates,
|
|
45
|
+
emailAttachmentInputSchema,
|
|
46
|
+
emailLogStatusSchema,
|
|
47
|
+
emailLogsQuerySchema,
|
|
48
|
+
emailWebhookParamsSchema,
|
|
49
|
+
getEmailTemplate,
|
|
50
|
+
getRegisteredEmailTemplates,
|
|
51
|
+
registerEmailTemplates,
|
|
52
|
+
sendBatchEmailInputSchema,
|
|
53
|
+
sendBatchEmailResultSchema,
|
|
54
|
+
sendEmailInputSchema,
|
|
55
|
+
sendEmailResultSchema
|
|
56
|
+
} from './emails'
|
|
57
|
+
import { FilesService, fileBody, fileType, signedUploadInput } from './files'
|
|
58
|
+
import {
|
|
59
|
+
PaymentsService, cancelSubscriptionInput, changeTierInput, chargeResultSchema, checkoutSessionResultSchema,
|
|
60
|
+
clearPaymentDefinitions, createCheckoutInput, createInvoiceInput, createPaymentLinkInput,
|
|
61
|
+
customerBillingSummarySchema, definePlans, defineProducts, directChargeInput, getPlanDefinition,
|
|
62
|
+
getProductDefinition, getRegisteredPlans, getRegisteredProducts, invoiceResultSchema, paymentLinkResultSchema,
|
|
63
|
+
paymentWebhookParamsSchema, quotaCheckResultSchema, recordUsageInput, registerPlans, registerProducts,
|
|
64
|
+
subscribeInput, subscribeResultSchema, subscriptionRecordSchema, usageStatusResultSchema, usageSummarySchema
|
|
65
|
+
} from './payments'
|
|
66
|
+
import {
|
|
67
|
+
CORE_ROUTE_DEFAULTS, RouterService, defineRoute, defineRouteOverrides, defineRoutes, type CoreAppInit
|
|
68
|
+
} from './router'
|
|
69
|
+
import { TasksService, type StepRunner } from './tasks'
|
|
70
|
+
import { ErrorsService, ResilienceService, errorBodySchema } from './utils'
|
|
71
|
+
|
|
72
|
+
export interface CoreRuntimeState {
|
|
73
|
+
env: AppBindings
|
|
74
|
+
userId: EntryId
|
|
75
|
+
role: DbRole
|
|
76
|
+
step?: StepRunner
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const coreStorage = new AsyncLocalStorage<CoreRuntimeState>()
|
|
80
|
+
|
|
81
|
+
const runWithCore = <T>(state: CoreRuntimeState, fn: () => Promise<T>): Promise<T> =>
|
|
82
|
+
coreStorage.run(state, fn)
|
|
83
|
+
|
|
84
|
+
const getActiveCoreState = (): CoreRuntimeState | undefined => coreStorage.getStore()
|
|
85
|
+
|
|
86
|
+
const buildDefaultEnvBindings = (isDev = false): AppBindings => ({
|
|
87
|
+
SDK_API_KEY: process.env.SDK_API_KEY ?? '',
|
|
88
|
+
MISTRAL_API_KEY: process.env.MISTRAL_API_KEY ?? '',
|
|
89
|
+
TYPESAFE_API_KEY: process.env.TYPESAFE_API_KEY ?? '',
|
|
90
|
+
JINA_API_KEY: process.env.JINA_API_KEY ?? '',
|
|
91
|
+
WEB_API_KEY: process.env.WEB_API_KEY ?? '',
|
|
92
|
+
RESEND_API_KEY: process.env.RESEND_API_KEY ?? '',
|
|
93
|
+
SENDGRID_API_KEY: process.env.SENDGRID_API_KEY ?? '',
|
|
94
|
+
EMAIL_WEBHOOK_SECRET: process.env.EMAIL_WEBHOOK_SECRET ?? '',
|
|
95
|
+
EMAIL_SANDBOX_WEBHOOK_SECRET: process.env.EMAIL_SANDBOX_WEBHOOK_SECRET ?? '',
|
|
96
|
+
STRIPE_API_KEY: process.env.STRIPE_API_KEY ?? '',
|
|
97
|
+
STRIPE_SANDBOX_API_KEY: process.env.STRIPE_SANDBOX_API_KEY ?? '',
|
|
98
|
+
STRIPE_WEBHOOK_SECRET: process.env.STRIPE_WEBHOOK_SECRET ?? '',
|
|
99
|
+
STRIPE_SANDBOX_WEBHOOK_SECRET: process.env.STRIPE_SANDBOX_WEBHOOK_SECRET ?? '',
|
|
100
|
+
DODO_API_KEY: process.env.DODO_API_KEY ?? '',
|
|
101
|
+
DODO_SANDBOX_API_KEY: process.env.DODO_SANDBOX_API_KEY ?? '',
|
|
102
|
+
DODO_WEBHOOK_SECRET: process.env.DODO_WEBHOOK_SECRET ?? '',
|
|
103
|
+
DODO_SANDBOX_WEBHOOK_SECRET: process.env.DODO_SANDBOX_WEBHOOK_SECRET ?? '',
|
|
104
|
+
isDev
|
|
105
|
+
})
|
|
106
|
+
|
|
107
|
+
export class Core {
|
|
108
|
+
readonly #explicitState?: CoreRuntimeState
|
|
109
|
+
readonly #resilience: ResilienceService
|
|
110
|
+
readonly #router: RouterService
|
|
111
|
+
readonly #db: DbService
|
|
112
|
+
readonly #attachments: AttachmentsService
|
|
113
|
+
readonly #auth: AuthService
|
|
114
|
+
readonly #chat: ChatService
|
|
115
|
+
readonly #tasks: TasksService
|
|
116
|
+
readonly #emails: EmailsService
|
|
117
|
+
readonly #payments: PaymentsService
|
|
118
|
+
|
|
119
|
+
readonly errors: ErrorsService
|
|
120
|
+
readonly db: Omit<DbService, 'internals'>
|
|
121
|
+
readonly files: FilesService
|
|
122
|
+
readonly ai: AiService
|
|
123
|
+
readonly attachments: Omit<AttachmentsService, 'internals'>
|
|
124
|
+
readonly auth: Omit<AuthService, 'internals'>
|
|
125
|
+
readonly chat: Omit<ChatService, 'internals'>
|
|
126
|
+
readonly tasks: Omit<TasksService, 'internals'>
|
|
127
|
+
readonly emails: Omit<EmailsService, 'internals'>
|
|
128
|
+
readonly payments: Omit<PaymentsService, 'internals'>
|
|
129
|
+
|
|
130
|
+
constructor(state?: CoreRuntimeState) {
|
|
131
|
+
this.#explicitState = state
|
|
132
|
+
this.errors = new ErrorsService()
|
|
133
|
+
this.#resilience = new ResilienceService(this)
|
|
134
|
+
this.#db = new DbService(this)
|
|
135
|
+
this.db = this.#db
|
|
136
|
+
this.files = new FilesService(this)
|
|
137
|
+
this.ai = new AiService(this)
|
|
138
|
+
this.#attachments = new AttachmentsService(this)
|
|
139
|
+
this.attachments = this.#attachments
|
|
140
|
+
this.#auth = new AuthService(this)
|
|
141
|
+
this.auth = this.#auth
|
|
142
|
+
this.#chat = new ChatService(this)
|
|
143
|
+
this.chat = this.#chat
|
|
144
|
+
this.#tasks = new TasksService(this)
|
|
145
|
+
this.tasks = this.#tasks
|
|
146
|
+
this.#emails = new EmailsService(this)
|
|
147
|
+
this.emails = this.#emails
|
|
148
|
+
this.#payments = new PaymentsService(this)
|
|
149
|
+
this.payments = this.#payments
|
|
150
|
+
this.#router = new RouterService(this)
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
get #state(): CoreRuntimeState {
|
|
154
|
+
if (this.#explicitState) return this.#explicitState
|
|
155
|
+
const active = coreStorage.getStore()
|
|
156
|
+
if (active) return active
|
|
157
|
+
const wfStore = this.#tasks.internals.getActiveWorkflowStore()
|
|
158
|
+
const isDevDefault =
|
|
159
|
+
!process.env.K_SERVICE ||
|
|
160
|
+
process.env.K_SERVICE.endsWith('-dev') ||
|
|
161
|
+
process.env.NODE_ENV === 'development' ||
|
|
162
|
+
process.env.NODE_ENV === 'test'
|
|
163
|
+
return {
|
|
164
|
+
env: wfStore?.env ?? buildDefaultEnvBindings(isDevDefault),
|
|
165
|
+
userId: CORE_CONFIG.auth.adminUserId,
|
|
166
|
+
role: 'admin',
|
|
167
|
+
...(wfStore?.step ? { step: wfStore.step } : {})
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
get env(): AppBindings {
|
|
172
|
+
return this.#state.env
|
|
173
|
+
}
|
|
174
|
+
get userId(): EntryId {
|
|
175
|
+
return this.#state.userId
|
|
176
|
+
}
|
|
177
|
+
get role(): DbRole {
|
|
178
|
+
return this.#state.role
|
|
179
|
+
}
|
|
180
|
+
get caller(): { userId: EntryId; role: DbRole } {
|
|
181
|
+
return { userId: this.userId, role: this.role }
|
|
182
|
+
}
|
|
183
|
+
get step(): StepRunner {
|
|
184
|
+
return this.#state.step ?? this.#tasks.internals.useStep()
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
readonly config = CORE_CONFIG
|
|
188
|
+
readonly createApp = (opts?: CoreAppInit) => this.#router.createApp(opts)
|
|
189
|
+
|
|
190
|
+
readonly define = {
|
|
191
|
+
config: defineConfig,
|
|
192
|
+
route: defineRoute,
|
|
193
|
+
routes: defineRoutes,
|
|
194
|
+
routeOverrides: defineRouteOverrides,
|
|
195
|
+
collection: defineCollection,
|
|
196
|
+
collections: defineCollections,
|
|
197
|
+
agent: defineAgent,
|
|
198
|
+
agents: defineAgents,
|
|
199
|
+
context: defineContext,
|
|
200
|
+
attachmentTypes: defineAttachmentTypes,
|
|
201
|
+
emailTemplates: defineEmailTemplates,
|
|
202
|
+
plans: definePlans,
|
|
203
|
+
products: defineProducts
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
readonly schemas = {
|
|
207
|
+
entryId,
|
|
208
|
+
fileRef,
|
|
209
|
+
fileScan,
|
|
210
|
+
fileScanError,
|
|
211
|
+
fileBody,
|
|
212
|
+
fileType,
|
|
213
|
+
signedUploadInput,
|
|
214
|
+
processedAttachment,
|
|
215
|
+
scanAttachmentInput,
|
|
216
|
+
scanAttachmentOutput,
|
|
217
|
+
processAttachmentsInput,
|
|
218
|
+
processAttachmentsOutput,
|
|
219
|
+
streamChatBody,
|
|
220
|
+
openaiCompletionsBody,
|
|
221
|
+
errorBodySchema,
|
|
222
|
+
emailLogStatusSchema,
|
|
223
|
+
emailAttachmentInputSchema,
|
|
224
|
+
sendEmailInputSchema,
|
|
225
|
+
sendBatchEmailInputSchema,
|
|
226
|
+
emailLogsQuerySchema,
|
|
227
|
+
emailWebhookParamsSchema,
|
|
228
|
+
sendEmailResultSchema,
|
|
229
|
+
sendBatchEmailResultSchema,
|
|
230
|
+
createCheckoutInput,
|
|
231
|
+
createPaymentLinkInput,
|
|
232
|
+
createInvoiceInput,
|
|
233
|
+
directChargeInput,
|
|
234
|
+
subscribeInput,
|
|
235
|
+
changeTierInput,
|
|
236
|
+
cancelSubscriptionInput,
|
|
237
|
+
recordUsageInput,
|
|
238
|
+
paymentWebhookParamsSchema,
|
|
239
|
+
checkoutSessionResultSchema,
|
|
240
|
+
paymentLinkResultSchema,
|
|
241
|
+
invoiceResultSchema,
|
|
242
|
+
chargeResultSchema,
|
|
243
|
+
subscribeResultSchema,
|
|
244
|
+
subscriptionRecordSchema,
|
|
245
|
+
customerBillingSummarySchema,
|
|
246
|
+
usageStatusResultSchema,
|
|
247
|
+
usageSummarySchema,
|
|
248
|
+
quotaCheckResultSchema
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
get internals() {
|
|
252
|
+
return {
|
|
253
|
+
resilience: this.#resilience,
|
|
254
|
+
context: {
|
|
255
|
+
run: runWithCore,
|
|
256
|
+
getState: getActiveCoreState,
|
|
257
|
+
routeDefaults: CORE_ROUTE_DEFAULTS,
|
|
258
|
+
getMcpTools: this.#chat.internals.getMcpTools,
|
|
259
|
+
authenticateRequest: this.#router.authenticateRequest,
|
|
260
|
+
applyRateLimit: this.#router.applyRateLimit,
|
|
261
|
+
enforceAgentAccess: this.#chat.internals.enforceAgentAccess,
|
|
262
|
+
stageAndScanAttachments: this.#chat.internals.stageAndScanAttachments,
|
|
263
|
+
startChatStreamTurn: this.#chat.internals.startChatStreamTurn,
|
|
264
|
+
saveChat: this.#chat.internals.saveChat,
|
|
265
|
+
streamChatSse: this.#chat.internals.streamChatSse,
|
|
266
|
+
scanShortCircuit: this.#attachments.internals.scanShortCircuit
|
|
267
|
+
},
|
|
268
|
+
registry: {
|
|
269
|
+
registerCollections,
|
|
270
|
+
unregisterCollections,
|
|
271
|
+
ensureFirebaseApp: this.#db.internals.ensureFirebaseApp,
|
|
272
|
+
getGcpAccessToken: this.#db.internals.getGcpAccessToken,
|
|
273
|
+
cascadeEraseUserCollections: this.#db.internals.cascadeEraseUserCollections,
|
|
274
|
+
getAttachmentTypes: getRegisteredAttachmentTypes,
|
|
275
|
+
registerAttachmentTypes,
|
|
276
|
+
registerEmailTemplates,
|
|
277
|
+
clearEmailTemplates,
|
|
278
|
+
getEmailTemplate,
|
|
279
|
+
getRegisteredEmailTemplates,
|
|
280
|
+
registerPlans,
|
|
281
|
+
registerProducts,
|
|
282
|
+
clearPaymentDefinitions,
|
|
283
|
+
getPlanDefinition,
|
|
284
|
+
getProductDefinition,
|
|
285
|
+
getRegisteredPlans,
|
|
286
|
+
getRegisteredProducts,
|
|
287
|
+
registerAgents: this.#chat.internals.registerAgents,
|
|
288
|
+
getRegisteredAgents: this.#chat.internals.getRegisteredAgents,
|
|
289
|
+
getAgentRegistry: this.#chat.internals.getAgentRegistry,
|
|
290
|
+
registerWorkflowTool: this.#chat.internals.registerWorkflowTool,
|
|
291
|
+
clearWorkflowTools: this.#chat.internals.clearWorkflowTools,
|
|
292
|
+
registerContextCatalog: this.#chat.internals.registerContextCatalog
|
|
293
|
+
},
|
|
294
|
+
workflows: this.#tasks.internals,
|
|
295
|
+
auth: this.#auth.internals,
|
|
296
|
+
emails: this.#emails.internals,
|
|
297
|
+
payments: this.#payments.internals
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
export type CoreInternals = Core['internals']
|
|
303
|
+
|
|
304
|
+
export const core = new Core()
|
|
305
|
+
|
|
306
|
+
export namespace core {
|
|
307
|
+
export namespace types {
|
|
308
|
+
export type AppBindings = import('./config').AppBindings
|
|
309
|
+
export type DbAction = import('./config').DbAction
|
|
310
|
+
export type DbRole = import('./config').DbRole
|
|
311
|
+
export type CoreAppInit = import('./router').CoreAppInit
|
|
312
|
+
export type CoreInternals = import('./index').CoreInternals
|
|
313
|
+
export type CoreRuntimeState = import('./index').CoreRuntimeState
|
|
314
|
+
export type CoreRouteOverrides = import('./router').CoreRouteOverrides
|
|
315
|
+
export type RouteConfig<I = any, O = any, P = Record<string, string>, Q = Record<string, string>> =
|
|
316
|
+
import('./router').RouteConfig<I, O, P, Q>
|
|
317
|
+
export type RouteExecutionContext<I = unknown, P = Record<string, string>, Q = Record<string, string>> =
|
|
318
|
+
import('./router').RouteExecutionContext<I, P, Q>
|
|
319
|
+
export type RouteMode = import('./router').RouteMode
|
|
320
|
+
export type RoutesIntrospectionResponse = import('./tasks').RoutesIntrospectionResponse
|
|
321
|
+
export type CollectionDefinition<S extends import('zod').ZodObject<any> = import('zod').ZodObject<any>> =
|
|
322
|
+
import('./db').CollectionDefinition<S>
|
|
323
|
+
export type CollectionName = import('./db').CollectionName
|
|
324
|
+
export type DbListOptions<T = Record<string, unknown>> = import('./db').DbListOptions<T>
|
|
325
|
+
export type DbListPage<T> = import('./db').DbListPage<T>
|
|
326
|
+
export type EntryId = import('./db').EntryId
|
|
327
|
+
export type FileRef = import('./db').FileRef
|
|
328
|
+
export type FileScan = import('./db').FileScan
|
|
329
|
+
export type InsertData<N extends import('./db').CollectionName> = import('./db').InsertData<N>
|
|
330
|
+
export type PaginatedList<T> = import('./db').PaginatedList<T>
|
|
331
|
+
export type SelectModel<N extends import('./db').CollectionName> =
|
|
332
|
+
import('./db').SelectModel<N>
|
|
333
|
+
export type UpdateData<N extends import('./db').CollectionName> = import('./db').UpdateData<N>
|
|
334
|
+
export type AttachmentTypesMap = import('./attachments').AttachmentTypesMap
|
|
335
|
+
export type ProcessAttachmentsInput = import('./attachments').ProcessAttachmentsInput
|
|
336
|
+
export type ProcessAttachmentsOutput = import('./attachments').ProcessAttachmentsOutput
|
|
337
|
+
export type ProcessedAttachment = import('./attachments').ProcessedAttachment
|
|
338
|
+
export type ScanAttachmentInput = import('./attachments').ScanAttachmentInput
|
|
339
|
+
export type ScanAttachmentOutput = import('./attachments').ScanAttachmentOutput
|
|
340
|
+
export type FileBody = import('./files').FileBody
|
|
341
|
+
export type FileType = import('./files').FileType
|
|
342
|
+
export type SignedDownloadUrlResult = import('./files').SignedDownloadUrlResult
|
|
343
|
+
export type SignedUploadInput = import('./files').SignedUploadInput
|
|
344
|
+
export type SignedUploadUrlResult = import('./files').SignedUploadUrlResult
|
|
345
|
+
export type AuthUser = import('./auth').AuthUser
|
|
346
|
+
export type AgentConfig = import('./chat').AgentConfig
|
|
347
|
+
export type AskAgentOptions = import('./chat').AskAgentOptions
|
|
348
|
+
export type RunAgentOptions = import('./chat').RunAgentOptions
|
|
349
|
+
export type GetContextOptions = import('./chat').GetContextOptions
|
|
350
|
+
export type HybridRetrievalOptions = import('./chat').HybridRetrievalOptions
|
|
351
|
+
export type HybridRetrievalResult = import('./chat').HybridRetrievalResult
|
|
352
|
+
export type ChatMessagePublic = import('./chat').ChatMessagePublic
|
|
353
|
+
export type ContextEntry = import('./chat').ContextEntry
|
|
354
|
+
export type ContextItemSpec = import('./chat').ContextItemSpec
|
|
355
|
+
export type UserContext = import('./chat').UserContext
|
|
356
|
+
export type UserContextResolver = import('./chat').UserContextResolver
|
|
357
|
+
export type StepRunner = import('./tasks').StepRunner
|
|
358
|
+
export type TaskStatus = import('./tasks').TaskStatus
|
|
359
|
+
export type TaskStatusRecord<O = unknown> = import('./tasks').TaskStatusRecord<O>
|
|
360
|
+
export type WorkflowContext = import('./tasks').WorkflowContext
|
|
361
|
+
export type WorkflowRuntimeEntry = import('./tasks').WorkflowRuntimeEntry
|
|
362
|
+
export type AiUsageSummary = import('./ai').AiUsageSummary
|
|
363
|
+
export type DecideResult = import('./ai').DecideResult
|
|
364
|
+
export type JevQuestion = import('./ai').JevQuestion
|
|
365
|
+
export type AiGenerateOptions<O = string> = import('./ai').AiGenerateOptions<O>
|
|
366
|
+
export type AiGenerateResult<O = string> = import('./ai').AiGenerateResult<O>
|
|
367
|
+
export type VisionOptions = import('./ai').VisionOptions
|
|
368
|
+
export type VisionResult = import('./ai').VisionResult
|
|
369
|
+
export type ErrorBody = import('./utils').ErrorBody
|
|
370
|
+
export type CircuitBreakerKey = import('./utils').CircuitBreakerKey
|
|
371
|
+
export type CircuitBreakerRecord = import('./utils').CircuitBreakerRecord
|
|
372
|
+
export type CircuitBreakerStateName = import('./utils').CircuitBreakerStateName
|
|
373
|
+
export type SingleflightOptions = import('./utils').SingleflightOptions
|
|
374
|
+
export type EmailProvider = import('./config').EmailProvider
|
|
375
|
+
export type AuthEmailPurpose = import('./config').AuthEmailPurpose
|
|
376
|
+
export type AuthEmailVariables = import('./config').AuthEmailVariables
|
|
377
|
+
export type AuthFlowEmailHook = import('./config').AuthFlowEmailHook
|
|
378
|
+
export type AuthFlowConfigSpec = import('./config').AuthFlowConfigSpec
|
|
379
|
+
export type EmailsConfig = import('./config').EmailsConfig
|
|
380
|
+
export type EmailTemplateDefinition<S extends import('zod').ZodObject<any> = import('zod').ZodObject<any>> =
|
|
381
|
+
import('./emails').EmailTemplateDefinition<S>
|
|
382
|
+
export type EmailTemplatesMap = import('./emails').EmailTemplatesMap
|
|
383
|
+
export type EmailAttachmentInput = import('./emails').EmailAttachmentInput
|
|
384
|
+
export type EmailCallOptions = import('./emails').EmailCallOptions
|
|
385
|
+
export type SendEmailInput = import('./emails').SendEmailInput
|
|
386
|
+
export type SendBatchEmailInput = import('./emails').SendBatchEmailInput
|
|
387
|
+
export type SendEmailResult = import('./emails').SendEmailResult
|
|
388
|
+
export type SendBatchEmailResult = import('./emails').SendBatchEmailResult
|
|
389
|
+
export type EmailLogStatus = import('./emails').EmailLogStatus
|
|
390
|
+
export type EmailLogsQuery = import('./emails').EmailLogsQuery
|
|
391
|
+
export type PaymentProvider = import('./payments').PaymentProvider
|
|
392
|
+
export type PaymentsConfig = import('./config').PaymentsConfig
|
|
393
|
+
export type PlanDefinition = import('./payments').PlanDefinition
|
|
394
|
+
export type PlansMap = import('./payments').PlansMap
|
|
395
|
+
export type ProductDefinition = import('./payments').ProductDefinition
|
|
396
|
+
export type ProductsMap = import('./payments').ProductsMap
|
|
397
|
+
export type PaymentCallOptions = import('./payments').PaymentCallOptions
|
|
398
|
+
export type CreateCheckoutInput = import('./payments').CreateCheckoutInput
|
|
399
|
+
export type CheckoutSessionResult = import('./payments').CheckoutSessionResult
|
|
400
|
+
export type CreatePaymentLinkInput = import('./payments').CreatePaymentLinkInput
|
|
401
|
+
export type PaymentLinkResult = import('./payments').PaymentLinkResult
|
|
402
|
+
export type CreateInvoiceInput = import('./payments').CreateInvoiceInput
|
|
403
|
+
export type InvoiceResult = import('./payments').InvoiceResult
|
|
404
|
+
export type DirectChargeInput = import('./payments').DirectChargeInput
|
|
405
|
+
export type ChargeResult = import('./payments').ChargeResult
|
|
406
|
+
export type SubscribeInput = import('./payments').SubscribeInput
|
|
407
|
+
export type SubscribeResult = import('./payments').SubscribeResult
|
|
408
|
+
export type ChangeTierInput = import('./payments').ChangeTierInput
|
|
409
|
+
export type CancelSubscriptionInput = import('./payments').CancelSubscriptionInput
|
|
410
|
+
export type SubscriptionRecord = import('./payments').SubscriptionRecord
|
|
411
|
+
export type CustomerBillingSummary = import('./payments').CustomerBillingSummary
|
|
412
|
+
export type UsageStatusResult = import('./payments').UsageStatusResult
|
|
413
|
+
export type UsageSummary = import('./payments').UsageSummary
|
|
414
|
+
export type QuotaCheckResult = import('./payments').QuotaCheckResult
|
|
415
|
+
export type RecordUsageInput = import('./payments').RecordUsageInput
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
export const useCore = (): Core => {
|
|
420
|
+
const active = coreStorage.getStore()
|
|
421
|
+
return active ? new Core(active) : core
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
export { CORE_CONFIG }
|
|
425
|
+
export { getSecrets, loadGcpSecrets } from './cli/env'
|