spine-framework 0.4.4 → 0.5.0-rc.5

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 (305) hide show
  1. package/.env.example +13 -3
  2. package/.framework/cli/commands/bootstrap.ts +392 -0
  3. package/.framework/cli/commands/dev.ts +91 -218
  4. package/.framework/cli/commands/doctor.ts +132 -26
  5. package/.framework/cli/commands/generate.ts +38 -298
  6. package/.framework/cli/commands/init.ts +20 -1
  7. package/.framework/cli/commands/install-app.ts +183 -13
  8. package/.framework/cli/commands/migrate.ts +36 -30
  9. package/.framework/cli/commands/migrations.ts +16 -56
  10. package/.framework/cli/commands/upgrade.ts +35 -0
  11. package/.framework/cli/commands/validate-app.ts +127 -1
  12. package/.framework/cli/commands/validate-schema.ts +147 -0
  13. package/.framework/cli/context.ts +223 -110
  14. package/.framework/cli/index.ts +6 -0
  15. package/.framework/cli/lib/project-files.ts +241 -1
  16. package/.framework/functions/_shared/app-manifest.ts +2 -0
  17. package/.framework/functions/_shared/hash-api-key.ts +183 -79
  18. package/.framework/functions/_shared/logging.ts +562 -224
  19. package/.framework/functions/_shared/middleware.ts +47 -44
  20. package/.framework/functions/_shared/permissions.ts +4 -0
  21. package/.framework/functions/admin-data.ts +51 -28
  22. package/.framework/functions/ai-agents.ts +10 -6
  23. package/.framework/functions/api-keys.ts +301 -122
  24. package/.framework/functions/apps.ts +63 -29
  25. package/.framework/functions/cil-ingest.ts +48 -15
  26. package/.framework/functions/debug-auth.ts +14 -8
  27. package/.framework/functions/deliveries.ts +39 -12
  28. package/.framework/functions/embeddings.ts +149 -78
  29. package/.framework/functions/integration-outbound.ts +67 -27
  30. package/.framework/functions/integrations.ts +254 -127
  31. package/.framework/functions/logs.ts +273 -133
  32. package/.framework/functions/observability.ts +278 -148
  33. package/.framework/functions/pipeline-executions.ts +1 -1
  34. package/.framework/functions/pipelines.ts +14 -9
  35. package/.framework/functions/prompt-configs.ts +7 -4
  36. package/.framework/functions/roles.ts +8 -5
  37. package/.framework/functions/security.ts +30 -17
  38. package/.framework/functions/system-cron.ts +240 -127
  39. package/.framework/functions/tests.ts +7 -6
  40. package/.framework/functions/timers.ts +310 -107
  41. package/.framework/functions/triggers.ts +28 -13
  42. package/.framework/functions/types.ts +13 -10
  43. package/.framework/migrations/069_log_stats_window.sql +54 -0
  44. package/.framework/migrations/070_app_type_schema_rpcs.sql +166 -0
  45. package/.framework/migrations/071_timer_interval_keys.sql +96 -0
  46. package/.framework/migrations/072_slug_autofill.sql +77 -0
  47. package/.framework/migrations/073_seed_member_roles.sql +26 -0
  48. package/.framework/migrations/074_app_route_prefix_domains.sql +168 -0
  49. package/.framework/migrations/075_security_definer_grants.sql +157 -0
  50. package/.framework/src/apps/admin/index.tsx +1141 -775
  51. package/.framework/src/components/ErrorBoundary.tsx +136 -0
  52. package/.framework/src/components/admin/AdminListPage.tsx +81 -73
  53. package/.framework/src/components/admin/AdminSidebar.tsx +88 -79
  54. package/.framework/src/components/admin/EntitySelect.tsx +181 -0
  55. package/.framework/src/components/admin/PageInstructions.tsx +86 -127
  56. package/.framework/src/components/app-shell/GenericDetailPage.tsx +37 -13
  57. package/.framework/src/components/app-shell/GenericListPage.tsx +28 -32
  58. package/.framework/src/components/layout/Sidebar.tsx +300 -177
  59. package/.framework/src/components/runtime/DataDetailPage.tsx +67 -35
  60. package/.framework/src/components/runtime/DataHeader.tsx +96 -48
  61. package/.framework/src/components/runtime/DataListPage.tsx +3 -26
  62. package/.framework/src/components/runtime/DataStats.tsx +10 -10
  63. package/.framework/src/components/runtime/DataTable.tsx +12 -10
  64. package/.framework/src/components/ui/sheet.tsx +24 -26
  65. package/.framework/src/components/ui/textarea.tsx +74 -48
  66. package/.framework/src/contexts/AppContext.tsx +5 -12
  67. package/.framework/src/contexts/AuthContext.tsx +17 -9
  68. package/.framework/src/hooks/useApps.ts +18 -22
  69. package/.framework/src/hooks/useEntityList.ts +12 -9
  70. package/.framework/src/hooks/useListSchema.ts +108 -58
  71. package/.framework/src/instructions/README.md +74 -0
  72. package/.framework/src/instructions/accounts.md +97 -0
  73. package/.framework/src/instructions/ai-agents.md +69 -0
  74. package/.framework/src/instructions/alerts.md +80 -0
  75. package/.framework/src/instructions/api-keys.md +87 -0
  76. package/.framework/src/instructions/apps.md +77 -0
  77. package/.framework/src/instructions/concepts/ai-and-prompts.md +150 -0
  78. package/.framework/src/instructions/concepts/apps-and-renderers.md +228 -0
  79. package/.framework/src/instructions/concepts/auth-and-api-keys.md +133 -0
  80. package/.framework/src/instructions/concepts/automation.md +186 -0
  81. package/.framework/src/instructions/concepts/concurrency-and-idempotency.md +125 -0
  82. package/.framework/src/instructions/concepts/core-vs-custom.md +124 -0
  83. package/.framework/src/instructions/concepts/design-schema.md +152 -0
  84. package/.framework/src/instructions/concepts/integrations-and-webhooks.md +127 -0
  85. package/.framework/src/instructions/concepts/observability.md +116 -0
  86. package/.framework/src/instructions/concepts/permissions.md +150 -0
  87. package/.framework/src/instructions/concepts/runtime-records.md +111 -0
  88. package/.framework/src/instructions/concepts/scope-and-accounts.md +112 -0
  89. package/.framework/src/instructions/concepts/spine-way.md +172 -0
  90. package/.framework/src/instructions/deliveries.md +59 -0
  91. package/.framework/src/instructions/guide/00-orientation.md +106 -0
  92. package/.framework/src/instructions/guide/01-install-and-first-run.md +253 -0
  93. package/.framework/src/instructions/guide/02-project-map.md +147 -0
  94. package/.framework/src/instructions/guide/03-domain-model.md +223 -0
  95. package/.framework/src/instructions/guide/04-first-app.md +227 -0
  96. package/.framework/src/instructions/guide/05-glossary.md +183 -0
  97. package/.framework/src/instructions/integrations.md +96 -0
  98. package/.framework/src/instructions/internal/cil-markers.md +83 -0
  99. package/.framework/src/instructions/internal/docs-contract.md +158 -0
  100. package/.framework/src/instructions/invites.md +60 -0
  101. package/.framework/src/instructions/kb.md +80 -0
  102. package/.framework/src/instructions/logs.md +77 -0
  103. package/.framework/src/instructions/notifications.md +77 -0
  104. package/.framework/src/instructions/observability.md +61 -0
  105. package/.framework/src/instructions/operations/deployment.md +115 -0
  106. package/.framework/src/instructions/operations/migrations.md +125 -0
  107. package/.framework/src/instructions/operations/security-checklist.md +170 -0
  108. package/.framework/src/instructions/operations/troubleshooting.md +170 -0
  109. package/.framework/src/instructions/operations/upgrade.md +116 -0
  110. package/.framework/src/instructions/people.md +91 -0
  111. package/.framework/src/instructions/pipeline-executions.md +62 -0
  112. package/.framework/src/instructions/pipelines.md +78 -0
  113. package/.framework/src/instructions/prompts.md +95 -0
  114. package/.framework/src/instructions/reference/api/admin-data.md +162 -0
  115. package/.framework/src/instructions/reference/api/auth.md +113 -0
  116. package/.framework/src/instructions/reference/api/errors-and-envelopes.md +113 -0
  117. package/.framework/src/instructions/reference/app-manifest.md +184 -0
  118. package/.framework/src/instructions/reference/cli.md +124 -0
  119. package/.framework/src/instructions/reference/database.md +132 -0
  120. package/.framework/src/instructions/reference/design-schema.md +280 -0
  121. package/.framework/src/instructions/reference/env-vars.md +133 -0
  122. package/.framework/src/instructions/reference/frontend-sdk.md +207 -0
  123. package/.framework/src/instructions/reference/functions/account-nodes.md +75 -0
  124. package/.framework/src/instructions/reference/functions/admin-data.md +197 -0
  125. package/.framework/src/instructions/reference/functions/admin-funnel.md +90 -0
  126. package/.framework/src/instructions/reference/functions/admin-install-funnel.md +107 -0
  127. package/.framework/src/instructions/reference/functions/admin-signals.md +102 -0
  128. package/.framework/src/instructions/reference/functions/ai-agents.md +148 -0
  129. package/.framework/src/instructions/reference/functions/ai-interactions.md +156 -0
  130. package/.framework/src/instructions/reference/functions/api-keys.md +130 -0
  131. package/.framework/src/instructions/reference/functions/apps.md +140 -0
  132. package/.framework/src/instructions/reference/functions/auth.md +99 -0
  133. package/.framework/src/instructions/reference/functions/debug-auth.md +91 -0
  134. package/.framework/src/instructions/reference/functions/deliveries.md +110 -0
  135. package/.framework/src/instructions/reference/functions/embeddings.md +166 -0
  136. package/.framework/src/instructions/reference/functions/eval-harness.md +149 -0
  137. package/.framework/src/instructions/reference/functions/index.md +103 -0
  138. package/.framework/src/instructions/reference/functions/integration-outbound.md +200 -0
  139. package/.framework/src/instructions/reference/functions/integration-routes.md +151 -0
  140. package/.framework/src/instructions/reference/functions/integrations.md +130 -0
  141. package/.framework/src/instructions/reference/functions/invites.md +182 -0
  142. package/.framework/src/instructions/reference/functions/item-progress.md +107 -0
  143. package/.framework/src/instructions/reference/functions/kb.md +166 -0
  144. package/.framework/src/instructions/reference/functions/logs.md +141 -0
  145. package/.framework/src/instructions/reference/functions/observability.md +105 -0
  146. package/.framework/src/instructions/reference/functions/pipeline-executions.md +132 -0
  147. package/.framework/src/instructions/reference/functions/pipeline-runner-background.md +121 -0
  148. package/.framework/src/instructions/reference/functions/pipelines.md +136 -0
  149. package/.framework/src/instructions/reference/functions/prompt-configs.md +121 -0
  150. package/.framework/src/instructions/reference/functions/roles.md +121 -0
  151. package/.framework/src/instructions/reference/functions/security.md +140 -0
  152. package/.framework/src/instructions/reference/functions/system-cron.md +136 -0
  153. package/.framework/src/instructions/reference/functions/system.md +106 -0
  154. package/.framework/src/instructions/reference/functions/tests.md +97 -0
  155. package/.framework/src/instructions/reference/functions/timers.md +117 -0
  156. package/.framework/src/instructions/reference/functions/trigger-scheduler.md +102 -0
  157. package/.framework/src/instructions/reference/functions/triggers.md +140 -0
  158. package/.framework/src/instructions/reference/functions/types.md +146 -0
  159. package/.framework/src/instructions/reference/seeds.md +126 -0
  160. package/.framework/src/instructions/reference/shared-modules.md +127 -0
  161. package/.framework/src/instructions/reference/spine-config.md +114 -0
  162. package/.framework/src/instructions/roles.md +80 -0
  163. package/.framework/src/instructions/runtime-collaboration.md +106 -0
  164. package/.framework/src/instructions/runtime-detail.md +70 -0
  165. package/.framework/src/instructions/runtime-list.md +77 -0
  166. package/.framework/src/instructions/security.md +67 -0
  167. package/.framework/src/instructions/tasks/add-a-pipeline.md +110 -0
  168. package/.framework/src/instructions/tasks/add-a-role.md +96 -0
  169. package/.framework/src/instructions/tasks/add-a-timer.md +114 -0
  170. package/.framework/src/instructions/tasks/add-a-trigger.md +106 -0
  171. package/.framework/src/instructions/tasks/add-a-type.md +151 -0
  172. package/.framework/src/instructions/tasks/add-a-webhook.md +108 -0
  173. package/.framework/src/instructions/tasks/add-an-ai-agent.md +108 -0
  174. package/.framework/src/instructions/tasks/add-an-integration.md +124 -0
  175. package/.framework/src/instructions/tasks/build-a-custom-page.md +118 -0
  176. package/.framework/src/instructions/tasks/document-your-app.md +117 -0
  177. package/.framework/src/instructions/tasks/package-and-install-an-app.md +136 -0
  178. package/.framework/src/instructions/tasks/register-an-app.md +137 -0
  179. package/.framework/src/instructions/tasks/test-your-code.md +108 -0
  180. package/.framework/src/instructions/tasks/write-a-function.md +132 -0
  181. package/.framework/src/instructions/tasks/write-a-migration.md +110 -0
  182. package/.framework/src/instructions/testing.md +59 -0
  183. package/.framework/src/instructions/timers.md +84 -0
  184. package/.framework/src/instructions/triggers.md +69 -0
  185. package/.framework/src/instructions/types.md +93 -0
  186. package/.framework/src/lib/app-mount.ts +88 -0
  187. package/.framework/src/pages/NotFoundPage.tsx +62 -31
  188. package/.framework/src/pages/admin/AIAgentDetailPage.tsx +117 -106
  189. package/.framework/src/pages/admin/AIAgentsPage.tsx +86 -48
  190. package/.framework/src/pages/admin/APIKeyDetailPage.tsx +153 -152
  191. package/.framework/src/pages/admin/APIKeysPage.tsx +91 -90
  192. package/.framework/src/pages/admin/AlertsConfigPage.tsx +29 -18
  193. package/.framework/src/pages/admin/AppDetailPage.tsx +6 -60
  194. package/.framework/src/pages/admin/AppsPage.tsx +104 -66
  195. package/.framework/src/pages/admin/DeliveriesPage.tsx +5 -5
  196. package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +5 -23
  197. package/.framework/src/pages/admin/EmbeddingsPage.tsx +5 -26
  198. package/.framework/src/pages/admin/IntegrationDetailPage.tsx +7 -7
  199. package/.framework/src/pages/admin/IntegrationsPage.tsx +85 -43
  200. package/.framework/src/pages/admin/LogsPage.tsx +144 -76
  201. package/.framework/src/pages/admin/ObservabilityDashboard.tsx +223 -140
  202. package/.framework/src/pages/admin/PipelineDetailPage.tsx +134 -113
  203. package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +108 -45
  204. package/.framework/src/pages/admin/PipelinesPage.tsx +160 -115
  205. package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +96 -98
  206. package/.framework/src/pages/admin/PromptConfigsPage.tsx +101 -59
  207. package/.framework/src/pages/admin/RoleDetailPage.tsx +90 -79
  208. package/.framework/src/pages/admin/RolesPage.tsx +86 -43
  209. package/.framework/src/pages/admin/SecurityPage.tsx +1 -1
  210. package/.framework/src/pages/admin/TestingDashboard.tsx +16 -28
  211. package/.framework/src/pages/admin/TimerDetailPage.tsx +117 -100
  212. package/.framework/src/pages/admin/TimersPage.tsx +90 -62
  213. package/.framework/src/pages/admin/TriggerDetailPage.tsx +90 -83
  214. package/.framework/src/pages/admin/TriggersPage.tsx +124 -99
  215. package/.framework/src/pages/admin/TypeDetailPage.tsx +152 -138
  216. package/.framework/src/pages/admin/TypesPage.tsx +90 -48
  217. package/.framework/src/pages/admin/cil/CILAgentPage.tsx +17 -25
  218. package/.framework/src/pages/admin/cil/CILChunkDetailPage.tsx +17 -27
  219. package/.framework/src/pages/admin/cil/CILDashboardPage.tsx +72 -40
  220. package/.framework/src/pages/admin/cil/CILFileListPage.tsx +321 -129
  221. package/.framework/src/pages/admin/cil/CILFileSelectPage.tsx +18 -29
  222. package/.framework/src/pages/admin/cil/CILGraphPage.tsx +26 -38
  223. package/.framework/src/pages/admin/cil/CILIngestionPage.tsx +34 -46
  224. package/.framework/src/pages/admin/cil/CILProjectsPage.tsx +189 -103
  225. package/.framework/src/pages/admin/cil/CILSearchPage.tsx +246 -136
  226. package/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx +11 -22
  227. package/.framework/src/pages/admin/cil/CILVersionsPage.tsx +9 -20
  228. package/.framework/src/pages/admin/cil/FlexiblePipelinePage.tsx +26 -38
  229. package/.framework/src/pages/admin/kb/KBAdminPage.tsx +7 -26
  230. package/.framework/src/pages/auth/LoginPage.tsx +3 -2
  231. package/.framework/src/pages/auth/RegisterPage.tsx +16 -8
  232. package/.framework/templates/agent/AGENTS.md +167 -0
  233. package/.framework/templates/agent/skills/spine-add-ai-agent/SKILL.md +58 -0
  234. package/.framework/templates/agent/skills/spine-add-automation/SKILL.md +62 -0
  235. package/.framework/templates/agent/skills/spine-add-integration/SKILL.md +63 -0
  236. package/.framework/templates/agent/skills/spine-architect/SKILL.md +86 -0
  237. package/.framework/templates/agent/skills/spine-install-app/SKILL.md +79 -0
  238. package/.framework/templates/agent/skills/spine-migration/SKILL.md +75 -0
  239. package/.framework/templates/agent/skills/spine-new-app/SKILL.md +79 -0
  240. package/.framework/templates/agent/skills/spine-new-function/SKILL.md +71 -0
  241. package/.framework/templates/agent/skills/spine-new-type/SKILL.md +72 -0
  242. package/.framework/templates/agent/skills/spine-schema/SKILL.md +77 -0
  243. package/.framework/templates/agent/skills/spine-test/SKILL.md +67 -0
  244. package/.framework/templates/agent/skills/spine-troubleshoot/SKILL.md +74 -0
  245. package/.framework/templates/agent/skills/spine-upgrade/SKILL.md +69 -0
  246. package/.framework/templates/project.json +4 -1
  247. package/.framework/tests/unit/account-scoping-gates.test.ts +394 -0
  248. package/.framework/tests/unit/agent-files.test.ts +355 -0
  249. package/.framework/tests/unit/agent-runner.test.ts +479 -44
  250. package/.framework/tests/unit/api-keys-create-scope-gate.test.ts +160 -0
  251. package/.framework/tests/unit/api-keys-omit-secret-fields.test.ts +38 -0
  252. package/.framework/tests/unit/app-mount.test.ts +80 -0
  253. package/.framework/tests/unit/bootstrap.test.ts +242 -0
  254. package/.framework/tests/unit/cli-context-api-key.test.ts +114 -0
  255. package/.framework/tests/unit/debug-auth.test.ts +38 -0
  256. package/.framework/tests/unit/deliveries-account-scoping.test.ts +185 -0
  257. package/.framework/tests/unit/integration-outbound-credentials.test.ts +167 -0
  258. package/.framework/tests/unit/integrations-audit-redaction.test.ts +130 -0
  259. package/.framework/tests/unit/logging-app-id.test.ts +75 -0
  260. package/.framework/tests/unit/security-definer-grants.test.ts +154 -0
  261. package/.framework/tests/unit/system-context-denial.test.ts +145 -0
  262. package/.framework/tests/unit/system-cron.test.ts +240 -0
  263. package/.framework/tests/unit/timers.test.ts +159 -0
  264. package/README.md +125 -166
  265. package/config/tsconfig.cli.json +2 -2
  266. package/package.json +15 -4
  267. package/templates/project/package-lock.json +2 -2
  268. package/.framework/docs/admin-routes.md +0 -76
  269. package/.framework/docs/api-docs-progress.md +0 -38
  270. package/.framework/docs/api-governance.md +0 -146
  271. package/.framework/docs/api-testing-results.md +0 -212
  272. package/.framework/docs/assembly-launch-guide.md +0 -138
  273. package/.framework/docs/audit-results.md +0 -590
  274. package/.framework/docs/db-api-inventory.md +0 -95
  275. package/.framework/docs/gap-remediation-backlog.md +0 -103
  276. package/.framework/docs/ui-adoption-verification.md +0 -111
  277. package/.framework/docs/ui-api-coverage.md +0 -84
  278. package/.framework/docs/v2-compatibility-audit.md +0 -228
  279. package/.framework/mcp/index.ts +0 -133
  280. package/.framework/mcp/load-env.ts +0 -60
  281. package/.framework/mcp/shared/app-manifest.ts +0 -275
  282. package/.framework/mcp/shared/db.ts +0 -477
  283. package/.framework/mcp/shared/kb.ts +0 -118
  284. package/.framework/mcp/tools/architect.ts +0 -431
  285. package/.framework/mcp/tools/cil/context.ts +0 -345
  286. package/.framework/mcp/tools/cil/graph.ts +0 -242
  287. package/.framework/mcp/tools/cil/ingest.ts +0 -1217
  288. package/.framework/mcp/tools/cil/pipeline-orchestrator.ts +0 -693
  289. package/.framework/mcp/tools/cil/pipeline.ts +0 -767
  290. package/.framework/mcp/tools/cil/project.ts +0 -791
  291. package/.framework/mcp/tools/cil/retrieval.ts +0 -336
  292. package/.framework/mcp/tools/cil/search-core.ts +0 -454
  293. package/.framework/mcp/tools/cil/search.ts +0 -97
  294. package/.framework/mcp/tools/cil/suggest.ts +0 -186
  295. package/.framework/mcp/tools/cil/validate.ts +0 -1369
  296. package/.framework/mcp/tools/kb/delete.ts +0 -139
  297. package/.framework/mcp/tools/kb/index.ts +0 -52
  298. package/.framework/mcp/tools/kb/ingest.ts +0 -84
  299. package/.framework/mcp/tools/kb/list-types.ts +0 -102
  300. package/.framework/mcp/tools/kb/publish.ts +0 -100
  301. package/.framework/mcp/tools/kb/reindex.ts +0 -86
  302. package/.framework/mcp/tools/kb/revoke.ts +0 -85
  303. package/.framework/mcp/tools/kb/search.ts +0 -101
  304. package/.framework/mcp/tools/kb/upsert.ts +0 -125
  305. package/.framework/mcp/tools/observability.ts +0 -510
