spine-framework 0.3.124 → 0.3.126

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/.framework/cli/commands/agents.ts +35 -37
  2. package/.framework/cli/commands/auth.ts +35 -34
  3. package/.framework/cli/commands/create-app.ts +104 -40
  4. package/.framework/cli/commands/dev.ts +104 -69
  5. package/.framework/cli/commands/doctor.ts +179 -69
  6. package/.framework/cli/commands/generate.ts +83 -143
  7. package/.framework/cli/commands/init.ts +72 -34
  8. package/.framework/cli/commands/install-app.ts +260 -125
  9. package/.framework/cli/commands/items.ts +33 -44
  10. package/.framework/cli/commands/migrate.ts +122 -40
  11. package/.framework/cli/commands/migrations.ts +33 -40
  12. package/.framework/cli/commands/pipelines.ts +31 -39
  13. package/.framework/cli/commands/status.ts +47 -23
  14. package/.framework/cli/commands/system.ts +47 -37
  15. package/.framework/cli/commands/test.ts +112 -68
  16. package/.framework/cli/commands/validate-app.ts +215 -121
  17. package/.framework/cli/context.ts +112 -130
  18. package/.framework/cli/env-loader.ts +47 -18
  19. package/.framework/cli/index.ts +81 -42
  20. package/.framework/docs/runtime-types.md +1024 -0
  21. package/.framework/functions/_shared/agent-runner.ts +1296 -961
  22. package/.framework/functions/_shared/app-manifest.ts +82 -68
  23. package/.framework/functions/_shared/audit.ts +135 -83
  24. package/.framework/functions/_shared/{cil-state.ts → cil.ts} +158 -56
  25. package/.framework/functions/_shared/db.ts +80 -126
  26. package/.framework/functions/_shared/hash-api-key.ts +63 -0
  27. package/.framework/functions/_shared/index.ts +224 -335
  28. package/.framework/functions/_shared/kb.ts +319 -0
  29. package/.framework/functions/_shared/llm.ts +92 -0
  30. package/.framework/functions/_shared/logging.ts +288 -0
  31. package/.framework/functions/_shared/middleware.ts +329 -365
  32. package/.framework/functions/_shared/outcomes.ts +36 -0
  33. package/.framework/functions/_shared/permissions.ts +359 -643
  34. package/.framework/functions/_shared/pipeline-runner.ts +243 -316
  35. package/.framework/functions/_shared/principal.ts +376 -468
  36. package/.framework/functions/_shared/resolve-credentials.ts +102 -0
  37. package/.framework/functions/_shared/resolve-ids.ts +188 -16
  38. package/.framework/functions/_shared/retry-deliveries.ts +104 -0
  39. package/.framework/functions/_shared/schema-utils.ts +611 -373
  40. package/.framework/functions/_shared/testing.ts +207 -137
  41. package/.framework/functions/_shared/tracing.ts +276 -0
  42. package/.framework/functions/_shared/trigger-engine.ts +159 -211
  43. package/.framework/functions/_shared/webhook-registration.ts +95 -81
  44. package/.framework/functions/_shared/webhook-registry.ts +153 -75
  45. package/.framework/functions/account-nodes.ts +31 -53
  46. package/.framework/functions/adapters/generic-webhook-inbound.ts +56 -0
  47. package/.framework/functions/adapters/generic-webhook-outbound.ts +43 -0
  48. package/.framework/functions/adapters/openai-outbound.ts +40 -0
  49. package/.framework/functions/admin-data.ts +685 -537
  50. package/.framework/functions/admin-funnel.ts +31 -20
  51. package/.framework/functions/admin-install-funnel.ts +47 -28
  52. package/.framework/functions/admin-signals.ts +47 -29
  53. package/.framework/functions/ai-agents.ts +122 -147
  54. package/.framework/functions/ai-interactions.ts +180 -90
  55. package/.framework/functions/api-keys.ts +250 -192
  56. package/.framework/functions/apps.ts +203 -197
  57. package/.framework/functions/auth.ts +98 -91
  58. package/.framework/functions/cil-agent-ingest.ts +773 -0
  59. package/.framework/functions/cil-agent.ts +592 -0
  60. package/.framework/functions/cil-callmap.ts +1227 -0
  61. package/.framework/functions/cil-config.ts +583 -0
  62. package/.framework/functions/cil-context.ts +445 -0
  63. package/.framework/functions/cil-doc.ts +1752 -0
  64. package/.framework/functions/cil-embeddings.ts +1202 -0
  65. package/.framework/functions/cil-graph.ts +585 -0
  66. package/.framework/functions/cil-ingest.ts +2416 -0
  67. package/.framework/functions/cil-pipeline.ts +318 -0
  68. package/.framework/functions/cil-project.ts +499 -0
  69. package/.framework/functions/cil-validate.ts +469 -0
  70. package/.framework/functions/debug-auth.ts +73 -53
  71. package/.framework/functions/deliveries.ts +117 -0
  72. package/.framework/functions/embeddings.ts +528 -516
  73. package/.framework/functions/eval-harness.ts +158 -106
  74. package/.framework/functions/integration-outbound.ts +311 -0
  75. package/.framework/functions/integration-routes.ts +240 -466
  76. package/.framework/functions/integrations.ts +132 -140
  77. package/.framework/functions/invites.ts +401 -201
  78. package/.framework/functions/item-progress.ts +113 -53
  79. package/.framework/functions/kb.ts +28 -0
  80. package/.framework/functions/logs.ts +239 -222
  81. package/.framework/functions/observability.ts +308 -259
  82. package/.framework/functions/pipeline-executions.ts +179 -235
  83. package/.framework/functions/pipelines.ts +163 -205
  84. package/.framework/functions/prompt-configs.ts +109 -156
  85. package/.framework/functions/roles.ts +97 -147
  86. package/.framework/functions/system-cron.ts +132 -218
  87. package/.framework/functions/system.ts +112 -52
  88. package/.framework/functions/tests.ts +32 -28
  89. package/.framework/functions/timers.ts +162 -210
  90. package/.framework/functions/triggers.ts +282 -346
  91. package/.framework/functions/types.ts +283 -400
  92. package/.framework/migrations/001_core_schema.sql +630 -0
  93. package/.framework/migrations/002_core_rls_and_functions.sql +532 -0
  94. package/.framework/migrations/{003_system_data.sql → 003_core_system_data.sql} +26 -153
  95. package/.framework/migrations/004_core_rpc_and_broker.sql +421 -0
  96. package/.framework/migrations/005_core_observability.sql +598 -0
  97. package/.framework/migrations/006_security_hardening_rls.sql +97 -0
  98. package/.framework/migrations/007_kb_article_list.sql +237 -0
  99. package/.framework/migrations/008_items_target.sql +8 -0
  100. package/.framework/migrations/009_roles_slug_unique.sql +11 -0
  101. package/.framework/public/spine.config.json +91 -0
  102. package/.framework/scripts/app-install-cli.ts +112 -98
  103. package/.framework/src/App.tsx +67 -20
  104. package/.framework/src/apps/admin/index.tsx +97 -27
  105. package/.framework/src/components/AppWrapper.tsx +50 -11
  106. package/.framework/src/components/CustomAppLoader.tsx +131 -22
  107. package/.framework/src/components/admin/AdminListPage.tsx +75 -8
  108. package/.framework/src/components/admin/AdminSidebar.tsx +148 -36
  109. package/.framework/src/components/admin/AdminStatsCard.tsx +48 -29
  110. package/.framework/src/components/admin/PageInstructions.tsx +49 -0
  111. package/.framework/src/components/admin/SortableTableHeader.tsx +49 -2
  112. package/.framework/src/components/app-shell/GenericAppShell.tsx +69 -11
  113. package/.framework/src/components/app-shell/GenericDetailPage.tsx +55 -10
  114. package/.framework/src/components/app-shell/GenericListPage.tsx +76 -9
  115. package/.framework/src/components/app-sidebar.tsx +50 -3
  116. package/.framework/src/components/auth/ProtectedRoute.tsx +53 -45
  117. package/.framework/src/components/kb/KBArticleEditor.tsx +409 -0
  118. package/.framework/src/components/kb/KBArticleList.tsx +557 -0
  119. package/.framework/src/components/layout/AppShell.tsx +54 -16
  120. package/.framework/src/components/layout/Header.tsx +50 -38
  121. package/.framework/src/components/layout/Layout.tsx +48 -32
  122. package/.framework/src/components/layout/Sidebar.tsx +167 -16
  123. package/.framework/src/components/runtime/DataDetailHeader.tsx +33 -1
  124. package/.framework/src/components/runtime/DataDetailPage.tsx +289 -4
  125. package/.framework/src/components/runtime/DataFilters.tsx +78 -1
  126. package/.framework/src/components/runtime/DataHeader.tsx +32 -29
  127. package/.framework/src/components/runtime/DataListPage.tsx +161 -2
  128. package/.framework/src/components/runtime/DataStats.tsx +48 -1
  129. package/.framework/src/components/runtime/DataTable.tsx +153 -1
  130. package/.framework/src/components/runtime/SchemaDetailForm.tsx +77 -46
  131. package/.framework/src/components/runtime/index.ts +16 -9
  132. package/.framework/src/components/search-form.tsx +33 -1
  133. package/.framework/src/components/shared/AgentView.tsx +48 -51
  134. package/.framework/src/components/shared/FieldRenderer.tsx +84 -67
  135. package/.framework/src/components/shared/InviteManager.tsx +113 -52
  136. package/.framework/src/components/shared/MemberList.tsx +182 -0
  137. package/.framework/src/components/shared/SchemaFields.tsx +96 -78
  138. package/.framework/src/components/ui/DataTable.tsx +86 -56
  139. package/.framework/src/components/ui/Form.tsx +188 -109
  140. package/.framework/src/components/ui/ItemCard.tsx +86 -58
  141. package/.framework/src/components/ui/ItemListView.tsx +88 -61
  142. package/.framework/src/components/ui/LoadingSpinner.tsx +52 -27
  143. package/.framework/src/components/ui/Modal.tsx +81 -4
  144. package/.framework/src/components/ui/RichTextEditor.tsx +101 -9
  145. package/.framework/src/components/ui/accordion.tsx +97 -5
  146. package/.framework/src/components/ui/alert-dialog.tsx +225 -13
  147. package/.framework/src/components/ui/alert.tsx +113 -6
  148. package/.framework/src/components/ui/aspect-ratio.tsx +49 -2
  149. package/.framework/src/components/ui/avatar.tsx +129 -7
  150. package/.framework/src/components/ui/badge.tsx +65 -3
  151. package/.framework/src/components/ui/breadcrumb.tsx +145 -8
  152. package/.framework/src/components/ui/button-group.tsx +81 -4
  153. package/.framework/src/components/ui/button.tsx +49 -2
  154. package/.framework/src/components/ui/calendar.tsx +65 -3
  155. package/.framework/src/components/ui/card.tsx +145 -8
  156. package/.framework/src/components/ui/carousel.tsx +129 -7
  157. package/.framework/src/components/ui/chart.tsx +161 -10
  158. package/.framework/src/components/ui/checkbox.tsx +49 -2
  159. package/.framework/src/components/ui/collapsible.tsx +81 -5
  160. package/.framework/src/components/ui/combobox.tsx +305 -20
  161. package/.framework/src/components/ui/command.tsx +177 -11
  162. package/.framework/src/components/ui/context-menu.tsx +273 -17
  163. package/.framework/src/components/ui/dialog.tsx +209 -27
  164. package/.framework/src/components/ui/direction.tsx +64 -4
  165. package/.framework/src/components/ui/drawer.tsx +193 -12
  166. package/.framework/src/components/ui/dropdown-menu.tsx +273 -18
  167. package/.framework/src/components/ui/empty.tsx +145 -9
  168. package/.framework/src/components/ui/field.tsx +209 -14
  169. package/.framework/src/components/ui/hover-card.tsx +81 -4
  170. package/.framework/src/components/ui/input-group.tsx +162 -10
  171. package/.framework/src/components/ui/input-otp.tsx +98 -5
  172. package/.framework/src/components/ui/input.tsx +49 -2
  173. package/.framework/src/components/ui/item.tsx +225 -13
  174. package/.framework/src/components/ui/kbd.tsx +65 -3
  175. package/.framework/src/components/ui/label.tsx +49 -2
  176. package/.framework/src/components/ui/menubar.tsx +289 -17
  177. package/.framework/src/components/ui/native-select.tsx +97 -5
  178. package/.framework/src/components/ui/navigation-menu.tsx +177 -10
  179. package/.framework/src/components/ui/pagination.tsx +161 -9
  180. package/.framework/src/components/ui/popover.tsx +145 -8
  181. package/.framework/src/components/ui/progress.tsx +49 -2
  182. package/.framework/src/components/ui/radio-group.tsx +65 -3
  183. package/.framework/src/components/ui/resizable.tsx +82 -4
  184. package/.framework/src/components/ui/scroll-area.tsx +65 -3
  185. package/.framework/src/components/ui/select.tsx +193 -11
  186. package/.framework/src/components/ui/separator.tsx +49 -2
  187. package/.framework/src/components/ui/sheet.tsx +193 -11
  188. package/.framework/src/components/ui/sidebar.tsx +481 -38
  189. package/.framework/src/components/ui/skeleton.tsx +49 -2
  190. package/.framework/src/components/ui/slider.tsx +49 -2
  191. package/.framework/src/components/ui/sonner.tsx +49 -2
  192. package/.framework/src/components/ui/spinner.tsx +49 -2
  193. package/.framework/src/components/ui/switch.tsx +49 -2
  194. package/.framework/src/components/ui/table-primitives.tsx +160 -33
  195. package/.framework/src/components/ui/table.tsx +161 -9
  196. package/.framework/src/components/ui/tabs.tsx +113 -6
  197. package/.framework/src/components/ui/textarea.tsx +49 -2
  198. package/.framework/src/components/ui/toggle-group.tsx +81 -4
  199. package/.framework/src/components/ui/toggle.tsx +65 -3
  200. package/.framework/src/components/ui/tooltip.tsx +97 -5
  201. package/.framework/src/contexts/AppContext.tsx +129 -45
  202. package/.framework/src/contexts/AuthContext.tsx +187 -144
  203. package/.framework/src/hooks/use-mobile.ts +48 -2
  204. package/.framework/src/hooks/useApi.ts +208 -159
  205. package/.framework/src/hooks/useAppPath.ts +32 -23
  206. package/.framework/src/hooks/useApps.ts +51 -20
  207. package/.framework/src/hooks/useEntityList.ts +32 -78
  208. package/.framework/src/hooks/useEntityRecord.ts +35 -96
  209. package/.framework/src/hooks/useForm.ts +32 -92
  210. package/.framework/src/hooks/useListSchema.ts +49 -78
  211. package/.framework/src/hooks/useSchemaRecord.ts +114 -105
  212. package/.framework/src/lib/api.ts +195 -116
  213. package/.framework/src/lib/supabase.ts +98 -64
  214. package/.framework/src/lib/utils.ts +287 -151
  215. package/.framework/src/main.tsx +49 -3
  216. package/.framework/src/pages/DashboardPage.tsx +52 -29
  217. package/.framework/src/pages/NotFoundPage.tsx +32 -10
  218. package/.framework/src/pages/SetupPage.tsx +32 -12
  219. package/.framework/src/pages/admin/AIAgentDetailPage.tsx +119 -10
  220. package/.framework/src/pages/admin/AIAgentsPage.tsx +48 -19
  221. package/.framework/src/pages/admin/APIKeyDetailPage.tsx +187 -17
  222. package/.framework/src/pages/admin/APIKeysPage.tsx +98 -22
  223. package/.framework/src/pages/admin/AlertsConfigPage.tsx +113 -26
  224. package/.framework/src/pages/admin/AppDetailPage.tsx +125 -8
  225. package/.framework/src/pages/admin/AppsPage.tsx +49 -2
  226. package/.framework/src/pages/admin/DeliveriesPage.tsx +196 -0
  227. package/.framework/src/pages/admin/DesignedPage.tsx +32 -18
  228. package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +215 -484
  229. package/.framework/src/pages/admin/EmbeddingsPage.tsx +116 -319
  230. package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +34 -9
  231. package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +34 -9
  232. package/.framework/src/pages/admin/IntegratedDashboard.tsx +32 -16
  233. package/.framework/src/pages/admin/IntegrationDetailPage.tsx +183 -26
  234. package/.framework/src/pages/admin/IntegrationsPage.tsx +48 -19
  235. package/.framework/src/pages/admin/InvitesPage.tsx +48 -14
  236. package/.framework/src/pages/admin/LogsPage.tsx +422 -75
  237. package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +34 -9
  238. package/.framework/src/pages/admin/ObservabilityDashboard.tsx +113 -24
  239. package/.framework/src/pages/admin/PipelineDetailPage.tsx +206 -34
  240. package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +50 -17
  241. package/.framework/src/pages/admin/PipelinesPage.tsx +160 -21
  242. package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +378 -88
  243. package/.framework/src/pages/admin/PromptConfigsPage.tsx +125 -16
  244. package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +49 -10
  245. package/.framework/src/pages/admin/RoleDetailPage.tsx +130 -10
  246. package/.framework/src/pages/admin/RolesPage.tsx +171 -18
  247. package/.framework/src/pages/admin/SelectTestPage.tsx +34 -9
  248. package/.framework/src/pages/admin/ShadcnTestPage.tsx +49 -11
  249. package/.framework/src/pages/admin/SimpleDashboard.tsx +49 -10
  250. package/.framework/src/pages/admin/TestRunDetailPage.tsx +49 -4
  251. package/.framework/src/pages/admin/TestingDashboard.tsx +98 -28
  252. package/.framework/src/pages/admin/TimerDetailPage.tsx +143 -33
  253. package/.framework/src/pages/admin/TimersPage.tsx +48 -20
  254. package/.framework/src/pages/admin/TriggerDetailPage.tsx +118 -30
  255. package/.framework/src/pages/admin/TriggersPage.tsx +64 -19
  256. package/.framework/src/pages/admin/TypeDetailPage.tsx +138 -15
  257. package/.framework/src/pages/admin/TypesPage.tsx +48 -20
  258. package/.framework/src/pages/admin/cil/CILAgentPage.tsx +465 -0
  259. package/.framework/src/pages/admin/cil/CILChunkDetailPage.tsx +787 -0
  260. package/.framework/src/pages/admin/cil/CILDashboardPage.tsx +699 -0
  261. package/.framework/src/pages/admin/cil/CILFileListPage.tsx +647 -0
  262. package/.framework/src/pages/admin/cil/CILGraphPage.tsx +616 -0
  263. package/.framework/src/pages/admin/cil/CILIngestionPage.tsx +1402 -0
  264. package/.framework/src/pages/admin/cil/CILProjectsPage.tsx +614 -0
  265. package/.framework/src/pages/admin/cil/CILSearchPage.tsx +571 -0
  266. package/.framework/src/pages/admin/cil/FlexiblePipelinePage.tsx +731 -0
  267. package/.framework/src/pages/admin/kb/KBAdminPage.tsx +64 -0
  268. package/.framework/src/pages/auth/AuthConfirmPage.tsx +52 -51
  269. package/.framework/src/pages/auth/ForgotPasswordPage.tsx +31 -22
  270. package/.framework/src/pages/auth/LoginPage.tsx +50 -23
  271. package/.framework/src/pages/auth/PendingApprovalPage.tsx +31 -15
  272. package/.framework/src/pages/auth/RegisterPage.tsx +281 -317
  273. package/.framework/src/pages/spine-framework/APIPage.tsx +33 -0
  274. package/.framework/src/pages/spine-framework/CLIPage.tsx +33 -0
  275. package/.framework/src/types/auth.ts +128 -71
  276. package/.framework/src/types/types.ts +373 -157
  277. package/custom/.devin/skills/spine-workbench-discovery/SKILL.md +39 -0
  278. package/custom/.devin/skills/spine-workbench-idea/SKILL.md +36 -0
  279. package/custom/.devin/skills/spine-workbench-implement/SKILL.md +46 -0
  280. package/custom/.devin/skills/spine-workbench-initiative/SKILL.md +28 -0
  281. package/custom/.devin/skills/spine-workbench-plan/SKILL.md +38 -0
  282. package/docs/README.md +9 -130
  283. package/netlify.toml +5 -2
  284. package/package.json +13 -25
  285. package/scripts/kb-ingest-docs.ts +203 -0
  286. package/spine.config.json +65 -4
  287. package/.framework/migrations/001_schema.sql +0 -425
  288. package/.framework/migrations/002_rls_and_functions.sql +0 -763
  289. package/.framework/migrations/004_enhancements.sql +0 -43
  290. package/.framework/migrations/005_auth_user_trigger.sql +0 -105
  291. package/.framework/migrations/006_fix_current_actor_id.sql +0 -21
  292. package/.framework/migrations/016_invites.sql +0 -27
  293. package/.framework/migrations/017_fix_get_account_apps.sql +0 -78
  294. package/.framework/migrations/018_apps_required_roles.sql +0 -17
  295. package/.framework/migrations/019_triggers_unique_constraint.sql +0 -13
  296. package/.framework/migrations/020_get_account_apps_role_filter.sql +0 -117
  297. package/.framework/migrations/021_app_domains.sql +0 -112
  298. package/.framework/migrations/022_route_prefix_domain_unique.sql +0 -21
  299. package/.framework/migrations/023_match_embeddings_rpc.sql +0 -78
  300. package/.framework/migrations/024_messages_account_id.sql +0 -9
  301. package/.framework/migrations/025_retype_threads_messages.sql +0 -240
  302. package/.framework/migrations/026_fix_rls_policies.sql +0 -47
  303. package/.framework/migrations/027_embedding_lifecycle.sql +0 -176
  304. package/.framework/migrations/028_fix_message_data_permissions.sql +0 -49
  305. package/.framework/migrations/029_tighten_support_triage_prompt.sql +0 -41
  306. package/.framework/migrations/030_messages_updated_by.sql +0 -6
  307. package/.framework/migrations/031_seed_upsert_constraints.sql +0 -35
  308. package/docs/APPS.md +0 -232
  309. package/docs/ARCHITECTURE.md +0 -246
  310. package/docs/INSTALL.md +0 -155
  311. package/docs/design-schema-spec.md +0 -1837
  312. package/docs/dev-guides/01-create-an-app.md +0 -183
  313. package/docs/dev-guides/02-create-a-function.md +0 -178
  314. package/docs/dev-guides/03-create-a-component.md +0 -178
  315. package/docs/dev-guides/04-webhook-handlers.md +0 -129
  316. package/docs/dev-guides/05-testing.md +0 -168
  317. package/docs/dev-guides/README.md +0 -40
  318. package/docs/npm-packages-plan.md +0 -288
  319. package/docs/spine-core--api-reference.md +0 -822
