spine-framework 0.3.145 → 0.4.0

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 (451) hide show
  1. package/.env.example +76 -0
  2. package/.framework/.spine-manifest.json +19 -0
  3. package/.framework/cli/commands/agents.ts +61 -33
  4. package/.framework/cli/commands/auth.ts +60 -28
  5. package/.framework/cli/commands/create-app.ts +212 -80
  6. package/.framework/cli/commands/dev.ts +184 -68
  7. package/.framework/cli/commands/doctor.ts +324 -152
  8. package/.framework/cli/commands/generate.ts +119 -68
  9. package/.framework/cli/commands/init.ts +141 -242
  10. package/.framework/cli/commands/install-app.ts +1336 -314
  11. package/.framework/cli/commands/items.ts +31 -29
  12. package/.framework/cli/commands/migrate.ts +299 -156
  13. package/.framework/cli/commands/migrations.ts +62 -30
  14. package/.framework/cli/commands/pipelines.ts +31 -29
  15. package/.framework/cli/commands/status.ts +105 -45
  16. package/.framework/cli/commands/system.ts +47 -42
  17. package/.framework/cli/commands/test.ts +161 -102
  18. package/.framework/cli/commands/upgrade.ts +260 -0
  19. package/.framework/cli/commands/validate-app.ts +517 -161
  20. package/.framework/cli/context.ts +117 -85
  21. package/.framework/cli/env-loader.ts +74 -43
  22. package/.framework/cli/index.ts +70 -46
  23. package/.framework/cli/lib/project-files.ts +404 -0
  24. package/.framework/docs/guides/testing-guide.md +1 -1
  25. package/.framework/docs/runtime-types.md +72 -72
  26. package/.framework/functions/_shared/access.ts +84 -0
  27. package/.framework/functions/_shared/agent-runner.ts +5051 -1026
  28. package/.framework/functions/_shared/app-manifest.ts +214 -94
  29. package/.framework/functions/_shared/ast.ts +214 -0
  30. package/.framework/functions/_shared/audit.ts +91 -55
  31. package/.framework/functions/_shared/cil.ts +368 -127
  32. package/.framework/functions/_shared/db.ts +337 -68
  33. package/.framework/functions/_shared/funnel.ts +228 -0
  34. package/.framework/functions/_shared/geo.ts +105 -0
  35. package/.framework/functions/_shared/hash-api-key.ts +94 -17
  36. package/.framework/functions/_shared/index.ts +22 -224
  37. package/.framework/functions/_shared/kb.ts +832 -58
  38. package/.framework/functions/_shared/llm.ts +118 -18
  39. package/.framework/functions/_shared/logging.ts +317 -19
  40. package/.framework/functions/_shared/middleware.ts +701 -131
  41. package/.framework/functions/_shared/notify.ts +70 -0
  42. package/.framework/functions/_shared/outcomes.ts +34 -19
  43. package/.framework/functions/_shared/permissions.ts +501 -315
  44. package/.framework/functions/_shared/pipeline-runner.ts +704 -155
  45. package/.framework/functions/_shared/principal.ts +436 -263
  46. package/.framework/functions/_shared/rate-limit.ts +233 -0
  47. package/.framework/functions/_shared/resolve-credentials.ts +86 -19
  48. package/.framework/functions/_shared/resolve-ids.ts +203 -139
  49. package/.framework/functions/_shared/retry-deliveries.ts +51 -16
  50. package/.framework/functions/_shared/schema-utils.ts +602 -521
  51. package/.framework/functions/_shared/security.ts +345 -0
  52. package/.framework/functions/_shared/testing.ts +197 -172
  53. package/.framework/functions/_shared/tracing.ts +351 -21
  54. package/.framework/functions/_shared/trigger-engine.ts +425 -136
  55. package/.framework/functions/_shared/webhook-registration.ts +71 -70
  56. package/.framework/functions/_shared/webhook-registry.ts +126 -83
  57. package/.framework/functions/account-nodes.ts +30 -30
  58. package/.framework/functions/adapters/generic-webhook-inbound.ts +49 -16
  59. package/.framework/functions/adapters/generic-webhook-outbound.ts +17 -17
  60. package/.framework/functions/adapters/openai-outbound.ts +15 -16
  61. package/.framework/functions/admin-data.ts +596 -173
  62. package/.framework/functions/admin-funnel.ts +64 -60
  63. package/.framework/functions/admin-install-funnel.ts +84 -66
  64. package/.framework/functions/admin-signals.ts +69 -51
  65. package/.framework/functions/ai-agents.ts +431 -106
  66. package/.framework/functions/ai-interactions.ts +186 -112
  67. package/.framework/functions/api-keys.ts +107 -107
  68. package/.framework/functions/apps.ts +154 -136
  69. package/.framework/functions/auth.ts +83 -65
  70. package/.framework/functions/cil-agent-ingest.ts +189 -232
  71. package/.framework/functions/cil-agent.ts +433 -177
  72. package/.framework/functions/cil-callmap.ts +642 -430
  73. package/.framework/functions/cil-config.ts +139 -135
  74. package/.framework/functions/cil-context.ts +214 -127
  75. package/.framework/functions/cil-doc.ts +587 -458
  76. package/.framework/functions/cil-embeddings.ts +453 -364
  77. package/.framework/functions/cil-graph.ts +427 -142
  78. package/.framework/functions/cil-ingest.ts +1418 -1154
  79. package/.framework/functions/cil-pipeline.ts +276 -21
  80. package/.framework/functions/cil-project.ts +659 -132
  81. package/.framework/functions/cil-validate.ts +198 -164
  82. package/.framework/functions/debug-auth.ts +57 -55
  83. package/.framework/functions/deliveries.ts +80 -21
  84. package/.framework/functions/embeddings.ts +1023 -318
  85. package/.framework/functions/eval-harness.ts +146 -108
  86. package/.framework/functions/integration-outbound.ts +205 -75
  87. package/.framework/functions/integration-routes.ts +128 -23
  88. package/.framework/functions/integrations.ts +125 -100
  89. package/.framework/functions/invites.ts +1095 -460
  90. package/.framework/functions/item-progress.ts +158 -102
  91. package/.framework/functions/kb.ts +34 -10
  92. package/.framework/functions/logs.ts +133 -133
  93. package/.framework/functions/observability.ts +152 -122
  94. package/.framework/functions/pipeline-executions.ts +147 -132
  95. package/.framework/functions/pipelines.ts +134 -119
  96. package/.framework/functions/prompt-configs.ts +96 -80
  97. package/.framework/functions/roles.ts +112 -82
  98. package/.framework/functions/security.ts +450 -0
  99. package/.framework/functions/system-cron.ts +117 -80
  100. package/.framework/functions/system.ts +158 -98
  101. package/.framework/functions/tests.ts +29 -29
  102. package/.framework/functions/timers.ts +94 -95
  103. package/.framework/functions/trigger-scheduler.ts +10 -0
  104. package/.framework/functions/triggers.ts +179 -149
  105. package/.framework/functions/types.ts +137 -125
  106. package/.framework/mcp/index.ts +133 -0
  107. package/.framework/mcp/load-env.ts +60 -0
  108. package/.framework/mcp/shared/app-manifest.ts +275 -0
  109. package/.framework/mcp/shared/db.ts +477 -0
  110. package/.framework/mcp/shared/kb.ts +118 -0
  111. package/.framework/mcp/tools/architect.ts +431 -0
  112. package/.framework/mcp/tools/cil/context.ts +345 -0
  113. package/.framework/mcp/tools/cil/graph.ts +242 -0
  114. package/.framework/mcp/tools/cil/ingest.ts +1217 -0
  115. package/.framework/mcp/tools/cil/pipeline-orchestrator.ts +693 -0
  116. package/.framework/mcp/tools/cil/pipeline.ts +767 -0
  117. package/.framework/mcp/tools/cil/project.ts +791 -0
  118. package/.framework/mcp/tools/cil/retrieval.ts +336 -0
  119. package/.framework/mcp/tools/cil/search-core.ts +454 -0
  120. package/.framework/mcp/tools/cil/search.ts +97 -0
  121. package/.framework/mcp/tools/cil/suggest.ts +186 -0
  122. package/.framework/mcp/tools/cil/validate.ts +1369 -0
  123. package/.framework/mcp/tools/kb/delete.ts +139 -0
  124. package/.framework/mcp/tools/kb/index.ts +52 -0
  125. package/.framework/mcp/tools/kb/ingest.ts +84 -0
  126. package/.framework/mcp/tools/kb/list-types.ts +102 -0
  127. package/.framework/mcp/tools/kb/publish.ts +100 -0
  128. package/.framework/mcp/tools/kb/reindex.ts +86 -0
  129. package/.framework/mcp/tools/kb/revoke.ts +85 -0
  130. package/.framework/mcp/tools/kb/search.ts +101 -0
  131. package/.framework/mcp/tools/kb/upsert.ts +125 -0
  132. package/.framework/mcp/tools/observability.ts +510 -0
  133. package/.framework/migrations/001_core_schema.sql +15 -0
  134. package/.framework/migrations/002_core_rls_and_functions.sql +15 -0
  135. package/.framework/migrations/003_core_system_data.sql +16 -1
  136. package/.framework/migrations/004_core_rpc_and_broker.sql +17 -1
  137. package/.framework/migrations/005_core_observability.sql +17 -1
  138. package/.framework/migrations/006_security_hardening_rls.sql +15 -0
  139. package/.framework/migrations/007_kb_article_list.sql +17 -1
  140. package/.framework/migrations/008_items_target.sql +15 -0
  141. package/.framework/migrations/009_roles_slug_unique.sql +15 -0
  142. package/.framework/migrations/010_auth_user_trigger.sql +15 -0
  143. package/.framework/migrations/011_spine_system_account.sql +16 -0
  144. package/.framework/migrations/012_service_role_grants.sql +16 -0
  145. package/.framework/migrations/013_get_account_apps_role_filter.sql +15 -0
  146. package/.framework/migrations/014_apps_required_roles.sql +16 -0
  147. package/.framework/migrations/015_types_kind_slug_unique.sql +15 -0
  148. package/.framework/migrations/016_cil_types.sql +281 -0
  149. package/.framework/migrations/017_cil_stable_ids.sql +37 -0
  150. package/.framework/migrations/018_runtime_tables.sql +129 -0
  151. package/.framework/migrations/019_agent_prompt_columns.sql +56 -0
  152. package/.framework/migrations/020_schema_reconciliation.sql +67 -0
  153. package/.framework/migrations/021_kb_embedding_lifecycle.sql +31 -0
  154. package/.framework/migrations/032_cil_status_migration.sql +73 -0
  155. package/.framework/migrations/033_cil_versioning.sql +73 -0
  156. package/.framework/migrations/034_match_embeddings_knn.sql +115 -0
  157. package/.framework/migrations/035_rate_limits.sql +55 -0
  158. package/.framework/migrations/036_demo_record_flags.sql +72 -0
  159. package/.framework/migrations/037_kb_types_canonical.sql +244 -0
  160. package/.framework/migrations/038_drop_demo_record_flags.sql +38 -0
  161. package/.framework/migrations/042_registration_hierarchy.sql +309 -0
  162. package/.framework/migrations/043_policy_actor_cleanup.sql +39 -0
  163. package/.framework/migrations/044_match_embeddings_filtered_knn.sql +151 -0
  164. package/.framework/migrations/045_security_critical_rls.sql +139 -0
  165. package/.framework/migrations/046_security_missing_rls.sql +79 -0
  166. package/.framework/migrations/047_people_updated_by.sql +27 -0
  167. package/.framework/migrations/048_watcher_last_seen_at.sql +24 -0
  168. package/.framework/migrations/049_security_blocklist.sql +148 -0
  169. package/.framework/migrations/050_notifications.sql +49 -0
  170. package/.framework/migrations/051_message_agent_fields.sql +74 -0
  171. package/.framework/migrations/052_registration_security.sql +421 -0
  172. package/.framework/migrations/053_builtin_action_seeds.sql +66 -0
  173. package/.framework/migrations/054_kb_ingest_lease.sql +157 -0
  174. package/.framework/migrations/055_type_id_drift_reconciliation.sql +33 -0
  175. package/.framework/migrations/056_slug_column_reconciliation.sql +38 -0
  176. package/.framework/migrations/057_pipelines_slug_identity.sql +14 -0
  177. package/.framework/migrations/058_account_data_field_declarations.sql +53 -0
  178. package/.framework/migrations/059_registration_placement_fixes.sql +269 -0
  179. package/.framework/migrations/060_account_person_record_permissions.sql +38 -0
  180. package/.framework/migrations/061_fk_dedup.sql +32 -0
  181. package/.framework/public/spine-logo.svg +10 -3
  182. package/.framework/scripts/app-install-cli.ts +190 -93
  183. package/.framework/scripts/assemble-frontend.sh +127 -44
  184. package/.framework/scripts/assemble-functions.sh +128 -30
  185. package/.framework/scripts/boundary-check.sh +6 -2
  186. package/.framework/scripts/build-manifest.sh +24 -68
  187. package/.framework/scripts/check-core-integrity.sh +15 -76
  188. package/.framework/scripts/checksum-manifest.mts +343 -0
  189. package/.framework/scripts/cil-migrate-markers.ts +403 -0
  190. package/.framework/scripts/fix-cil-markers.mjs +176 -0
  191. package/.framework/scripts/verify-integrity.sh +21 -57
  192. package/.framework/scripts/verify-manifest.mts +305 -0
  193. package/.framework/seeds/types/funnel_signal_use.json +74 -21
  194. package/.framework/seeds/types/spine_instance.json +73 -21
  195. package/.framework/src/App.tsx +118 -72
  196. package/.framework/src/apps/admin/index.tsx +855 -58
  197. package/.framework/src/components/AppWrapper.tsx +43 -45
  198. package/.framework/src/components/CustomAppLoader.tsx +160 -116
  199. package/.framework/src/components/admin/AdminListPage.tsx +46 -44
  200. package/.framework/src/components/admin/AdminSidebar.tsx +57 -47
  201. package/.framework/src/components/admin/AdminStatsCard.tsx +46 -44
  202. package/.framework/src/components/admin/PageInstructions.tsx +98 -2
  203. package/.framework/src/components/admin/SortableTableHeader.tsx +44 -45
  204. package/.framework/src/components/app-shell/GenericAppShell.tsx +64 -65
  205. package/.framework/src/components/app-shell/GenericDetailPage.tsx +44 -47
  206. package/.framework/src/components/app-shell/GenericListPage.tsx +45 -49
  207. package/.framework/src/components/app-sidebar.tsx +42 -45
  208. package/.framework/src/components/auth/ProtectedRoute.tsx +48 -41
  209. package/.framework/src/components/auth/TurnstileWidget.tsx +27 -0
  210. package/.framework/src/components/kb/KBArticleEditor.tsx +231 -22
  211. package/.framework/src/components/kb/KBArticleList.tsx +251 -10
  212. package/.framework/src/components/layout/AppShell.tsx +51 -45
  213. package/.framework/src/components/layout/Header.tsx +42 -43
  214. package/.framework/src/components/layout/Layout.tsx +46 -46
  215. package/.framework/src/components/layout/Sidebar.tsx +196 -96
  216. package/.framework/src/components/runtime/DataDetailHeader.tsx +55 -30
  217. package/.framework/src/components/runtime/DataDetailPage.tsx +31 -269
  218. package/.framework/src/components/runtime/DataFilters.tsx +49 -74
  219. package/.framework/src/components/runtime/DataHeader.tsx +53 -32
  220. package/.framework/src/components/runtime/DataListPage.tsx +51 -155
  221. package/.framework/src/components/runtime/DataStats.tsx +66 -44
  222. package/.framework/src/components/runtime/DataTable.tsx +49 -149
  223. package/.framework/src/components/runtime/SchemaDetailForm.tsx +45 -75
  224. package/.framework/src/components/runtime/index.ts +119 -16
  225. package/.framework/src/components/search-form.tsx +46 -29
  226. package/.framework/src/components/shared/AgentView.tsx +65 -48
  227. package/.framework/src/components/shared/FieldRenderer.tsx +144 -50
  228. package/.framework/src/components/shared/InviteManager.tsx +207 -97
  229. package/.framework/src/components/shared/MemberList.tsx +97 -0
  230. package/.framework/src/components/shared/SchemaFields.tsx +107 -86
  231. package/.framework/src/components/ui/DataTable.tsx +80 -68
  232. package/.framework/src/components/ui/Form.tsx +157 -146
  233. package/.framework/src/components/ui/ItemCard.tsx +74 -67
  234. package/.framework/src/components/ui/ItemListView.tsx +73 -68
  235. package/.framework/src/components/ui/LoadingSpinner.tsx +43 -48
  236. package/.framework/src/components/ui/Modal.tsx +78 -68
  237. package/.framework/src/components/ui/RichTextEditor.tsx +89 -69
  238. package/.framework/src/components/ui/accordion.tsx +85 -86
  239. package/.framework/src/components/ui/alert-dialog.tsx +197 -184
  240. package/.framework/src/components/ui/alert.tsx +105 -94
  241. package/.framework/src/components/ui/aspect-ratio.tsx +57 -43
  242. package/.framework/src/components/ui/avatar.tsx +122 -107
  243. package/.framework/src/components/ui/badge.tsx +60 -55
  244. package/.framework/src/components/ui/breadcrumb.tsx +127 -128
  245. package/.framework/src/components/ui/button-group.tsx +86 -72
  246. package/.framework/src/components/ui/button.tsx +71 -50
  247. package/.framework/src/components/ui/calendar.tsx +72 -57
  248. package/.framework/src/components/ui/card.tsx +136 -129
  249. package/.framework/src/components/ui/carousel.tsx +226 -107
  250. package/.framework/src/components/ui/chart.tsx +252 -147
  251. package/.framework/src/components/ui/checkbox.tsx +43 -44
  252. package/.framework/src/components/ui/collapsible.tsx +86 -71
  253. package/.framework/src/components/ui/combobox.tsx +282 -249
  254. package/.framework/src/components/ui/command.tsx +158 -146
  255. package/.framework/src/components/ui/context-menu.tsx +239 -240
  256. package/.framework/src/components/ui/dialog.tsx +174 -157
  257. package/.framework/src/components/ui/direction.tsx +72 -56
  258. package/.framework/src/components/ui/drawer.tsx +168 -169
  259. package/.framework/src/components/ui/dropdown-menu.tsx +254 -223
  260. package/.framework/src/components/ui/empty.tsx +131 -120
  261. package/.framework/src/components/ui/field.tsx +205 -173
  262. package/.framework/src/components/ui/hover-card.tsx +71 -72
  263. package/.framework/src/components/ui/input-group.tsx +148 -133
  264. package/.framework/src/components/ui/input-otp.tsx +99 -86
  265. package/.framework/src/components/ui/input.tsx +43 -41
  266. package/.framework/src/components/ui/item.tsx +207 -185
  267. package/.framework/src/components/ui/kbd.tsx +57 -56
  268. package/.framework/src/components/ui/label.tsx +45 -41
  269. package/.framework/src/components/ui/menubar.tsx +268 -236
  270. package/.framework/src/components/ui/native-select.tsx +85 -86
  271. package/.framework/src/components/ui/navigation-menu.tsx +166 -156
  272. package/.framework/src/components/ui/pagination.tsx +131 -141
  273. package/.framework/src/components/ui/popover.tsx +125 -128
  274. package/.framework/src/components/ui/progress.tsx +47 -44
  275. package/.framework/src/components/ui/radio-group.tsx +60 -55
  276. package/.framework/src/components/ui/resizable.tsx +85 -72
  277. package/.framework/src/components/ui/scroll-area.tsx +57 -58
  278. package/.framework/src/components/ui/select.tsx +182 -169
  279. package/.framework/src/components/ui/separator.tsx +42 -43
  280. package/.framework/src/components/ui/sheet.tsx +170 -159
  281. package/.framework/src/components/ui/sidebar.tsx +395 -398
  282. package/.framework/src/components/ui/skeleton.tsx +42 -43
  283. package/.framework/src/components/ui/slider.tsx +61 -44
  284. package/.framework/src/components/ui/sonner.tsx +44 -44
  285. package/.framework/src/components/ui/spinner.tsx +47 -42
  286. package/.framework/src/components/ui/switch.tsx +56 -42
  287. package/.framework/src/components/ui/table-primitives.tsx +272 -132
  288. package/.framework/src/components/ui/table.tsx +140 -142
  289. package/.framework/src/components/ui/tabs.tsx +110 -93
  290. package/.framework/src/components/ui/textarea.tsx +43 -44
  291. package/.framework/src/components/ui/toggle-group.tsx +87 -71
  292. package/.framework/src/components/ui/toggle.tsx +56 -56
  293. package/.framework/src/components/ui/tooltip.tsx +99 -85
  294. package/.framework/src/contexts/AppContext.tsx +166 -114
  295. package/.framework/src/contexts/AuthContext.tsx +232 -137
  296. package/.framework/src/hooks/use-mobile.ts +43 -44
  297. package/.framework/src/hooks/useApi.ts +185 -172
  298. package/.framework/src/hooks/useAppPath.ts +31 -29
  299. package/.framework/src/hooks/useApps.ts +77 -42
  300. package/.framework/src/hooks/useEntityList.ts +66 -29
  301. package/.framework/src/hooks/useEntityRecord.ts +76 -32
  302. package/.framework/src/hooks/useForm.ts +62 -30
  303. package/.framework/src/hooks/useListSchema.ts +60 -43
  304. package/.framework/src/hooks/useSchemaRecord.ts +115 -95
  305. package/.framework/src/lib/api.ts +258 -134
  306. package/.framework/src/lib/registration.ts +181 -0
  307. package/.framework/src/lib/supabase.ts +118 -81
  308. package/.framework/src/lib/utils.ts +266 -266
  309. package/.framework/src/main.tsx +43 -44
  310. package/.framework/src/pages/DashboardPage.tsx +44 -43
  311. package/.framework/src/pages/NoAppPage.tsx +50 -0
  312. package/.framework/src/pages/NotFoundPage.tsx +32 -29
  313. package/.framework/src/pages/SetupPage.tsx +34 -33
  314. package/.framework/src/pages/admin/AIAgentDetailPage.tsx +69 -58
  315. package/.framework/src/pages/admin/AIAgentsPage.tsx +43 -40
  316. package/.framework/src/pages/admin/APIKeyDetailPage.tsx +63 -55
  317. package/.framework/src/pages/admin/APIKeysPage.tsx +44 -42
  318. package/.framework/src/pages/admin/AlertsConfigPage.tsx +117 -94
  319. package/.framework/src/pages/admin/AppDetailPage.tsx +48 -42
  320. package/.framework/src/pages/admin/AppsPage.tsx +45 -42
  321. package/.framework/src/pages/admin/DeliveriesPage.tsx +49 -17
  322. package/.framework/src/pages/admin/DesignedPage.tsx +31 -30
  323. package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +58 -0
  324. package/.framework/src/pages/admin/EmbeddingsPage.tsx +49 -0
  325. package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +31 -29
  326. package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +46 -29
  327. package/.framework/src/pages/admin/IntegratedDashboard.tsx +32 -29
  328. package/.framework/src/pages/admin/IntegrationDetailPage.tsx +68 -55
  329. package/.framework/src/pages/admin/IntegrationsPage.tsx +45 -42
  330. package/.framework/src/pages/admin/InvitesPage.tsx +60 -44
  331. package/.framework/src/pages/admin/LogsPage.tsx +87 -137
  332. package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +31 -29
  333. package/.framework/src/pages/admin/ObservabilityDashboard.tsx +150 -89
  334. package/.framework/src/pages/admin/PipelineDetailPage.tsx +77 -104
  335. package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +44 -43
  336. package/.framework/src/pages/admin/PipelinesPage.tsx +59 -145
  337. package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +53 -42
  338. package/.framework/src/pages/admin/PromptConfigsPage.tsx +47 -117
  339. package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +31 -44
  340. package/.framework/src/pages/admin/RoleDetailPage.tsx +49 -92
  341. package/.framework/src/pages/admin/RolesPage.tsx +47 -164
  342. package/.framework/src/pages/admin/SecurityPage.tsx +310 -0
  343. package/.framework/src/pages/admin/SelectTestPage.tsx +30 -32
  344. package/.framework/src/pages/admin/ShadcnTestPage.tsx +37 -44
  345. package/.framework/src/pages/admin/SimpleDashboard.tsx +32 -44
  346. package/.framework/src/pages/admin/TestRunDetailPage.tsx +97 -44
  347. package/.framework/src/pages/admin/TestingDashboard.tsx +126 -71
  348. package/.framework/src/pages/admin/TimerDetailPage.tsx +67 -55
  349. package/.framework/src/pages/admin/TimersPage.tsx +44 -42
  350. package/.framework/src/pages/admin/TriggerDetailPage.tsx +47 -42
  351. package/.framework/src/pages/admin/TriggersPage.tsx +58 -57
  352. package/.framework/src/pages/admin/TypeDetailPage.tsx +91 -55
  353. package/.framework/src/pages/admin/TypesPage.tsx +45 -42
  354. package/.framework/src/pages/admin/cil/CILAgentPage.tsx +258 -128
  355. package/.framework/src/pages/admin/cil/CILChunkDetailPage.tsx +127 -123
  356. package/.framework/src/pages/admin/cil/CILDashboardPage.tsx +308 -235
  357. package/.framework/src/pages/admin/cil/CILFileListPage.tsx +159 -110
  358. package/.framework/src/pages/admin/cil/CILFileSelectPage.tsx +432 -0
  359. package/.framework/src/pages/admin/cil/CILGraphPage.tsx +200 -178
  360. package/.framework/src/pages/admin/cil/CILIngestionPage.tsx +286 -239
  361. package/.framework/src/pages/admin/cil/CILProjectsPage.tsx +211 -90
  362. package/.framework/src/pages/admin/cil/CILSearchPage.tsx +156 -143
  363. package/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx +379 -0
  364. package/.framework/src/pages/admin/cil/CILVersionsPage.tsx +337 -0
  365. package/.framework/src/pages/admin/cil/FlexiblePipelinePage.tsx +219 -214
  366. package/.framework/src/pages/admin/kb/KBAdminPage.tsx +64 -0
  367. package/.framework/src/pages/auth/AuthConfirmPage.tsx +135 -65
  368. package/.framework/src/pages/auth/ForgotPasswordPage.tsx +39 -31
  369. package/.framework/src/pages/auth/LoginPage.tsx +38 -32
  370. package/.framework/src/pages/auth/PendingApprovalPage.tsx +31 -28
  371. package/.framework/src/pages/auth/RegisterPage.tsx +429 -155
  372. package/.framework/src/pages/spine-framework/APIPage.tsx +33 -30
  373. package/.framework/src/pages/spine-framework/CLIPage.tsx +32 -30
  374. package/.framework/src/types/auth.ts +101 -93
  375. package/.framework/src/types/types.ts +283 -262
  376. package/.framework/templates/project.json +87 -0
  377. package/.framework/templates/spine.config.neutral.json +7 -0
  378. package/.framework/tests/api/api-surface.test.ts +381 -0
  379. package/.framework/tests/fixtures/seed.ts +427 -0
  380. package/.framework/tests/fixtures/teardown.ts +228 -0
  381. package/.framework/tests/reporter.ts +351 -0
  382. package/.framework/tests/setup.ts +135 -0
  383. package/.framework/tests/ui/ui-sweep.ts +278 -0
  384. package/.framework/tests/unit/admin-data-logger.test.ts +310 -0
  385. package/.framework/tests/unit/agent-runner.test.ts +2389 -0
  386. package/.framework/tests/unit/ai-interactions.test.ts +81 -0
  387. package/.framework/tests/unit/app-manifest.test.ts +359 -0
  388. package/.framework/tests/unit/assembly-scripts.test.ts +172 -0
  389. package/.framework/tests/unit/cil-determinism.test.ts +85 -0
  390. package/.framework/tests/unit/core-isolation.test.ts +153 -0
  391. package/.framework/tests/unit/funnel-signals.test.ts +135 -0
  392. package/.framework/tests/unit/install-app.test.ts +1759 -0
  393. package/.framework/tests/unit/invites-security.test.ts +572 -0
  394. package/.framework/tests/unit/kb-ingest-lease.test.ts +287 -0
  395. package/.framework/tests/unit/kb-search.test.ts +119 -0
  396. package/.framework/tests/unit/migrate.test.ts +509 -0
  397. package/.framework/tests/unit/notify.test.ts +136 -0
  398. package/.framework/tests/unit/permissions.test.ts +269 -0
  399. package/.framework/tests/unit/pipeline-runner.test.ts +755 -0
  400. package/.framework/tests/unit/principal-cache.test.ts +138 -0
  401. package/.framework/tests/unit/retrieval-golden.test.ts +520 -0
  402. package/.framework/tests/unit/runtime-isolation.test.ts +642 -0
  403. package/.framework/tests/unit/schema-utils.test.ts +225 -0
  404. package/.framework/tests/unit/trigger-engine.test.ts +513 -0
  405. package/.framework/tests/unit/validate-app.test.ts +527 -0
  406. package/README.md +34 -3
  407. package/bin/spine-framework.cjs +1 -0
  408. package/config/tailwind.config.cjs +7 -0
  409. package/config/tsconfig.functions.json +42 -0
  410. package/config/tsconfig.json +37 -9
  411. package/config/vite.config.ts +31 -2
  412. package/netlify.toml +31 -3
  413. package/package.json +46 -29
  414. package/scripts/assemble-frontend.sh +127 -44
  415. package/scripts/assemble-functions.sh +127 -29
  416. package/scripts/boundary-check.sh +6 -2
  417. package/scripts/build-manifest.sh +24 -68
  418. package/scripts/checksum-manifest.mts +345 -0
  419. package/scripts/dev-clean.sh +86 -0
  420. package/scripts/dev-netlify.sh +49 -0
  421. package/scripts/netlify-dev-wrapper.sh +2 -0
  422. package/scripts/verify-install.ts +358 -0
  423. package/scripts/verify-integrity.sh +21 -57
  424. package/scripts/verify-manifest.mts +305 -0
  425. package/templates/project/gitignore +45 -0
  426. package/{config → templates/project}/package-lock.json +22335 -9366
  427. package/vitest.config.ts +46 -0
  428. package/.framework/public/spine.config.json +0 -91
  429. package/config/deno.lock +0 -108
  430. package/config/tsconfig.node.tsbuildinfo +0 -1
  431. package/config/tsconfig.tsbuildinfo +0 -1
  432. package/config/vite.config.d.ts +0 -2
  433. package/custom/.devin/AGENT.md +0 -357
  434. package/custom/.devin/skills/install-app/SKILL.md +0 -39
  435. package/custom/.devin/skills/spine-workbench-discovery/SKILL.md +0 -39
  436. package/custom/.devin/skills/spine-workbench-idea/SKILL.md +0 -36
  437. package/custom/.devin/skills/spine-workbench-implement/SKILL.md +0 -46
  438. package/custom/.devin/skills/spine-workbench-initiative/SKILL.md +0 -28
  439. package/custom/.devin/skills/spine-workbench-plan/SKILL.md +0 -38
  440. package/custom/.devin/workflows/app-install.yaml +0 -83
  441. package/custom/README.md +0 -79
  442. package/docs/README.md +0 -15
  443. package/scripts/app-install-cli.ts +0 -286
  444. package/scripts/check-core-integrity.sh +0 -82
  445. package/scripts/ingest-chunks.cjs +0 -202
  446. package/scripts/kb-chunk-parser.cjs +0 -312
  447. package/scripts/kb-chunk-parser.ts +0 -330
  448. package/scripts/kb-ingest-docs.ts +0 -203
  449. package/scripts/load-test-app-install.ts +0 -484
  450. package/scripts/test-login.js +0 -33
  451. package/spine.config.json +0 -91
