Build the agent-native compute CRM platform
CI / verify (push) Successful in 3m6s

This commit is contained in:
2026-08-13 01:39:01 -07:00
parent bfd2f8d95a
commit 853bde2265
160 changed files with 61812 additions and 483 deletions
+42
View File
@@ -0,0 +1,42 @@
import {
boolean,
check,
integer,
pgTable,
text,
timestamp,
uuid,
} from 'drizzle-orm/pg-core';
import { sql } from 'drizzle-orm';
import { users } from './identity';
/** Workspace-wide controls. The check keeps this deliberately single-tenant. */
export const platformSettings = pgTable(
'platform_settings',
{
id: text('id').primaryKey().default('default'),
piggyModel: text('piggy_model').notNull().default('nvidia/nemotron-3-nano-30b-a3b'),
piggyInferenceBase: text('piggy_inference_base')
.notNull()
.default('https://api.pinference.ai/api/v1'),
piggyEnabled: boolean('piggy_enabled').notNull().default(false),
/** AES-256-GCM envelope. Its key lives outside the database. */
primeApiKeyEncrypted: text('prime_api_key_encrypted'),
primeApiKeyUpdatedAt: timestamp('prime_api_key_updated_at', { withTimezone: true }),
primeSyncEnabled: boolean('prime_sync_enabled').notNull().default(false),
primeSyncIntervalMinutes: integer('prime_sync_interval_minutes').notNull().default(30),
updatedByUserId: uuid('updated_by_user_id').references(() => users.id, {
onDelete: 'set null',
}),
updatedAt: timestamp('updated_at', { withTimezone: true }).notNull().defaultNow(),
},
(t) => [
check('platform_settings_singleton_check', sql`${t.id} = 'default'`),
check(
'platform_settings_sync_interval_check',
sql`${t.primeSyncIntervalMinutes} BETWEEN 1 AND 1440`,
),
],
);
export type PlatformSettings = typeof platformSettings.$inferSelect;