@@ -1,44 +1,23 @@
1
- /**
2
- * @module src/components/runtime/SchemaDetailForm
3
- * @audience installer
4
- * @layer frontend-component
5
- * @stability stable
6
- *
7
- * Renders a `DetailView`'s sections as a schema-driven form. Each
8
- * `DetailViewSection` becomes a white card containing a `SchemaFields`
9
- * grid. Field definitions come from `DesignSchema.fields`; display widget
10
- * overrides come from the view's per-field `ViewFieldConfig.display_type`.
11
- *
12
- * **Field source resolution:**
13
- * - Field schema (`data_type`, `required`, `validation`, etc.) →
14
- * `schema.fields[fieldName]`
15
- * - Display widget override → `view.sections[n].fields[fieldName].display_type`
16
- * - `system` fields read from `record[fieldName]`; custom fields read
17
- * from `record.data[fieldName]` (split handled upstream by `DataDetailPage`)
18
- *
19
- * **Read vs edit rendering:** passes `readonly={!isEditing}` to `SchemaFields`
20
- * so all field components switch between display and input mode.
21
- *
22
- * @seeAlso src/components/shared/SchemaFields.tsx
23
- * @seeAlso src/types/types.ts (DesignSchema, DetailView)
24
- * @seeAlso src/components/runtime/DataDetailPage.tsx (parent, owns form state)
25
- */
26
1
 
