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
@@ -19,6 +19,7 @@ import { Label } from '@core/components/ui/label'
19
19
  import { Textarea } from '@core/components/ui/textarea'
20
20
  import { NativeSelect, NativeSelectOption } from '@core/components/ui/native-select'
21
21
  import {
22
+ // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:module_header:module_header"]
22
23
  Table,
23
24
  TableHeader,
24
25
  TableBody,
@@ -28,7 +29,6 @@ import {
28
29
  } from '@core/components/ui/table'
29
30
  import { Lightbulb, Plus } from 'lucide-react'
30
31
 
31
- import { PageInstructions } from '../../../components/admin/PageInstructions'
32
32
 
33
33
  // CIL[DOC-VECTOR type="context" content="purpose='Admin page for reviewing and managing CIL redesign suggestions'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx"]
34
34
  // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
@@ -36,9 +36,7 @@ import { PageInstructions } from '../../../components/admin/PageInstructions'
36
36
  // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
37
37
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
38
38
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
39
- // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:module_header:module_header"]
40
39
 
41
- // CIL[BEGIN stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:project_id:constant" type="constant" identity="PROJECT_ID" parent="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx"]
42
40
  // CIL[DOC-MACRO purpose="Project ID for the CIL redesign scope used to filter suggestions"]
43
41
  // CIL[DOC-RESPONSIBILITY responsibility="Provides a constant project identifier for runtime record queries"]
44
42
  // CIL[DOC-CONTEXT module="admin/cil" layer="constant" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/native-select.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/table.tsx,.framework/src/components/ui/textarea.tsx,.framework/src/lib/api.ts,.framework/src/pages/admin/cil/CILSuggestionsPage.tsx"]
@@ -46,16 +44,16 @@ import { PageInstructions } from '../../../components/admin/PageInstructions'
46
44
  // CIL[DOC-MICRO logic_summary="Declares the UUID string for the CIL redesign project" notable_decisions="[]"]
47
45
  // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
48
46
  // CIL[DOC-STABILITY stability="stable"]
47
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:PROJECT_ID:constant" type="constant" identity="PROJECT_ID" parent="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx"]
49
48
  const PROJECT_ID = '24d2bb67-24be-4cdf-a633-108588d37f00'
49
+ // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:PROJECT_ID:constant"]
50
50
  // CIL[DOC-VECTOR type="context" content="purpose='Project ID for the CIL redesign scope used to filter suggestions'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx"]
51
51
  // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
52
52
  // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
53
53
  // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
54
54
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
55
55
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
56
- // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:project_id:constant"]
57
56
 
58
- // CIL[BEGIN stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:suggestion_types:constant" type="constant" identity="SUGGESTION_TYPES" parent="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx"]
59
57
  // CIL[DOC-MACRO purpose="Allowed suggestion type values for the creation form"]
60
58
  // CIL[DOC-RESPONSIBILITY responsibility="Defines the selectable suggestion categories"]
61
59
  // CIL[DOC-CONTEXT module="admin/cil" layer="constant" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/native-select.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/table.tsx,.framework/src/components/ui/textarea.tsx,.framework/src/lib/api.ts,.framework/src/pages/admin/cil/CILSuggestionsPage.tsx"]
@@ -63,18 +61,18 @@ const PROJECT_ID = '24d2bb67-24be-4cdf-a633-108588d37f00'
63
61
  // CIL[DOC-MICRO logic_summary="Lists valid suggestion types: refactor, add_doc, rename, remove, other" notable_decisions="[]"]
64
62
  // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
65
63
  // CIL[DOC-STABILITY stability="stable"]
64
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:SUGGESTION_TYPES:constant" type="constant" identity="SUGGESTION_TYPES" parent="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx"]
66
65
  const SUGGESTION_TYPES = ['refactor', 'add_doc', 'rename', 'remove', 'other']
66
+ // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:SUGGESTION_TYPES:constant"]
67
67
  // CIL[DOC-VECTOR type="context" content="purpose='Allowed suggestion type values for the creation form'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx"]
68
68
  // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
69
69
  // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
70
70
  // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
71
71
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
72
72
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
73
- // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:suggestion_types:constant"]
74
73
 
75
74
 
76
75
 
77
- // CIL[BEGIN stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:cilsuggestion:interface" type="interface" identity="CILSuggestion" parent="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx"]
78
76
  // CIL[DOC-MACRO purpose="TypeScript type for a CIL suggestion record returned from the API"]
79
77
  // CIL[DOC-RESPONSIBILITY responsibility="Describes the shape of cil_suggestion items"]
80
78
  // CIL[DOC-CONTEXT module="admin/cil" layer="type" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/native-select.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/table.tsx,.framework/src/components/ui/textarea.tsx,.framework/src/lib/api.ts,.framework/src/pages/admin/cil/CILSuggestionsPage.tsx"]
@@ -82,6 +80,7 @@ const SUGGESTION_TYPES = ['refactor', 'add_doc', 'rename', 'remove', 'other']
82
80
  // CIL[DOC-MICRO logic_summary="Defines id, title, nested data fields, and created_at" notable_decisions="[]"]
83
81
  // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
84
82
  // CIL[DOC-STABILITY stability="stable"]
83
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:CILSuggestion:interface" type="interface" identity="CILSuggestion" parent="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx"]
85
84
  interface CILSuggestion {
86
85
  id: string
87
86
  title: string
@@ -96,18 +95,17 @@ interface CILSuggestion {
96
95
  }
97
96
  created_at: string
98
97
  }
98
+ // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:CILSuggestion:interface"]
99
99
  // CIL[DOC-VECTOR type="context" content="purpose='TypeScript type for a CIL suggestion record returned from the API'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx"]
100
100
  // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
101
101
  // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
102
102
  // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
103
103
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
104
104
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
105
- // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:cilsuggestion:interface"]
106
105
 
107
106
 
108
107
 
109
108
 
110
- // CIL[BEGIN stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:status_variant:constant" type="constant" identity="STATUS_VARIANT" parent="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx"]
111
109
  // CIL[DOC-MACRO purpose="Badge variant mapping for suggestion status values"]
112
110
  // CIL[DOC-RESPONSIBILITY responsibility="Maps suggestion status strings to shadcn Badge variants"]
113
111
  // CIL[DOC-CONTEXT module="admin/cil" layer="constant" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/native-select.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/table.tsx,.framework/src/components/ui/textarea.tsx,.framework/src/lib/api.ts,.framework/src/pages/admin/cil/CILSuggestionsPage.tsx"]
@@ -115,18 +113,19 @@ interface CILSuggestion {
115
113
  // CIL[DOC-MICRO logic_summary="Record mapping accepted/default, proposed/secondary, rejected/destructive" notable_decisions="[]"]
116
114
  // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
117
115
  // CIL[DOC-STABILITY stability="stable"]
116
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:STATUS_VARIANT:constant" type="constant" identity="STATUS_VARIANT" parent="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx"]
118
117
  const STATUS_VARIANT: Record<string, 'default' | 'secondary' | 'outline' | 'destructive'> = {
119
118
  accepted: 'default',
120
119
  proposed: 'secondary',
121
120
  rejected: 'destructive',
122
121
  }
122
+ // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:STATUS_VARIANT:constant"]
123
123
  // CIL[DOC-VECTOR type="context" content="purpose='Badge variant mapping for suggestion status values'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx"]
124
124
  // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
125
125
  // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
126
126
  // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
127
127
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
128
128
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
129
- // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:status_variant:constant"]
130
129
 
131
130
 
132
131
 
@@ -134,7 +133,6 @@ const STATUS_VARIANT: Record<string, 'default' | 'secondary' | 'outline' | 'dest
134
133
 
135
134
 
136
135
 
137
- // CIL[BEGIN stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:cilsuggestionspage:function" type="function" identity="CILSuggestionsPage" parent="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx"]
138
136
  // CIL[DOC-MACRO purpose="Renders the CIL suggestions management page and handles creation/accept/reject"]
139
137
  // CIL[DOC-RESPONSIBILITY responsibility="Fetches, filters, displays, and updates CIL suggestions for the redesign project"]
140
138
  // CIL[DOC-CONTEXT module="admin/cil" layer="page" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/native-select.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/table.tsx,.framework/src/components/ui/textarea.tsx,.framework/src/lib/api.ts,.framework/src/pages/admin/cil/CILSuggestionsPage.tsx"]
@@ -142,6 +140,7 @@ const STATUS_VARIANT: Record<string, 'default' | 'secondary' | 'outline' | 'dest
142
140
  // CIL[DOC-MICRO logic_summary="Loads suggestions, provides form handlers, renders table with accept/reject and create form" notable_decisions="[]"]
143
141
  // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
144
142
  // CIL[DOC-STABILITY stability="stable"]
143
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:CILSuggestionsPage:component" type="component" identity="CILSuggestionsPage" parent="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx"]
145
144
  export default function CILSuggestionsPage() {
146
145
  const [suggestions, setSuggestions] = useState<CILSuggestion[]>([])
147
146
  const [loading, setLoading] = useState(true)
@@ -236,16 +235,6 @@ export default function CILSuggestionsPage() {
236
235
  </p>
237
236
  </div>
238
237
  </div>
239
-
240
- <PageInstructions
241
- description="Manage AI- or manually-proposed CIL suggestions."
242
- sections={[
243
- { title: 'What this page is for', content: 'Suggestions track proposed changes to CIL records. Each suggestion has a type, target stable ID, and confidence.' },
244
- { title: 'How to review', content: 'Use Accept to set the suggestion status to accepted, or Reject to set it to rejected.' },
245
- { title: 'How to create', content: 'Fill in the type, target stable ID, and content, then click Create.' },
246
- ]}
247
- />
248
-
249
238
  <Card>
250
239
  <CardContent className="p-4 space-y-3">
251
240
  <form onSubmit={handleCreate} className="space-y-3">
@@ -370,10 +359,10 @@ export default function CILSuggestionsPage() {
370
359
  </div>
371
360
  )
372
361
  }
362
+ // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:CILSuggestionsPage:component"]
373
363
  // CIL[DOC-VECTOR type="context" content="purpose='Renders the CIL suggestions management page and handles creation/accept/reject'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx"]
374
364
  // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
375
365
  // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
376
366
  // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
377
367
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
378
368
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
379
- // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILSuggestionsPage.tsx:cilsuggestionspage:function"]
@@ -17,6 +17,7 @@ import { Skeleton } from '@core/components/ui/skeleton'
17
17
  import { Input } from '@core/components/ui/input'
18
18
  import { Label } from '@core/components/ui/label'
19
19
  import {
20
+ // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx:module_header:module_header"]
20
21
  Table,
21
22
  TableHeader,
22
23
  TableBody,
@@ -26,15 +27,12 @@ import {
26
27
  } from '@core/components/ui/table'
27
28
  import { GitBranch, Plus } from 'lucide-react'
28
29
 
29
- import { PageInstructions } from '../../../components/admin/PageInstructions'
30
30
  // CIL[DOC-VECTOR type="context" content="purpose='Declares module-level imports and dependencies for the CIL versions admin page.'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx"]
31
31
  // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
32
32
  // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
33
33
  // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
34
34
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
35
35
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
36
- // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx:module_header:module_header"]
37
- // CIL[BEGIN stable_id="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx:project_id:constant" type="constant" identity="project_id" parent="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx"]
38
36
  // CIL[DOC-MACRO purpose="Provides the fixed CIL redesign project UUID used to filter and create versions."]
39
37
  // CIL[DOC-RESPONSIBILITY responsibility="Hold the project identifier constant referenced by fetch and create operations."]
40
38
  // CIL[DOC-CONTEXT module="admin/cil" layer="ui" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/table.tsx,.framework/src/lib/api.ts,.framework/src/pages/admin/cil/CILVersionsPage.tsx"]
@@ -43,16 +41,16 @@ import { PageInstructions } from '../../../components/admin/PageInstructions'
43
41
  // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
44
42
  // CIL[DOC-STABILITY stability="stable"]
45
43
 
44
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx:PROJECT_ID:constant" type="constant" identity="PROJECT_ID" parent="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx"]
46
45
  const PROJECT_ID = '24d2bb67-24be-4cdf-a633-108588d37f00'
46
+ // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx:PROJECT_ID:constant"]
47
47
  // CIL[DOC-VECTOR type="context" content="purpose='Provides the fixed CIL redesign project UUID used to filter and create versions.'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx"]
48
48
  // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
49
49
  // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
50
50
  // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
51
51
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
52
52
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
53
- // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx:project_id:constant"]
54
53
 
55
- // CIL[BEGIN stable_id="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx:CILVersion:interface" type="interface" identity="CILVersion" parent="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx"]
56
54
  // CIL[DOC-MACRO purpose="Defines the TypeScript shape for CIL version records returned by admin-data."]
57
55
  // CIL[DOC-RESPONSIBILITY responsibility="Type the version object consumed and rendered by CILVersionsPage."]
58
56
  // CIL[DOC-CONTEXT module="admin/cil" layer="ui" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/table.tsx,.framework/src/lib/api.ts,.framework/src/pages/admin/cil/CILVersionsPage.tsx"]
@@ -61,6 +59,7 @@ const PROJECT_ID = '24d2bb67-24be-4cdf-a633-108588d37f00'
61
59
  // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
62
60
  // CIL[DOC-STABILITY stability="stable"]
63
61
 
62
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx:CILVersion:interface" type="interface" identity="CILVersion" parent="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx"]
64
63
  interface CILVersion {
65
64
  id: string
66
65
  title: string
@@ -73,19 +72,18 @@ interface CILVersion {
73
72
  }
74
73
  created_at: string
75
74
  }
75
+ // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx:CILVersion:interface"]
76
76
  // CIL[DOC-VECTOR type="context" content="purpose='Defines the TypeScript shape for CIL version records returned by admin-data.'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx"]
77
77
  // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
78
78
  // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
79
79
  // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
80
80
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
81
81
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
82
- // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx:CILVersion:interface"]
83
82
 
84
83
 
85
84
 
86
85
 
87
86
 
88
- // CIL[BEGIN stable_id="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx:status_variant:constant" type="constant" identity="status_variant" parent="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx"]
89
87
  // CIL[DOC-MACRO purpose="Maps CIL version status values to Badge component variants."]
90
88
  // CIL[DOC-RESPONSIBILITY responsibility="Supply the correct visual variant for active, inactive, and archived version statuses."]
91
89
  // CIL[DOC-CONTEXT module="admin/cil" layer="ui" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/table.tsx,.framework/src/lib/api.ts,.framework/src/pages/admin/cil/CILVersionsPage.tsx"]
@@ -94,25 +92,25 @@ interface CILVersion {
94
92
  // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
95
93
  // CIL[DOC-STABILITY stability="stable"]
96
94
 
95
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx:STATUS_VARIANT:constant" type="constant" identity="STATUS_VARIANT" parent="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx"]
97
96
  const STATUS_VARIANT: Record<string, 'default' | 'secondary' | 'outline' | 'destructive'> = {
98
97
  active: 'default',
99
98
  inactive: 'secondary',
100
99
  archived: 'outline',
101
100
  }
101
+ // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx:STATUS_VARIANT:constant"]
102
102
  // CIL[DOC-VECTOR type="context" content="purpose='Maps CIL version status values to Badge component variants.'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx"]
103
103
  // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
104
104
  // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
105
105
  // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
106
106
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
107
107
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
108
- // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx:status_variant:constant"]
109
108
 
110
109
 
111
110
 
112
111
 
113
112
 
114
113
 
115
- // CIL[BEGIN stable_id="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx:CILVersionsPage:component" type="component" identity="CILVersionsPage" parent="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx"]
116
114
  // CIL[DOC-MACRO purpose="Renders and manages CIL project versions: list, create, publish, deactivate, and archive."]
117
115
  // CIL[DOC-RESPONSIBILITY responsibility="Fetch, display, create, and transition CIL version statuses through the admin-data API."]
118
116
  // CIL[DOC-CONTEXT module="admin/cil" layer="ui" related_files=".framework/src/components/admin/PageInstructions.tsx,.framework/src/components/ui/badge.tsx,.framework/src/components/ui/button.tsx,.framework/src/components/ui/card.tsx,.framework/src/components/ui/input.tsx,.framework/src/components/ui/label.tsx,.framework/src/components/ui/skeleton.tsx,.framework/src/components/ui/table.tsx,.framework/src/lib/api.ts,.framework/src/pages/admin/cil/CILVersionsPage.tsx"]
@@ -121,6 +119,7 @@ const STATUS_VARIANT: Record<string, 'default' | 'secondary' | 'outline' | 'dest
121
119
  // CIL[DOC-CONFIDENCE pass="second" score="0.90" flags="none"]
122
120
  // CIL[DOC-STABILITY stability="stable"]
123
121
 
122
+ // CIL[BEGIN stable_id="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx:CILVersionsPage:component" type="component" identity="CILVersionsPage" parent="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx"]
124
123
  export default function CILVersionsPage() {
125
124
  const [versions, setVersions] = useState<CILVersion[]>([])
126
125
  const [loading, setLoading] = useState(true)
@@ -209,16 +208,6 @@ export default function CILVersionsPage() {
209
208
  </p>
210
209
  </div>
211
210
  </div>
212
-
213
- <PageInstructions
214
- description="Create and manage CIL project versions."
215
- sections={[
216
- { title: 'What this page is for', content: 'Versions represent distinct snapshots or iterations of a CIL project. Use this page to publish, deactivate, and archive versions.' },
217
- { title: 'How to create a version', content: 'Enter a version string (e.g., 1.0.0) and click Create.' },
218
- { title: 'Actions', content: 'Publish makes an inactive version active. Deactivate sets a version back to inactive. Archive marks it as archived.' },
219
- ]}
220
- />
221
-
222
211
  <Card>
223
212
  <CardContent className="p-4">
224
213
  <form onSubmit={handleCreate} className="flex items-end gap-3">
@@ -325,13 +314,13 @@ export default function CILVersionsPage() {
325
314
  </div>
326
315
  )
327
316
  }
317
+ // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx:CILVersionsPage:component"]
328
318
  // CIL[DOC-VECTOR type="context" content="purpose='Renders and manages CIL project versions: list, create, publish, deactivate, and archive.'; No verified external callers; imports: .framework/src/lib/api.ts,.framework/src/components/ui/card.tsx,.framework/src/components/ui/button.tsx"]
329
319
  // CIL[DOC-VECTOR type="blast_radius" content="No direct caller data from CIL graph; local impact only"]
330
320
  // CIL[DOC-VECTOR type="configuration" content="No environment or build configuration dependencies identified"]
331
321
  // CIL[DOC-VECTOR type="constraint" content="Standard runtime; no special invariants documented"]
332
322
  // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
333
323
  // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
334
- // CIL[END stable_id="~/.framework/src/pages/admin/cil/CILVersionsPage.tsx:CILVersionsPage:component"]
335
324
 
336
325
 
337
326