spine-framework 0.3.125 → 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.
Files changed (319) hide show
  1. package/.framework/cli/commands/agents.ts +35 -37
  2. package/.framework/cli/commands/auth.ts +35 -34
  3. package/.framework/cli/commands/create-app.ts +104 -40
  4. package/.framework/cli/commands/dev.ts +104 -69
  5. package/.framework/cli/commands/doctor.ts +169 -97
  6. package/.framework/cli/commands/generate.ts +82 -160
  7. package/.framework/cli/commands/init.ts +72 -34
  8. package/.framework/cli/commands/install-app.ts +260 -125
  9. package/.framework/cli/commands/items.ts +33 -44
  10. package/.framework/cli/commands/migrate.ts +122 -40
  11. package/.framework/cli/commands/migrations.ts +33 -40
  12. package/.framework/cli/commands/pipelines.ts +31 -39
  13. package/.framework/cli/commands/status.ts +47 -23
  14. package/.framework/cli/commands/system.ts +47 -37
  15. package/.framework/cli/commands/test.ts +112 -68
  16. package/.framework/cli/commands/validate-app.ts +215 -121
  17. package/.framework/cli/context.ts +112 -130
  18. package/.framework/cli/env-loader.ts +47 -18
  19. package/.framework/cli/index.ts +81 -42
  20. package/.framework/docs/runtime-types.md +1024 -0
  21. package/.framework/functions/_shared/agent-runner.ts +1296 -961
  22. package/.framework/functions/_shared/app-manifest.ts +82 -68
  23. package/.framework/functions/_shared/audit.ts +135 -83
  24. package/.framework/functions/_shared/{cil-state.ts → cil.ts} +147 -54
  25. package/.framework/functions/_shared/db.ts +80 -126
  26. package/.framework/functions/_shared/hash-api-key.ts +63 -0
  27. package/.framework/functions/_shared/index.ts +222 -347
  28. package/.framework/functions/_shared/kb.ts +319 -0
  29. package/.framework/functions/_shared/llm.ts +92 -0
  30. package/.framework/functions/_shared/logging.ts +288 -0
  31. package/.framework/functions/_shared/middleware.ts +329 -365
  32. package/.framework/functions/_shared/outcomes.ts +36 -0
  33. package/.framework/functions/_shared/permissions.ts +359 -643
  34. package/.framework/functions/_shared/pipeline-runner.ts +243 -316
  35. package/.framework/functions/_shared/principal.ts +376 -468
  36. package/.framework/functions/_shared/resolve-credentials.ts +102 -0
  37. package/.framework/functions/_shared/resolve-ids.ts +162 -14
  38. package/.framework/functions/_shared/retry-deliveries.ts +104 -0
  39. package/.framework/functions/_shared/schema-utils.ts +611 -373
  40. package/.framework/functions/_shared/testing.ts +207 -137
  41. package/.framework/functions/_shared/tracing.ts +276 -0
  42. package/.framework/functions/_shared/trigger-engine.ts +159 -211
  43. package/.framework/functions/_shared/webhook-registration.ts +95 -81
  44. package/.framework/functions/_shared/webhook-registry.ts +153 -75
  45. package/.framework/functions/account-nodes.ts +31 -53
  46. package/.framework/functions/adapters/generic-webhook-inbound.ts +56 -0
  47. package/.framework/functions/adapters/generic-webhook-outbound.ts +43 -0
  48. package/.framework/functions/adapters/openai-outbound.ts +40 -0
  49. package/.framework/functions/admin-data.ts +687 -533
  50. package/.framework/functions/admin-funnel.ts +31 -20
  51. package/.framework/functions/admin-install-funnel.ts +47 -28
  52. package/.framework/functions/admin-signals.ts +47 -29
  53. package/.framework/functions/ai-agents.ts +122 -147
  54. package/.framework/functions/ai-interactions.ts +180 -90
  55. package/.framework/functions/api-keys.ts +250 -192
  56. package/.framework/functions/apps.ts +203 -197
  57. package/.framework/functions/auth.ts +98 -91
  58. package/.framework/functions/cil-agent-ingest.ts +773 -0
  59. package/.framework/functions/cil-agent.ts +592 -0
  60. package/.framework/functions/cil-callmap.ts +1227 -0
  61. package/.framework/functions/cil-config.ts +583 -0
  62. package/.framework/functions/cil-context.ts +445 -0
  63. package/.framework/functions/cil-doc.ts +1752 -0
  64. package/.framework/functions/cil-embeddings.ts +1202 -0
  65. package/.framework/functions/cil-graph.ts +585 -0
  66. package/.framework/functions/cil-ingest.ts +2416 -0
  67. package/.framework/functions/cil-pipeline.ts +318 -0
  68. package/.framework/functions/cil-project.ts +499 -0
  69. package/.framework/functions/cil-validate.ts +469 -0
  70. package/.framework/functions/debug-auth.ts +73 -53
  71. package/.framework/functions/deliveries.ts +117 -0
  72. package/.framework/functions/embeddings.ts +528 -516
  73. package/.framework/functions/eval-harness.ts +158 -106
  74. package/.framework/functions/integration-outbound.ts +311 -0
  75. package/.framework/functions/integration-routes.ts +240 -466
  76. package/.framework/functions/integrations.ts +132 -140
  77. package/.framework/functions/invites.ts +401 -201
  78. package/.framework/functions/item-progress.ts +113 -53
  79. package/.framework/functions/kb.ts +28 -0
  80. package/.framework/functions/logs.ts +239 -222
  81. package/.framework/functions/observability.ts +308 -259
  82. package/.framework/functions/pipeline-executions.ts +179 -235
  83. package/.framework/functions/pipelines.ts +163 -205
  84. package/.framework/functions/prompt-configs.ts +109 -156
  85. package/.framework/functions/roles.ts +97 -147
  86. package/.framework/functions/system-cron.ts +132 -218
  87. package/.framework/functions/system.ts +112 -52
  88. package/.framework/functions/tests.ts +32 -28
  89. package/.framework/functions/timers.ts +162 -210
  90. package/.framework/functions/triggers.ts +282 -346
  91. package/.framework/functions/types.ts +283 -400
  92. package/.framework/migrations/001_core_schema.sql +630 -0
  93. package/.framework/migrations/002_core_rls_and_functions.sql +532 -0
  94. package/.framework/migrations/{003_system_data.sql → 003_core_system_data.sql} +26 -153
  95. package/.framework/migrations/004_core_rpc_and_broker.sql +421 -0
  96. package/.framework/migrations/005_core_observability.sql +598 -0
  97. package/.framework/migrations/006_security_hardening_rls.sql +97 -0
  98. package/.framework/migrations/007_kb_article_list.sql +237 -0
  99. package/.framework/migrations/008_items_target.sql +8 -0
  100. package/.framework/migrations/009_roles_slug_unique.sql +11 -0
  101. package/.framework/public/spine.config.json +91 -0
  102. package/.framework/scripts/app-install-cli.ts +112 -98
  103. package/.framework/src/App.tsx +67 -20
  104. package/.framework/src/apps/admin/index.tsx +97 -27
  105. package/.framework/src/components/AppWrapper.tsx +50 -11
  106. package/.framework/src/components/CustomAppLoader.tsx +131 -22
  107. package/.framework/src/components/admin/AdminListPage.tsx +75 -8
  108. package/.framework/src/components/admin/AdminSidebar.tsx +148 -36
  109. package/.framework/src/components/admin/AdminStatsCard.tsx +48 -29
  110. package/.framework/src/components/admin/PageInstructions.tsx +49 -0
  111. package/.framework/src/components/admin/SortableTableHeader.tsx +49 -2
  112. package/.framework/src/components/app-shell/GenericAppShell.tsx +69 -11
  113. package/.framework/src/components/app-shell/GenericDetailPage.tsx +55 -10
  114. package/.framework/src/components/app-shell/GenericListPage.tsx +76 -9
  115. package/.framework/src/components/app-sidebar.tsx +50 -3
  116. package/.framework/src/components/auth/ProtectedRoute.tsx +53 -45
  117. package/.framework/src/components/kb/KBArticleEditor.tsx +409 -0
  118. package/.framework/src/components/kb/KBArticleList.tsx +557 -0
  119. package/.framework/src/components/layout/AppShell.tsx +54 -16
  120. package/.framework/src/components/layout/Header.tsx +50 -38
  121. package/.framework/src/components/layout/Layout.tsx +48 -32
  122. package/.framework/src/components/layout/Sidebar.tsx +167 -16
  123. package/.framework/src/components/runtime/DataDetailHeader.tsx +33 -1
  124. package/.framework/src/components/runtime/DataDetailPage.tsx +289 -4
  125. package/.framework/src/components/runtime/DataFilters.tsx +78 -1
  126. package/.framework/src/components/runtime/DataHeader.tsx +32 -29
  127. package/.framework/src/components/runtime/DataListPage.tsx +161 -2
  128. package/.framework/src/components/runtime/DataStats.tsx +48 -1
  129. package/.framework/src/components/runtime/DataTable.tsx +153 -1
  130. package/.framework/src/components/runtime/SchemaDetailForm.tsx +77 -46
  131. package/.framework/src/components/runtime/index.ts +16 -9
  132. package/.framework/src/components/search-form.tsx +33 -1
  133. package/.framework/src/components/shared/AgentView.tsx +48 -51
  134. package/.framework/src/components/shared/FieldRenderer.tsx +84 -67
  135. package/.framework/src/components/shared/InviteManager.tsx +113 -52
  136. package/.framework/src/components/shared/MemberList.tsx +182 -0
  137. package/.framework/src/components/shared/SchemaFields.tsx +96 -78
  138. package/.framework/src/components/ui/DataTable.tsx +86 -56
  139. package/.framework/src/components/ui/Form.tsx +188 -109
  140. package/.framework/src/components/ui/ItemCard.tsx +86 -58
  141. package/.framework/src/components/ui/ItemListView.tsx +88 -61
  142. package/.framework/src/components/ui/LoadingSpinner.tsx +52 -27
  143. package/.framework/src/components/ui/Modal.tsx +81 -4
  144. package/.framework/src/components/ui/RichTextEditor.tsx +101 -9
  145. package/.framework/src/components/ui/accordion.tsx +97 -5
  146. package/.framework/src/components/ui/alert-dialog.tsx +225 -13
  147. package/.framework/src/components/ui/alert.tsx +113 -6
  148. package/.framework/src/components/ui/aspect-ratio.tsx +49 -2
  149. package/.framework/src/components/ui/avatar.tsx +129 -7
  150. package/.framework/src/components/ui/badge.tsx +65 -3
  151. package/.framework/src/components/ui/breadcrumb.tsx +145 -8
  152. package/.framework/src/components/ui/button-group.tsx +81 -4
  153. package/.framework/src/components/ui/button.tsx +49 -2
  154. package/.framework/src/components/ui/calendar.tsx +65 -3
  155. package/.framework/src/components/ui/card.tsx +145 -8
  156. package/.framework/src/components/ui/carousel.tsx +129 -7
  157. package/.framework/src/components/ui/chart.tsx +161 -10
  158. package/.framework/src/components/ui/checkbox.tsx +49 -2
  159. package/.framework/src/components/ui/collapsible.tsx +81 -5
  160. package/.framework/src/components/ui/combobox.tsx +305 -20
  161. package/.framework/src/components/ui/command.tsx +177 -11
  162. package/.framework/src/components/ui/context-menu.tsx +273 -17
  163. package/.framework/src/components/ui/dialog.tsx +209 -27
  164. package/.framework/src/components/ui/direction.tsx +64 -4
  165. package/.framework/src/components/ui/drawer.tsx +193 -12
  166. package/.framework/src/components/ui/dropdown-menu.tsx +273 -18
  167. package/.framework/src/components/ui/empty.tsx +145 -9
  168. package/.framework/src/components/ui/field.tsx +209 -14
  169. package/.framework/src/components/ui/hover-card.tsx +81 -4
  170. package/.framework/src/components/ui/input-group.tsx +162 -10
  171. package/.framework/src/components/ui/input-otp.tsx +98 -5
  172. package/.framework/src/components/ui/input.tsx +49 -2
  173. package/.framework/src/components/ui/item.tsx +225 -13
  174. package/.framework/src/components/ui/kbd.tsx +65 -3
  175. package/.framework/src/components/ui/label.tsx +49 -2
  176. package/.framework/src/components/ui/menubar.tsx +289 -17
  177. package/.framework/src/components/ui/native-select.tsx +97 -5
  178. package/.framework/src/components/ui/navigation-menu.tsx +177 -10
  179. package/.framework/src/components/ui/pagination.tsx +161 -9
  180. package/.framework/src/components/ui/popover.tsx +145 -8
  181. package/.framework/src/components/ui/progress.tsx +49 -2
  182. package/.framework/src/components/ui/radio-group.tsx +65 -3
  183. package/.framework/src/components/ui/resizable.tsx +82 -4
  184. package/.framework/src/components/ui/scroll-area.tsx +65 -3
  185. package/.framework/src/components/ui/select.tsx +193 -11
  186. package/.framework/src/components/ui/separator.tsx +49 -2
  187. package/.framework/src/components/ui/sheet.tsx +193 -11
  188. package/.framework/src/components/ui/sidebar.tsx +481 -38
  189. package/.framework/src/components/ui/skeleton.tsx +49 -2
  190. package/.framework/src/components/ui/slider.tsx +49 -2
  191. package/.framework/src/components/ui/sonner.tsx +49 -2
  192. package/.framework/src/components/ui/spinner.tsx +49 -2
  193. package/.framework/src/components/ui/switch.tsx +49 -2
  194. package/.framework/src/components/ui/table-primitives.tsx +160 -33
  195. package/.framework/src/components/ui/table.tsx +161 -9
  196. package/.framework/src/components/ui/tabs.tsx +113 -6
  197. package/.framework/src/components/ui/textarea.tsx +49 -2
  198. package/.framework/src/components/ui/toggle-group.tsx +81 -4
  199. package/.framework/src/components/ui/toggle.tsx +65 -3
  200. package/.framework/src/components/ui/tooltip.tsx +97 -5
  201. package/.framework/src/contexts/AppContext.tsx +129 -45
  202. package/.framework/src/contexts/AuthContext.tsx +173 -145
  203. package/.framework/src/hooks/use-mobile.ts +48 -2
  204. package/.framework/src/hooks/useApi.ts +208 -159
  205. package/.framework/src/hooks/useAppPath.ts +32 -23
  206. package/.framework/src/hooks/useApps.ts +51 -20
  207. package/.framework/src/hooks/useEntityList.ts +32 -78
  208. package/.framework/src/hooks/useEntityRecord.ts +35 -96
  209. package/.framework/src/hooks/useForm.ts +32 -92
  210. package/.framework/src/hooks/useListSchema.ts +49 -78
  211. package/.framework/src/hooks/useSchemaRecord.ts +114 -105
  212. package/.framework/src/lib/api.ts +192 -115
  213. package/.framework/src/lib/supabase.ts +98 -64
  214. package/.framework/src/lib/utils.ts +287 -151
  215. package/.framework/src/main.tsx +49 -3
  216. package/.framework/src/pages/DashboardPage.tsx +52 -29
  217. package/.framework/src/pages/NotFoundPage.tsx +32 -10
  218. package/.framework/src/pages/SetupPage.tsx +32 -12
  219. package/.framework/src/pages/admin/AIAgentDetailPage.tsx +119 -10
  220. package/.framework/src/pages/admin/AIAgentsPage.tsx +48 -19
  221. package/.framework/src/pages/admin/APIKeyDetailPage.tsx +187 -17
  222. package/.framework/src/pages/admin/APIKeysPage.tsx +98 -22
  223. package/.framework/src/pages/admin/AlertsConfigPage.tsx +113 -26
  224. package/.framework/src/pages/admin/AppDetailPage.tsx +125 -8
  225. package/.framework/src/pages/admin/AppsPage.tsx +49 -2
  226. package/.framework/src/pages/admin/DeliveriesPage.tsx +196 -0
  227. package/.framework/src/pages/admin/DesignedPage.tsx +32 -18
  228. package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +215 -484
  229. package/.framework/src/pages/admin/EmbeddingsPage.tsx +116 -319
  230. package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +34 -9
  231. package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +34 -9
  232. package/.framework/src/pages/admin/IntegratedDashboard.tsx +32 -16
  233. package/.framework/src/pages/admin/IntegrationDetailPage.tsx +183 -26
  234. package/.framework/src/pages/admin/IntegrationsPage.tsx +48 -19
  235. package/.framework/src/pages/admin/InvitesPage.tsx +48 -14
  236. package/.framework/src/pages/admin/LogsPage.tsx +422 -75
  237. package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +34 -9
  238. package/.framework/src/pages/admin/ObservabilityDashboard.tsx +113 -24
  239. package/.framework/src/pages/admin/PipelineDetailPage.tsx +206 -34
  240. package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +50 -17
  241. package/.framework/src/pages/admin/PipelinesPage.tsx +160 -21
  242. package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +378 -88
  243. package/.framework/src/pages/admin/PromptConfigsPage.tsx +125 -16
  244. package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +49 -10
  245. package/.framework/src/pages/admin/RoleDetailPage.tsx +130 -10
  246. package/.framework/src/pages/admin/RolesPage.tsx +171 -18
  247. package/.framework/src/pages/admin/SelectTestPage.tsx +34 -9
  248. package/.framework/src/pages/admin/ShadcnTestPage.tsx +49 -11
  249. package/.framework/src/pages/admin/SimpleDashboard.tsx +49 -10
  250. package/.framework/src/pages/admin/TestRunDetailPage.tsx +49 -4
  251. package/.framework/src/pages/admin/TestingDashboard.tsx +98 -28
  252. package/.framework/src/pages/admin/TimerDetailPage.tsx +143 -33
  253. package/.framework/src/pages/admin/TimersPage.tsx +48 -20
  254. package/.framework/src/pages/admin/TriggerDetailPage.tsx +118 -30
  255. package/.framework/src/pages/admin/TriggersPage.tsx +64 -19
  256. package/.framework/src/pages/admin/TypeDetailPage.tsx +138 -15
  257. package/.framework/src/pages/admin/TypesPage.tsx +48 -20
  258. package/.framework/src/pages/admin/cil/CILAgentPage.tsx +465 -0
  259. package/.framework/src/pages/admin/cil/CILChunkDetailPage.tsx +787 -0
  260. package/.framework/src/pages/admin/cil/CILDashboardPage.tsx +699 -0
  261. package/.framework/src/pages/admin/cil/CILFileListPage.tsx +647 -0
  262. package/.framework/src/pages/admin/cil/CILGraphPage.tsx +616 -0
  263. package/.framework/src/pages/admin/cil/CILIngestionPage.tsx +1402 -0
  264. package/.framework/src/pages/admin/cil/CILProjectsPage.tsx +614 -0
  265. package/.framework/src/pages/admin/cil/CILSearchPage.tsx +571 -0
  266. package/.framework/src/pages/admin/cil/FlexiblePipelinePage.tsx +731 -0
  267. package/.framework/src/pages/admin/kb/KBAdminPage.tsx +64 -0
  268. package/.framework/src/pages/auth/AuthConfirmPage.tsx +52 -51
  269. package/.framework/src/pages/auth/ForgotPasswordPage.tsx +31 -22
  270. package/.framework/src/pages/auth/LoginPage.tsx +50 -23
  271. package/.framework/src/pages/auth/PendingApprovalPage.tsx +31 -15
  272. package/.framework/src/pages/auth/RegisterPage.tsx +281 -317
  273. package/.framework/src/pages/spine-framework/APIPage.tsx +33 -0
  274. package/.framework/src/pages/spine-framework/CLIPage.tsx +33 -0
  275. package/.framework/src/types/auth.ts +128 -71
  276. package/.framework/src/types/types.ts +373 -157
  277. package/custom/.devin/skills/spine-workbench-discovery/SKILL.md +39 -0
  278. package/custom/.devin/skills/spine-workbench-idea/SKILL.md +36 -0
  279. package/custom/.devin/skills/spine-workbench-implement/SKILL.md +46 -0
  280. package/custom/.devin/skills/spine-workbench-initiative/SKILL.md +28 -0
  281. package/custom/.devin/skills/spine-workbench-plan/SKILL.md +38 -0
  282. package/docs/README.md +9 -130
  283. package/netlify.toml +3 -3
  284. package/package.json +13 -25
  285. package/scripts/kb-ingest-docs.ts +203 -0
  286. package/spine.config.json +65 -4
  287. package/.framework/migrations/001_schema.sql +0 -425
  288. package/.framework/migrations/002_rls_and_functions.sql +0 -763
  289. package/.framework/migrations/004_enhancements.sql +0 -43
  290. package/.framework/migrations/005_auth_user_trigger.sql +0 -105
  291. package/.framework/migrations/006_fix_current_actor_id.sql +0 -21
  292. package/.framework/migrations/016_invites.sql +0 -27
  293. package/.framework/migrations/017_fix_get_account_apps.sql +0 -78
  294. package/.framework/migrations/018_apps_required_roles.sql +0 -17
  295. package/.framework/migrations/019_triggers_unique_constraint.sql +0 -13
  296. package/.framework/migrations/020_get_account_apps_role_filter.sql +0 -117
  297. package/.framework/migrations/021_app_domains.sql +0 -112
  298. package/.framework/migrations/022_route_prefix_domain_unique.sql +0 -21
  299. package/.framework/migrations/023_match_embeddings_rpc.sql +0 -78
  300. package/.framework/migrations/024_messages_account_id.sql +0 -9
  301. package/.framework/migrations/025_retype_threads_messages.sql +0 -240
  302. package/.framework/migrations/026_fix_rls_policies.sql +0 -47
  303. package/.framework/migrations/027_embedding_lifecycle.sql +0 -176
  304. package/.framework/migrations/028_fix_message_data_permissions.sql +0 -49
  305. package/.framework/migrations/029_tighten_support_triage_prompt.sql +0 -41
  306. package/.framework/migrations/030_messages_updated_by.sql +0 -6
  307. package/.framework/migrations/031_seed_upsert_constraints.sql +0 -35
  308. package/docs/APPS.md +0 -232
  309. package/docs/ARCHITECTURE.md +0 -246
  310. package/docs/INSTALL.md +0 -155
  311. package/docs/design-schema-spec.md +0 -1837
  312. package/docs/dev-guides/01-create-an-app.md +0 -183
  313. package/docs/dev-guides/02-create-a-function.md +0 -178
  314. package/docs/dev-guides/03-create-a-component.md +0 -178
  315. package/docs/dev-guides/04-webhook-handlers.md +0 -129
  316. package/docs/dev-guides/05-testing.md +0 -168
  317. package/docs/dev-guides/README.md +0 -40
  318. package/docs/npm-packages-plan.md +0 -288
  319. 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
- // Event volume data
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
- // Error rate data
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
- // Latency percentiles
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
- // Pipeline stats
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
- // Top actors
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
- // Recent alerts
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
- // Auto refresh
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"]