spine-framework 0.3.124 → 0.3.126
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.framework/cli/commands/agents.ts +35 -37
- package/.framework/cli/commands/auth.ts +35 -34
- package/.framework/cli/commands/create-app.ts +104 -40
- package/.framework/cli/commands/dev.ts +104 -69
- package/.framework/cli/commands/doctor.ts +179 -69
- package/.framework/cli/commands/generate.ts +83 -143
- package/.framework/cli/commands/init.ts +72 -34
- package/.framework/cli/commands/install-app.ts +260 -125
- package/.framework/cli/commands/items.ts +33 -44
- package/.framework/cli/commands/migrate.ts +122 -40
- package/.framework/cli/commands/migrations.ts +33 -40
- package/.framework/cli/commands/pipelines.ts +31 -39
- package/.framework/cli/commands/status.ts +47 -23
- package/.framework/cli/commands/system.ts +47 -37
- package/.framework/cli/commands/test.ts +112 -68
- package/.framework/cli/commands/validate-app.ts +215 -121
- package/.framework/cli/context.ts +112 -130
- package/.framework/cli/env-loader.ts +47 -18
- package/.framework/cli/index.ts +81 -42
- package/.framework/docs/runtime-types.md +1024 -0
- package/.framework/functions/_shared/agent-runner.ts +1296 -961
- package/.framework/functions/_shared/app-manifest.ts +82 -68
- package/.framework/functions/_shared/audit.ts +135 -83
- package/.framework/functions/_shared/{cil-state.ts → cil.ts} +158 -56
- package/.framework/functions/_shared/db.ts +80 -126
- package/.framework/functions/_shared/hash-api-key.ts +63 -0
- package/.framework/functions/_shared/index.ts +224 -335
- package/.framework/functions/_shared/kb.ts +319 -0
- package/.framework/functions/_shared/llm.ts +92 -0
- package/.framework/functions/_shared/logging.ts +288 -0
- package/.framework/functions/_shared/middleware.ts +329 -365
- package/.framework/functions/_shared/outcomes.ts +36 -0
- package/.framework/functions/_shared/permissions.ts +359 -643
- package/.framework/functions/_shared/pipeline-runner.ts +243 -316
- package/.framework/functions/_shared/principal.ts +376 -468
- package/.framework/functions/_shared/resolve-credentials.ts +102 -0
- package/.framework/functions/_shared/resolve-ids.ts +188 -16
- package/.framework/functions/_shared/retry-deliveries.ts +104 -0
- package/.framework/functions/_shared/schema-utils.ts +611 -373
- package/.framework/functions/_shared/testing.ts +207 -137
- package/.framework/functions/_shared/tracing.ts +276 -0
- package/.framework/functions/_shared/trigger-engine.ts +159 -211
- package/.framework/functions/_shared/webhook-registration.ts +95 -81
- package/.framework/functions/_shared/webhook-registry.ts +153 -75
- package/.framework/functions/account-nodes.ts +31 -53
- package/.framework/functions/adapters/generic-webhook-inbound.ts +56 -0
- package/.framework/functions/adapters/generic-webhook-outbound.ts +43 -0
- package/.framework/functions/adapters/openai-outbound.ts +40 -0
- package/.framework/functions/admin-data.ts +685 -537
- package/.framework/functions/admin-funnel.ts +31 -20
- package/.framework/functions/admin-install-funnel.ts +47 -28
- package/.framework/functions/admin-signals.ts +47 -29
- package/.framework/functions/ai-agents.ts +122 -147
- package/.framework/functions/ai-interactions.ts +180 -90
- package/.framework/functions/api-keys.ts +250 -192
- package/.framework/functions/apps.ts +203 -197
- package/.framework/functions/auth.ts +98 -91
- package/.framework/functions/cil-agent-ingest.ts +773 -0
- package/.framework/functions/cil-agent.ts +592 -0
- package/.framework/functions/cil-callmap.ts +1227 -0
- package/.framework/functions/cil-config.ts +583 -0
- package/.framework/functions/cil-context.ts +445 -0
- package/.framework/functions/cil-doc.ts +1752 -0
- package/.framework/functions/cil-embeddings.ts +1202 -0
- package/.framework/functions/cil-graph.ts +585 -0
- package/.framework/functions/cil-ingest.ts +2416 -0
- package/.framework/functions/cil-pipeline.ts +318 -0
- package/.framework/functions/cil-project.ts +499 -0
- package/.framework/functions/cil-validate.ts +469 -0
- package/.framework/functions/debug-auth.ts +73 -53
- package/.framework/functions/deliveries.ts +117 -0
- package/.framework/functions/embeddings.ts +528 -516
- package/.framework/functions/eval-harness.ts +158 -106
- package/.framework/functions/integration-outbound.ts +311 -0
- package/.framework/functions/integration-routes.ts +240 -466
- package/.framework/functions/integrations.ts +132 -140
- package/.framework/functions/invites.ts +401 -201
- package/.framework/functions/item-progress.ts +113 -53
- package/.framework/functions/kb.ts +28 -0
- package/.framework/functions/logs.ts +239 -222
- package/.framework/functions/observability.ts +308 -259
- package/.framework/functions/pipeline-executions.ts +179 -235
- package/.framework/functions/pipelines.ts +163 -205
- package/.framework/functions/prompt-configs.ts +109 -156
- package/.framework/functions/roles.ts +97 -147
- package/.framework/functions/system-cron.ts +132 -218
- package/.framework/functions/system.ts +112 -52
- package/.framework/functions/tests.ts +32 -28
- package/.framework/functions/timers.ts +162 -210
- package/.framework/functions/triggers.ts +282 -346
- package/.framework/functions/types.ts +283 -400
- package/.framework/migrations/001_core_schema.sql +630 -0
- package/.framework/migrations/002_core_rls_and_functions.sql +532 -0
- package/.framework/migrations/{003_system_data.sql → 003_core_system_data.sql} +26 -153
- package/.framework/migrations/004_core_rpc_and_broker.sql +421 -0
- package/.framework/migrations/005_core_observability.sql +598 -0
- package/.framework/migrations/006_security_hardening_rls.sql +97 -0
- package/.framework/migrations/007_kb_article_list.sql +237 -0
- package/.framework/migrations/008_items_target.sql +8 -0
- package/.framework/migrations/009_roles_slug_unique.sql +11 -0
- package/.framework/public/spine.config.json +91 -0
- package/.framework/scripts/app-install-cli.ts +112 -98
- package/.framework/src/App.tsx +67 -20
- package/.framework/src/apps/admin/index.tsx +97 -27
- package/.framework/src/components/AppWrapper.tsx +50 -11
- package/.framework/src/components/CustomAppLoader.tsx +131 -22
- package/.framework/src/components/admin/AdminListPage.tsx +75 -8
- package/.framework/src/components/admin/AdminSidebar.tsx +148 -36
- package/.framework/src/components/admin/AdminStatsCard.tsx +48 -29
- package/.framework/src/components/admin/PageInstructions.tsx +49 -0
- package/.framework/src/components/admin/SortableTableHeader.tsx +49 -2
- package/.framework/src/components/app-shell/GenericAppShell.tsx +69 -11
- package/.framework/src/components/app-shell/GenericDetailPage.tsx +55 -10
- package/.framework/src/components/app-shell/GenericListPage.tsx +76 -9
- package/.framework/src/components/app-sidebar.tsx +50 -3
- package/.framework/src/components/auth/ProtectedRoute.tsx +53 -45
- package/.framework/src/components/kb/KBArticleEditor.tsx +409 -0
- package/.framework/src/components/kb/KBArticleList.tsx +557 -0
- package/.framework/src/components/layout/AppShell.tsx +54 -16
- package/.framework/src/components/layout/Header.tsx +50 -38
- package/.framework/src/components/layout/Layout.tsx +48 -32
- package/.framework/src/components/layout/Sidebar.tsx +167 -16
- package/.framework/src/components/runtime/DataDetailHeader.tsx +33 -1
- package/.framework/src/components/runtime/DataDetailPage.tsx +289 -4
- package/.framework/src/components/runtime/DataFilters.tsx +78 -1
- package/.framework/src/components/runtime/DataHeader.tsx +32 -29
- package/.framework/src/components/runtime/DataListPage.tsx +161 -2
- package/.framework/src/components/runtime/DataStats.tsx +48 -1
- package/.framework/src/components/runtime/DataTable.tsx +153 -1
- package/.framework/src/components/runtime/SchemaDetailForm.tsx +77 -46
- package/.framework/src/components/runtime/index.ts +16 -9
- package/.framework/src/components/search-form.tsx +33 -1
- package/.framework/src/components/shared/AgentView.tsx +48 -51
- package/.framework/src/components/shared/FieldRenderer.tsx +84 -67
- package/.framework/src/components/shared/InviteManager.tsx +113 -52
- package/.framework/src/components/shared/MemberList.tsx +182 -0
- package/.framework/src/components/shared/SchemaFields.tsx +96 -78
- package/.framework/src/components/ui/DataTable.tsx +86 -56
- package/.framework/src/components/ui/Form.tsx +188 -109
- package/.framework/src/components/ui/ItemCard.tsx +86 -58
- package/.framework/src/components/ui/ItemListView.tsx +88 -61
- package/.framework/src/components/ui/LoadingSpinner.tsx +52 -27
- package/.framework/src/components/ui/Modal.tsx +81 -4
- package/.framework/src/components/ui/RichTextEditor.tsx +101 -9
- package/.framework/src/components/ui/accordion.tsx +97 -5
- package/.framework/src/components/ui/alert-dialog.tsx +225 -13
- package/.framework/src/components/ui/alert.tsx +113 -6
- package/.framework/src/components/ui/aspect-ratio.tsx +49 -2
- package/.framework/src/components/ui/avatar.tsx +129 -7
- package/.framework/src/components/ui/badge.tsx +65 -3
- package/.framework/src/components/ui/breadcrumb.tsx +145 -8
- package/.framework/src/components/ui/button-group.tsx +81 -4
- package/.framework/src/components/ui/button.tsx +49 -2
- package/.framework/src/components/ui/calendar.tsx +65 -3
- package/.framework/src/components/ui/card.tsx +145 -8
- package/.framework/src/components/ui/carousel.tsx +129 -7
- package/.framework/src/components/ui/chart.tsx +161 -10
- package/.framework/src/components/ui/checkbox.tsx +49 -2
- package/.framework/src/components/ui/collapsible.tsx +81 -5
- package/.framework/src/components/ui/combobox.tsx +305 -20
- package/.framework/src/components/ui/command.tsx +177 -11
- package/.framework/src/components/ui/context-menu.tsx +273 -17
- package/.framework/src/components/ui/dialog.tsx +209 -27
- package/.framework/src/components/ui/direction.tsx +64 -4
- package/.framework/src/components/ui/drawer.tsx +193 -12
- package/.framework/src/components/ui/dropdown-menu.tsx +273 -18
- package/.framework/src/components/ui/empty.tsx +145 -9
- package/.framework/src/components/ui/field.tsx +209 -14
- package/.framework/src/components/ui/hover-card.tsx +81 -4
- package/.framework/src/components/ui/input-group.tsx +162 -10
- package/.framework/src/components/ui/input-otp.tsx +98 -5
- package/.framework/src/components/ui/input.tsx +49 -2
- package/.framework/src/components/ui/item.tsx +225 -13
- package/.framework/src/components/ui/kbd.tsx +65 -3
- package/.framework/src/components/ui/label.tsx +49 -2
- package/.framework/src/components/ui/menubar.tsx +289 -17
- package/.framework/src/components/ui/native-select.tsx +97 -5
- package/.framework/src/components/ui/navigation-menu.tsx +177 -10
- package/.framework/src/components/ui/pagination.tsx +161 -9
- package/.framework/src/components/ui/popover.tsx +145 -8
- package/.framework/src/components/ui/progress.tsx +49 -2
- package/.framework/src/components/ui/radio-group.tsx +65 -3
- package/.framework/src/components/ui/resizable.tsx +82 -4
- package/.framework/src/components/ui/scroll-area.tsx +65 -3
- package/.framework/src/components/ui/select.tsx +193 -11
- package/.framework/src/components/ui/separator.tsx +49 -2
- package/.framework/src/components/ui/sheet.tsx +193 -11
- package/.framework/src/components/ui/sidebar.tsx +481 -38
- package/.framework/src/components/ui/skeleton.tsx +49 -2
- package/.framework/src/components/ui/slider.tsx +49 -2
- package/.framework/src/components/ui/sonner.tsx +49 -2
- package/.framework/src/components/ui/spinner.tsx +49 -2
- package/.framework/src/components/ui/switch.tsx +49 -2
- package/.framework/src/components/ui/table-primitives.tsx +160 -33
- package/.framework/src/components/ui/table.tsx +161 -9
- package/.framework/src/components/ui/tabs.tsx +113 -6
- package/.framework/src/components/ui/textarea.tsx +49 -2
- package/.framework/src/components/ui/toggle-group.tsx +81 -4
- package/.framework/src/components/ui/toggle.tsx +65 -3
- package/.framework/src/components/ui/tooltip.tsx +97 -5
- package/.framework/src/contexts/AppContext.tsx +129 -45
- package/.framework/src/contexts/AuthContext.tsx +187 -144
- package/.framework/src/hooks/use-mobile.ts +48 -2
- package/.framework/src/hooks/useApi.ts +208 -159
- package/.framework/src/hooks/useAppPath.ts +32 -23
- package/.framework/src/hooks/useApps.ts +51 -20
- package/.framework/src/hooks/useEntityList.ts +32 -78
- package/.framework/src/hooks/useEntityRecord.ts +35 -96
- package/.framework/src/hooks/useForm.ts +32 -92
- package/.framework/src/hooks/useListSchema.ts +49 -78
- package/.framework/src/hooks/useSchemaRecord.ts +114 -105
- package/.framework/src/lib/api.ts +195 -116
- package/.framework/src/lib/supabase.ts +98 -64
- package/.framework/src/lib/utils.ts +287 -151
- package/.framework/src/main.tsx +49 -3
- package/.framework/src/pages/DashboardPage.tsx +52 -29
- package/.framework/src/pages/NotFoundPage.tsx +32 -10
- package/.framework/src/pages/SetupPage.tsx +32 -12
- package/.framework/src/pages/admin/AIAgentDetailPage.tsx +119 -10
- package/.framework/src/pages/admin/AIAgentsPage.tsx +48 -19
- package/.framework/src/pages/admin/APIKeyDetailPage.tsx +187 -17
- package/.framework/src/pages/admin/APIKeysPage.tsx +98 -22
- package/.framework/src/pages/admin/AlertsConfigPage.tsx +113 -26
- package/.framework/src/pages/admin/AppDetailPage.tsx +125 -8
- package/.framework/src/pages/admin/AppsPage.tsx +49 -2
- package/.framework/src/pages/admin/DeliveriesPage.tsx +196 -0
- package/.framework/src/pages/admin/DesignedPage.tsx +32 -18
- package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +215 -484
- package/.framework/src/pages/admin/EmbeddingsPage.tsx +116 -319
- package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +34 -9
- package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +34 -9
- package/.framework/src/pages/admin/IntegratedDashboard.tsx +32 -16
- package/.framework/src/pages/admin/IntegrationDetailPage.tsx +183 -26
- package/.framework/src/pages/admin/IntegrationsPage.tsx +48 -19
- package/.framework/src/pages/admin/InvitesPage.tsx +48 -14
- package/.framework/src/pages/admin/LogsPage.tsx +422 -75
- package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +34 -9
- package/.framework/src/pages/admin/ObservabilityDashboard.tsx +113 -24
- package/.framework/src/pages/admin/PipelineDetailPage.tsx +206 -34
- package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +50 -17
- package/.framework/src/pages/admin/PipelinesPage.tsx +160 -21
- package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +378 -88
- package/.framework/src/pages/admin/PromptConfigsPage.tsx +125 -16
- package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +49 -10
- package/.framework/src/pages/admin/RoleDetailPage.tsx +130 -10
- package/.framework/src/pages/admin/RolesPage.tsx +171 -18
- package/.framework/src/pages/admin/SelectTestPage.tsx +34 -9
- package/.framework/src/pages/admin/ShadcnTestPage.tsx +49 -11
- package/.framework/src/pages/admin/SimpleDashboard.tsx +49 -10
- package/.framework/src/pages/admin/TestRunDetailPage.tsx +49 -4
- package/.framework/src/pages/admin/TestingDashboard.tsx +98 -28
- package/.framework/src/pages/admin/TimerDetailPage.tsx +143 -33
- package/.framework/src/pages/admin/TimersPage.tsx +48 -20
- package/.framework/src/pages/admin/TriggerDetailPage.tsx +118 -30
- package/.framework/src/pages/admin/TriggersPage.tsx +64 -19
- package/.framework/src/pages/admin/TypeDetailPage.tsx +138 -15
- package/.framework/src/pages/admin/TypesPage.tsx +48 -20
- package/.framework/src/pages/admin/cil/CILAgentPage.tsx +465 -0
- package/.framework/src/pages/admin/cil/CILChunkDetailPage.tsx +787 -0
- package/.framework/src/pages/admin/cil/CILDashboardPage.tsx +699 -0
- package/.framework/src/pages/admin/cil/CILFileListPage.tsx +647 -0
- package/.framework/src/pages/admin/cil/CILGraphPage.tsx +616 -0
- package/.framework/src/pages/admin/cil/CILIngestionPage.tsx +1402 -0
- package/.framework/src/pages/admin/cil/CILProjectsPage.tsx +614 -0
- package/.framework/src/pages/admin/cil/CILSearchPage.tsx +571 -0
- package/.framework/src/pages/admin/cil/FlexiblePipelinePage.tsx +731 -0
- package/.framework/src/pages/admin/kb/KBAdminPage.tsx +64 -0
- package/.framework/src/pages/auth/AuthConfirmPage.tsx +52 -51
- package/.framework/src/pages/auth/ForgotPasswordPage.tsx +31 -22
- package/.framework/src/pages/auth/LoginPage.tsx +50 -23
- package/.framework/src/pages/auth/PendingApprovalPage.tsx +31 -15
- package/.framework/src/pages/auth/RegisterPage.tsx +281 -317
- package/.framework/src/pages/spine-framework/APIPage.tsx +33 -0
- package/.framework/src/pages/spine-framework/CLIPage.tsx +33 -0
- package/.framework/src/types/auth.ts +128 -71
- package/.framework/src/types/types.ts +373 -157
- package/custom/.devin/skills/spine-workbench-discovery/SKILL.md +39 -0
- package/custom/.devin/skills/spine-workbench-idea/SKILL.md +36 -0
- package/custom/.devin/skills/spine-workbench-implement/SKILL.md +46 -0
- package/custom/.devin/skills/spine-workbench-initiative/SKILL.md +28 -0
- package/custom/.devin/skills/spine-workbench-plan/SKILL.md +38 -0
- package/docs/README.md +9 -130
- package/netlify.toml +5 -2
- package/package.json +13 -25
- package/scripts/kb-ingest-docs.ts +203 -0
- package/spine.config.json +65 -4
- package/.framework/migrations/001_schema.sql +0 -425
- package/.framework/migrations/002_rls_and_functions.sql +0 -763
- package/.framework/migrations/004_enhancements.sql +0 -43
- package/.framework/migrations/005_auth_user_trigger.sql +0 -105
- package/.framework/migrations/006_fix_current_actor_id.sql +0 -21
- package/.framework/migrations/016_invites.sql +0 -27
- package/.framework/migrations/017_fix_get_account_apps.sql +0 -78
- package/.framework/migrations/018_apps_required_roles.sql +0 -17
- package/.framework/migrations/019_triggers_unique_constraint.sql +0 -13
- package/.framework/migrations/020_get_account_apps_role_filter.sql +0 -117
- package/.framework/migrations/021_app_domains.sql +0 -112
- package/.framework/migrations/022_route_prefix_domain_unique.sql +0 -21
- package/.framework/migrations/023_match_embeddings_rpc.sql +0 -78
- package/.framework/migrations/024_messages_account_id.sql +0 -9
- package/.framework/migrations/025_retype_threads_messages.sql +0 -240
- package/.framework/migrations/026_fix_rls_policies.sql +0 -47
- package/.framework/migrations/027_embedding_lifecycle.sql +0 -176
- package/.framework/migrations/028_fix_message_data_permissions.sql +0 -49
- package/.framework/migrations/029_tighten_support_triage_prompt.sql +0 -41
- package/.framework/migrations/030_messages_updated_by.sql +0 -6
- package/.framework/migrations/031_seed_upsert_constraints.sql +0 -35
- package/docs/APPS.md +0 -232
- package/docs/ARCHITECTURE.md +0 -246
- package/docs/INSTALL.md +0 -155
- package/docs/design-schema-spec.md +0 -1837
- package/docs/dev-guides/01-create-an-app.md +0 -183
- package/docs/dev-guides/02-create-a-function.md +0 -178
- package/docs/dev-guides/03-create-a-component.md +0 -178
- package/docs/dev-guides/04-webhook-handlers.md +0 -129
- package/docs/dev-guides/05-testing.md +0 -168
- package/docs/dev-guides/README.md +0 -40
- package/docs/npm-packages-plan.md +0 -288
- package/docs/spine-core--api-reference.md +0 -822
|
@@ -1,17 +1,41 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module src/pages/admin/MinimalShadcnTestPage
|
|
3
|
-
* @audience installer
|
|
4
|
-
* @layer frontend-page
|
|
5
|
-
* @stability testing
|
|
6
|
-
*
|
|
7
|
-
* Minimal test page with basic shadcn components to isolate import issues.
|
|
8
|
-
*/
|
|
9
1
|
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
// CIL[BEGIN chunk_id="minimalshadcntestpage_module_header_1783666257" type="module_header" identity="imports" parent="none"]
|
|
6
|
+
// CIL[DOC-MACRO purpose="Import React dependencies and UI components"]
|
|
7
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Import all required modules for MinimalShadcnTestPage component"]
|
|
8
|
+
// CIL[DOC-CONTEXT module="MinimalShadcnTestPage" layer="ui" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
|
|
9
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="React hooks, UI components" errors="Import errors" side_effects="Module loading"]
|
|
10
|
+
// CIL[DOC-MICRO logic_summary="Imports React and basic shadcn UI components for testing" notable_decisions="[]"]
|
|
11
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
12
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
13
|
+
// CIL[DOC-AUDIENCE audience="developer"]
|
|
14
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, \."]
|
|
15
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
16
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
17
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
18
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
19
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
10
20
|
import { useState } from 'react'
|
|
11
21
|
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '../../components/ui/card'
|
|
12
22
|
import { Button } from '../../components/ui/button'
|
|
13
23
|
import { Badge } from '../../components/ui/badge'
|
|
14
|
-
|
|
24
|
+
// CIL[END chunk_id="minimalshadcntestpage_module_header_1783666257"]
|
|
25
|
+
// CIL[BEGIN chunk_id="minimalshadcntestpage_function_minimalshadcntestpage_1783666257" type="function" identity="MinimalShadcnTestPage" parent="none"]
|
|
26
|
+
// CIL[DOC-MACRO purpose="Main MinimalShadcnTestPage component function"]
|
|
27
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Render test interface for shadcn UI components"]
|
|
28
|
+
// CIL[DOC-CONTEXT module="MinimalShadcnTestPage" layer="ui" related_files="[\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\"\\\"]"]
|
|
29
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="JSX element" errors="Render errors" side_effects="State updates"]
|
|
30
|
+
// CIL[DOC-MICRO logic_summary="Test component that demonstrates basic shadcn components functionality" notable_decisions="[]"]
|
|
31
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
32
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
33
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/src/components/ui/table-primitives.tsx, custom/apps/cortex/functions/custom_cil-embeddings.ts, custom/apps/portal/pages/ContentPage.tsx, \."]
|
|
34
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
35
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
36
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
37
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
38
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
15
39
|
export function MinimalShadcnTestPage() {
|
|
16
40
|
const [count, setCount] = useState(0)
|
|
17
41
|
|
|
@@ -83,3 +107,4 @@ export function MinimalShadcnTestPage() {
|
|
|
83
107
|
</div>
|
|
84
108
|
)
|
|
85
109
|
}
|
|
110
|
+
// CIL[END chunk_id="minimalshadcntestpage_function_minimalshadcntestpage_1783666257"]
|
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module src/pages/admin/ObservabilityDashboard
|
|
3
|
-
* @audience installer
|
|
4
|
-
* @layer frontend-page
|
|
5
|
-
* @stability stable
|
|
6
|
-
*
|
|
7
|
-
* System observability dashboard. Fetches aggregated metrics from
|
|
8
|
-
* `/api/admin-data?action=metrics` and renders time-series line charts,
|
|
9
|
-
* bar charts, and pie charts using `recharts`. Covers request rates,
|
|
10
|
-
* error rates, pipeline execution counts, and resource utilisation.
|
|
11
|
-
* Data is re-fetched on a configurable auto-refresh interval.
|
|
12
|
-
*
|
|
13
|
-
* @seeAlso src/pages/admin/LogsPage.tsx
|
|
14
|
-
* @seeAlso src/pages/admin/AlertsConfigPage.tsx
|
|
15
|
-
*/
|
|
16
1
|
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
// CIL[BEGIN chunk_id="observabilitydashboard_module_header_1783666257" type="module_header" identity="imports" parent="none"]
|
|
7
|
+
// CIL[DOC-MACRO purpose="Import React dependencies and chart libraries"]
|
|
8
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Import all required modules for ObservabilityDashboard component"]
|
|
9
|
+
// CIL[DOC-CONTEXT module="ObservabilityDashboard" layer="ui" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\"\\\"]"]
|
|
10
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="React hooks, chart components, utilities" errors="Import errors" side_effects="Module loading"]
|
|
11
|
+
// CIL[DOC-MICRO logic_summary="Imports React, Recharts components, icons, and utility functions" notable_decisions="[]"]
|
|
12
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
13
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
14
|
+
// CIL[DOC-AUDIENCE audience="developer"]
|
|
15
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/src/components/ui/dialog.tsx, \."]
|
|
16
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
17
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
18
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
19
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
20
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
17
21
|
import React, { useState, useEffect, useMemo } from 'react'
|
|
18
22
|
import {
|
|
19
23
|
LineChart,
|
|
@@ -36,7 +40,22 @@ import { useApi } from '../../hooks/useApi'
|
|
|
36
40
|
import { apiFetch } from '../../lib/api'
|
|
37
41
|
import { formatDateTime } from '../../lib/utils'
|
|
38
42
|
import { Link } from 'react-router-dom'
|
|
39
|
-
|
|
43
|
+
import { PageInstructions } from '../../components/admin/PageInstructions'
|
|
44
|
+
// CIL[END chunk_id="observabilitydashboard_module_header_1783666257"]
|
|
45
|
+
// CIL[BEGIN chunk_id="observabilitydashboard_interfaces_1783666257" type="interfaces" identity="MetricData" parent="none"]
|
|
46
|
+
// CIL[DOC-MACRO purpose="Define observability data structures"]
|
|
47
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Type definitions for dashboard metrics and events"]
|
|
48
|
+
// CIL[DOC-CONTEXT module="ObservabilityDashboard" layer="types" related_files="[\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/functions/_shared/principal.ts\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"\\\"]"]
|
|
49
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="interface definitions" errors="Type errors" side_effects="Type system"]
|
|
50
|
+
// CIL[DOC-MICRO logic_summary="Defines interfaces for metrics, errors, latency, pipelines, actors, and alerts" notable_decisions="[]"]
|
|
51
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
52
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
53
|
+
// CIL[DOC-VECTOR type="context" content="Layer: types. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/IntegrationsPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/functions/_shared/principal.ts, custom/apps/cortex/functions/custom_cil-embeddings.ts, \."]
|
|
54
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
55
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
56
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
57
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
58
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
40
59
|
interface MetricData {
|
|
41
60
|
bucket: string
|
|
42
61
|
count: number
|
|
@@ -76,7 +95,21 @@ interface AlertEvent {
|
|
|
76
95
|
}
|
|
77
96
|
|
|
78
97
|
const COLORS = ['#3b82f6', '#10b981', '#f59e0b', '#ef4444', '#8b5cf6']
|
|
79
|
-
|
|
98
|
+
// CIL[END chunk_id="observabilitydashboard_interfaces_1783666257"]
|
|
99
|
+
// CIL[BEGIN chunk_id="observabilitydashboard_function_observabilitydashboard_1783666257" type="function" identity="ObservabilityDashboard" parent="none"]
|
|
100
|
+
// CIL[DOC-MACRO purpose="Render the complete observability dashboard interface"]
|
|
101
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Main render logic for observability dashboard page"]
|
|
102
|
+
// CIL[DOC-CONTEXT module="ObservabilityDashboard" layer="ui" related_files="[\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/src/components/ui/table-primitives.tsx\"]"]
|
|
103
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="JSX structure" errors="Render errors" side_effects="DOM updates"]
|
|
104
|
+
// CIL[DOC-MICRO logic_summary="Renders header, stats cards, charts, and alerts sections" notable_decisions="[]"]
|
|
105
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
106
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
107
|
+
// CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/functions/_shared/schema-utils.ts, custom/apps/portal/pages/ContentPage.tsx, .framework/functions/_shared/principal.ts, .framework/src/components/ui/table-primitives.tsx."]
|
|
108
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
109
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
110
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
111
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
112
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
80
113
|
export function ObservabilityDashboard() {
|
|
81
114
|
const [timeRange, setTimeRange] = useState<'1h' | '24h' | '7d'>('24h')
|
|
82
115
|
const [refreshInterval, setRefreshInterval] = useState(30)
|
|
@@ -101,7 +134,21 @@ export function ObservabilityDashboard() {
|
|
|
101
134
|
}
|
|
102
135
|
}, [timeRange])
|
|
103
136
|
|
|
104
|
-
|
|
137
|
+
|
|
138
|
+
// CIL[BEGIN chunk_id="observabilitydashboard_hooks_1783666257" type="hooks" identity="useApi" parent="observabilitydashboard_function_observabilitydashboard_1783666257"]
|
|
139
|
+
// CIL[DOC-MACRO purpose="Fetch observability data from multiple API endpoints"]
|
|
140
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle useApi"]
|
|
141
|
+
// CIL[DOC-CONTEXT module="ObservabilityDashboard" layer="data" related_files="[\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"\\\"]"]
|
|
142
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="metrics data arrays" errors="API errors" side_effects="HTTP requests, auto-refresh"]
|
|
143
|
+
// CIL[DOC-MICRO logic_summary="Uses multiple useApi hooks to fetch various metrics with auto-refresh" notable_decisions="[]"]
|
|
144
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
145
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
146
|
+
// CIL[DOC-VECTOR type="context" content="Layer: data. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/IntegrationsPage.tsx, .framework/functions/_shared/schema-utils.ts, \."]
|
|
147
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
148
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
149
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
150
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
151
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
105
152
|
const { data: eventVolume, loading: loadingVolume, refetch: refetchVolume } = useApi<MetricData[]>(
|
|
106
153
|
async () => {
|
|
107
154
|
const bucket = timeRange === '1h' ? 'minute' : timeRange === '24h' ? 'hour' : 'day'
|
|
@@ -123,7 +170,7 @@ export function ObservabilityDashboard() {
|
|
|
123
170
|
{ immediate: true, deps: [timeRange] }
|
|
124
171
|
)
|
|
125
172
|
|
|
126
|
-
|
|
173
|
+
|
|
127
174
|
const { data: errorRate, loading: loadingError, refetch: refetchError } = useApi<ErrorRateData>(
|
|
128
175
|
async () => {
|
|
129
176
|
const response = await apiFetch(
|
|
@@ -136,7 +183,7 @@ export function ObservabilityDashboard() {
|
|
|
136
183
|
{ immediate: true, deps: [timeRange] }
|
|
137
184
|
)
|
|
138
185
|
|
|
139
|
-
|
|
186
|
+
|
|
140
187
|
const { data: latency, loading: loadingLatency, refetch: refetchLatency } = useApi<LatencyData>(
|
|
141
188
|
async () => {
|
|
142
189
|
const response = await apiFetch(
|
|
@@ -149,7 +196,7 @@ export function ObservabilityDashboard() {
|
|
|
149
196
|
{ immediate: true, deps: [timeRange] }
|
|
150
197
|
)
|
|
151
198
|
|
|
152
|
-
|
|
199
|
+
|
|
153
200
|
const { data: pipelineStats, loading: loadingPipelines, refetch: refetchPipelines } = useApi<PipelineStats[]>(
|
|
154
201
|
async () => {
|
|
155
202
|
const response = await apiFetch(
|
|
@@ -162,7 +209,7 @@ export function ObservabilityDashboard() {
|
|
|
162
209
|
{ immediate: true, deps: [timeRange] }
|
|
163
210
|
)
|
|
164
211
|
|
|
165
|
-
|
|
212
|
+
|
|
166
213
|
const { data: topActors, loading: loadingActors, refetch: refetchActors } = useApi<TopActor[]>(
|
|
167
214
|
async () => {
|
|
168
215
|
const response = await apiFetch(
|
|
@@ -175,7 +222,7 @@ export function ObservabilityDashboard() {
|
|
|
175
222
|
{ immediate: true, deps: [timeRange] }
|
|
176
223
|
)
|
|
177
224
|
|
|
178
|
-
|
|
225
|
+
|
|
179
226
|
const { data: recentAlerts } = useApi<AlertEvent[]>(
|
|
180
227
|
async () => {
|
|
181
228
|
const response = await apiFetch('/api/logs?action=account&event=threshold.breached&limit=5')
|
|
@@ -186,7 +233,7 @@ export function ObservabilityDashboard() {
|
|
|
186
233
|
{ immediate: true }
|
|
187
234
|
)
|
|
188
235
|
|
|
189
|
-
|
|
236
|
+
|
|
190
237
|
useEffect(() => {
|
|
191
238
|
const interval = setInterval(() => {
|
|
192
239
|
refetchVolume()
|
|
@@ -197,7 +244,22 @@ export function ObservabilityDashboard() {
|
|
|
197
244
|
}, refreshInterval * 1000)
|
|
198
245
|
return () => clearInterval(interval)
|
|
199
246
|
}, [refreshInterval])
|
|
247
|
+
// CIL[END chunk_id="observabilitydashboard_hooks_1783666257"]
|
|
200
248
|
|
|
249
|
+
// CIL[BEGIN chunk_id="observabilitydashboard_computed_1783666257" type="computed_values" identity="pipelineChartData" parent="observabilitydashboard_function_observabilitydashboard_1783666257"]
|
|
250
|
+
// CIL[DOC-MACRO purpose="Compute derived values and stats cards"]
|
|
251
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle pipelineChartData"]
|
|
252
|
+
// CIL[DOC-CONTEXT module="ObservabilityDashboard" layer="logic" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\"\\\"]"]
|
|
253
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="computed values, stats cards" errors="none" side_effects="none"]
|
|
254
|
+
// CIL[DOC-MICRO logic_summary="Transforms raw data into chart format and creates stats cards" notable_decisions="[]"]
|
|
255
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
256
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
257
|
+
// CIL[DOC-VECTOR type="context" content="Layer: logic. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/src/components/ui/dialog.tsx, \."]
|
|
258
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
259
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
260
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
261
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
262
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
201
263
|
const pipelineChartData = useMemo(() => {
|
|
202
264
|
return (pipelineStats || []).map((stat) => ({
|
|
203
265
|
name: stat.pipeline_id.slice(0, 8),
|
|
@@ -247,7 +309,22 @@ export function ObservabilityDashboard() {
|
|
|
247
309
|
refetchPipelines()
|
|
248
310
|
refetchActors()
|
|
249
311
|
}
|
|
312
|
+
// CIL[END chunk_id="observabilitydashboard_computed_1783666257"]
|
|
250
313
|
|
|
314
|
+
// CIL[BEGIN chunk_id="observabilitydashboard_render_1783666257" type="render_logic" identity="return" parent="observabilitydashboard_function_observabilitydashboard_1783666257"]
|
|
315
|
+
// CIL[DOC-MACRO purpose="Render the complete observability dashboard interface"]
|
|
316
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle return"]
|
|
317
|
+
// CIL[DOC-CONTEXT module="return" layer="unknown" related_files="[]"]
|
|
318
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
|
|
319
|
+
// CIL[DOC-MICRO logic_summary="Implements return" notable_decisions="[]"]
|
|
320
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
321
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
322
|
+
// CIL[DOC-VECTOR type="context" content="Layer: unknown. Direct callers: 0. Direct calls: 0. Related files: none."]
|
|
323
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
324
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
325
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
326
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
327
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
251
328
|
return (
|
|
252
329
|
<div className="space-y-6">
|
|
253
330
|
{/* Header */}
|
|
@@ -281,6 +358,16 @@ export function ObservabilityDashboard() {
|
|
|
281
358
|
</div>
|
|
282
359
|
</div>
|
|
283
360
|
|
|
361
|
+
<PageInstructions
|
|
362
|
+
description="Review observability metrics and trace summaries."
|
|
363
|
+
sections={[
|
|
364
|
+
{ title: 'What this page is for', content: 'This page shows real-time metrics for event volume, error rates, latency percentiles, and pipeline execution.' },
|
|
365
|
+
{ title: 'How to read the cards', content: 'The stats cards show Total Events, Error Rate, P95 Latency, and Active Pipelines. Values change color when thresholds are exceeded (e.g., error rate above 5% or p95 above 2000ms).' },
|
|
366
|
+
{ title: 'How to filter and interpret', content: 'Use the time range selector (1h, 24h, 7d) and refresh interval to control the window. Charts below the cards show trends for events, errors, latency, and pipeline success or failure.' },
|
|
367
|
+
{ title: 'Important notes', content: 'Alert events are listed when metrics cross their configured thresholds. Top actors show the principals driving the most events.' },
|
|
368
|
+
]}
|
|
369
|
+
/>
|
|
370
|
+
|
|
284
371
|
{/* Stats Cards */}
|
|
285
372
|
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4">
|
|
286
373
|
{statsCards.map((card) => (
|
|
@@ -468,3 +555,5 @@ export function ObservabilityDashboard() {
|
|
|
468
555
|
</div>
|
|
469
556
|
)
|
|
470
557
|
}
|
|
558
|
+
// CIL[END chunk_id="observabilitydashboard_render_1783666257"]
|
|
559
|
+
// CIL[END chunk_id="observabilitydashboard_function_observabilitydashboard_1783666257"]
|