@@ -1,12 +1,28 @@
1
- // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:module_header:module_header" type="module_header" identity="module_header" parent="none"]
2
- // CIL[DOC-MACRO purpose="Sidebar layout module entry point"]
3
- // CIL[DOC-RESPONSIBILITY responsibility="Import dependencies and export Sidebar components and navigation constants"]
4
- // CIL[DOC-CONTEXT module=".framework/src/components/layout/Sidebar.tsx" layer="ui" related_files=".framework/src/components/ui/popover.tsx,.framework/src/contexts/AuthContext.tsx"]
5
- // CIL[DOC-CONTRACT inputs="none" outputs="module exports, imports, and navigation constants" errors="none" side_effects="none"]
6
- // CIL[DOC-MICRO logic_summary="Sets up the sidebar module and declares navigation arrays" notable_decisions="[]"]
7
- // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
8
- // CIL[DOC-STABILITY stability="stable"]
9
- // CIL[DOC-AUDIENCE audience="engineers"]
1
+ // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:module_header:module_header" type="module_header" identity="module_header" parent="~/.framework/src/components/layout/Sidebar.tsx"]
2
+ /**
3
+ * @module Sidebar
4
+ * @audience both
5
+ * @layer shared-core
6
+ * @stability stable
7
+ *
8
+ * The Sidebar component provides a navigational interface for users, allowing them to access various sections of the application. It integrates with authentication and branding contexts to dynamically render links based on user permissions and branding settings.
9
+ * INVARIANT: The user must be authenticated to access certain links.
10
+ *
11
+ * @seeAlso AuthContext.tsx (provides authentication context for user access control).
12
+ * @seeAlso useBranding.ts (handles branding logic for the application).
13
+ * @seeAlso Popover.tsx (used for displaying additional options in the sidebar).
14
+ *
15
+ * @cil-generated
16
+ */
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
10
26
 
