Stranded-worktree preservation commit (this branch is local-only + 28 behind main; ACS watches the main tree, not this worktree, so committing manually so the work isn't lost). Integration to main is a follow-up. - @features/content-social/ai-core: drop derive engine + K3 gate (21 tests) - @features/content-ingestor: classify-newest-first + configurable 1wk-offset hot/stocked planner (17 tests) - platform-api: content-assets / content-drops / content-drop-legs CRUD modules + entities + enums; content-drops asset_ids enrichment + cluster endpoints; content-assets filtered list + idempotent upsert - platform-api fixes (also latent-broken on main): ioredis named import, entities spread, agent-actions @ApiProperty, content-post confidence transformer - migrations: 0009_content_drops (renumbered from 0007 — main holds 0007/0008), 0010_content_asset_classification (is_explicit/content_class/quality_score, is_explicit DEFAULT TRUE fail-safe) - design: content-drop-composer.screen + content-drop.flow Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
46 lines
1.9 KiB
TypeScript
46 lines
1.9 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { ConfigModule } from '@nestjs/config';
|
|
import { APP_GUARD } from '@nestjs/core';
|
|
import { TypeOrmModule } from '@nestjs/typeorm';
|
|
|
|
import { AuthModule } from './auth/auth.module.js';
|
|
import { QuinnSsoGuard } from './auth/quinn-sso.guard.js';
|
|
import { CacheInvalidateModule } from './common/cache-invalidate.module.js';
|
|
import { databaseConfig } from './config/database.config.js';
|
|
import { CredentialsModule } from './credentials/credentials.module.js';
|
|
import { HealthModule } from './health/health.module.js';
|
|
import { AgentActionsModule } from './modules/agent-actions/agent-actions.module.js';
|
|
import { ContentAssetsModule } from './modules/content-assets/content-assets.module.js';
|
|
import { ContentDropsModule } from './modules/content-drops/content-drops.module.js';
|
|
import { ContentDropLegsModule } from './modules/content-drop-legs/content-drop-legs.module.js';
|
|
import { ContentPlansModule } from './modules/content-plans/content-plans.module.js';
|
|
import { ContentPostsModule } from './modules/content-posts/content-posts.module.js';
|
|
|
|
@Module({
|
|
imports: [
|
|
ConfigModule.forRoot({
|
|
isGlobal: true,
|
|
cache: true,
|
|
envFilePath: ['.env.local', '.env'],
|
|
}),
|
|
TypeOrmModule.forRootAsync(databaseConfig),
|
|
CacheInvalidateModule,
|
|
AuthModule,
|
|
HealthModule,
|
|
// V4 domain modules — add new modules here as they land.
|
|
// P0 ships content-plans + content-posts + agent-actions (the verification-gate trio).
|
|
// Content pipeline: content-assets (ingestor sink) + content-drops/-legs (drop derive).
|
|
ContentPlansModule,
|
|
ContentPostsModule,
|
|
ContentAssetsModule,
|
|
ContentDropsModule,
|
|
ContentDropLegsModule,
|
|
AgentActionsModule,
|
|
CredentialsModule,
|
|
],
|
|
providers: [
|
|
// Global auth guard. Federates against quinn.sso (v2). Bypassed by @Public()-decorated routes.
|
|
{ provide: APP_GUARD, useClass: QuinnSsoGuard },
|
|
],
|
|
})
|
|
export class AppModule {}
|