@@ -1,59 +1,69 @@
1
-
2
-
3
-
4
- // CIL[BEGIN chunk_id="invitespage_module_header_1783668265" type="module_header" identity="module_header" parent="none"]
5
- // CIL[DOC-MACRO purpose="Import dependencies for InvitesPage component"]
6
- // CIL[DOC-RESPONSIBILITY responsibility="Import React and shared components"]
7
- // CIL[DOC-CONTEXT module="InvitesPage" layer="presentation" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
8
- // CIL[DOC-CONTRACT inputs="none" outputs="Imported modules" errors="none" side_effects="none"]
9
- // CIL[DOC-MICRO logic_summary="Imports React, InviteManager component, and auth context" notable_decisions="[]"]
10
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
1
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/InvitesPage.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/InvitesPage.tsx"]
2
+ // CIL[DOC-MACRO purpose="Admin page for managing system administrator invites and access within the Spine Framework."]
3
+ // CIL[DOC-RESPONSIBILITY responsibility="Declares the module, imports dependencies, and exports the InvitesPage component."]
4
+ // CIL[DOC-CONTEXT module="admin" layer="page" related_files=".framework/src/components/shared/InviteManager.tsx,.framework/src/contexts/AuthContext.tsx"]
5
+ // CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
6
+ // CIL[DOC-MICRO logic_summary="Sets up the admin invites page module and its runtime dependencies." notable_decisions="[]"]
7
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
11
8
  // CIL[DOC-STABILITY stability="stable"]