2
+
3
+ // CIL[BEGIN chunk_id="SchemaDetailForm_module_header_1783929048" type="module_header" identity="imports_and_types" parent="none"]
4
+ // CIL[DOC-MACRO purpose="Import dependencies and define schema form component types"]
5
+ // CIL[DOC-RESPONSIBILITY responsibility="Manage imports and interface for schema form"]
6
+ // CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
7
+ // CIL[DOC-CONTRACT inputs="none" outputs="types" errors="none" side_effects="none"]
8
+ // CIL[DOC-MICRO logic_summary="Imports schema types and SchemaFields component" notable_decisions="[]"]
9
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
10
+ // CIL[DOC-STABILITY stability="stable"]
11
+ // CIL[DOC-AUDIENCE audience="developer"]
12
+ // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/components/ui/dialog.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/table-primitives.tsx, \."]
13
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
14
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
15
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
16
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
17
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
27
18
  import { DesignSchema, DetailView, DetailViewSection, FieldDefinition } from '../../types/types'
28
19
  import { SchemaFields } from '../shared/SchemaFields'
29
20
 
30
- /**
31
- * Props for `SchemaDetailForm`.
32
- *
33
- * @prop schema - Full `DesignSchema` for field definitions and permissions
34
- * @prop view - The `default_detail` `DetailView` from the schema
35
- * @prop record - Raw fetched record (used in read-only mode)
36
- * @prop isEditing - If true, renders input fields; false = read-only display
37
- * @prop isCreating - If true, skips reading from `record` (no record yet)
38
- * @prop permissions - Per-field `{ read, write }` map from `useEntityRecord`
39
- * @prop formData - Controlled values for all fields (owned by `DataDetailPage`)
40
- * @prop onFieldChange - Callback to update a single field value
41
- */
42
21
  interface SchemaDetailFormProps {
43
22
  schema: DesignSchema
44
23
  view: DetailView
@@ -49,14 +28,21 @@ interface SchemaDetailFormProps {
49
28
  formData: Record<string, any>
50
29
  onFieldChange: (key: string, value: any) => void
51
30
  }
52
-
53
- /**
54
- * Renders a schema-defined `DetailView` as a sectioned form.
55
- *
56
- * @param props - `SchemaDetailFormProps`
57
- * @returns One card per `DetailViewSection`, or an empty-state message
58
- * @sideEffects none (pure rendering)
59
- */
31
+ // CIL[END chunk_id="SchemaDetailForm_module_header_1783929048"]
32
+ // CIL[BEGIN chunk_id="SchemaDetailForm_schemadetailform_1783929048" type="function" identity="SchemaDetailForm" parent="none"]
33
+ // CIL[DOC-MACRO purpose="Render all form sections in vertical layout"]
34
+ // CIL[DOC-RESPONSIBILITY responsibility="Display complete form with all sections"]
35
+ // CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\".framework/migrations/015_simplify_apps_table.sql\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"\\\"]"]
36
+ // CIL[DOC-CONTRACT inputs="none" outputs="JSX form sections" errors="none" side_effects="none"]
37
+ // CIL[DOC-MICRO logic_summary="Map view sections to renderSection calls in space-y layout" notable_decisions="[]"]
38
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
39
+ // CIL[DOC-STABILITY stability="stable"]
40
+ // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/migrations/015_simplify_apps_table.sql, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/IntegrationsPage.tsx, custom/apps/cortex/functions/custom_cil-embeddings.ts, \."]
41
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
42
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
43
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
44
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
45
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
60
46
  export function SchemaDetailForm({
61
47
  schema,
62
48
  view,
@@ -67,7 +53,20 @@ export function SchemaDetailForm({
67
53
  formData,
68
54
  onFieldChange
69
55
  }: SchemaDetailFormProps) {
70
-
56
+ // CIL[BEGIN chunk_id="SchemaDetailForm_rendersection_1783929048" type="function" identity="renderSection" parent="SchemaDetailForm_schemadetailform_1783929048"]
57
+ // CIL[DOC-MACRO purpose="Render individual form section with fields"]
58
+ // CIL[DOC-RESPONSIBILITY responsibility="Handle renderSection"]
59
+ // CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\".framework/src/components/ui/table-primitives.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
60
+ // CIL[DOC-CONTRACT inputs="none" outputs="JSX section|null" errors="none" side_effects="none"]
61
+ // CIL[DOC-MICRO logic_summary="Map section fields to FieldDefinitions, build display types" notable_decisions="[]"]
62
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
63
+ // CIL[DOC-STABILITY stability="stable"]
64
+ // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 2. Direct calls: 0. Related files: .framework/src/components/ui/table-primitives.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
65
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 2. Total affected: 2."]
66
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
67
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
68
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
69
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
71
70
  const renderSection = (section: DetailViewSection, sectionIndex: number) => {
72
71
  const fieldNames = Array.isArray(section.fields) ? section.fields : Object.keys(section.fields || {})
73
72
  const sectionFields = fieldNames.map((fieldName: string) => {
@@ -115,7 +114,22 @@ export function SchemaDetailForm({
115
114
  </div>
116
115
  )
117
116
  }
117
+ // CIL[END chunk_id="SchemaDetailForm_rendersection_1783929048"]
118
118
 
119
+ // CIL[BEGIN chunk_id="SchemaDetailForm_emptystate_1783929048" type="render_block" identity="emptyState" parent="SchemaDetailForm_schemadetailform_1783929048"]
120
+ // CIL[DOC-MACRO purpose="Render empty state when no sections configured"]
121
+ // CIL[DOC-RESPONSIBILITY responsibility="Handle emptyState"]
122
+ // CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\".framework/functions/_shared/principal.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/migrations/015_simplify_apps_table.sql\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
123
+ // CIL[DOC-CONTRACT inputs="none" outputs="JSX empty state" errors="none" side_effects="none"]
124
+ // CIL[DOC-MICRO logic_summary="Show centered message when no fields are configured" notable_decisions="[]"]
125
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
126
+ // CIL[DOC-STABILITY stability="stable"]
127
+ // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/principal.ts, custom/apps/portal/pages/ContentPage.tsx, .framework/migrations/015_simplify_apps_table.sql, .framework/src/components/ui/table-primitives.tsx, \."]
128
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
129
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
130
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
131
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
132
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
119
133
  if (!view.sections || view.sections.length === 0) {
120
134
  return (
121
135
  <div className="bg-white shadow rounded-lg p-6">
@@ -125,10 +139,27 @@ export function SchemaDetailForm({
125
139
  </div>
126
140
  )
127
141
  }
142
+ // CIL[END chunk_id="SchemaDetailForm_emptystate_1783929048"]
128
143
 
144
+ // CIL[BEGIN chunk_id="SchemaDetailForm_mainrender_1783929048" type="render_block" identity="mainRender" parent="SchemaDetailForm_schemadetailform_1783929048"]
145
+ // CIL[DOC-MACRO purpose="Render all form sections in vertical layout"]
146
+ // CIL[DOC-RESPONSIBILITY responsibility="Handle mainRender"]
147
+ // CIL[DOC-CONTEXT module="runtime" layer="frontend-component" related_files="[\".framework/migrations/015_simplify_apps_table.sql\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"\\\"]"]
148
+ // CIL[DOC-CONTRACT inputs="none" outputs="JSX form sections" errors="none" side_effects="none"]
149
+ // CIL[DOC-MICRO logic_summary="Map view sections to renderSection calls in space-y layout" notable_decisions="[]"]
150
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
151
+ // CIL[DOC-STABILITY stability="stable"]
152
+ // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/migrations/015_simplify_apps_table.sql, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/functions/_shared/principal.ts, .framework/src/pages/admin/IntegrationsPage.tsx, custom/apps/cortex/functions/custom_cil-embeddings.ts, \."]
153
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
154
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
155
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
156
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
157
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
129
158
  return (
130
159
  <div className="space-y-6">
131
160
  {view.sections.map((section, index) => renderSection(section, index))}
132
161
  </div>
133
162
  )
163
+ // CIL[END chunk_id="SchemaDetailForm_mainrender_1783929048"]
134
164
  }
165
+ // CIL[END chunk_id="SchemaDetailForm_schemadetailform_1783929048"]
@@ -1,13 +1,19 @@
1
- /**
2
- * @module src/components/runtime
3
- * @audience installer
4
- * @layer frontend-component
5
- * @stability stable
6
- *
7
- * Barrel export for all schema-driven runtime page components.
8
- * Import from this module to get type-safe access to all runtime UI primitives.
9
- */
10
1
 
2
+ // CIL[BEGIN chunk_id="index_module_header_1783927912" type="module_header" identity="module_header" parent="none"]
3
+ // CIL[DOC-MACRO purpose="Barrel export for runtime page components"]
4
+ // CIL[DOC-RESPONSIBILITY responsibility="Re-export schema-driven UI components"]
5
+ // CIL[DOC-CONTEXT module="runtime-index" layer="frontend-component" related_files="[\".framework/src/pages/admin/TypeDetailPage.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/layout/Sidebar.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"\\\"]"]
6
+ // CIL[DOC-CONTRACT inputs="none" outputs="Exported runtime components" errors="none" side_effects="Module exports"]
7
+ // CIL[DOC-MICRO logic_summary="Aggregates and exports all runtime page components" notable_decisions="[]"]
8
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
9
+ // CIL[DOC-STABILITY stability="stable"]
10
+ // CIL[DOC-AUDIENCE audience="developer"]
11
+ // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/src/pages/admin/TypeDetailPage.tsx, custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/layout/Sidebar.tsx, .framework/src/pages/admin/RolesPage.tsx, \."]
12
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
13
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
14
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
15
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
16
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
11
17
  export { DataListPage } from './DataListPage'
12
18
  export { DataDetailPage } from './DataDetailPage'
13
19
  export { DataHeader } from './DataHeader'
@@ -16,3 +22,4 @@ export { DataFilters } from './DataFilters'
16
22
  export { DataTable } from './DataTable'
17
23
  export { DataDetailHeader } from './DataDetailHeader'
18
24
  export { SchemaDetailForm } from './SchemaDetailForm'
25
+ // CIL[END chunk_id="index_module_header_1783927912"]
@@ -1,3 +1,20 @@
1
+
2
+
3
+ // CIL[BEGIN chunk_id="search-form_module_header_1783927912" type="module_header" identity="module_header" parent="none"]
4
+ // CIL[DOC-MACRO purpose="Import dependencies for search form component"]
5
+ // CIL[DOC-RESPONSIBILITY responsibility="Manage UI component imports and client directive"]
6
+ // CIL[DOC-CONTEXT module="search-form" layer="frontend-component" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
7
+ // CIL[DOC-CONTRACT inputs="none" outputs="Imported modules" errors="none" side_effects="none"]
8
+ // CIL[DOC-MICRO logic_summary="Imports UI components and icons for search form" notable_decisions="[]"]
9
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
10
+ // CIL[DOC-STABILITY stability="stable"]
11
+ // CIL[DOC-AUDIENCE audience="developer"]
12
+ // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, .framework/src/components/ui/dialog.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
13
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
14
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
15
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
16
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
17
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
1
18
  "use client"
2
19
 
3
20
  import { Label } from "./ui/label"
@@ -7,7 +24,21 @@ import {
7
24
  SidebarInput,
8
25
  } from "./ui/sidebar"
9
26
  import { SearchIcon } from "lucide-react"
10
-
27
+ // CIL[END chunk_id="search-form_module_header_1783927912"]
28
+ // CIL[BEGIN chunk_id="search-form_searchform_1783927912" type="function" identity="SearchForm" parent="none"]
29
+ // CIL[DOC-MACRO purpose="Render search input form with sidebar styling"]
30
+ // CIL[DOC-RESPONSIBILITY responsibility="Create search form UI with icon and placeholder"]
31
+ // CIL[DOC-CONTEXT module="search-form" layer="frontend-component" related_files="[\".framework/src/components/layout/Sidebar.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"\\\"]"]
32
+ // CIL[DOC-CONTRACT inputs="none" outputs="Styled search form component" errors="none" side_effects="Renders UI"]
33
+ // CIL[DOC-MICRO logic_summary="Wraps form in sidebar components with search icon" notable_decisions="[]"]
34
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
35
+ // CIL[DOC-STABILITY stability="stable"]
36
+ // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/layout/Sidebar.tsx, custom/apps/portal/pages/ContentPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/TypeDetailPage.tsx, custom/apps/cortex/functions/custom_cil-embeddings.ts, \."]
37
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
38
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
39
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
40
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
41
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
11
42
  export function SearchForm({ ...props }: React.ComponentProps<"form">) {
12
43
  return (
13
44
  <form {...props}>
@@ -27,3 +58,4 @@ export function SearchForm({ ...props }: React.ComponentProps<"form">) {
27
58
  </form>
28
59
  )
29
60
  }
61
+ // CIL[END chunk_id="search-form_searchform_1783927912"]
@@ -1,53 +1,47 @@
1
- /**
2
- * @component AgentView
3
- * @audience installer
4
- * @layer component
5
- * @stability stable
6
- *
7
- * Agent View toggle component for exposing raw API data and code examples.
8
- * Provides agents (and developers) with:
9
- * - Raw JSON of current record/page data
10
- * - Copy-pasteable API calls (curl/fetch)
11
- * - Equivalent CLI commands
12
- *
13
- * **Usage:**
14
- * ```tsx
15
- * <AgentView
16
- * data={recordData}
17
- * endpoint="/.netlify/functions/items"
18
- * method="GET"
19
- * query={{ id: recordId }}
20
- * />
21
- * ```
22
- *
23
- * **Features:**
24
- * - Collapsible panel (closed by default)
25
- * - Copy to clipboard buttons
26
- * - Syntax highlighting for JSON
27
- * - Responsive layout
28
- *
29
- * @seeAlso hooks/useApi.ts (API call logging)
30
- * @seeAlso pages/admin/* (admin pages using this component)
31
- */
32
1
 
2
+
3
+
4
+ // CIL[BEGIN chunk_id="AgentView_module_header_1783927912" type="module_header" identity="module_header" parent="none"]
5
+ // CIL[DOC-MACRO purpose="Import dependencies and define AgentView component interface"]
6
+ // CIL[DOC-RESPONSIBILITY responsibility="Manage React imports and component prop types"]
7
+ // CIL[DOC-CONTEXT module="agent-view" layer="frontend-component" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\"\\\"]"]
8
+ // CIL[DOC-CONTRACT inputs="none" outputs="Imported modules and interface" errors="none" side_effects="none"]
9
+ // CIL[DOC-MICRO logic_summary="Imports React hooks and icons, defines AgentViewProps interface" notable_decisions="[]"]
10
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
11
+ // CIL[DOC-STABILITY stability="stable"]
12
+ // CIL[DOC-AUDIENCE audience="developer"]
13
+ // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/IntegrationsPage.tsx, \."]
14
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
15
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
16
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
17
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
18
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
33
19
  import React, { useState, useEffect } from 'react'
34
20
  import { Code, Terminal, Copy, Check, ChevronDown, ChevronUp } from 'lucide-react'
35
21
 
36
22
  interface AgentViewProps {
37
- /** The raw data object to display */
38
23
  data: any
39
- /** API endpoint path */
40
24
  endpoint: string
41
- /** HTTP method */
42
25
  method?: 'GET' | 'POST' | 'PATCH' | 'DELETE'
43
- /** Query parameters used */
44
26
  query?: Record<string, any>
45
- /** Request body (for POST/PATCH) */
46
27
  body?: any
47
- /** Optional title override */
48
28
  title?: string
49
29
  }
50
-
30
+ // CIL[END chunk_id="AgentView_module_header_1783927912"]
31
+ // CIL[BEGIN chunk_id="AgentView_agentview_1783927912" type="function" identity="AgentView" parent="none"]
32
+ // CIL[DOC-MACRO purpose="Render collapsible developer panel with API data and code examples"]
33
+ // CIL[DOC-RESPONSIBILITY responsibility="Display raw JSON, curl/fetch commands, and CLI examples for agents"]
34
+ // CIL[DOC-CONTEXT module="agent-view" layer="frontend-component" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/pages/admin/IntegrationsPage.tsx\",\".framework/functions/_shared/schema-utils.ts\",\".framework/src/pages/admin/RolesPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
35
+ // CIL[DOC-CONTRACT inputs="none" outputs="Interactive developer panel" errors="none" side_effects="Renders UI, clipboard operations"]
36
+ // CIL[DOC-MICRO logic_summary="Generates code examples from API data, manages copy state, renders collapsible panel" notable_decisions="[]"]
37
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
38
+ // CIL[DOC-STABILITY stability="stable"]
39
+ // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: custom/apps/portal/pages/ContentPage.tsx, .framework/src/pages/admin/IntegrationsPage.tsx, .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/RolesPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
40
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
41
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
42
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
43
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
44
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
51
45
  export function AgentView({
52
46
  data,
53
47
  endpoint,
@@ -59,17 +53,14 @@ export function AgentView({
59
53
  const [isOpen, setIsOpen] = useState(false)
60
54
  const [copied, setCopied] = useState<string | null>(null)
61
55
 
62
- // Build API URL
63
56
  const baseUrl = window.location.origin
64
57
  const fullUrl = `${baseUrl}${endpoint}${query ? '?' + new URLSearchParams(query).toString() : ''}`
65
58
 
66
- // Generate curl command
67
59
  const curlCmd = `curl -X ${method} \\
68
60
  ${method !== 'GET' ? `-H "Content-Type: application/json" \\
69
61
  ` : ''}${baseUrl}${endpoint}${query ? '?' + new URLSearchParams(query).toString() : ''}${method !== 'GET' && body ? ` \\
70
62
  -d '${JSON.stringify(body, null, 2)}'` : ''}`
71
63
 
72
- // Generate fetch code
73
64
  const fetchCode = `fetch('${baseUrl}${endpoint}${query ? '?' + new URLSearchParams(query).toString() : ''}', {
74
65
  method: '${method}',${method !== 'GET' ? `
75
66
  headers: { 'Content-Type': 'application/json' },` : ''}${method !== 'GET' && body ? `
@@ -78,7 +69,6 @@ export function AgentView({
78
69
  .then(r => r.json())
79
70
  .then(data => console.log(data))`
80
71
 
81
- // Generate CLI command
82
72
  const cliCmd = `spine ${endpoint.replace('/.netlify/functions/', '').replace(/\//g, ' ')} ${query?.id || query?.slug || ''}${method === 'POST' && body ? ` --data '${JSON.stringify(body)}'` : ''}${method === 'PATCH' && body ? ` --update '${JSON.stringify(body)}'` : ''}${method === 'DELETE' ? ' --delete' : ''}`
83
73
 
84
74
  const handleCopy = (text: string, key: string) => {
@@ -89,7 +79,6 @@ export function AgentView({
89
79
 
90
80
  return (
91
81
  <div className="mt-6 border border-gray-200 rounded-lg bg-gray-50">
92
- {/* Header */}
93
82
  <button
94
83
  onClick={() => setIsOpen(!isOpen)}
95
84
  className="w-full flex items-center justify-between px-4 py-3 text-left hover:bg-gray-100 transition-colors"
@@ -106,10 +95,8 @@ export function AgentView({
106
95
  )}
107
96
  </button>
108
97
 
109
- {/* Content */}
110
98
  {isOpen && (
111
99
  <div className="border-t border-gray-200">
112
- {/* API Info */}
113
100
  <div className="px-4 py-3 bg-blue-50 border-b border-blue-100">
114
101
  <div className="flex items-center gap-2 text-sm text-blue-800">
115
102
  <span className="font-mono font-bold">{method}</span>
@@ -123,7 +110,6 @@ export function AgentView({
123
110
  </div>
124
111
 
125
112
  <div className="p-4 space-y-4">
126
- {/* Raw JSON */}
127
113
  <div>
128
114
  <div className="flex items-center justify-between mb-2">
129
115
  <div className="flex items-center gap-2 text-sm font-medium text-gray-700">
@@ -147,9 +133,7 @@ export function AgentView({
147
133
  </pre>
148
134
  </div>
149
135
 
150
- {/* Code Examples */}
151
136
  <div className="grid grid-cols-1 lg:grid-cols-2 gap-4">
152
- {/* cURL */}
153
137
  <div>
154
138
  <div className="flex items-center justify-between mb-2">
155
139
  <div className="text-sm font-medium text-gray-700">cURL</div>
@@ -166,7 +150,6 @@ export function AgentView({
166
150
  </pre>
167
151
  </div>
168
152
 
169
- {/* Fetch */}
170
153
  <div>
171
154
  <div className="flex items-center justify-between mb-2">
172
155
  <div className="text-sm font-medium text-gray-700">JavaScript Fetch</div>
@@ -184,7 +167,6 @@ export function AgentView({
184
167
  </div>
185
168
  </div>
186
169
 
187
- {/* CLI Command */}
188
170
  <div>
189
171
  <div className="flex items-center justify-between mb-2">
190
172
  <div className="flex items-center gap-2 text-sm font-medium text-gray-700">
@@ -209,5 +191,20 @@ export function AgentView({
209
191
  </div>
210
192
  )
211
193
  }
212
-
194
+ // CIL[END chunk_id="AgentView_agentview_1783927912"]
195
+ // CIL[BEGIN chunk_id="AgentView_export_1783927912" type="export" identity="default_export" parent="none"]
196
+ // CIL[DOC-MACRO purpose="Export AgentView component as default"]
197
+ // CIL[DOC-RESPONSIBILITY responsibility="Provide default export for component module"]
198
+ // CIL[DOC-CONTEXT module="agent-view" layer="frontend-component" related_files="[\".framework/src/components/ui/dialog.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\"\\\"]"]
199
+ // CIL[DOC-CONTRACT inputs="none" outputs="Default export" errors="none" side_effects="Module export"]
200
+ // CIL[DOC-MICRO logic_summary="Export AgentView component for import by other modules" notable_decisions="[]"]
201
+ // CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
202
+ // CIL[DOC-STABILITY stability="stable"]
203
+ // CIL[DOC-VECTOR type="context" content="Layer: frontend-component. Direct callers: 0. Direct calls: 0. Related files: .framework/src/components/ui/dialog.tsx, .framework/src/pages/admin/RolesPage.tsx, custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, \."]
204
+ // CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
205
+ // CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
206
+ // CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
207
+ // CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
208
+ // CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
213
209
  export default AgentView
210
+ // CIL[END chunk_id="AgentView_export_1783927912"]