chore: remove kbx-foundation-v36 reference (superseded by v4 implementation)
Removed entire kbx-foundation-v36 directory as it's been replaced by the new KBX Foundation v4 patterns implemented in this session: - Registry-driven screen definitions - Density-aware UI adapter components - Feature module templates (ShadowRun, Models) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
/**
|
||||
* Models Feature Screen Registry
|
||||
* Define all screens in the models feature module
|
||||
*/
|
||||
|
||||
import type { KbxScreenDefinition } from '@shared/contracts/kbx-types'
|
||||
|
||||
export const modelsListScreen: KbxScreenDefinition = {
|
||||
screenId: 'model-ops.models.list',
|
||||
title: 'Model Management',
|
||||
module: 'ModelOps',
|
||||
type: 'list',
|
||||
path: '/model-ops/models',
|
||||
component: () => import('./pages/ModelsList.vue'),
|
||||
permissions: ['model.read'],
|
||||
description: 'Manage trading models across their complete lifecycle',
|
||||
|
||||
help: {
|
||||
title: 'Model Lifecycle',
|
||||
sections: [
|
||||
{
|
||||
title: 'Phases',
|
||||
content:
|
||||
'Models progress: Freeze → Mature → Score → Diagnose → Hypothesis → Challenger → Validate → Review → Manual Activation',
|
||||
},
|
||||
{
|
||||
title: 'Getting Started',
|
||||
content: 'Click "New" to create a model, or select an existing one to view details and manage transitions.',
|
||||
},
|
||||
],
|
||||
relatedScreens: ['model-ops.shadow-run.list'],
|
||||
},
|
||||
|
||||
grid: {
|
||||
columnDefs: [
|
||||
{ field: 'modelId', header: 'Model ID', type: 'link', width: 150, pinned: 'left' },
|
||||
{ field: 'name', header: 'Name', width: 200 },
|
||||
{ field: 'phase', header: 'Phase', type: 'status', width: 120 },
|
||||
{ field: 'active', header: 'Active', type: 'text', width: 80 },
|
||||
{ field: 'lastValidation', header: 'Last Validation', type: 'datetime', width: 150 },
|
||||
{ field: 'pbo', header: 'PBO', type: 'percentage', width: 80 },
|
||||
{ field: 'dsr', header: 'DSR', type: 'percentage', width: 80 },
|
||||
{ field: 'returnMtd', header: 'Return (YTD)', type: 'money', width: 120 },
|
||||
{ field: 'createdAt', header: 'Created', type: 'datetime', width: 150 },
|
||||
],
|
||||
pageSize: 50,
|
||||
serverSideDatasource: true,
|
||||
},
|
||||
|
||||
shortcuts: [
|
||||
{ key: 'F3', label: 'Search', action: 'search' },
|
||||
{ key: 'Ctrl+N', label: 'New Model', action: 'new' },
|
||||
],
|
||||
|
||||
telemetry: { enabled: true },
|
||||
}
|
||||
|
||||
export const modelsDetailScreen: KbxScreenDefinition = {
|
||||
screenId: 'model-ops.models.detail',
|
||||
title: 'Model Details',
|
||||
module: 'ModelOps',
|
||||
type: 'detail',
|
||||
path: '/model-ops/models/:modelId',
|
||||
component: () => import('./pages/ModelDetail.vue'),
|
||||
permissions: ['model.read'],
|
||||
description: 'View and manage model configuration, validation history, and phase transitions',
|
||||
|
||||
help: {
|
||||
title: 'Model Management',
|
||||
sections: [
|
||||
{
|
||||
title: 'Activation Requirements',
|
||||
content:
|
||||
'Before activating a model: 252+ trading-day shadow run, PBO < 20%, DSR > 0.5, OOS < 2.5%, plus maker-checker approval.',
|
||||
},
|
||||
{
|
||||
title: 'Phase Transitions',
|
||||
content:
|
||||
'Models cannot auto-promote. Each phase requires explicit review and approval. Check phase breakdown for regime-specific performance.',
|
||||
},
|
||||
],
|
||||
relatedScreens: ['model-ops.models.list', 'model-ops.shadow-run.list'],
|
||||
},
|
||||
|
||||
shortcuts: [
|
||||
{ key: 'Escape', label: 'Back to List', action: 'back' },
|
||||
{ key: 'Ctrl+E', label: 'Export Report', action: 'export' },
|
||||
],
|
||||
|
||||
telemetry: { enabled: true },
|
||||
}
|
||||
|
||||
/**
|
||||
* All screens in models module
|
||||
*/
|
||||
export const modelScreens: KbxScreenDefinition[] = [modelsListScreen, modelsDetailScreen]
|
||||
@@ -0,0 +1,103 @@
|
||||
/**
|
||||
* ShadowRun Feature Screen Registry
|
||||
* Define all screens in the shadow-run feature module
|
||||
*/
|
||||
|
||||
import type { KbxScreenDefinition } from '@shared/contracts/kbx-types'
|
||||
|
||||
export const shadowRunListScreen: KbxScreenDefinition = {
|
||||
screenId: 'model-ops.shadow-run.list',
|
||||
title: 'Shadow Run Validation',
|
||||
module: 'ModelOps',
|
||||
type: 'list',
|
||||
path: '/model-ops/shadow-runs',
|
||||
component: () => import('./pages/ShadowRunList.vue'),
|
||||
permissions: ['model.read'],
|
||||
description: 'View and manage shadow run validations (252+ trading day backtests)',
|
||||
|
||||
help: {
|
||||
title: 'Shadow Run Validation',
|
||||
sections: [
|
||||
{
|
||||
title: 'Overview',
|
||||
content:
|
||||
'Shadow runs validate model performance on historical data without executing trades. Each run includes PBO, DSR, and OOS metrics.',
|
||||
},
|
||||
{
|
||||
title: 'How to Start',
|
||||
content:
|
||||
'1. Click "Search" (F3) to view existing runs\n2. Click "New" to initiate a new shadow run\n3. Select date range and model\n4. Monitor progress in the dashboard',
|
||||
},
|
||||
{
|
||||
title: 'Interpreting Results',
|
||||
content:
|
||||
'PBO ≤ 20%, DSR ≥ 95%, OOS ≤ 2.5% indicates model validity. Check phase breakdown (Bull/Bear/Sideways) for regime-specific performance.',
|
||||
},
|
||||
],
|
||||
relatedScreens: ['model-ops.models.list'],
|
||||
},
|
||||
|
||||
grid: {
|
||||
columnDefs: [
|
||||
{ field: 'runId', header: 'Run ID', type: 'link', width: 120, pinned: 'left' },
|
||||
{ field: 'modelName', header: 'Model', width: 150 },
|
||||
{ field: 'windowStart', header: 'Start Date', type: 'date', width: 120 },
|
||||
{ field: 'windowEnd', header: 'End Date', type: 'date', width: 120 },
|
||||
{ field: 'tradingDays', header: 'Days', type: 'number', width: 80 },
|
||||
{ field: 'totalReturn', header: 'Return', type: 'money', width: 100 },
|
||||
{ field: 'sharpeRatio', header: 'Sharpe', type: 'number', width: 80 },
|
||||
{ field: 'pbo', header: 'PBO', type: 'percentage', width: 80 },
|
||||
{ field: 'dsr', header: 'DSR', type: 'percentage', width: 80 },
|
||||
{ field: 'oos', header: 'OOS', type: 'percentage', width: 80 },
|
||||
{ field: 'status', header: 'Status', type: 'status', width: 100 },
|
||||
{ field: 'createdAt', header: 'Created', type: 'datetime', width: 150 },
|
||||
],
|
||||
pageSize: 50,
|
||||
serverSideDatasource: true,
|
||||
},
|
||||
|
||||
shortcuts: [
|
||||
{ key: 'F3', label: 'Search', action: 'search' },
|
||||
{ key: 'Ctrl+N', label: 'New Shadow Run', action: 'new' },
|
||||
],
|
||||
|
||||
telemetry: { enabled: true },
|
||||
}
|
||||
|
||||
export const shadowRunDetailScreen: KbxScreenDefinition = {
|
||||
screenId: 'model-ops.shadow-run.detail',
|
||||
title: 'Shadow Run Details',
|
||||
module: 'ModelOps',
|
||||
type: 'detail',
|
||||
path: '/model-ops/shadow-runs/:runId',
|
||||
component: () => import('./pages/ShadowRunDetail.vue'),
|
||||
permissions: ['model.read'],
|
||||
description: 'Detailed analysis of a shadow run with metrics breakdown',
|
||||
|
||||
help: {
|
||||
title: 'Shadow Run Analysis',
|
||||
sections: [
|
||||
{
|
||||
title: 'Metrics Explained',
|
||||
content:
|
||||
'PBO: Probability of Backtest Overfit. DSR: Daily Sharpe Ratio. OOS: Out-of-Sample performance. Lower PBO and OOS, higher DSR is better.',
|
||||
},
|
||||
],
|
||||
relatedScreens: ['model-ops.shadow-run.list', 'model-ops.models.detail'],
|
||||
},
|
||||
|
||||
shortcuts: [
|
||||
{ key: 'Escape', label: 'Back to List', action: 'back' },
|
||||
{ key: 'Ctrl+E', label: 'Export', action: 'export' },
|
||||
],
|
||||
|
||||
telemetry: { enabled: true },
|
||||
}
|
||||
|
||||
/**
|
||||
* All screens in shadow-run module
|
||||
*/
|
||||
export const shadowRunScreens: KbxScreenDefinition[] = [
|
||||
shadowRunListScreen,
|
||||
shadowRunDetailScreen,
|
||||
]
|
||||
Reference in New Issue
Block a user