12
- // CIL[DOC-AUDIENCE audience="developer"]
13
- // CIL[DOC-VECTOR type="context" content="Layer: presentation. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/src/components/ui/dialog.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
14
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
15
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
16
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
17
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
18
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
9
+ // CIL[DOC-AUDIENCE audience="maintainer"]
19
10
  import React from 'react'
20
11
  import { InviteManager } from '../../components/shared/InviteManager'
21
12
  import { useAuth } from '../../contexts/AuthContext'
22
- // CIL[END chunk_id="invitespage_module_header_1783668265"]
23
- // CIL[BEGIN chunk_id="invitespage_constant_framework_roles_1783668265" type="constant" identity="FRAMEWORK_ROLES" parent="none"]
24
- // CIL[DOC-MACRO purpose="Define framework admin roles"]
25
- // CIL[DOC-RESPONSIBILITY responsibility="Configure available system admin roles"]
26
- // CIL[DOC-CONTEXT module="InvitesPage" layer="constants" related_files="[\".framework/src/pages/admin/RolesPage.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
27
- // CIL[DOC-CONTRACT inputs="none" outputs="Role constants" errors="none" side_effects="none"]
28
- // CIL[DOC-MICRO logic_summary="Defines system admin role with slug and name" notable_decisions="[]"]
29
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
30
- // CIL[DOC-STABILITY stability="stable"]
31
- // CIL[DOC-VECTOR type="context" content="Layer: constants. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/RolesPage.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
32
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
33
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
34
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
13
+ // CIL[DOC-VECTOR type="context" content="purpose='Admin page for managing system administrator invites and access within the Spine Framework.'; No verified external callers; imports: .framework/src/components/shared/InviteManager.tsx,.framework/src/contexts/AuthContext.tsx"]
14
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
15
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
16
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
35
17
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
36
18
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
19
+ // CIL[END stable_id="~/.framework/src/pages/admin/InvitesPage.tsx:module_header:module_header"]
20
+
21
+
22
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/InvitesPage.tsx:framework_roles:constant" type="constant" identity="FRAMEWORK_ROLES" parent="~/.framework/src/pages/admin/InvitesPage.tsx"]
23
+ // CIL[DOC-MACRO purpose="Defines the list of framework-level admin roles available for invites."]
24
+ // CIL[DOC-RESPONSIBILITY responsibility="Provides a static array of role objects used by the InviteManager."]
25
+ // CIL[DOC-CONTEXT module="admin" layer="constant" related_files=".framework/src/components/shared/InviteManager.tsx,.framework/src/contexts/AuthContext.tsx,.framework/src/pages/admin/InvitesPage.tsx"]
26
+ // CIL[DOC-CONTRACT inputs="none" outputs="FRAMEWORK_ROLES array of { slug, name }" errors="none" side_effects="none"]
27
+ // CIL[DOC-MICRO logic_summary="Hardcodes the system_admin role configuration." notable_decisions="[]"]
28
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
29
+ // CIL[DOC-STABILITY stability="stable"]
37
30
  const FRAMEWORK_ROLES = [
38
31
  { slug: 'system_admin', name: 'System Admin' },
39
32
  ]
