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.
- package/.framework/cli/commands/agents.ts +35 -37
- package/.framework/cli/commands/auth.ts +35 -34
- package/.framework/cli/commands/create-app.ts +104 -40
- package/.framework/cli/commands/dev.ts +104 -69
- package/.framework/cli/commands/doctor.ts +179 -69
- package/.framework/cli/commands/generate.ts +83 -143
- package/.framework/cli/commands/init.ts +72 -34
- package/.framework/cli/commands/install-app.ts +260 -125
- package/.framework/cli/commands/items.ts +33 -44
- package/.framework/cli/commands/migrate.ts +122 -40
- package/.framework/cli/commands/migrations.ts +33 -40
- package/.framework/cli/commands/pipelines.ts +31 -39
- package/.framework/cli/commands/status.ts +47 -23
- package/.framework/cli/commands/system.ts +47 -37
- package/.framework/cli/commands/test.ts +112 -68
- package/.framework/cli/commands/validate-app.ts +215 -121
- package/.framework/cli/context.ts +112 -130
- package/.framework/cli/env-loader.ts +47 -18
- package/.framework/cli/index.ts +81 -42
- package/.framework/docs/runtime-types.md +1024 -0
- package/.framework/functions/_shared/agent-runner.ts +1296 -961
- package/.framework/functions/_shared/app-manifest.ts +82 -68
- package/.framework/functions/_shared/audit.ts +135 -83
- package/.framework/functions/_shared/{cil-state.ts → cil.ts} +158 -56
- package/.framework/functions/_shared/db.ts +80 -126
- package/.framework/functions/_shared/hash-api-key.ts +63 -0
- package/.framework/functions/_shared/index.ts +224 -335
- package/.framework/functions/_shared/kb.ts +319 -0
- package/.framework/functions/_shared/llm.ts +92 -0
- package/.framework/functions/_shared/logging.ts +288 -0
- package/.framework/functions/_shared/middleware.ts +329 -365
- package/.framework/functions/_shared/outcomes.ts +36 -0
- package/.framework/functions/_shared/permissions.ts +359 -643
- package/.framework/functions/_shared/pipeline-runner.ts +243 -316
- package/.framework/functions/_shared/principal.ts +376 -468
- package/.framework/functions/_shared/resolve-credentials.ts +102 -0
- package/.framework/functions/_shared/resolve-ids.ts +188 -16
- package/.framework/functions/_shared/retry-deliveries.ts +104 -0
- package/.framework/functions/_shared/schema-utils.ts +611 -373
- package/.framework/functions/_shared/testing.ts +207 -137
- package/.framework/functions/_shared/tracing.ts +276 -0
- package/.framework/functions/_shared/trigger-engine.ts +159 -211
- package/.framework/functions/_shared/webhook-registration.ts +95 -81
- package/.framework/functions/_shared/webhook-registry.ts +153 -75
- package/.framework/functions/account-nodes.ts +31 -53
- package/.framework/functions/adapters/generic-webhook-inbound.ts +56 -0
- package/.framework/functions/adapters/generic-webhook-outbound.ts +43 -0
- package/.framework/functions/adapters/openai-outbound.ts +40 -0
- package/.framework/functions/admin-data.ts +685 -537
- package/.framework/functions/admin-funnel.ts +31 -20
- package/.framework/functions/admin-install-funnel.ts +47 -28
- package/.framework/functions/admin-signals.ts +47 -29
- package/.framework/functions/ai-agents.ts +122 -147
- package/.framework/functions/ai-interactions.ts +180 -90
- package/.framework/functions/api-keys.ts +250 -192
- package/.framework/functions/apps.ts +203 -197
- package/.framework/functions/auth.ts +98 -91
- package/.framework/functions/cil-agent-ingest.ts +773 -0
- package/.framework/functions/cil-agent.ts +592 -0
- package/.framework/functions/cil-callmap.ts +1227 -0
- package/.framework/functions/cil-config.ts +583 -0
- package/.framework/functions/cil-context.ts +445 -0
- package/.framework/functions/cil-doc.ts +1752 -0
- package/.framework/functions/cil-embeddings.ts +1202 -0
- package/.framework/functions/cil-graph.ts +585 -0
- package/.framework/functions/cil-ingest.ts +2416 -0
- package/.framework/functions/cil-pipeline.ts +318 -0
- package/.framework/functions/cil-project.ts +499 -0
- package/.framework/functions/cil-validate.ts +469 -0
- package/.framework/functions/debug-auth.ts +73 -53
- package/.framework/functions/deliveries.ts +117 -0
- package/.framework/functions/embeddings.ts +528 -516
- package/.framework/functions/eval-harness.ts +158 -106
- package/.framework/functions/integration-outbound.ts +311 -0
- package/.framework/functions/integration-routes.ts +240 -466
- package/.framework/functions/integrations.ts +132 -140
- package/.framework/functions/invites.ts +401 -201
- package/.framework/functions/item-progress.ts +113 -53
- package/.framework/functions/kb.ts +28 -0
- package/.framework/functions/logs.ts +239 -222
- package/.framework/functions/observability.ts +308 -259
- package/.framework/functions/pipeline-executions.ts +179 -235
- package/.framework/functions/pipelines.ts +163 -205
- package/.framework/functions/prompt-configs.ts +109 -156
- package/.framework/functions/roles.ts +97 -147
- package/.framework/functions/system-cron.ts +132 -218
- package/.framework/functions/system.ts +112 -52
- package/.framework/functions/tests.ts +32 -28
- package/.framework/functions/timers.ts +162 -210
- package/.framework/functions/triggers.ts +282 -346
- package/.framework/functions/types.ts +283 -400
- package/.framework/migrations/001_core_schema.sql +630 -0
- package/.framework/migrations/002_core_rls_and_functions.sql +532 -0
- package/.framework/migrations/{003_system_data.sql → 003_core_system_data.sql} +26 -153
- package/.framework/migrations/004_core_rpc_and_broker.sql +421 -0
- package/.framework/migrations/005_core_observability.sql +598 -0
- package/.framework/migrations/006_security_hardening_rls.sql +97 -0
- package/.framework/migrations/007_kb_article_list.sql +237 -0
- package/.framework/migrations/008_items_target.sql +8 -0
- package/.framework/migrations/009_roles_slug_unique.sql +11 -0
- package/.framework/public/spine.config.json +91 -0
- package/.framework/scripts/app-install-cli.ts +112 -98
- package/.framework/src/App.tsx +67 -20
- package/.framework/src/apps/admin/index.tsx +97 -27
- package/.framework/src/components/AppWrapper.tsx +50 -11
- package/.framework/src/components/CustomAppLoader.tsx +131 -22
- package/.framework/src/components/admin/AdminListPage.tsx +75 -8
- package/.framework/src/components/admin/AdminSidebar.tsx +148 -36
- package/.framework/src/components/admin/AdminStatsCard.tsx +48 -29
- package/.framework/src/components/admin/PageInstructions.tsx +49 -0
- package/.framework/src/components/admin/SortableTableHeader.tsx +49 -2
- package/.framework/src/components/app-shell/GenericAppShell.tsx +69 -11
- package/.framework/src/components/app-shell/GenericDetailPage.tsx +55 -10
- package/.framework/src/components/app-shell/GenericListPage.tsx +76 -9
- package/.framework/src/components/app-sidebar.tsx +50 -3
- package/.framework/src/components/auth/ProtectedRoute.tsx +53 -45
- package/.framework/src/components/kb/KBArticleEditor.tsx +409 -0
- package/.framework/src/components/kb/KBArticleList.tsx +557 -0
- package/.framework/src/components/layout/AppShell.tsx +54 -16
- package/.framework/src/components/layout/Header.tsx +50 -38
- package/.framework/src/components/layout/Layout.tsx +48 -32
- package/.framework/src/components/layout/Sidebar.tsx +167 -16
- package/.framework/src/components/runtime/DataDetailHeader.tsx +33 -1
- package/.framework/src/components/runtime/DataDetailPage.tsx +289 -4
- package/.framework/src/components/runtime/DataFilters.tsx +78 -1
- package/.framework/src/components/runtime/DataHeader.tsx +32 -29
- package/.framework/src/components/runtime/DataListPage.tsx +161 -2
- package/.framework/src/components/runtime/DataStats.tsx +48 -1
- package/.framework/src/components/runtime/DataTable.tsx +153 -1
- package/.framework/src/components/runtime/SchemaDetailForm.tsx +77 -46
- package/.framework/src/components/runtime/index.ts +16 -9
- package/.framework/src/components/search-form.tsx +33 -1
- package/.framework/src/components/shared/AgentView.tsx +48 -51
- package/.framework/src/components/shared/FieldRenderer.tsx +84 -67
- package/.framework/src/components/shared/InviteManager.tsx +113 -52
- package/.framework/src/components/shared/MemberList.tsx +182 -0
- package/.framework/src/components/shared/SchemaFields.tsx +96 -78
- package/.framework/src/components/ui/DataTable.tsx +86 -56
- package/.framework/src/components/ui/Form.tsx +188 -109
- package/.framework/src/components/ui/ItemCard.tsx +86 -58
- package/.framework/src/components/ui/ItemListView.tsx +88 -61
- package/.framework/src/components/ui/LoadingSpinner.tsx +52 -27
- package/.framework/src/components/ui/Modal.tsx +81 -4
- package/.framework/src/components/ui/RichTextEditor.tsx +101 -9
- package/.framework/src/components/ui/accordion.tsx +97 -5
- package/.framework/src/components/ui/alert-dialog.tsx +225 -13
- package/.framework/src/components/ui/alert.tsx +113 -6
- package/.framework/src/components/ui/aspect-ratio.tsx +49 -2
- package/.framework/src/components/ui/avatar.tsx +129 -7
- package/.framework/src/components/ui/badge.tsx +65 -3
- package/.framework/src/components/ui/breadcrumb.tsx +145 -8
- package/.framework/src/components/ui/button-group.tsx +81 -4
- package/.framework/src/components/ui/button.tsx +49 -2
- package/.framework/src/components/ui/calendar.tsx +65 -3
- package/.framework/src/components/ui/card.tsx +145 -8
- package/.framework/src/components/ui/carousel.tsx +129 -7
- package/.framework/src/components/ui/chart.tsx +161 -10
- package/.framework/src/components/ui/checkbox.tsx +49 -2
- package/.framework/src/components/ui/collapsible.tsx +81 -5
- package/.framework/src/components/ui/combobox.tsx +305 -20
- package/.framework/src/components/ui/command.tsx +177 -11
- package/.framework/src/components/ui/context-menu.tsx +273 -17
- package/.framework/src/components/ui/dialog.tsx +209 -27
- package/.framework/src/components/ui/direction.tsx +64 -4
- package/.framework/src/components/ui/drawer.tsx +193 -12
- package/.framework/src/components/ui/dropdown-menu.tsx +273 -18
- package/.framework/src/components/ui/empty.tsx +145 -9
- package/.framework/src/components/ui/field.tsx +209 -14
- package/.framework/src/components/ui/hover-card.tsx +81 -4
- package/.framework/src/components/ui/input-group.tsx +162 -10
- package/.framework/src/components/ui/input-otp.tsx +98 -5
- package/.framework/src/components/ui/input.tsx +49 -2
- package/.framework/src/components/ui/item.tsx +225 -13
- package/.framework/src/components/ui/kbd.tsx +65 -3
- package/.framework/src/components/ui/label.tsx +49 -2
- package/.framework/src/components/ui/menubar.tsx +289 -17
- package/.framework/src/components/ui/native-select.tsx +97 -5
- package/.framework/src/components/ui/navigation-menu.tsx +177 -10
- package/.framework/src/components/ui/pagination.tsx +161 -9
- package/.framework/src/components/ui/popover.tsx +145 -8
- package/.framework/src/components/ui/progress.tsx +49 -2
- package/.framework/src/components/ui/radio-group.tsx +65 -3
- package/.framework/src/components/ui/resizable.tsx +82 -4
- package/.framework/src/components/ui/scroll-area.tsx +65 -3
- package/.framework/src/components/ui/select.tsx +193 -11
- package/.framework/src/components/ui/separator.tsx +49 -2
- package/.framework/src/components/ui/sheet.tsx +193 -11
- package/.framework/src/components/ui/sidebar.tsx +481 -38
- package/.framework/src/components/ui/skeleton.tsx +49 -2
- package/.framework/src/components/ui/slider.tsx +49 -2
- package/.framework/src/components/ui/sonner.tsx +49 -2
- package/.framework/src/components/ui/spinner.tsx +49 -2
- package/.framework/src/components/ui/switch.tsx +49 -2
- package/.framework/src/components/ui/table-primitives.tsx +160 -33
- package/.framework/src/components/ui/table.tsx +161 -9
- package/.framework/src/components/ui/tabs.tsx +113 -6
- package/.framework/src/components/ui/textarea.tsx +49 -2
- package/.framework/src/components/ui/toggle-group.tsx +81 -4
- package/.framework/src/components/ui/toggle.tsx +65 -3
- package/.framework/src/components/ui/tooltip.tsx +97 -5
- package/.framework/src/contexts/AppContext.tsx +129 -45
- package/.framework/src/contexts/AuthContext.tsx +187 -144
- package/.framework/src/hooks/use-mobile.ts +48 -2
- package/.framework/src/hooks/useApi.ts +208 -159
- package/.framework/src/hooks/useAppPath.ts +32 -23
- package/.framework/src/hooks/useApps.ts +51 -20
- package/.framework/src/hooks/useEntityList.ts +32 -78
- package/.framework/src/hooks/useEntityRecord.ts +35 -96
- package/.framework/src/hooks/useForm.ts +32 -92
- package/.framework/src/hooks/useListSchema.ts +49 -78
- package/.framework/src/hooks/useSchemaRecord.ts +114 -105
- package/.framework/src/lib/api.ts +195 -116
- package/.framework/src/lib/supabase.ts +98 -64
- package/.framework/src/lib/utils.ts +287 -151
- package/.framework/src/main.tsx +49 -3
- package/.framework/src/pages/DashboardPage.tsx +52 -29
- package/.framework/src/pages/NotFoundPage.tsx +32 -10
- package/.framework/src/pages/SetupPage.tsx +32 -12
- package/.framework/src/pages/admin/AIAgentDetailPage.tsx +119 -10
- package/.framework/src/pages/admin/AIAgentsPage.tsx +48 -19
- package/.framework/src/pages/admin/APIKeyDetailPage.tsx +187 -17
- package/.framework/src/pages/admin/APIKeysPage.tsx +98 -22
- package/.framework/src/pages/admin/AlertsConfigPage.tsx +113 -26
- package/.framework/src/pages/admin/AppDetailPage.tsx +125 -8
- package/.framework/src/pages/admin/AppsPage.tsx +49 -2
- package/.framework/src/pages/admin/DeliveriesPage.tsx +196 -0
- package/.framework/src/pages/admin/DesignedPage.tsx +32 -18
- package/.framework/src/pages/admin/EmbeddingDetailPage.tsx +215 -484
- package/.framework/src/pages/admin/EmbeddingsPage.tsx +116 -319
- package/.framework/src/pages/admin/ExtendedShadcnTestPage.tsx +34 -9
- package/.framework/src/pages/admin/IncrementalShadcnTestPage.tsx +34 -9
- package/.framework/src/pages/admin/IntegratedDashboard.tsx +32 -16
- package/.framework/src/pages/admin/IntegrationDetailPage.tsx +183 -26
- package/.framework/src/pages/admin/IntegrationsPage.tsx +48 -19
- package/.framework/src/pages/admin/InvitesPage.tsx +48 -14
- package/.framework/src/pages/admin/LogsPage.tsx +422 -75
- package/.framework/src/pages/admin/MinimalShadcnTestPage.tsx +34 -9
- package/.framework/src/pages/admin/ObservabilityDashboard.tsx +113 -24
- package/.framework/src/pages/admin/PipelineDetailPage.tsx +206 -34
- package/.framework/src/pages/admin/PipelineExecutionsPage.tsx +50 -17
- package/.framework/src/pages/admin/PipelinesPage.tsx +160 -21
- package/.framework/src/pages/admin/PromptConfigDetailPage.tsx +378 -88
- package/.framework/src/pages/admin/PromptConfigsPage.tsx +125 -16
- package/.framework/src/pages/admin/ProperlyDesignedPage.tsx +49 -10
- package/.framework/src/pages/admin/RoleDetailPage.tsx +130 -10
- package/.framework/src/pages/admin/RolesPage.tsx +171 -18
- package/.framework/src/pages/admin/SelectTestPage.tsx +34 -9
- package/.framework/src/pages/admin/ShadcnTestPage.tsx +49 -11
- package/.framework/src/pages/admin/SimpleDashboard.tsx +49 -10
- package/.framework/src/pages/admin/TestRunDetailPage.tsx +49 -4
- package/.framework/src/pages/admin/TestingDashboard.tsx +98 -28
- package/.framework/src/pages/admin/TimerDetailPage.tsx +143 -33
- package/.framework/src/pages/admin/TimersPage.tsx +48 -20
- package/.framework/src/pages/admin/TriggerDetailPage.tsx +118 -30
- package/.framework/src/pages/admin/TriggersPage.tsx +64 -19
- package/.framework/src/pages/admin/TypeDetailPage.tsx +138 -15
- package/.framework/src/pages/admin/TypesPage.tsx +48 -20
- package/.framework/src/pages/admin/cil/CILAgentPage.tsx +465 -0
- package/.framework/src/pages/admin/cil/CILChunkDetailPage.tsx +787 -0
- package/.framework/src/pages/admin/cil/CILDashboardPage.tsx +699 -0
- package/.framework/src/pages/admin/cil/CILFileListPage.tsx +647 -0
- package/.framework/src/pages/admin/cil/CILGraphPage.tsx +616 -0
- package/.framework/src/pages/admin/cil/CILIngestionPage.tsx +1402 -0
- package/.framework/src/pages/admin/cil/CILProjectsPage.tsx +614 -0
- package/.framework/src/pages/admin/cil/CILSearchPage.tsx +571 -0
- package/.framework/src/pages/admin/cil/FlexiblePipelinePage.tsx +731 -0
- package/.framework/src/pages/admin/kb/KBAdminPage.tsx +64 -0
- package/.framework/src/pages/auth/AuthConfirmPage.tsx +52 -51
- package/.framework/src/pages/auth/ForgotPasswordPage.tsx +31 -22
- package/.framework/src/pages/auth/LoginPage.tsx +50 -23
- package/.framework/src/pages/auth/PendingApprovalPage.tsx +31 -15
- package/.framework/src/pages/auth/RegisterPage.tsx +281 -317
- package/.framework/src/pages/spine-framework/APIPage.tsx +33 -0
- package/.framework/src/pages/spine-framework/CLIPage.tsx +33 -0
- package/.framework/src/types/auth.ts +128 -71
- package/.framework/src/types/types.ts +373 -157
- package/custom/.devin/skills/spine-workbench-discovery/SKILL.md +39 -0
- package/custom/.devin/skills/spine-workbench-idea/SKILL.md +36 -0
- package/custom/.devin/skills/spine-workbench-implement/SKILL.md +46 -0
- package/custom/.devin/skills/spine-workbench-initiative/SKILL.md +28 -0
- package/custom/.devin/skills/spine-workbench-plan/SKILL.md +38 -0
- package/docs/README.md +9 -130
- package/netlify.toml +5 -2
- package/package.json +13 -25
- package/scripts/kb-ingest-docs.ts +203 -0
- package/spine.config.json +65 -4
- package/.framework/migrations/001_schema.sql +0 -425
- package/.framework/migrations/002_rls_and_functions.sql +0 -763
- package/.framework/migrations/004_enhancements.sql +0 -43
- package/.framework/migrations/005_auth_user_trigger.sql +0 -105
- package/.framework/migrations/006_fix_current_actor_id.sql +0 -21
- package/.framework/migrations/016_invites.sql +0 -27
- package/.framework/migrations/017_fix_get_account_apps.sql +0 -78
- package/.framework/migrations/018_apps_required_roles.sql +0 -17
- package/.framework/migrations/019_triggers_unique_constraint.sql +0 -13
- package/.framework/migrations/020_get_account_apps_role_filter.sql +0 -117
- package/.framework/migrations/021_app_domains.sql +0 -112
- package/.framework/migrations/022_route_prefix_domain_unique.sql +0 -21
- package/.framework/migrations/023_match_embeddings_rpc.sql +0 -78
- package/.framework/migrations/024_messages_account_id.sql +0 -9
- package/.framework/migrations/025_retype_threads_messages.sql +0 -240
- package/.framework/migrations/026_fix_rls_policies.sql +0 -47
- package/.framework/migrations/027_embedding_lifecycle.sql +0 -176
- package/.framework/migrations/028_fix_message_data_permissions.sql +0 -49
- package/.framework/migrations/029_tighten_support_triage_prompt.sql +0 -41
- package/.framework/migrations/030_messages_updated_by.sql +0 -6
- package/.framework/migrations/031_seed_upsert_constraints.sql +0 -35
- package/docs/APPS.md +0 -232
- package/docs/ARCHITECTURE.md +0 -246
- package/docs/INSTALL.md +0 -155
- package/docs/design-schema-spec.md +0 -1837
- package/docs/dev-guides/01-create-an-app.md +0 -183
- package/docs/dev-guides/02-create-a-function.md +0 -178
- package/docs/dev-guides/03-create-a-component.md +0 -178
- package/docs/dev-guides/04-webhook-handlers.md +0 -129
- package/docs/dev-guides/05-testing.md +0 -168
- package/docs/dev-guides/README.md +0 -40
- package/docs/npm-packages-plan.md +0 -288
- 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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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"]
|