- 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.
31 lines
1.1 KiB
TypeScript
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`);
|
|
}
|
|
}
|