33
+ // CIL[DOC-VECTOR type="context" content="purpose='Defines the list of framework-level admin roles available for invites.'; No verified external callers; imports: .framework/src/components/shared/InviteManager.tsx,.framework/src/contexts/AuthContext.tsx"]
34
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
35
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
36
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
37
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
38
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
39
+ // CIL[END stable_id="~/.framework/src/pages/admin/InvitesPage.tsx:framework_roles:constant"]
40
40
 
41
- const FRAMEWORK_ROLE_SLUGS = FRAMEWORK_ROLES.map(r => r.slug).join(',')
42
- // CIL[END chunk_id="invitespage_constant_framework_roles_1783668265"]
43
- // CIL[BEGIN chunk_id="invitespage_function_invitespage_1783668265" type="function" identity="InvitesPage" parent="none"]
44
- // CIL[DOC-MACRO purpose="Main InvitesPage component implementation"]
45
- // CIL[DOC-RESPONSIBILITY responsibility="Render invite management interface for system admins"]
46
- // CIL[DOC-CONTEXT module="InvitesPage" layer="presentation" related_files="[\".framework/src/components/ui/dialog.tsx\",\".framework/src/components/layout/Sidebar.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
47
- // CIL[DOC-CONTRACT inputs="none" outputs="React component" errors="Auth context errors" side_effects="none"]
48
- // CIL[DOC-MICRO logic_summary="Renders page header and InviteManager with framework roles" notable_decisions="[]"]
49
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
41
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/InvitesPage.tsx:framework_role_slugs:constant" type="constant" identity="FRAMEWORK_ROLE_SLUGS" parent="~/.framework/src/pages/admin/InvitesPage.tsx"]
42
+ // CIL[DOC-MACRO purpose="Computes a comma-separated string of framework role slugs for filtering."]
43
+ // CIL[DOC-RESPONSIBILITY responsibility="Derives a string filter from FRAMEWORK_ROLES for the InviteManager roleSlugsFilter prop."]
44
+ // CIL[DOC-CONTEXT module="admin" layer="constant" related_files=".framework/src/components/shared/InviteManager.tsx,.framework/src/contexts/AuthContext.tsx,.framework/src/pages/admin/InvitesPage.tsx"]
45
+ // CIL[DOC-CONTRACT inputs="FRAMEWORK_ROLES" outputs="FRAMEWORK_ROLE_SLUGS comma-delimited string" errors="none" side_effects="none"]
46
+ // CIL[DOC-MICRO logic_summary="Maps FRAMEWORK_ROLES to slugs and joins them with commas." notable_decisions="[]"]
47
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
50
48
  // CIL[DOC-STABILITY stability="stable"]
