learning_ai_notes/backend/src/lib/cosmos-init.ts
saravanakumardb1 d09259c42e docs: update AGENTS.md + ROADMAP.md with all completed features, register saved_views container
- AGENTS.md: added saved-views module, lib/platform.ts, batch-review endpoint, saved-views endpoints, blob-client to shared packages, 7 Cosmos containers, keyboard shortcuts + debounce hooks
- ROADMAP.md: 6 new commit entries, all blockers/deferrals marked resolved
- cosmos-init.ts: registered saved_views container with /userId partition

All 3 surfaces verified: backend 18/18, web 6/6, mobile typecheck pass.
2026-03-10 19:45:13 -07:00

31 lines
1.1 KiB
TypeScript

import { initializeAllContainers, registerContainers } from '@bytelyst/cosmos';
import type { ContainerConfig } from '@bytelyst/cosmos';
import { config } from './config.js';
const CONTAINER_DEFS: Record<string, ContainerConfig> = {
notes: { partitionKeyPath: '/workspaceId' },
workspaces: { partitionKeyPath: '/userId' },
note_relationships: { partitionKeyPath: '/workspaceId' },
note_tasks: { partitionKeyPath: '/workspaceId' },
note_artifacts: { partitionKeyPath: '/workspaceId' },
note_agent_actions: { partitionKeyPath: '/workspaceId' },
saved_views: { partitionKeyPath: '/userId' },
};
export async function initCosmosIfNeeded(): Promise<void> {
registerContainers(CONTAINER_DEFS);
const shouldInit = config.NODE_ENV !== 'production' || process.env.COSMOS_AUTO_INIT === 'true';
if (!shouldInit || config.DB_PROVIDER === 'memory') {
return;
}
try {
await initializeAllContainers();
process.stdout.write('[notelett-backend] Cosmos containers ensured\n');
} catch (err) {
const msg = err instanceof Error ? err.message : String(err);
process.stderr.write(`[notelett-backend] Cosmos init failed: ${msg}\n`);
}
}