11
27
 
12
28
 
@@ -21,6 +37,7 @@ import { useAuth } from '../../contexts/AuthContext'
21
37
  import { useBranding } from '../../hooks/useBranding'
22
38
  import { Popover, PopoverTrigger, PopoverContent } from '../ui/popover'
23
39
  import {
40
+ // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:module_header:module_header"]
24
41
  Home,
25
42
  Box,
26
43
  Users,
@@ -47,66 +64,92 @@ import {
47
64
  Cpu,
48
65
  BookOpen
49
66
  } from 'lucide-react'
50
- // CIL[DOC-VECTOR type="context" content="purpose='Sidebar layout module entry point'; No verified external callers; imports: .framework/src/contexts/AuthContext.tsx,.framework/src/components/ui/popover.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"]
54
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
55
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
56
- // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:module_header:module_header"]
57
- // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:sidebarprops:interface" type="interface" identity="sidebarprops" parent="~/.framework/src/components/layout/Sidebar.tsx:module_header:module_header"]
58
- // CIL[DOC-MACRO purpose="Define Sidebar component props"]
59
- // CIL[DOC-RESPONSIBILITY responsibility="Type-safe contract for Sidebar open state and close callback"]
60
- // CIL[DOC-CONTEXT module=".framework/src/components/layout/Sidebar.tsx" layer="ui" related_files=".framework/src/components/layout/Sidebar.tsx,.framework/src/components/ui/popover.tsx,.framework/src/contexts/AuthContext.tsx"]
61
- // CIL[DOC-CONTRACT inputs="open boolean and onClose callback" outputs="SidebarProps interface" errors="none" side_effects="none"]
62
- // CIL[DOC-MICRO logic_summary="Declares open and onClose fields for the Sidebar shell" notable_decisions="[]"]
63
- // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
64
- // CIL[DOC-STABILITY stability="stable"]
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+ // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:SidebarProps:interface" type="interface" identity="SidebarProps" parent="~/.framework/src/components/layout/Sidebar.tsx"]
83
+ /**
84
+ * SidebarProps defines the properties required for the Sidebar component, managing its open state and close action. This interface ensures that the Sidebar can be controlled effectively by its parent component.
85
+ *
86
+ * @sideEffects none
87
+ * @stability internal
88
+ * @cil-generated
89
+ */
65
90
  interface SidebarProps {
66
91
  open: boolean
67
92
  onClose: () => void
68
93
  }
69
- // CIL[DOC-VECTOR type="context" content="purpose='Define Sidebar component props'; No verified external callers; imports: .framework/src/contexts/AuthContext.tsx,.framework/src/components/ui/popover.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/components/layout/Sidebar.tsx:sidebarprops:interface"]
76
-
77
-
78
-
79
- // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:navigation:constant" type="constant" identity="navigation" parent="~/.framework/src/components/layout/Sidebar.tsx:module_header:module_header"]
80
- // CIL[DOC-MACRO purpose="Primary navigation links for the sidebar"]
81
- // CIL[DOC-RESPONSIBILITY responsibility="Provide top-level navigation item data"]
82
- // CIL[DOC-CONTEXT module=".framework/src/components/layout/Sidebar.tsx" layer="ui" related_files=".framework/src/components/layout/Sidebar.tsx,.framework/src/components/ui/popover.tsx,.framework/src/contexts/AuthContext.tsx"]
83
- // CIL[DOC-CONTRACT inputs="none" outputs="array of navigation entries" errors="none" side_effects="none"]
84
- // CIL[DOC-MICRO logic_summary="Static constant array of top-level navigation objects with name, href, and icon" notable_decisions="[]"]
85
- // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
86
- // CIL[DOC-STABILITY stability="stable"]
94
+ // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:SidebarProps:interface"]
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+ // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:navigation:constant" type="constant" identity="navigation" parent="~/.framework/src/components/layout/Sidebar.tsx"]
114
+ /**
115
+ * The 'navigation' constant defines the structure of the sidebar navigation items for the application. It provides a consistent way to manage and render navigation links within the sidebar component.
116
+ *
117
+ * @sideEffects none
118
+ * @stability internal
119
+ * @cil-generated
120
+ */
87
121
  const navigation = [
88
122
  { name: 'Dashboard', href: '/spine-framework/admin/configs/types', icon: Home },
89
123
  ]
90
- // CIL[DOC-VECTOR type="context" content="purpose='Primary navigation links for the sidebar'; No verified external callers; imports: .framework/src/contexts/AuthContext.tsx,.framework/src/components/ui/popover.tsx"]
91
- // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
92
- // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
93
- // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
94
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
95
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
96
124
  // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:navigation:constant"]
97
125
 
98
126
 
99
127
 
100
128
 
101
129
 
102
- // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:configsnavigation:constant" type="constant" identity="configsnavigation" parent="~/.framework/src/components/layout/Sidebar.tsx:module_header:module_header"]
103
- // CIL[DOC-MACRO purpose="Configuration section navigation links"]
104
- // CIL[DOC-RESPONSIBILITY responsibility="Provide navigation data for the admin configuration section"]
105
- // CIL[DOC-CONTEXT module=".framework/src/components/layout/Sidebar.tsx" layer="ui" related_files=".framework/src/components/layout/Sidebar.tsx,.framework/src/components/ui/popover.tsx,.framework/src/contexts/AuthContext.tsx"]
106
- // CIL[DOC-CONTRACT inputs="none" outputs="array of config navigation entries" errors="none" side_effects="none"]
107
- // CIL[DOC-MICRO logic_summary="Static array of config navigation items with dividers and icons" notable_decisions="[]"]
108
- // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
109
- // CIL[DOC-STABILITY stability="stable"]
130
+
131
+
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+ // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:configsNavigation:constant" type="constant" identity="configsNavigation" parent="~/.framework/src/components/layout/Sidebar.tsx"]
146
+ /**
147
+ * The 'configsNavigation' constant defines a structured navigation menu for the admin configuration section of the application. It organizes various configuration items into a list, including dividers for better visual separation.
148
+ *
149
+ * @sideEffects none
150
+ * @stability internal
151
+ * @cil-generated
152
+ */
110
153
  const configsNavigation = [
111
154
  { name: 'Item Types', href: '/spine-framework/admin/configs/types', icon: Box },
112
155
  { divider: true },
@@ -124,136 +167,193 @@ const configsNavigation = [
124
167
  { name: 'API Keys', href: '/spine-framework/admin/configs/api-keys', icon: Key },
125
168
  { name: 'Deliveries', href: '/spine-framework/admin/configs/deliveries', icon: Truck },
126
169
  ] as const
127
- // CIL[DOC-VECTOR type="context" content="purpose='Configuration section navigation links'; No verified external callers; imports: .framework/src/contexts/AuthContext.tsx,.framework/src/components/ui/popover.tsx"]
128
- // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
129
- // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
130
- // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
131
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
132
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
133
- // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:configsnavigation:constant"]
170
+ // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:configsNavigation:constant"]
171
+
172
+
173
+
174
+
175
+
176
+
177
+
178
+
134
179
 
135
180
 
136
181
 
137
182
 
138
183
 
139
- // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:observabilitynavigation:constant" type="constant" identity="observabilitynavigation" parent="~/.framework/src/components/layout/Sidebar.tsx:module_header:module_header"]
140
- // CIL[DOC-MACRO purpose="Observability section navigation links"]
141
- // CIL[DOC-RESPONSIBILITY responsibility="Provide navigation data for the observability section"]
142
- // CIL[DOC-CONTEXT module=".framework/src/components/layout/Sidebar.tsx" layer="ui" related_files=".framework/src/components/layout/Sidebar.tsx,.framework/src/components/ui/popover.tsx,.framework/src/contexts/AuthContext.tsx"]
143
- // CIL[DOC-CONTRACT inputs="none" outputs="array of observability navigation entries" errors="none" side_effects="none"]
144
- // CIL[DOC-MICRO logic_summary="Static array of observability navigation items with icons" notable_decisions="[]"]
145
- // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
146
- // CIL[DOC-STABILITY stability="stable"]
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+ // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:observabilityNavigation:constant" type="constant" identity="observabilityNavigation" parent="~/.framework/src/components/layout/Sidebar.tsx"]
192
+ /**
193
+ * The 'observabilityNavigation' constant defines a structured array of navigation items for the observability section of the application. It provides links to various observability features such as Dashboard, Alerts, Executions, and Logs.
194
+ *
195
+ * @sideEffects none
196
+ * @stability internal
197
+ * @cil-generated
198
+ */
147
199
  const observabilityNavigation = [
148
200
  { name: 'Dashboard', href: '/spine-framework/admin/observability', icon: BarChart3 },
149
201
  { name: 'Alerts', href: '/spine-framework/admin/observability/alerts', icon: Bell },
150
202
  { name: 'Executions', href: '/spine-framework/admin/observability/executions', icon: FlaskConical },
151
203
  { name: 'Logs', href: '/spine-framework/admin/observability/logs', icon: FileText },
152
204
  ]
153
- // CIL[DOC-VECTOR type="context" content="purpose='Observability section navigation links'; No verified external callers; imports: .framework/src/contexts/AuthContext.tsx,.framework/src/components/ui/popover.tsx"]
154
- // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
155
- // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
156
- // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
157
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
158
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
159
- // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:observabilitynavigation:constant"]
205
+ // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:observabilityNavigation:constant"]
206
+
207
+
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
160
221
 
161
222
 
162
223
 
163
224
 
164
225
 
165
- // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:runtimeentities:constant" type="constant" identity="runtimeentities" parent="~/.framework/src/components/layout/Sidebar.tsx:module_header:module_header"]
166
- // CIL[DOC-MACRO purpose="Runtime entity navigation links"]
167
- // CIL[DOC-RESPONSIBILITY responsibility="Provide navigation data for runtime entities section"]
168
- // CIL[DOC-CONTEXT module=".framework/src/components/layout/Sidebar.tsx" layer="ui" related_files=".framework/src/components/layout/Sidebar.tsx,.framework/src/components/ui/popover.tsx,.framework/src/contexts/AuthContext.tsx"]
169
- // CIL[DOC-CONTRACT inputs="none" outputs="array of runtime entity navigation entries" errors="none" side_effects="none"]
170
- // CIL[DOC-MICRO logic_summary="Static array of runtime entity navigation items with icons" notable_decisions="[]"]
171
- // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
172
- // CIL[DOC-STABILITY stability="stable"]
226
+ // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:runtimeEntities:constant" type="constant" identity="runtimeEntities" parent="~/.framework/src/components/layout/Sidebar.tsx"]
227
+ /**
228
+ * The constant 'runtimeEntities' defines a list of navigational items for the sidebar in the application. Each item includes a name, a link, and an associated icon for user interface representation.
229
+ *
230
+ * @sideEffects none
231
+ * @stability internal
232
+ * @cil-generated
233
+ */
173
234
  const runtimeEntities = [
174
235
  { name: 'Items', href: '/spine-framework/admin/runtime/items', icon: Box },
175
236
  { name: 'Accounts', href: '/spine-framework/admin/runtime/accounts', icon: Building2 },
176
237
  { name: 'People', href: '/spine-framework/admin/runtime/people', icon: User },
177
- { name: 'Person Types', href: '/spine-framework/admin/runtime/person-types', icon: Users },
178
238
  ]
179
- // CIL[DOC-VECTOR type="context" content="purpose='Runtime entity navigation links'; No verified external callers; imports: .framework/src/contexts/AuthContext.tsx,.framework/src/components/ui/popover.tsx"]
180
- // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
181
- // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
182
- // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
183
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
184
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
185
- // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:runtimeentities:constant"]
239
+ // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:runtimeEntities:constant"]
186
240
 
187
241
 
188
242
 
189
243
 
190
244
 
191
- // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:kbenginenavigation:constant" type="constant" identity="kbenginenavigation" parent="~/.framework/src/components/layout/Sidebar.tsx:module_header:module_header"]
192
- // CIL[DOC-MACRO purpose="Knowledge base engine navigation links"]
193
- // CIL[DOC-RESPONSIBILITY responsibility="Provide navigation data for the KB engine section"]
194
- // CIL[DOC-CONTEXT module=".framework/src/components/layout/Sidebar.tsx" layer="ui" related_files=".framework/src/components/layout/Sidebar.tsx,.framework/src/components/ui/popover.tsx,.framework/src/contexts/AuthContext.tsx"]
195
- // CIL[DOC-CONTRACT inputs="none" outputs="array of KB engine navigation entries" errors="none" side_effects="none"]
196
- // CIL[DOC-MICRO logic_summary="Static array of KB engine navigation items with icons" notable_decisions="[]"]
197
- // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
198
- // CIL[DOC-STABILITY stability="stable"]
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+ // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:kbEngineNavigation:constant" type="constant" identity="kbEngineNavigation" parent="~/.framework/src/components/layout/Sidebar.tsx"]
261
+ /**
262
+ * The constant 'kbEngineNavigation' defines a navigation structure for the Knowledge Base section of the application. It provides links to key resources within the admin interface.
263
+ *
264
+ * @sideEffects none
265
+ * @stability internal
266
+ * @cil-generated
267
+ */
199
268
  const kbEngineNavigation = [
200
269
  { name: 'Knowledge Base', href: '/spine-framework/admin/kb/kb-spine-public', icon: BookOpen },
201
270
  { name: 'Embeddings', href: '/spine-framework/admin/kb/embeddings', icon: Cpu },
202
271
  ]
203
- // CIL[DOC-VECTOR type="context" content="purpose='Knowledge base engine navigation links'; No verified external callers; imports: .framework/src/contexts/AuthContext.tsx,.framework/src/components/ui/popover.tsx"]
204
- // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
205
- // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
206
- // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
207
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
208
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
209
- // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:kbenginenavigation:constant"]
210
-
211
-
212
- // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:classnames:function" type="function" identity="classnames" parent="~/.framework/src/components/layout/Sidebar.tsx:module_header:module_header"]
213
- // CIL[DOC-MACRO purpose="Conditionally combine CSS class strings"]
214
- // CIL[DOC-RESPONSIBILITY responsibility="Filter falsy class values and join remaining classes"]
215
- // CIL[DOC-CONTEXT module=".framework/src/components/layout/Sidebar.tsx" layer="ui" related_files=".framework/src/components/layout/Sidebar.tsx,.framework/src/components/ui/popover.tsx,.framework/src/contexts/AuthContext.tsx"]
216
- // CIL[DOC-CONTRACT inputs="classes: (string | false | undefined)[]" outputs="space-delimited className string" errors="none" side_effects="none"]
217
- // CIL[DOC-MICRO logic_summary="Filters truthy values from the input array and joins them with spaces" notable_decisions="[]"]
218
- // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
219
- // CIL[DOC-STABILITY stability="stable"]
220
- // CIL[DOC-NOTE type="param" content="classes: (string | false | undefined)[] - class values to combine"]
272
+ // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:kbEngineNavigation:constant"]
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+
288
+
289
+
290
+
291
+ // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:classNames:function" type="function" identity="classNames" parent="~/.framework/src/components/layout/Sidebar.tsx"]
292
+ /**
293
+ * The classNames function constructs a single string from an array of class names, filtering out any falsy values. This utility is useful for dynamically generating class attribute values in JSX components.
294
+ *
295
+ * @macro Utility function for generating a concatenated class name string.
296
+ * @micro Filters out falsy values from the input array before joining the remaining class names.
297
+ * @inputSpec
298
+ * - classes: (string | false | undefined)[] (required) — an array of class names that may include falsy values.
299
+ * @outputSpec string — a single string of class names separated by spaces.
300
+ * @sideEffects none
301
+ * @stability internal
302
+ * @cil-generated
303
+ */
221
304
  function classNames(...classes: (string | false | undefined)[]) {
222
305
  return classes.filter(Boolean).join(' ')
223
306
  }
307
+ // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:classNames:function"]
308
+
309
+
310
+
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+
224
320
 
225
321
 
226
322
 
227
323
 
228
324
 
229
- // CIL[DOC-VECTOR type="context" content="purpose='Conditionally combine CSS class strings'; No verified external callers; imports: .framework/src/contexts/AuthContext.tsx,.framework/src/components/ui/popover.tsx"]
230
- // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
231
- // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
232
- // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
233
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
234
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
235
- // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:classnames:function"]
236
325
 
237
326
 
238
327
 
239
328
 
240
329
 
241
330
 
242
- // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:sidebar:function" type="function" identity="sidebar" parent="~/.framework/src/components/layout/Sidebar.tsx:module_header:module_header"]
243
- // CIL[DOC-MACRO purpose="Render responsive sidebar shell"]
244
- // CIL[DOC-RESPONSIBILITY responsibility="Display a mobile-friendly sidebar overlay with close controls"]
245
- // CIL[DOC-CONTEXT module=".framework/src/components/layout/Sidebar.tsx" layer="ui" related_files=".framework/src/components/layout/Sidebar.tsx,.framework/src/components/ui/popover.tsx,.framework/src/contexts/AuthContext.tsx"]
246
- // CIL[DOC-CONTRACT inputs="open: boolean, onClose: () => void" outputs="JSX sidebar overlay" errors="none" side_effects="renders DOM elements and attaches click handlers"]
247
- // CIL[DOC-MICRO logic_summary="Renders a fixed overlay and panel when open is true, delegating content to SidebarContent" notable_decisions="[]"]
248
- // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
249
- // CIL[DOC-STABILITY stability="stable"]
250
- // CIL[DOC-NOTE type="param" content="open: boolean - whether the sidebar is open"]
251
- // CIL[DOC-NOTE type="param" content="onClose: () => void - callback to close the sidebar"]
331
+
332
+
333
+
334
+
335
+
336
+ // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:Sidebar:component" type="component" identity="Sidebar" parent="~/.framework/src/components/layout/Sidebar.tsx"]
337
+ /**
338
+ * The Sidebar component renders a collapsible sidebar interface that displays branding and navigation options. It provides users with a navigational aid that can be opened and closed as needed.
339
+ *
340
+ * @macro UI component responsible for displaying a sidebar with branding and navigation.
341
+ * @micro Utilizes conditional rendering to display the sidebar based on the 'open' state.
342
+ * @inputSpec
343
+ * - open: boolean (required) — determines if the sidebar is visible.
344
+ * - onClose: function (required) — callback function to close the sidebar.
345
+ * @outputSpec JSX.Element — renders the sidebar UI structure.
346
+ * @sideEffects none
347
+ * @stability internal
348
+ * @calls useBranding, SidebarContent
349
+ * @cil-generated
350
+ */
252
351
  export function Sidebar({ open, onClose }: SidebarProps) {
253
352
  const branding = useBranding()
254
353
  return (
255
354
  <>
256
355
  <div className={classNames(open && 'fixed inset-0 z-40 flex')}>
356
+ // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:Sidebar:component"]
257
357
  {open && (
258
358
  <div className="fixed inset-0 z-40 flex">
259
359
  <div
@@ -285,42 +385,65 @@ export function Sidebar({ open, onClose }: SidebarProps) {
285
385
  </>
286
386
  )
287
387
  }
288
- // CIL[DOC-VECTOR type="context" content="purpose='Render responsive sidebar shell'; No verified external callers; imports: .framework/src/contexts/AuthContext.tsx,.framework/src/components/ui/popover.tsx"]
289
- // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
290
- // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
291
- // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
292
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
293
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
294
- // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:sidebar:function"]
295
-
296
- // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:sidebarcontentprops:interface" type="interface" identity="sidebarcontentprops" parent="~/.framework/src/components/layout/Sidebar.tsx:module_header:module_header"]
297
- // CIL[DOC-MACRO purpose="Define SidebarContent component props"]
298
- // CIL[DOC-RESPONSIBILITY responsibility="Type-safe contract for optional navigation click handler"]
299
- // CIL[DOC-CONTEXT module=".framework/src/components/layout/Sidebar.tsx" layer="ui" related_files=".framework/src/components/layout/Sidebar.tsx,.framework/src/components/ui/popover.tsx,.framework/src/contexts/AuthContext.tsx"]
300
- // CIL[DOC-CONTRACT inputs="optional onNavClick callback" outputs="SidebarContentProps interface" errors="none" side_effects="none"]
301
- // CIL[DOC-MICRO logic_summary="Declares an optional onNavClick callback for navigation items" notable_decisions="[]"]
302
- // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
303
- // CIL[DOC-STABILITY stability="stable"]
388
+
389
+
390
+
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+
399
+
400
+
401
+
402
+
403
+
404
+ // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:SidebarContentProps:interface" type="interface" identity="SidebarContentProps" parent="~/.framework/src/components/layout/Sidebar.tsx"]
405
+ /**
406
+ * SidebarContentProps defines the properties for the sidebar content component, specifically handling navigation click events. It allows for optional navigation click functionality to be passed in as a prop.
407
+ *
408
+ * @sideEffects none
409
+ * @stability internal
410
+ * @cil-generated
411
+ */
304
412
  interface SidebarContentProps {
305
413
  onNavClick?: () => void
306
414
  }
307
- // CIL[DOC-VECTOR type="context" content="purpose='Define SidebarContent component props'; No verified external callers; imports: .framework/src/contexts/AuthContext.tsx,.framework/src/components/ui/popover.tsx"]
308
- // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
309
- // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
310
- // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
311
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
312
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
313
- // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:sidebarcontentprops:interface"]
314
-
315
- // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:sidebarcontent:function" type="function" identity="sidebarcontent" parent="~/.framework/src/components/layout/Sidebar.tsx:module_header:module_header"]
316
- // CIL[DOC-MACRO purpose="Render sidebar navigation content"]
317
- // CIL[DOC-RESPONSIBILITY responsibility="Display navigation sections, user info, and logout action"]
318
- // CIL[DOC-CONTEXT module=".framework/src/components/layout/Sidebar.tsx" layer="ui" related_files=".framework/src/components/layout/Sidebar.tsx,.framework/src/components/ui/popover.tsx,.framework/src/contexts/AuthContext.tsx"]
319
- // CIL[DOC-CONTRACT inputs="onNavClick?: () => void" outputs="JSX sidebar navigation content" errors="none" side_effects="renders DOM elements, uses React hooks and auth context"]
320
- // CIL[DOC-MICRO logic_summary="Builds navigation groups with collapsible sections and a user popover; uses useLocation, useAuth, and useState" notable_decisions="[]"]
321
- // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
322
- // CIL[DOC-STABILITY stability="stable"]
323
- // CIL[DOC-NOTE type="param" content="onNavClick?: () => void - optional click handler for navigation links"]
415
+ // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:SidebarContentProps:interface"]
416
+
417
+
418
+
419
+
420
+
421
+
422
+
423
+
424
+
425
+
426
+
427
+
428
+
429
+
430
+
431
+
432
+
433
+ // CIL[BEGIN stable_id="~/.framework/src/components/layout/Sidebar.tsx:SidebarContent:component" type="component" identity="SidebarContent" parent="~/.framework/src/components/layout/Sidebar.tsx"]
434
+ /**
435
+ * SidebarContent renders a navigation sidebar that allows users to navigate through different sections of the application and conditionally displays additional configuration options for system administrators.
436
+ *
437
+ * @macro Navigation component for application sidebar with conditional rendering for admin options.
438
+ * @micro Utilizes React state to manage the open/closed status of various sections based on the current URL path.
439
+ * @inputSpec
440
+ * - onNavClick: function (required) — callback function triggered on navigation item click.
441
+ * @outputSpec JSX.Element — renders the sidebar navigation structure.
442
+ * @sideEffects none
443
+ * @stability internal
444
+ * @calls useLocation, useAuth, classNames, Link
445
+ * @cil-generated
446
+ */
324
447
  export function SidebarContent({ onNavClick }: SidebarContentProps) {
325
448
  const location = useLocation()
326
449
  const { user, logout } = useAuth()
@@ -368,6 +491,7 @@ export function SidebarContent({ onNavClick }: SidebarContentProps) {
368
491
  {item.name}
369
492
  </Link>
370
493
  ))}
494
+ // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:SidebarContent:component"]
371
495
  </div>
372
496
 
373
497
  {isSystemAdmin && (
@@ -573,10 +697,9 @@ export function SidebarContent({ onNavClick }: SidebarContentProps) {
573
697
  </nav>
574
698
  )
575
699
  }
576
- // CIL[DOC-VECTOR type="context" content="purpose='Render sidebar navigation content'; No verified external callers; imports: .framework/src/contexts/AuthContext.tsx,.framework/src/components/ui/popover.tsx"]
577
- // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
578
- // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
579
- // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
580
- // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
581
- // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
582
- // CIL[END stable_id="~/.framework/src/components/layout/Sidebar.tsx:sidebarcontent:function"]
700
+
701
+
702
+
703
+
704
+
705
+