51
- // CIL[DOC-VECTOR type="context" content="Layer: presentation. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/src/components/layout/Sidebar.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
52
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
53
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
54
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
49
+ const FRAMEWORK_ROLE_SLUGS = FRAMEWORK_ROLES.map(r => r.slug).join(',')
50
+ // CIL[DOC-VECTOR type="context" content="purpose='Computes a comma-separated string of framework role slugs for filtering.'; No verified external callers; imports: .framework/src/components/shared/InviteManager.tsx,.framework/src/contexts/AuthContext.tsx"]
51
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
52
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
53
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
55
54
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
56
55
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
56
+ // CIL[END stable_id="~/.framework/src/pages/admin/InvitesPage.tsx:framework_role_slugs:constant"]
57
+
58
+
59
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/InvitesPage.tsx:invitespage:function" type="function" identity="InvitesPage" parent="~/.framework/src/pages/admin/InvitesPage.tsx"]
60
+ // CIL[DOC-MACRO purpose="Renders the admin invites and access page for the Spine Framework."]
61
+ // CIL[DOC-RESPONSIBILITY responsibility="Fetches the current user from auth context and renders an InviteManager scoped to the account."]
62
+ // CIL[DOC-CONTEXT module="admin" layer="page" related_files=".framework/src/components/shared/InviteManager.tsx,.framework/src/contexts/AuthContext.tsx,.framework/src/pages/admin/InvitesPage.tsx"]
63
+ // CIL[DOC-CONTRACT inputs="useAuth context; user?.account_id" outputs="JSX page with InviteManager" errors="none" side_effects="renders UI; passes scope, accountId, allowedRoles, roleSlugsFilter to InviteManager"]
64
+ // CIL[DOC-MICRO logic_summary="Uses useAuth to retrieve the authenticated user, then renders a page heading and the InviteManager configured for account scope with allowed framework roles and a slug filter." notable_decisions="[]"]
65
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
66
+ // CIL[DOC-STABILITY stability="stable"]
57
67
  export function InvitesPage() {
58
68
  const { user } = useAuth()
59
69
 
@@ -75,4 +85,10 @@ export function InvitesPage() {
75
85
  </div>
76
86
  )
77
87
  }
