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,59 +1,29 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module prompt-configs
|
|
3
|
-
* @audience core-contributor
|
|
4
|
-
* @layer api-handler
|
|
5
|
-
* @stability stable
|
|
6
|
-
*
|
|
7
|
-
* CRUD API for the `prompt_configs` table. Prompt configs define LLM inference
|
|
8
|
-
* parameters: system prompts, context templates, model selection, temperature,
|
|
9
|
-
* confidence thresholds, escalation rules, tool access, and knowledge sources.
|
|
10
|
-
* They are referenced by AI agents at inference time via `agent-runner.ts`.
|
|
11
|
-
*
|
|
12
|
-
* **Routed by:** `GET/POST/PATCH/DELETE /.netlify/functions/prompt-configs`
|
|
13
|
-
*
|
|
14
|
-
* **Standard CRUD routing:**
|
|
15
|
-
* | method | condition | handler |
|
|
16
|
-
* |--------|-----------|---------|
|
|
17
|
-
* | GET | ?id | get |
|
|
18
|
-
* | GET | (default) | list |
|
|
19
|
-
* | POST | — | create |
|
|
20
|
-
* | PATCH | — | update |
|
|
21
|
-
* | DELETE | — | remove |
|
|
22
|
-
*
|
|
23
|
-
* **Authorization:** All operations use `ctx.db` (RLS-scoped). Account context
|
|
24
|
-
* required for writes.
|
|
25
|
-
*
|
|
26
|
-
* INVARIANT: `remove` is a hard delete.
|
|
27
|
-
* INVARIANT: `update` only patches the explicit allowlist of fields.
|
|
28
|
-
* INVARIANT: `model` defaults to 'gpt-4o', `temperature` to 0.7,
|
|
29
|
-
* `max_tokens` to 4000 if not specified on create.
|
|
30
|
-
*
|
|
31
|
-
* @seeAlso agent-runner.ts (resolveAgentConfig reads prompt_configs)
|
|
32
|
-
* @seeAlso ai-agents.ts (ai_agents reference prompt_config_id)
|
|
33
|
-
* @seeAlso audit.ts (emitLog for prompt_config.* events)
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
1
|
import { createHandler } from './_shared/middleware'
|
|
37
2
|
import { emitLog } from './_shared/audit'
|
|
38
3
|
import { sanitizeRecordData } from './_shared/permissions'
|
|
4
|
+
import { adminDb } from './_shared/db'
|
|
5
|
+
import { isSystemAdmin } from './_shared/principal'
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
39
9
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
//
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
// CIL[BEGIN chunk_id="prompt-configs_module_header_1783932909" type="module_header" identity="module_header" parent="none"]
|
|
13
|
+
// CIL[DOC-MACRO purpose="Lists prompt configs with filtering and sanitization"]
|
|
14
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle prompt config listing with filters"]
|
|
15
|
+
// CIL[DOC-CONTEXT module="prompt-configs" layer="api-handler" related_files="[\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/functions/_shared/db.ts\",\"\\\"]"]
|
|
16
|
+
// CIL[DOC-CONTRACT inputs="ctx, _body" outputs="Array of sanitized prompt configs" errors="Throws on DB errors" side_effects="Database queries, permission sanitization"]
|
|
17
|
+
// CIL[DOC-MICRO logic_summary="Filters by model/active status, applies sanitization" notable_decisions="[]"]
|
|
18
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
19
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
20
|
+
// CIL[DOC-AUDIENCE audience="developer"]
|
|
21
|
+
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. 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/principal.ts, .framework/functions/_shared/db.ts, \."]
|
|
22
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
23
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
24
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
25
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
26
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
57
27
|
export const list = createHandler(async (ctx, _body) => {
|
|
58
28
|
const { model, is_active, limit = 100, offset = 0 } = ctx.query || {}
|
|
59
29
|
|
|
@@ -61,13 +31,11 @@ export const list = createHandler(async (ctx, _body) => {
|
|
|
61
31
|
throw new Error('Account context required')
|
|
62
32
|
}
|
|
63
33
|
|
|
64
|
-
|
|
34
|
+
const db = isSystemAdmin(ctx.principal) ? adminDb : ctx.db
|
|
35
|
+
|
|
36
|
+
let query = db
|
|
65
37
|
.from('prompt_configs')
|
|
66
|
-
.select(
|
|
67
|
-
*,
|
|
68
|
-
app:apps(id, slug, name),
|
|
69
|
-
created_by_person:people!prompt_configs_created_by_fkey(id, full_name, email)
|
|
70
|
-
`)
|
|
38
|
+
.select('*')
|
|
71
39
|
.order('name')
|
|
72
40
|
|
|
73
41
|
if (model) {
|
|
@@ -91,23 +59,21 @@ export const list = createHandler(async (ctx, _body) => {
|
|
|
91
59
|
|
|
92
60
|
return sanitized
|
|
93
61
|
})
|
|
94
|
-
//
|
|
95
|
-
|
|
96
|
-
//
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
* @tags prompt-configs, get, crud, single-record
|
|
110
|
-
*/
|
|
62
|
+
// CIL[END chunk_id="prompt-configs_module_header_1783932909"]
|
|
63
|
+
// CIL[BEGIN chunk_id="prompt-configs_get_1783932909" type="function" identity="get" parent="none"]
|
|
64
|
+
// CIL[DOC-MACRO purpose="Retrieves single prompt config by ID with sanitization"]
|
|
65
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle individual prompt config retrieval"]
|
|
66
|
+
// CIL[DOC-CONTEXT module="prompt-configs" layer="api-handler" related_files="[\".framework/functions/_shared/schema-utils.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\".framework/src/components/ui/dialog.tsx\",\"\\\"]"]
|
|
67
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Sanitized prompt config record" errors="Throws if ID missing or DB error" side_effects="Database query, permission sanitization"]
|
|
68
|
+
// CIL[DOC-MICRO logic_summary="Fetches config by ID, applies permission sanitization" notable_decisions="[]"]
|
|
69
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
70
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
71
|
+
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/schema-utils.ts, .framework/src/pages/admin/TypeDetailPage.tsx, custom/apps/cortex/functions/custom_cil-embeddings.ts, .framework/src/components/ui/dialog.tsx, \."]
|
|
72
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
73
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
74
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
75
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
76
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
111
77
|
export const get = createHandler(async (ctx, _body) => {
|
|
112
78
|
const { id } = ctx.query || {}
|
|
113
79
|
|
|
@@ -115,13 +81,10 @@ export const get = createHandler(async (ctx, _body) => {
|
|
|
115
81
|
throw new Error('Config ID is required')
|
|
116
82
|
}
|
|
117
83
|
|
|
118
|
-
const
|
|
84
|
+
const db = isSystemAdmin(ctx.principal) ? adminDb : ctx.db
|
|
85
|
+
const { data, error: err } = await db
|
|
119
86
|
.from('prompt_configs')
|
|
120
|
-
.select(
|
|
121
|
-
*,
|
|
122
|
-
app:apps(id, slug, name),
|
|
123
|
-
created_by_person:people!prompt_configs_created_by_fkey(id, full_name, email)
|
|
124
|
-
`)
|
|
87
|
+
.select('*')
|
|
125
88
|
.eq('id', id)
|
|
126
89
|
.single()
|
|
127
90
|
|
|
@@ -129,25 +92,23 @@ export const get = createHandler(async (ctx, _body) => {
|
|
|
129
92
|
|
|
130
93
|
return await sanitizeRecordData(ctx, data, 'prompt_config')
|
|
131
94
|
})
|
|
132
|
-
//
|
|
133
|
-
|
|
134
|
-
//
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
* @tags prompt-configs, create, crud, audit
|
|
148
|
-
*/
|
|
95
|
+
// CIL[END chunk_id="prompt-configs_get_1783932909"]
|
|
96
|
+
// CIL[BEGIN chunk_id="prompt-configs_create_1783932909" type="function" identity="create" parent="none"]
|
|
97
|
+
// CIL[DOC-MACRO purpose="Creates new prompt config with validation and defaults"]
|
|
98
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle prompt config creation with security"]
|
|
99
|
+
// CIL[DOC-CONTEXT module="prompt-configs" layer="api-handler" related_files="[\".framework/functions/_shared/schema-utils.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\"\\\"]"]
|
|
100
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Created prompt config record" errors="Throws on validation or DB errors" side_effects="Database insert, audit logging"]
|
|
101
|
+
// CIL[DOC-MICRO logic_summary="Validates required fields, sets defaults, creates config" notable_decisions="[]"]
|
|
102
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
103
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
104
|
+
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 3. Direct calls: 0. Related files: .framework/functions/_shared/schema-utils.ts, custom/apps/portal/pages/ContentPage.tsx, .framework/src/components/ui/dialog.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/TypeDetailPage.tsx, \."]
|
|
105
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 3. Total affected: 4."]
|
|
106
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
107
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
108
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
109
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
149
110
|
export const create = createHandler(async (ctx, body) => {
|
|
150
|
-
const { app_id, name, slug, system_prompt, context_template, model, temperature, max_tokens,
|
|
111
|
+
const { app_id, name, slug, description, system_prompt, context_template, model, temperature, max_tokens,
|
|
151
112
|
is_multi_turn, max_history_messages, confidence_threshold, escalation_action, escalation_target,
|
|
152
113
|
output_mode, output_field, requires_review, knowledge_sources, available_tools, tool_constraints,
|
|
153
114
|
metadata } = body
|
|
@@ -167,6 +128,7 @@ export const create = createHandler(async (ctx, body) => {
|
|
|
167
128
|
account_id: ctx.accountId,
|
|
168
129
|
name,
|
|
169
130
|
slug,
|
|
131
|
+
description: description || null,
|
|
170
132
|
system_prompt: system_prompt || null,
|
|
171
133
|
context_template: context_template || null,
|
|
172
134
|
model: model || 'gpt-4o',
|
|
@@ -183,8 +145,7 @@ export const create = createHandler(async (ctx, body) => {
|
|
|
183
145
|
knowledge_sources: knowledge_sources || [],
|
|
184
146
|
available_tools: available_tools || [],
|
|
185
147
|
tool_constraints: tool_constraints || {},
|
|
186
|
-
metadata: metadata || {}
|
|
187
|
-
created_by: ctx.principal?.id
|
|
148
|
+
metadata: metadata || {}
|
|
188
149
|
})
|
|
189
150
|
.select()
|
|
190
151
|
.single()
|
|
@@ -198,23 +159,21 @@ export const create = createHandler(async (ctx, body) => {
|
|
|
198
159
|
|
|
199
160
|
return data
|
|
200
161
|
})
|
|
201
|
-
//
|
|
202
|
-
|
|
203
|
-
//
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
* @tags prompt-configs, update, crud, audit
|
|
217
|
-
*/
|
|
162
|
+
// CIL[END chunk_id="prompt-configs_create_1783932909"]
|
|
163
|
+
// CIL[BEGIN chunk_id="prompt-configs_update_1783932909" type="function" identity="update" parent="none"]
|
|
164
|
+
// CIL[DOC-MACRO purpose="Updates prompt config with field allowlist validation"]
|
|
165
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle prompt config updates with security"]
|
|
166
|
+
// CIL[DOC-CONTEXT module="prompt-configs" layer="api-handler" related_files="[\".framework/functions/_shared/schema-utils.ts\",\".framework/functions/_shared/db.ts\",\".framework/src/pages/admin/TypeDetailPage.tsx\",\".framework/src/components/ui/dialog.tsx\",\"\\\"]"]
|
|
167
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Updated prompt config record" errors="Throws on validation or DB errors" side_effects="Database update, audit logging"]
|
|
168
|
+
// CIL[DOC-MICRO logic_summary="Updates allowed fields, maintains audit trail" notable_decisions="[]"]
|
|
169
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
170
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
171
|
+
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 9. Direct calls: 0. Related files: .framework/functions/_shared/schema-utils.ts, .framework/functions/_shared/db.ts, .framework/src/pages/admin/TypeDetailPage.tsx, .framework/src/components/ui/dialog.tsx, \."]
|
|
172
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 9. Total affected: 11."]
|
|
173
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
174
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
175
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
176
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
218
177
|
export const update = createHandler(async (ctx, body) => {
|
|
219
178
|
const id = body?.id || ctx.query?.id
|
|
220
179
|
const { id: _bodyId, ...updates } = body || {}
|
|
@@ -223,7 +182,7 @@ export const update = createHandler(async (ctx, body) => {
|
|
|
223
182
|
throw new Error('Config ID is required')
|
|
224
183
|
}
|
|
225
184
|
|
|
226
|
-
const allowed = ['name', 'slug', 'system_prompt', 'context_template', 'model', 'temperature',
|
|
185
|
+
const allowed = ['name', 'slug', 'description', 'app_id', 'system_prompt', 'context_template', 'model', 'temperature',
|
|
227
186
|
'max_tokens', 'is_multi_turn', 'max_history_messages', 'confidence_threshold',
|
|
228
187
|
'escalation_action', 'escalation_target', 'output_mode', 'output_field', 'requires_review',
|
|
229
188
|
'knowledge_sources', 'available_tools', 'tool_constraints', 'metadata', 'is_active']
|
|
@@ -248,23 +207,21 @@ export const update = createHandler(async (ctx, body) => {
|
|
|
248
207
|
|
|
249
208
|
return data
|
|
250
209
|
})
|
|
251
|
-
//
|
|
252
|
-
|
|
253
|
-
//
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
* @tags prompt-configs, remove, delete, audit
|
|
267
|
-
*/
|
|
210
|
+
// CIL[END chunk_id="prompt-configs_update_1783932909"]
|
|
211
|
+
// CIL[BEGIN chunk_id="prompt-configs_remove_1783932909" type="function" identity="remove" parent="none"]
|
|
212
|
+
// CIL[DOC-MACRO purpose="Hard deletes prompt config with audit logging"]
|
|
213
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle prompt config deletion with audit trail"]
|
|
214
|
+
// CIL[DOC-CONTEXT module="prompt-configs" layer="api-handler" related_files="[\".framework/functions/_shared/schema-utils.ts\",\".framework/src/components/ui/dialog.tsx\",\".framework/functions/_shared/principal.ts\",\".framework/functions/_shared/db.ts\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
|
|
215
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="{success: true}" errors="Throws if ID missing or DB error" side_effects="Database delete, audit logging"]
|
|
216
|
+
// CIL[DOC-MICRO logic_summary="Hard deletes config, maintains audit trail" notable_decisions="[]"]
|
|
217
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
218
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
219
|
+
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: .framework/functions/_shared/schema-utils.ts, .framework/src/components/ui/dialog.tsx, .framework/functions/_shared/principal.ts, .framework/functions/_shared/db.ts, .framework/src/components/ui/table-primitives.tsx, \."]
|
|
220
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
221
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
222
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
223
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
224
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
268
225
|
export const remove = createHandler(async (ctx, _body) => {
|
|
269
226
|
const id = ctx.query?.id
|
|
270
227
|
|
|
@@ -294,25 +251,21 @@ export const remove = createHandler(async (ctx, _body) => {
|
|
|
294
251
|
|
|
295
252
|
return { success: true }
|
|
296
253
|
})
|
|
297
|
-
//
|
|
298
|
-
|
|
299
|
-
//
|
|
300
|
-
|
|
301
|
-
//
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
* @depended-by [Netlify function routing]
|
|
313
|
-
* @side-effects [Delegates to appropriate handler]
|
|
314
|
-
* @tags prompt-configs, router, crud, netlify-function
|
|
315
|
-
*/
|
|
254
|
+
// CIL[END chunk_id="prompt-configs_remove_1783932909"]
|
|
255
|
+
// CIL[BEGIN chunk_id="prompt-configs_handler_1783932909" type="function" identity="handler" parent="none"]
|
|
256
|
+
// CIL[DOC-MACRO purpose="Routes HTTP methods to prompt config handlers"]
|
|
257
|
+
// CIL[DOC-RESPONSIBILITY responsibility="Handle request routing for prompt config CRUD"]
|
|
258
|
+
// CIL[DOC-CONTEXT module="prompt-configs" layer="api-handler" related_files="[\"custom/apps/cortex/functions/custom_cil-embeddings.ts\",\"custom/apps/portal/pages/ContentPage.tsx\",\"custom/apps/cortex/pages/operations/OperationsDashboard.tsx\",\".framework/src/pages/admin/RolesPage.tsx\",\".framework/src/components/ui/table-primitives.tsx\",\"\\\"]"]
|
|
259
|
+
// CIL[DOC-CONTRACT inputs="none" outputs="Varies by handler" errors="Throws on unsupported methods" side_effects="Delegates to appropriate handler"]
|
|
260
|
+
// CIL[DOC-MICRO logic_summary="Routes based on method, delegates to CRUD handlers" notable_decisions="[]"]
|
|
261
|
+
// CIL[DOC-CONFIDENCE pass="second" score="0.95" flags="none"]
|
|
262
|
+
// CIL[DOC-STABILITY stability="stable"]
|
|
263
|
+
// CIL[DOC-VECTOR type="context" content="Layer: api-handler. Direct callers: 0. Direct calls: 0. Related files: custom/apps/cortex/functions/custom_cil-embeddings.ts, custom/apps/portal/pages/ContentPage.tsx, custom/apps/cortex/pages/operations/OperationsDashboard.tsx, .framework/src/pages/admin/RolesPage.tsx, .framework/src/components/ui/table-primitives.tsx, \."]
|
|
264
|
+
// CIL[DOC-VECTOR type="blast_radius" content="Direct callers: 0. Total affected: 0."]
|
|
265
|
+
// CIL[DOC-VECTOR type="configuration" content="No configuration dependencies."]
|
|
266
|
+
// CIL[DOC-VECTOR type="constraint" content="No test paths identified."]
|
|
267
|
+
// CIL[DOC-VECTOR type="implementation_pattern" content="" status="pending_human_input"]
|
|
268
|
+
// CIL[DOC-VECTOR type="user_journey" content="" status="pending_human_input"]
|
|
316
269
|
export const handler = createHandler(async (ctx, body) => {
|
|
317
270
|
const { action } = ctx.query || {}
|
|
318
271
|
const method = ctx.query?.method || 'GET'
|
|
@@ -336,4 +289,4 @@ export const handler = createHandler(async (ctx, body) => {
|
|
|
336
289
|
|
|
337
290
|
throw new Error('Invalid action or method')
|
|
338
291
|
})
|
|
339
|
-
//
|
|
292
|
+
// CIL[END chunk_id="prompt-configs_handler_1783932909"]
|