78
- // CIL[END chunk_id="invitespage_function_invitespage_1783668265"]
88
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders the admin invites and access page for the Spine Framework.'; No verified external callers; imports: .framework/src/components/shared/InviteManager.tsx,.framework/src/contexts/AuthContext.tsx"]
89
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
90
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
91
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
92
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
93
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
94
+ // CIL[END stable_id="~/.framework/src/pages/admin/InvitesPage.tsx:invitespage:function"]
@@ -1,23 +1,19 @@
1
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/LogsPage.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/LogsPage.tsx"]
2
+ // CIL[DOC-MACRO purpose="Provides the admin system logs page for viewing the audit trail and event history"]
3
+ // CIL[DOC-RESPONSIBILITY responsibility="Imports UI dependencies and exports the LogsPage component for admin routing"]
4
+ // CIL[DOC-CONTEXT module="admin" layer="presentation" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts"]
5
+ // CIL[DOC-CONTRACT inputs="none" outputs="LogsPage component module" errors="none" side_effects="none"]
6
+ // CIL[DOC-MICRO logic_summary="Sets up imports and default export for the admin logs page" notable_decisions="[]"]
7
+ // CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
8
+ // CIL[DOC-STABILITY stability="stable"]
9
+ // CIL[DOC-AUDIENCE audience="developers"]
10
+
11
+
1
12
 
2
13
 
3
14
 
4
15
 
5
16
 
6
- // CIL[BEGIN chunk_id="logspage_module_header_1783666257" type="module_header" identity="imports" parent="none"]
7
- // CIL[DOC-MACRO purpose="Import React dependencies and UI components"]
8
- // CIL[DOC-RESPONSIBILITY responsibility="Import all required modules for LogsPage component"]
9
- // CIL[DOC-CONTEXT module="LogsPage" 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/layout/Sidebar.tsx\",\"custom/apps/portal/pages/CoursesPage.tsx\",\"\\\"]"]
10
- // CIL[DOC-CONTRACT inputs="none" outputs="React hooks, UI components, utilities" errors="Import errors" side_effects="Module loading"]
11
- // CIL[DOC-MICRO logic_summary="Imports React, icons, UI components, 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/components/ui/dialog.tsx, .framework/src/components/layout/Sidebar.tsx, custom/apps/portal/pages/CoursesPage.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"]
21
17
  import React, { useState, useEffect } from 'react'
22
18
  import { FileText, Search, Calendar, AlertTriangle, CheckCircle, User, X } from 'lucide-react';
23
19
  import { LoadingSpinner } from '../../components/ui/LoadingSpinner'
@@ -28,21 +24,23 @@ import { SortableTableHeader } from '../../components/admin/SortableTableHeader'
28
24
  import { formatDateTime } from '../../lib/utils'
29
25
  import { useApi } from '../../hooks/useApi'
30
26
  import { apiFetch } from '../../lib/api'
31
- // CIL[END chunk_id="logspage_module_header_1783666257"]
32
- // CIL[BEGIN chunk_id="logspage_interface_logentry_1783666257" type="interface" identity="LogEntry" parent="none"]
33
- // CIL[DOC-MACRO purpose="Define log entry data structure"]
34
- // CIL[DOC-RESPONSIBILITY responsibility="Type definition for log entries"]
35
- // CIL[DOC-CONTEXT module="LogsPage" layer="types" related_files="[\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\".framework/functions/_shared/principal.ts\",\"\\\"]"]
36
- // CIL[DOC-CONTRACT inputs="none" outputs="LogEntry interface" errors="Type errors" side_effects="Type system"]
37
- // CIL[DOC-MICRO logic_summary="Defines structure for system log entries with optional fields" notable_decisions="[]"]
38
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
39
- // CIL[DOC-STABILITY stability="stable"]
40
- // CIL[DOC-VECTOR type="context" content="Layer: types. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/IntegrationsPage.tsx, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/schema-utils.ts, custom/apps/cortex/functions/custom_cil-embeddings.ts, .framework/functions/_shared/principal.ts, \."]
41
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
42
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
43
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
27
+
28
+ // CIL[DOC-VECTOR type="context" content="purpose='Provides the admin system logs page for viewing the audit trail and event history'; No verified external callers; imports: .framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
29
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
30
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
31
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
44
32
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
45
33
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
34
+ // CIL[END stable_id="~/.framework/src/pages/admin/LogsPage.tsx:module_header:module_header"]
35
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/LogsPage.tsx:LogEntry:interface" type="interface" identity="LogEntry" parent="~/.framework/src/pages/admin/LogsPage.tsx"]
36
+ // CIL[DOC-MACRO purpose="Defines the shape of a system log record"]
37
+ // CIL[DOC-RESPONSIBILITY responsibility="Provides a TypeScript type contract for log entry data"]
38
+ // CIL[DOC-CONTEXT module="admin" layer="types" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/LogsPage.tsx"]
39
+ // CIL[DOC-CONTRACT inputs="n/a" outputs="LogEntry interface" errors="n/a" side_effects="n/a"]
40
+ // CIL[DOC-MICRO logic_summary="Declares required and optional fields for log events, actor metadata, and tracing" notable_decisions="[]"]
41
+ // CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
42
+ // CIL[DOC-STABILITY stability="stable"]
43
+
46
44
  interface LogEntry {
47
45
  id: string
48
46
  event_type: string
@@ -68,11 +66,45 @@ interface LogEntry {
68
66
  email: string
69
67
  }
70
68
  }
69
+ // CIL[DOC-VECTOR type="context" content="purpose='Defines the shape of a system log record'; No verified external callers; imports: .framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
70
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
71
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
72
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
73
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
74
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
75
+ // CIL[END stable_id="~/.framework/src/pages/admin/LogsPage.tsx:LogEntry:interface"]
76
+
77
+
78
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/LogsPage.tsx:LogsResponse:interface" type="interface" identity="LogsResponse" parent="~/.framework/src/pages/admin/LogsPage.tsx"]
79
+ // CIL[DOC-MACRO purpose="Defines the paginated API response shape for log listings"]
80
+ // CIL[DOC-RESPONSIBILITY responsibility="Provides a TypeScript type contract for log list responses"]
81
+ // CIL[DOC-CONTEXT module="admin" layer="types" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/LogsPage.tsx"]
82
+ // CIL[DOC-CONTRACT inputs="n/a" outputs="LogsResponse interface" errors="n/a" side_effects="n/a"]
83
+ // CIL[DOC-MICRO logic_summary="Declares data array and total count fields for log responses" notable_decisions="[]"]
84
+ // CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
85
+ // CIL[DOC-STABILITY stability="stable"]
71
86
 
72
87
  interface LogsResponse {
73
88
  data: LogEntry[]
74
89
  total: number
75
90
  }
91
+ // CIL[DOC-VECTOR type="context" content="purpose='Defines the paginated API response shape for log listings'; No verified external callers; imports: .framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
92
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
93
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
94
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
95
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
96
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
97
+ // CIL[END stable_id="~/.framework/src/pages/admin/LogsPage.tsx:LogsResponse:interface"]
98
+
99
+
100
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/LogsPage.tsx:StatsResponse:interface" type="interface" identity="StatsResponse" parent="~/.framework/src/pages/admin/LogsPage.tsx"]
101
+ // CIL[DOC-MACRO purpose="Defines the shape of aggregated log statistics"]
102
+ // CIL[DOC-RESPONSIBILITY responsibility="Provides a TypeScript type contract for log stats responses"]
103
+ // CIL[DOC-CONTEXT module="admin" layer="types" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/LogsPage.tsx"]
104
+ // CIL[DOC-CONTRACT inputs="n/a" outputs="StatsResponse interface" errors="n/a" side_effects="n/a"]
105
+ // CIL[DOC-MICRO logic_summary="Declares count metrics and category arrays for log statistics" notable_decisions="[]"]
106
+ // CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
107
+ // CIL[DOC-STABILITY stability="stable"]
76
108
 
77
109
  interface StatsResponse {
78
110
  total: number
@@ -83,21 +115,23 @@ interface StatsResponse {
83
115
  sources: string[]
84
116
  source_types: string[]
85
117
  }
86
- // CIL[END chunk_id="logspage_interface_logentry_1783666257"]
87
- // CIL[BEGIN chunk_id="logspage_function_logspage_1783666257" type="function" identity="LogsPage" parent="none"]
88
- // CIL[DOC-MACRO purpose="Render the complete logs interface"]
89
- // CIL[DOC-RESPONSIBILITY responsibility="Main render logic for logs page"]
90
- // CIL[DOC-CONTEXT module="LogsPage" layer="ui" related_files="[\".framework/src/pages/admin/RolesPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/layout/Sidebar.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"custom/apps/portal/pages/ContentPage.tsx\"]"]
91
- // CIL[DOC-CONTRACT inputs="none" outputs="JSX structure" errors="Render errors" side_effects="DOM updates"]
92
- // CIL[DOC-MICRO logic_summary="Renders AdminListPage with date filters, table, and empty states" notable_decisions="[]"]
93
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
94
- // CIL[DOC-STABILITY stability="stable"]
95
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/RolesPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/layout/Sidebar.tsx, .framework/functions/_shared/schema-utils.ts, custom/apps/portal/pages/ContentPage.tsx."]
96
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
97
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
98
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
118
+ // CIL[DOC-VECTOR type="context" content="purpose='Defines the shape of aggregated log statistics'; No verified external callers; imports: .framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
119
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
120
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
121
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
99
122
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
100
123
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
124
+ // CIL[END stable_id="~/.framework/src/pages/admin/LogsPage.tsx:StatsResponse:interface"]
125
+
126
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/LogsPage.tsx:LogsPage:component" type="component" identity="LogsPage" parent="~/.framework/src/pages/admin/LogsPage.tsx"]
127
+ // CIL[DOC-MACRO purpose="Renders the admin system logs UI with filters, sorting, and pagination"]
128
+ // CIL[DOC-RESPONSIBILITY responsibility="Fetches and displays logs and stats, manages filter and sort state, renders table and pagination"]
129
+ // CIL[DOC-CONTEXT module="admin" layer="presentation" related_files=".framework/src/components/admin/AdminListPage.tsx,.framework/src/components/admin/SortableTableHeader.tsx,.framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx,.framework/src/hooks/useApi.ts,.framework/src/lib/api.ts,.framework/src/lib/utils.ts,.framework/src/pages/admin/LogsPage.tsx"]
130
+ // CIL[DOC-CONTRACT inputs="props: { title?: string }" outputs="JSX.Element" errors="API errors surfaced via useApi" side_effects="HTTP requests to /api/logs; React state updates"]
131
+ // CIL[DOC-MICRO logic_summary="Builds query URL, fetches logs and stats with useApi, manages filters/sort/pagination, renders log table" notable_decisions="[]"]
132
+ // CIL[DOC-CONFIDENCE pass="second" score="0.85" flags="none"]
133
+ // CIL[DOC-STABILITY stability="stable"]
134
+
101
135
  export function LogsPage({ title = 'System Logs' }: { title?: string }) {
102
136
  const [searchTerm, setSearchTerm] = useState('')
103
137
  const [selectedEventType, setSelectedEventType] = useState('all')
@@ -133,20 +167,6 @@ export function LogsPage({ title = 'System Logs' }: { title?: string }) {
133
167
  return `/api/logs?${params.toString()}`
134
168
  }
135
169
 
136
- // CIL[BEGIN chunk_id="logspage_hooks_1783666257" type="hooks" identity="useApi" parent="logspage_function_logspage_1783666257"]
137
- // CIL[DOC-MACRO purpose="Fetch logs and stats data from API"]
138
- // CIL[DOC-RESPONSIBILITY responsibility="Handle useApi"]
139
- // CIL[DOC-CONTEXT module="LogsPage" layer="data" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\"\\\"]"]
140
- // CIL[DOC-CONTRACT inputs="none" outputs="logs data, stats data" errors="API errors" side_effects="HTTP requests"]
141
- // CIL[DOC-MICRO logic_summary="Uses useApi hook to fetch logs and statistics with date filtering" notable_decisions="[]"]
142
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
143
- // CIL[DOC-STABILITY stability="stable"]
144
- // CIL[DOC-VECTOR type="context" content="Layer: data. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/functions/_shared/schema-utils.ts, \."]
145
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
146
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
147
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
148
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
149
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
150
170
  const { data: logsData, loading, error, refetch } = useApi<LogsResponse>(
151
171
  async () => {
152
172
  const response = await apiFetch(buildLogUrl())
@@ -181,42 +201,12 @@ export function LogsPage({ title = 'System Logs' }: { title?: string }) {
181
201
  useEffect(() => {
182
202
  setPage(1)
183
203
  }, [searchTerm, selectedEventType, selectedSource, selectedSourceType, sourceIdFilter, actorIdFilter, traceIdFilter, dateFrom, dateTo])
184
- // CIL[END chunk_id="logspage_hooks_1783666257"]
185
-
186
- // CIL[BEGIN chunk_id="logspage_filters_1783666257" type="filter_logic" identity="filteredLogs" parent="logspage_function_logspage_1783666257"]
187
- // CIL[DOC-MACRO purpose="Filter logs by search and event type"]
188
- // CIL[DOC-RESPONSIBILITY responsibility="Handle filteredLogs"]
189
- // CIL[DOC-CONTEXT module="LogsPage" layer="logic" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/migrations/025_retype_threads_messages.sql\",\"\\\"]"]
190
- // CIL[DOC-CONTRACT inputs="none" outputs="filtered logs" errors="none" side_effects="none"]
191
- // CIL[DOC-MICRO logic_summary="Filters logs based on search term and event type selection" notable_decisions="[]"]
192
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
193
- // CIL[DOC-STABILITY stability="stable"]
194
- // CIL[DOC-VECTOR type="context" content="Layer: logic. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/migrations/025_retype_threads_messages.sql, \."]
195
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
196
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
197
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
198
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
199
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
204
+
200
205
  const filteredLogs = logs || []
201
206
 
202
207
  const eventTypes = stats?.levels || []
203
208
  const sourceOptions = stats?.sources || []
204
- // CIL[END chunk_id="logspage_filters_1783666257"]
205
-
206
- // CIL[BEGIN chunk_id="logspage_sorting_1783666257" type="sorting_logic" identity="handleSort" parent="logspage_function_logspage_1783666257"]
207
- // CIL[DOC-MACRO purpose="Handle column sorting for logs table"]
208
- // CIL[DOC-RESPONSIBILITY responsibility="Handle handleSort"]
209
- // CIL[DOC-CONTEXT module="handleSort" layer="unknown" related_files="[]"]
210
- // CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
211
- // CIL[DOC-MICRO logic_summary="Implements handleSort" notable_decisions="[]"]
212
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
213
- // CIL[DOC-STABILITY stability="stable"]
214
- // CIL[DOC-VECTOR type="context" content="Layer: unknown. Direct callers: 0. Direct calls: 0. Related files: none."]
215
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
216
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
217
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
218
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
219
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
209
+
220
210
  const handleSort = (key: string) => {
221
211
  if (sortKey === key) {
222
212
  setSortDirection(sortDirection === 'asc' ? 'desc' : 'asc')
@@ -238,22 +228,7 @@ export function LogsPage({ title = 'System Logs' }: { title?: string }) {
238
228
 
239
229
  return 0
240
230
  })
241
- // CIL[END chunk_id="logspage_sorting_1783666257"]
242
-
243
- // CIL[BEGIN chunk_id="logspage_badge_1783666257" type="utility_function" identity="getEventTypeBadge" parent="logspage_function_logspage_1783666257"]
244
- // CIL[DOC-MACRO purpose="Generate colored badges for event types"]
245
- // CIL[DOC-RESPONSIBILITY responsibility="Handle getEventTypeBadge"]
246
- // CIL[DOC-CONTEXT module="getEventTypeBadge" layer="unknown" related_files="[]"]
247
- // CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
248
- // CIL[DOC-MICRO logic_summary="Implements getEventTypeBadge" notable_decisions="[]"]
249
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
250
- // CIL[DOC-STABILITY stability="stable"]
251
- // CIL[DOC-VECTOR type="context" content="Layer: unknown. Direct callers: 0. Direct calls: 0. Related files: none."]
252
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
253
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
254
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
255
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
256
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
231
+
257
232
  const getEventTypeBadge = (eventType: string) => {
258
233
  if (eventType.includes('error') || eventType.includes('failed')) {
259
234
  return <span className="inline-flex px-2 py-0.5 text-xs font-medium rounded-md bg-red-100 text-red-700">{eventType}</span>
@@ -266,22 +241,7 @@ export function LogsPage({ title = 'System Logs' }: { title?: string }) {
266
241
  }
267
242
  return <span className="inline-flex px-2 py-0.5 text-xs font-medium rounded-md bg-slate-100 text-slate-600">{eventType}</span>
268
243
  }
269
- // CIL[END chunk_id="logspage_badge_1783666257"]
270
-
271
- // CIL[BEGIN chunk_id="logspage_stats_1783666257" type="stats_config" identity="statsCards" parent="logspage_function_logspage_1783666257"]
272
- // CIL[DOC-MACRO purpose="Configure statistics cards and filters"]
273
- // CIL[DOC-RESPONSIBILITY responsibility="Handle statsCards"]
274
- // CIL[DOC-CONTEXT module="LogsPage" layer="ui" related_files="[]"]
275
- // CIL[DOC-CONTRACT inputs="none" outputs="stats cards, filter options" errors="none" side_effects="none"]
276
- // CIL[DOC-MICRO logic_summary="Creates stats cards and filter options for logs display" notable_decisions="[]"]
277
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
278
- // CIL[DOC-STABILITY stability="stable"]
279
- // CIL[DOC-VECTOR type="context" content="Layer: ui. Direct callers: 0. Direct calls: 0. Related files: none."]
280
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
281
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
282
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
283
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
284
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
244
+
285
245
  const statsCards = [
286
246
  {
287
247
  title: 'Total Events',
@@ -343,22 +303,7 @@ export function LogsPage({ title = 'System Logs' }: { title?: string }) {
343
303
  onChange: setSelectedSourceType
344
304
  }
345
305
  ]
346
- // CIL[END chunk_id="logspage_stats_1783666257"]
347
-
348
- // CIL[BEGIN chunk_id="logspage_render_1783666257" type="render_logic" identity="return" parent="logspage_function_logspage_1783666257"]
349
- // CIL[DOC-MACRO purpose="Render the complete logs interface"]
350
- // CIL[DOC-RESPONSIBILITY responsibility="Handle return"]
351
- // CIL[DOC-CONTEXT module="return" layer="unknown" related_files="[]"]
352
- // CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
353
- // CIL[DOC-MICRO logic_summary="Implements return" notable_decisions="[]"]
354
- // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
355
- // CIL[DOC-STABILITY stability="stable"]
356
- // CIL[DOC-VECTOR type="context" content="Layer: unknown. Direct callers: 0. Direct calls: 0. Related files: none."]
357
- // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
358
- // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
359
- // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
360
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
361
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
306
+
362
307
  return (
363
308
  <AdminListPage
364
309
  title={title}
@@ -626,5 +571,10 @@ export function LogsPage({ title = 'System Logs' }: { title?: string }) {
626
571
  </AdminListPage>
627
572
  )
628
573
  }
629
- // CIL[END chunk_id="logspage_render_1783666257"]
630
- // CIL[END chunk_id="logspage_function_logspage_1783666257"]
574
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders the admin system logs UI with filters, sorting, and pagination'; No verified external callers; imports: .framework/src/components/ui/LoadingSpinner.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/input.tsx"]
575
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
576
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
577
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
578
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
579
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
580
+ // CIL[END stable_id="~/.framework/src/pages/admin/LogsPage.tsx:LogsPage:component"]
@@ -1,41 +1,37 @@
1
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/MinimalShadcnTestPage.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/pages/admin/MinimalShadcnTestPage.tsx"]
2
+ // CIL[DOC-MACRO purpose="Declares the minimal shadcn test page module imports"]
3
+ // CIL[DOC-RESPONSIBILITY responsibility="Aggregates React and shadcn component imports for the test page"]
4
+ // CIL[DOC-CONTEXT module=".framework/src/pages/admin/MinimalShadcnTestPage.tsx" layer="presentation" related_files=".framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx"]
5
+ // CIL[DOC-CONTRACT inputs="none" outputs="none" errors="none" side_effects="none"]
6
+ // CIL[DOC-MICRO logic_summary="Contains module-level import declarations only" notable_decisions="[]"]
7
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
8
+ // CIL[DOC-STABILITY stability="stable"]
9
+ // CIL[DOC-AUDIENCE audience="developers"]
10
+
1
11
 
2
12
 
3
13
 
4
14
 
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"]
20
15
  import { useState } from 'react'
21
16
  import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '../../components/ui/card'
22
17
  import { Button } from '../../components/ui/button'
23
18
  import { Badge } from '../../components/ui/badge'
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."]
19
+
20
+ // CIL[DOC-VECTOR type="context" content="purpose='Declares the minimal shadcn test page module imports'; No verified external callers; imports: .framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/badge.tsx"]
21
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
22
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
23
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
37
24
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
38
25
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
26
+ // CIL[END stable_id="~/.framework/src/pages/admin/MinimalShadcnTestPage.tsx:module_header:module_header"]
27
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/MinimalShadcnTestPage.tsx:MinimalShadcnTestPage:component" type="component" identity="MinimalShadcnTestPage" parent="~/.framework/src/pages/admin/MinimalShadcnTestPage.tsx"]
28
+ // CIL[DOC-MACRO purpose="Renders a minimal UI to validate shadcn Card, Button, and Badge components"]
29
+ // CIL[DOC-RESPONSIBILITY responsibility="Displays interactive buttons and badge variants driven by local state"]
30
+ // CIL[DOC-CONTEXT module=".framework/src/pages/admin/MinimalShadcnTestPage.tsx" layer="presentation" related_files=".framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/pages/admin/MinimalShadcnTestPage.tsx"]
31
+ // CIL[DOC-CONTRACT inputs="none" outputs="JSX UI" errors="none" side_effects="none"]
32
+ // CIL[DOC-MICRO logic_summary="Manages a count state and renders cards, buttons, and badges" notable_decisions="[]"]
33
+ // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
34
+ // CIL[DOC-STABILITY stability="stable"]
39
35
  export function MinimalShadcnTestPage() {
40
36
  const [count, setCount] = useState(0)
41
37
 
@@ -107,4 +103,10 @@ export function MinimalShadcnTestPage() {
107
103
  </div>
108
104
  )
109
105
  }
110
- // CIL[END chunk_id="minimalshadcntestpage_function_minimalshadcntestpage_1783666257"]
106
+ // CIL[DOC-VECTOR type="context" content="purpose='Renders a minimal UI to validate shadcn Card, Button, and Badge components'; No verified external callers; imports: .framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/badge.tsx"]
107
+ // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
108
+ // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
109
+ // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
110
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
111
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
112
+ // CIL[END stable_id="~/.framework/src/pages/admin/MinimalShadcnTestPage.tsx:MinimalShadcnTestPage:component"]